Commit 1436494a authored by monty@mysql.com's avatar monty@mysql.com

Merge bk-internal.mysql.com:/home/bk/mysql-5.0

into  mysql.com:/home/my/mysql-5.0
parents fee9c135 49a30ef5
...@@ -185,16 +185,16 @@ enum db_type ha_resolve_by_name(const char *name, uint namelen) ...@@ -185,16 +185,16 @@ enum db_type ha_resolve_by_name(const char *name, uint namelen)
handlerton **types; handlerton **types;
if (thd && !my_strnncoll(&my_charset_latin1, if (thd && !my_strnncoll(&my_charset_latin1,
(const uchar *)name, namelen, (const uchar *)name, namelen,
(const uchar *)"DEFAULT", 7)) (const uchar *)"DEFAULT", 7))
return (enum db_type) thd->variables.table_type; return (enum db_type) thd->variables.table_type;
retest: retest:
for (types= sys_table_types; *types; types++) for (types= sys_table_types; *types; types++)
{ {
if (!my_strnncoll(&my_charset_latin1, if (!my_strnncoll(&my_charset_latin1,
(const uchar *)name, namelen, (const uchar *)name, namelen,
(const uchar *)(*types)->name, strlen((*types)->name))) (const uchar *)(*types)->name, strlen((*types)->name)))
return (enum db_type) (*types)->db_type; return (enum db_type) (*types)->db_type;
} }
...@@ -204,8 +204,9 @@ enum db_type ha_resolve_by_name(const char *name, uint namelen) ...@@ -204,8 +204,9 @@ enum db_type ha_resolve_by_name(const char *name, uint namelen)
for (table_alias= sys_table_aliases; table_alias->type; table_alias++) for (table_alias= sys_table_aliases; table_alias->type; table_alias++)
{ {
if (!my_strnncoll(&my_charset_latin1, if (!my_strnncoll(&my_charset_latin1,
(const uchar *)name, namelen, (const uchar *)name, namelen,
(const uchar *)table_alias->alias, strlen(table_alias->alias))) (const uchar *)table_alias->alias,
strlen(table_alias->alias)))
{ {
name= table_alias->type; name= table_alias->type;
namelen= strlen(name); namelen= strlen(name);
......
...@@ -4644,7 +4644,7 @@ void Item_ref::cleanup() ...@@ -4644,7 +4644,7 @@ void Item_ref::cleanup()
void Item_ref::print(String *str) void Item_ref::print(String *str)
{ {
if (ref && *ref) if (ref)
(*ref)->print(str); (*ref)->print(str);
else else
Item_ident::print(str); Item_ident::print(str);
...@@ -4830,7 +4830,7 @@ void Item_ref::make_field(Send_field *field) ...@@ -4830,7 +4830,7 @@ void Item_ref::make_field(Send_field *field)
void Item_ref_null_helper::print(String *str) void Item_ref_null_helper::print(String *str)
{ {
str->append("<ref_null_helper>(", 18); str->append("<ref_null_helper>(", 18);
if (ref && *ref) if (ref)
(*ref)->print(str); (*ref)->print(str);
else else
str->append('?'); str->append('?');
......
...@@ -310,6 +310,7 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat, ...@@ -310,6 +310,7 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat,
char *buff, *next_chunk, *buff_end; char *buff, *next_chunk, *buff_end;
if (!(next_chunk= buff= my_malloc(n_length, MYF(MY_WME)))) if (!(next_chunk= buff= my_malloc(n_length, MYF(MY_WME))))
goto err; goto err;
buff_end= buff + n_length;
if (my_pread(file, (byte*)buff, n_length, record_offset + share->reclength, if (my_pread(file, (byte*)buff, n_length, record_offset + share->reclength,
MYF(MY_NABP))) MYF(MY_NABP)))
{ {
...@@ -324,13 +325,14 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat, ...@@ -324,13 +325,14 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat,
goto err; goto err;
} }
next_chunk+= share->connect_string.length + 2; next_chunk+= share->connect_string.length + 2;
buff_end= buff + n_length;
if (next_chunk + 2 < buff_end) if (next_chunk + 2 < buff_end)
{ {
uint str_db_type_length= uint2korr(next_chunk); uint str_db_type_length= uint2korr(next_chunk);
share->db_type= ha_resolve_by_name(next_chunk + 2, str_db_type_length); share->db_type= ha_resolve_by_name(next_chunk + 2, str_db_type_length);
DBUG_PRINT("enter", ("Setting dbtype to: %d - %d - '%.*s'\n", share->db_type, DBUG_PRINT("enter", ("Setting dbtype to: %d - %d - '%.*s'\n",
str_db_type_length, str_db_type_length, next_chunk + 2)); share->db_type,
str_db_type_length, str_db_type_length,
next_chunk + 2));
next_chunk+= str_db_type_length + 2; next_chunk+= str_db_type_length + 2;
} }
my_free(buff, MYF(0)); my_free(buff, MYF(0));
......
...@@ -119,10 +119,10 @@ bool mysql_create_frm(THD *thd, my_string file_name, ...@@ -119,10 +119,10 @@ bool mysql_create_frm(THD *thd, my_string file_name,
reclength=uint2korr(forminfo+266); reclength=uint2korr(forminfo+266);
/* Calculate extra data segment length */ /* Calculate extra data segment length */
str_db_type.str= (char *)ha_get_storage_engine(create_info->db_type); str_db_type.str= (char *) ha_get_storage_engine(create_info->db_type);
str_db_type.length= strlen(str_db_type.str); str_db_type.length= strlen(str_db_type.str);
create_info->extra_size= 2 + str_db_type.length; create_info->extra_size= (2 + str_db_type.length +
create_info->extra_size+= create_info->connect_string.length + 2; 2 + create_info->connect_string.length);
if ((file=create_frm(thd, file_name, db, table, reclength, fileinfo, if ((file=create_frm(thd, file_name, db, table, reclength, fileinfo,
create_info, keys)) < 0) create_info, keys)) < 0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment