@@ -1691,3 +1691,93 @@ id
1691
1691
12
1692
1692
13
1693
1693
drop table t1;
1694
+ #
1695
+ # MDEV-15247: Crash when SET NAMES 'utf8' is set
1696
+ #
1697
+ CREATE TABLE t1 (
1698
+ id_category int unsigned,
1699
+ id_product int unsigned,
1700
+ PRIMARY KEY (id_category,id_product)
1701
+ ) ENGINE=MyISAM;
1702
+ INSERT INTO `t1` VALUES (31,216), (31,215), (31,214), (31,213), (31,212), (32,211), (32,210), (32,209), (32,208), (29,207), (30,315372), (2,161), (2,132), (33,315380), (31,315371), (29,315370), (29,315373), (29,315369), (29,315374), (29,315368), (29,315375), (29,315367), (29,183), (29,182), (30,177), (29,315376), (13,315365), (2,167), (2,315357), (2,164), (2,159), (2,131), (2,127), (14,315364), (27,315363), (29,205), (29,204), (29,203), (29,202), (29,201), (29,200), (29,199), (29,198), (29,197), (29,196), (29,195), (29,194), (29,193), (29,192), (29,191), (29,190), (29,189), (14,188), (29,187), (29,186), (29,185), (29,184), (29,315377), (29,315378), (29,181), (33,315379), (29,179), (30,178), (29,180), (30,176), (30,175), (30,174), (30,173), (30,172), (11,171), (27,315357), (23,108), (23,102);
1703
+ CREATE TABLE t2 (
1704
+ id_product int,
1705
+ id_t2 int,
1706
+ KEY id_t2 (id_t2),
1707
+ KEY id_product (id_product)
1708
+ ) ENGINE=MyISAM;
1709
+ INSERT INTO `t2` VALUES (11,31), (11,31), (11,31), (11,32), (11,32),
1710
+ (11,32), (10,26), (11,32), (10,28), (11,32), (10,29), (11,33), (10,26),
1711
+ (11,33), (10,27), (9,23), (11,32), (10,26), (8,18), (7,15), (11,32),
1712
+ (10,28), (11,32), (10,28), (11,32), (10,29), (11,32), (10,29), (8,19),
1713
+ (7,16), (8,18), (7,16), (8,20), (7,16), (11,32), (10,28), (8,19),
1714
+ (7,16), (8,20), (7,16), (11,32), (10,29), (8,19), (7,16), (8,20),
1715
+ (7,16), (10,27), (9,23), (10,27), (9,23), (10,27), (9,23), (11,32),
1716
+ (10,27), (11,32), (10,27), (8,18), (7,15), (10,26), (9,24), (8,19),
1717
+ (7,16), (10,26), (9,23), (8,19), (7,16), (8,18), (7,16), (8,18), (7,16),
1718
+ (9,23), (8,18), (9,23), (8,19), (7,16), (7,16), (8,19), (7,16), (11,31),
1719
+ (10,27), (9,24), (11,31), (10,27), (9,23), (8,19), (11,31), (10,26), (9,24),
1720
+ (8,19), (11,31), (10,26), (9,25), (8,18), (11,31), (10,26), (9,23), (8,19),
1721
+ (11,31), (10,26), (9,23), (8,18), (11,31), (10,30), (9,23), (8,18), (11,31),
1722
+ (10,30), (9,23), (8,19), (11,31), (10,26), (9,25), (8,19), (8,21), (11,32),
1723
+ (10,26), (9,22), (8,19), (11,32), (10,26), (9,22), (8,18), (11,32), (10,26),
1724
+ (9,22), (8,20), (11,33), (10,26), (9,22), (8,19), (11,33), (10,26), (9,22),
1725
+ (8,18), (11,33), (10,26), (9,22), (8,20), (11,32), (10,26), (9,24), (8,19),
1726
+ (11,32), (10,26), (9,25), (8,19), (11,32), (10,26), (9,25), (8,18), (11,32),
1727
+ (10,26), (9,23), (8,18), (11,32), (10,30), (9,23), (8,18), (11,32), (10,30),
1728
+ (9,23), (8,19), (11,32), (10,26), (9,23), (8,19), (11,32), (10,27), (9,23),
1729
+ (11,32), (10,27), (9,23), (11,32), (10,27), (9,23), (10,26), (9,22), (8,19),
1730
+ (7,15), (10,26), (9,22), (8,20), (7,15), (10,26), (9,22), (8,18), (7,15),
1731
+ (8,19), (10,26), (10,26), (11,33), (10,26), (11,33), (10,26), (11,33),
1732
+ (10,27), (11,33), (10,27), (11,31), (10,26), (11,31), (10,26), (8,18),
1733
+ (7,15), (9,23), (9,23), (9,24), (8,21), (7,15), (7,15), (7,15), (7,15),
1734
+ (7,15), (7,15), (7,15), (7,15), (7,15), (8,18), (7,17), (8,18), (7,17), (8,19), (8,19);
1735
+ CREATE TABLE t3 (
1736
+ id_product int unsigned,
1737
+ PRIMARY KEY (id_product)
1738
+ ) ENGINE=MyISAM;
1739
+ INSERT INTO t3 VALUES
1740
+ (102),(103),(104),(105),(106),(107),(108),(109),(110),
1741
+ (315371),(315373),(315374),(315375),(315376),(315377),
1742
+ (315378),(315379),(315380);
1743
+ CREATE TABLE t4 (
1744
+ id_product int not null,
1745
+ id_shop int,
1746
+ PRIMARY KEY (id_product,id_shop)
1747
+ ) ENGINE=MyISAM ;
1748
+ INSERT INTO t4 VALUES
1749
+ (202,1),(201,1),(200,1),(199,1),(198,1),(197,1),(196,1),(195,1),
1750
+ (194,1),(193,1),(192,1),(191,1),(190,1),(189,1),(188,1),(187,1),
1751
+ (186,1),(185,1),(184,1),(183,1),(182,1),(181,1),(179,1),(178,1),
1752
+ (177,1),(176,1),(126,1),(315380,1);
1753
+ CREATE TABLE t5 (id_product int) ENGINE=MyISAM;
1754
+ INSERT INTO `t5` VALUES
1755
+ (652),(668),(669),(670),(671),(673),(674),(675),(676),
1756
+ (677),(679),(680),(681),(682),(683),(684),(685),(686);
1757
+ explain
1758
+ SELECT * FROM t3
1759
+ JOIN t4 ON (t4.id_product = t3.id_product AND t4.id_shop = 1)
1760
+ JOIN t1 ON (t1.id_product = t3.id_product)
1761
+ LEFT JOIN t5 ON (t5.id_product = t3.id_product)
1762
+ WHERE 1=1
1763
+ AND t3.id_product IN (SELECT id_product FROM t2 t2_1 WHERE t2_1.id_t2 = 32)
1764
+ AND t3.id_product IN (SELECT id_product FROM t2 t2_2 WHERE t2_2.id_t2 = 15)
1765
+ AND t3.id_product IN (SELECT id_product FROM t2 t2_3 WHERE t2_3.id_t2 = 18 OR t2_3.id_t2 = 19)
1766
+ AND t3.id_product IN (SELECT id_product FROM t2 t2_4 WHERE t2_4.id_t2 = 34 OR t2_4.id_t2 = 23)
1767
+ AND t3.id_product IN (SELECT id_product FROM t2 t2_5 WHERE t2_5.id_t2 = 29 OR t2_5.id_t2 = 28 OR t2_5.id_t2 = 26);
1768
+ id select_type table type possible_keys key key_len ref rows Extra
1769
+ 1 PRIMARY t1 index NULL PRIMARY 8 NULL 73 Using index
1770
+ 1 PRIMARY t3 eq_ref PRIMARY PRIMARY 4 test.t1.id_product 1 Using index
1771
+ 1 PRIMARY <subquery5> eq_ref distinct_key distinct_key 4 func 1 Using where
1772
+ 1 PRIMARY <subquery4> eq_ref distinct_key distinct_key 4 func 1 Using where
1773
+ 1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 4 func 1 Using where
1774
+ 1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 Using where
1775
+ 1 PRIMARY t4 eq_ref PRIMARY PRIMARY 8 test.t1.id_product,const 1 Using where; Using index
1776
+ 1 PRIMARY <subquery6> eq_ref distinct_key distinct_key 4 func 1 Using where
1777
+ 1 PRIMARY t5 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
1778
+ 5 MATERIALIZED t2_4 range id_t2,id_product id_t2 5 NULL 18 Using index condition; Using where
1779
+ 4 MATERIALIZED t2_3 range id_t2,id_product id_t2 5 NULL 32 Using index condition; Using where
1780
+ 3 MATERIALIZED t2_2 ref id_t2,id_product id_t2 5 const 12
1781
+ 2 MATERIALIZED t2_1 ref id_t2,id_product id_t2 5 const 50
1782
+ 6 MATERIALIZED t2_5 range id_t2,id_product id_t2 5 NULL 30 Using index condition; Using where
1783
+ drop table t1,t2,t3,t4,t5;
0 commit comments