mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
Fix bug#13535 Incorrect result from SELECT statement after SHOW TABLE STATUS
After SHOW TABLE STATUS last_insert_id wasn't cleaned, and next select erroneously rewrites WHERE condition and returs a row; 5.0 isn't affected because of different SHOW TABLE STATUS handling. last_insert_id cleanup added to mysqld_extend_show_tables(). sql/sql_show.cc: Fix bug #13535 Incorrect result from SELECT statement after SHOW TABLE STATUS Added last_insert_id cleanup after SHOW TABLE STATUS command. mysql-test/t/select.test: Test case for bug #13535 Incorrect result from SELECT statement after SHOW TABLE STATUS mysql-test/r/select.result: Test case for bug #13535 Incorrect result from SELECT statement after SHOW TABLE STATUS
This commit is contained in:
parent
7b8a6e458e
commit
78e8833f39
3 changed files with 29 additions and 3 deletions
|
@ -2626,3 +2626,13 @@ f1
|
|||
select f1 from t1,t2 where f1=f2 and (f1,f2) = ((1,NULL));
|
||||
f1
|
||||
drop table t1,t2;
|
||||
create table t1 (f1 int not null auto_increment primary key, f2 varchar(10));
|
||||
create table t11 like t1;
|
||||
insert into t1 values(1,""),(2,"");
|
||||
show table status like 't1%';
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 MyISAM 9 Dynamic 2 20 X X X X X X X X latin1_swedish_ci NULL
|
||||
t11 MyISAM 9 Dynamic 0 0 X X X X X X X X latin1_swedish_ci NULL
|
||||
select 123 as a from t1 where f1 is null;
|
||||
a
|
||||
drop table t1,t11;
|
||||
|
|
|
@ -2174,4 +2174,14 @@ select f1 from t1,t2 where f1=f2 and (f1,NULL) = ((1,1));
|
|||
select f1 from t1,t2 where f1=f2 and (f1,f2) = ((1,NULL));
|
||||
drop table t1,t2;
|
||||
|
||||
#
|
||||
# Bug #13535
|
||||
#
|
||||
create table t1 (f1 int not null auto_increment primary key, f2 varchar(10));
|
||||
create table t11 like t1;
|
||||
insert into t1 values(1,""),(2,"");
|
||||
--replace_column 7 X 8 X 9 X 10 X 11 X 12 X 13 X 14 X
|
||||
show table status like 't1%';
|
||||
select 123 as a from t1 where f1 is null;
|
||||
drop table t1,t11;
|
||||
# End of 4.1 tests
|
||||
|
|
|
@ -462,6 +462,7 @@ int mysqld_extend_show_tables(THD *thd,const char *db,const char *wild)
|
|||
TABLE *table;
|
||||
Protocol *protocol= thd->protocol;
|
||||
TIME time;
|
||||
int res= 0;
|
||||
DBUG_ENTER("mysqld_extend_show_tables");
|
||||
|
||||
(void) sprintf(path,"%s/%s",mysql_data_home,db);
|
||||
|
@ -632,10 +633,15 @@ int mysqld_extend_show_tables(THD *thd,const char *db,const char *wild)
|
|||
close_thread_tables(thd,0);
|
||||
}
|
||||
if (protocol->write())
|
||||
DBUG_RETURN(-1);
|
||||
{
|
||||
res= -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
send_eof(thd);
|
||||
DBUG_RETURN(0);
|
||||
thd->insert_id(0);
|
||||
if (!res)
|
||||
send_eof(thd);
|
||||
DBUG_RETURN(res);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue