summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Vondra2017-01-19 14:30:06 +0000
committerTomas Vondra2017-01-19 14:30:06 +0000
commit6ed7c32a4903af763f14920327862db38d558e3c (patch)
tree44f42f4b33471695dcf1eaa81a4e83292068738f
parentb42ae78afe60e2a179bedbc76478ae344f70eeba (diff)
resolve most differences in create_index test suite
Most of the differences were trivial consequence of using partial aggregates, instead of the XL-specific 2-phase aggregate. The main difference is that that EXPLAIN now prefixes the Aggregate nodes with either "Finalize" or "Partial" (while before it used just Aggregate). There's one remaining plan change, but that also switches from plain Index Scan to Bitmap Index Scan. That probably deserves a bit more attention and further investigation.
-rw-r--r--src/test/regress/expected/create_index.out351
1 files changed, 171 insertions, 180 deletions
diff --git a/src/test/regress/expected/create_index.out b/src/test/regress/expected/create_index.out
index 4ee3748d38..23dd1f7747 100644
--- a/src/test/regress/expected/create_index.out
+++ b/src/test/regress/expected/create_index.out
@@ -432,9 +432,9 @@ EXPLAIN (COSTS OFF, NODES OFF)
SELECT count(*) FROM fast_emp4000 WHERE home_base && '(1000,1000,0,0)'::box;
QUERY PLAN
-------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using grect2ind on fast_emp4000
Index Cond: (home_base && '(1000,1000),(0,0)'::box)
(5 rows)
@@ -449,9 +449,9 @@ EXPLAIN (COSTS OFF, NODES OFF)
SELECT count(*) FROM fast_emp4000 WHERE home_base IS NULL;
QUERY PLAN
-------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using grect2ind on fast_emp4000
Index Cond: (home_base IS NULL)
(5 rows)
@@ -505,14 +505,13 @@ SELECT * FROM circle_tbl WHERE f1 && circle(point(1,-2), 1)
EXPLAIN (COSTS OFF, NODES OFF)
SELECT count(*) FROM gpolygon_tbl WHERE f1 && '(1000,1000,0,0)'::polygon;
- QUERY PLAN
-------------------------------------------------------------------------
+ QUERY PLAN
+------------------------------------------------------------------
Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
- -> Index Scan using ggpolygonind on gpolygon_tbl
- Index Cond: (f1 && '((1000,1000),(0,0))'::polygon)
-(5 rows)
+ -> Index Scan using ggpolygonind on gpolygon_tbl
+ Index Cond: (f1 && '((1000,1000),(0,0))'::polygon)
+(4 rows)
SELECT count(*) FROM gpolygon_tbl WHERE f1 && '(1000,1000,0,0)'::polygon;
count
@@ -522,14 +521,13 @@ SELECT count(*) FROM gpolygon_tbl WHERE f1 && '(1000,1000,0,0)'::polygon;
EXPLAIN (COSTS OFF, NODES OFF)
SELECT count(*) FROM gcircle_tbl WHERE f1 && '<(500,500),500>'::circle;
- QUERY PLAN
--------------------------------------------------------------------
+ QUERY PLAN
+-------------------------------------------------------------
Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
- -> Index Scan using ggcircleind on gcircle_tbl
- Index Cond: (f1 && '<(500,500),500>'::circle)
-(5 rows)
+ -> Index Scan using ggcircleind on gcircle_tbl
+ Index Cond: (f1 && '<(500,500),500>'::circle)
+(4 rows)
SELECT count(*) FROM gcircle_tbl WHERE f1 && '<(500,500),500>'::circle;
count
@@ -761,9 +759,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE p IS NULL;
QUERY PLAN
-----------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_quad_ind on quad_point_tbl
Index Cond: (p IS NULL)
(5 rows)
@@ -778,9 +776,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE p IS NOT NULL;
QUERY PLAN
-----------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_quad_ind on quad_point_tbl
Index Cond: (p IS NOT NULL)
(5 rows)
@@ -795,9 +793,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl;
QUERY PLAN
-----------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_quad_ind on quad_point_tbl
(4 rows)
@@ -809,14 +807,13 @@ SELECT count(*) FROM quad_point_tbl;
EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)';
- QUERY PLAN
------------------------------------------------------------------------
+ QUERY PLAN
+-----------------------------------------------------------------
Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
- -> Index Only Scan using sp_quad_ind on quad_point_tbl
- Index Cond: (p <@ '(1000,1000),(200,200)'::box)
-(5 rows)
+ -> Index Only Scan using sp_quad_ind on quad_point_tbl
+ Index Cond: (p <@ '(1000,1000),(200,200)'::box)
+(4 rows)
SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)';
count
@@ -826,14 +823,13 @@ SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)';
EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE box '(200,200,1000,1000)' @> p;
- QUERY PLAN
------------------------------------------------------------------------
+ QUERY PLAN
+-----------------------------------------------------------------
Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
- -> Index Only Scan using sp_quad_ind on quad_point_tbl
- Index Cond: (p <@ '(1000,1000),(200,200)'::box)
-(5 rows)
+ -> Index Only Scan using sp_quad_ind on quad_point_tbl
+ Index Cond: (p <@ '(1000,1000),(200,200)'::box)
+(4 rows)
SELECT count(*) FROM quad_point_tbl WHERE box '(200,200,1000,1000)' @> p;
count
@@ -845,9 +841,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE p << '(5000, 4000)';
QUERY PLAN
-----------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_quad_ind on quad_point_tbl
Index Cond: (p << '(5000,4000)'::point)
(5 rows)
@@ -862,9 +858,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE p >> '(5000, 4000)';
QUERY PLAN
-----------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_quad_ind on quad_point_tbl
Index Cond: (p >> '(5000,4000)'::point)
(5 rows)
@@ -879,9 +875,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE p <^ '(5000, 4000)';
QUERY PLAN
-----------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_quad_ind on quad_point_tbl
Index Cond: (p <^ '(5000,4000)'::point)
(5 rows)
@@ -896,9 +892,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE p >^ '(5000, 4000)';
QUERY PLAN
-----------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_quad_ind on quad_point_tbl
Index Cond: (p >^ '(5000,4000)'::point)
(5 rows)
@@ -913,9 +909,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)';
QUERY PLAN
-----------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_quad_ind on quad_point_tbl
Index Cond: (p ~= '(4585,365)'::point)
(5 rows)
@@ -928,14 +924,13 @@ SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)';
EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)';
- QUERY PLAN
----------------------------------------------------------------------
+ QUERY PLAN
+---------------------------------------------------------------
Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
- -> Index Only Scan using sp_kd_ind on kd_point_tbl
- Index Cond: (p <@ '(1000,1000),(200,200)'::box)
-(5 rows)
+ -> Index Only Scan using sp_kd_ind on kd_point_tbl
+ Index Cond: (p <@ '(1000,1000),(200,200)'::box)
+(4 rows)
SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)';
count
@@ -945,14 +940,13 @@ SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)';
EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM kd_point_tbl WHERE box '(200,200,1000,1000)' @> p;
- QUERY PLAN
----------------------------------------------------------------------
+ QUERY PLAN
+---------------------------------------------------------------
Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
- -> Index Only Scan using sp_kd_ind on kd_point_tbl
- Index Cond: (p <@ '(1000,1000),(200,200)'::box)
-(5 rows)
+ -> Index Only Scan using sp_kd_ind on kd_point_tbl
+ Index Cond: (p <@ '(1000,1000),(200,200)'::box)
+(4 rows)
SELECT count(*) FROM kd_point_tbl WHERE box '(200,200,1000,1000)' @> p;
count
@@ -964,9 +958,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM kd_point_tbl WHERE p << '(5000, 4000)';
QUERY PLAN
-------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_kd_ind on kd_point_tbl
Index Cond: (p << '(5000,4000)'::point)
(5 rows)
@@ -981,9 +975,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM kd_point_tbl WHERE p >> '(5000, 4000)';
QUERY PLAN
-------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_kd_ind on kd_point_tbl
Index Cond: (p >> '(5000,4000)'::point)
(5 rows)
@@ -998,9 +992,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM kd_point_tbl WHERE p <^ '(5000, 4000)';
QUERY PLAN
-------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_kd_ind on kd_point_tbl
Index Cond: (p <^ '(5000,4000)'::point)
(5 rows)
@@ -1015,9 +1009,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM kd_point_tbl WHERE p >^ '(5000, 4000)';
QUERY PLAN
-------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_kd_ind on kd_point_tbl
Index Cond: (p >^ '(5000,4000)'::point)
(5 rows)
@@ -1032,9 +1026,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)';
QUERY PLAN
-------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_kd_ind on kd_point_tbl
Index Cond: (p ~= '(4585,365)'::point)
(5 rows)
@@ -1097,9 +1091,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Ct ';
QUERY PLAN
----------------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_radix_ind on radix_text_tbl
Index Cond: (t < 'Aztec Ct '::text)
(5 rows)
@@ -1114,9 +1108,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Ct ';
QUERY PLAN
------------------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_radix_ind on radix_text_tbl
Index Cond: (t ~<~ 'Aztec Ct '::text)
(5 rows)
@@ -1131,9 +1125,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Ct ';
QUERY PLAN
-----------------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_radix_ind on radix_text_tbl
Index Cond: (t <= 'Aztec Ct '::text)
(5 rows)
@@ -1148,9 +1142,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Ct ';
QUERY PLAN
-------------------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_radix_ind on radix_text_tbl
Index Cond: (t ~<=~ 'Aztec Ct '::text)
(5 rows)
@@ -1197,9 +1191,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth St ';
QUERY PLAN
-----------------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_radix_ind on radix_text_tbl
Index Cond: (t >= 'Worth St '::text)
(5 rows)
@@ -1214,9 +1208,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth St ';
QUERY PLAN
-------------------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_radix_ind on radix_text_tbl
Index Cond: (t ~>=~ 'Worth St '::text)
(5 rows)
@@ -1231,9 +1225,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth St ';
QUERY PLAN
----------------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_radix_ind on radix_text_tbl
Index Cond: (t > 'Worth St '::text)
(5 rows)
@@ -1248,9 +1242,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth St ';
QUERY PLAN
------------------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Index Only Scan using sp_radix_ind on radix_text_tbl
Index Cond: (t ~>~ 'Worth St '::text)
(5 rows)
@@ -1343,9 +1337,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE p IS NULL;
QUERY PLAN
----------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on quad_point_tbl
Recheck Cond: (p IS NULL)
-> Bitmap Index Scan on sp_quad_ind
@@ -1362,9 +1356,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE p IS NOT NULL;
QUERY PLAN
----------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on quad_point_tbl
Recheck Cond: (p IS NOT NULL)
-> Bitmap Index Scan on sp_quad_ind
@@ -1381,9 +1375,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl;
QUERY PLAN
----------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on quad_point_tbl
-> Bitmap Index Scan on sp_quad_ind
(5 rows)
@@ -1396,16 +1390,15 @@ SELECT count(*) FROM quad_point_tbl;
EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)';
- QUERY PLAN
----------------------------------------------------------------------------
+ QUERY PLAN
+---------------------------------------------------------------------
Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
- -> Bitmap Heap Scan on quad_point_tbl
- Recheck Cond: (p <@ '(1000,1000),(200,200)'::box)
- -> Bitmap Index Scan on sp_quad_ind
- Index Cond: (p <@ '(1000,1000),(200,200)'::box)
-(7 rows)
+ -> Bitmap Heap Scan on quad_point_tbl
+ Recheck Cond: (p <@ '(1000,1000),(200,200)'::box)
+ -> Bitmap Index Scan on sp_quad_ind
+ Index Cond: (p <@ '(1000,1000),(200,200)'::box)
+(6 rows)
SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)';
count
@@ -1415,16 +1408,15 @@ SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)';
EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE box '(200,200,1000,1000)' @> p;
- QUERY PLAN
----------------------------------------------------------------------------
+ QUERY PLAN
+---------------------------------------------------------------------
Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
- -> Bitmap Heap Scan on quad_point_tbl
- Recheck Cond: ('(1000,1000),(200,200)'::box @> p)
- -> Bitmap Index Scan on sp_quad_ind
- Index Cond: ('(1000,1000),(200,200)'::box @> p)
-(7 rows)
+ -> Bitmap Heap Scan on quad_point_tbl
+ Recheck Cond: ('(1000,1000),(200,200)'::box @> p)
+ -> Bitmap Index Scan on sp_quad_ind
+ Index Cond: ('(1000,1000),(200,200)'::box @> p)
+(6 rows)
SELECT count(*) FROM quad_point_tbl WHERE box '(200,200,1000,1000)' @> p;
count
@@ -1436,9 +1428,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE p << '(5000, 4000)';
QUERY PLAN
-------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on quad_point_tbl
Recheck Cond: (p << '(5000,4000)'::point)
-> Bitmap Index Scan on sp_quad_ind
@@ -1455,9 +1447,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE p >> '(5000, 4000)';
QUERY PLAN
-------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on quad_point_tbl
Recheck Cond: (p >> '(5000,4000)'::point)
-> Bitmap Index Scan on sp_quad_ind
@@ -1474,9 +1466,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE p <^ '(5000, 4000)';
QUERY PLAN
-------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on quad_point_tbl
Recheck Cond: (p <^ '(5000,4000)'::point)
-> Bitmap Index Scan on sp_quad_ind
@@ -1493,9 +1485,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE p >^ '(5000, 4000)';
QUERY PLAN
-------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on quad_point_tbl
Recheck Cond: (p >^ '(5000,4000)'::point)
-> Bitmap Index Scan on sp_quad_ind
@@ -1512,9 +1504,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)';
QUERY PLAN
------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on quad_point_tbl
Recheck Cond: (p ~= '(4585,365)'::point)
-> Bitmap Index Scan on sp_quad_ind
@@ -1529,16 +1521,15 @@ SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)';
EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)';
- QUERY PLAN
----------------------------------------------------------------------------
+ QUERY PLAN
+---------------------------------------------------------------------
Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
- -> Bitmap Heap Scan on kd_point_tbl
- Recheck Cond: (p <@ '(1000,1000),(200,200)'::box)
- -> Bitmap Index Scan on sp_kd_ind
- Index Cond: (p <@ '(1000,1000),(200,200)'::box)
-(7 rows)
+ -> Bitmap Heap Scan on kd_point_tbl
+ Recheck Cond: (p <@ '(1000,1000),(200,200)'::box)
+ -> Bitmap Index Scan on sp_kd_ind
+ Index Cond: (p <@ '(1000,1000),(200,200)'::box)
+(6 rows)
SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)';
count
@@ -1548,16 +1539,15 @@ SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)';
EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM kd_point_tbl WHERE box '(200,200,1000,1000)' @> p;
- QUERY PLAN
----------------------------------------------------------------------------
+ QUERY PLAN
+---------------------------------------------------------------------
Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
- -> Bitmap Heap Scan on kd_point_tbl
- Recheck Cond: ('(1000,1000),(200,200)'::box @> p)
- -> Bitmap Index Scan on sp_kd_ind
- Index Cond: ('(1000,1000),(200,200)'::box @> p)
-(7 rows)
+ -> Bitmap Heap Scan on kd_point_tbl
+ Recheck Cond: ('(1000,1000),(200,200)'::box @> p)
+ -> Bitmap Index Scan on sp_kd_ind
+ Index Cond: ('(1000,1000),(200,200)'::box @> p)
+(6 rows)
SELECT count(*) FROM kd_point_tbl WHERE box '(200,200,1000,1000)' @> p;
count
@@ -1569,9 +1559,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM kd_point_tbl WHERE p << '(5000, 4000)';
QUERY PLAN
-------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on kd_point_tbl
Recheck Cond: (p << '(5000,4000)'::point)
-> Bitmap Index Scan on sp_kd_ind
@@ -1588,9 +1578,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM kd_point_tbl WHERE p >> '(5000, 4000)';
QUERY PLAN
-------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on kd_point_tbl
Recheck Cond: (p >> '(5000,4000)'::point)
-> Bitmap Index Scan on sp_kd_ind
@@ -1607,9 +1597,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM kd_point_tbl WHERE p <^ '(5000, 4000)';
QUERY PLAN
-------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on kd_point_tbl
Recheck Cond: (p <^ '(5000,4000)'::point)
-> Bitmap Index Scan on sp_kd_ind
@@ -1626,9 +1616,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM kd_point_tbl WHERE p >^ '(5000, 4000)';
QUERY PLAN
-------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on kd_point_tbl
Recheck Cond: (p >^ '(5000,4000)'::point)
-> Bitmap Index Scan on sp_kd_ind
@@ -1645,9 +1635,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)';
QUERY PLAN
------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on kd_point_tbl
Recheck Cond: (p ~= '(4585,365)'::point)
-> Bitmap Index Scan on sp_kd_ind
@@ -1718,9 +1708,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Ct ';
QUERY PLAN
----------------------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on radix_text_tbl
Recheck Cond: (t < 'Aztec Ct '::text)
-> Bitmap Index Scan on sp_radix_ind
@@ -1737,9 +1727,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Ct ';
QUERY PLAN
------------------------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on radix_text_tbl
Recheck Cond: (t ~<~ 'Aztec Ct '::text)
-> Bitmap Index Scan on sp_radix_ind
@@ -1756,9 +1746,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Ct ';
QUERY PLAN
-----------------------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on radix_text_tbl
Recheck Cond: (t <= 'Aztec Ct '::text)
-> Bitmap Index Scan on sp_radix_ind
@@ -1775,9 +1765,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Ct ';
QUERY PLAN
-------------------------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on radix_text_tbl
Recheck Cond: (t ~<=~ 'Aztec Ct '::text)
-> Bitmap Index Scan on sp_radix_ind
@@ -1830,9 +1820,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth St ';
QUERY PLAN
-----------------------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on radix_text_tbl
Recheck Cond: (t >= 'Worth St '::text)
-> Bitmap Index Scan on sp_radix_ind
@@ -1849,9 +1839,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth St ';
QUERY PLAN
-------------------------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on radix_text_tbl
Recheck Cond: (t ~>=~ 'Worth St '::text)
-> Bitmap Index Scan on sp_radix_ind
@@ -1868,9 +1858,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth St ';
QUERY PLAN
----------------------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on radix_text_tbl
Recheck Cond: (t > 'Worth St '::text)
-> Bitmap Index Scan on sp_radix_ind
@@ -1887,9 +1877,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth St ';
QUERY PLAN
------------------------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on radix_text_tbl
Recheck Cond: (t ~>~ 'Worth St '::text)
-> Bitmap Index Scan on sp_radix_ind
@@ -2494,14 +2484,16 @@ CREATE INDEX hash_tuplesort_idx ON tenk1 USING hash (stringu1 name_ops) WITH (fi
WARNING: hash indexes are not WAL-logged and their use is discouraged
EXPLAIN (COSTS OFF)
SELECT count(*) FROM tenk1 WHERE stringu1 = 'TVAAAA';
- QUERY PLAN
--------------------------------------------------------
- Aggregate
- -> Bitmap Heap Scan on tenk1
- Recheck Cond: (stringu1 = 'TVAAAA'::name)
- -> Bitmap Index Scan on hash_tuplesort_idx
- Index Cond: (stringu1 = 'TVAAAA'::name)
-(5 rows)
+ QUERY PLAN
+-------------------------------------------------------------------
+ Finalize Aggregate
+ -> Remote Subquery Scan on all (datanode_1,datanode_2)
+ -> Partial Aggregate
+ -> Bitmap Heap Scan on tenk1
+ Recheck Cond: (stringu1 = 'TVAAAA'::name)
+ -> Bitmap Index Scan on hash_tuplesort_idx
+ Index Cond: (stringu1 = 'TVAAAA'::name)
+(7 rows)
SELECT count(*) FROM tenk1 WHERE stringu1 = 'TVAAAA';
count
@@ -2927,22 +2919,21 @@ SELECT * FROM tenk1
EXPLAIN (NODES OFF, COSTS OFF)
SELECT count(*) FROM tenk1
WHERE hundred = 42 AND (thousand = 42 OR thousand = 99);
- QUERY PLAN
----------------------------------------------------------------------------------------------
+ QUERY PLAN
+---------------------------------------------------------------------------------------
Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
- -> Bitmap Heap Scan on tenk1
- Recheck Cond: ((hundred = 42) AND ((thousand = 42) OR (thousand = 99)))
- -> BitmapAnd
- -> Bitmap Index Scan on tenk1_hundred
- Index Cond: (hundred = 42)
- -> BitmapOr
- -> Bitmap Index Scan on tenk1_thous_tenthous
- Index Cond: (thousand = 42)
- -> Bitmap Index Scan on tenk1_thous_tenthous
- Index Cond: (thousand = 99)
-(13 rows)
+ -> Bitmap Heap Scan on tenk1
+ Recheck Cond: ((hundred = 42) AND ((thousand = 42) OR (thousand = 99)))
+ -> BitmapAnd
+ -> Bitmap Index Scan on tenk1_hundred
+ Index Cond: (hundred = 42)
+ -> BitmapOr
+ -> Bitmap Index Scan on tenk1_thous_tenthous
+ Index Cond: (thousand = 42)
+ -> Bitmap Index Scan on tenk1_thous_tenthous
+ Index Cond: (thousand = 99)
+(12 rows)
SELECT count(*) FROM tenk1
WHERE hundred = 42 AND (thousand = 42 OR thousand = 99);
@@ -2963,9 +2954,9 @@ EXPLAIN (NODES OFF, COSTS OFF)
WHERE f1 BETWEEN 'WA' AND 'ZZZ' and id < 1000 and f1 ~<~ 'YX';
QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------
- Aggregate
+ Finalize Aggregate
-> Remote Subquery Scan on all
- -> Aggregate
+ -> Partial Aggregate
-> Bitmap Heap Scan on dupindexcols
Recheck Cond: ((f1 >= 'WA'::text) AND (f1 <= 'ZZZ'::text) AND (id < 1000) AND (f1 ~<~ 'YX'::text))
-> Bitmap Index Scan on dupindexcols_i