133
133
KEY `col_int_key` (`col_int_key`)
136
ALTER TABLE `p` DISABLE KEYS;
137
136
INSERT INTO `p` VALUES (1,NULL),(2,261947392),(3,-1761017856),(4,NULL),(5,NULL),(6,NULL),(7,1941635072),(8,-610992128),(9,NULL),(10,-1486618624),(11,1047199744),(12,5),(13,2),(14,NULL),(15,NULL),(16,-828899328),(17,5),(18,NULL),(19,-1573322752),(20,NULL),(21,1),(22,1080360960),(23,NULL),(24,9),(25,243335168),(26,NULL),(27,2),(28,351469568),(29,NULL),(30,0),(31,1626865664),(32,NULL),(33,NULL),(34,6),(35,NULL),(36,6),(37,NULL),(38,838598656),(39,-1732706304),(40,-120061952),(41,NULL),(42,3),(43,2),(44,8),(45,-1234436096),(46,4),(47,-1542324224),(48,NULL),(49,1607073792),(50,0),(51,9),(52,NULL),(53,NULL),(54,-921174016),(55,-184877056),(56,NULL),(57,-1291059200),(58,0),(59,NULL),(60,565379072),(61,NULL),(62,506855424),(63,NULL),(64,NULL),(65,NULL),(66,5),(67,5),(68,5),(69,2),(70,6),(71,NULL),(72,9),(73,7),(74,-2108555264),(75,6),(76,1057095680),(77,8),(78,-409468928),(79,-438960128),(80,-939393024),(81,-927203328),(82,NULL),(83,-1834680320),(84,NULL),(85,1984561152),(86,8),(87,NULL),(88,8),(89,-326500352),(90,NULL),(91,4),(92,NULL),(93,NULL),(94,-1369833472),(95,NULL),(96,0),(97,31260672),(98,NULL),(99,NULL),(100,0);
138
ALTER TABLE `p` ENABLE KEYS;
140
138
DROP TABLE IF EXISTS `n`;
141
139
CREATE TABLE `n` (
217
207
DROP TABLE a, d, h, k, n , p ;
218
208
--echo End Bug#592444 test
210
--echo Bug#586051 start
211
--echo -Server allowing JOIN on NULL values in certain cases if query includes ORDER BY clause
214
DROP TABLE IF EXISTS `i`;
216
`col_int_key` int DEFAULT NULL,
217
`pk` int NOT NULL AUTO_INCREMENT,
219
KEY `col_int_key` (`col_int_key`)
222
INSERT INTO `i` VALUES (-480247808,1),(-1066663936,2),(NULL,3),(NULL,4),(-1583808512,5),(NULL,6),(NULL,7),(NULL,8),(0,9),(-219152384,10);
224
DROP TABLE IF EXISTS `b`;
226
`col_int_key` int DEFAULT NULL,
227
`col_int` int DEFAULT NULL,
228
`pk` int NOT NULL AUTO_INCREMENT,
230
KEY `col_int_key` (`col_int_key`)
233
INSERT INTO `b` VALUES (NULL,7,1);
236
#/* Begin test case for query 0 */
238
SELECT table2 .`col_int` field3
239
FROM i table1 JOIN b table2 ON table1 .`col_int_key` = table2 .`col_int_key`
240
WHERE table1 .`pk` IN ( 4 )
242
#/* End of test case for query 0 */
244
#/* Begin test case for query 1 */
246
SELECT table2 .`col_int` field3
247
FROM i table1 JOIN b table2 ON table1 .`col_int_key` = table2 .`col_int_key`
248
WHERE table1 .`pk` IN ( 4 ) /* TRANSFORM_OUTCOME_UNORDERED_MATCH */ ;
250
#/* End of test case for query 1 */
255
--echo End Bug#586051 test
259
--echo - Adding STRAIGHT_JOIN to certain queries results in loss of returned rows
261
DROP TABLE IF EXISTS `g`;
262
DROP TABLE IF EXISTS `e`;
263
DROP TABLE IF EXISTS `m`;
264
DROP TABLE IF EXISTS `a`;
268
`pk` int NOT NULL AUTO_INCREMENT,
269
`col_int` int DEFAULT NULL,
273
INSERT INTO `g` VALUES (1,NULL),(2,1607860224),(3,NULL),(4,822673408),(5,1907556352),(6,NULL),(7,NULL),(8,NULL);
276
`col_int_key` int DEFAULT NULL,
277
`pk` int NOT NULL AUTO_INCREMENT,
279
KEY `col_int_key` (`col_int_key`)
282
INSERT INTO `e` VALUES (NULL,1),(1862205440,2),(1,3),(-517472256,4),(1341587456,5),(5,6);
285
`col_int` int DEFAULT NULL,
286
`pk` int NOT NULL AUTO_INCREMENT,
290
INSERT INTO `m` VALUES (1,1),(NULL,2),(NULL,3),(-207224832,4),(714801152,5),(-1265106944,6),(2023948288,7),(865599488,8),(1,9),(-1895301120,10),(3,11),(9,12),(5,13),(NULL,14),(NULL,15),(1,16),(-224657408,17),(2,18),(-1219493888,19),(7,20),(1,21),(NULL,22),(NULL,23);
293
`col_int_key` int DEFAULT NULL,
294
`pk` int NOT NULL AUTO_INCREMENT,
296
KEY `col_int_key` (`col_int_key`)
300
SELECT COUNT(table1 .`col_int`)
301
FROM g table1 RIGHT JOIN e table2 LEFT JOIN m table3 LEFT JOIN a table5 ON table5 .`col_int_key` ON table2 .`col_int_key` = table3 .`col_int` ON table2 .`pk` ;
303
SELECT STRAIGHT_JOIN COUNT(table1 .`col_int`)
304
FROM g table1 RIGHT JOIN e table2 LEFT JOIN m table3 LEFT JOIN a table5 ON table5 .`col_int_key` ON table2 .`col_int_key` = table3 .`col_int` ON table2 .`pk` /* TRANSFORM_OUTCOME_UNORDERED_MATCH */;
311
--echo End Bug#585628 test
315
--echo - Adding STRAIGHT_JOIN to certain queries results in a large number of duplicate rows
317
DROP TABLE IF EXISTS `m`;
318
DROP TABLE IF EXISTS `o`;
322
`col_int` int DEFAULT NULL,
323
`pk` int NOT NULL AUTO_INCREMENT,
327
INSERT INTO `m` VALUES (1,1),(NULL,2),(NULL,3),(-207224832,4),(714801152,5),(-1265106944,6),(2023948288,7),(865599488,8),(1,9),(-1895301120,10),(3,11),(9,12),(5,13),(NULL,14),(NULL,15),(1,16),(-224657408,17),(2,18),(-1219493888,19),(7,20),(1,21),(NULL,22),(NULL,23);
330
`col_int_key` int DEFAULT NULL,
331
`pk` int NOT NULL AUTO_INCREMENT,
333
KEY `col_int_key` (`col_int_key`)
336
INSERT INTO `o` VALUES (4,1),(-867368960,2),(655032320,3),(1,4),(NULL,5),(-118751232,6),(7,7),(1,8),(3,9),(-518324224,10),(7,11),(1129709568,12),(-2081357824,13),(6,14),(NULL,15),(NULL,16),(NULL,17);
338
#/* Begin test case for query 0 */
340
SELECT COUNT(table1 .`pk`)
341
FROM m table1 RIGHT JOIN o JOIN o table3 ON table3 .`col_int_key` ON table1 .`col_int` = table3 .`col_int_key` ;
343
SELECT STRAIGHT_JOIN COUNT(table1 .`pk`)
344
FROM m table1 RIGHT JOIN o JOIN o table3 ON table3 .`col_int_key` ON table1 .`col_int` = table3 .`col_int_key` /* TRANSFORM_OUTCOME_UNORDERED_MATCH */;
348
--echo End Bug#585644 test
351
--echo Crash / assertion failed -
352
--echo "void drizzled::Select_Lex::print(drizzled::Session*, drizzled::String*, drizzled::enum_query_type)") at assert.c:81
353
--echo #3 0x00000000006282fb in drizzled::Select_Lex::print
354
--echo (this=0x3911418, session=0x0, str=0x7f26b77fd7c0, query_type=drizzled::QT_ORDINARY) at drizzled/sql_select.cc:6592
357
DROP TABLE IF EXISTS `aa`,`bb`,`dd`;
360
DROP TABLE IF EXISTS `aa`;
362
`pk` int NOT NULL AUTO_INCREMENT,
363
`col_enum_not_null_key` enum('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z') NOT NULL,
364
`col_int_not_null_key` int NOT NULL,
365
`col_char_10_not_null_key` varchar(10) NOT NULL,
366
`col_int_key` int DEFAULT NULL,
367
`col_text_not_null` text NOT NULL,
368
`col_char_1024_key` varchar(1024) DEFAULT NULL,
369
`col_bigint_key` bigint DEFAULT NULL,
370
`col_int_not_null` int NOT NULL,
372
KEY `col_enum_not_null_key` (`col_enum_not_null_key`),
373
KEY `col_int_not_null_key` (`col_int_not_null_key`),
374
KEY `col_char_10_not_null_key` (`col_char_10_not_null_key`),
375
KEY `col_int_key` (`col_int_key`),
376
KEY `col_char_1024_key` (`col_char_1024_key`(255)),
377
KEY `col_bigint_key` (`col_bigint_key`)
380
INSERT INTO `aa` VALUES (1,'s',-523436032,'at',2071265280,'','LPUJD',NULL,-1974206464),(2,'p',1,'VDMDI',1,'','don\'t',NULL,3),(3,'n',621543424,'WPTIG',NULL,'','think',-2842897264777625600,-274595840),(4,'o',880148480,'your',1734213632,'','on',NULL,295501824),(5,'b',1963982848,'q',1505558528,'','YTUNQ',3557843705622691840,9),(6,'c',8,'OOQXU',8,'','o',-4628011567076605952,2),(7,'p',1445462016,'RDODX',NULL,'','so',-5755881798756204544,-1601306624),(8,'i',0,'e',-1685520384,'','get',NULL,-1770323968),(9,'f',-747241472,'FEKXH',NULL,'','l',NULL,256311296),(10,'p',6,'GTHOM',-1431502848,'','h',-5719290051783819264,4);
383
`col_enum_not_null_key` enum('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z') NOT NULL,
384
`col_text_not_null` text NOT NULL,
385
`col_char_10_not_null_key` varchar(10) NOT NULL,
386
`col_bigint_key` bigint DEFAULT NULL,
387
`col_char_1024_key` varchar(1024) DEFAULT NULL,
388
`pk` int NOT NULL AUTO_INCREMENT,
389
`col_int_not_null_key` int NOT NULL,
390
`col_int_key` int DEFAULT NULL,
391
`col_int_not_null` int NOT NULL,
393
KEY `col_enum_not_null_key` (`col_enum_not_null_key`),
394
KEY `col_char_10_not_null_key` (`col_char_10_not_null_key`),
395
KEY `col_bigint_key` (`col_bigint_key`),
396
KEY `col_char_1024_key` (`col_char_1024_key`(255)),
397
KEY `col_int_not_null_key` (`col_int_not_null_key`),
398
KEY `col_int_key` (`col_int_key`)
401
INSERT INTO `bb` VALUES ('r','','DCJRX',NULL,'ANVSO',1,1,NULL,763953152),('a','','x',NULL,'JBJPT',2,1,4,-132513792),('s','','ZMHDL',-647673921411219456,'KAHJT',3,-1536425984,-628359168,3),('i','','SJGHS',-5702401553181179904,'q',4,-1443495936,-2114322432,-1349844992),('w','','his',NULL,'l',5,2,105971712,-2019688448),('v','','m',4,'ULWFL',6,0,2,-38207488),('d','','i',NULL,'YOIXU',7,8,NULL,3),('f','','d',8,'that\'s',8,476315648,NULL,8),('y','','from',NULL,'ZPPIG',9,5,-607322112,-1129054208),('o','','h',NULL,'like',10,5,0,-415629312);
404
`col_int_not_null` int NOT NULL,
405
`col_int_key` int DEFAULT NULL,
406
`col_enum_not_null_key` enum('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z') NOT NULL,
407
`col_bigint_key` bigint DEFAULT NULL,
408
`col_char_10_not_null_key` varchar(10) NOT NULL,
409
`col_int_not_null_key` int NOT NULL,
410
`col_text_not_null` text NOT NULL,
411
`pk` int NOT NULL AUTO_INCREMENT,
412
`col_char_1024_key` varchar(1024) DEFAULT NULL,
414
KEY `col_int_key` (`col_int_key`),
415
KEY `col_enum_not_null_key` (`col_enum_not_null_key`),
416
KEY `col_bigint_key` (`col_bigint_key`),
417
KEY `col_char_10_not_null_key` (`col_char_10_not_null_key`),
418
KEY `col_int_not_null_key` (`col_int_not_null_key`),
419
KEY `col_char_1024_key` (`col_char_1024_key`(255))
422
INSERT INTO `dd` VALUES (1777795072,NULL,'g',0,'was',-1866203136,'',1,'g');
425
EXPLAIN EXTENDED SELECT
426
table2 . `col_enum_not_null_key` AS field1 ,
427
table1 . `col_char_1024_key` AS field2
428
FROM ( ( SELECT SUBQUERY1_t1 . * FROM ( BB AS SUBQUERY1_t1 RIGHT JOIN AA AS SUBQUERY1_t2 ON (SUBQUERY1_t2 . `col_int_not_null_key` = SUBQUERY1_t1 . `col_int_key` ) ) ) AS table1 INNER JOIN ( ( DD AS table2 STRAIGHT_JOIN BB AS table3 ON (table3 . `col_char_10_not_null_key` = table2 . `col_char_key` ) ) ) ON (table3 . `col_char_key` = table2 . `col_text_not_null` ) ) WHERE ( ( SELECT MIN( SUBQUERY2_t2 . `col_char_10_not_null_key` ) AS SUBQUERY2_field1 FROM AA AS SUBQUERY2_t1 WHERE ( EXISTS ( ( SELECT CHILD_SUBQUERY1_t2 . `col_char_10_not_null_key` AS CHILD_SUBQUERY1_field1 FROM ( BB AS CHILD_SUBQUERY1_t1 INNER JOIN AA AS CHILD_SUBQUERY1_t2 ON (CHILD_SUBQUERY1_t2 . `col_int_key` = CHILD_SUBQUERY1_t1 . `pk` ) ) WHERE ( CHILD_SUBQUERY1_t2 . `col_char_10_not_null_key` > 'y' AND CHILD_SUBQUERY1_t1 . `col_int_not_null_key` = CHILD_SUBQUERY1_t1 . `col_int_not_null` ) HAVING CHILD_SUBQUERY1_t2 . `col_bigint_key` >= 3) ) AND SUBQUERY2_t1 . `col_int_key` != 8 ) ) IS NOT NULL ) AND ( table1 . `col_int_key` = 160 AND table1 . `col_int_key` = 197 ) AND table3 . `col_text_not_null` >= 'g' GROUP BY field1, field2;
434
--echo End Bug#608416