Permalink
Show file tree
Hide file tree
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
MDEV-15738 Server crashes in my_strcasecmp_utf8 on query from I_S wit…
…h UNION executed as PS Problem was the Item_field::Item_field(THD*, Field*) had old code that put a null pointer in orig_field_names. Now, when we have proper re-prepare if table definition changes, this is not needed anymore.
- Loading branch information
Showing
3 changed files
with
97 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| PREPARE stmt1 FROM " | ||
| SELECT table_name FROM information_schema.tables | ||
| WHERE table_name = 't1_first' | ||
| UNION ALL | ||
| SELECT table_name FROM information_schema.tables | ||
| WHERE table_name = 't1_second'"; | ||
| execute stmt1; | ||
| table_name | ||
| execute stmt1; | ||
| table_name | ||
| create or replace table t1 (a int primary key, table_name char(40)); | ||
| insert into t1 values(1,"t1_first"); | ||
| insert into t1 values(2,"t1_second"); | ||
| PREPARE stmt2 FROM " | ||
| SELECT table_name FROM t1 | ||
| WHERE table_name = 't1_first' | ||
| UNION ALL | ||
| SELECT table_name FROM t1 | ||
| WHERE table_name = 't1_second'"; | ||
| execute stmt2; | ||
| table_name | ||
| t1_first | ||
| t1_second | ||
| execute stmt2; | ||
| table_name | ||
| t1_first | ||
| t1_second | ||
| flush tables; | ||
| execute stmt2; | ||
| table_name | ||
| t1_first | ||
| t1_second | ||
| alter table t1 add column b int; | ||
| execute stmt2; | ||
| table_name | ||
| t1_first | ||
| t1_second | ||
| execute stmt2; | ||
| table_name | ||
| t1_first | ||
| t1_second | ||
| drop table t1; | ||
| execute stmt2; | ||
| ERROR 42S02: Table 'test.t1' doesn't exist | ||
| create or replace table t1 (a int primary key, table_name char(40)); | ||
| insert into t1 values(1,"t1_first"); | ||
| execute stmt2; | ||
| table_name | ||
| t1_first | ||
| deallocate prepare stmt1; | ||
| deallocate prepare stmt2; | ||
| drop table t1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| # | ||
| # MDEV-15738 Server crashes in my_strcasecmp_utf8 on query from I_S with UNION | ||
| # executed as PS | ||
| # | ||
|
|
||
| PREPARE stmt1 FROM " | ||
| SELECT table_name FROM information_schema.tables | ||
| WHERE table_name = 't1_first' | ||
| UNION ALL | ||
| SELECT table_name FROM information_schema.tables | ||
| WHERE table_name = 't1_second'"; | ||
| execute stmt1; | ||
| execute stmt1; | ||
|
|
||
| create or replace table t1 (a int primary key, table_name char(40)); | ||
| insert into t1 values(1,"t1_first"); | ||
| insert into t1 values(2,"t1_second"); | ||
|
|
||
| PREPARE stmt2 FROM " | ||
| SELECT table_name FROM t1 | ||
| WHERE table_name = 't1_first' | ||
| UNION ALL | ||
| SELECT table_name FROM t1 | ||
| WHERE table_name = 't1_second'"; | ||
|
|
||
| execute stmt2; | ||
| execute stmt2; | ||
| flush tables; | ||
| execute stmt2; | ||
| alter table t1 add column b int; | ||
| execute stmt2; | ||
| execute stmt2; | ||
| drop table t1; | ||
| --error ER_NO_SUCH_TABLE | ||
| execute stmt2; | ||
| create or replace table t1 (a int primary key, table_name char(40)); | ||
| insert into t1 values(1,"t1_first"); | ||
| execute stmt2; | ||
|
|
||
| deallocate prepare stmt1; | ||
| deallocate prepare stmt2; | ||
| drop table t1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters