Loading sql/sql_bitmap.h +11 −12 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ template <uint default_width> class Bitmap uchar buffer[(default_width+7)/8]; public: Bitmap() { init(); } Bitmap(Bitmap& from) { *this=from; } Bitmap(const Bitmap& from) { *this=from; } explicit Bitmap(uint prefix_to_set) { init(prefix_to_set); } void init() { bitmap_init(&map, buffer, default_width, 0); } void init(uint prefix_to_set) { init(); set_prefix(prefix_to_set); } Loading Loading @@ -61,18 +61,17 @@ template <uint default_width> class Bitmap my_bool operator==(const Bitmap& map2) const { return bitmap_cmp(&map, &map2.map); } char *print(char *buf) const { char *s=buf; int i; for (i=sizeof(buffer)-1; i>=0 ; i--) char *s=buf; const uchar *e=buffer, *b=e+sizeof(buffer)-1; while (!*b && b>e) b--; if ((*s=_dig_vec_upper[*b >> 4]) != '0') s++; *s++=_dig_vec_upper[*b & 15]; while (--b>=e) { if ((*s=_dig_vec_upper[buffer[i] >> 4]) != '0') break; if ((*s=_dig_vec_upper[buffer[i] & 15]) != '0') break; } for (s++, i-- ; i>=0 ; i--) { *s++=_dig_vec_upper[buffer[i] >> 4]; *s++=_dig_vec_upper[buffer[i] & 15]; *s++=_dig_vec_upper[*b >> 4]; *s++=_dig_vec_upper[*b & 15]; } *s=0; return buf; Loading sql/sql_select.cc +1 −0 Original line number Diff line number Diff line Loading @@ -5792,6 +5792,7 @@ make_join_readinfo(JOIN *join, uint options) if (!table->no_keyread) { if (tab->select && tab->select->quick && tab->select->quick->index != MAX_KEY && //not index_merge table->used_keys.is_set(tab->select->quick->index)) { table->key_read=1; Loading tests/mysql_client_test.c +10 −6 Original line number Diff line number Diff line Loading @@ -7455,12 +7455,16 @@ static void test_explain_bug() verify_prepare_field(result, 5, "key", "", MYSQL_TYPE_VAR_STRING, "", "", "", NAME_LEN, 0); verify_prepare_field(result, 6, "key_len", "", (mysql_get_server_version(mysql) <= 50000 ? MYSQL_TYPE_LONGLONG : MYSQL_TYPE_VAR_STRING), "", "", "", (mysql_get_server_version(mysql) <= 50000 ? 3 : 4096), 0); if (mysql_get_server_version(mysql) <= 50000) { verify_prepare_field(result, 6, "key_len", "", MYSQL_TYPE_LONGLONG, "", "", "", 3, 0); } else { verify_prepare_field(result, 6, "key_len", "", MYSQL_TYPE_VAR_STRING, "", "", "", NAME_LEN*MAX_KEY, 0); } verify_prepare_field(result, 7, "ref", "", MYSQL_TYPE_VAR_STRING, "", "", "", NAME_LEN*16, 0); Loading Loading
sql/sql_bitmap.h +11 −12 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ template <uint default_width> class Bitmap uchar buffer[(default_width+7)/8]; public: Bitmap() { init(); } Bitmap(Bitmap& from) { *this=from; } Bitmap(const Bitmap& from) { *this=from; } explicit Bitmap(uint prefix_to_set) { init(prefix_to_set); } void init() { bitmap_init(&map, buffer, default_width, 0); } void init(uint prefix_to_set) { init(); set_prefix(prefix_to_set); } Loading Loading @@ -61,18 +61,17 @@ template <uint default_width> class Bitmap my_bool operator==(const Bitmap& map2) const { return bitmap_cmp(&map, &map2.map); } char *print(char *buf) const { char *s=buf; int i; for (i=sizeof(buffer)-1; i>=0 ; i--) char *s=buf; const uchar *e=buffer, *b=e+sizeof(buffer)-1; while (!*b && b>e) b--; if ((*s=_dig_vec_upper[*b >> 4]) != '0') s++; *s++=_dig_vec_upper[*b & 15]; while (--b>=e) { if ((*s=_dig_vec_upper[buffer[i] >> 4]) != '0') break; if ((*s=_dig_vec_upper[buffer[i] & 15]) != '0') break; } for (s++, i-- ; i>=0 ; i--) { *s++=_dig_vec_upper[buffer[i] >> 4]; *s++=_dig_vec_upper[buffer[i] & 15]; *s++=_dig_vec_upper[*b >> 4]; *s++=_dig_vec_upper[*b & 15]; } *s=0; return buf; Loading
sql/sql_select.cc +1 −0 Original line number Diff line number Diff line Loading @@ -5792,6 +5792,7 @@ make_join_readinfo(JOIN *join, uint options) if (!table->no_keyread) { if (tab->select && tab->select->quick && tab->select->quick->index != MAX_KEY && //not index_merge table->used_keys.is_set(tab->select->quick->index)) { table->key_read=1; Loading
tests/mysql_client_test.c +10 −6 Original line number Diff line number Diff line Loading @@ -7455,12 +7455,16 @@ static void test_explain_bug() verify_prepare_field(result, 5, "key", "", MYSQL_TYPE_VAR_STRING, "", "", "", NAME_LEN, 0); verify_prepare_field(result, 6, "key_len", "", (mysql_get_server_version(mysql) <= 50000 ? MYSQL_TYPE_LONGLONG : MYSQL_TYPE_VAR_STRING), "", "", "", (mysql_get_server_version(mysql) <= 50000 ? 3 : 4096), 0); if (mysql_get_server_version(mysql) <= 50000) { verify_prepare_field(result, 6, "key_len", "", MYSQL_TYPE_LONGLONG, "", "", "", 3, 0); } else { verify_prepare_field(result, 6, "key_len", "", MYSQL_TYPE_VAR_STRING, "", "", "", NAME_LEN*MAX_KEY, 0); } verify_prepare_field(result, 7, "ref", "", MYSQL_TYPE_VAR_STRING, "", "", "", NAME_LEN*16, 0); Loading