Commit 7c4c0399 authored by unknown's avatar unknown

valgrind error fix

parent 008fbb22
...@@ -123,8 +123,8 @@ TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION DATA_TYPE CHA ...@@ -123,8 +123,8 @@ TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION DATA_TYPE CHA
NULL testtets t1 a 1 int 0 11 4 0 NULL int(11) NULL YES NULL select,insert,update,references NULL testtets t1 a 1 int 0 11 4 0 NULL int(11) NULL YES NULL select,insert,update,references
show columns * where table_name = "t1"; show columns * where table_name = "t1";
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME TYPE COLLATION_NAME IS_NULLABLE KEY COLUMN_DEFAULT EXTRA PRIVILEGES COMMENT TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME TYPE COLLATION_NAME IS_NULLABLE KEY COLUMN_DEFAULT EXTRA PRIVILEGES COMMENT
NULL testtets t1 a 1 int 0 11 4 0 NULL int(11) NULL YES NULL NULL testtets t1 a 1 int 0 11 4 0 NULL int(11) NULL YES NULL select,insert,update,references
NULL testtets t1 b 2 varchar 30 30 30 31 latin1 varchar(30) latin1_swedish_ci YES MUL NULL NULL testtets t1 b 2 varchar 30 30 30 31 latin1 varchar(30) latin1_swedish_ci YES MUL NULL select,insert,update,references
drop view v1; drop view v1;
drop tables testtets.t4, testtets.t1, t2, t3; drop tables testtets.t4, testtets.t1, t2, t3;
drop database testtets; drop database testtets;
......
...@@ -1938,7 +1938,7 @@ int lock_tables(THD *thd, TABLE_LIST *tables, uint count) ...@@ -1938,7 +1938,7 @@ int lock_tables(THD *thd, TABLE_LIST *tables, uint count)
return -1; return -1;
for (table= tables; table; table= table->next_global) for (table= tables; table; table= table->next_global)
{ {
if (!table->placeholder()) if (!table->placeholder() && !table->schema_table)
*(ptr++)= table->table; *(ptr++)= table->table;
} }
if (!(thd->lock=mysql_lock_tables(thd,start, (uint) (ptr - start)))) if (!(thd->lock=mysql_lock_tables(thd,start, (uint) (ptr - start))))
......
...@@ -2315,30 +2315,28 @@ static int get_schema_column_record(THD *thd, struct st_table_list *tables, ...@@ -2315,30 +2315,28 @@ static int get_schema_column_record(THD *thd, struct st_table_list *tables,
if (field->unireg_check == Field::NEXT_NUMBER) if (field->unireg_check == Field::NEXT_NUMBER)
end=strmov(tmp,"auto_increment"); end=strmov(tmp,"auto_increment");
table->field[16]->store(tmp, (uint) (end-tmp), cs); table->field[16]->store(tmp, (uint) (end-tmp), cs);
if (thd->lex->verbose)
{ end=tmp;
end=tmp;
#ifndef NO_EMBEDDED_ACCESS_CHECKS #ifndef NO_EMBEDDED_ACCESS_CHECKS
uint col_access; uint col_access;
check_access(thd,SELECT_ACL | EXTRA_ACL, base_name, check_access(thd,SELECT_ACL | EXTRA_ACL, base_name,
&tables->grant.privilege, 0, 0); &tables->grant.privilege, 0, 0);
col_access= get_column_grant(thd, &tables->grant, tables->db, col_access= get_column_grant(thd, &tables->grant, tables->db,
tables->real_name, tables->real_name,
field->field_name) & COL_ACLS; field->field_name) & COL_ACLS;
for (uint bitnr=0; col_access ; col_access>>=1,bitnr++) for (uint bitnr=0; col_access ; col_access>>=1,bitnr++)
{
if (col_access & 1)
{ {
if (col_access & 1) *end++=',';
{ end=strmov(end,grant_types.type_names[bitnr]);
*end++=',';
end=strmov(end,grant_types.type_names[bitnr]);
}
} }
}
#else #else
end=strmov(end,""); end=strmov(end,"");
#endif #endif
table->field[17]->store(tmp+1,end == tmp ? 0 : (uint) (end-tmp-1), cs); table->field[17]->store(tmp+1,end == tmp ? 0 : (uint) (end-tmp-1), cs);
table->field[18]->store(field->comment.str, field->comment.length, cs); table->field[18]->store(field->comment.str, field->comment.length, cs);
}
table->file->write_row(table->record[0]); table->file->write_row(table->record[0]);
} }
} }
...@@ -3111,6 +3109,7 @@ bool get_schema_tables_result(JOIN *join) ...@@ -3111,6 +3109,7 @@ bool get_schema_tables_result(JOIN *join)
break; break;
TABLE_LIST *table_list= tab->table->pos_in_table_list; TABLE_LIST *table_list= tab->table->pos_in_table_list;
TABLE_LIST *save_next_global= table_list->next_global; TABLE_LIST *save_next_global= table_list->next_global;
TABLE_LIST **query_tables_last= thd->lex->query_tables_last;
if (table_list->schema_table && thd->fill_derived_tables()) if (table_list->schema_table && thd->fill_derived_tables())
{ {
...@@ -3126,12 +3125,14 @@ bool get_schema_tables_result(JOIN *join) ...@@ -3126,12 +3125,14 @@ bool get_schema_tables_result(JOIN *join)
thd->derived_tables= old_derived_tables; thd->derived_tables= old_derived_tables;
thd->lock= sql_lock; thd->lock= sql_lock;
table_list->next_global= save_next_global; table_list->next_global= save_next_global;
thd->lex->query_tables_last= query_tables_last;
DBUG_RETURN(TRUE); DBUG_RETURN(TRUE);
} }
thd->lock= sql_lock; thd->lock= sql_lock;
thd->lex->sql_command= SQLCOM_SELECT; thd->lex->sql_command= SQLCOM_SELECT;
thd->derived_tables= old_derived_tables; thd->derived_tables= old_derived_tables;
table_list->next_global= save_next_global; table_list->next_global= save_next_global;
thd->lex->query_tables_last= query_tables_last;
} }
} }
DBUG_RETURN(FALSE); DBUG_RETURN(FALSE);
......
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