~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/optimizer.test

  • Committer: Brian Aker
  • Date: 2010-03-15 21:50:05 UTC
  • mto: This revision was merged to the branch mainline in revision 1343.
  • Revision ID: brian@gaz-20100315215005-oqoblpbll9n0albj
Merge of table cache/def DD.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
--echo Bug#592473 
2
 
--echo - Crash/segfault in drizzled::subselect_single_select_engine::exec (this=0x19a7008) at drizzled/item/subselect.cc:2204  
3
 
--disable_warnings
4
 
DROP TABLE IF EXISTS `aa`;
5
 
DROP TABLE IF EXISTS `bb`;
6
 
DROP TABLE IF EXISTS `cc`;
7
 
--enable_warnings
8
 
 
9
 
CREATE TABLE `aa` (
10
 
  `pk` int NOT NULL AUTO_INCREMENT,
11
 
  `col_char_not_null_key` varchar(1) NOT NULL,
12
 
  `col_int` int DEFAULT NULL,
13
 
  `col_bigint` bigint DEFAULT NULL,
14
 
  `col_bigint_key` bigint DEFAULT NULL,
15
 
  `col_int_not_null` int NOT NULL,
16
 
  `col_text_not_null` text NOT NULL,
17
 
  PRIMARY KEY (`pk`),
18
 
  KEY `col_char_not_null_key` (`col_char_not_null_key`),
19
 
  KEY `col_bigint_key` (`col_bigint_key`)
20
 
) ENGINE=InnoDB;
21
 
 
22
 
INSERT INTO `aa` VALUES (1,'a',NULL,2125417549142163456,1747959605373173760,9,''),(2,'n',733020160,5329728684016271360,-3664522721796030464,-2059927552,''),(3,'o',1023148032,4418875659380588544,9,1967128576,''),(4,'r',NULL,NULL,2,6,''),(5,'k',-15728640,6,-421930990089273344,-704249856,''),(6,'p',NULL,NULL,-2842897264777625600,90570752,''),(7,'t',2,-4747356957201924096,-4702602435904929792,1734213632,''),(8,'d',3,-7567454748865986560,NULL,9,''),(9,'t',1505558528,NULL,-5726608401178296320,-1584463872,''),(10,'q',NULL,NULL,541839330168012800,0,'');
23
 
 
24
 
CREATE TABLE `bb` (
25
 
  `col_int_key` int DEFAULT NULL,
26
 
  `pk` int NOT NULL AUTO_INCREMENT,
27
 
  `col_char` varchar(1) DEFAULT NULL,
28
 
  PRIMARY KEY (`pk`),
29
 
  KEY `col_int_key` (`col_int_key`)
30
 
) ENGINE=InnoDB;
31
 
 
32
 
INSERT INTO `bb` VALUES (-622067712,1,'h'),(858587136,2,'p'),(-1110966272,3,'w'),(2,4,'f'),(546701312,5,'k'),(4,6,'m'),(6,7,'z'),(NULL,8,'h'),(2,9,'y'),(NULL,10,'t');
33
 
 
34
 
CREATE TABLE `cc` (
35
 
  `col_char` varchar(1) DEFAULT NULL,
36
 
  `pk` int NOT NULL AUTO_INCREMENT,
37
 
  PRIMARY KEY (`pk`)
38
 
) ENGINE=InnoDB;
39
 
 
40
 
INSERT INTO `cc` VALUES ('h',1),('m',2),('m',3),('c',4),('h',5),('w',6),('a',7),('I',8),('i',9),('n',10),('s',11),('m',12),('e',13),('f',14),('u',15),('I',16),('v',17),('j',18),('h',19),('l',20),('y',21),('w',22),('n',23),('t',24),('t',25),('f',26),('f',27),('w',28),('y',29),('t',30),('j',31),('i',32),('j',33),('q',34),('s',35),('o',36),('b',37),('s',38),('h',39),('w',40),('g',41),('t',42),('o',43),('h',44),('n',45),('i',46),('y',47),('e',48),('t',49),('n',50),('b',51),('k',52),('h',53),('k',54),('x',55),('f',56),('h',57),('q',58),('b',59),('i',60),('w',61),('c',62),('r',63),('n',64),('v',65),('g',66),('t',67),('e',68),('w',69),('b',70),('y',71),('n',72),('p',73),('r',74),('o',75),('w',76),('y',77),('p',78),('o',79),('w',80),('t',81),('j',82),('o',83),('m',84),('g',85),('x',86),('v',87),('w',88),('m',89),('o',90),('o',91),('w',92),('f',93),('p',94),('I',95),('c',96),('t',97),('a',98),('w',99),('s',100);
41
 
 
42
 
