Bug#12817 SHOW STATUS now blob fields
This fix is cancellation of ChangeSet 1.2329 05/07/12 08:35:30 reggie@linux.site +8 -0 Bug 7142 Show Fields from fails using Borland's dbExpress interface The reason is we can't fix bug#7142 without breaking of existing applications/APIs that worked fine with earlier 4.1 bug 7142 is fixed in 5.0
This commit is contained in:
parent
819db2471c
commit
99bc9607e1
@ -470,12 +470,12 @@ def id 8 3 1 N 32929 0 63
|
||||
def select_type 253 19 6 N 1 31 8
|
||||
def table 253 64 2 Y 0 31 8
|
||||
def type 253 10 3 Y 0 31 8
|
||||
def possible_keys 252 4096 0 Y 0 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 32928 0 63
|
||||
def ref 252 1024 0 Y 0 31 8
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 Y 32928 0 63
|
||||
def Extra 252 255 14 N 1 31 8
|
||||
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 ;
|
||||
@ -486,12 +486,12 @@ def id 8 3 1 N 32929 0 63
|
||||
def select_type 253 19 6 N 1 31 8
|
||||
def table 253 64 2 Y 0 31 8
|
||||
def type 253 10 5 Y 0 31 8
|
||||
def possible_keys 252 4096 7 Y 0 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 32928 0 63
|
||||
def ref 252 1024 0 Y 0 31 8
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 Y 32928 0 63
|
||||
def Extra 252 255 27 N 1 31 8
|
||||
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
|
||||
drop table if exists t2;
|
||||
|
@ -1153,12 +1153,12 @@ def id 8 3 1 N 32929 0 63
|
||||
def select_type 253 19 6 N 1 31 8
|
||||
def table 253 64 2 Y 0 31 8
|
||||
def type 253 10 3 Y 0 31 8
|
||||
def possible_keys 252 4096 0 Y 0 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 32928 0 63
|
||||
def ref 252 1024 0 Y 0 31 8
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 Y 32928 0 63
|
||||
def Extra 252 255 0 N 1 31 8
|
||||
def Extra 253 255 0 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 2
|
||||
drop table if exists t2 ;
|
||||
|
@ -1153,12 +1153,12 @@ def id 8 3 1 N 32929 0 63
|
||||
def select_type 253 19 6 N 1 31 8
|
||||
def table 253 64 2 Y 0 31 8
|
||||
def type 253 10 3 Y 0 31 8
|
||||
def possible_keys 252 4096 0 Y 0 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 32928 0 63
|
||||
def ref 252 1024 0 Y 0 31 8
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 Y 32928 0 63
|
||||
def Extra 252 255 0 N 1 31 8
|
||||
def Extra 253 255 0 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 2
|
||||
test_sequence
|
||||
|
@ -1154,12 +1154,12 @@ def id 8 3 1 N 32929 0 63
|
||||
def select_type 253 19 6 N 1 31 8
|
||||
def table 253 64 2 Y 0 31 8
|
||||
def type 253 10 3 Y 0 31 8
|
||||
def possible_keys 252 4096 0 Y 0 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 32928 0 63
|
||||
def ref 252 1024 0 Y 0 31 8
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 Y 32928 0 63
|
||||
def Extra 252 255 0 N 1 31 8
|
||||
def Extra 253 255 0 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 2
|
||||
test_sequence
|
||||
|
@ -1196,12 +1196,12 @@ def id 8 3 1 N 32929 0 63
|
||||
def select_type 253 19 6 N 1 31 8
|
||||
def table 253 64 2 Y 0 31 8
|
||||
def type 253 10 3 Y 0 31 8
|
||||
def possible_keys 252 4096 0 Y 0 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 32928 0 63
|
||||
def ref 252 1024 0 Y 0 31 8
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 Y 32928 0 63
|
||||
def Extra 252 255 0 N 1 31 8
|
||||
def Extra 253 255 0 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 2
|
||||
test_sequence
|
||||
@ -4210,12 +4210,12 @@ def id 8 3 1 N 32929 0 63
|
||||
def select_type 253 19 6 N 1 31 8
|
||||
def table 253 64 2 Y 0 31 8
|
||||
def type 253 10 3 Y 0 31 8
|
||||
def possible_keys 252 4096 0 Y 0 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 32928 0 63
|
||||
def ref 252 1024 0 Y 0 31 8
|
||||
def ref 253 1024 0 Y 0 31 8
|
||||
def rows 8 10 1 Y 32928 0 63
|
||||
def Extra 252 255 0 N 1 31 8
|
||||
def Extra 253 255 0 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 2
|
||||
test_sequence
|
||||
|
@ -1973,14 +1973,7 @@ void Item::make_field(Send_field *tmp_field)
|
||||
|
||||
void Item_empty_string::make_field(Send_field *tmp_field)
|
||||
{
|
||||
enum_field_types type = FIELD_TYPE_VAR_STRING;
|
||||
if (max_length >= 16777216)
|
||||
type = FIELD_TYPE_LONG_BLOB;
|
||||
else if (max_length >= 65536)
|
||||
type = FIELD_TYPE_MEDIUM_BLOB;
|
||||
else if (max_length >= 256)
|
||||
type = FIELD_TYPE_BLOB;
|
||||
init_make_field(tmp_field, type);
|
||||
init_make_field(tmp_field,FIELD_TYPE_VAR_STRING);
|
||||
}
|
||||
|
||||
|
||||
|
@ -638,33 +638,6 @@ int mysqld_extend_show_tables(THD *thd,const char *db,const char *wild)
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
/*
|
||||
returns the length of the longest type on the given table.
|
||||
|
||||
This is used so that show fields will return the data using the proper
|
||||
lengths instead of forcing columns such as type to always return with a
|
||||
given length.
|
||||
*/
|
||||
|
||||
uint get_longest_type_in_table(TABLE *table, const char *wild)
|
||||
{
|
||||
Field **ptr,*field;
|
||||
char tmp[MAX_FIELD_WIDTH];
|
||||
uint max_len= 0;
|
||||
|
||||
for (ptr=table->field; (field= *ptr); ptr++)
|
||||
{
|
||||
if (!wild || !wild[0] ||
|
||||
!wild_case_compare(system_charset_info, field->field_name,wild))
|
||||
{
|
||||
String type(tmp,sizeof(tmp), system_charset_info);
|
||||
field->sql_type(type);
|
||||
max_len= max(max_len, type.length());
|
||||
}
|
||||
}
|
||||
return max_len;
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
** List all columns in a table_list->real_name
|
||||
@ -694,14 +667,9 @@ mysqld_show_fields(THD *thd, TABLE_LIST *table_list,const char *wild,
|
||||
#ifndef NO_EMBEDDED_ACCESS_CHECKS
|
||||
(void) get_table_grant(thd, table_list);
|
||||
#endif
|
||||
|
||||
/* we scan for the longest since long enum types can exceed 40 */
|
||||
uint max_len = get_longest_type_in_table(table, wild);
|
||||
|
||||
List<Item> field_list;
|
||||
field_list.push_back(new Item_empty_string("Field",NAME_LEN));
|
||||
field_list.push_back(new Item_empty_string("Type",
|
||||
max_len > 40 ? max_len : 40));
|
||||
field_list.push_back(new Item_empty_string("Type", 40));
|
||||
if (verbose)
|
||||
field_list.push_back(new Item_empty_string("Collation",40));
|
||||
field_list.push_back(new Item_empty_string("Null",1));
|
||||
|
@ -7182,7 +7182,7 @@ static void test_explain_bug()
|
||||
verify_prepare_field(result, 3, "type", "", MYSQL_TYPE_VAR_STRING,
|
||||
"", "", "", 10, 0);
|
||||
|
||||
verify_prepare_field(result, 4, "possible_keys", "", MYSQL_TYPE_BLOB,
|
||||
verify_prepare_field(result, 4, "possible_keys", "", MYSQL_TYPE_VAR_STRING,
|
||||
"", "", "", NAME_LEN*64, 0);
|
||||
|
||||
verify_prepare_field(result, 5, "key", "", MYSQL_TYPE_VAR_STRING,
|
||||
@ -7195,13 +7195,13 @@ static void test_explain_bug()
|
||||
(mysql_get_server_version(mysql) <= 50000 ? 3 : 4096),
|
||||
0);
|
||||
|
||||
verify_prepare_field(result, 7, "ref", "", MYSQL_TYPE_BLOB,
|
||||
verify_prepare_field(result, 7, "ref", "", MYSQL_TYPE_VAR_STRING,
|
||||
"", "", "", NAME_LEN*16, 0);
|
||||
|
||||
verify_prepare_field(result, 8, "rows", "", MYSQL_TYPE_LONGLONG,
|
||||
"", "", "", 10, 0);
|
||||
|
||||
verify_prepare_field(result, 9, "Extra", "", MYSQL_TYPE_BLOB,
|
||||
verify_prepare_field(result, 9, "Extra", "", MYSQL_TYPE_VAR_STRING,
|
||||
"", "", "", 255, 0);
|
||||
|
||||
mysql_free_result(result);
|
||||
|
Loading…
x
Reference in New Issue
Block a user