Skip to content

Commit 886f554

Browse files
author
Oleg Ivanov
committed
Added regression test
1 parent a8ecf2e commit 886f554

File tree

2 files changed

+129
-0
lines changed

2 files changed

+129
-0
lines changed

contrib/aqo/expected/aqo.out

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
CREATE TABLE aqo_test0(a int, b int, c int, d int);
2+
INSERT INTO aqo_test0 VALUES (0, 0, 0, 0);
3+
INSERT INTO aqo_test0 VALUES (1, 1, 1, 1);
4+
INSERT INTO aqo_test0 VALUES (3, 3, 3, 3);
5+
INSERT INTO aqo_test0 VALUES (5, 5, 5, 5);
6+
INSERT INTO aqo_test0 VALUES (6, 6, 6, 6);
7+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
8+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
9+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
10+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
11+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
12+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
13+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
14+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
15+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
16+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
17+
ANALYZE aqo_test0;
18+
CREATE EXTENSION aqo;
19+
SET aqo.mode = 'manual';
20+
EXPLAIN
21+
SELECT * FROM aqo_test0
22+
WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
23+
QUERY PLAN
24+
--------------------------------------------------------------
25+
Seq Scan on aqo_test0 (cost=0.00..130.40 rows=131 width=16)
26+
Filter: ((a < 3) AND (b < 3) AND (c < 3) AND (d < 3))
27+
(2 rows)
28+
29+
EXPLAIN
30+
SELECT * FROM aqo_test0
31+
WHERE a < 5 AND b < 5 AND c < 5 AND d < 5;
32+
QUERY PLAN
33+
--------------------------------------------------------------
34+
Seq Scan on aqo_test0 (cost=0.00..130.40 rows=664 width=16)
35+
Filter: ((a < 5) AND (b < 5) AND (c < 5) AND (d < 5))
36+
(2 rows)
37+
38+
SET aqo.mode = 'forced';
39+
CREATE TABLE tmp1 AS SELECT * FROM aqo_test0
40+
WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
41+
SELECT count(*) FROM tmp1;
42+
count
43+
-------
44+
2048
45+
(1 row)
46+
47+
DROP TABLE tmp1;
48+
CREATE TABLE tmp1 AS SELECT * FROM aqo_test0
49+
WHERE a < 5 AND b < 5 AND c < 5 AND d < 5;
50+
SELECT count(*) FROM tmp1;
51+
count
52+
-------
53+
3072
54+
(1 row)
55+
56+
DROP TABLE tmp1;
57+
EXPLAIN
58+
SELECT * FROM aqo_test0
59+
WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
60+
QUERY PLAN
61+
---------------------------------------------------------------
62+
Seq Scan on aqo_test0 (cost=0.00..130.40 rows=2050 width=16)
63+
Filter: ((a < 3) AND (b < 3) AND (c < 3) AND (d < 3))
64+
(2 rows)
65+
66+
EXPLAIN
67+
SELECT * FROM aqo_test0
68+
WHERE a < 5 AND b < 5 AND c < 5 AND d < 5;
69+
QUERY PLAN
70+
---------------------------------------------------------------
71+
Seq Scan on aqo_test0 (cost=0.00..130.40 rows=3069 width=16)
72+
Filter: ((a < 5) AND (b < 5) AND (c < 5) AND (d < 5))
73+
(2 rows)
74+
75+
DROP TABLE aqo_test0;
76+
DROP EXTENSION aqo;

contrib/aqo/sql/aqo.sql

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
CREATE TABLE aqo_test0(a int, b int, c int, d int);
2+
INSERT INTO aqo_test0 VALUES (0, 0, 0, 0);
3+
INSERT INTO aqo_test0 VALUES (1, 1, 1, 1);
4+
INSERT INTO aqo_test0 VALUES (3, 3, 3, 3);
5+
INSERT INTO aqo_test0 VALUES (5, 5, 5, 5);
6+
INSERT INTO aqo_test0 VALUES (6, 6, 6, 6);
7+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
8+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
9+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
10+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
11+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
12+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
13+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
14+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
15+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
16+
INSERT INTO aqo_test0 (SELECT * FROM aqo_test0);
17+
ANALYZE aqo_test0;
18+
19+
CREATE EXTENSION aqo;
20+
21+
SET aqo.mode = 'manual';
22+
23+
EXPLAIN
24+
SELECT * FROM aqo_test0
25+
WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
26+
27+
EXPLAIN
28+
SELECT * FROM aqo_test0
29+
WHERE a < 5 AND b < 5 AND c < 5 AND d < 5;
30+
31+
SET aqo.mode = 'forced';
32+
33+
CREATE TABLE tmp1 AS SELECT * FROM aqo_test0
34+
WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
35+
SELECT count(*) FROM tmp1;
36+
DROP TABLE tmp1;
37+
38+
CREATE TABLE tmp1 AS SELECT * FROM aqo_test0
39+
WHERE a < 5 AND b < 5 AND c < 5 AND d < 5;
40+
SELECT count(*) FROM tmp1;
41+
DROP TABLE tmp1;
42+
43+
EXPLAIN
44+
SELECT * FROM aqo_test0
45+
WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
46+
47+
EXPLAIN
48+
SELECT * FROM aqo_test0
49+
WHERE a < 5 AND b < 5 AND c < 5 AND d < 5;
50+
51+
DROP TABLE aqo_test0;
52+
53+
DROP EXTENSION aqo;

0 commit comments

Comments
 (0)