@@ -38,4 +38,64 @@ EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF)
38
38
JOINS: 0
39
39
(11 rows)
40
40
41
+ SELECT count(*) FROM t WHERE x = (SELECT avg(x) FROM t WHERE x = 1);
42
+ count
43
+ -------
44
+ 50
45
+ (1 row)
46
+
47
+ EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF)
48
+ SELECT count(*) FROM t WHERE x = (
49
+ SELECT avg(x) FROM t WHERE x = 1
50
+ );
51
+ QUERY PLAN
52
+ ----------------------------------------------------------
53
+ Aggregate (actual rows=1 loops=1)
54
+ AQO not used
55
+ InitPlan 1 (returns $0)
56
+ -> Aggregate (actual rows=1 loops=1)
57
+ AQO not used
58
+ -> Seq Scan on t t_1 (actual rows=50 loops=1)
59
+ AQO: rows=50, error=0%
60
+ Filter: (x = 1)
61
+ Rows Removed by Filter: 950
62
+ -> Seq Scan on t (actual rows=50 loops=1)
63
+ AQO: rows=50, error=0%
64
+ Filter: ((x)::numeric = $0)
65
+ Rows Removed by Filter: 950
66
+ Using aqo: true
67
+ AQO mode: LEARN
68
+ JOINS: 0
69
+ (16 rows)
70
+
71
+ SELECT count(*) FROM t WHERE x = (SELECT avg(x) FROM t t0 WHERE t0.x = t.x);
72
+ count
73
+ -------
74
+ 1000
75
+ (1 row)
76
+
77
+ EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF)
78
+ SELECT count(*) FROM t WHERE x = (
79
+ SELECT avg(x) FROM t t0 WHERE t0.x = t.x
80
+ );
81
+ QUERY PLAN
82
+ ------------------------------------------------------------------
83
+ Aggregate (actual rows=1 loops=1)
84
+ AQO not used
85
+ -> Seq Scan on t (actual rows=1000 loops=1)
86
+ AQO not used
87
+ Filter: ((x)::numeric = (SubPlan 1))
88
+ SubPlan 1
89
+ -> Aggregate (actual rows=1 loops=1000)
90
+ AQO not used
91
+ -> Seq Scan on t t0 (actual rows=50 loops=1000)
92
+ AQO: rows=50, error=0%
93
+ Filter: (x = t.x)
94
+ Rows Removed by Filter: 950
95
+ Using aqo: true
96
+ AQO mode: LEARN
97
+ JOINS: 0
98
+ (15 rows)
99
+
100
+
41
101
DROP EXTENSION aqo;
0 commit comments