Commit 1354b1bd authored by joerg@mysql.com's avatar joerg@mysql.com

New tests for bug#1644 and bug#1676,

test for bug#1180 changed to table naming scheme 't#'.
parent 09c09f04
use test; drop table if exists t1, t2;
drop table if exists test_select; CREATE TABLE t1(session_id char(9) NOT NULL);
Warnings: INSERT INTO t1 VALUES ("abc");
Note 1051 Unknown table 'test_select' SELECT * FROM t1;
CREATE TABLE test_select(session_id char(9) NOT NULL);
INSERT INTO test_select VALUES ("abc");
SELECT * FROM test_select;
session_id session_id
abc abc
prepare st_1180 from 'SELECT * FROM test_select WHERE ?="1111" and session_id = "abc"'; prepare st_1180 from 'SELECT * FROM t1 WHERE ?="1111" and session_id = "abc"';
set @arg1= 'abc'; set @arg1= 'abc';
execute st_1180 using @arg1; execute st_1180 using @arg1;
session_id session_id
...@@ -18,16 +15,13 @@ abc ...@@ -18,16 +15,13 @@ abc
set @arg1= 'abc'; set @arg1= 'abc';
execute st_1180 using @arg1; execute st_1180 using @arg1;
session_id session_id
drop table test_select; drop table t1;
drop table if exists tab_many_null; create table t1 (
Warnings:
Note 1051 Unknown table 'tab_many_null'
create table tab_many_null (
c_01 char(6), c_02 integer, c_03 real, c_04 int(3), c_05 varchar(20), c_01 char(6), c_02 integer, c_03 real, c_04 int(3), c_05 varchar(20),
c_06 date, c_07 char(1), c_08 real, c_09 int(11), c_10 time, c_06 date, c_07 char(1), c_08 real, c_09 int(11), c_10 time,
c_11 char(6), c_12 integer, c_13 real, c_14 int(3), c_15 varchar(20), c_11 char(6), c_12 integer, c_13 real, c_14 int(3), c_15 varchar(20),
c_16 date, c_17 char(1), c_18 real, c_19 int(11), c_20 text); c_16 date, c_17 char(1), c_18 real, c_19 int(11), c_20 text);
prepare st_1644 from 'insert into tab_many_null values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'; prepare st_1644 from 'insert into t1 values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
set @arg01= 'row_1'; set @arg01= 'row_1';
set @arg02= 1; set @arg02= 1;
set @arg03= 1.1; set @arg03= 1.1;
...@@ -94,35 +88,31 @@ set @arg19= '300300300'; ...@@ -94,35 +88,31 @@ set @arg19= '300300300';
set @arg20= '12:34:56'; set @arg20= '12:34:56';
execute st_1644 using @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, @arg09, @arg10, execute st_1644 using @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, @arg09, @arg10,
@arg11, @arg12, @arg13, @arg14, @arg15, @arg16, @arg17, @arg18, @arg19, @arg20; @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, @arg17, @arg18, @arg19, @arg20;
select * from tab_many_null; select * from t1;
c_01 c_02 c_03 c_04 c_05 c_06 c_07 c_08 c_09 c_10 c_11 c_12 c_13 c_14 c_15 c_16 c_17 c_18 c_19 c_20 c_01 c_02 c_03 c_04 c_05 c_06 c_07 c_08 c_09 c_10 c_11 c_12 c_13 c_14 c_15 c_16 c_17 c_18 c_19 c_20
row_1 1 1.1 111 row_one 2004-10-12 1 1.1 100100100 12:34:56 row_1 1 1.1 111 row_one 2004-10-12 1 1.1 100100100 12:34:56 row_1 1 1.1 111 row_one 2004-10-12 1 1.1 100100100 12:34:56 row_1 1 1.1 111 row_one 2004-10-12 1 1.1 100100100 12:34:56
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
row_3 3 3.3 333 row_three 2004-10-12 3 3.3 300300300 12:34:56 row_3 3 3.3 333 row_three 2004-10-12 3 3.3 300300300 12:34:56 row_3 3 3.3 333 row_three 2004-10-12 3 3.3 300300300 12:34:56 row_3 3 3.3 333 row_three 2004-10-12 3 3.3 300300300 12:34:56
drop table tab_many_null; drop table t1;
drop table if exists table1, table2; create table t1(
Warnings:
Note 1051 Unknown table 'table1'
Note 1051 Unknown table 'table2'
create table table1(
cola varchar(50) not null, cola varchar(50) not null,
colb varchar(8) not null, colb varchar(8) not null,
colc varchar(12) not null, colc varchar(12) not null,
cold varchar(2) not null, cold varchar(2) not null,
primary key (cola, colb, cold)); primary key (cola, colb, cold));
create table table2( create table t2(
cola varchar(50) not null, cola varchar(50) not null,
colb varchar(8) not null, colb varchar(8) not null,
colc varchar(2) not null, colc varchar(2) not null,
cold float, cold float,
primary key (cold)); primary key (cold));
insert into table1 values ('aaaa', 'yyyy', 'yyyy-dd-mm', 'R'); insert into t1 values ('aaaa', 'yyyy', 'yyyy-dd-mm', 'R');
insert into table2 values ('aaaa', 'yyyy', 'R', 203), ('bbbb', 'zzzz', 'C', 201); insert into t2 values ('aaaa', 'yyyy', 'R', 203), ('bbbb', 'zzzz', 'C', 201);
prepare st_1676 from 'select a.cola, a.colb, a.cold from table1 a, table2 b where a.cola = ? and a.colb = ? and a.cold = ? and b.cola = a.cola and b.colb = a.colb and b.colc = a.cold'; prepare st_1676 from 'select a.cola, a.colb, a.cold from t1 a, t2 b where a.cola = ? and a.colb = ? and a.cold = ? and b.cola = a.cola and b.colb = a.colb and b.colc = a.cold';
set @arg0= "aaaa"; set @arg0= "aaaa";
set @arg1= "yyyy"; set @arg1= "yyyy";
set @arg2= "R"; set @arg2= "R";
execute st_1676 using @arg0, @arg1, @arg2; execute st_1676 using @arg0, @arg1, @arg2;
cola colb cold cola colb cold
aaaa yyyy R aaaa yyyy R
drop table table1, table2; drop table t1, t2;
...@@ -7,19 +7,21 @@ ...@@ -7,19 +7,21 @@
# Command sequences taken from bug report. # # Command sequences taken from bug report. #
# No other test contains the bug# as comment. # # No other test contains the bug# as comment. #
# # # #
# Tests drop/create tables 't1', 't2', ... #
# #
############################################### ###############################################
use test; --disable_warnings
drop table if exists t1, t2;
--enable_warnings
# bug#1180: optimized away part of WHERE clause cause incorect prepared satatement results # bug#1180: optimized away part of WHERE clause cause incorect prepared satatement results
drop table if exists test_select; CREATE TABLE t1(session_id char(9) NOT NULL);
INSERT INTO t1 VALUES ("abc");
CREATE TABLE test_select(session_id char(9) NOT NULL); SELECT * FROM t1;
INSERT INTO test_select VALUES ("abc");
SELECT * FROM test_select;
prepare st_1180 from 'SELECT * FROM test_select WHERE ?="1111" and session_id = "abc"'; prepare st_1180 from 'SELECT * FROM t1 WHERE ?="1111" and session_id = "abc"';
# Must not find a row # Must not find a row
set @arg1= 'abc'; set @arg1= 'abc';
...@@ -33,7 +35,7 @@ execute st_1180 using @arg1; ...@@ -33,7 +35,7 @@ execute st_1180 using @arg1;
set @arg1= 'abc'; set @arg1= 'abc';
execute st_1180 using @arg1; execute st_1180 using @arg1;
drop table test_select; drop table t1;
# end of bug#1180 # end of bug#1180
...@@ -58,16 +60,14 @@ drop table test_select; ...@@ -58,16 +60,14 @@ drop table test_select;
# Test is extended to more columns - code stores bit vector in bytes. # Test is extended to more columns - code stores bit vector in bytes.
drop table if exists tab_many_null; create table t1 (
create table tab_many_null (
c_01 char(6), c_02 integer, c_03 real, c_04 int(3), c_05 varchar(20), c_01 char(6), c_02 integer, c_03 real, c_04 int(3), c_05 varchar(20),
c_06 date, c_07 char(1), c_08 real, c_09 int(11), c_10 time, c_06 date, c_07 char(1), c_08 real, c_09 int(11), c_10 time,
c_11 char(6), c_12 integer, c_13 real, c_14 int(3), c_15 varchar(20), c_11 char(6), c_12 integer, c_13 real, c_14 int(3), c_15 varchar(20),
c_16 date, c_17 char(1), c_18 real, c_19 int(11), c_20 text); c_16 date, c_17 char(1), c_18 real, c_19 int(11), c_20 text);
# Do not use "timestamp" type, because it has a non-NULL default as of 4.1.2 # Do not use "timestamp" type, because it has a non-NULL default as of 4.1.2
prepare st_1644 from 'insert into tab_many_null values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'; prepare st_1644 from 'insert into t1 values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
set @arg01= 'row_1'; set @arg02= 1; set @arg03= 1.1; set @arg04= 111; set @arg05= 'row_one'; set @arg01= 'row_1'; set @arg02= 1; set @arg03= 1.1; set @arg04= 111; set @arg05= 'row_one';
set @arg06= '2004-10-12'; set @arg07= '1'; set @arg08= 1.1; set @arg09= '100100100'; set @arg10= '12:34:56'; set @arg06= '2004-10-12'; set @arg07= '1'; set @arg08= 1.1; set @arg09= '100100100'; set @arg10= '12:34:56';
...@@ -90,36 +90,34 @@ set @arg16= '2004-10-12'; set @arg17= '3'; set @arg18= 3.3; set @arg19= '3003003 ...@@ -90,36 +90,34 @@ set @arg16= '2004-10-12'; set @arg17= '3'; set @arg18= 3.3; set @arg19= '3003003
execute st_1644 using @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, @arg09, @arg10, execute st_1644 using @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, @arg09, @arg10,
@arg11, @arg12, @arg13, @arg14, @arg15, @arg16, @arg17, @arg18, @arg19, @arg20; @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, @arg17, @arg18, @arg19, @arg20;
select * from tab_many_null; select * from t1;
drop table tab_many_null; drop table t1;
# end of bug#1644 # end of bug#1644
# bug#1677: Prepared statement two-table join returns no rows when one is expected # bug#1677: Prepared statement two-table join returns no rows when one is expected
drop table if exists table1, table2; create table t1(
create table table1(
cola varchar(50) not null, cola varchar(50) not null,
colb varchar(8) not null, colb varchar(8) not null,
colc varchar(12) not null, colc varchar(12) not null,
cold varchar(2) not null, cold varchar(2) not null,
primary key (cola, colb, cold)); primary key (cola, colb, cold));
create table table2( create table t2(
cola varchar(50) not null, cola varchar(50) not null,
colb varchar(8) not null, colb varchar(8) not null,
colc varchar(2) not null, colc varchar(2) not null,
cold float, cold float,
primary key (cold)); primary key (cold));
insert into table1 values ('aaaa', 'yyyy', 'yyyy-dd-mm', 'R'); insert into t1 values ('aaaa', 'yyyy', 'yyyy-dd-mm', 'R');
insert into table2 values ('aaaa', 'yyyy', 'R', 203), ('bbbb', 'zzzz', 'C', 201); insert into t2 values ('aaaa', 'yyyy', 'R', 203), ('bbbb', 'zzzz', 'C', 201);
prepare st_1676 from 'select a.cola, a.colb, a.cold from table1 a, table2 b where a.cola = ? and a.colb = ? and a.cold = ? and b.cola = a.cola and b.colb = a.colb and b.colc = a.cold'; prepare st_1676 from 'select a.cola, a.colb, a.cold from t1 a, t2 b where a.cola = ? and a.colb = ? and a.cold = ? and b.cola = a.cola and b.colb = a.colb and b.colc = a.cold';
set @arg0= "aaaa"; set @arg0= "aaaa";
set @arg1= "yyyy"; set @arg1= "yyyy";
...@@ -127,7 +125,7 @@ set @arg2= "R"; ...@@ -127,7 +125,7 @@ set @arg2= "R";
execute st_1676 using @arg0, @arg1, @arg2; execute st_1676 using @arg0, @arg1, @arg2;
drop table table1, table2; drop table t1, t2;
# end of bug#1676 # end of bug#1676
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment