From ac9e3a9633bf93be4d97a2a1888fc5ac8c6947db Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 16 Nov 2004 00:29:49 +0300 Subject: [PATCH] valgrind error fix --- mysql-test/r/information_schema.result | 4 +-- sql/sql_base.cc | 2 +- sql/sql_show.cc | 41 +++++++++++++------------- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result index 3c35c6d557d..29337decb5e 100644 --- a/mysql-test/r/information_schema.result +++ b/mysql-test/r/information_schema.result @@ -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 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 -NULL testtets t1 a 1 int 0 11 4 0 NULL int(11) NULL YES NULL -NULL testtets t1 b 2 varchar 30 30 30 31 latin1 varchar(30) latin1_swedish_ci YES MUL 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 select,insert,update,references drop view v1; drop tables testtets.t4, testtets.t1, t2, t3; drop database testtets; diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 629216249cd..f2209fe3d90 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -1938,7 +1938,7 @@ int lock_tables(THD *thd, TABLE_LIST *tables, uint count) return -1; for (table= tables; table; table= table->next_global) { - if (!table->placeholder()) + if (!table->placeholder() && !table->schema_table) *(ptr++)= table->table; } if (!(thd->lock=mysql_lock_tables(thd,start, (uint) (ptr - start)))) diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 17e6866f565..fb1cfdef6d4 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -2315,30 +2315,28 @@ static int get_schema_column_record(THD *thd, struct st_table_list *tables, if (field->unireg_check == Field::NEXT_NUMBER) end=strmov(tmp,"auto_increment"); table->field[16]->store(tmp, (uint) (end-tmp), cs); - if (thd->lex->verbose) - { - end=tmp; + + end=tmp; #ifndef NO_EMBEDDED_ACCESS_CHECKS - uint col_access; - check_access(thd,SELECT_ACL | EXTRA_ACL, base_name, - &tables->grant.privilege, 0, 0); - col_access= get_column_grant(thd, &tables->grant, tables->db, - tables->real_name, - field->field_name) & COL_ACLS; - for (uint bitnr=0; col_access ; col_access>>=1,bitnr++) + uint col_access; + check_access(thd,SELECT_ACL | EXTRA_ACL, base_name, + &tables->grant.privilege, 0, 0); + col_access= get_column_grant(thd, &tables->grant, tables->db, + tables->real_name, + field->field_name) & COL_ACLS; + 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 - end=strmov(end,""); -#endif - 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); } +#else + end=strmov(end,""); +#endif + 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->file->write_row(table->record[0]); } } @@ -3111,6 +3109,7 @@ bool get_schema_tables_result(JOIN *join) break; TABLE_LIST *table_list= tab->table->pos_in_table_list; 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()) { @@ -3126,12 +3125,14 @@ bool get_schema_tables_result(JOIN *join) thd->derived_tables= old_derived_tables; thd->lock= sql_lock; table_list->next_global= save_next_global; + thd->lex->query_tables_last= query_tables_last; DBUG_RETURN(TRUE); } thd->lock= sql_lock; thd->lex->sql_command= SQLCOM_SELECT; thd->derived_tables= old_derived_tables; table_list->next_global= save_next_global; + thd->lex->query_tables_last= query_tables_last; } } DBUG_RETURN(FALSE);