16
16
) INSERT INTO aqo_test1 (SELECT * FROM t);
17
17
CREATE INDEX aqo_test1_idx_a ON aqo_test1 (a);
18
18
ANALYZE aqo_test1;
19
+ CREATE EXTENSION aqo;
20
+ SET aqo.mode = 'controlled';
21
+ CREATE TABLE tmp1 AS SELECT * FROM aqo_test0
22
+ WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
23
+ SELECT count(*) FROM tmp1;
24
+ count
25
+ -------
26
+ 3
27
+ (1 row)
28
+
29
+ DROP TABLE tmp1;
30
+ CREATE TABLE tmp1 AS SELECT t1.a, t2.b, t3.c
31
+ FROM aqo_test1 AS t1, aqo_test0 AS t2, aqo_test0 AS t3
32
+ 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;
33
+ SELECT count(*) FROM tmp1;
34
+ count
35
+ -------
36
+ 0
37
+ (1 row)
38
+
39
+ DROP TABLE tmp1;
40
+ EXPLAIN SELECT * FROM aqo_test0
41
+ WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
42
+ QUERY PLAN
43
+ ----------------------------------------------------------------------------------
44
+ Index Scan using aqo_test0_idx_a on aqo_test0 (cost=0.28..8.35 rows=1 width=16)
45
+ Index Cond: (a < 3)
46
+ Filter: ((b < 3) AND (c < 3) AND (d < 3))
47
+ (3 rows)
48
+
49
+ EXPLAIN SELECT t1.a, t2.b, t3.c
50
+ FROM aqo_test1 AS t1, aqo_test0 AS t2, aqo_test0 AS t3
51
+ 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;
52
+ QUERY PLAN
53
+ ------------------------------------------------------------------------------------------------
54
+ Nested Loop (cost=0.28..50.59 rows=1 width=12)
55
+ Join Filter: (t1.b = t3.b)
56
+ -> Nested Loop (cost=0.28..9.56 rows=1 width=12)
57
+ -> Seq Scan on aqo_test1 t1 (cost=0.00..1.25 rows=1 width=8)
58
+ Filter: (a < 1)
59
+ -> Index Scan using aqo_test0_idx_a on aqo_test0 t2 (cost=0.28..8.30 rows=1 width=8)
60
+ Index Cond: (a = t1.a)
61
+ Filter: (c < 1)
62
+ -> Seq Scan on aqo_test0 t3 (cost=0.00..41.02 rows=1 width=8)
63
+ Filter: ((b < 1) AND (d < 0))
64
+ (10 rows)
65
+
66
+ SELECT count(*) FROM aqo_queries WHERE query_hash <> fspace_hash; -- Should be zero
67
+ count
68
+ -------
69
+ 0
70
+ (1 row)
71
+
19
72
SET aqo.mode = 'disabled';
20
73
CREATE TABLE tmp1 AS SELECT * FROM aqo_test0
21
74
WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
@@ -62,7 +115,12 @@ WHERE t1.a < 1 AND t3.b < 1 AND t2.c < 1 AND t3.d < 0 AND t1.a = t2.a AND t1.b =
62
115
Filter: ((b < 1) AND (d < 0))
63
116
(10 rows)
64
117
65
- CREATE EXTENSION aqo;
118
+ SELECT count(*) FROM aqo_queries WHERE query_hash <> fspace_hash; -- Should be zero
119
+ count
120
+ -------
121
+ 0
122
+ (1 row)
123
+
66
124
SET aqo.mode = 'intelligent';
67
125
CREATE TABLE tmp1 AS SELECT * FROM aqo_test0
68
126
WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
@@ -83,6 +141,12 @@ SELECT count(*) FROM tmp1;
83
141
(1 row)
84
142
85
143
DROP TABLE tmp1;
144
+ SELECT count(*) FROM aqo_queries WHERE query_hash <> fspace_hash; -- Should be zero
145
+ count
146
+ -------
147
+ 0
148
+ (1 row)
149
+
86
150
SET aqo.mode = 'controlled';
87
151
UPDATE aqo_queries SET learn_aqo = true, use_aqo = true, auto_tuning = false;
88
152
EXPLAIN SELECT * FROM aqo_test0
@@ -111,6 +175,12 @@ WHERE t1.a < 1 AND t3.b < 1 AND t2.c < 1 AND t3.d < 0 AND t1.a = t2.a AND t1.b =
111
175
Filter: ((b < 1) AND (d < 0))
112
176
(10 rows)
113
177
178
+ SELECT count(*) FROM aqo_queries WHERE query_hash <> fspace_hash; -- Should be zero
179
+ count
180
+ -------
181
+ 0
182
+ (1 row)
183
+
114
184
SET aqo.mode = 'disabled';
115
185
EXPLAIN SELECT * FROM aqo_test0
116
186
WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
@@ -138,6 +208,12 @@ WHERE t1.a < 1 AND t3.b < 1 AND t2.c < 1 AND t3.d < 0 AND t1.a = t2.a AND t1.b =
138
208
Filter: ((b < 1) AND (d < 0))
139
209
(10 rows)
140
210
211
+ SELECT count(*) FROM aqo_queries WHERE query_hash <> fspace_hash; -- Should be zero
212
+ count
213
+ -------
214
+ 0
215
+ (1 row)
216
+
141
217
DROP EXTENSION aqo;
142
218
DROP INDEX aqo_test0_idx_a;
143
219
DROP TABLE aqo_test0;
0 commit comments