SELECT DISTINCT MIN(DISTINCT OUTR . `col_bigint_key` ) AS X FROM `aa` AS OUTR WHERE ( OUTR . `col_bigint` , OUTR . `col_int_not_null` ) IN ( SELECT DISTINCT INNR . `pk` AS X , INNR . `col_int_key` AS Y FROM `cc` AS INNR2 LEFT JOIN `bb` AS INNR ON ( INNR2 . `col_char` <> INNR . `col_char` ) WHERE OUTR . `col_char_not_null_key` IS NULL ) AND OUTR . `col_int` IS NULL XOR OUTR . `col_char_not_null_key` IS NOT NULL HAVING X >= '2000-03-23 22:49:30' ORDER BY OUTR . `col_text_not_null` , OUTR . `pk` ;
43
 
 
44
 
DROP TABLE `aa`;
45
 
DROP TABLE `bb`;
46
 
DROP TABLE `cc`;
47
 
 
48
 
--echo End Bug#592473 test
49
 
--echo
50
 
 
51
 
--echo Bug#600664 
52
 
--echo - Crash / segfault in drizzled::optimizer::add_key_part (keyuse_array=<value optimized out>, key_field=0x2d0dc28) at drizzled/optimizer/key_field.cc:63
53
 
--disable_warnings
54
 
DROP TABLE IF EXISTS `bb`, `cc`;
55
 
--enable_warnings
56
 
 
57
 
CREATE TABLE `bb` (
58
 
  `col_text_not_null` text NOT NULL,
59
 
  `pk` int NOT NULL AUTO_INCREMENT,
60
 
  `col_int_not_null` int NOT NULL,
61
 
  `col_bigint` bigint DEFAULT NULL,
62
 
  `col_char_not_null_key` varchar(1) NOT NULL,
63
 
  `col_text` text,
64
 
  `col_text_key` text,
65
 
  PRIMARY KEY (`pk`),
66
 
  KEY `col_char_not_null_key` (`col_char_not_null_key`),
67
 
  KEY `col_text_key` (`col_text_key`(255))
68
 
) ENGINE=InnoDB;
69
 
 
70
 
INSERT INTO `bb` VALUES ('',1,-247005184,4657847914607935488,'q',NULL,NULL),('',2,9,6580884955495137280,'d',NULL,NULL),('',3,9,6,'o',NULL,NULL),('',4,8,NULL,'j',NULL,NULL),('',5,575668224,-7027022793581527040,'c',NULL,NULL),('',6,9,8,'o',NULL,NULL),('',7,1,NULL,'a',NULL,NULL),('',8,7,616430198996336640,'o',NULL,NULL),('',9,1,NULL,'u',NULL,NULL),('',10,130416640,6244803833302614016,'y',NULL,NULL);
71
 
 
72
 
CREATE TABLE `cc` (
73
 
  `pk` int NOT NULL AUTO_INCREMENT,
74
 
  `col_char_not_null_key` varchar(1) NOT NULL,
75
 
  `col_int_key` int DEFAULT NULL,
76
 
  `col_text_key` text,
77
 
  PRIMARY KEY (`pk`),
78
 
  KEY `col_char_not_null_key` (`col_char_not_null_key`),
79
 
  KEY `col_int_key` (`col_int_key`),
80
 
  KEY `col_text_key` (`col_text_key`(255))
81
 
) ENGINE=InnoDB;
82
 
 
83
 
INSERT INTO `cc` VALUES (1,'k',-1711407104,NULL),(2,'k',-1837629440,NULL),(3,'g',2,NULL),(4,'f',5,NULL),(5,'t',-173408256,NULL),(6,'s',-2063663104,NULL),(7,'l',4,NULL),(8,'q',NULL,NULL),(9,'h',-858587136,NULL),(10,'r',-1040056320,NULL),(11,'l',-1812332544,NULL),(12,'o',NULL,NULL),(13,'e',NULL,NULL),(14,'k',4,NULL),(15,'p',456261632,NULL),(16,'j',NULL,NULL),(17,'b',NULL,NULL),(18,'i',4,NULL),(19,'n',NULL,NULL),(20,'n',4,NULL),(21,'m',7,NULL),(22,'i',NULL,NULL),(23,'l',4,NULL),(24,'x',4,NULL),(25,'w',NULL,NULL),(26,'s',4,NULL),(27,'s',6,NULL),(28,'i',NULL,NULL),(29,'j',NULL,NULL),(30,'z',0,NULL),(31,'d',-84738048,NULL),(32,'s',-1456209920,NULL),(33,'o',-1366818816,NULL),(34,'t',2,NULL),(35,'t',3,NULL),(36,'o',5,NULL),(37,'i',NULL,NULL),(38,'v',779943936,NULL),(39,'w',NULL,NULL),(40,'f',7,NULL),(41,'n',1658912768,NULL),(42,'u',NULL,NULL),(43,'g',NULL,NULL),(44,'a',4,NULL),(45,'o',1,NULL),(46,'h',NULL,NULL),(47,'y',892862464,NULL),(48,'m',NULL,NULL),(49,'w',NULL,NULL),(50,'a',9,NULL),(51,'c',NULL,NULL),(52,'r',1758330880,NULL),(53,'s',7,NULL),(54,'n',3,NULL),(55,'e',1,NULL),(56,'c',NULL,NULL),(57,'i',1,NULL),(58,'h',NULL,NULL),(59,'n',1441005568,NULL),(60,'b',9,NULL),(61,'a',8,NULL),(62,'o',1389690880,NULL),(63,'c',2,NULL),(64,'g',7,NULL),(65,'r',0,NULL),(66,'i',2,NULL),(67,'w',NULL,NULL),(68,'s',NULL,NULL),(69,'f',NULL,NULL),(70,'l',1,NULL),(71,'t',-1545666560,NULL),(72,'f',NULL,NULL),(73,'y',1729363968,NULL),(74,'m',-39583744,NULL),(75,'m',5,NULL),(76,'r',-33554432,NULL),(77,'a',7,NULL),(78,'q',1687748608,NULL),(79,'h',NULL,NULL),(80,'x',524877824,NULL),(81,'t',NULL,NULL),(82,'o',NULL,NULL),(83,'a',NULL,NULL),(84,'j',4,NULL),(85,'o',0,NULL),(86,'l',1818296320,NULL),(87,'l',1,NULL),(88,'q',1346699264,NULL),(89,'t',NULL,NULL),(90,'f',1,NULL),(91,'g',584253440,NULL),(92,'s',670564352,NULL),(93,'t',5,NULL),(94,'a',-687013888,NULL),(95,'I',-1482424320,NULL),(96,'d',NULL,NULL),(97,'b',547291136,NULL),(98,'r',779091968,NULL),(99,'j',1062928384,NULL),(100,'s',NULL,NULL);
84
 
 
85
 
SELECT DISTINCT AVG(DISTINCT OUTR . `col_int_not_null` ) AS X FROM `bb` AS OUTR2 LEFT JOIN `bb` AS OUTR ON ( OUTR2 . `col_text` <= OUTR . `col_text_key` ) WHERE ( OUTR . `col_text_not_null` , OUTR . `col_char_not_null_key` ) IN ( SELECT DISTINCT INNR . `col_text_key` AS X , INNR . `col_char_not_null_key` AS Y FROM `cc` AS INNR WHERE INNR . `col_int_key` IS NULL ) AND OUTR . `pk` IS NULL OR NOT OUTR . `col_bigint` = 9 ORDER BY OUTR . `pk` , OUTR . `pk` ;
86
 
 
87
 
DROP TABLE `bb`, `cc`;
88
 
--echo End Bug#600664 test
89
 
 
90
 
--echo Bug#595305
91
 
--echo - Assertion failed - exec_method != MATERIALIZATION || (exec_method == MATERIALIZATION && engine->engine_type() == subselect_engine::HASH_SJ_ENGINE)", file=<value optimized out>, line=318, function=0x84fae0 "virtual bool drizzled::Item_in_subselect::exec()
92
 
--disable_warnings
93
 
DROP TABLE IF EXISTS `bb`;
94
 
--enable_warnings
95
 
 
96
 
CREATE TABLE `bb` (
97
 
  `pk` int NOT NULL AUTO_INCREMENT,
98
 
  `col_text_not_null` text NOT NULL,
99
 
  `col_bigint_key` bigint DEFAULT NULL,
100
 
  `col_int` int DEFAULT NULL,
101
 
  `col_char` varchar(1) DEFAULT NULL,
102
 
  `col_text` text,
103
 
  `col_text_not_null_key` text NOT NULL,
104
 
  `col_char_not_null` varchar(1) NOT NULL,
105
 
  PRIMARY KEY (`pk`),
106
 
  KEY `col_bigint_key` (`col_bigint_key`),
107
 
  KEY `col_text_not_null_key` (`col_text_not_null_key`(255))
108
 
) ENGINE=InnoDB;
109
 
 
110
 
ALTER TABLE `bb` DISABLE KEYS;
111
 
INSERT INTO `bb` VALUES (1,'',NULL,NULL,'h',NULL,'','f'),(2,'',NULL,1756299264,'p',NULL,'','w'),(3,'',6,-1990000640,'w',NULL,'','w'),(4,'',NULL,NULL,'f',NULL,'','k'),(5,'',NULL,NULL,'k',NULL,'','t'),(6,'',9,NULL,'m',NULL,'','c'),(7,'',6451687941184946176,0,'z',NULL,'','f'),(8,'',8960474408607023104,1805844480,'h',NULL,'','k'),(9,'',8,7,'y',NULL,'','m'),(10,'',NULL,-415629312,'t',NULL,'','h');
112
 
ALTER TABLE `bb` ENABLE KEYS;
113
 
 
114
 
SELECT DISTINCT OUTR . `col_text` AS X FROM BB AS OUTR2 LEFT JOIN BB AS OUTR ON ( OUTR2 . `col_char` <> OUTR . `col_text` ) WHERE OUTR . `col_bigint_key` IN ( SELECT INNR . `pk` AS Y FROM BB AS INNR WHERE INNR . `col_bigint_key` > INNR . `col_int` AND INNR . `col_text_not_null_key` >= INNR . `col_char_not_null` ) AND OUTR . `col_bigint_key` = 9 ORDER BY OUTR . `col_text_not_null` , OUTR . `pk`;
115
 
 
116
 
DROP TABLE BB;
117
 
--echo End Bug#595305 test
118
 
 
119
 
--echo Bug#592444 
120
 
--echo - Segfault - operator= (join=0x1fd0fd8, tables=<value optimized out>, conds=<value optimized out>, keyuse_array=<value optimized out>) at ./drizzled/join_table.h:73
121
 
--disable_warnings
122
 
DROP TABLE IF EXISTS `a`;
123
 
DROP TABLE IF EXISTS `d`;
124
 
DROP TABLE IF EXISTS `h`;
125
 
DROP TABLE IF EXISTS `k`;
126
 
DROP TABLE IF EXISTS `n`;
127
 
DROP TABLE IF EXISTS `p`;
128
 
--enable_warnings
129
 
CREATE TABLE `p` (
130
 
  `pk` int NOT NULL AUTO_INCREMENT,
131
 
  `col_int_key` int DEFAULT NULL,
132
 
  PRIMARY KEY (`pk`),
133
 
  KEY `col_int_key` (`col_int_key`)
134
 
) ENGINE=InnoDB;
135
 
 
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);
137
 
 
138
 
DROP TABLE IF EXISTS `n`;
139
 
CREATE TABLE `n` (
140
 
  `pk` int NOT NULL AUTO_INCREMENT,
141
 
  `col_varchar_10_key` varchar(10) DEFAULT NULL,
142
 
  PRIMARY KEY (`pk`),
143
 
  KEY `col_varchar_10_key` (`col_varchar_10_key`)
144
 
) ENGINE=InnoDB;
145
 
 
146
 
INSERT INTO `n` VALUES (1,'rdtxodtcmi'),(2,'corrdtxodt'),(3,'v'),(4,'dcorrdtxod'),(5,'s'),(6,'my'),(7,'e'),(8,'qxszmrdcor'),(9,'bqxszmrdco'),(10,'wbqxszmrdc'),(11,'v'),(12,'kywbqxszmr'),(13,'v'),(14,'lngrakywbq'),(15,'umtlngraky'),(16,'could'),(17,'peiywumtln'),(18,'will'),(19,'tell'),(20,'w'),(21,'jenpeiywum'),(22,'cejenpeiyw'),(23,'x'),(24,'vxcejenpei');
147
 
 
148
 
CREATE TABLE `d` (
149
 
  `pk` int NOT NULL AUTO_INCREMENT,
150
 
  `col_varchar_10` varchar(10) DEFAULT NULL,
151
 
  PRIMARY KEY (`pk`)
152
 
) ENGINE=InnoDB;
153
 
 
154
 
INSERT INTO `d` VALUES (1,'f'),(2,'zdvoleqxer'),(3,'i'),(4,'u'),(5,'q');
155
 
 
156
 
CREATE TABLE `h` (
157
 
  `col_varchar_10` varchar(10) DEFAULT NULL,
158
 
  `pk` int NOT NULL AUTO_INCREMENT,
159
 
  `col_varchar_10_key` varchar(10) DEFAULT NULL,
160
 
  `col_int_key` int DEFAULT NULL,
161
 
  PRIMARY KEY (`pk`),
162
 
  KEY `col_varchar_10_key` (`col_varchar_10_key`),
163
 
  KEY `col_int_key` (`col_int_key`)
164
 
) ENGINE=InnoDB;
165
 
 
166
 
INSERT INTO `h` VALUES ('n',1,'rshrrbmsyd',4),('h',2,'okay',NULL),('ok',3,'i',-802095104),('just',4,'z',6),('hfnrshrrbm',5,'his',8),('f',6,'xhfnrshrrb',1),('h',7,'wxhfnrshrr',7),('wtwxhfnrsh',8,'v',7),('of',9,'cwtwxhfnrs',-1258487808);
167
 
 
168
 
