mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
LPBUG#524025 Running RQG outer_join test leads to crash
Save no-records constant tables in JOIN::const_table_map before we invoke eliminate_tables(). Failure to do so caused crash when the same table was marked as constant two times mysql-test/r/table_elim.result: LPBUG#524025 Running RQG outer_join test leads to crash - Testcase mysql-test/t/table_elim.test: LPBUG#524025 Running RQG outer_join test leads to crash - Testcase sql/sql_select.cc: LPBUG#524025 Running RQG outer_join test leads to crash Save no-records constant tables in JOIN::const_table_map before we invoke eliminate_tables(). Failure to do so caused crash when the same table was marked as constant two times.
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
drop table if exists t0, t1, t2, t3;
|
||||
drop table if exists t0, t1, t2, t3, t4, t5, t6;
|
||||
drop view if exists v1, v2;
|
||||
create table t1 (a int);
|
||||
insert into t1 values (0),(1),(2),(3);
|
||||
@ -464,3 +464,74 @@ t1 AS table3 ON (
|
||||
HAVING field1 < 216;
|
||||
field1
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# LPBUG#524025 Running RQG outer_join test leads to crash
|
||||
#
|
||||
CREATE TABLE t0 (
|
||||
pk int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (pk)
|
||||
);
|
||||
CREATE TABLE t1 (
|
||||
col_int int(11) DEFAULT NULL,
|
||||
col_int_key int(11) DEFAULT NULL,
|
||||
pk int(11) NOT NULL AUTO_INCREMENT,
|
||||
col_varchar_10_latin1 varchar(10) DEFAULT NULL,
|
||||
PRIMARY KEY (pk)
|
||||
);
|
||||
INSERT INTO t1 VALUES (5,5,1,'t'), (NULL,NULL,2,'y');
|
||||
CREATE TABLE t2 (
|
||||
col_int int(11) DEFAULT NULL
|
||||
);
|
||||
INSERT INTO t2 VALUES (8), (4);
|
||||
CREATE TABLE t3 (
|
||||
pk int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (pk)
|
||||
);
|
||||
INSERT INTO t3 VALUES (1),(8);
|
||||
CREATE TABLE t4 (
|
||||
pk int(11) NOT NULL AUTO_INCREMENT,
|
||||
col_varchar_1024_latin1_key varchar(1024) DEFAULT NULL,
|
||||
col_int int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (pk)
|
||||
);
|
||||
INSERT INTO t4 VALUES (1,'o',1), (2,'w',2);
|
||||
CREATE TABLE t5 (
|
||||
col_varchar_1024_utf8_key varchar(1024) CHARACTER SET utf8 DEFAULT NULL,
|
||||
col_varchar_1024_latin1_key varchar(1024) DEFAULT NULL,
|
||||
col_varchar_10_utf8_key varchar(1024) CHARACTER SET utf8 DEFAULT NULL,
|
||||
pk int(11) NOT NULL AUTO_INCREMENT,
|
||||
col_int_key int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (pk)
|
||||
);
|
||||
INSERT INTO t5 VALUES ('k','a','z',1,2),('x','a','w',2,7);
|
||||
CREATE TABLE t6 (
|
||||
col_int int(11) DEFAULT NULL,
|
||||
col_int_key int(11) DEFAULT NULL
|
||||
);
|
||||
INSERT INTO t6 VALUES (6,1),(8,3);
|
||||
SELECT
|
||||
table3.col_int AS field1,
|
||||
table1.col_int AS field2,
|
||||
table1.col_int_key AS field3,
|
||||
table1.pk AS field4,
|
||||
table1.col_int AS field5,
|
||||
table2.col_int AS field6
|
||||
FROM
|
||||
t1 AS table1
|
||||
LEFT OUTER JOIN
|
||||
t4 AS table2
|
||||
LEFT JOIN t6 AS table3
|
||||
RIGHT JOIN t3 AS table4
|
||||
LEFT JOIN t5 AS table5 ON table4.pk = table5.pk
|
||||
LEFT JOIN t0 AS table6 ON table5.col_int_key = table6.pk
|
||||
ON table3.col_int_key = table5.pk
|
||||
ON table2.col_varchar_1024_latin1_key = table5.col_varchar_10_utf8_key
|
||||
LEFT JOIN t6 AS table7 ON table2.pk = table7.col_int
|
||||
ON table1.col_varchar_10_latin1 = table5.col_varchar_1024_latin1_key
|
||||
LEFT JOIN t2 AS table8 ON table3.col_int = table8.col_int
|
||||
WHERE
|
||||
table1.col_int_key < table2.pk
|
||||
HAVING
|
||||
field4 != 6;
|
||||
field1 field2 field3 field4 field5 field6
|
||||
drop table t0,t1,t2,t3,t4,t5,t6;
|
||||
|
Reference in New Issue
Block a user