diff options
author | unknown <sanja@askmonty.org> | 2013-09-12 17:05:29 +0300 |
---|---|---|
committer | unknown <sanja@askmonty.org> | 2013-09-12 17:05:29 +0300 |
commit | 1a01e3b959102402de1547fb2c7b912269032882 (patch) | |
tree | 851353bd1fa398cb98e82afe30c4578f17838c1f | |
parent | 7e4845beea1a86dc53dc67908a2779ea2f0190a2 (diff) | |
download | mariadb-git-1a01e3b959102402de1547fb2c7b912269032882.tar.gz |
MDEV-5005: Subquery in Procedure somehow affecting temporary table
Removed unneeded set of TABLE_LIST::skip_temporary flag.
-rw-r--r-- | mysql-test/r/derived.result | 23 | ||||
-rw-r--r-- | mysql-test/t/derived.test | 32 | ||||
-rw-r--r-- | sql/sql_lex.cc | 3 |
3 files changed, 55 insertions, 3 deletions
diff --git a/mysql-test/r/derived.result b/mysql-test/r/derived.result index a9247ff41bf..1042ee79e8c 100644 --- a/mysql-test/r/derived.result +++ b/mysql-test/r/derived.result @@ -416,4 +416,27 @@ MIN(i) 1 DROP TABLE t1; # End of 5.0 tests +# +# MDEV-5005: Subquery in Procedure somehow affecting temporary table +# +create temporary table if not exists t1 (id int not null); +select A.* from ( select tt.* from t1 tt ) A; +id +prepare stmt from "select A.* from ( select tt.* from t1 tt ) A "; +execute stmt; +id +deallocate prepare stmt; +drop temporary table t1; +CREATE PROCEDURE p () +BEGIN +select A.* from ( select tt.* from t1 tt ) A ; +END | +create temporary table if not exists t1 (id int not null); +CALL p(); +id +CALL p(); +id +drop procedure p; +drop temporary table t1; +# End of 5.3 tests set optimizer_switch=@save_derived_optimizer_switch; diff --git a/mysql-test/t/derived.test b/mysql-test/t/derived.test index 7defc55b473..b0db0e8100a 100644 --- a/mysql-test/t/derived.test +++ b/mysql-test/t/derived.test @@ -320,4 +320,36 @@ DROP TABLE t1; --echo # End of 5.0 tests +--echo # +--echo # MDEV-5005: Subquery in Procedure somehow affecting temporary table +--echo # + +create temporary table if not exists t1 (id int not null); + +select A.* from ( select tt.* from t1 tt ) A; + +prepare stmt from "select A.* from ( select tt.* from t1 tt ) A "; +execute stmt; +deallocate prepare stmt; + +drop temporary table t1; + +--delimiter | +CREATE PROCEDURE p () +BEGIN + select A.* from ( select tt.* from t1 tt ) A ; +END | +--delimiter ; + +create temporary table if not exists t1 (id int not null); + +CALL p(); +CALL p(); + +drop procedure p; + +drop temporary table t1; + +--echo # End of 5.3 tests + set optimizer_switch=@save_derived_optimizer_switch; diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index ab50ad99c28..6f34dd23f36 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -3436,10 +3436,7 @@ void SELECT_LEX::mark_as_belong_to_derived(TABLE_LIST *derived) TABLE_LIST *tl; List_iterator<TABLE_LIST> ti(leaf_tables); while ((tl= ti++)) - { - tl->skip_temporary= 1; tl->belong_to_derived= derived; - } } |