CREATE TABLE `a` (
169
 
  `pk` int NOT NULL AUTO_INCREMENT,
170
 
  PRIMARY KEY (`pk`)
171
 
) ENGINE=InnoDB;
172
 
 
173
 
CREATE TABLE `k` (
174
 
  `pk` int NOT NULL AUTO_INCREMENT,
175
 
  `col_varchar_10` varchar(10) DEFAULT NULL,
176
 
  `col_varchar_10_key` varchar(10) DEFAULT NULL,
177
 
  `col_int_key` int DEFAULT NULL,
178
 
  PRIMARY KEY (`pk`),
179
 
  KEY `col_varchar_10_key` (`col_varchar_10_key`),
180
 
  KEY `col_int_key` (`col_int_key`)
181
 
) ENGINE=InnoDB;
182
 
 
183
 
INSERT INTO `k` VALUES (1,'bwylrhande','hbwylrhand',-522452992),(2,'how','about',2098200576),(3,'ephbwylrha','pephbwylrh',904331264),(4,'okay','ipephbwylr',-1176633344),(5,'but','one',-1177288704),(6,'tnwkipephb','j',5),(7,'hqtnwkipep','a',9),(8,'with','wdhqtnwkip',NULL),(9,'eyxwdhqtnw','jeyxwdhqtn',2),(10,'right','something',3),(11,'z','ujeyxwdhqt',5),(12,'yyujeyxwdh','we',NULL),(13,'can','syyujeyxwd',0),(14,'s','oh',21037056),(15,'ngvsyyujey','something',1224867840),(16,'gngvsyyuje','qgngvsyyuj',1),(17,'this','really',4),(18,'p','bbuqgngvsy',1865023488),(19,'okay','from',1),(20,'dmbbuqgngv','but',9),(21,'one','rdmbbuqgng',0);
184
 
 
185
 
SELECT
186
 
table2 . `pk` AS field4
187
 
FROM p AS table1 LEFT JOIN
188
 
n AS table2 LEFT JOIN
189
 
d AS table3
190
 
ON table2 . `pk` = table3 . `pk`
191
 
RIGHT OUTER JOIN h AS table4
192
 
LEFT OUTER JOIN a AS table5
193
 
ON table4 . `pk` = table5 . `pk`
194
 
ON table2 . `col_varchar_10_key` = table4 . `col_varchar_10_key`
195
 
ON table1 . `col_int_key` = table5 . `pk`
196
 
LEFT JOIN h AS table6
197
 
LEFT JOIN k AS table7
198
 
ON table6 . `col_int_key` = table7 . `col_int_key`
199
 
LEFT OUTER JOIN h AS table8
200
 
ON table7 . `col_varchar_10_key` = table8 . `col_varchar_10`
201
 
ON table3 . `col_varchar_10` = table7 . `col_varchar_10`
202
 
WHERE (
203
 
( table3 . `pk` IN (6) )
204
 
OR table7 . `col_int_key` IN (1, 1, 1, 2) ) ;
205
 
 
206
 
# Cleanup
207
 
DROP TABLE a, d, h, k, n , p ;
208
 
--echo End Bug#592444 test
209
 
 
210
 
--echo Bug#586051 start
211
 
--echo -Server allowing JOIN on NULL values in certain cases if query includes ORDER BY clause
212
 
 
213
 
--disable_warnings
214
 
DROP TABLE IF EXISTS `i`;
215
 
CREATE TABLE `i` (
216
 
  `col_int_key` int DEFAULT NULL,
217
 
  `pk` int NOT NULL AUTO_INCREMENT,
218
 
  PRIMARY KEY (`pk`),
219
 
  KEY `col_int_key` (`col_int_key`)
220
 
) ENGINE=InnoDB;
221
 
 
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);
223
 
 
224
 
DROP TABLE IF EXISTS `b`;
225
 
CREATE TABLE `b` (
226
 
  `col_int_key` int DEFAULT NULL,
227
 
  `col_int` int DEFAULT NULL,
228
 
  `pk` int NOT NULL AUTO_INCREMENT,
229
 
  PRIMARY KEY (`pk`),
230
 
  KEY `col_int_key` (`col_int_key`)
231
 
) ENGINE=InnoDB;
232
 
 
233
 
INSERT INTO `b` VALUES (NULL,7,1);
234
 
--enable_warnings
235
 
 
236
 
#/* Begin test case for query 0 */
237
 
 
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 ) 
241
 
ORDER BY field3 ;
242
 
#/* End of test case for query 0 */
243
 
 
244
 
#/* Begin test case for query 1 */
245
 
 
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 */ ;
249
 
 
250
 
#/* End of test case for query 1 */
251
 
 
252
 
DROP TABLE i;
253
 
DROP TABLE b;
254
 
 
255
 
