diff options
author | unknown <konstantin@mysql.com> | 2004-10-12 21:16:07 +0400 |
---|---|---|
committer | unknown <konstantin@mysql.com> | 2004-10-12 21:16:07 +0400 |
commit | d007600b9b83818b27e916457e166dccdf7c729c (patch) | |
tree | c334b8654080fb8a1b9e9b5e7a353085ebd4b6c1 | |
parent | 4855ff515267f32070504023d527feb807882aa1 (diff) | |
download | mariadb-git-d007600b9b83818b27e916457e166dccdf7c729c.tar.gz |
ps.test, ps.result: a test case for Bug#6042 "constants
propogation works only once (prepared statements)".
mysql-test/r/ps.result:
Test case for Bug#6042: test results fixed
mysql-test/t/ps.test:
A test case for Bug#6042 "constants propogation works only once
(prepared statements).
-rw-r--r-- | mysql-test/r/ps.result | 18 | ||||
-rw-r--r-- | mysql-test/t/ps.test | 21 |
2 files changed, 39 insertions, 0 deletions
diff --git a/mysql-test/r/ps.result b/mysql-test/r/ps.result index c10cb7bb25a..df5fa5fe999 100644 --- a/mysql-test/r/ps.result +++ b/mysql-test/r/ps.result @@ -318,3 +318,21 @@ execute stmt; a drop table t1; deallocate prepare stmt; +create table t1 (a int, b int); +insert into t1 (a, b) values (1,1), (1,2), (2,1), (2,2); +prepare stmt from +"explain select * from t1 where t1.a=2 and t1.a=t1.b and t1.b > 1 + ?"; +set @v=5; +execute stmt using @v; +id select_type table type possible_keys key key_len ref rows Extra +- - - - - - - - NULL Impossible WHERE +set @v=0; +execute stmt using @v; +id select_type table type possible_keys key key_len ref rows Extra +- - - - - - - - 4 Using where +set @v=5; +execute stmt using @v; +id select_type table type possible_keys key key_len ref rows Extra +- - - - - - - - NULL Impossible WHERE +drop table t1; +deallocate prepare stmt; diff --git a/mysql-test/t/ps.test b/mysql-test/t/ps.test index 42f6d4d0f64..76c7fb7c2e7 100644 --- a/mysql-test/t/ps.test +++ b/mysql-test/t/ps.test @@ -342,4 +342,25 @@ execute stmt; drop table t1; deallocate prepare stmt; +# +# Test case for Bug#6042 "constants propogation works only once (prepared +# statements): check that the query plan changes whenever we change +# placeholder value. +# +create table t1 (a int, b int); +insert into t1 (a, b) values (1,1), (1,2), (2,1), (2,2); +prepare stmt from +"explain select * from t1 where t1.a=2 and t1.a=t1.b and t1.b > 1 + ?"; +--replace_column 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - +set @v=5; +execute stmt using @v; +--replace_column 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - +set @v=0; +execute stmt using @v; +--replace_column 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - +set @v=5; +execute stmt using @v; +drop table t1; +deallocate prepare stmt; + |