mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Return character strings in table, type, possible_keys, key fields
of EXPLAIN SELECT, rather than binary strings.
This commit is contained in:
@ -414,15 +414,15 @@ prepare stmt1 from ' explain select a from t1 order by b ';
|
||||
execute stmt1;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def id 8 3 1 N 32801 0 8
|
||||
def select_type 253 19 6 N 1 31 63
|
||||
def table 253 64 2 N 1 31 63
|
||||
def type 253 10 3 N 1 31 63
|
||||
def possible_keys 253 4096 0 Y 0 31 63
|
||||
def key 253 64 0 Y 0 31 63
|
||||
def select_type 253 19 6 N 1 31 8
|
||||
def table 253 64 2 N 1 31 8
|
||||
def type 253 10 3 N 1 31 8
|
||||
def possible_keys 253 4096 0 Y 0 31 8
|
||||
def key 253 64 0 Y 0 31 8
|
||||
def key_len 8 3 0 Y 32800 0 8
|
||||
def ref 253 1024 0 Y 0 31 63
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 N 32801 0 8
|
||||
def Extra 253 255 14 N 1 31 63
|
||||
def Extra 253 255 14 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using filesort
|
||||
SET @arg00=1 ;
|
||||
@ -430,15 +430,15 @@ prepare stmt1 from ' explain select a from t1 where a > ? order by b ';
|
||||
execute stmt1 using @arg00;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def id 8 3 1 N 32801 0 8
|
||||
def select_type 253 19 6 N 1 31 63
|
||||
def table 253 64 2 N 1 31 63
|
||||
def type 253 10 5 N 1 31 63
|
||||
def possible_keys 253 4096 7 Y 0 31 63
|
||||
def key 253 64 7 Y 0 31 63
|
||||
def select_type 253 19 6 N 1 31 8
|
||||
def table 253 64 2 N 1 31 8
|
||||
def type 253 10 5 N 1 31 8
|
||||
def possible_keys 253 4096 7 Y 0 31 8
|
||||
def key 253 64 7 Y 0 31 8
|
||||
def key_len 8 3 1 Y 32800 0 8
|
||||
def ref 253 1024 0 Y 0 31 63
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 N 32801 0 8
|
||||
def Extra 253 255 27 N 1 31 63
|
||||
def Extra 253 255 27 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 Using where; Using filesort
|
||||
test_sequence
|
||||
|
@ -574,15 +574,15 @@ prepare stmt1 from @stmt ;
|
||||
execute stmt1 ;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def id 8 3 1 N 32801 0 8
|
||||
def select_type 253 19 18 N 1 31 63
|
||||
def table 253 64 16 N 1 31 63
|
||||
def type 253 10 3 N 1 31 63
|
||||
def possible_keys 253 4096 0 Y 0 31 63
|
||||
def key 253 64 0 Y 0 31 63
|
||||
def select_type 253 19 18 N 1 31 8
|
||||
def table 253 64 16 N 1 31 8
|
||||
def type 253 10 3 N 1 31 8
|
||||
def possible_keys 253 4096 0 Y 0 31 8
|
||||
def key 253 64 0 Y 0 31 8
|
||||
def key_len 8 3 0 Y 32800 0 8
|
||||
def ref 253 1024 0 Y 0 31 63
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 N 32801 0 8
|
||||
def Extra 253 255 44 N 1 31 63
|
||||
def Extra 253 255 44 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t_many_col_types ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY <derived6> ALL NULL NULL NULL NULL 2 Using where
|
||||
@ -645,15 +645,15 @@ execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06,
|
||||
@arg07, @arg08, @arg09 ;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def id 8 3 1 N 32801 0 8
|
||||
def select_type 253 19 18 N 1 31 63
|
||||
def table 253 64 16 N 1 31 63
|
||||
def type 253 10 3 N 1 31 63
|
||||
def possible_keys 253 4096 0 Y 0 31 63
|
||||
def key 253 64 0 Y 0 31 63
|
||||
def select_type 253 19 18 N 1 31 8
|
||||
def table 253 64 16 N 1 31 8
|
||||
def type 253 10 3 N 1 31 8
|
||||
def possible_keys 253 4096 0 Y 0 31 8
|
||||
def key 253 64 0 Y 0 31 8
|
||||
def key_len 8 3 0 Y 32800 0 8
|
||||
def ref 253 1024 0 Y 0 31 63
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 N 32801 0 8
|
||||
def Extra 253 255 44 N 1 31 63
|
||||
def Extra 253 255 44 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t_many_col_types ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY <derived6> ALL NULL NULL NULL NULL 2 Using where
|
||||
|
@ -574,15 +574,15 @@ prepare stmt1 from @stmt ;
|
||||
execute stmt1 ;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def id 8 3 1 N 32801 0 8
|
||||
def select_type 253 19 18 N 1 31 63
|
||||
def table 253 64 16 N 1 31 63
|
||||
def type 253 10 3 N 1 31 63
|
||||
def possible_keys 253 4096 0 Y 0 31 63
|
||||
def key 253 64 0 Y 0 31 63
|
||||
def select_type 253 19 18 N 1 31 8
|
||||
def table 253 64 16 N 1 31 8
|
||||
def type 253 10 3 N 1 31 8
|
||||
def possible_keys 253 4096 0 Y 0 31 8
|
||||
def key 253 64 0 Y 0 31 8
|
||||
def key_len 8 3 0 Y 32800 0 8
|
||||
def ref 253 1024 0 Y 0 31 63
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 N 32801 0 8
|
||||
def Extra 253 255 44 N 1 31 63
|
||||
def Extra 253 255 44 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t_many_col_types ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY <derived6> ALL NULL NULL NULL NULL 2 Using where
|
||||
@ -645,15 +645,15 @@ execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06,
|
||||
@arg07, @arg08, @arg09 ;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def id 8 3 1 N 32801 0 8
|
||||
def select_type 253 19 18 N 1 31 63
|
||||
def table 253 64 16 N 1 31 63
|
||||
def type 253 10 3 N 1 31 63
|
||||
def possible_keys 253 4096 0 Y 0 31 63
|
||||
def key 253 64 0 Y 0 31 63
|
||||
def select_type 253 19 18 N 1 31 8
|
||||
def table 253 64 16 N 1 31 8
|
||||
def type 253 10 3 N 1 31 8
|
||||
def possible_keys 253 4096 0 Y 0 31 8
|
||||
def key 253 64 0 Y 0 31 8
|
||||
def key_len 8 3 0 Y 32800 0 8
|
||||
def ref 253 1024 0 Y 0 31 63
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 N 32801 0 8
|
||||
def Extra 253 255 44 N 1 31 63
|
||||
def Extra 253 255 44 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t_many_col_types ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY <derived6> ALL NULL NULL NULL NULL 2 Using where
|
||||
|
@ -575,15 +575,15 @@ prepare stmt1 from @stmt ;
|
||||
execute stmt1 ;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def id 8 3 1 N 32801 0 8
|
||||
def select_type 253 19 18 N 1 31 63
|
||||
def table 253 64 16 N 1 31 63
|
||||
def type 253 10 3 N 1 31 63
|
||||
def possible_keys 253 4096 0 Y 0 31 63
|
||||
def key 253 64 0 Y 0 31 63
|
||||
def select_type 253 19 18 N 1 31 8
|
||||
def table 253 64 16 N 1 31 8
|
||||
def type 253 10 3 N 1 31 8
|
||||
def possible_keys 253 4096 0 Y 0 31 8
|
||||
def key 253 64 0 Y 0 31 8
|
||||
def key_len 8 3 0 Y 32800 0 8
|
||||
def ref 253 1024 0 Y 0 31 63
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 N 32801 0 8
|
||||
def Extra 253 255 44 N 1 31 63
|
||||
def Extra 253 255 44 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t_many_col_types ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY <derived6> ALL NULL NULL NULL NULL 2 Using where
|
||||
@ -646,15 +646,15 @@ execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06,
|
||||
@arg07, @arg08, @arg09 ;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def id 8 3 1 N 32801 0 8
|
||||
def select_type 253 19 18 N 1 31 63
|
||||
def table 253 64 16 N 1 31 63
|
||||
def type 253 10 3 N 1 31 63
|
||||
def possible_keys 253 4096 0 Y 0 31 63
|
||||
def key 253 64 0 Y 0 31 63
|
||||
def select_type 253 19 18 N 1 31 8
|
||||
def table 253 64 16 N 1 31 8
|
||||
def type 253 10 3 N 1 31 8
|
||||
def possible_keys 253 4096 0 Y 0 31 8
|
||||
def key 253 64 0 Y 0 31 8
|
||||
def key_len 8 3 0 Y 32800 0 8
|
||||
def ref 253 1024 0 Y 0 31 63
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 N 32801 0 8
|
||||
def Extra 253 255 44 N 1 31 63
|
||||
def Extra 253 255 44 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t_many_col_types ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY <derived6> ALL NULL NULL NULL NULL 2 Using where
|
||||
|
@ -617,15 +617,15 @@ prepare stmt1 from @stmt ;
|
||||
execute stmt1 ;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def id 8 3 1 N 32801 0 8
|
||||
def select_type 253 19 18 N 1 31 63
|
||||
def table 253 64 16 N 1 31 63
|
||||
def type 253 10 3 N 1 31 63
|
||||
def possible_keys 253 4096 0 Y 0 31 63
|
||||
def key 253 64 0 Y 0 31 63
|
||||
def select_type 253 19 18 N 1 31 8
|
||||
def table 253 64 16 N 1 31 8
|
||||
def type 253 10 3 N 1 31 8
|
||||
def possible_keys 253 4096 0 Y 0 31 8
|
||||
def key 253 64 0 Y 0 31 8
|
||||
def key_len 8 3 0 Y 32800 0 8
|
||||
def ref 253 1024 0 Y 0 31 63
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 N 32801 0 8
|
||||
def Extra 253 255 44 N 1 31 63
|
||||
def Extra 253 255 44 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t_many_col_types ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY <derived6> ALL NULL NULL NULL NULL 2 Using where
|
||||
@ -688,15 +688,15 @@ execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06,
|
||||
@arg07, @arg08, @arg09 ;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def id 8 3 1 N 32801 0 8
|
||||
def select_type 253 19 18 N 1 31 63
|
||||
def table 253 64 16 N 1 31 63
|
||||
def type 253 10 3 N 1 31 63
|
||||
def possible_keys 253 4096 0 Y 0 31 63
|
||||
def key 253 64 0 Y 0 31 63
|
||||
def select_type 253 19 18 N 1 31 8
|
||||
def table 253 64 16 N 1 31 8
|
||||
def type 253 10 3 N 1 31 8
|
||||
def possible_keys 253 4096 0 Y 0 31 8
|
||||
def key 253 64 0 Y 0 31 8
|
||||
def key_len 8 3 0 Y 32800 0 8
|
||||
def ref 253 1024 0 Y 0 31 63
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 N 32801 0 8
|
||||
def Extra 253 255 44 N 1 31 63
|
||||
def Extra 253 255 44 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t_many_col_types ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY <derived6> ALL NULL NULL NULL NULL 2 Using where
|
||||
@ -1812,15 +1812,15 @@ prepare stmt1 from @stmt ;
|
||||
execute stmt1 ;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def id 8 3 1 N 32801 0 8
|
||||
def select_type 253 19 18 N 1 31 63
|
||||
def table 253 64 16 N 1 31 63
|
||||
def type 253 10 3 N 1 31 63
|
||||
def possible_keys 253 4096 0 Y 0 31 63
|
||||
def key 253 64 0 Y 0 31 63
|
||||
def select_type 253 19 18 N 1 31 8
|
||||
def table 253 64 16 N 1 31 8
|
||||
def type 253 10 3 N 1 31 8
|
||||
def possible_keys 253 4096 0 Y 0 31 8
|
||||
def key 253 64 0 Y 0 31 8
|
||||
def key_len 8 3 0 Y 32800 0 8
|
||||
def ref 253 1024 0 Y 0 31 63
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 N 32801 0 8
|
||||
def Extra 253 255 44 N 1 31 63
|
||||
def Extra 253 255 44 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t_many_col_types ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY <derived6> ALL NULL NULL NULL NULL 2 Using where
|
||||
@ -1883,15 +1883,15 @@ execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06,
|
||||
@arg07, @arg08, @arg09 ;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def id 8 3 1 N 32801 0 8
|
||||
def select_type 253 19 18 N 1 31 63
|
||||
def table 253 64 16 N 1 31 63
|
||||
def type 253 10 3 N 1 31 63
|
||||
def possible_keys 253 4096 0 Y 0 31 63
|
||||
def key 253 64 0 Y 0 31 63
|
||||
def select_type 253 19 18 N 1 31 8
|
||||
def table 253 64 16 N 1 31 8
|
||||
def type 253 10 3 N 1 31 8
|
||||
def possible_keys 253 4096 0 Y 0 31 8
|
||||
def key 253 64 0 Y 0 31 8
|
||||
def key_len 8 3 0 Y 32800 0 8
|
||||
def ref 253 1024 0 Y 0 31 63
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 N 32801 0 8
|
||||
def Extra 253 255 44 N 1 31 63
|
||||
def Extra 253 255 44 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t_many_col_types ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY <derived6> ALL NULL NULL NULL NULL 2 Using where
|
||||
|
@ -574,15 +574,15 @@ prepare stmt1 from @stmt ;
|
||||
execute stmt1 ;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def id 8 3 1 N 32801 0 8
|
||||
def select_type 253 19 18 N 1 31 63
|
||||
def table 253 64 16 N 1 31 63
|
||||
def type 253 10 3 N 1 31 63
|
||||
def possible_keys 253 4096 0 Y 0 31 63
|
||||
def key 253 64 0 Y 0 31 63
|
||||
def select_type 253 19 18 N 1 31 8
|
||||
def table 253 64 16 N 1 31 8
|
||||
def type 253 10 3 N 1 31 8
|
||||
def possible_keys 253 4096 0 Y 0 31 8
|
||||
def key 253 64 0 Y 0 31 8
|
||||
def key_len 8 3 0 Y 32800 0 8
|
||||
def ref 253 1024 0 Y 0 31 63
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 N 32801 0 8
|
||||
def Extra 253 255 44 N 1 31 63
|
||||
def Extra 253 255 44 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t_many_col_types ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY <derived6> ALL NULL NULL NULL NULL 2 Using where
|
||||
@ -645,15 +645,15 @@ execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06,
|
||||
@arg07, @arg08, @arg09 ;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def id 8 3 1 N 32801 0 8
|
||||
def select_type 253 19 18 N 1 31 63
|
||||
def table 253 64 16 N 1 31 63
|
||||
def type 253 10 3 N 1 31 63
|
||||
def possible_keys 253 4096 0 Y 0 31 63
|
||||
def key 253 64 0 Y 0 31 63
|
||||
def select_type 253 19 18 N 1 31 8
|
||||
def table 253 64 16 N 1 31 8
|
||||
def type 253 10 3 N 1 31 8
|
||||
def possible_keys 253 4096 0 Y 0 31 8
|
||||
def key 253 64 0 Y 0 31 8
|
||||
def key_len 8 3 0 Y 32800 0 8
|
||||
def ref 253 1024 0 Y 0 31 63
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 N 32801 0 8
|
||||
def Extra 253 255 44 N 1 31 63
|
||||
def Extra 253 255 44 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t_many_col_types ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY <derived6> ALL NULL NULL NULL NULL 2 Using where
|
||||
|
@ -706,8 +706,8 @@ public:
|
||||
class Item_empty_string :public Item_string
|
||||
{
|
||||
public:
|
||||
Item_empty_string(const char *header,uint length) :Item_string("",0,
|
||||
&my_charset_bin)
|
||||
Item_empty_string(const char *header,uint length, CHARSET_INFO *cs= NULL) :
|
||||
Item_string("",0, cs ? cs : &my_charset_bin)
|
||||
{ name=(char*) header; max_length=length;}
|
||||
void make_field(Send_field *field);
|
||||
};
|
||||
|
@ -654,27 +654,29 @@ CHANGED_TABLE_LIST* THD::changed_table_dup(const char *key, long key_length)
|
||||
return new_table;
|
||||
}
|
||||
|
||||
|
||||
int THD::send_explain_fields(select_result *result)
|
||||
{
|
||||
List<Item> field_list;
|
||||
Item *item;
|
||||
CHARSET_INFO *cs= system_charset_info;
|
||||
field_list.push_back(new Item_return_int("id",3, MYSQL_TYPE_LONGLONG));
|
||||
field_list.push_back(new Item_empty_string("select_type",19));
|
||||
field_list.push_back(new Item_empty_string("table",NAME_LEN));
|
||||
field_list.push_back(new Item_empty_string("type",10));
|
||||
field_list.push_back(new Item_empty_string("select_type", 19, cs));
|
||||
field_list.push_back(new Item_empty_string("table", NAME_LEN, cs));
|
||||
field_list.push_back(new Item_empty_string("type", 10, cs));
|
||||
field_list.push_back(item=new Item_empty_string("possible_keys",
|
||||
NAME_LEN*MAX_KEY));
|
||||
NAME_LEN*MAX_KEY, cs));
|
||||
item->maybe_null=1;
|
||||
field_list.push_back(item=new Item_empty_string("key",NAME_LEN));
|
||||
field_list.push_back(item=new Item_empty_string("key", NAME_LEN, cs));
|
||||
item->maybe_null=1;
|
||||
field_list.push_back(item=new Item_return_int("key_len",3,
|
||||
MYSQL_TYPE_LONGLONG));
|
||||
item->maybe_null=1;
|
||||
field_list.push_back(item=new Item_empty_string("ref",
|
||||
NAME_LEN*MAX_REF_PARTS));
|
||||
NAME_LEN*MAX_REF_PARTS, cs));
|
||||
item->maybe_null=1;
|
||||
field_list.push_back(new Item_return_int("rows", 10, MYSQL_TYPE_LONGLONG));
|
||||
field_list.push_back(new Item_empty_string("Extra",255));
|
||||
field_list.push_back(new Item_empty_string("Extra", 255, cs));
|
||||
return (result->send_fields(field_list,1));
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user