--echo End Bug#586051 test
256
 
 
257
 
 
258
 
--echo Bug#585628
259
 
--echo - Adding STRAIGHT_JOIN to certain queries results in loss of returned rows
260
 
--disable_warnings
261
 
DROP TABLE IF EXISTS `g`;
262
 
DROP TABLE IF EXISTS `e`;
263
 
DROP TABLE IF EXISTS `m`;
264
 
DROP TABLE IF EXISTS `a`;
265
 
--enable_warnings
266
 
 
267
 
CREATE TABLE `g` (
268
 
  `pk` int NOT NULL AUTO_INCREMENT,
269
 
  `col_int` int DEFAULT NULL,
270
 
  PRIMARY KEY (`pk`)
271
 
) ENGINE=InnoDB;
272
 
 
273
 
INSERT INTO `g` VALUES (1,NULL),(2,1607860224),(3,NULL),(4,822673408),(5,1907556352),(6,NULL),(7,NULL),(8,NULL);
274
 
 
275
 
CREATE TABLE `e` (
276
 
  `col_int_key` int DEFAULT NULL,
277
 
  `pk` int NOT NULL AUTO_INCREMENT,
278
 
  PRIMARY KEY (`pk`),
279
 
  KEY `col_int_key` (`col_int_key`)
280
 
) ENGINE=InnoDB;
281
 
 
282
 
INSERT INTO `e` VALUES (NULL,1),(1862205440,2),(1,3),(-517472256,4),(1341587456,5),(5,6);
283
 
 
284
 
CREATE TABLE `m` (
285
 
  `col_int` int DEFAULT NULL,
286
 
  `pk` int NOT NULL AUTO_INCREMENT,
287
 
  PRIMARY KEY (`pk`)
288
 
) ENGINE=InnoDB;
289
 
 
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);
291
 
 
292
 
CREATE TABLE `a` (
293
 
  `col_int_key` int DEFAULT NULL,
294
 
  `pk` int NOT NULL AUTO_INCREMENT,
295
 
  PRIMARY KEY (`pk`),
296
 
  KEY `col_int_key` (`col_int_key`)
297
 
) ENGINE=InnoDB;
298
 
 
299
 
 
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` ;
302
 
 
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 */;
305
 
 
306
 
DROP TABLE `a` ;
307
 
DROP TABLE `e` ;
308
 
DROP TABLE `g` ;
309
 
 
310
 
 
311
 
--echo End Bug#585628 test
312
 
 
313
 
 
314
 
--echo Bug#585644
315
 
--echo - Adding STRAIGHT_JOIN to certain queries results in a large number of duplicate rows
316
 
--disable_warnings
317
 
DROP TABLE IF EXISTS `m`;
318
 
DROP TABLE IF EXISTS `o`;
319
 
--enable_warnings
320
 
 
321
 
CREATE TABLE `m` (
322
 
  `col_int` int DEFAULT NULL,
323
 
  `pk` int NOT NULL AUTO_INCREMENT,
324
 
  PRIMARY KEY (`pk`)
325
 
) ENGINE=InnoDB;
326
 
 
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);
328
 
 
329
 
CREATE TABLE `o` (
330
 
  `col_int_key` int DEFAULT NULL,
331
 
  `pk` int NOT NULL AUTO_INCREMENT,
332
 
  PRIMARY KEY (`pk`),
333
 
  KEY `col_int_key` (`col_int_key`)
334
 
) ENGINE=InnoDB;
335
 
 
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);
337
 
 
338
 
#/* Begin test case for query 0 */
339
 
 
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` ;
342
 
 
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 */;
345
 
 
346
 
DROP TABLE m;
347
 
DROP TABLE o;
348
 
--echo End Bug#585644 test
349
 
 
350
 
--echo Bug#608416
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
355
 
 
356
 
--disable_warnings
357
 
DROP TABLE IF EXISTS `aa`,`bb`,`dd`;
358
 
--enable_warnings
359
 
 
360
 
DROP TABLE IF EXISTS `aa`;
361
 
CREATE TABLE `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,
371
 
  PRIMARY KEY (`pk`),
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`)
378
 
) ENGINE=InnoDB;
379
 
 
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);
381
 
 
382
 
