@@ -6444,6 +6444,86 @@ DROP TABLE t1, t2;
6444
6444
6445
6445
-- echo # End of test for bug#14064201.
6446
6446
6447
+ -- echo #
6448
+ -- echo # Bug#18223655:ASSERTION FAILED: (INT)IDX >= 0
6449
+ -- echo # && IDX < PARENT_JOIN->TABLES
6450
+ -- echo #
6451
+
6452
+ CREATE TABLE b (d INT );
6453
+ CREATE TABLE c (a INT , b INT ,c INT ,d BLOB NOT NULL );
6454
+
6455
+ SELECT (SELECT 1
6456
+ FROM b WHERE (SELECT 1 IN (SELECT 1 FROM b WHERE 1 NOT BETWEEN d AND 1 )
6457
+ FROM b) IN (SELECT d FROM c)) as cc FROM b;
6458
+
6459
+ INSERT INTO b VALUE(1 );
6460
+ INSERT INTO c VALUES (1 ,2 ,3 ,' 1' ),(2 ,3 ,4 ,' 1' ),(3 ,4 ,5 ,' C' );
6461
+ SELECT (SELECT d FROM b WHERE (SELECT d IN
6462
+ (SELECT d FROM b WHERE 1 NOT BETWEEN d AND 1 ) FROM b) IN
6463
+ (SELECT d FROM c)) as cc FROM c;
6464
+ DROP TABLE b,c;
6465
+
6466
+ -- echo #
6467
+ -- echo # Bug#18447874:WRONG RESULT COMING FROM SEMI-JOIN
6468
+ -- echo #
6469
+ CREATE TABLE b (
6470
+ d INT (11 )
6471
+ );
6472
+ CREATE TABLE c (
6473
+ d BLOB
6474
+ ) ;
6475
+ CREATE TABLE d (
6476
+ b INT (11 )
6477
+ );
6478
+
6479
+ INSERT INTO b VALUES (1 ),(2 ),(4 );
6480
+ INSERT INTO c VALUES (1 ),(2 ),(3 );
6481
+ SELECT 1 FROM b WHERE (SELECT 1 FROM d ) IN (SELECT d FROM c) ;
6482
+ INSERT INTO d VALUES (2 );
6483
+ SELECT 1 FROM b WHERE (SELECT 1 FROM d ) IN (SELECT d FROM c) ;
6484
+
6485
+ DROP TABLE b,c,d;
6486
+
6487
+ -- echo #
6488
+ -- echo # Bug#17292723:INCORRECT RESULT FOR (SELECT...) IN (SELECT...) STATEMENT
6489
+ -- echo #
6490
+ CREATE TABLE t1 (
6491
+ ID int (11 ) NOT NULL AUTO_INCREMENT,
6492
+ id2 int (11 ) DEFAULT NULL ,
6493
+ id3 int (11 ) DEFAULT NULL ,
6494
+ id4 varchar (150 ) COLLATE utf8_spanish_ci NOT NULL ,
6495
+ id5 int (11 ) DEFAULT NULL ,
6496
+ PRIMARY KEY (ID),
6497
+ KEY id2 (id2),
6498
+ KEY id3 (id3),
6499
+ KEY id5 (id5)
6500
+ ) ENGINE= InnoDB;
6501
+
6502
+ INSERT INTO t1 VALUES
6503
+ (123 ,1 ,1 ,' 1' ,NULL ),
6504
+ (124 ,1 ,1 ,' 2' ,NULL ),
6505
+ (125 ,1 ,1 ,' 4' ,NULL ),
6506
+ (126 ,1 ,1 ,' 3' ,NULL ),
6507
+ (127 ,1 ,1 ,' 6' ,NULL ),
6508
+ (128 ,1 ,1 ,' 8' ,NULL );
6509
+
6510
+ CREATE TABLE t2 (
6511
+ id6 int (11 ) NOT NULL ,
6512
+ id7 int (11 ) NOT NULL ,
6513
+ PRIMARY KEY (id6,id7),
6514
+ KEY id7 (id7)
6515
+ ) ENGINE= InnoDB;
6516
+
6517
+ INSERT INTO t2 VALUES (126 ,123 ),(130 ,123 ),(135 ,123 );
6518
+
6519
+ SELECT ID
6520
+ FROM t1 p0
6521
+ WHERE p0 .id3 = 1
6522
+ AND ( (SELECT p1 .id FROM t1 p1 WHERE p1 .id = 123 ) IN (SELECT p3 .id FROM t2
6523
+ p2, t1 p3 WHERE p0 .id = p2 .id6 AND p2 .id7 = p3 .id ));
6524
+
6525
+ DROP TABLE t1,t2;
6526
+
6447
6527
set @@optimizer_switch= @old_opt_switch;
6448
6528
# New tests go here.
6449
6529
0 commit comments