Merge lp:~mmcm/akiban-server/sql-nested-bloom-filter into lp:~akiban-technologies/akiban-server/trunk
- sql-nested-bloom-filter
- Merge into trunk
Proposed by
Mike McMahon
Status: | Merged |
---|---|
Approved by: | Nathan Williams |
Approved revision: | 2638 |
Merged at revision: | 2637 |
Proposed branch: | lp:~mmcm/akiban-server/sql-nested-bloom-filter |
Merge into: | lp:~akiban-technologies/akiban-server/trunk |
Diff against target: |
680 lines (+655/-2) 2 files modified
src/main/java/com/akiban/sql/optimizer/rule/OperatorAssembler.java (+2/-2) src/test/resources/com/akiban/sql/pg/yaml/bugs/test-nested-bloom-filter.yaml (+653/-0) |
To merge this branch: | bzr merge lp:~mmcm/akiban-server/sql-nested-bloom-filter |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Nathan Williams | Approve | ||
Review via email: mp+160477@code.launchpad.net |
Commit message
Description of the change
Fix bindings array index computation when there is a Bloom filter and subqueries / parameters.
Includes a YAML test that gets an error without the offset changes. The test is a bit big because you need a fair amount of data for a Bloom filter to be worth it.
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'src/main/java/com/akiban/sql/optimizer/rule/OperatorAssembler.java' |
2 | --- src/main/java/com/akiban/sql/optimizer/rule/OperatorAssembler.java 2013-03-22 20:05:57 +0000 |
3 | +++ src/main/java/com/akiban/sql/optimizer/rule/OperatorAssembler.java 2013-04-23 19:28:22 +0000 |
4 | @@ -1784,7 +1784,7 @@ |
5 | stream.operator = API.using_BloomFilter(lstream.operator, |
6 | lstream.rowType, |
7 | bloomFilter.getEstimatedSize(), |
8 | - pos, |
9 | + pos + loopBindingsOffset, |
10 | stream.operator, |
11 | collators, |
12 | usePValues); |
13 | @@ -1812,7 +1812,7 @@ |
14 | fields, |
15 | tFields, |
16 | collators, |
17 | - pos); |
18 | + pos + loopBindingsOffset); |
19 | return stream; |
20 | } |
21 | |
22 | |
23 | === added file 'src/test/resources/com/akiban/sql/pg/yaml/bugs/test-nested-bloom-filter.yaml' |
24 | --- src/test/resources/com/akiban/sql/pg/yaml/bugs/test-nested-bloom-filter.yaml 1970-01-01 00:00:00 +0000 |
25 | +++ src/test/resources/com/akiban/sql/pg/yaml/bugs/test-nested-bloom-filter.yaml 2013-04-23 19:28:22 +0000 |
26 | @@ -0,0 +1,653 @@ |
27 | +# |
28 | +# Bloom filter in subquery of query with parameters. |
29 | +# Make sure binding indexes are straight. |
30 | +# |
31 | +# |
32 | +# many-to-many |
33 | +# |
34 | +--- |
35 | +- CreateTable: names(id INT NOT NULL PRIMARY KEY, name VARCHAR(128)) |
36 | +--- |
37 | +- Statement: CREATE UNIQUE INDEX by_name ON names(name) |
38 | +--- |
39 | +- CreateTable: props(id INT NOT NULL PRIMARY KEY, name VARCHAR(128)) |
40 | +--- |
41 | +- Statement: CREATE UNIQUE INDEX prop_name ON props(name) |
42 | +--- |
43 | +- CreateTable: name_props(id INT NOT NULL PRIMARY KEY, prop_id INT NOT NULL, name_id INT NOT NULL, GROUPING FOREIGN KEY(name_id) REFERENCES names(id)) |
44 | +# Put in enough data to choose Bloom filter. |
45 | +--- |
46 | +- Statement: CREATE UNIQUE INDEX name_props ON name_props(name_id, prop_id) |
47 | +--- |
48 | +- Statement: INSERT INTO props VALUES(1, 'abc'), (2, 'xyz'); |
49 | +--- |
50 | +- Statement: INSERT INTO names VALUES(1, 'Akiban') |
51 | +--- |
52 | +- Statement: INSERT INTO name_props VALUES(1, 1, 1), (2, 2, 1) |
53 | +--- |
54 | +- Statement: INSERT INTO names VALUES(4, 'Spoqrzt') |
55 | +--- |
56 | +- Statement: INSERT INTO name_props VALUES(5, 1, 4) |
57 | +--- |
58 | +- Statement: INSERT INTO names VALUES(5, 'Ioukhwfzpl') |
59 | +--- |
60 | +- Statement: INSERT INTO name_props VALUES(6, 1, 5) |
61 | +--- |
62 | +- Statement: INSERT INTO names VALUES(6, 'Gzwucp') |
63 | +--- |
64 | +- Statement: INSERT INTO name_props VALUES(7, 1, 6) |
65 | +--- |
66 | +- Statement: INSERT INTO names VALUES(7, 'Zgewwy') |
67 | +--- |
68 | +- Statement: INSERT INTO name_props VALUES(8, 1, 7) |
69 | +--- |
70 | +- Statement: INSERT INTO names VALUES(8, 'Pbvbk') |
71 | +--- |
72 | +- Statement: INSERT INTO name_props VALUES(9, 1, 8) |
73 | +--- |
74 | +- Statement: INSERT INTO names VALUES(9, 'Jxbtff') |
75 | +--- |
76 | +- Statement: INSERT INTO name_props VALUES(10, 1, 9) |
77 | +--- |
78 | +- Statement: INSERT INTO names VALUES(10, 'Rafcp') |
79 | +--- |
80 | +- Statement: INSERT INTO name_props VALUES(11, 1, 10) |
81 | +--- |
82 | +- Statement: INSERT INTO names VALUES(11, 'Zjvqntazs') |
83 | +--- |
84 | +- Statement: INSERT INTO name_props VALUES(12, 1, 11) |
85 | +--- |
86 | +- Statement: INSERT INTO names VALUES(12, 'Ibpudfbtxc') |
87 | +--- |
88 | +- Statement: INSERT INTO name_props VALUES(13, 1, 12) |
89 | +--- |
90 | +- Statement: INSERT INTO names VALUES(13, 'Hbksgv') |
91 | +--- |
92 | +- Statement: INSERT INTO name_props VALUES(14, 1, 13) |
93 | +--- |
94 | +- Statement: INSERT INTO names VALUES(14, 'Mdhbz') |
95 | +--- |
96 | +- Statement: INSERT INTO name_props VALUES(15, 1, 14) |
97 | +--- |
98 | +- Statement: INSERT INTO names VALUES(15, 'Rivcwdnnn') |
99 | +--- |
100 | +- Statement: INSERT INTO name_props VALUES(16, 1, 15) |
101 | +--- |
102 | +- Statement: INSERT INTO names VALUES(16, 'Brfjsk') |
103 | +--- |
104 | +- Statement: INSERT INTO name_props VALUES(17, 1, 16) |
105 | +--- |
106 | +- Statement: INSERT INTO names VALUES(18, 'Sbcrqbxqxzr') |
107 | +--- |
108 | +- Statement: INSERT INTO name_props VALUES(19, 1, 18) |
109 | +--- |
110 | +- Statement: INSERT INTO names VALUES(31, 'Ahfntcvnl') |
111 | +--- |
112 | +- Statement: INSERT INTO name_props VALUES(32, 1, 31) |
113 | +--- |
114 | +- Statement: INSERT INTO names VALUES(33, 'Kxgam') |
115 | +--- |
116 | +- Statement: INSERT INTO name_props VALUES(34, 1, 33) |
117 | +--- |
118 | +- Statement: INSERT INTO names VALUES(34, 'Octwh') |
119 | +--- |
120 | +- Statement: INSERT INTO name_props VALUES(35, 1, 34) |
121 | +--- |
122 | +- Statement: INSERT INTO names VALUES(35, 'Snatm') |
123 | +--- |
124 | +- Statement: INSERT INTO name_props VALUES(36, 1, 35) |
125 | +--- |
126 | +- Statement: INSERT INTO names VALUES(36, 'Kinjs') |
127 | +--- |
128 | +- Statement: INSERT INTO name_props VALUES(37, 1, 36) |
129 | +--- |
130 | +- Statement: INSERT INTO names VALUES(37, 'Eccqtjzg') |
131 | +--- |
132 | +- Statement: INSERT INTO name_props VALUES(38, 1, 37) |
133 | +--- |
134 | +- Statement: INSERT INTO names VALUES(38, 'Thdeljlud') |
135 | +--- |
136 | +- Statement: INSERT INTO name_props VALUES(39, 1, 38) |
137 | +--- |
138 | +- Statement: INSERT INTO names VALUES(39, 'Ocfrhu') |
139 | +--- |
140 | +- Statement: INSERT INTO name_props VALUES(40, 1, 39) |
141 | +--- |
142 | +- Statement: INSERT INTO names VALUES(40, 'Ljogrtgeiu') |
143 | +--- |
144 | +- Statement: INSERT INTO name_props VALUES(41, 1, 40) |
145 | +--- |
146 | +- Statement: INSERT INTO names VALUES(41, 'Btpvkvmkle') |
147 | +--- |
148 | +- Statement: INSERT INTO name_props VALUES(42, 1, 41) |
149 | +--- |
150 | +- Statement: INSERT INTO names VALUES(42, 'Plzcbtl') |
151 | +--- |
152 | +- Statement: INSERT INTO name_props VALUES(43, 1, 42) |
153 | +--- |
154 | +- Statement: INSERT INTO names VALUES(43, 'Iufyrfw') |
155 | +--- |
156 | +- Statement: INSERT INTO name_props VALUES(44, 1, 43) |
157 | +--- |
158 | +- Statement: INSERT INTO names VALUES(44, 'Zaqevll') |
159 | +--- |
160 | +- Statement: INSERT INTO name_props VALUES(45, 1, 44) |
161 | +--- |
162 | +- Statement: INSERT INTO names VALUES(45, 'Dfmfeklpgw') |
163 | +--- |
164 | +- Statement: INSERT INTO name_props VALUES(46, 1, 45) |
165 | +--- |
166 | +- Statement: INSERT INTO names VALUES(46, 'Mynjcxgaw') |
167 | +--- |
168 | +- Statement: INSERT INTO name_props VALUES(47, 1, 46) |
169 | +--- |
170 | +- Statement: INSERT INTO names VALUES(47, 'Ybaghbzp') |
171 | +--- |
172 | +- Statement: INSERT INTO name_props VALUES(48, 1, 47) |
173 | +--- |
174 | +- Statement: INSERT INTO names VALUES(58, 'Dhivpsiznkk') |
175 | +--- |
176 | +- Statement: INSERT INTO name_props VALUES(59, 1, 58) |
177 | +--- |
178 | +- Statement: INSERT INTO names VALUES(59, 'Panofztcjd') |
179 | +--- |
180 | +- Statement: INSERT INTO name_props VALUES(60, 1, 59) |
181 | +--- |
182 | +- Statement: INSERT INTO names VALUES(60, 'Yienwzfpt') |
183 | +--- |
184 | +- Statement: INSERT INTO name_props VALUES(61, 1, 60) |
185 | +--- |
186 | +- Statement: INSERT INTO names VALUES(61, 'Zfshqgrgylx') |
187 | +--- |
188 | +- Statement: INSERT INTO name_props VALUES(62, 1, 61) |
189 | +--- |
190 | +- Statement: INSERT INTO names VALUES(62, 'Souapplpfr') |
191 | +--- |
192 | +- Statement: INSERT INTO name_props VALUES(63, 1, 62) |
193 | +--- |
194 | +- Statement: INSERT INTO names VALUES(63, 'Rhcmmyainf') |
195 | +--- |
196 | +- Statement: INSERT INTO name_props VALUES(64, 1, 63) |
197 | +--- |
198 | +- Statement: INSERT INTO names VALUES(64, 'Vceohrds') |
199 | +--- |
200 | +- Statement: INSERT INTO name_props VALUES(65, 1, 64) |
201 | +--- |
202 | +- Statement: INSERT INTO names VALUES(65, 'Gbcmlg') |
203 | +--- |
204 | +- Statement: INSERT INTO name_props VALUES(66, 1, 65) |
205 | +--- |
206 | +- Statement: INSERT INTO names VALUES(66, 'Yrzktqraf') |
207 | +--- |
208 | +- Statement: INSERT INTO name_props VALUES(67, 1, 66) |
209 | +--- |
210 | +- Statement: INSERT INTO names VALUES(67, 'Mgqpgoiecy') |
211 | +--- |
212 | +- Statement: INSERT INTO name_props VALUES(68, 1, 67) |
213 | +--- |
214 | +- Statement: INSERT INTO names VALUES(76, 'Hmrsj') |
215 | +--- |
216 | +- Statement: INSERT INTO name_props VALUES(77, 1, 76) |
217 | +--- |
218 | +- Statement: INSERT INTO names VALUES(78, 'Gvfmntnsgwn') |
219 | +--- |
220 | +- Statement: INSERT INTO name_props VALUES(79, 1, 78) |
221 | +--- |
222 | +- Statement: INSERT INTO names VALUES(79, 'Zuaszsxzy') |
223 | +--- |
224 | +- Statement: INSERT INTO name_props VALUES(80, 1, 79) |
225 | +--- |
226 | +- Statement: INSERT INTO names VALUES(82, 'Fmvci') |
227 | +--- |
228 | +- Statement: INSERT INTO name_props VALUES(83, 1, 82) |
229 | +--- |
230 | +- Statement: INSERT INTO names VALUES(90, 'Gaptjxia') |
231 | +--- |
232 | +- Statement: INSERT INTO name_props VALUES(91, 1, 90) |
233 | +--- |
234 | +- Statement: INSERT INTO names VALUES(92, 'Zyvnsklsyda') |
235 | +--- |
236 | +- Statement: INSERT INTO name_props VALUES(93, 1, 92) |
237 | +--- |
238 | +- Statement: INSERT INTO names VALUES(96, 'Gojhf') |
239 | +--- |
240 | +- Statement: INSERT INTO name_props VALUES(97, 1, 96) |
241 | +--- |
242 | +- Statement: INSERT INTO names VALUES(105, 'Qknhonhsetk') |
243 | +--- |
244 | +- Statement: INSERT INTO name_props VALUES(106, 1, 105) |
245 | +--- |
246 | +- Statement: INSERT INTO names VALUES(107, 'Qfukqa') |
247 | +--- |
248 | +- Statement: INSERT INTO name_props VALUES(108, 1, 107) |
249 | +--- |
250 | +- Statement: INSERT INTO names VALUES(110, 'Gpvgz') |
251 | +--- |
252 | +- Statement: INSERT INTO name_props VALUES(111, 1, 110) |
253 | +--- |
254 | +- Statement: INSERT INTO names VALUES(111, 'Zqnbkziw') |
255 | +--- |
256 | +- Statement: INSERT INTO name_props VALUES(112, 1, 111) |
257 | +--- |
258 | +- Statement: INSERT INTO names VALUES(112, 'Ixaujvp') |
259 | +--- |
260 | +- Statement: INSERT INTO name_props VALUES(113, 1, 112) |
261 | +--- |
262 | +- Statement: INSERT INTO names VALUES(119, 'Tvkzkswznpa') |
263 | +--- |
264 | +- Statement: INSERT INTO name_props VALUES(120, 1, 119) |
265 | +--- |
266 | +- Statement: INSERT INTO names VALUES(120, 'Roofci') |
267 | +--- |
268 | +- Statement: INSERT INTO name_props VALUES(121, 1, 120) |
269 | +--- |
270 | +- Statement: INSERT INTO names VALUES(124, 'Tptkxttdyl') |
271 | +--- |
272 | +- Statement: INSERT INTO name_props VALUES(125, 1, 124) |
273 | +--- |
274 | +- Statement: INSERT INTO names VALUES(125, 'Inzugej') |
275 | +--- |
276 | +- Statement: INSERT INTO name_props VALUES(126, 1, 125) |
277 | +--- |
278 | +- Statement: INSERT INTO names VALUES(126, 'Evsmj') |
279 | +--- |
280 | +- Statement: INSERT INTO name_props VALUES(127, 1, 126) |
281 | +--- |
282 | +- Statement: INSERT INTO names VALUES(133, 'Vjmgvogph') |
283 | +--- |
284 | +- Statement: INSERT INTO name_props VALUES(134, 1, 133) |
285 | +--- |
286 | +- Statement: INSERT INTO names VALUES(134, 'Bzrggr') |
287 | +--- |
288 | +- Statement: INSERT INTO name_props VALUES(135, 1, 134) |
289 | +--- |
290 | +- Statement: INSERT INTO names VALUES(135, 'Xpvvsn') |
291 | +--- |
292 | +- Statement: INSERT INTO name_props VALUES(136, 1, 135) |
293 | +--- |
294 | +- Statement: INSERT INTO names VALUES(137, 'Nwavmftfwc') |
295 | +--- |
296 | +- Statement: INSERT INTO name_props VALUES(138, 1, 137) |
297 | +--- |
298 | +- Statement: INSERT INTO names VALUES(138, 'Qqbprawuzqa') |
299 | +--- |
300 | +- Statement: INSERT INTO name_props VALUES(139, 1, 138) |
301 | +--- |
302 | +- Statement: INSERT INTO names VALUES(140, 'Kbjrvsiy') |
303 | +--- |
304 | +- Statement: INSERT INTO name_props VALUES(141, 1, 140) |
305 | +--- |
306 | +- Statement: INSERT INTO names VALUES(142, 'Wgunros') |
307 | +--- |
308 | +- Statement: INSERT INTO name_props VALUES(143, 1, 142) |
309 | +--- |
310 | +- Statement: INSERT INTO names VALUES(150, 'Yeinuylr') |
311 | +--- |
312 | +- Statement: INSERT INTO name_props VALUES(151, 1, 150) |
313 | +--- |
314 | +- Statement: INSERT INTO names VALUES(155, 'Hpcgv') |
315 | +--- |
316 | +- Statement: INSERT INTO name_props VALUES(156, 1, 155) |
317 | +--- |
318 | +- Statement: INSERT INTO names VALUES(160, 'Tcgmsuuyp') |
319 | +--- |
320 | +- Statement: INSERT INTO name_props VALUES(161, 1, 160) |
321 | +--- |
322 | +- Statement: INSERT INTO names VALUES(161, 'Bawdd') |
323 | +--- |
324 | +- Statement: INSERT INTO name_props VALUES(162, 1, 161) |
325 | +--- |
326 | +- Statement: INSERT INTO names VALUES(167, 'Rhcuvv') |
327 | +--- |
328 | +- Statement: INSERT INTO name_props VALUES(168, 1, 167) |
329 | +--- |
330 | +- Statement: INSERT INTO names VALUES(168, 'Bprojkuo') |
331 | +--- |
332 | +- Statement: INSERT INTO name_props VALUES(169, 1, 168) |
333 | +--- |
334 | +- Statement: INSERT INTO names VALUES(172, 'Ociwj') |
335 | +--- |
336 | +- Statement: INSERT INTO name_props VALUES(173, 1, 172) |
337 | +--- |
338 | +- Statement: INSERT INTO names VALUES(179, 'Vagmrpfcyic') |
339 | +--- |
340 | +- Statement: INSERT INTO name_props VALUES(180, 1, 179) |
341 | +--- |
342 | +- Statement: INSERT INTO names VALUES(182, 'Rcspmlskni') |
343 | +--- |
344 | +- Statement: INSERT INTO name_props VALUES(183, 1, 182) |
345 | +--- |
346 | +- Statement: INSERT INTO names VALUES(184, 'Dyilbdvvrgz') |
347 | +--- |
348 | +- Statement: INSERT INTO name_props VALUES(185, 1, 184) |
349 | +--- |
350 | +- Statement: INSERT INTO names VALUES(187, 'Qbuglimfh') |
351 | +--- |
352 | +- Statement: INSERT INTO name_props VALUES(188, 1, 187) |
353 | +--- |
354 | +- Statement: INSERT INTO names VALUES(188, 'Pzqmibcchwf') |
355 | +--- |
356 | +- Statement: INSERT INTO name_props VALUES(189, 1, 188) |
357 | +--- |
358 | +- Statement: INSERT INTO names VALUES(193, 'Zbjalczrzle') |
359 | +--- |
360 | +- Statement: INSERT INTO name_props VALUES(194, 1, 193) |
361 | +--- |
362 | +- Statement: INSERT INTO names VALUES(195, 'Xktkbgltpx') |
363 | +--- |
364 | +- Statement: INSERT INTO name_props VALUES(196, 1, 195) |
365 | +--- |
366 | +- Statement: INSERT INTO names VALUES(204, 'Ccgekvv') |
367 | +--- |
368 | +- Statement: INSERT INTO name_props VALUES(205, 1, 204) |
369 | +--- |
370 | +- Statement: INSERT INTO names VALUES(206, 'Lburgexb') |
371 | +--- |
372 | +- Statement: INSERT INTO name_props VALUES(207, 1, 206) |
373 | +--- |
374 | +- Statement: INSERT INTO names VALUES(208, 'Qqpkdldd') |
375 | +--- |
376 | +- Statement: INSERT INTO name_props VALUES(209, 1, 208) |
377 | +--- |
378 | +- Statement: INSERT INTO names VALUES(211, 'Vyalmcnaji') |
379 | +--- |
380 | +- Statement: INSERT INTO name_props VALUES(212, 1, 211) |
381 | +--- |
382 | +- Statement: INSERT INTO names VALUES(231, 'Rkpzdhwmv') |
383 | +--- |
384 | +- Statement: INSERT INTO name_props VALUES(232, 1, 231) |
385 | +--- |
386 | +- Statement: INSERT INTO names VALUES(235, 'Azgrj') |
387 | +--- |
388 | +- Statement: INSERT INTO name_props VALUES(236, 1, 235) |
389 | +--- |
390 | +- Statement: INSERT INTO names VALUES(243, 'Lmvfmjpse') |
391 | +--- |
392 | +- Statement: INSERT INTO name_props VALUES(244, 1, 243) |
393 | +--- |
394 | +- Statement: INSERT INTO names VALUES(244, 'Wlvbgh') |
395 | +--- |
396 | +- Statement: INSERT INTO name_props VALUES(245, 1, 244) |
397 | +--- |
398 | +- Statement: INSERT INTO names VALUES(245, 'Xhjtszv') |
399 | +--- |
400 | +- Statement: INSERT INTO name_props VALUES(246, 1, 245) |
401 | +--- |
402 | +- Statement: INSERT INTO names VALUES(246, 'Cypbzp') |
403 | +--- |
404 | +- Statement: INSERT INTO name_props VALUES(247, 1, 246) |
405 | +--- |
406 | +- Statement: INSERT INTO names VALUES(250, 'Gfmcxqpk') |
407 | +--- |
408 | +- Statement: INSERT INTO name_props VALUES(251, 1, 250) |
409 | +--- |
410 | +- Statement: INSERT INTO names VALUES(251, 'Iurtdx') |
411 | +--- |
412 | +- Statement: INSERT INTO name_props VALUES(252, 1, 251) |
413 | +--- |
414 | +- Statement: INSERT INTO names VALUES(252, 'Hogcz') |
415 | +--- |
416 | +- Statement: INSERT INTO name_props VALUES(253, 1, 252) |
417 | +--- |
418 | +- Statement: INSERT INTO names VALUES(253, 'Lpaxfnx') |
419 | +--- |
420 | +- Statement: INSERT INTO name_props VALUES(254, 1, 253) |
421 | +--- |
422 | +- Statement: INSERT INTO names VALUES(255, 'Izdnpbkkor') |
423 | +--- |
424 | +- Statement: INSERT INTO name_props VALUES(256, 1, 255) |
425 | +--- |
426 | +- Statement: INSERT INTO names VALUES(257, 'Jixea') |
427 | +--- |
428 | +- Statement: INSERT INTO name_props VALUES(258, 1, 257) |
429 | +--- |
430 | +- Statement: INSERT INTO names VALUES(258, 'Ymekhl') |
431 | +--- |
432 | +- Statement: INSERT INTO name_props VALUES(259, 1, 258) |
433 | +--- |
434 | +- Statement: INSERT INTO names VALUES(259, 'Mzbvyitcox') |
435 | +--- |
436 | +- Statement: INSERT INTO name_props VALUES(260, 1, 259) |
437 | +--- |
438 | +- Statement: INSERT INTO names VALUES(260, 'Ccmxsx') |
439 | +--- |
440 | +- Statement: INSERT INTO name_props VALUES(261, 1, 260) |
441 | +--- |
442 | +- Statement: INSERT INTO names VALUES(261, 'Qdmdrw') |
443 | +--- |
444 | +- Statement: INSERT INTO name_props VALUES(262, 1, 261) |
445 | +--- |
446 | +- Statement: INSERT INTO names VALUES(265, 'Jfnrcxcus') |
447 | +--- |
448 | +- Statement: INSERT INTO name_props VALUES(266, 1, 265) |
449 | +--- |
450 | +- Statement: INSERT INTO names VALUES(269, 'Cabnpmrif') |
451 | +--- |
452 | +- Statement: INSERT INTO name_props VALUES(270, 1, 269) |
453 | +--- |
454 | +- Statement: INSERT INTO names VALUES(270, 'Nxtlj') |
455 | +--- |
456 | +- Statement: INSERT INTO name_props VALUES(271, 1, 270) |
457 | +--- |
458 | +- Statement: INSERT INTO names VALUES(271, 'Nirumol') |
459 | +--- |
460 | +- Statement: INSERT INTO name_props VALUES(272, 1, 271) |
461 | +--- |
462 | +- Statement: INSERT INTO names VALUES(274, 'Cbgqzhfc') |
463 | +--- |
464 | +- Statement: INSERT INTO name_props VALUES(275, 1, 274) |
465 | +--- |
466 | +- Statement: INSERT INTO names VALUES(275, 'Uuymwulh') |
467 | +--- |
468 | +- Statement: INSERT INTO name_props VALUES(276, 1, 275) |
469 | +--- |
470 | +- Statement: INSERT INTO names VALUES(278, 'Cmxjfbveufw') |
471 | +--- |
472 | +- Statement: INSERT INTO name_props VALUES(279, 1, 278) |
473 | +--- |
474 | +- Statement: INSERT INTO names VALUES(282, 'Axmldjgsmi') |
475 | +--- |
476 | +- Statement: INSERT INTO name_props VALUES(283, 1, 282) |
477 | +--- |
478 | +- Statement: INSERT INTO names VALUES(283, 'Cjdxu') |
479 | +--- |
480 | +- Statement: INSERT INTO name_props VALUES(284, 1, 283) |
481 | +--- |
482 | +- Statement: INSERT INTO names VALUES(284, 'Rintirs') |
483 | +--- |
484 | +- Statement: INSERT INTO name_props VALUES(285, 1, 284) |
485 | +--- |
486 | +- Statement: INSERT INTO names VALUES(286, 'Diogq') |
487 | +--- |
488 | +- Statement: INSERT INTO name_props VALUES(287, 1, 286) |
489 | +--- |
490 | +- Statement: INSERT INTO names VALUES(287, 'Smlssuf') |
491 | +--- |
492 | +- Statement: INSERT INTO name_props VALUES(288, 1, 287) |
493 | +--- |
494 | +- Statement: INSERT INTO names VALUES(302, 'Sqxputcbuo') |
495 | +--- |
496 | +- Statement: INSERT INTO name_props VALUES(306, 1, 302) |
497 | +--- |
498 | +- Statement: INSERT INTO names VALUES(303, 'Uokodyujib') |
499 | +--- |
500 | +- Statement: INSERT INTO name_props VALUES(307, 1, 303) |
501 | +--- |
502 | +- Statement: INSERT INTO names VALUES(306, 'Fhvtb') |
503 | +--- |
504 | +- Statement: INSERT INTO name_props VALUES(309, 1, 306) |
505 | +--- |
506 | +- Statement: INSERT INTO names VALUES(309, 'Jxyoebhitu') |
507 | +--- |
508 | +- Statement: INSERT INTO name_props VALUES(312, 1, 309) |
509 | +--- |
510 | +- Statement: INSERT INTO names VALUES(313, 'Vdbzx') |
511 | +--- |
512 | +- Statement: INSERT INTO name_props VALUES(316, 1, 313) |
513 | +--- |
514 | +- Statement: INSERT INTO names VALUES(314, 'Mrhbp') |
515 | +--- |
516 | +- Statement: INSERT INTO name_props VALUES(317, 1, 314) |
517 | +--- |
518 | +- Statement: INSERT INTO names VALUES(316, 'Gagfonyc') |
519 | +--- |
520 | +- Statement: INSERT INTO name_props VALUES(319, 1, 316) |
521 | +--- |
522 | +- Statement: INSERT INTO names VALUES(319, 'Ildajaitiml') |
523 | +--- |
524 | +- Statement: INSERT INTO name_props VALUES(322, 1, 319) |
525 | +--- |
526 | +- Statement: INSERT INTO names VALUES(321, 'Sqzjf') |
527 | +--- |
528 | +- Statement: INSERT INTO name_props VALUES(324, 1, 321) |
529 | +--- |
530 | +- Statement: INSERT INTO names VALUES(323, 'Ajzpld') |
531 | +--- |
532 | +- Statement: INSERT INTO name_props VALUES(326, 1, 323) |
533 | +--- |
534 | +- Statement: INSERT INTO names VALUES(332, 'Efnqimxicz') |
535 | +--- |
536 | +- Statement: INSERT INTO name_props VALUES(335, 1, 332) |
537 | +--- |
538 | +- Statement: INSERT INTO names VALUES(333, 'Fkjycsc') |
539 | +--- |
540 | +- Statement: INSERT INTO name_props VALUES(336, 1, 333) |
541 | +--- |
542 | +- Statement: INSERT INTO names VALUES(335, 'Htuhdv') |
543 | +--- |
544 | +- Statement: INSERT INTO name_props VALUES(338, 1, 335) |
545 | +--- |
546 | +- Statement: INSERT INTO names VALUES(336, 'Jiimafkm') |
547 | +--- |
548 | +- Statement: INSERT INTO name_props VALUES(339, 1, 336) |
549 | +--- |
550 | +- Statement: INSERT INTO names VALUES(343, 'Qeowxwxhw') |
551 | +--- |
552 | +- Statement: INSERT INTO name_props VALUES(346, 1, 343) |
553 | +--- |
554 | +- Statement: INSERT INTO names VALUES(345, 'Odhfoetvtl') |
555 | +--- |
556 | +- Statement: INSERT INTO name_props VALUES(348, 1, 345) |
557 | +--- |
558 | +- Statement: INSERT INTO names VALUES(347, 'Ebnlngmcoz') |
559 | +--- |
560 | +- Statement: INSERT INTO name_props VALUES(350, 1, 347) |
561 | +--- |
562 | +- Statement: INSERT INTO names VALUES(348, 'Ujaoaznaf') |
563 | +--- |
564 | +- Statement: INSERT INTO name_props VALUES(351, 1, 348) |
565 | +--- |
566 | +- Statement: INSERT INTO names VALUES(349, 'Dkelvsyx') |
567 | +--- |
568 | +- Statement: INSERT INTO name_props VALUES(352, 1, 349) |
569 | +--- |
570 | +- Statement: INSERT INTO names VALUES(350, 'Gypaowuiwrq') |
571 | +--- |
572 | +- Statement: INSERT INTO name_props VALUES(353, 1, 350) |
573 | +--- |
574 | +- Statement: INSERT INTO names VALUES(352, 'Pjrtpa') |
575 | +--- |
576 | +- Statement: INSERT INTO name_props VALUES(355, 1, 352) |
577 | +--- |
578 | +- Statement: INSERT INTO names VALUES(354, 'Gsskcpumlv') |
579 | +--- |
580 | +- Statement: INSERT INTO name_props VALUES(357, 1, 354) |
581 | +--- |
582 | +- Statement: INSERT INTO names VALUES(357, 'Qxvifr') |
583 | +--- |
584 | +- Statement: INSERT INTO name_props VALUES(360, 1, 357) |
585 | +--- |
586 | +- Statement: INSERT INTO names VALUES(358, 'Exgxst') |
587 | +--- |
588 | +- Statement: INSERT INTO name_props VALUES(361, 1, 358) |
589 | +--- |
590 | +- Statement: INSERT INTO names VALUES(359, 'Vfgeg') |
591 | +--- |
592 | +- Statement: INSERT INTO name_props VALUES(362, 1, 359) |
593 | +--- |
594 | +- Statement: INSERT INTO names VALUES(360, 'Geophzjom') |
595 | +--- |
596 | +- Statement: INSERT INTO name_props VALUES(363, 1, 360) |
597 | +--- |
598 | +- Statement: INSERT INTO names VALUES(364, 'Mplftlfnhbn') |
599 | +--- |
600 | +- Statement: INSERT INTO name_props VALUES(367, 1, 364) |
601 | +--- |
602 | +- Statement: INSERT INTO names VALUES(365, 'Zfmegtbik') |
603 | +--- |
604 | +- Statement: INSERT INTO name_props VALUES(368, 1, 365) |
605 | +--- |
606 | +- Statement: INSERT INTO names VALUES(366, 'Qpgyatglvsj') |
607 | +--- |
608 | +- Statement: INSERT INTO name_props VALUES(369, 1, 366) |
609 | +--- |
610 | +- Statement: INSERT INTO names VALUES(367, 'Gctqwogue') |
611 | +--- |
612 | +- Statement: INSERT INTO name_props VALUES(370, 1, 367) |
613 | +--- |
614 | +- Statement: INSERT INTO names VALUES(369, 'Kmydbmjnwsr') |
615 | +--- |
616 | +- Statement: INSERT INTO name_props VALUES(372, 1, 369) |
617 | +--- |
618 | +- Statement: INSERT INTO names VALUES(370, 'Pllzgznffmw') |
619 | +--- |
620 | +- Statement: INSERT INTO name_props VALUES(373, 1, 370) |
621 | +--- |
622 | +- Statement: INSERT INTO names VALUES(371, 'Rwhpidslf') |
623 | +--- |
624 | +- Statement: INSERT INTO name_props VALUES(374, 1, 371) |
625 | +--- |
626 | +- Statement: INSERT INTO names VALUES(372, 'Epmyfpkgbp') |
627 | +--- |
628 | +- Statement: INSERT INTO name_props VALUES(375, 1, 372) |
629 | +--- |
630 | +- Statement: INSERT INTO names VALUES(373, 'Pzbjmzbau') |
631 | +--- |
632 | +- Statement: INSERT INTO name_props VALUES(376, 1, 373) |
633 | +--- |
634 | +- Statement: INSERT INTO names VALUES(374, 'Ltqyrvkd') |
635 | +--- |
636 | +- Statement: INSERT INTO name_props VALUES(377, 1, 374) |
637 | +--- |
638 | +- Statement: INSERT INTO names VALUES(375, 'Tahzvwx') |
639 | +--- |
640 | +- Statement: INSERT INTO name_props VALUES(378, 1, 375) |
641 | +--- |
642 | +- Statement: INSERT INTO names VALUES(376, 'Wmhyad') |
643 | +--- |
644 | +- Statement: INSERT INTO name_props VALUES(379, 1, 376) |
645 | +--- |
646 | +- Statement: INSERT INTO names VALUES(377, 'Genmrjpjy') |
647 | +--- |
648 | +- Statement: INSERT INTO name_props VALUES(380, 1, 377) |
649 | +--- |
650 | +- Statement: INSERT INTO names VALUES(378, 'Hvgveuxdxx') |
651 | +--- |
652 | +- Statement: INSERT INTO name_props VALUES(381, 1, 378) |
653 | +--- |
654 | +- Statement: INSERT INTO names VALUES(379, 'Ucpqhstzspe') |
655 | +--- |
656 | +- Statement: INSERT INTO name_props VALUES(382, 1, 379) |
657 | +--- |
658 | +- Statement: INSERT INTO names VALUES(380, 'Voxbnvcffsh') |
659 | +--- |
660 | +- Statement: INSERT INTO name_props VALUES(383, 1, 380) |
661 | +--- |
662 | +- Statement: INSERT INTO names VALUES(381, 'Jydaimev') |
663 | +--- |
664 | +- Statement: INSERT INTO name_props VALUES(384, 1, 381) |
665 | +--- |
666 | +- Statement: SET OutputFormat = 'json' |
667 | +--- |
668 | +- Statement: SELECT id, name, (SELECT p.id, p.name FROM props p INNER JOIN name_props np ON p.id = np.prop_id WHERE np.name_id = names.id) AS props FROM names WHERE name = ? |
669 | +- params: [['Akiban']] |
670 | +- output: [['{"id":1,"name":"Akiban","props":[{"id":1,"name":"abc"},{"id":2,"name":"xyz"}]}']] |
671 | +--- |
672 | +- Statement: ALTER TABLE name_props ALL UPDATE STATISTICS |
673 | +--- |
674 | +- Statement: SELECT id, name, (SELECT p.id, p.name FROM props p INNER JOIN name_props np ON p.id = np.prop_id WHERE np.name_id = names.id) AS props FROM names WHERE name = ? |
675 | +- params: [['Akiban']] |
676 | +- output: [['{"id":1,"name":"Akiban","props":[{"id":1,"name":"abc"},{"id":2,"name":"xyz"}]}']] |
677 | +--- |
678 | +- Statement: SET OutputFormat TO DEFAULT; |
679 | +... |
680 | \ No newline at end of file |
Can't say I'm a huge fan of 600 lines of junk INSERTs, but works and is otherwise simple.