CREATE TABLE `bb` (
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,
392
 
  PRIMARY KEY (`pk`),
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`)
399
 
) ENGINE=InnoDB;
400
 
 
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);
402
 
 
403
 
CREATE TABLE `dd` (
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,
413
 
  PRIMARY KEY (`pk`),
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))
420
 
) ENGINE=InnoDB;
421
 
 
422
 
INSERT INTO `dd` VALUES (1777795072,NULL,'g',0,'was',-1866203136,'',1,'g');
423
 
 
424
 
--error ER_BAD_FIELD_ERROR
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;
429
 
 
430
 
# cleanup
431
 
DROP TABLE `aa`;
432
 
DROP TABLE `bb`;
433
 
DROP TABLE `dd`;
434
 
--echo End Bug#608416
435
 
 
436
 
--echo Bug#615419
437
 
--echo Crash/segfault - in drizzled::DTCollation::set (this=0x60, dt=...) at drizzled/dtcollation.cc:51 51 collation= dt.collation
438
 
--disable_warnings
439
 
DROP TABLE IF EXISTS `aa`;
440
 
DROP TABLE IF EXISTS `bb`;
441
 
DROP TABLE IF EXISTS `cc`;
442
 
--enable_warnings
443
 
 
444
 
CREATE TABLE `aa` (
445
 
  `pk` int NOT NULL AUTO_INCREMENT,
446
 
  `col_char_10_key` varchar(10) DEFAULT NULL,
447
 
  `col_char_1024_not_null_key` varchar(1024) NOT NULL,
448
 
  `col_int_not_null_key` int NOT NULL,
449
 
  `col_int_key` int DEFAULT NULL,
450
 
  `col_bigint_key` bigint DEFAULT NULL,
451
 
  PRIMARY KEY (`pk`),
452
 
  KEY `col_char_10_key` (`col_char_10_key`),
453
 
  KEY `col_char_1024_not_null_key` (`col_char_1024_not_null_key`(255)),
454
 
  KEY `col_int_not_null_key` (`col_int_not_null_key`),
455
 
  KEY `col_int_key` (`col_int_key`),
456
 
  KEY `col_bigint_key` (`col_bigint_key`)
457
 
) ENGINE=InnoDB;
458
 
 
459
 
INSERT INTO `aa` VALUES (1,'ZDPHP','well',-523436032,2071265280,NULL),(2,'AIJUR','on',1,1,NULL),(3,'NEMIU','ASUNK',621543424,NULL,-2842897264777625600),(4,'HMHFF','d',880148480,1734213632,NULL),(5,'XIXMV','m',1963982848,1505558528,3557843705622691840),(6,'k','to',8,8,-4628011567076605952),(7,'GJZBY','t',1445462016,NULL,-5755881798756204544),(8,'UGMMS','m',0,-1685520384,NULL),(9,'p','USQVA',-747241472,NULL,NULL),(10,'RMZLQ','FUBQO',6,-1431502848,-5719290051783819264);
460
 
 
461
 
CREATE TABLE `bb` (
462
 
  `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,
463
 
  `col_text_not_null_key` text NOT NULL,
464
 
  `col_char_10_not_null_key` varchar(10) NOT NULL,
465
 
  `col_char_1024_not_null_key` varchar(1024) NOT NULL,
466
 
  `col_bigint_key` bigint DEFAULT NULL,
467
 
  `pk` int NOT NULL AUTO_INCREMENT,
468
 
  `col_int_key` int DEFAULT NULL,
469
 
  `col_int_not_null` int NOT NULL,
470
 
  PRIMARY KEY (`pk`),
471
 
  KEY `col_enum_not_null_key` (`col_enum_not_null_key`),
472
 
  KEY `col_text_not_null_key` (`col_text_not_null_key`(255)),
473
 
  KEY `col_char_10_not_null_key` (`col_char_10_not_null_key`),
474
 
  KEY `col_char_1024_not_null_key` (`col_char_1024_not_null_key`(255)),
475
 
  KEY `col_bigint_key` (`col_bigint_key`),
476
 
  KEY `col_int_key` (`col_int_key`)
477
 
) ENGINE=InnoDB;
478
 
 
479
 
INSERT INTO `bb` VALUES ('r','','DCJRX','IHTVZ',NULL,1,NULL,763953152),('a','','x','a',NULL,2,4,-132513792),('s','','ZMHDL','s',-647673921411219456,3,-628359168,3),('i','','SJGHS','d',-5702401553181179904,4,-2114322432,-1349844992),('w','','his','TTNNK',NULL,5,105971712,-2019688448),('v','','m','GKTRR',4,6,2,-38207488),('d','','i','ZZDWO',NULL,7,NULL,3),('f','','d','up',8,8,NULL,8),('y','','from','would',NULL,9,-607322112,-1129054208),('o','','h','JNAFV',NULL,10,0,-415629312);
480
 
 
481
 
CREATE TABLE `cc` (
482
 
  `pk` int NOT NULL AUTO_INCREMENT,
483
 
  `col_int_not_null` int NOT NULL,
484
 
  `col_int_not_null_key` int NOT NULL,
485
 
  PRIMARY KEY (`pk`),
486
 
  KEY `col_int_not_null_key` (`col_int_not_null_key`)
487
 
) ENGINE=InnoDB;
488
 
 
489
 
