@@ -265,48 +265,48 @@ ORDER BY (md5(query_text))
265
265
| | WHERE t1.a < 1 AND t2.b < 1 AND t2.c < 1 AND t2.d < 1 AND t1.a = t2.a;
266
266
{1,1,1} | 4 | EXPLAIN SELECT * FROM aqo_test0 +
267
267
| | WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
268
- {1,1,1,1,1} | 0 | SELECT count(*) FROM tmp1;
269
- {1,1,1,1,1} | 0 | SELECT count(*) FROM tmp1;
270
- {1} | 2 | EXPlAIN SELECT t1.a, t2.b, t3.c +
268
+ {1} | 0 | SELECT count(*) FROM tmp1;
269
+ {1} | 0 | SELECT count(*) FROM tmp1;
270
+ {1} | 6 | EXPlAIN SELECT t1.a, t2.b, t3.c +
271
271
| | FROM aqo_test1 AS t1, aqo_test0 AS t2, aqo_test0 AS t3 +
272
272
| | WHERE t1.a < 1 AND t3.b < 1 AND t2.c < 1 AND t3.d < 0 AND t1.a = t2.a AND t1.b = t3.b;
273
- {1} | 2 | EXPlAIN SELECT t1.a, t2.b, t3.c +
273
+ {1} | 1 | EXPlAIN SELECT t1.a, t2.b, t3.c +
274
274
| | FROM aqo_test1 AS t1, aqo_test0 AS t2, aqo_test0 AS t3 +
275
275
| | WHERE t1.a < 1 AND t3.b < 1 AND t2.c < 1 AND t3.d < 0 AND t1.a = t2.a AND t1.b = t3.b;
276
- {1} | 3 | EXPlAIN SELECT t1.a, t2.b, t3.c +
276
+ {1} | 2 | EXPlAIN SELECT t1.a, t2.b, t3.c +
277
277
| | FROM aqo_test1 AS t1, aqo_test0 AS t2, aqo_test0 AS t3 +
278
278
| | WHERE t1.a < 1 AND t3.b < 1 AND t2.c < 1 AND t3.d < 0 AND t1.a = t2.a AND t1.b = t3.b;
279
- {1} | 6 | EXPlAIN SELECT t1.a, t2.b, t3.c +
279
+ {1} | 3 | EXPlAIN SELECT t1.a, t2.b, t3.c +
280
280
| | FROM aqo_test1 AS t1, aqo_test0 AS t2, aqo_test0 AS t3 +
281
281
| | WHERE t1.a < 1 AND t3.b < 1 AND t2.c < 1 AND t3.d < 0 AND t1.a = t2.a AND t1.b = t3.b;
282
- {1,1 } | 1 | EXPlAIN SELECT t1.a, t2.b, t3.c +
282
+ {1} | 2 | EXPlAIN SELECT t1.a, t2.b, t3.c +
283
283
| | FROM aqo_test1 AS t1, aqo_test0 AS t2, aqo_test0 AS t3 +
284
284
| | WHERE t1.a < 1 AND t3.b < 1 AND t2.c < 1 AND t3.d < 0 AND t1.a = t2.a AND t1.b = t3.b;
285
- {1} | 4 | EXPLAIN SELECT t1.a, t2.b FROM aqo_test0 AS t1, aqo_test0 AS t2 +
286
- | | WHERE t1.a < 1 AND t1.b < 1 AND t2.c < 1 AND t2.d < 1;
287
285
{1} | 2 | EXPLAIN SELECT t1.a, t2.b FROM aqo_test0 AS t1, aqo_test0 AS t2 +
288
286
| | WHERE t1.a < 1 AND t1.b < 1 AND t2.c < 1 AND t2.d < 1;
289
287
{1} | 2 | EXPLAIN SELECT t1.a, t2.b FROM aqo_test0 AS t1, aqo_test0 AS t2 +
290
288
| | WHERE t1.a < 1 AND t1.b < 1 AND t2.c < 1 AND t2.d < 1;
291
- {1} | 1 | EXPLAIN SELECT t1.a AS a, t2.a AS b, t3.a AS c +
289
+ {1} | 4 | EXPLAIN SELECT t1.a, t2.b FROM aqo_test0 AS t1, aqo_test0 AS t2 +
290
+ | | WHERE t1.a < 1 AND t1.b < 1 AND t2.c < 1 AND t2.d < 1;
291
+ {1} | 2 | EXPLAIN SELECT t1.a AS a, t2.a AS b, t3.a AS c +
292
292
| | FROM aqo_test1 AS t1, aqo_test1 AS t2, aqo_test1 AS t3 +
293
293
| | WHERE t1.a = t2.b AND t2.a = t3.b;
294
- {1} | 2 | EXPLAIN SELECT t1.a AS a, t2.a AS b, t3.a AS c +
294
+ {1} | 1 | EXPLAIN SELECT t1.a AS a, t2.a AS b, t3.a AS c +
295
295
| | FROM aqo_test1 AS t1, aqo_test1 AS t2, aqo_test1 AS t3 +
296
296
| | WHERE t1.a = t2.b AND t2.a = t3.b;
297
297
{1} | 0 | EXPLAIN SELECT t1.a AS a, t2.a AS b, t3.a AS c +
298
298
| | FROM aqo_test1 AS t1, aqo_test1 AS t2, aqo_test1 AS t3 +
299
299
| | WHERE t1.a = t2.b AND t2.a = t3.b;
300
- {1} | 2 | EXPLAIN SELECT t1.a AS a, t2.a AS b, t3.a AS c, t4.a AS d +
300
+ {1} | 3 | EXPLAIN SELECT t1.a AS a, t2.a AS b, t3.a AS c, t4.a AS d +
301
301
| | FROM aqo_test1 AS t1, aqo_test1 AS t2, aqo_test1 AS t3, aqo_test1 AS t4 +
302
302
| | WHERE t1.a = t2.b AND t2.a = t3.b AND t3.a = t4.b;
303
- {1} | 3 | EXPLAIN SELECT t1.a AS a, t2.a AS b, t3.a AS c, t4.a AS d +
303
+ {1} | 0 | EXPLAIN SELECT t1.a AS a, t2.a AS b, t3.a AS c, t4.a AS d +
304
304
| | FROM aqo_test1 AS t1, aqo_test1 AS t2, aqo_test1 AS t3, aqo_test1 AS t4 +
305
305
| | WHERE t1.a = t2.b AND t2.a = t3.b AND t3.a = t4.b;
306
306
{1} | 1 | EXPLAIN SELECT t1.a AS a, t2.a AS b, t3.a AS c, t4.a AS d +
307
307
| | FROM aqo_test1 AS t1, aqo_test1 AS t2, aqo_test1 AS t3, aqo_test1 AS t4 +
308
308
| | WHERE t1.a = t2.b AND t2.a = t3.b AND t3.a = t4.b;
309
- {1} | 0 | EXPLAIN SELECT t1.a AS a, t2.a AS b, t3.a AS c, t4.a AS d +
309
+ {1} | 2 | EXPLAIN SELECT t1.a AS a, t2.a AS b, t3.a AS c, t4.a AS d +
310
310
| | FROM aqo_test1 AS t1, aqo_test1 AS t2, aqo_test1 AS t3, aqo_test1 AS t4 +
311
311
| | WHERE t1.a = t2.b AND t2.a = t3.b AND t3.a = t4.b;
312
312
(21 rows)
@@ -537,7 +537,8 @@ SELECT * FROM check_estimated_rows('SELECT * FROM aqo_test1;');
537
537
20 | 20
538
538
(1 row)
539
539
540
- SELECT * FROM check_estimated_rows('SELECT * FROM aqo_test1 AS t1, aqo_test1 AS t2 WHERE t1.a = t2.b');
540
+ SELECT * FROM check_estimated_rows('
541
+ SELECT * FROM aqo_test1 AS t1, aqo_test1 AS t2 WHERE t1.a = t2.b');
541
542
estimated | actual
542
543
-----------+--------
543
544
20 | 19
@@ -553,13 +554,13 @@ SELECT * FROM check_estimated_rows('
553
554
SELECT *
554
555
FROM aqo_test1 AS t1, aqo_test1 AS t2, aqo_test1 AS t3, aqo_test1 AS t4
555
556
WHERE t1.a = t2.b AND t2.a = t3.b AND t3.a = t4.b;
556
- ');
557
+ '); -- Learn on the query
557
558
estimated | actual
558
559
-----------+--------
559
560
20 | 17
560
561
(1 row)
561
562
562
- SELECT count(*) FROM -- Learn on the query
563
+ SELECT count(*) FROM
563
564
(SELECT fspace_hash FROM aqo_data GROUP BY (fspace_hash)) AS q1
564
565
;
565
566
count
@@ -584,15 +585,16 @@ SELECT * FROM check_estimated_rows('SELECT * FROM aqo_test1;');
584
585
20 | 20
585
586
(1 row)
586
587
587
- SELECT * FROM check_estimated_rows('SELECT * FROM aqo_test1 AS t1, aqo_test1 AS t2 WHERE t1.a = t2.b');
588
+ SELECT * FROM check_estimated_rows(
589
+ 'SELECT * FROM aqo_test1 AS t1, aqo_test1 AS t2 WHERE t1.a = t2.b');
588
590
estimated | actual
589
591
-----------+--------
590
592
19 | 19
591
593
(1 row)
592
594
593
595
SELECT count(*) FROM
594
596
(SELECT fspace_hash FROM aqo_data GROUP BY (fspace_hash)) AS q1
595
- ; -- Learn on a query with one join
597
+ ; -- Learn on a new query with one join (cardinality of this join AQO extracted from previous 3-join query)
596
598
count
597
599
-------
598
600
2
0 commit comments