INSERT INTO `cc` VALUES (1,9,-1665335296),(2,2,0),(3,0,1736638464),(4,-1205207040,-2136604672),(5,-330170368,3),(6,7,309592064),(7,-858259456,4),(8,-1265565696,1614217216),(9,532217856,1822883840),(10,-1106640896,1),(11,7,0),(12,-2060517376,8),(13,9,248709120),(14,3,8),(15,1633353728,-1300496384),(16,621150208,1776549888),(17,6,2053242880),(18,8,-2143551488),(19,7,1),(20,1232142336,7),(21,1089404928,1946615808),(22,2,-141492224),(23,-1999896576,1),(24,-858324992,2062483456),(25,2034565120,2115698688),(26,-2020933632,-1325596672),(27,108658688,1),(28,-1947402240,759889920),(29,-1483669504,9),(30,2,-1726873600),(31,711720960,1),(32,4,8),(33,0,381353984),(34,2,-1951727616),(35,412811264,-1688338432),(36,3,6),(37,4,-1386217472),(38,335544320,680787968),(39,-1573322752,8),(40,-1445724160,3),(41,1,8),(42,7,9),(43,998375424,-1370816512),(44,1,6),(45,6,4),(46,6,612171776),(47,6,9),(48,4,693370880),(49,1413349376,1978990592),(50,-1399783424,4),(51,5,-40304640),(52,4,-562626560),(53,1834352640,6),(54,9,6),(55,37158912,4),(56,1434648576,6),(57,1995636736,0),(58,2,-1440415744),(59,8,9),(60,-1991114752,-883687424),(61,8,5),(62,2,8),(63,-2013528064,79429632),(64,7,4128768),(65,1269104640,-1750990848),(66,563675136,1545011200),(67,707330048,3),(68,-460324864,-959643648),(69,436142080,1),(70,-1233977344,1),(71,-602931200,6),(72,6,1964769280),(73,741867520,1),(74,2045575168,4),(75,2,-117506048),(76,-1779499008,0),(77,6,1717436416),(78,1460862976,1473773568),(79,6,140902400),(80,8,4),(81,1401683968,1398669312),(82,-853671936,-1045561344),(83,58261504,-817299456),(84,7,7),(85,0,-976027648),(86,-1865809920,1135542272),(87,-1795358720,8),(88,1723465728,6),(89,-1031340032,2),(90,9,1),(91,5,-1602879488),(92,-938999808,4),(93,-2075787264,6),(94,379453440,-336789504),(95,347734016,1),(96,0,-1887174656),(97,4,8),(98,4,-1159266304),(99,1025703936,523763712),(100,1,1434124288);
490
 
 
491
 
SELECT table2 . `col_enum_not_null_key` AS field1
492
 
 FROM ( BB AS table1 STRAIGHT_JOIN
493
 
( ( BB AS table2 INNER JOIN
494
 
 CC AS table3 ON
495
 
(table3 . `col_int_not_null` = table2 . `col_bigint_key` AND ( 6, 6 )
496
 
IN ( SELECT SUBQUERY1_t1 . `col_bigint_key` AS SUBQUERY1_field1 , SUM( SUBQUERY1_t1 . `col_int_key` ) AS SUBQUERY1_field2 FROM ( AA AS SUBQUERY1_t1 RIGHT OUTER JOIN AA AS SUBQUERY1_t2 ON (SUBQUERY1_t2 . `col_int_not_null_key` = SUBQUERY1_t1 . `col_int_not_null_key` ) ) WHERE SUBQUERY1_t2 . `col_char_1024_not_null_key` != SUBQUERY1_t1 . `col_char_10_key` ) ) ) ) ON (table3 . `col_int_not_null_key` = table2 . `pk` ) ) WHERE ( ( 'a', 't' ) IN ( SELECT SUBQUERY2_t1 . `col_char_1024_not_null_key` AS SUBQUERY2_field1 , SUBQUERY2_t1 . `col_text_not_null_key` AS SUBQUERY2_field2 FROM BB AS SUBQUERY2_t1 WHERE SUBQUERY2_t1 . `col_char_1024_not_null_key` >= 'y' ) ) AND ( table1 . `col_int_key` > 20 AND table1 . `col_int_key` < ( 20 + 229 ) OR table1 . `pk` > 20 AND table1 . `pk` < ( 20 + 158 ) ) OR ( table2 . `col_char_1024_not_null_key` < table2 . `col_char_1024_not_null_key` AND table1 . `col_int_not_null` IS NULL ) HAVING field1 <> 56 ORDER BY table1 . `col_char_10_not_null_key` , table3 .`pk` DESC;
497
 
 
498
 
DROP TABLE `aa`, `bb`, `cc` ;
499
 
--echo End Bug#615419