summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorTom Lane2019-12-11 22:05:18 +0000
committerTom Lane2019-12-11 22:05:18 +0000
commit6ef77cf46e81f45716ec981cb08781d426181378 (patch)
tree39e28a070288a373431e396c3f92d3e9ebcf14a2 /src/test
parentba79cb5dc841104cf4810b5c23af4f881079dbb5 (diff)
Further adjust EXPLAIN's choices of table alias names.
This patch causes EXPLAIN to always assign a separate table alias to the parent RTE of an append relation (inheritance set); before, such RTEs were ignored if not actually scanned by the plan. Since the child RTEs now always have that same alias to start with (cf. commit 55a1954da), the net effect is that the parent RTE usually gets the alias used or implied by the query text, and the children all get that alias with "_N" appended. (The exception to "usually" is if there are duplicate aliases in different subtrees of the original query; then some of those original RTEs will also have "_N" appended.) This results in more uniform output for partitioned-table plans than we had before: the partitioned table itself gets the original alias, and all child tables have aliases with "_N", rather than the previous behavior where one of the children would get an alias without "_N". The reason for giving the parent RTE an alias, even if it isn't scanned by the plan, is that we now use the parent's alias to qualify Vars that refer to an appendrel output column and appear above the Append or MergeAppend that computes the appendrel. But below the append, Vars refer to some one of the child relations, and are displayed that way. This seems clearer than the old behavior where a Var that could carry values from any child relation was displayed as if it referred to only one of them. While at it, change ruleutils.c so that the code paths used by EXPLAIN deal in Plan trees not PlanState trees. This effectively reverts a decision made in commit 1cc29fe7c, which seemed like a good idea at the time to make ruleutils.c consistent with explain.c. However, it's problematic because we'd really like to allow executor startup pruning to remove all the children of an append node when possible, leaving no child PlanState to resolve Vars against. (That's not done here, but will be in the next patch.) This requires different handling of subplans and initplans than before, but is otherwise a pretty straightforward change. Discussion: https://postgr.es/m/[email protected]
Diffstat (limited to 'src/test')
-rw-r--r--src/test/regress/expected/aggregates.out48
-rw-r--r--src/test/regress/expected/alter_table.out26
-rw-r--r--src/test/regress/expected/inherit.out340
-rw-r--r--src/test/regress/expected/join.out12
-rw-r--r--src/test/regress/expected/partition_aggregate.out150
-rw-r--r--src/test/regress/expected/partition_join.out940
-rw-r--r--src/test/regress/expected/partition_prune.out1234
-rw-r--r--src/test/regress/expected/rowsecurity.out126
-rw-r--r--src/test/regress/expected/select_parallel.out56
-rw-r--r--src/test/regress/expected/tablesample.out16
-rw-r--r--src/test/regress/expected/updatable_views.out40
11 files changed, 1494 insertions, 1494 deletions
diff --git a/src/test/regress/expected/aggregates.out b/src/test/regress/expected/aggregates.out
index 0b097f96520..d091ae4c6e4 100644
--- a/src/test/regress/expected/aggregates.out
+++ b/src/test/regress/expected/aggregates.out
@@ -1005,24 +1005,24 @@ explain (costs off)
-> Limit
-> Merge Append
Sort Key: minmaxtest.f1
- -> Index Only Scan using minmaxtesti on minmaxtest
+ -> Index Only Scan using minmaxtesti on minmaxtest minmaxtest_1
Index Cond: (f1 IS NOT NULL)
- -> Index Only Scan using minmaxtest1i on minmaxtest1 minmaxtest_1
+ -> Index Only Scan using minmaxtest1i on minmaxtest1 minmaxtest_2
Index Cond: (f1 IS NOT NULL)
- -> Index Only Scan Backward using minmaxtest2i on minmaxtest2 minmaxtest_2
+ -> Index Only Scan Backward using minmaxtest2i on minmaxtest2 minmaxtest_3
Index Cond: (f1 IS NOT NULL)
- -> Index Only Scan using minmaxtest3i on minmaxtest3 minmaxtest_3
+ -> Index Only Scan using minmaxtest3i on minmaxtest3 minmaxtest_4
InitPlan 2 (returns $1)
-> Limit
-> Merge Append
- Sort Key: minmaxtest_4.f1 DESC
- -> Index Only Scan Backward using minmaxtesti on minmaxtest minmaxtest_4
+ Sort Key: minmaxtest_5.f1 DESC
+ -> Index Only Scan Backward using minmaxtesti on minmaxtest minmaxtest_6
Index Cond: (f1 IS NOT NULL)
- -> Index Only Scan Backward using minmaxtest1i on minmaxtest1 minmaxtest_5
+ -> Index Only Scan Backward using minmaxtest1i on minmaxtest1 minmaxtest_7
Index Cond: (f1 IS NOT NULL)
- -> Index Only Scan using minmaxtest2i on minmaxtest2 minmaxtest_6
+ -> Index Only Scan using minmaxtest2i on minmaxtest2 minmaxtest_8
Index Cond: (f1 IS NOT NULL)
- -> Index Only Scan Backward using minmaxtest3i on minmaxtest3 minmaxtest_7
+ -> Index Only Scan Backward using minmaxtest3i on minmaxtest3 minmaxtest_9
(23 rows)
select min(f1), max(f1) from minmaxtest;
@@ -1041,24 +1041,24 @@ explain (costs off)
-> Limit
-> Merge Append
Sort Key: minmaxtest.f1
- -> Index Only Scan using minmaxtesti on minmaxtest
+ -> Index Only Scan using minmaxtesti on minmaxtest minmaxtest_1
Index Cond: (f1 IS NOT NULL)
- -> Index Only Scan using minmaxtest1i on minmaxtest1 minmaxtest_1
+ -> Index Only Scan using minmaxtest1i on minmaxtest1 minmaxtest_2
Index Cond: (f1 IS NOT NULL)
- -> Index Only Scan Backward using minmaxtest2i on minmaxtest2 minmaxtest_2
+ -> Index Only Scan Backward using minmaxtest2i on minmaxtest2 minmaxtest_3
Index Cond: (f1 IS NOT NULL)
- -> Index Only Scan using minmaxtest3i on minmaxtest3 minmaxtest_3
+ -> Index Only Scan using minmaxtest3i on minmaxtest3 minmaxtest_4
InitPlan 2 (returns $1)
-> Limit
-> Merge Append
- Sort Key: minmaxtest_4.f1 DESC
- -> Index Only Scan Backward using minmaxtesti on minmaxtest minmaxtest_4
+ Sort Key: minmaxtest_5.f1 DESC
+ -> Index Only Scan Backward using minmaxtesti on minmaxtest minmaxtest_6
Index Cond: (f1 IS NOT NULL)
- -> Index Only Scan Backward using minmaxtest1i on minmaxtest1 minmaxtest_5
+ -> Index Only Scan Backward using minmaxtest1i on minmaxtest1 minmaxtest_7
Index Cond: (f1 IS NOT NULL)
- -> Index Only Scan using minmaxtest2i on minmaxtest2 minmaxtest_6
+ -> Index Only Scan using minmaxtest2i on minmaxtest2 minmaxtest_8
Index Cond: (f1 IS NOT NULL)
- -> Index Only Scan Backward using minmaxtest3i on minmaxtest3 minmaxtest_7
+ -> Index Only Scan Backward using minmaxtest3i on minmaxtest3 minmaxtest_9
-> Sort
Sort Key: ($0), ($1)
-> Result
@@ -1155,8 +1155,8 @@ explain (costs off) select * from t1 group by a,b,c,d;
HashAggregate
Group Key: t1.a, t1.b, t1.c, t1.d
-> Append
- -> Seq Scan on t1
- -> Seq Scan on t1c t1_1
+ -> Seq Scan on t1 t1_1
+ -> Seq Scan on t1c t1_2
(5 rows)
-- Okay to remove columns if we're only querying the parent.
@@ -1179,13 +1179,13 @@ create temp table p_t1_1 partition of p_t1 for values in(1);
create temp table p_t1_2 partition of p_t1 for values in(2);
-- Ensure we can remove non-PK columns for partitioned tables.
explain (costs off) select * from p_t1 group by a,b,c,d;
- QUERY PLAN
----------------------------------------
+ QUERY PLAN
+--------------------------------
HashAggregate
Group Key: p_t1.a, p_t1.b
-> Append
- -> Seq Scan on p_t1_1 p_t1
- -> Seq Scan on p_t1_2 p_t1_1
+ -> Seq Scan on p_t1_1
+ -> Seq Scan on p_t1_2
(5 rows)
drop table t1 cascade;
diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out
index e71d2f24dd0..b492c606ab5 100644
--- a/src/test/regress/expected/alter_table.out
+++ b/src/test/regress/expected/alter_table.out
@@ -540,11 +540,11 @@ explain (costs off) select * from nv_parent where d between '2011-08-01' and '20
QUERY PLAN
---------------------------------------------------------------------------
Append
- -> Seq Scan on nv_parent
+ -> Seq Scan on nv_parent nv_parent_1
Filter: ((d >= '08-01-2011'::date) AND (d <= '08-31-2011'::date))
- -> Seq Scan on nv_child_2010 nv_parent_1
+ -> Seq Scan on nv_child_2010 nv_parent_2
Filter: ((d >= '08-01-2011'::date) AND (d <= '08-31-2011'::date))
- -> Seq Scan on nv_child_2011 nv_parent_2
+ -> Seq Scan on nv_child_2011 nv_parent_3
Filter: ((d >= '08-01-2011'::date) AND (d <= '08-31-2011'::date))
(7 rows)
@@ -553,11 +553,11 @@ explain (costs off) select * from nv_parent where d between '2011-08-01'::date a
QUERY PLAN
---------------------------------------------------------------------------
Append
- -> Seq Scan on nv_parent
+ -> Seq Scan on nv_parent nv_parent_1
Filter: ((d >= '08-01-2011'::date) AND (d <= '08-31-2011'::date))
- -> Seq Scan on nv_child_2010 nv_parent_1
+ -> Seq Scan on nv_child_2010 nv_parent_2
Filter: ((d >= '08-01-2011'::date) AND (d <= '08-31-2011'::date))
- -> Seq Scan on nv_child_2011 nv_parent_2
+ -> Seq Scan on nv_child_2011 nv_parent_3
Filter: ((d >= '08-01-2011'::date) AND (d <= '08-31-2011'::date))
(7 rows)
@@ -565,13 +565,13 @@ explain (costs off) select * from nv_parent where d between '2009-08-01'::date a
QUERY PLAN
---------------------------------------------------------------------------
Append
- -> Seq Scan on nv_parent
+ -> Seq Scan on nv_parent nv_parent_1
Filter: ((d >= '08-01-2009'::date) AND (d <= '08-31-2009'::date))
- -> Seq Scan on nv_child_2010 nv_parent_1
+ -> Seq Scan on nv_child_2010 nv_parent_2
Filter: ((d >= '08-01-2009'::date) AND (d <= '08-31-2009'::date))
- -> Seq Scan on nv_child_2011 nv_parent_2
+ -> Seq Scan on nv_child_2011 nv_parent_3
Filter: ((d >= '08-01-2009'::date) AND (d <= '08-31-2009'::date))
- -> Seq Scan on nv_child_2009 nv_parent_3
+ -> Seq Scan on nv_child_2009 nv_parent_4
Filter: ((d >= '08-01-2009'::date) AND (d <= '08-31-2009'::date))
(9 rows)
@@ -581,11 +581,11 @@ explain (costs off) select * from nv_parent where d between '2009-08-01'::date a
QUERY PLAN
---------------------------------------------------------------------------
Append
- -> Seq Scan on nv_parent
+ -> Seq Scan on nv_parent nv_parent_1
Filter: ((d >= '08-01-2009'::date) AND (d <= '08-31-2009'::date))
- -> Seq Scan on nv_child_2010 nv_parent_1
+ -> Seq Scan on nv_child_2010 nv_parent_2
Filter: ((d >= '08-01-2009'::date) AND (d <= '08-31-2009'::date))
- -> Seq Scan on nv_child_2009 nv_parent_2
+ -> Seq Scan on nv_child_2009 nv_parent_3
Filter: ((d >= '08-01-2009'::date) AND (d <= '08-31-2009'::date))
(7 rows)
diff --git a/src/test/regress/expected/inherit.out b/src/test/regress/expected/inherit.out
index 680d47f5ac7..d8f56d2f5c1 100644
--- a/src/test/regress/expected/inherit.out
+++ b/src/test/regress/expected/inherit.out
@@ -1338,11 +1338,11 @@ select * from patest0 join (select f1 from int4_tbl limit 1) ss on id = f1;
-> Limit
-> Seq Scan on int4_tbl
-> Append
- -> Index Scan using patest0i on patest0
+ -> Index Scan using patest0i on patest0 patest0_1
Index Cond: (id = int4_tbl.f1)
- -> Index Scan using patest1i on patest1 patest0_1
+ -> Index Scan using patest1i on patest1 patest0_2
Index Cond: (id = int4_tbl.f1)
- -> Index Scan using patest2i on patest2 patest0_2
+ -> Index Scan using patest2i on patest2 patest0_3
Index Cond: (id = int4_tbl.f1)
(10 rows)
@@ -1363,11 +1363,11 @@ select * from patest0 join (select f1 from int4_tbl limit 1) ss on id = f1;
-> Limit
-> Seq Scan on int4_tbl
-> Append
- -> Index Scan using patest0i on patest0
+ -> Index Scan using patest0i on patest0 patest0_1
Index Cond: (id = int4_tbl.f1)
- -> Index Scan using patest1i on patest1 patest0_1
+ -> Index Scan using patest1i on patest1 patest0_2
Index Cond: (id = int4_tbl.f1)
- -> Seq Scan on patest2 patest0_2
+ -> Seq Scan on patest2 patest0_3
Filter: (int4_tbl.f1 = id)
(10 rows)
@@ -1413,14 +1413,14 @@ explain (verbose, costs off) select * from matest0 order by 1-id;
-> Result
Output: matest0.id, matest0.name, (1 - matest0.id)
-> Append
- -> Seq Scan on public.matest0
- Output: matest0.id, matest0.name
- -> Seq Scan on public.matest1 matest0_1
+ -> Seq Scan on public.matest0 matest0_1
Output: matest0_1.id, matest0_1.name
- -> Seq Scan on public.matest2 matest0_2
+ -> Seq Scan on public.matest1 matest0_2
Output: matest0_2.id, matest0_2.name
- -> Seq Scan on public.matest3 matest0_3
+ -> Seq Scan on public.matest2 matest0_3
Output: matest0_3.id, matest0_3.name
+ -> Seq Scan on public.matest3 matest0_4
+ Output: matest0_4.id, matest0_4.name
(14 rows)
select * from matest0 order by 1-id;
@@ -1440,14 +1440,14 @@ explain (verbose, costs off) select min(1-id) from matest0;
Aggregate
Output: min((1 - matest0.id))
-> Append
- -> Seq Scan on public.matest0
- Output: matest0.id
- -> Seq Scan on public.matest1 matest0_1
+ -> Seq Scan on public.matest0 matest0_1
Output: matest0_1.id
- -> Seq Scan on public.matest2 matest0_2
+ -> Seq Scan on public.matest1 matest0_2
Output: matest0_2.id
- -> Seq Scan on public.matest3 matest0_3
+ -> Seq Scan on public.matest2 matest0_3
Output: matest0_3.id
+ -> Seq Scan on public.matest3 matest0_4
+ Output: matest0_4.id
(11 rows)
select min(1-id) from matest0;
@@ -1464,17 +1464,17 @@ explain (verbose, costs off) select * from matest0 order by 1-id;
------------------------------------------------------------------------
Merge Append
Sort Key: ((1 - matest0.id))
- -> Index Scan using matest0i on public.matest0
- Output: matest0.id, matest0.name, (1 - matest0.id)
- -> Index Scan using matest1i on public.matest1 matest0_1
+ -> Index Scan using matest0i on public.matest0 matest0_1
Output: matest0_1.id, matest0_1.name, (1 - matest0_1.id)
+ -> Index Scan using matest1i on public.matest1 matest0_2
+ Output: matest0_2.id, matest0_2.name, (1 - matest0_2.id)
-> Sort
- Output: matest0_2.id, matest0_2.name, ((1 - matest0_2.id))
- Sort Key: ((1 - matest0_2.id))
- -> Seq Scan on public.matest2 matest0_2
- Output: matest0_2.id, matest0_2.name, (1 - matest0_2.id)
- -> Index Scan using matest3i on public.matest3 matest0_3
- Output: matest0_3.id, matest0_3.name, (1 - matest0_3.id)
+ Output: matest0_3.id, matest0_3.name, ((1 - matest0_3.id))
+ Sort Key: ((1 - matest0_3.id))
+ -> Seq Scan on public.matest2 matest0_3
+ Output: matest0_3.id, matest0_3.name, (1 - matest0_3.id)
+ -> Index Scan using matest3i on public.matest3 matest0_4
+ Output: matest0_4.id, matest0_4.name, (1 - matest0_4.id)
(13 rows)
select * from matest0 order by 1-id;
@@ -1500,22 +1500,22 @@ explain (verbose, costs off) select min(1-id) from matest0;
Output: ((1 - matest0.id))
-> Merge Append
Sort Key: ((1 - matest0.id))
- -> Index Scan using matest0i on public.matest0
- Output: matest0.id, (1 - matest0.id)
- Index Cond: ((1 - matest0.id) IS NOT NULL)
- -> Index Scan using matest1i on public.matest1 matest0_1
+ -> Index Scan using matest0i on public.matest0 matest0_1
Output: matest0_1.id, (1 - matest0_1.id)
Index Cond: ((1 - matest0_1.id) IS NOT NULL)
+ -> Index Scan using matest1i on public.matest1 matest0_2
+ Output: matest0_2.id, (1 - matest0_2.id)
+ Index Cond: ((1 - matest0_2.id) IS NOT NULL)
-> Sort
- Output: matest0_2.id, ((1 - matest0_2.id))
- Sort Key: ((1 - matest0_2.id))
- -> Bitmap Heap Scan on public.matest2 matest0_2
- Output: matest0_2.id, (1 - matest0_2.id)
- Filter: ((1 - matest0_2.id) IS NOT NULL)
+ Output: matest0_3.id, ((1 - matest0_3.id))
+ Sort Key: ((1 - matest0_3.id))
+ -> Bitmap Heap Scan on public.matest2 matest0_3
+ Output: matest0_3.id, (1 - matest0_3.id)
+ Filter: ((1 - matest0_3.id) IS NOT NULL)
-> Bitmap Index Scan on matest2_pkey
- -> Index Scan using matest3i on public.matest3 matest0_3
- Output: matest0_3.id, (1 - matest0_3.id)
- Index Cond: ((1 - matest0_3.id) IS NOT NULL)
+ -> Index Scan using matest3i on public.matest3 matest0_4
+ Output: matest0_4.id, (1 - matest0_4.id)
+ Index Cond: ((1 - matest0_4.id) IS NOT NULL)
(25 rows)
select min(1-id) from matest0;
@@ -1551,14 +1551,14 @@ order by t1.b limit 10;
Merge Cond: (t1.b = t2.b)
-> Merge Append
Sort Key: t1.b
- -> Index Scan using matest0i on matest0 t1
- -> Index Scan using matest1i on matest1 t1_1
+ -> Index Scan using matest0i on matest0 t1_1
+ -> Index Scan using matest1i on matest1 t1_2
-> Materialize
-> Merge Append
Sort Key: t2.b
- -> Index Scan using matest0i on matest0 t2
+ -> Index Scan using matest0i on matest0 t2_1
Filter: (c = d)
- -> Index Scan using matest1i on matest1 t2_1
+ -> Index Scan using matest1i on matest1 t2_2
Filter: (c = d)
(14 rows)
@@ -1783,9 +1783,9 @@ explain (costs off) select * from list_parted;
QUERY PLAN
----------------------------------------------
Append
- -> Seq Scan on part_ab_cd list_parted
- -> Seq Scan on part_ef_gh list_parted_1
- -> Seq Scan on part_null_xy list_parted_2
+ -> Seq Scan on part_ab_cd list_parted_1
+ -> Seq Scan on part_ef_gh list_parted_2
+ -> Seq Scan on part_null_xy list_parted_3
(4 rows)
explain (costs off) select * from list_parted where a is null;
@@ -1799,11 +1799,11 @@ explain (costs off) select * from list_parted where a is not null;
QUERY PLAN
----------------------------------------------
Append
- -> Seq Scan on part_ab_cd list_parted
+ -> Seq Scan on part_ab_cd list_parted_1
Filter: (a IS NOT NULL)
- -> Seq Scan on part_ef_gh list_parted_1
+ -> Seq Scan on part_ef_gh list_parted_2
Filter: (a IS NOT NULL)
- -> Seq Scan on part_null_xy list_parted_2
+ -> Seq Scan on part_null_xy list_parted_3
Filter: (a IS NOT NULL)
(7 rows)
@@ -1811,9 +1811,9 @@ explain (costs off) select * from list_parted where a in ('ab', 'cd', 'ef');
QUERY PLAN
----------------------------------------------------------
Append
- -> Seq Scan on part_ab_cd list_parted
+ -> Seq Scan on part_ab_cd list_parted_1
Filter: ((a)::text = ANY ('{ab,cd,ef}'::text[]))
- -> Seq Scan on part_ef_gh list_parted_1
+ -> Seq Scan on part_ef_gh list_parted_2
Filter: ((a)::text = ANY ('{ab,cd,ef}'::text[]))
(5 rows)
@@ -1852,24 +1852,24 @@ explain (costs off) select * from range_list_parted;
QUERY PLAN
--------------------------------------------------------
Append
- -> Seq Scan on part_1_10_ab range_list_parted
- -> Seq Scan on part_1_10_cd range_list_parted_1
- -> Seq Scan on part_10_20_ab range_list_parted_2
- -> Seq Scan on part_10_20_cd range_list_parted_3
- -> Seq Scan on part_21_30_ab range_list_parted_4
- -> Seq Scan on part_21_30_cd range_list_parted_5
- -> Seq Scan on part_40_inf_ab range_list_parted_6
- -> Seq Scan on part_40_inf_cd range_list_parted_7
- -> Seq Scan on part_40_inf_null range_list_parted_8
+ -> Seq Scan on part_1_10_ab range_list_parted_1
+ -> Seq Scan on part_1_10_cd range_list_parted_2
+ -> Seq Scan on part_10_20_ab range_list_parted_3
+ -> Seq Scan on part_10_20_cd range_list_parted_4
+ -> Seq Scan on part_21_30_ab range_list_parted_5
+ -> Seq Scan on part_21_30_cd range_list_parted_6
+ -> Seq Scan on part_40_inf_ab range_list_parted_7
+ -> Seq Scan on part_40_inf_cd range_list_parted_8
+ -> Seq Scan on part_40_inf_null range_list_parted_9
(10 rows)
explain (costs off) select * from range_list_parted where a = 5;
QUERY PLAN
----------------------------------------------------
Append
- -> Seq Scan on part_1_10_ab range_list_parted
+ -> Seq Scan on part_1_10_ab range_list_parted_1
Filter: (a = 5)
- -> Seq Scan on part_1_10_cd range_list_parted_1
+ -> Seq Scan on part_1_10_cd range_list_parted_2
Filter: (a = 5)
(5 rows)
@@ -1877,13 +1877,13 @@ explain (costs off) select * from range_list_parted where b = 'ab';
QUERY PLAN
------------------------------------------------------
Append
- -> Seq Scan on part_1_10_ab range_list_parted
+ -> Seq Scan on part_1_10_ab range_list_parted_1
Filter: (b = 'ab'::bpchar)
- -> Seq Scan on part_10_20_ab range_list_parted_1
+ -> Seq Scan on part_10_20_ab range_list_parted_2
Filter: (b = 'ab'::bpchar)
- -> Seq Scan on part_21_30_ab range_list_parted_2
+ -> Seq Scan on part_21_30_ab range_list_parted_3
Filter: (b = 'ab'::bpchar)
- -> Seq Scan on part_40_inf_ab range_list_parted_3
+ -> Seq Scan on part_40_inf_ab range_list_parted_4
Filter: (b = 'ab'::bpchar)
(9 rows)
@@ -1891,11 +1891,11 @@ explain (costs off) select * from range_list_parted where a between 3 and 23 and
QUERY PLAN
-----------------------------------------------------------------
Append
- -> Seq Scan on part_1_10_ab range_list_parted
+ -> Seq Scan on part_1_10_ab range_list_parted_1
Filter: ((a >= 3) AND (a <= 23) AND (b = 'ab'::bpchar))
- -> Seq Scan on part_10_20_ab range_list_parted_1
+ -> Seq Scan on part_10_20_ab range_list_parted_2
Filter: ((a >= 3) AND (a <= 23) AND (b = 'ab'::bpchar))
- -> Seq Scan on part_21_30_ab range_list_parted_2
+ -> Seq Scan on part_21_30_ab range_list_parted_3
Filter: ((a >= 3) AND (a <= 23) AND (b = 'ab'::bpchar))
(7 rows)
@@ -1919,23 +1919,23 @@ explain (costs off) select * from range_list_parted where a is not null and a <
QUERY PLAN
--------------------------------------------------------
Append
- -> Seq Scan on part_1_10_ab range_list_parted
+ -> Seq Scan on part_1_10_ab range_list_parted_1
Filter: ((a IS NOT NULL) AND (a < 67))
- -> Seq Scan on part_1_10_cd range_list_parted_1
+ -> Seq Scan on part_1_10_cd range_list_parted_2
Filter: ((a IS NOT NULL) AND (a < 67))
- -> Seq Scan on part_10_20_ab range_list_parted_2
+ -> Seq Scan on part_10_20_ab range_list_parted_3
Filter: ((a IS NOT NULL) AND (a < 67))
- -> Seq Scan on part_10_20_cd range_list_parted_3
+ -> Seq Scan on part_10_20_cd range_list_parted_4
Filter: ((a IS NOT NULL) AND (a < 67))
- -> Seq Scan on part_21_30_ab range_list_parted_4
+ -> Seq Scan on part_21_30_ab range_list_parted_5
Filter: ((a IS NOT NULL) AND (a < 67))
- -> Seq Scan on part_21_30_cd range_list_parted_5
+ -> Seq Scan on part_21_30_cd range_list_parted_6
Filter: ((a IS NOT NULL) AND (a < 67))
- -> Seq Scan on part_40_inf_ab range_list_parted_6
+ -> Seq Scan on part_40_inf_ab range_list_parted_7
Filter: ((a IS NOT NULL) AND (a < 67))
- -> Seq Scan on part_40_inf_cd range_list_parted_7
+ -> Seq Scan on part_40_inf_cd range_list_parted_8
Filter: ((a IS NOT NULL) AND (a < 67))
- -> Seq Scan on part_40_inf_null range_list_parted_8
+ -> Seq Scan on part_40_inf_null range_list_parted_9
Filter: ((a IS NOT NULL) AND (a < 67))
(19 rows)
@@ -1943,11 +1943,11 @@ explain (costs off) select * from range_list_parted where a >= 30;
QUERY PLAN
--------------------------------------------------------
Append
- -> Seq Scan on part_40_inf_ab range_list_parted
+ -> Seq Scan on part_40_inf_ab range_list_parted_1
Filter: (a >= 30)
- -> Seq Scan on part_40_inf_cd range_list_parted_1
+ -> Seq Scan on part_40_inf_cd range_list_parted_2
Filter: (a >= 30)
- -> Seq Scan on part_40_inf_null range_list_parted_2
+ -> Seq Scan on part_40_inf_null range_list_parted_3
Filter: (a >= 30)
(7 rows)
@@ -1967,9 +1967,9 @@ explain (costs off) select * from mcrparted where a = 0; -- scans mcrparted0, mc
QUERY PLAN
---------------------------------------------
Append
- -> Seq Scan on mcrparted0 mcrparted
+ -> Seq Scan on mcrparted0 mcrparted_1
Filter: (a = 0)
- -> Seq Scan on mcrparted_def mcrparted_1
+ -> Seq Scan on mcrparted_def mcrparted_2
Filter: (a = 0)
(5 rows)
@@ -1977,9 +1977,9 @@ explain (costs off) select * from mcrparted where a = 10 and abs(b) < 5; -- scan
QUERY PLAN
---------------------------------------------
Append
- -> Seq Scan on mcrparted1 mcrparted
+ -> Seq Scan on mcrparted1 mcrparted_1
Filter: ((a = 10) AND (abs(b) < 5))
- -> Seq Scan on mcrparted_def mcrparted_1
+ -> Seq Scan on mcrparted_def mcrparted_2
Filter: ((a = 10) AND (abs(b) < 5))
(5 rows)
@@ -1987,11 +1987,11 @@ explain (costs off) select * from mcrparted where a = 10 and abs(b) = 5; -- scan
QUERY PLAN
---------------------------------------------
Append
- -> Seq Scan on mcrparted1 mcrparted
+ -> Seq Scan on mcrparted1 mcrparted_1
Filter: ((a = 10) AND (abs(b) = 5))
- -> Seq Scan on mcrparted2 mcrparted_1
+ -> Seq Scan on mcrparted2 mcrparted_2
Filter: ((a = 10) AND (abs(b) = 5))
- -> Seq Scan on mcrparted_def mcrparted_2
+ -> Seq Scan on mcrparted_def mcrparted_3
Filter: ((a = 10) AND (abs(b) = 5))
(7 rows)
@@ -1999,19 +1999,19 @@ explain (costs off) select * from mcrparted where abs(b) = 5; -- scans all parti
QUERY PLAN
---------------------------------------------
Append
- -> Seq Scan on mcrparted0 mcrparted
+ -> Seq Scan on mcrparted0 mcrparted_1
Filter: (abs(b) = 5)
- -> Seq Scan on mcrparted1 mcrparted_1
+ -> Seq Scan on mcrparted1 mcrparted_2
Filter: (abs(b) = 5)
- -> Seq Scan on mcrparted2 mcrparted_2
+ -> Seq Scan on mcrparted2 mcrparted_3
Filter: (abs(b) = 5)
- -> Seq Scan on mcrparted3 mcrparted_3
+ -> Seq Scan on mcrparted3 mcrparted_4
Filter: (abs(b) = 5)
- -> Seq Scan on mcrparted4 mcrparted_4
+ -> Seq Scan on mcrparted4 mcrparted_5
Filter: (abs(b) = 5)
- -> Seq Scan on mcrparted5 mcrparted_5
+ -> Seq Scan on mcrparted5 mcrparted_6
Filter: (abs(b) = 5)
- -> Seq Scan on mcrparted_def mcrparted_6
+ -> Seq Scan on mcrparted_def mcrparted_7
Filter: (abs(b) = 5)
(15 rows)
@@ -2019,19 +2019,19 @@ explain (costs off) select * from mcrparted where a > -1; -- scans all partition
QUERY PLAN
---------------------------------------------
Append
- -> Seq Scan on mcrparted0 mcrparted
+ -> Seq Scan on mcrparted0 mcrparted_1
Filter: (a > '-1'::integer)
- -> Seq Scan on mcrparted1 mcrparted_1
+ -> Seq Scan on mcrparted1 mcrparted_2
Filter: (a > '-1'::integer)
- -> Seq Scan on mcrparted2 mcrparted_2
+ -> Seq Scan on mcrparted2 mcrparted_3
Filter: (a > '-1'::integer)
- -> Seq Scan on mcrparted3 mcrparted_3
+ -> Seq Scan on mcrparted3 mcrparted_4
Filter: (a > '-1'::integer)
- -> Seq Scan on mcrparted4 mcrparted_4
+ -> Seq Scan on mcrparted4 mcrparted_5
Filter: (a > '-1'::integer)
- -> Seq Scan on mcrparted5 mcrparted_5
+ -> Seq Scan on mcrparted5 mcrparted_6
Filter: (a > '-1'::integer)
- -> Seq Scan on mcrparted_def mcrparted_6
+ -> Seq Scan on mcrparted_def mcrparted_7
Filter: (a > '-1'::integer)
(15 rows)
@@ -2046,13 +2046,13 @@ explain (costs off) select * from mcrparted where a = 20 and c > 20; -- scans mc
QUERY PLAN
---------------------------------------------
Append
- -> Seq Scan on mcrparted3 mcrparted
+ -> Seq Scan on mcrparted3 mcrparted_1
Filter: ((c > 20) AND (a = 20))
- -> Seq Scan on mcrparted4 mcrparted_1
+ -> Seq Scan on mcrparted4 mcrparted_2
Filter: ((c > 20) AND (a = 20))
- -> Seq Scan on mcrparted5 mcrparted_2
+ -> Seq Scan on mcrparted5 mcrparted_3
Filter: ((c > 20) AND (a = 20))
- -> Seq Scan on mcrparted_def mcrparted_3
+ -> Seq Scan on mcrparted_def mcrparted_4
Filter: ((c > 20) AND (a = 20))
(9 rows)
@@ -2092,13 +2092,13 @@ explain (costs off) select * from mcrparted order by a, abs(b), c;
-------------------------------------------------------------------------------
Merge Append
Sort Key: mcrparted.a, (abs(mcrparted.b)), mcrparted.c
- -> Index Scan using mcrparted0_a_abs_c_idx on mcrparted0 mcrparted
- -> Index Scan using mcrparted1_a_abs_c_idx on mcrparted1 mcrparted_1
- -> Index Scan using mcrparted2_a_abs_c_idx on mcrparted2 mcrparted_2
- -> Index Scan using mcrparted3_a_abs_c_idx on mcrparted3 mcrparted_3
- -> Index Scan using mcrparted4_a_abs_c_idx on mcrparted4 mcrparted_4
- -> Index Scan using mcrparted5_a_abs_c_idx on mcrparted5 mcrparted_5
- -> Index Scan using mcrparted_def_a_abs_c_idx on mcrparted_def mcrparted_6
+ -> Index Scan using mcrparted0_a_abs_c_idx on mcrparted0 mcrparted_1
+ -> Index Scan using mcrparted1_a_abs_c_idx on mcrparted1 mcrparted_2
+ -> Index Scan using mcrparted2_a_abs_c_idx on mcrparted2 mcrparted_3
+ -> Index Scan using mcrparted3_a_abs_c_idx on mcrparted3 mcrparted_4
+ -> Index Scan using mcrparted4_a_abs_c_idx on mcrparted4 mcrparted_5
+ -> Index Scan using mcrparted5_a_abs_c_idx on mcrparted5 mcrparted_6
+ -> Index Scan using mcrparted_def_a_abs_c_idx on mcrparted_def mcrparted_7
(9 rows)
drop table mcrparted_def;
@@ -2108,12 +2108,12 @@ explain (costs off) select * from mcrparted order by a, abs(b), c;
QUERY PLAN
-------------------------------------------------------------------------
Append
- -> Index Scan using mcrparted0_a_abs_c_idx on mcrparted0 mcrparted
- -> Index Scan using mcrparted1_a_abs_c_idx on mcrparted1 mcrparted_1
- -> Index Scan using mcrparted2_a_abs_c_idx on mcrparted2 mcrparted_2
- -> Index Scan using mcrparted3_a_abs_c_idx on mcrparted3 mcrparted_3
- -> Index Scan using mcrparted4_a_abs_c_idx on mcrparted4 mcrparted_4
- -> Index Scan using mcrparted5_a_abs_c_idx on mcrparted5 mcrparted_5
+ -> Index Scan using mcrparted0_a_abs_c_idx on mcrparted0 mcrparted_1
+ -> Index Scan using mcrparted1_a_abs_c_idx on mcrparted1 mcrparted_2
+ -> Index Scan using mcrparted2_a_abs_c_idx on mcrparted2 mcrparted_3
+ -> Index Scan using mcrparted3_a_abs_c_idx on mcrparted3 mcrparted_4
+ -> Index Scan using mcrparted4_a_abs_c_idx on mcrparted4 mcrparted_5
+ -> Index Scan using mcrparted5_a_abs_c_idx on mcrparted5 mcrparted_6
(7 rows)
-- Append is used with subpaths in reverse order with backwards index scans
@@ -2121,12 +2121,12 @@ explain (costs off) select * from mcrparted order by a desc, abs(b) desc, c desc
QUERY PLAN
----------------------------------------------------------------------------------
Append
- -> Index Scan Backward using mcrparted5_a_abs_c_idx on mcrparted5 mcrparted_5
- -> Index Scan Backward using mcrparted4_a_abs_c_idx on mcrparted4 mcrparted_4
- -> Index Scan Backward using mcrparted3_a_abs_c_idx on mcrparted3 mcrparted_3
- -> Index Scan Backward using mcrparted2_a_abs_c_idx on mcrparted2 mcrparted_2
- -> Index Scan Backward using mcrparted1_a_abs_c_idx on mcrparted1 mcrparted_1
- -> Index Scan Backward using mcrparted0_a_abs_c_idx on mcrparted0 mcrparted
+ -> Index Scan Backward using mcrparted5_a_abs_c_idx on mcrparted5 mcrparted_6
+ -> Index Scan Backward using mcrparted4_a_abs_c_idx on mcrparted4 mcrparted_5
+ -> Index Scan Backward using mcrparted3_a_abs_c_idx on mcrparted3 mcrparted_4
+ -> Index Scan Backward using mcrparted2_a_abs_c_idx on mcrparted2 mcrparted_3
+ -> Index Scan Backward using mcrparted1_a_abs_c_idx on mcrparted1 mcrparted_2
+ -> Index Scan Backward using mcrparted0_a_abs_c_idx on mcrparted0 mcrparted_1
(7 rows)
-- check that Append plan is used containing a MergeAppend for sub-partitions
@@ -2139,15 +2139,15 @@ explain (costs off) select * from mcrparted order by a, abs(b), c;
QUERY PLAN
---------------------------------------------------------------------------------------
Append
- -> Index Scan using mcrparted0_a_abs_c_idx on mcrparted0 mcrparted
- -> Index Scan using mcrparted1_a_abs_c_idx on mcrparted1 mcrparted_1
- -> Index Scan using mcrparted2_a_abs_c_idx on mcrparted2 mcrparted_2
- -> Index Scan using mcrparted3_a_abs_c_idx on mcrparted3 mcrparted_3
- -> Index Scan using mcrparted4_a_abs_c_idx on mcrparted4 mcrparted_4
+ -> Index Scan using mcrparted0_a_abs_c_idx on mcrparted0 mcrparted_1
+ -> Index Scan using mcrparted1_a_abs_c_idx on mcrparted1 mcrparted_2
+ -> Index Scan using mcrparted2_a_abs_c_idx on mcrparted2 mcrparted_3
+ -> Index Scan using mcrparted3_a_abs_c_idx on mcrparted3 mcrparted_4
+ -> Index Scan using mcrparted4_a_abs_c_idx on mcrparted4 mcrparted_5
-> Merge Append
- Sort Key: mcrparted_5.a, (abs(mcrparted_5.b)), mcrparted_5.c
- -> Index Scan using mcrparted5a_a_abs_c_idx on mcrparted5a mcrparted_5
- -> Index Scan using mcrparted5_def_a_abs_c_idx on mcrparted5_def mcrparted_6
+ Sort Key: mcrparted_7.a, (abs(mcrparted_7.b)), mcrparted_7.c
+ -> Index Scan using mcrparted5a_a_abs_c_idx on mcrparted5a mcrparted_7
+ -> Index Scan using mcrparted5_def_a_abs_c_idx on mcrparted5_def mcrparted_8
(10 rows)
drop table mcrparted5_def;
@@ -2158,12 +2158,12 @@ explain (costs off) select a, abs(b) from mcrparted order by a, abs(b), c;
QUERY PLAN
---------------------------------------------------------------------------
Append
- -> Index Scan using mcrparted0_a_abs_c_idx on mcrparted0 mcrparted
- -> Index Scan using mcrparted1_a_abs_c_idx on mcrparted1 mcrparted_1
- -> Index Scan using mcrparted2_a_abs_c_idx on mcrparted2 mcrparted_2
- -> Index Scan using mcrparted3_a_abs_c_idx on mcrparted3 mcrparted_3
- -> Index Scan using mcrparted4_a_abs_c_idx on mcrparted4 mcrparted_4
- -> Index Scan using mcrparted5a_a_abs_c_idx on mcrparted5a mcrparted_5
+ -> Index Scan using mcrparted0_a_abs_c_idx on mcrparted0 mcrparted_1
+ -> Index Scan using mcrparted1_a_abs_c_idx on mcrparted1 mcrparted_2
+ -> Index Scan using mcrparted2_a_abs_c_idx on mcrparted2 mcrparted_3
+ -> Index Scan using mcrparted3_a_abs_c_idx on mcrparted3 mcrparted_4
+ -> Index Scan using mcrparted4_a_abs_c_idx on mcrparted4 mcrparted_5
+ -> Index Scan using mcrparted5a_a_abs_c_idx on mcrparted5a mcrparted_6
(7 rows)
-- check that Append is used when the sub-partitioned tables are pruned
@@ -2172,13 +2172,13 @@ explain (costs off) select * from mcrparted where a < 20 order by a, abs(b), c;
QUERY PLAN
-------------------------------------------------------------------------
Append
- -> Index Scan using mcrparted0_a_abs_c_idx on mcrparted0 mcrparted
+ -> Index Scan using mcrparted0_a_abs_c_idx on mcrparted0 mcrparted_1
Index Cond: (a < 20)
- -> Index Scan using mcrparted1_a_abs_c_idx on mcrparted1 mcrparted_1
+ -> Index Scan using mcrparted1_a_abs_c_idx on mcrparted1 mcrparted_2
Index Cond: (a < 20)
- -> Index Scan using mcrparted2_a_abs_c_idx on mcrparted2 mcrparted_2
+ -> Index Scan using mcrparted2_a_abs_c_idx on mcrparted2 mcrparted_3
Index Cond: (a < 20)
- -> Index Scan using mcrparted3_a_abs_c_idx on mcrparted3 mcrparted_3
+ -> Index Scan using mcrparted3_a_abs_c_idx on mcrparted3 mcrparted_4
Index Cond: (a < 20)
(9 rows)
@@ -2191,8 +2191,8 @@ explain (costs off) select * from mclparted order by a;
QUERY PLAN
------------------------------------------------------------------------
Append
- -> Index Only Scan using mclparted1_a_idx on mclparted1 mclparted
- -> Index Only Scan using mclparted2_a_idx on mclparted2 mclparted_1
+ -> Index Only Scan using mclparted1_a_idx on mclparted1 mclparted_1
+ -> Index Only Scan using mclparted2_a_idx on mclparted2 mclparted_2
(3 rows)
-- Ensure a MergeAppend is used when a partition exists with interleaved
@@ -2204,10 +2204,10 @@ explain (costs off) select * from mclparted order by a;
----------------------------------------------------------------------------
Merge Append
Sort Key: mclparted.a
- -> Index Only Scan using mclparted1_a_idx on mclparted1 mclparted
- -> Index Only Scan using mclparted2_a_idx on mclparted2 mclparted_1
- -> Index Only Scan using mclparted3_5_a_idx on mclparted3_5 mclparted_2
- -> Index Only Scan using mclparted4_a_idx on mclparted4 mclparted_3
+ -> Index Only Scan using mclparted1_a_idx on mclparted1 mclparted_1
+ -> Index Only Scan using mclparted2_a_idx on mclparted2 mclparted_2
+ -> Index Only Scan using mclparted3_5_a_idx on mclparted3_5 mclparted_3
+ -> Index Only Scan using mclparted4_a_idx on mclparted4 mclparted_4
(6 rows)
drop table mclparted;
@@ -2224,14 +2224,14 @@ explain (costs off) select * from mcrparted where a < 20 order by a, abs(b), c l
Limit
-> Append
-> Sort
- Sort Key: mcrparted.a, (abs(mcrparted.b)), mcrparted.c
- -> Seq Scan on mcrparted0 mcrparted
+ Sort Key: mcrparted_1.a, (abs(mcrparted_1.b)), mcrparted_1.c
+ -> Seq Scan on mcrparted0 mcrparted_1
Filter: (a < 20)
- -> Index Scan using mcrparted1_a_abs_c_idx on mcrparted1 mcrparted_1
+ -> Index Scan using mcrparted1_a_abs_c_idx on mcrparted1 mcrparted_2
Index Cond: (a < 20)
- -> Index Scan using mcrparted2_a_abs_c_idx on mcrparted2 mcrparted_2
+ -> Index Scan using mcrparted2_a_abs_c_idx on mcrparted2 mcrparted_3
Index Cond: (a < 20)
- -> Index Scan using mcrparted3_a_abs_c_idx on mcrparted3 mcrparted_3
+ -> Index Scan using mcrparted3_a_abs_c_idx on mcrparted3 mcrparted_4
Index Cond: (a < 20)
(12 rows)
@@ -2242,9 +2242,9 @@ explain (costs off) select * from mcrparted where a = 10 order by a, abs(b), c;
QUERY PLAN
-------------------------------------------------------------------------
Append
- -> Index Scan using mcrparted1_a_abs_c_idx on mcrparted1 mcrparted
+ -> Index Scan using mcrparted1_a_abs_c_idx on mcrparted1 mcrparted_1
Index Cond: (a = 10)
- -> Index Scan using mcrparted2_a_abs_c_idx on mcrparted2 mcrparted_1
+ -> Index Scan using mcrparted2_a_abs_c_idx on mcrparted2 mcrparted_2
Index Cond: (a = 10)
(5 rows)
@@ -2256,11 +2256,11 @@ create table bool_lp_true partition of bool_lp for values in(true);
create table bool_lp_false partition of bool_lp for values in(false);
create index on bool_lp (b);
explain (costs off) select * from bool_lp order by b;
- QUERY PLAN
---------------------------------------------------------------------------
+ QUERY PLAN
+----------------------------------------------------------------------------
Append
- -> Index Only Scan using bool_lp_false_b_idx on bool_lp_false bool_lp
- -> Index Only Scan using bool_lp_true_b_idx on bool_lp_true bool_lp_1
+ -> Index Only Scan using bool_lp_false_b_idx on bool_lp_false bool_lp_1
+ -> Index Only Scan using bool_lp_true_b_idx on bool_lp_true bool_lp_2
(3 rows)
drop table bool_lp;
@@ -2275,9 +2275,9 @@ explain (costs off) select * from bool_rp where b = true order by b,a;
QUERY PLAN
----------------------------------------------------------------------------------
Append
- -> Index Only Scan using bool_rp_true_1k_b_a_idx on bool_rp_true_1k bool_rp
+ -> Index Only Scan using bool_rp_true_1k_b_a_idx on bool_rp_true_1k bool_rp_1
Index Cond: (b = true)
- -> Index Only Scan using bool_rp_true_2k_b_a_idx on bool_rp_true_2k bool_rp_1
+ -> Index Only Scan using bool_rp_true_2k_b_a_idx on bool_rp_true_2k bool_rp_2
Index Cond: (b = true)
(5 rows)
@@ -2285,9 +2285,9 @@ explain (costs off) select * from bool_rp where b = false order by b,a;
QUERY PLAN
------------------------------------------------------------------------------------
Append
- -> Index Only Scan using bool_rp_false_1k_b_a_idx on bool_rp_false_1k bool_rp
+ -> Index Only Scan using bool_rp_false_1k_b_a_idx on bool_rp_false_1k bool_rp_1
Index Cond: (b = false)
- -> Index Only Scan using bool_rp_false_2k_b_a_idx on bool_rp_false_2k bool_rp_1
+ -> Index Only Scan using bool_rp_false_2k_b_a_idx on bool_rp_false_2k bool_rp_2
Index Cond: (b = false)
(5 rows)
@@ -2295,9 +2295,9 @@ explain (costs off) select * from bool_rp where b = true order by a;
QUERY PLAN
----------------------------------------------------------------------------------
Append
- -> Index Only Scan using bool_rp_true_1k_b_a_idx on bool_rp_true_1k bool_rp
+ -> Index Only Scan using bool_rp_true_1k_b_a_idx on bool_rp_true_1k bool_rp_1
Index Cond: (b = true)
- -> Index Only Scan using bool_rp_true_2k_b_a_idx on bool_rp_true_2k bool_rp_1
+ -> Index Only Scan using bool_rp_true_2k_b_a_idx on bool_rp_true_2k bool_rp_2
Index Cond: (b = true)
(5 rows)
@@ -2305,9 +2305,9 @@ explain (costs off) select * from bool_rp where b = false order by a;
QUERY PLAN
------------------------------------------------------------------------------------
Append
- -> Index Only Scan using bool_rp_false_1k_b_a_idx on bool_rp_false_1k bool_rp
+ -> Index Only Scan using bool_rp_false_1k_b_a_idx on bool_rp_false_1k bool_rp_1
Index Cond: (b = false)
- -> Index Only Scan using bool_rp_false_2k_b_a_idx on bool_rp_false_2k bool_rp_1
+ -> Index Only Scan using bool_rp_false_2k_b_a_idx on bool_rp_false_2k bool_rp_2
Index Cond: (b = false)
(5 rows)
@@ -2322,16 +2322,16 @@ explain (costs off) select * from range_parted order by a,b,c;
QUERY PLAN
-------------------------------------------------------------------------------------
Append
- -> Index Only Scan using range_parted1_a_b_c_idx on range_parted1 range_parted
- -> Index Only Scan using range_parted2_a_b_c_idx on range_parted2 range_parted_1
+ -> Index Only Scan using range_parted1_a_b_c_idx on range_parted1 range_parted_1
+ -> Index Only Scan using range_parted2_a_b_c_idx on range_parted2 range_parted_2
(3 rows)
explain (costs off) select * from range_parted order by a desc,b desc,c desc;
QUERY PLAN
----------------------------------------------------------------------------------------------
Append
- -> Index Only Scan Backward using range_parted2_a_b_c_idx on range_parted2 range_parted_1
- -> Index Only Scan Backward using range_parted1_a_b_c_idx on range_parted1 range_parted
+ -> Index Only Scan Backward using range_parted2_a_b_c_idx on range_parted2 range_parted_2
+ -> Index Only Scan Backward using range_parted1_a_b_c_idx on range_parted1 range_parted_1
(3 rows)
drop table range_parted;
diff --git a/src/test/regress/expected/join.out b/src/test/regress/expected/join.out
index b58d560163b..1a08e6321d7 100644
--- a/src/test/regress/expected/join.out
+++ b/src/test/regress/expected/join.out
@@ -5779,8 +5779,8 @@ select t1.b, ss.phv from join_ut1 t1 left join lateral
(select t2.a as t2a, t3.a t3a, least(t1.a, t2.a, t3.a) phv
from join_pt1 t2 join join_ut1 t3 on t2.a = t3.b) ss
on t1.a = ss.t2a order by t1.a;
- QUERY PLAN
-------------------------------------------------------------------
+ QUERY PLAN
+--------------------------------------------------------------------
Sort
Output: t1.b, (LEAST(t1.a, t2.a, t3.a)), t1.a
Sort Key: t1.a
@@ -5796,12 +5796,12 @@ select t1.b, ss.phv from join_ut1 t1 left join lateral
-> Hash
Output: t2.a
-> Append
- -> Seq Scan on public.join_pt1p1p1 t2
- Output: t2.a
- Filter: (t1.a = t2.a)
- -> Seq Scan on public.join_pt1p2 t2_1
+ -> Seq Scan on public.join_pt1p1p1 t2_1
Output: t2_1.a
Filter: (t1.a = t2_1.a)
+ -> Seq Scan on public.join_pt1p2 t2_2
+ Output: t2_2.a
+ Filter: (t1.a = t2_2.a)
(21 rows)
select t1.b, ss.phv from join_ut1 t1 left join lateral
diff --git a/src/test/regress/expected/partition_aggregate.out b/src/test/regress/expected/partition_aggregate.out
index b3fec2a21cb..fbc8d3ac6c4 100644
--- a/src/test/regress/expected/partition_aggregate.out
+++ b/src/test/regress/expected/partition_aggregate.out
@@ -343,9 +343,9 @@ SELECT c, sum(a) FROM pagg_tab GROUP BY rollup(c) ORDER BY 1, 2;
Hash Key: pagg_tab.c
Group Key: ()
-> Append
- -> Seq Scan on pagg_tab_p1 pagg_tab
- -> Seq Scan on pagg_tab_p2 pagg_tab_1
- -> Seq Scan on pagg_tab_p3 pagg_tab_2
+ -> Seq Scan on pagg_tab_p1 pagg_tab_1
+ -> Seq Scan on pagg_tab_p2 pagg_tab_2
+ -> Seq Scan on pagg_tab_p3 pagg_tab_3
(9 rows)
-- ORDERED SET within the aggregate.
@@ -390,9 +390,9 @@ SELECT a, sum(b order by a) FROM pagg_tab GROUP BY a ORDER BY 1, 2;
-> Sort
Sort Key: pagg_tab.a
-> Append
- -> Seq Scan on pagg_tab_p1 pagg_tab
- -> Seq Scan on pagg_tab_p2 pagg_tab_1
- -> Seq Scan on pagg_tab_p3 pagg_tab_2
+ -> Seq Scan on pagg_tab_p1 pagg_tab_1
+ -> Seq Scan on pagg_tab_p2 pagg_tab_2
+ -> Seq Scan on pagg_tab_p3 pagg_tab_3
(10 rows)
-- JOIN query
@@ -461,14 +461,14 @@ SELECT t1.x, sum(t1.y), count(t1) FROM pagg_tab1 t1, pagg_tab2 t2 WHERE t1.x = t
-> Hash Join
Hash Cond: (t1.x = t2.y)
-> Append
- -> Seq Scan on pagg_tab1_p1 t1
- -> Seq Scan on pagg_tab1_p2 t1_1
- -> Seq Scan on pagg_tab1_p3 t1_2
+ -> Seq Scan on pagg_tab1_p1 t1_1
+ -> Seq Scan on pagg_tab1_p2 t1_2
+ -> Seq Scan on pagg_tab1_p3 t1_3
-> Hash
-> Append
- -> Seq Scan on pagg_tab2_p1 t2
- -> Seq Scan on pagg_tab2_p2 t2_1
- -> Seq Scan on pagg_tab2_p3 t2_2
+ -> Seq Scan on pagg_tab2_p1 t2_1
+ -> Seq Scan on pagg_tab2_p2 t2_2
+ -> Seq Scan on pagg_tab2_p3 t2_3
(15 rows)
SELECT t1.x, sum(t1.y), count(t1) FROM pagg_tab1 t1, pagg_tab2 t2 WHERE t1.x = t2.y GROUP BY t1.x ORDER BY 1, 2, 3;
@@ -732,15 +732,15 @@ SELECT a.x, b.y, count(*) FROM (SELECT * FROM pagg_tab1 WHERE x < 20) a LEFT JOI
Hash Cond: (pagg_tab1.x = pagg_tab2.y)
Filter: ((pagg_tab1.x > 5) OR (pagg_tab2.y < 20))
-> Append
- -> Seq Scan on pagg_tab1_p1 pagg_tab1
+ -> Seq Scan on pagg_tab1_p1 pagg_tab1_1
Filter: (x < 20)
- -> Seq Scan on pagg_tab1_p2 pagg_tab1_1
+ -> Seq Scan on pagg_tab1_p2 pagg_tab1_2
Filter: (x < 20)
-> Hash
-> Append
- -> Seq Scan on pagg_tab2_p2 pagg_tab2
+ -> Seq Scan on pagg_tab2_p2 pagg_tab2_1
Filter: (y > 10)
- -> Seq Scan on pagg_tab2_p3 pagg_tab2_1
+ -> Seq Scan on pagg_tab2_p3 pagg_tab2_2
Filter: (y > 10)
(18 rows)
@@ -772,15 +772,15 @@ SELECT a.x, b.y, count(*) FROM (SELECT * FROM pagg_tab1 WHERE x < 20) a FULL JOI
Hash Cond: (pagg_tab1.x = pagg_tab2.y)
Filter: ((pagg_tab1.x > 5) OR (pagg_tab2.y < 20))
-> Append
- -> Seq Scan on pagg_tab1_p1 pagg_tab1
+ -> Seq Scan on pagg_tab1_p1 pagg_tab1_1
Filter: (x < 20)
- -> Seq Scan on pagg_tab1_p2 pagg_tab1_1
+ -> Seq Scan on pagg_tab1_p2 pagg_tab1_2
Filter: (x < 20)
-> Hash
-> Append
- -> Seq Scan on pagg_tab2_p2 pagg_tab2
+ -> Seq Scan on pagg_tab2_p2 pagg_tab2_1
Filter: (y > 10)
- -> Seq Scan on pagg_tab2_p3 pagg_tab2_1
+ -> Seq Scan on pagg_tab2_p3 pagg_tab2_2
Filter: (y > 10)
(18 rows)
@@ -946,26 +946,26 @@ SELECT a, sum(b), array_agg(distinct c), count(*) FROM pagg_tab_ml GROUP BY a HA
QUERY PLAN
--------------------------------------------------------------------------------------------
Sort
- Sort Key: pagg_tab_ml_1.a, (sum(pagg_tab_ml_1.b)), (array_agg(DISTINCT pagg_tab_ml_1.c))
+ Sort Key: pagg_tab_ml_2.a, (sum(pagg_tab_ml_2.b)), (array_agg(DISTINCT pagg_tab_ml_2.c))
-> Gather
Workers Planned: 2
-> Parallel Append
-> GroupAggregate
- Group Key: pagg_tab_ml_1.a
- Filter: (avg(pagg_tab_ml_1.b) < '3'::numeric)
+ Group Key: pagg_tab_ml_2.a
+ Filter: (avg(pagg_tab_ml_2.b) < '3'::numeric)
-> Sort
- Sort Key: pagg_tab_ml_1.a
+ Sort Key: pagg_tab_ml_2.a
-> Append
- -> Seq Scan on pagg_tab_ml_p2_s1 pagg_tab_ml_1
- -> Seq Scan on pagg_tab_ml_p2_s2 pagg_tab_ml_2
+ -> Seq Scan on pagg_tab_ml_p2_s1 pagg_tab_ml_2
+ -> Seq Scan on pagg_tab_ml_p2_s2 pagg_tab_ml_3
-> GroupAggregate
- Group Key: pagg_tab_ml_3.a
- Filter: (avg(pagg_tab_ml_3.b) < '3'::numeric)
+ Group Key: pagg_tab_ml_5.a
+ Filter: (avg(pagg_tab_ml_5.b) < '3'::numeric)
-> Sort
- Sort Key: pagg_tab_ml_3.a
+ Sort Key: pagg_tab_ml_5.a
-> Append
- -> Seq Scan on pagg_tab_ml_p3_s1 pagg_tab_ml_3
- -> Seq Scan on pagg_tab_ml_p3_s2 pagg_tab_ml_4
+ -> Seq Scan on pagg_tab_ml_p3_s1 pagg_tab_ml_5
+ -> Seq Scan on pagg_tab_ml_p3_s2 pagg_tab_ml_6
-> GroupAggregate
Group Key: pagg_tab_ml.a
Filter: (avg(pagg_tab_ml.b) < '3'::numeric)
@@ -997,21 +997,21 @@ SELECT a, sum(b), array_agg(distinct c), count(*) FROM pagg_tab_ml GROUP BY a HA
Workers Planned: 2
-> Parallel Append
-> GroupAggregate
- Group Key: pagg_tab_ml_1.a
- Filter: (avg(pagg_tab_ml_1.b) < '3'::numeric)
+ Group Key: pagg_tab_ml_2.a
+ Filter: (avg(pagg_tab_ml_2.b) < '3'::numeric)
-> Sort
- Sort Key: pagg_tab_ml_1.a
+ Sort Key: pagg_tab_ml_2.a
-> Append
- -> Seq Scan on pagg_tab_ml_p2_s1 pagg_tab_ml_1
- -> Seq Scan on pagg_tab_ml_p2_s2 pagg_tab_ml_2
+ -> Seq Scan on pagg_tab_ml_p2_s1 pagg_tab_ml_2
+ -> Seq Scan on pagg_tab_ml_p2_s2 pagg_tab_ml_3
-> GroupAggregate
- Group Key: pagg_tab_ml_3.a
- Filter: (avg(pagg_tab_ml_3.b) < '3'::numeric)
+ Group Key: pagg_tab_ml_5.a
+ Filter: (avg(pagg_tab_ml_5.b) < '3'::numeric)
-> Sort
- Sort Key: pagg_tab_ml_3.a
+ Sort Key: pagg_tab_ml_5.a
-> Append
- -> Seq Scan on pagg_tab_ml_p3_s1 pagg_tab_ml_3
- -> Seq Scan on pagg_tab_ml_p3_s2 pagg_tab_ml_4
+ -> Seq Scan on pagg_tab_ml_p3_s1 pagg_tab_ml_5
+ -> Seq Scan on pagg_tab_ml_p3_s2 pagg_tab_ml_6
-> GroupAggregate
Group Key: pagg_tab_ml.a
Filter: (avg(pagg_tab_ml.b) < '3'::numeric)
@@ -1035,29 +1035,29 @@ SELECT a, sum(b), count(*) FROM pagg_tab_ml GROUP BY a HAVING avg(b) < 3 ORDER B
Filter: (avg(pagg_tab_ml.b) < '3'::numeric)
-> Seq Scan on pagg_tab_ml_p1 pagg_tab_ml
-> Finalize GroupAggregate
- Group Key: pagg_tab_ml_1.a
- Filter: (avg(pagg_tab_ml_1.b) < '3'::numeric)
+ Group Key: pagg_tab_ml_2.a
+ Filter: (avg(pagg_tab_ml_2.b) < '3'::numeric)
-> Sort
- Sort Key: pagg_tab_ml_1.a
+ Sort Key: pagg_tab_ml_2.a
-> Append
-> Partial HashAggregate
- Group Key: pagg_tab_ml_1.a
- -> Seq Scan on pagg_tab_ml_p2_s1 pagg_tab_ml_1
- -> Partial HashAggregate
Group Key: pagg_tab_ml_2.a
- -> Seq Scan on pagg_tab_ml_p2_s2 pagg_tab_ml_2
+ -> Seq Scan on pagg_tab_ml_p2_s1 pagg_tab_ml_2
+ -> Partial HashAggregate
+ Group Key: pagg_tab_ml_3.a
+ -> Seq Scan on pagg_tab_ml_p2_s2 pagg_tab_ml_3
-> Finalize GroupAggregate
- Group Key: pagg_tab_ml_3.a
- Filter: (avg(pagg_tab_ml_3.b) < '3'::numeric)
+ Group Key: pagg_tab_ml_5.a
+ Filter: (avg(pagg_tab_ml_5.b) < '3'::numeric)
-> Sort
- Sort Key: pagg_tab_ml_3.a
+ Sort Key: pagg_tab_ml_5.a
-> Append
-> Partial HashAggregate
- Group Key: pagg_tab_ml_3.a
- -> Seq Scan on pagg_tab_ml_p3_s1 pagg_tab_ml_3
+ Group Key: pagg_tab_ml_5.a
+ -> Seq Scan on pagg_tab_ml_p3_s1 pagg_tab_ml_5
-> Partial HashAggregate
- Group Key: pagg_tab_ml_4.a
- -> Seq Scan on pagg_tab_ml_p3_s2 pagg_tab_ml_4
+ Group Key: pagg_tab_ml_6.a
+ -> Seq Scan on pagg_tab_ml_p3_s2 pagg_tab_ml_6
(31 rows)
SELECT a, sum(b), count(*) FROM pagg_tab_ml GROUP BY a HAVING avg(b) < 3 ORDER BY 1, 2, 3;
@@ -1185,33 +1185,33 @@ SELECT a, sum(b), count(*) FROM pagg_tab_ml GROUP BY a HAVING avg(b) < 3 ORDER B
Group Key: pagg_tab_ml.a
-> Parallel Seq Scan on pagg_tab_ml_p1 pagg_tab_ml
-> Finalize GroupAggregate
- Group Key: pagg_tab_ml_1.a
- Filter: (avg(pagg_tab_ml_1.b) < '3'::numeric)
+ Group Key: pagg_tab_ml_2.a
+ Filter: (avg(pagg_tab_ml_2.b) < '3'::numeric)
-> Gather Merge
Workers Planned: 2
-> Sort
- Sort Key: pagg_tab_ml_1.a
+ Sort Key: pagg_tab_ml_2.a
-> Parallel Append
-> Partial HashAggregate
- Group Key: pagg_tab_ml_1.a
- -> Parallel Seq Scan on pagg_tab_ml_p2_s1 pagg_tab_ml_1
- -> Partial HashAggregate
Group Key: pagg_tab_ml_2.a
- -> Parallel Seq Scan on pagg_tab_ml_p2_s2 pagg_tab_ml_2
+ -> Parallel Seq Scan on pagg_tab_ml_p2_s1 pagg_tab_ml_2
+ -> Partial HashAggregate
+ Group Key: pagg_tab_ml_3.a
+ -> Parallel Seq Scan on pagg_tab_ml_p2_s2 pagg_tab_ml_3
-> Finalize GroupAggregate
- Group Key: pagg_tab_ml_3.a
- Filter: (avg(pagg_tab_ml_3.b) < '3'::numeric)
+ Group Key: pagg_tab_ml_5.a
+ Filter: (avg(pagg_tab_ml_5.b) < '3'::numeric)
-> Gather Merge
Workers Planned: 2
-> Sort
- Sort Key: pagg_tab_ml_3.a
+ Sort Key: pagg_tab_ml_5.a
-> Parallel Append
-> Partial HashAggregate
- Group Key: pagg_tab_ml_3.a
- -> Parallel Seq Scan on pagg_tab_ml_p3_s1 pagg_tab_ml_3
+ Group Key: pagg_tab_ml_5.a
+ -> Parallel Seq Scan on pagg_tab_ml_p3_s1 pagg_tab_ml_5
-> Partial HashAggregate
- Group Key: pagg_tab_ml_4.a
- -> Parallel Seq Scan on pagg_tab_ml_p3_s2 pagg_tab_ml_4
+ Group Key: pagg_tab_ml_6.a
+ -> Parallel Seq Scan on pagg_tab_ml_p3_s2 pagg_tab_ml_6
(41 rows)
SELECT a, sum(b), count(*) FROM pagg_tab_ml GROUP BY a HAVING avg(b) < 3 ORDER BY 1, 2, 3;
@@ -1426,9 +1426,9 @@ SELECT x, sum(y), avg(y), count(*) FROM pagg_tab_para GROUP BY x HAVING avg(y) <
-> Partial HashAggregate
Group Key: pagg_tab_para.x
-> Parallel Append
- -> Seq Scan on pagg_tab_para_p1 pagg_tab_para
- -> Seq Scan on pagg_tab_para_p3 pagg_tab_para_2
- -> Parallel Seq Scan on pagg_tab_para_p2 pagg_tab_para_1
+ -> Seq Scan on pagg_tab_para_p1 pagg_tab_para_1
+ -> Seq Scan on pagg_tab_para_p3 pagg_tab_para_3
+ -> Parallel Seq Scan on pagg_tab_para_p2 pagg_tab_para_2
(15 rows)
SELECT x, sum(y), avg(y), count(*) FROM pagg_tab_para GROUP BY x HAVING avg(y) < 7 ORDER BY 1, 2, 3;
@@ -1460,9 +1460,9 @@ SELECT x, sum(y), avg(y), count(*) FROM pagg_tab_para GROUP BY x HAVING avg(y) <
-> Partial HashAggregate
Group Key: pagg_tab_para.x
-> Parallel Append
- -> Seq Scan on pagg_tab_para_p1 pagg_tab_para
- -> Seq Scan on pagg_tab_para_p2 pagg_tab_para_1
- -> Seq Scan on pagg_tab_para_p3 pagg_tab_para_2
+ -> Seq Scan on pagg_tab_para_p1 pagg_tab_para_1
+ -> Seq Scan on pagg_tab_para_p2 pagg_tab_para_2
+ -> Seq Scan on pagg_tab_para_p3 pagg_tab_para_3
(15 rows)
SELECT x, sum(y), avg(y), count(*) FROM pagg_tab_para GROUP BY x HAVING avg(y) < 7 ORDER BY 1, 2, 3;
diff --git a/src/test/regress/expected/partition_join.out b/src/test/regress/expected/partition_join.out
index 8e7127e586d..8e475bf4492 100644
--- a/src/test/regress/expected/partition_join.out
+++ b/src/test/regress/expected/partition_join.out
@@ -34,22 +34,22 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1 t1, prt2 t2 WHERE t1.a = t2.b AND t1.b =
Sort Key: t1.a
-> Append
-> Hash Join
- Hash Cond: (t2.b = t1.a)
- -> Seq Scan on prt2_p1 t2
+ Hash Cond: (t2_1.b = t1_1.a)
+ -> Seq Scan on prt2_p1 t2_1
-> Hash
- -> Seq Scan on prt1_p1 t1
+ -> Seq Scan on prt1_p1 t1_1
Filter: (b = 0)
-> Hash Join
- Hash Cond: (t2_1.b = t1_1.a)
- -> Seq Scan on prt2_p2 t2_1
+ Hash Cond: (t2_2.b = t1_2.a)
+ -> Seq Scan on prt2_p2 t2_2
-> Hash
- -> Seq Scan on prt1_p2 t1_1
+ -> Seq Scan on prt1_p2 t1_2
Filter: (b = 0)
-> Hash Join
- Hash Cond: (t2_2.b = t1_2.a)
- -> Seq Scan on prt2_p3 t2_2
+ Hash Cond: (t2_3.b = t1_3.a)
+ -> Seq Scan on prt2_p3 t2_3
-> Hash
- -> Seq Scan on prt1_p3 t1_2
+ -> Seq Scan on prt1_p3 t1_3
Filter: (b = 0)
(21 rows)
@@ -72,16 +72,16 @@ SELECT t1, t2 FROM prt1 t1 LEFT JOIN prt2 t2 ON t1.a = t2.b WHERE t1.b = 0 ORDER
-> Hash Right Join
Hash Cond: (t2.b = t1.a)
-> Append
- -> Seq Scan on prt2_p1 t2
- -> Seq Scan on prt2_p2 t2_1
- -> Seq Scan on prt2_p3 t2_2
+ -> Seq Scan on prt2_p1 t2_1
+ -> Seq Scan on prt2_p2 t2_2
+ -> Seq Scan on prt2_p3 t2_3
-> Hash
-> Append
- -> Seq Scan on prt1_p1 t1
+ -> Seq Scan on prt1_p1 t1_1
Filter: (b = 0)
- -> Seq Scan on prt1_p2 t1_1
+ -> Seq Scan on prt1_p2 t1_2
Filter: (b = 0)
- -> Seq Scan on prt1_p3 t1_2
+ -> Seq Scan on prt1_p3 t1_3
Filter: (b = 0)
(16 rows)
@@ -111,22 +111,22 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1 t1 RIGHT JOIN prt2 t2 ON t1.a = t2.b WHE
Sort Key: t1.a, t2.b
-> Append
-> Hash Right Join
- Hash Cond: (t1.a = t2.b)
- -> Seq Scan on prt1_p1 t1
+ Hash Cond: (t1_1.a = t2_1.b)
+ -> Seq Scan on prt1_p1 t1_1
-> Hash
- -> Seq Scan on prt2_p1 t2
+ -> Seq Scan on prt2_p1 t2_1
Filter: (a = 0)
-> Hash Right Join
- Hash Cond: (t1_1.a = t2_1.b)
- -> Seq Scan on prt1_p2 t1_1
+ Hash Cond: (t1_2.a = t2_2.b)
+ -> Seq Scan on prt1_p2 t1_2
-> Hash
- -> Seq Scan on prt2_p2 t2_1
+ -> Seq Scan on prt2_p2 t2_2
Filter: (a = 0)
-> Nested Loop Left Join
- -> Seq Scan on prt2_p3 t2_2
+ -> Seq Scan on prt2_p3 t2_3
Filter: (a = 0)
- -> Index Scan using iprt1_p3_a on prt1_p3 t1_2
- Index Cond: (a = t2_2.b)
+ -> Index Scan using iprt1_p3_a on prt1_p3 t1_3
+ Index Cond: (a = t2_3.b)
(20 rows)
SELECT t1.a, t1.c, t2.b, t2.c FROM prt1 t1 RIGHT JOIN prt2 t2 ON t1.a = t2.b WHERE t2.a = 0 ORDER BY t1.a, t2.b;
@@ -151,28 +151,28 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM (SELECT 50 phv, * FROM prt1 WHERE prt1.b = 0)
Sort Key: prt1.a, prt2.b
-> Append
-> Hash Full Join
- Hash Cond: (prt1.a = prt2.b)
- Filter: (((50) = prt1.a) OR ((75) = prt2.b))
- -> Seq Scan on prt1_p1 prt1
- Filter: (b = 0)
- -> Hash
- -> Seq Scan on prt2_p1 prt2
- Filter: (a = 0)
- -> Hash Full Join
Hash Cond: (prt1_1.a = prt2_1.b)
Filter: (((50) = prt1_1.a) OR ((75) = prt2_1.b))
- -> Seq Scan on prt1_p2 prt1_1
+ -> Seq Scan on prt1_p1 prt1_1
Filter: (b = 0)
-> Hash
- -> Seq Scan on prt2_p2 prt2_1
+ -> Seq Scan on prt2_p1 prt2_1
Filter: (a = 0)
-> Hash Full Join
Hash Cond: (prt1_2.a = prt2_2.b)
Filter: (((50) = prt1_2.a) OR ((75) = prt2_2.b))
- -> Seq Scan on prt1_p3 prt1_2
+ -> Seq Scan on prt1_p2 prt1_2
Filter: (b = 0)
-> Hash
- -> Seq Scan on prt2_p3 prt2_2
+ -> Seq Scan on prt2_p2 prt2_2
+ Filter: (a = 0)
+ -> Hash Full Join
+ Hash Cond: (prt1_3.a = prt2_3.b)
+ Filter: (((50) = prt1_3.a) OR ((75) = prt2_3.b))
+ -> Seq Scan on prt1_p3 prt1_3
+ Filter: (b = 0)
+ -> Hash
+ -> Seq Scan on prt2_p3 prt2_3
Filter: (a = 0)
(27 rows)
@@ -215,15 +215,15 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM (SELECT * FROM prt1 WHERE a < 450) t1 LEFT JO
-> Hash Right Join
Hash Cond: (prt2.b = prt1.a)
-> Append
- -> Seq Scan on prt2_p2 prt2
+ -> Seq Scan on prt2_p2 prt2_1
Filter: (b > 250)
- -> Seq Scan on prt2_p3 prt2_1
+ -> Seq Scan on prt2_p3 prt2_2
Filter: (b > 250)
-> Hash
-> Append
- -> Seq Scan on prt1_p1 prt1
+ -> Seq Scan on prt1_p1 prt1_1
Filter: ((a < 450) AND (b = 0))
- -> Seq Scan on prt1_p2 prt1_1
+ -> Seq Scan on prt1_p2 prt1_2
Filter: ((a < 450) AND (b = 0))
(15 rows)
@@ -252,15 +252,15 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM (SELECT * FROM prt1 WHERE a < 450) t1 FULL JO
Hash Cond: (prt1.a = prt2.b)
Filter: ((prt1.b = 0) OR (prt2.a = 0))
-> Append
- -> Seq Scan on prt1_p1 prt1
+ -> Seq Scan on prt1_p1 prt1_1
Filter: (a < 450)
- -> Seq Scan on prt1_p2 prt1_1
+ -> Seq Scan on prt1_p2 prt1_2
Filter: (a < 450)
-> Hash
-> Append
- -> Seq Scan on prt2_p2 prt2
+ -> Seq Scan on prt2_p2 prt2_1
Filter: (b > 250)
- -> Seq Scan on prt2_p3 prt2_1
+ -> Seq Scan on prt2_p3 prt2_2
Filter: (b > 250)
(16 rows)
@@ -290,25 +290,25 @@ SELECT t1.* FROM prt1 t1 WHERE t1.a IN (SELECT t2.b FROM prt2 t2 WHERE t2.a = 0)
Sort Key: t1.a
-> Append
-> Hash Semi Join
- Hash Cond: (t1.a = t2.b)
- -> Seq Scan on prt1_p1 t1
+ Hash Cond: (t1_1.a = t2_1.b)
+ -> Seq Scan on prt1_p1 t1_1
Filter: (b = 0)
-> Hash
- -> Seq Scan on prt2_p1 t2
+ -> Seq Scan on prt2_p1 t2_1
Filter: (a = 0)
-> Hash Semi Join
- Hash Cond: (t1_1.a = t2_1.b)
- -> Seq Scan on prt1_p2 t1_1
+ Hash Cond: (t1_2.a = t2_2.b)
+ -> Seq Scan on prt1_p2 t1_2
Filter: (b = 0)
-> Hash
- -> Seq Scan on prt2_p2 t2_1
+ -> Seq Scan on prt2_p2 t2_2
Filter: (a = 0)
-> Nested Loop Semi Join
- Join Filter: (t1_2.a = t2_2.b)
- -> Seq Scan on prt1_p3 t1_2
+ Join Filter: (t1_3.a = t2_3.b)
+ -> Seq Scan on prt1_p3 t1_3
Filter: (b = 0)
-> Materialize
- -> Seq Scan on prt2_p3 t2_2
+ -> Seq Scan on prt2_p3 t2_3
Filter: (a = 0)
(24 rows)
@@ -329,20 +329,20 @@ SELECT sum(t1.a), avg(t1.a), sum(t1.b), avg(t1.b) FROM prt1 t1 WHERE NOT EXISTS
Aggregate
-> Append
-> Hash Anti Join
- Hash Cond: (t1.a = t2.b)
- -> Seq Scan on prt1_p1 t1
- -> Hash
- -> Seq Scan on prt2_p1 t2
- -> Hash Anti Join
Hash Cond: (t1_1.a = t2_1.b)
- -> Seq Scan on prt1_p2 t1_1
+ -> Seq Scan on prt1_p1 t1_1
-> Hash
- -> Seq Scan on prt2_p2 t2_1
+ -> Seq Scan on prt2_p1 t2_1
-> Hash Anti Join
Hash Cond: (t1_2.a = t2_2.b)
- -> Seq Scan on prt1_p3 t1_2
+ -> Seq Scan on prt1_p2 t1_2
-> Hash
- -> Seq Scan on prt2_p3 t2_2
+ -> Seq Scan on prt2_p2 t2_2
+ -> Hash Anti Join
+ Hash Cond: (t1_3.a = t2_3.b)
+ -> Seq Scan on prt1_p3 t1_3
+ -> Hash
+ -> Seq Scan on prt2_p3 t2_3
(17 rows)
SELECT sum(t1.a), avg(t1.a), sum(t1.b), avg(t1.b) FROM prt1 t1 WHERE NOT EXISTS (SELECT 1 FROM prt2 t2 WHERE t1.a = t2.b);
@@ -362,29 +362,29 @@ SELECT * FROM prt1 t1 LEFT JOIN LATERAL
Sort Key: t1.a
-> Append
-> Nested Loop Left Join
- -> Seq Scan on prt1_p1 t1
+ -> Seq Scan on prt1_p1 t1_1
Filter: (b = 0)
-> Nested Loop
- -> Index Only Scan using iprt1_p1_a on prt1_p1 t2
- Index Cond: (a = t1.a)
- -> Index Scan using iprt2_p1_b on prt2_p1 t3
- Index Cond: (b = t2.a)
- -> Nested Loop Left Join
- -> Seq Scan on prt1_p2 t1_1
- Filter: (b = 0)
- -> Nested Loop
- -> Index Only Scan using iprt1_p2_a on prt1_p2 t2_1
+ -> Index Only Scan using iprt1_p1_a on prt1_p1 t2_1
Index Cond: (a = t1_1.a)
- -> Index Scan using iprt2_p2_b on prt2_p2 t3_1
+ -> Index Scan using iprt2_p1_b on prt2_p1 t3_1
Index Cond: (b = t2_1.a)
-> Nested Loop Left Join
- -> Seq Scan on prt1_p3 t1_2
+ -> Seq Scan on prt1_p2 t1_2
Filter: (b = 0)
-> Nested Loop
- -> Index Only Scan using iprt1_p3_a on prt1_p3 t2_2
+ -> Index Only Scan using iprt1_p2_a on prt1_p2 t2_2
Index Cond: (a = t1_2.a)
- -> Index Scan using iprt2_p3_b on prt2_p3 t3_2
+ -> Index Scan using iprt2_p2_b on prt2_p2 t3_2
Index Cond: (b = t2_2.a)
+ -> Nested Loop Left Join
+ -> Seq Scan on prt1_p3 t1_3
+ Filter: (b = 0)
+ -> Nested Loop
+ -> Index Only Scan using iprt1_p3_a on prt1_p3 t2_3
+ Index Cond: (a = t1_3.a)
+ -> Index Scan using iprt2_p3_b on prt2_p3 t3_3
+ Index Cond: (b = t2_3.a)
(27 rows)
SELECT * FROM prt1 t1 LEFT JOIN LATERAL
@@ -418,26 +418,26 @@ SELECT t1.a, ss.t2a, ss.t2c FROM prt1 t1 LEFT JOIN LATERAL
Hash Cond: ((t1.c)::text = (t2.c)::text)
Filter: ((t1.b + COALESCE(t2.b, 0)) = 0)
-> Append
- -> Seq Scan on prt1_p1 t1
- -> Seq Scan on prt1_p2 t1_1
- -> Seq Scan on prt1_p3 t1_2
+ -> Seq Scan on prt1_p1 t1_1
+ -> Seq Scan on prt1_p2 t1_2
+ -> Seq Scan on prt1_p3 t1_3
-> Hash
-> Append
-> Hash Join
- Hash Cond: (t2.a = t3.b)
- -> Seq Scan on prt1_p1 t2
- -> Hash
- -> Seq Scan on prt2_p1 t3
- -> Hash Join
Hash Cond: (t2_1.a = t3_1.b)
- -> Seq Scan on prt1_p2 t2_1
+ -> Seq Scan on prt1_p1 t2_1
-> Hash
- -> Seq Scan on prt2_p2 t3_1
+ -> Seq Scan on prt2_p1 t3_1
-> Hash Join
Hash Cond: (t2_2.a = t3_2.b)
- -> Seq Scan on prt1_p3 t2_2
+ -> Seq Scan on prt1_p2 t2_2
+ -> Hash
+ -> Seq Scan on prt2_p2 t3_2
+ -> Hash Join
+ Hash Cond: (t2_3.a = t3_3.b)
+ -> Seq Scan on prt1_p3 t2_3
-> Hash
- -> Seq Scan on prt2_p3 t3_2
+ -> Seq Scan on prt2_p3 t3_3
(26 rows)
SELECT t1.a, ss.t2a, ss.t2c FROM prt1 t1 LEFT JOIN LATERAL
@@ -562,22 +562,22 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_e t1, prt2_e t2 WHERE (t1.a + t1.b)/2 =
Sort Key: t1.a, t2.b
-> Append
-> Hash Join
- Hash Cond: (((t2.b + t2.a) / 2) = ((t1.a + t1.b) / 2))
- -> Seq Scan on prt2_e_p1 t2
+ Hash Cond: (((t2_1.b + t2_1.a) / 2) = ((t1_1.a + t1_1.b) / 2))
+ -> Seq Scan on prt2_e_p1 t2_1
-> Hash
- -> Seq Scan on prt1_e_p1 t1
+ -> Seq Scan on prt1_e_p1 t1_1
Filter: (c = 0)
-> Hash Join
- Hash Cond: (((t2_1.b + t2_1.a) / 2) = ((t1_1.a + t1_1.b) / 2))
- -> Seq Scan on prt2_e_p2 t2_1
+ Hash Cond: (((t2_2.b + t2_2.a) / 2) = ((t1_2.a + t1_2.b) / 2))
+ -> Seq Scan on prt2_e_p2 t2_2
-> Hash
- -> Seq Scan on prt1_e_p2 t1_1
+ -> Seq Scan on prt1_e_p2 t1_2
Filter: (c = 0)
-> Hash Join
- Hash Cond: (((t2_2.b + t2_2.a) / 2) = ((t1_2.a + t1_2.b) / 2))
- -> Seq Scan on prt2_e_p3 t2_2
+ Hash Cond: (((t2_3.b + t2_3.a) / 2) = ((t1_3.a + t1_3.b) / 2))
+ -> Seq Scan on prt2_e_p3 t2_3
-> Hash
- -> Seq Scan on prt1_e_p3 t1_2
+ -> Seq Scan on prt1_e_p3 t1_3
Filter: (c = 0)
(21 rows)
@@ -601,35 +601,35 @@ SELECT t1.a, t1.c, t2.b, t2.c, t3.a + t3.b, t3.c FROM prt1 t1, prt2 t2, prt1_e t
Sort Key: t1.a
-> Append
-> Nested Loop
- Join Filter: (t1.a = ((t3.a + t3.b) / 2))
- -> Hash Join
- Hash Cond: (t2.b = t1.a)
- -> Seq Scan on prt2_p1 t2
- -> Hash
- -> Seq Scan on prt1_p1 t1
- Filter: (b = 0)
- -> Index Scan using iprt1_e_p1_ab2 on prt1_e_p1 t3
- Index Cond: (((a + b) / 2) = t2.b)
- -> Nested Loop
Join Filter: (t1_1.a = ((t3_1.a + t3_1.b) / 2))
-> Hash Join
Hash Cond: (t2_1.b = t1_1.a)
- -> Seq Scan on prt2_p2 t2_1
+ -> Seq Scan on prt2_p1 t2_1
-> Hash
- -> Seq Scan on prt1_p2 t1_1
+ -> Seq Scan on prt1_p1 t1_1
Filter: (b = 0)
- -> Index Scan using iprt1_e_p2_ab2 on prt1_e_p2 t3_1
+ -> Index Scan using iprt1_e_p1_ab2 on prt1_e_p1 t3_1
Index Cond: (((a + b) / 2) = t2_1.b)
-> Nested Loop
Join Filter: (t1_2.a = ((t3_2.a + t3_2.b) / 2))
-> Hash Join
Hash Cond: (t2_2.b = t1_2.a)
- -> Seq Scan on prt2_p3 t2_2
+ -> Seq Scan on prt2_p2 t2_2
-> Hash
- -> Seq Scan on prt1_p3 t1_2
+ -> Seq Scan on prt1_p2 t1_2
Filter: (b = 0)
- -> Index Scan using iprt1_e_p3_ab2 on prt1_e_p3 t3_2
+ -> Index Scan using iprt1_e_p2_ab2 on prt1_e_p2 t3_2
Index Cond: (((a + b) / 2) = t2_2.b)
+ -> Nested Loop
+ Join Filter: (t1_3.a = ((t3_3.a + t3_3.b) / 2))
+ -> Hash Join
+ Hash Cond: (t2_3.b = t1_3.a)
+ -> Seq Scan on prt2_p3 t2_3
+ -> Hash
+ -> Seq Scan on prt1_p3 t1_3
+ Filter: (b = 0)
+ -> Index Scan using iprt1_e_p3_ab2 on prt1_e_p3 t3_3
+ Index Cond: (((a + b) / 2) = t2_3.b)
(33 rows)
SELECT t1.a, t1.c, t2.b, t2.c, t3.a + t3.b, t3.c FROM prt1 t1, prt2 t2, prt1_e t3 WHERE t1.a = t2.b AND t1.a = (t3.a + t3.b)/2 AND t1.b = 0 ORDER BY t1.a, t2.b;
@@ -649,34 +649,34 @@ SELECT t1.a, t1.c, t2.b, t2.c, t3.a + t3.b, t3.c FROM (prt1 t1 LEFT JOIN prt2 t2
Sort Key: t1.a, t2.b, ((t3.a + t3.b))
-> Append
-> Hash Right Join
- Hash Cond: (((t3.a + t3.b) / 2) = t1.a)
- -> Seq Scan on prt1_e_p1 t3
+ Hash Cond: (((t3_1.a + t3_1.b) / 2) = t1_1.a)
+ -> Seq Scan on prt1_e_p1 t3_1
-> Hash
-> Hash Right Join
- Hash Cond: (t2.b = t1.a)
- -> Seq Scan on prt2_p1 t2
+ Hash Cond: (t2_1.b = t1_1.a)
+ -> Seq Scan on prt2_p1 t2_1
-> Hash
- -> Seq Scan on prt1_p1 t1
+ -> Seq Scan on prt1_p1 t1_1
Filter: (b = 0)
-> Hash Right Join
- Hash Cond: (((t3_1.a + t3_1.b) / 2) = t1_1.a)
- -> Seq Scan on prt1_e_p2 t3_1
+ Hash Cond: (((t3_2.a + t3_2.b) / 2) = t1_2.a)
+ -> Seq Scan on prt1_e_p2 t3_2
-> Hash
-> Hash Right Join
- Hash Cond: (t2_1.b = t1_1.a)
- -> Seq Scan on prt2_p2 t2_1
+ Hash Cond: (t2_2.b = t1_2.a)
+ -> Seq Scan on prt2_p2 t2_2
-> Hash
- -> Seq Scan on prt1_p2 t1_1
+ -> Seq Scan on prt1_p2 t1_2
Filter: (b = 0)
-> Hash Right Join
- Hash Cond: (((t3_2.a + t3_2.b) / 2) = t1_2.a)
- -> Seq Scan on prt1_e_p3 t3_2
+ Hash Cond: (((t3_3.a + t3_3.b) / 2) = t1_3.a)
+ -> Seq Scan on prt1_e_p3 t3_3
-> Hash
-> Hash Right Join
- Hash Cond: (t2_2.b = t1_2.a)
- -> Seq Scan on prt2_p3 t2_2
+ Hash Cond: (t2_3.b = t1_3.a)
+ -> Seq Scan on prt2_p3 t2_3
-> Hash
- -> Seq Scan on prt1_p3 t1_2
+ -> Seq Scan on prt1_p3 t1_3
Filter: (b = 0)
(33 rows)
@@ -706,31 +706,31 @@ SELECT t1.a, t1.c, t2.b, t2.c, t3.a + t3.b, t3.c FROM (prt1 t1 LEFT JOIN prt2 t2
-> Append
-> Nested Loop Left Join
-> Hash Right Join
- Hash Cond: (t1.a = ((t3.a + t3.b) / 2))
- -> Seq Scan on prt1_p1 t1
- -> Hash
- -> Seq Scan on prt1_e_p1 t3
- Filter: (c = 0)
- -> Index Scan using iprt2_p1_b on prt2_p1 t2
- Index Cond: (b = t1.a)
- -> Nested Loop Left Join
- -> Hash Right Join
Hash Cond: (t1_1.a = ((t3_1.a + t3_1.b) / 2))
- -> Seq Scan on prt1_p2 t1_1
+ -> Seq Scan on prt1_p1 t1_1
-> Hash
- -> Seq Scan on prt1_e_p2 t3_1
+ -> Seq Scan on prt1_e_p1 t3_1
Filter: (c = 0)
- -> Index Scan using iprt2_p2_b on prt2_p2 t2_1
+ -> Index Scan using iprt2_p1_b on prt2_p1 t2_1
Index Cond: (b = t1_1.a)
-> Nested Loop Left Join
-> Hash Right Join
Hash Cond: (t1_2.a = ((t3_2.a + t3_2.b) / 2))
- -> Seq Scan on prt1_p3 t1_2
+ -> Seq Scan on prt1_p2 t1_2
-> Hash
- -> Seq Scan on prt1_e_p3 t3_2
+ -> Seq Scan on prt1_e_p2 t3_2
Filter: (c = 0)
- -> Index Scan using iprt2_p3_b on prt2_p3 t2_2
+ -> Index Scan using iprt2_p2_b on prt2_p2 t2_2
Index Cond: (b = t1_2.a)
+ -> Nested Loop Left Join
+ -> Hash Right Join
+ Hash Cond: (t1_3.a = ((t3_3.a + t3_3.b) / 2))
+ -> Seq Scan on prt1_p3 t1_3
+ -> Hash
+ -> Seq Scan on prt1_e_p3 t3_3
+ Filter: (c = 0)
+ -> Index Scan using iprt2_p3_b on prt2_p3 t2_3
+ Index Cond: (b = t1_3.a)
(30 rows)
SELECT t1.a, t1.c, t2.b, t2.c, t3.a + t3.b, t3.c FROM (prt1 t1 LEFT JOIN prt2 t2 ON t1.a = t2.b) RIGHT JOIN prt1_e t3 ON (t1.a = (t3.a + t3.b)/2) WHERE t3.c = 0 ORDER BY t1.a, t2.b, t3.a + t3.b;
@@ -760,43 +760,43 @@ SELECT t1.a, t1.phv, t2.b, t2.phv, t3.a + t3.b, t3.phv FROM ((SELECT 50 phv, * F
Sort Key: prt1.a, prt2.b, ((prt1_e.a + prt1_e.b))
-> Append
-> Hash Full Join
- Hash Cond: (prt1.a = ((prt1_e.a + prt1_e.b) / 2))
- Filter: ((prt1.a = (50)) OR (prt2.b = (75)) OR (((prt1_e.a + prt1_e.b) / 2) = (50)))
+ Hash Cond: (prt1_1.a = ((prt1_e_1.a + prt1_e_1.b) / 2))
+ Filter: ((prt1_1.a = (50)) OR (prt2_1.b = (75)) OR (((prt1_e_1.a + prt1_e_1.b) / 2) = (50)))
-> Hash Full Join
- Hash Cond: (prt1.a = prt2.b)
- -> Seq Scan on prt1_p1 prt1
+ Hash Cond: (prt1_1.a = prt2_1.b)
+ -> Seq Scan on prt1_p1 prt1_1
Filter: (b = 0)
-> Hash
- -> Seq Scan on prt2_p1 prt2
+ -> Seq Scan on prt2_p1 prt2_1
Filter: (a = 0)
-> Hash
- -> Seq Scan on prt1_e_p1 prt1_e
+ -> Seq Scan on prt1_e_p1 prt1_e_1
Filter: (c = 0)
-> Hash Full Join
- Hash Cond: (prt1_1.a = ((prt1_e_1.a + prt1_e_1.b) / 2))
- Filter: ((prt1_1.a = (50)) OR (prt2_1.b = (75)) OR (((prt1_e_1.a + prt1_e_1.b) / 2) = (50)))
+ Hash Cond: (prt1_2.a = ((prt1_e_2.a + prt1_e_2.b) / 2))
+ Filter: ((prt1_2.a = (50)) OR (prt2_2.b = (75)) OR (((prt1_e_2.a + prt1_e_2.b) / 2) = (50)))
-> Hash Full Join
- Hash Cond: (prt1_1.a = prt2_1.b)
- -> Seq Scan on prt1_p2 prt1_1
+ Hash Cond: (prt1_2.a = prt2_2.b)
+ -> Seq Scan on prt1_p2 prt1_2
Filter: (b = 0)
-> Hash
- -> Seq Scan on prt2_p2 prt2_1
+ -> Seq Scan on prt2_p2 prt2_2
Filter: (a = 0)
-> Hash
- -> Seq Scan on prt1_e_p2 prt1_e_1
+ -> Seq Scan on prt1_e_p2 prt1_e_2
Filter: (c = 0)
-> Hash Full Join
- Hash Cond: (prt1_2.a = ((prt1_e_2.a + prt1_e_2.b) / 2))
- Filter: ((prt1_2.a = (50)) OR (prt2_2.b = (75)) OR (((prt1_e_2.a + prt1_e_2.b) / 2) = (50)))
+ Hash Cond: (prt1_3.a = ((prt1_e_3.a + prt1_e_3.b) / 2))
+ Filter: ((prt1_3.a = (50)) OR (prt2_3.b = (75)) OR (((prt1_e_3.a + prt1_e_3.b) / 2) = (50)))
-> Hash Full Join
- Hash Cond: (prt1_2.a = prt2_2.b)
- -> Seq Scan on prt1_p3 prt1_2
+ Hash Cond: (prt1_3.a = prt2_3.b)
+ -> Seq Scan on prt1_p3 prt1_3
Filter: (b = 0)
-> Hash
- -> Seq Scan on prt2_p3 prt2_2
+ -> Seq Scan on prt2_p3 prt2_3
Filter: (a = 0)
-> Hash
- -> Seq Scan on prt1_e_p3 prt1_e_2
+ -> Seq Scan on prt1_e_p3 prt1_e_3
Filter: (c = 0)
(42 rows)
@@ -816,42 +816,42 @@ SELECT t1.* FROM prt1 t1 WHERE t1.a IN (SELECT t1.b FROM prt2 t1, prt1_e t2 WHER
Sort Key: t1.a
-> Append
-> Nested Loop
- Join Filter: (t1.a = t1_3.b)
+ Join Filter: (t1_2.a = t1_5.b)
-> HashAggregate
- Group Key: t1_3.b
+ Group Key: t1_5.b
-> Hash Join
- Hash Cond: (((t2.a + t2.b) / 2) = t1_3.b)
- -> Seq Scan on prt1_e_p1 t2
+ Hash Cond: (((t2_1.a + t2_1.b) / 2) = t1_5.b)
+ -> Seq Scan on prt1_e_p1 t2_1
-> Hash
- -> Seq Scan on prt2_p1 t1_3
+ -> Seq Scan on prt2_p1 t1_5
Filter: (a = 0)
- -> Index Scan using iprt1_p1_a on prt1_p1 t1
- Index Cond: (a = ((t2.a + t2.b) / 2))
+ -> Index Scan using iprt1_p1_a on prt1_p1 t1_2
+ Index Cond: (a = ((t2_1.a + t2_1.b) / 2))
Filter: (b = 0)
-> Nested Loop
- Join Filter: (t1_1.a = t1_4.b)
+ Join Filter: (t1_3.a = t1_6.b)
-> HashAggregate
- Group Key: t1_4.b
+ Group Key: t1_6.b
-> Hash Join
- Hash Cond: (((t2_1.a + t2_1.b) / 2) = t1_4.b)
- -> Seq Scan on prt1_e_p2 t2_1
+ Hash Cond: (((t2_2.a + t2_2.b) / 2) = t1_6.b)
+ -> Seq Scan on prt1_e_p2 t2_2
-> Hash
- -> Seq Scan on prt2_p2 t1_4
+ -> Seq Scan on prt2_p2 t1_6
Filter: (a = 0)
- -> Index Scan using iprt1_p2_a on prt1_p2 t1_1
- Index Cond: (a = ((t2_1.a + t2_1.b) / 2))
+ -> Index Scan using iprt1_p2_a on prt1_p2 t1_3
+ Index Cond: (a = ((t2_2.a + t2_2.b) / 2))
Filter: (b = 0)
-> Nested Loop
- Join Filter: (t1_2.a = t1_5.b)
+ Join Filter: (t1_4.a = t1_7.b)
-> HashAggregate
- Group Key: t1_5.b
+ Group Key: t1_7.b
-> Nested Loop
- -> Seq Scan on prt2_p3 t1_5
+ -> Seq Scan on prt2_p3 t1_7
Filter: (a = 0)
- -> Index Scan using iprt1_e_p3_ab2 on prt1_e_p3 t2_2
- Index Cond: (((a + b) / 2) = t1_5.b)
- -> Index Scan using iprt1_p3_a on prt1_p3 t1_2
- Index Cond: (a = ((t2_2.a + t2_2.b) / 2))
+ -> Index Scan using iprt1_e_p3_ab2 on prt1_e_p3 t2_3
+ Index Cond: (((a + b) / 2) = t1_7.b)
+ -> Index Scan using iprt1_p3_a on prt1_p3 t1_4
+ Index Cond: (a = ((t2_3.a + t2_3.b) / 2))
Filter: (b = 0)
(41 rows)
@@ -866,46 +866,46 @@ SELECT t1.* FROM prt1 t1 WHERE t1.a IN (SELECT t1.b FROM prt2 t1, prt1_e t2 WHER
EXPLAIN (COSTS OFF)
SELECT t1.* FROM prt1 t1 WHERE t1.a IN (SELECT t1.b FROM prt2 t1 WHERE t1.b IN (SELECT (t1.a + t1.b)/2 FROM prt1_e t1 WHERE t1.c = 0)) AND t1.b = 0 ORDER BY t1.a;
- QUERY PLAN
--------------------------------------------------------------------------
+ QUERY PLAN
+---------------------------------------------------------------------------
Sort
Sort Key: t1.a
-> Append
-> Nested Loop
-> HashAggregate
- Group Key: t1_3.b
+ Group Key: t1_6.b
-> Hash Semi Join
- Hash Cond: (t1_3.b = ((t1_6.a + t1_6.b) / 2))
- -> Seq Scan on prt2_p1 t1_3
+ Hash Cond: (t1_6.b = ((t1_9.a + t1_9.b) / 2))
+ -> Seq Scan on prt2_p1 t1_6
-> Hash
- -> Seq Scan on prt1_e_p1 t1_6
+ -> Seq Scan on prt1_e_p1 t1_9
Filter: (c = 0)
- -> Index Scan using iprt1_p1_a on prt1_p1 t1
- Index Cond: (a = t1_3.b)
+ -> Index Scan using iprt1_p1_a on prt1_p1 t1_3
+ Index Cond: (a = t1_6.b)
Filter: (b = 0)
-> Nested Loop
-> HashAggregate
- Group Key: t1_4.b
+ Group Key: t1_7.b
-> Hash Semi Join
- Hash Cond: (t1_4.b = ((t1_7.a + t1_7.b) / 2))
- -> Seq Scan on prt2_p2 t1_4
+ Hash Cond: (t1_7.b = ((t1_10.a + t1_10.b) / 2))
+ -> Seq Scan on prt2_p2 t1_7
-> Hash
- -> Seq Scan on prt1_e_p2 t1_7
+ -> Seq Scan on prt1_e_p2 t1_10
Filter: (c = 0)
- -> Index Scan using iprt1_p2_a on prt1_p2 t1_1
- Index Cond: (a = t1_4.b)
+ -> Index Scan using iprt1_p2_a on prt1_p2 t1_4
+ Index Cond: (a = t1_7.b)
Filter: (b = 0)
-> Nested Loop
-> HashAggregate
- Group Key: t1_5.b
+ Group Key: t1_8.b
-> Hash Semi Join
- Hash Cond: (t1_5.b = ((t1_8.a + t1_8.b) / 2))
- -> Seq Scan on prt2_p3 t1_5
+ Hash Cond: (t1_8.b = ((t1_11.a + t1_11.b) / 2))
+ -> Seq Scan on prt2_p3 t1_8
-> Hash
- -> Seq Scan on prt1_e_p3 t1_8
+ -> Seq Scan on prt1_e_p3 t1_11
Filter: (c = 0)
- -> Index Scan using iprt1_p3_a on prt1_p3 t1_2
- Index Cond: (a = t1_5.b)
+ -> Index Scan using iprt1_p3_a on prt1_p3 t1_5
+ Index Cond: (a = t1_8.b)
Filter: (b = 0)
(39 rows)
@@ -923,54 +923,54 @@ SET enable_hashjoin TO off;
SET enable_nestloop TO off;
EXPLAIN (COSTS OFF)
SELECT t1.* FROM prt1 t1 WHERE t1.a IN (SELECT t1.b FROM prt2 t1 WHERE t1.b IN (SELECT (t1.a + t1.b)/2 FROM prt1_e t1 WHERE t1.c = 0)) AND t1.b = 0 ORDER BY t1.a;
- QUERY PLAN
-----------------------------------------------------------------
+ QUERY PLAN
+------------------------------------------------------------------
Merge Append
Sort Key: t1.a
-> Merge Semi Join
- Merge Cond: (t1.a = t1_3.b)
+ Merge Cond: (t1_3.a = t1_6.b)
-> Sort
- Sort Key: t1.a
- -> Seq Scan on prt1_p1 t1
+ Sort Key: t1_3.a
+ -> Seq Scan on prt1_p1 t1_3
Filter: (b = 0)
-> Merge Semi Join
- Merge Cond: (t1_3.b = (((t1_6.a + t1_6.b) / 2)))
+ Merge Cond: (t1_6.b = (((t1_9.a + t1_9.b) / 2)))
-> Sort
- Sort Key: t1_3.b
- -> Seq Scan on prt2_p1 t1_3
+ Sort Key: t1_6.b
+ -> Seq Scan on prt2_p1 t1_6
-> Sort
- Sort Key: (((t1_6.a + t1_6.b) / 2))
- -> Seq Scan on prt1_e_p1 t1_6
+ Sort Key: (((t1_9.a + t1_9.b) / 2))
+ -> Seq Scan on prt1_e_p1 t1_9
Filter: (c = 0)
-> Merge Semi Join
- Merge Cond: (t1_1.a = t1_4.b)
+ Merge Cond: (t1_4.a = t1_7.b)
-> Sort
- Sort Key: t1_1.a
- -> Seq Scan on prt1_p2 t1_1
+ Sort Key: t1_4.a
+ -> Seq Scan on prt1_p2 t1_4
Filter: (b = 0)
-> Merge Semi Join
- Merge Cond: (t1_4.b = (((t1_7.a + t1_7.b) / 2)))
+ Merge Cond: (t1_7.b = (((t1_10.a + t1_10.b) / 2)))
-> Sort
- Sort Key: t1_4.b
- -> Seq Scan on prt2_p2 t1_4
+ Sort Key: t1_7.b
+ -> Seq Scan on prt2_p2 t1_7
-> Sort
- Sort Key: (((t1_7.a + t1_7.b) / 2))
- -> Seq Scan on prt1_e_p2 t1_7
+ Sort Key: (((t1_10.a + t1_10.b) / 2))
+ -> Seq Scan on prt1_e_p2 t1_10
Filter: (c = 0)
-> Merge Semi Join
- Merge Cond: (t1_2.a = t1_5.b)
+ Merge Cond: (t1_5.a = t1_8.b)
-> Sort
- Sort Key: t1_2.a
- -> Seq Scan on prt1_p3 t1_2
+ Sort Key: t1_5.a
+ -> Seq Scan on prt1_p3 t1_5
Filter: (b = 0)
-> Merge Semi Join
- Merge Cond: (t1_5.b = (((t1_8.a + t1_8.b) / 2)))
+ Merge Cond: (t1_8.b = (((t1_11.a + t1_11.b) / 2)))
-> Sort
- Sort Key: t1_5.b
- -> Seq Scan on prt2_p3 t1_5
+ Sort Key: t1_8.b
+ -> Seq Scan on prt2_p3 t1_8
-> Sort
- Sort Key: (((t1_8.a + t1_8.b) / 2))
- -> Seq Scan on prt1_e_p3 t1_8
+ Sort Key: (((t1_11.a + t1_11.b) / 2))
+ -> Seq Scan on prt1_e_p3 t1_11
Filter: (c = 0)
(47 rows)
@@ -991,22 +991,6 @@ SELECT t1.a, t1.c, t2.b, t2.c, t3.a + t3.b, t3.c FROM (prt1 t1 LEFT JOIN prt2 t2
Sort Key: t1.a, t2.b, ((t3.a + t3.b))
-> Append
-> Merge Left Join
- Merge Cond: (t1.a = t2.b)
- -> Sort
- Sort Key: t1.a
- -> Merge Left Join
- Merge Cond: ((((t3.a + t3.b) / 2)) = t1.a)
- -> Sort
- Sort Key: (((t3.a + t3.b) / 2))
- -> Seq Scan on prt1_e_p1 t3
- Filter: (c = 0)
- -> Sort
- Sort Key: t1.a
- -> Seq Scan on prt1_p1 t1
- -> Sort
- Sort Key: t2.b
- -> Seq Scan on prt2_p1 t2
- -> Merge Left Join
Merge Cond: (t1_1.a = t2_1.b)
-> Sort
Sort Key: t1_1.a
@@ -1014,14 +998,14 @@ SELECT t1.a, t1.c, t2.b, t2.c, t3.a + t3.b, t3.c FROM (prt1 t1 LEFT JOIN prt2 t2
Merge Cond: ((((t3_1.a + t3_1.b) / 2)) = t1_1.a)
-> Sort
Sort Key: (((t3_1.a + t3_1.b) / 2))
- -> Seq Scan on prt1_e_p2 t3_1
+ -> Seq Scan on prt1_e_p1 t3_1
Filter: (c = 0)
-> Sort
Sort Key: t1_1.a
- -> Seq Scan on prt1_p2 t1_1
+ -> Seq Scan on prt1_p1 t1_1
-> Sort
Sort Key: t2_1.b
- -> Seq Scan on prt2_p2 t2_1
+ -> Seq Scan on prt2_p1 t2_1
-> Merge Left Join
Merge Cond: (t1_2.a = t2_2.b)
-> Sort
@@ -1030,14 +1014,30 @@ SELECT t1.a, t1.c, t2.b, t2.c, t3.a + t3.b, t3.c FROM (prt1 t1 LEFT JOIN prt2 t2
Merge Cond: ((((t3_2.a + t3_2.b) / 2)) = t1_2.a)
-> Sort
Sort Key: (((t3_2.a + t3_2.b) / 2))
- -> Seq Scan on prt1_e_p3 t3_2
+ -> Seq Scan on prt1_e_p2 t3_2
Filter: (c = 0)
-> Sort
Sort Key: t1_2.a
- -> Seq Scan on prt1_p3 t1_2
+ -> Seq Scan on prt1_p2 t1_2
-> Sort
Sort Key: t2_2.b
- -> Seq Scan on prt2_p3 t2_2
+ -> Seq Scan on prt2_p2 t2_2
+ -> Merge Left Join
+ Merge Cond: (t1_3.a = t2_3.b)
+ -> Sort
+ Sort Key: t1_3.a
+ -> Merge Left Join
+ Merge Cond: ((((t3_3.a + t3_3.b) / 2)) = t1_3.a)
+ -> Sort
+ Sort Key: (((t3_3.a + t3_3.b) / 2))
+ -> Seq Scan on prt1_e_p3 t3_3
+ Filter: (c = 0)
+ -> Sort
+ Sort Key: t1_3.a
+ -> Seq Scan on prt1_p3 t1_3
+ -> Sort
+ Sort Key: t2_3.b
+ -> Seq Scan on prt2_p3 t2_3
(51 rows)
SELECT t1.a, t1.c, t2.b, t2.c, t3.a + t3.b, t3.c FROM (prt1 t1 LEFT JOIN prt2 t2 ON t1.a = t2.b) RIGHT JOIN prt1_e t3 ON (t1.a = (t3.a + t3.b)/2) WHERE t3.c = 0 ORDER BY t1.a, t2.b, t3.a + t3.b;
@@ -1070,16 +1070,16 @@ SELECT t1.a, t2.b FROM (SELECT * FROM prt1 WHERE a < 450) t1 LEFT JOIN (SELECT *
-> Sort
Sort Key: prt1.a
-> Append
- -> Seq Scan on prt1_p1 prt1
+ -> Seq Scan on prt1_p1 prt1_1
Filter: ((a < 450) AND (b = 0))
- -> Seq Scan on prt1_p2 prt1_1
+ -> Seq Scan on prt1_p2 prt1_2
Filter: ((a < 450) AND (b = 0))
-> Sort
Sort Key: prt2.b
-> Append
- -> Seq Scan on prt2_p2 prt2
+ -> Seq Scan on prt2_p2 prt2_1
Filter: (b > 250)
- -> Seq Scan on prt2_p3 prt2_1
+ -> Seq Scan on prt2_p3 prt2_2
Filter: (b > 250)
(18 rows)
@@ -1109,16 +1109,16 @@ SELECT t1.a, t2.b FROM prt1 t1, prt2 t2 WHERE t1::text = t2::text AND t1.a = t2.
Sort Key: t1.a, ((((t1.*)::prt1))::text)
-> Result
-> Append
- -> Seq Scan on prt1_p1 t1
- -> Seq Scan on prt1_p2 t1_1
- -> Seq Scan on prt1_p3 t1_2
+ -> Seq Scan on prt1_p1 t1_1
+ -> Seq Scan on prt1_p2 t1_2
+ -> Seq Scan on prt1_p3 t1_3
-> Sort
Sort Key: t2.b, ((((t2.*)::prt2))::text)
-> Result
-> Append
- -> Seq Scan on prt2_p1 t2
- -> Seq Scan on prt2_p2 t2_1
- -> Seq Scan on prt2_p3 t2_2
+ -> Seq Scan on prt2_p1 t2_1
+ -> Seq Scan on prt2_p2 t2_2
+ -> Seq Scan on prt2_p3 t2_3
(16 rows)
SELECT t1.a, t2.b FROM prt1 t1, prt2 t2 WHERE t1::text = t2::text AND t1.a = t2.b ORDER BY t1.a;
@@ -1156,25 +1156,25 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM (SELECT * FROM prt1_m WHERE prt1_m.c = 0) t1
Sort Key: prt1_m.a, prt2_m.b
-> Append
-> Hash Full Join
- Hash Cond: ((prt1_m.a = ((prt2_m.b + prt2_m.a) / 2)) AND (((prt1_m.a + prt1_m.b) / 2) = prt2_m.b))
- -> Seq Scan on prt1_m_p1 prt1_m
+ Hash Cond: ((prt1_m_1.a = ((prt2_m_1.b + prt2_m_1.a) / 2)) AND (((prt1_m_1.a + prt1_m_1.b) / 2) = prt2_m_1.b))
+ -> Seq Scan on prt1_m_p1 prt1_m_1
Filter: (c = 0)
-> Hash
- -> Seq Scan on prt2_m_p1 prt2_m
+ -> Seq Scan on prt2_m_p1 prt2_m_1
Filter: (c = 0)
-> Hash Full Join
- Hash Cond: ((prt1_m_1.a = ((prt2_m_1.b + prt2_m_1.a) / 2)) AND (((prt1_m_1.a + prt1_m_1.b) / 2) = prt2_m_1.b))
- -> Seq Scan on prt1_m_p2 prt1_m_1
+ Hash Cond: ((prt1_m_2.a = ((prt2_m_2.b + prt2_m_2.a) / 2)) AND (((prt1_m_2.a + prt1_m_2.b) / 2) = prt2_m_2.b))
+ -> Seq Scan on prt1_m_p2 prt1_m_2
Filter: (c = 0)
-> Hash
- -> Seq Scan on prt2_m_p2 prt2_m_1
+ -> Seq Scan on prt2_m_p2 prt2_m_2
Filter: (c = 0)
-> Hash Full Join
- Hash Cond: ((prt1_m_2.a = ((prt2_m_2.b + prt2_m_2.a) / 2)) AND (((prt1_m_2.a + prt1_m_2.b) / 2) = prt2_m_2.b))
- -> Seq Scan on prt1_m_p3 prt1_m_2
+ Hash Cond: ((prt1_m_3.a = ((prt2_m_3.b + prt2_m_3.a) / 2)) AND (((prt1_m_3.a + prt1_m_3.b) / 2) = prt2_m_3.b))
+ -> Seq Scan on prt1_m_p3 prt1_m_3
Filter: (c = 0)
-> Hash
- -> Seq Scan on prt2_m_p3 prt2_m_2
+ -> Seq Scan on prt2_m_p3 prt2_m_3
Filter: (c = 0)
(24 rows)
@@ -1234,32 +1234,32 @@ SELECT avg(t1.a), avg(t2.b), avg(t3.a + t3.b), t1.c, t2.c, t3.c FROM plt1 t1, pl
Sort Key: t1.c, t3.c
-> Append
-> Hash Join
- Hash Cond: (t1.c = ltrim(t3.c, 'A'::text))
- -> Hash Join
- Hash Cond: ((t1.b = t2.b) AND (t1.c = t2.c))
- -> Seq Scan on plt1_p1 t1
- -> Hash
- -> Seq Scan on plt2_p1 t2
- -> Hash
- -> Seq Scan on plt1_e_p1 t3
- -> Hash Join
Hash Cond: (t1_1.c = ltrim(t3_1.c, 'A'::text))
-> Hash Join
Hash Cond: ((t1_1.b = t2_1.b) AND (t1_1.c = t2_1.c))
- -> Seq Scan on plt1_p2 t1_1
+ -> Seq Scan on plt1_p1 t1_1
-> Hash
- -> Seq Scan on plt2_p2 t2_1
+ -> Seq Scan on plt2_p1 t2_1
-> Hash
- -> Seq Scan on plt1_e_p2 t3_1
+ -> Seq Scan on plt1_e_p1 t3_1
-> Hash Join
Hash Cond: (t1_2.c = ltrim(t3_2.c, 'A'::text))
-> Hash Join
Hash Cond: ((t1_2.b = t2_2.b) AND (t1_2.c = t2_2.c))
- -> Seq Scan on plt1_p3 t1_2
+ -> Seq Scan on plt1_p2 t1_2
-> Hash
- -> Seq Scan on plt2_p3 t2_2
+ -> Seq Scan on plt2_p2 t2_2
-> Hash
- -> Seq Scan on plt1_e_p3 t3_2
+ -> Seq Scan on plt1_e_p2 t3_2
+ -> Hash Join
+ Hash Cond: (t1_3.c = ltrim(t3_3.c, 'A'::text))
+ -> Hash Join
+ Hash Cond: ((t1_3.b = t2_3.b) AND (t1_3.c = t2_3.c))
+ -> Seq Scan on plt1_p3 t1_3
+ -> Hash
+ -> Seq Scan on plt2_p3 t2_3
+ -> Hash
+ -> Seq Scan on plt1_e_p3 t3_3
(32 rows)
SELECT avg(t1.a), avg(t2.b), avg(t3.a + t3.b), t1.c, t2.c, t3.c FROM plt1 t1, plt2 t2, plt1_e t3 WHERE t1.b = t2.b AND t1.c = t2.c AND ltrim(t3.c, 'A') = t1.c GROUP BY t1.c, t2.c, t3.c ORDER BY t1.c, t2.c, t3.c;
@@ -1304,20 +1304,20 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM (SELECT * FROM prt1 WHERE a = 1 AND a = 2) t1
Hash Cond: (t2.b = a)
-> Append
-> Hash Join
- Hash Cond: (t3.a = t2.b)
- -> Seq Scan on prt1_p1 t3
- -> Hash
- -> Seq Scan on prt2_p1 t2
- -> Hash Join
Hash Cond: (t3_1.a = t2_1.b)
- -> Seq Scan on prt1_p2 t3_1
+ -> Seq Scan on prt1_p1 t3_1
-> Hash
- -> Seq Scan on prt2_p2 t2_1
+ -> Seq Scan on prt2_p1 t2_1
-> Hash Join
Hash Cond: (t3_2.a = t2_2.b)
- -> Seq Scan on prt1_p3 t3_2
+ -> Seq Scan on prt1_p2 t3_2
-> Hash
- -> Seq Scan on prt2_p3 t2_2
+ -> Seq Scan on prt2_p2 t2_2
+ -> Hash Join
+ Hash Cond: (t3_3.a = t2_3.b)
+ -> Seq Scan on prt1_p3 t3_3
+ -> Hash
+ -> Seq Scan on prt2_p3 t2_3
-> Hash
-> Result
One-Time Filter: false
@@ -1332,11 +1332,11 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM (SELECT * FROM prt1 WHERE a = 1 AND a = 2) t1
-> Hash Left Join
Hash Cond: (t2.b = a)
-> Append
- -> Seq Scan on prt2_p1 t2
+ -> Seq Scan on prt2_p1 t2_1
Filter: (a = 0)
- -> Seq Scan on prt2_p2 t2_1
+ -> Seq Scan on prt2_p2 t2_2
Filter: (a = 0)
- -> Seq Scan on prt2_p3 t2_2
+ -> Seq Scan on prt2_p3 t2_3
Filter: (a = 0)
-> Hash
-> Result
@@ -1378,32 +1378,32 @@ SELECT avg(t1.a), avg(t2.b), avg(t3.a + t3.b), t1.c, t2.c, t3.c FROM pht1 t1, ph
Sort Key: t1.c, t3.c
-> Append
-> Hash Join
- Hash Cond: (t1.c = ltrim(t3.c, 'A'::text))
- -> Hash Join
- Hash Cond: ((t1.b = t2.b) AND (t1.c = t2.c))
- -> Seq Scan on pht1_p1 t1
- -> Hash
- -> Seq Scan on pht2_p1 t2
- -> Hash
- -> Seq Scan on pht1_e_p1 t3
- -> Hash Join
Hash Cond: (t1_1.c = ltrim(t3_1.c, 'A'::text))
-> Hash Join
Hash Cond: ((t1_1.b = t2_1.b) AND (t1_1.c = t2_1.c))
- -> Seq Scan on pht1_p2 t1_1
+ -> Seq Scan on pht1_p1 t1_1
-> Hash
- -> Seq Scan on pht2_p2 t2_1
+ -> Seq Scan on pht2_p1 t2_1
-> Hash
- -> Seq Scan on pht1_e_p2 t3_1
+ -> Seq Scan on pht1_e_p1 t3_1
-> Hash Join
Hash Cond: (t1_2.c = ltrim(t3_2.c, 'A'::text))
-> Hash Join
Hash Cond: ((t1_2.b = t2_2.b) AND (t1_2.c = t2_2.c))
- -> Seq Scan on pht1_p3 t1_2
+ -> Seq Scan on pht1_p2 t1_2
+ -> Hash
+ -> Seq Scan on pht2_p2 t2_2
+ -> Hash
+ -> Seq Scan on pht1_e_p2 t3_2
+ -> Hash Join
+ Hash Cond: (t1_3.c = ltrim(t3_3.c, 'A'::text))
+ -> Hash Join
+ Hash Cond: ((t1_3.b = t2_3.b) AND (t1_3.c = t2_3.c))
+ -> Seq Scan on pht1_p3 t1_3
-> Hash
- -> Seq Scan on pht2_p3 t2_2
+ -> Seq Scan on pht2_p3 t2_3
-> Hash
- -> Seq Scan on pht1_e_p3 t3_2
+ -> Seq Scan on pht1_e_p3 t3_3
(32 rows)
SELECT avg(t1.a), avg(t2.b), avg(t3.a + t3.b), t1.c, t2.c, t3.c FROM pht1 t1, pht2 t2, pht1_e t3 WHERE t1.b = t2.b AND t1.c = t2.c AND ltrim(t3.c, 'A') = t1.c GROUP BY t1.c, t2.c, t3.c ORDER BY t1.c, t2.c, t3.c;
@@ -1432,22 +1432,22 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1 t1, prt2 t2 WHERE t1.a = t2.b AND t1.b =
Sort Key: t1.a
-> Append
-> Hash Join
- Hash Cond: (t2.b = t1.a)
- -> Seq Scan on prt2_p1 t2
+ Hash Cond: (t2_1.b = t1_1.a)
+ -> Seq Scan on prt2_p1 t2_1
-> Hash
- -> Seq Scan on prt1_p1 t1
+ -> Seq Scan on prt1_p1 t1_1
Filter: (b = 0)
-> Hash Join
- Hash Cond: (t2_1.b = t1_1.a)
- -> Seq Scan on prt2_p2 t2_1
+ Hash Cond: (t2_2.b = t1_2.a)
+ -> Seq Scan on prt2_p2 t2_2
-> Hash
- -> Seq Scan on prt1_p2 t1_1
+ -> Seq Scan on prt1_p2 t1_2
Filter: (b = 0)
-> Hash Join
- Hash Cond: (t2_2.b = t1_2.a)
- -> Seq Scan on prt2_p3 t2_2
+ Hash Cond: (t2_3.b = t1_3.a)
+ -> Seq Scan on prt2_p3 t2_3
-> Hash
- -> Seq Scan on prt1_p3 t1_2
+ -> Seq Scan on prt1_p3 t1_3
Filter: (b = 0)
(21 rows)
@@ -1468,22 +1468,22 @@ SELECT avg(t1.a), avg(t2.b), t1.c, t2.c FROM plt1 t1 RIGHT JOIN plt2 t2 ON t1.c
Group Key: t1.c, t2.c
-> Append
-> Hash Join
- Hash Cond: (t2.c = t1.c)
- -> Seq Scan on plt2_p1 t2
+ Hash Cond: (t2_1.c = t1_1.c)
+ -> Seq Scan on plt2_p1 t2_1
-> Hash
- -> Seq Scan on plt1_p1 t1
+ -> Seq Scan on plt1_p1 t1_1
Filter: ((a % 25) = 0)
-> Hash Join
- Hash Cond: (t2_1.c = t1_1.c)
- -> Seq Scan on plt2_p2 t2_1
+ Hash Cond: (t2_2.c = t1_2.c)
+ -> Seq Scan on plt2_p2 t2_2
-> Hash
- -> Seq Scan on plt1_p2 t1_1
+ -> Seq Scan on plt1_p2 t1_2
Filter: ((a % 25) = 0)
-> Hash Join
- Hash Cond: (t2_2.c = t1_2.c)
- -> Seq Scan on plt2_p3 t2_2
+ Hash Cond: (t2_3.c = t1_3.c)
+ -> Seq Scan on plt2_p3 t2_3
-> Hash
- -> Seq Scan on plt1_p3 t1_2
+ -> Seq Scan on plt1_p3 t1_3
Filter: ((a % 25) = 0)
(23 rows)
@@ -1519,29 +1519,29 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_l t1, prt2_l t2 WHERE t1.a = t2.b AND t1
Sort Key: t1.a
-> Append
-> Hash Join
- Hash Cond: (t2.b = t1.a)
- -> Seq Scan on prt2_l_p1 t2
+ Hash Cond: (t2_1.b = t1_1.a)
+ -> Seq Scan on prt2_l_p1 t2_1
-> Hash
- -> Seq Scan on prt1_l_p1 t1
+ -> Seq Scan on prt1_l_p1 t1_1
Filter: (b = 0)
-> Hash Join
- Hash Cond: (t2_1.b = t1_1.a)
+ Hash Cond: (t2_3.b = t1_3.a)
-> Append
- -> Seq Scan on prt2_l_p2_p1 t2_1
- -> Seq Scan on prt2_l_p2_p2 t2_2
+ -> Seq Scan on prt2_l_p2_p1 t2_3
+ -> Seq Scan on prt2_l_p2_p2 t2_4
-> Hash
-> Append
- -> Seq Scan on prt1_l_p2_p1 t1_1
+ -> Seq Scan on prt1_l_p2_p1 t1_3
Filter: (b = 0)
- -> Seq Scan on prt1_l_p2_p2 t1_2
+ -> Seq Scan on prt1_l_p2_p2 t1_4
Filter: (b = 0)
-> Hash Join
- Hash Cond: (t2_3.b = t1_3.a)
+ Hash Cond: (t2_6.b = t1_5.a)
-> Append
- -> Seq Scan on prt2_l_p3_p1 t2_3
- -> Seq Scan on prt2_l_p3_p2 t2_4
+ -> Seq Scan on prt2_l_p3_p1 t2_6
+ -> Seq Scan on prt2_l_p3_p2 t2_7
-> Hash
- -> Seq Scan on prt1_l_p3_p1 t1_3
+ -> Seq Scan on prt1_l_p3_p1 t1_5
Filter: (b = 0)
(28 rows)
@@ -1563,30 +1563,30 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_l t1 LEFT JOIN prt2_l t2 ON t1.a = t2.b
Sort Key: t1.a, t2.b
-> Append
-> Hash Right Join
- Hash Cond: ((t2.b = t1.a) AND ((t2.c)::text = (t1.c)::text))
- -> Seq Scan on prt2_l_p1 t2
- -> Hash
- -> Seq Scan on prt1_l_p1 t1
- Filter: (b = 0)
- -> Hash Right Join
Hash Cond: ((t2_1.b = t1_1.a) AND ((t2_1.c)::text = (t1_1.c)::text))
- -> Seq Scan on prt2_l_p2_p1 t2_1
+ -> Seq Scan on prt2_l_p1 t2_1
-> Hash
- -> Seq Scan on prt1_l_p2_p1 t1_1
+ -> Seq Scan on prt1_l_p1 t1_1
Filter: (b = 0)
-> Hash Right Join
Hash Cond: ((t2_2.b = t1_2.a) AND ((t2_2.c)::text = (t1_2.c)::text))
- -> Seq Scan on prt2_l_p2_p2 t2_2
+ -> Seq Scan on prt2_l_p2_p1 t2_2
-> Hash
- -> Seq Scan on prt1_l_p2_p2 t1_2
+ -> Seq Scan on prt1_l_p2_p1 t1_2
Filter: (b = 0)
-> Hash Right Join
Hash Cond: ((t2_3.b = t1_3.a) AND ((t2_3.c)::text = (t1_3.c)::text))
+ -> Seq Scan on prt2_l_p2_p2 t2_3
+ -> Hash
+ -> Seq Scan on prt1_l_p2_p2 t1_3
+ Filter: (b = 0)
+ -> Hash Right Join
+ Hash Cond: ((t2_5.b = t1_4.a) AND ((t2_5.c)::text = (t1_4.c)::text))
-> Append
- -> Seq Scan on prt2_l_p3_p1 t2_3
- -> Seq Scan on prt2_l_p3_p2 t2_4
+ -> Seq Scan on prt2_l_p3_p1 t2_5
+ -> Seq Scan on prt2_l_p3_p2 t2_6
-> Hash
- -> Seq Scan on prt1_l_p3_p1 t1_3
+ -> Seq Scan on prt1_l_p3_p1 t1_4
Filter: (b = 0)
(29 rows)
@@ -1616,30 +1616,30 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_l t1 RIGHT JOIN prt2_l t2 ON t1.a = t2.b
Sort Key: t1.a, t2.b
-> Append
-> Hash Right Join
- Hash Cond: ((t1.a = t2.b) AND ((t1.c)::text = (t2.c)::text))
- -> Seq Scan on prt1_l_p1 t1
- -> Hash
- -> Seq Scan on prt2_l_p1 t2
- Filter: (a = 0)
- -> Hash Right Join
Hash Cond: ((t1_1.a = t2_1.b) AND ((t1_1.c)::text = (t2_1.c)::text))
- -> Seq Scan on prt1_l_p2_p1 t1_1
+ -> Seq Scan on prt1_l_p1 t1_1
-> Hash
- -> Seq Scan on prt2_l_p2_p1 t2_1
+ -> Seq Scan on prt2_l_p1 t2_1
Filter: (a = 0)
-> Hash Right Join
Hash Cond: ((t1_2.a = t2_2.b) AND ((t1_2.c)::text = (t2_2.c)::text))
- -> Seq Scan on prt1_l_p2_p2 t1_2
+ -> Seq Scan on prt1_l_p2_p1 t1_2
-> Hash
- -> Seq Scan on prt2_l_p2_p2 t2_2
+ -> Seq Scan on prt2_l_p2_p1 t2_2
Filter: (a = 0)
-> Hash Right Join
Hash Cond: ((t1_3.a = t2_3.b) AND ((t1_3.c)::text = (t2_3.c)::text))
+ -> Seq Scan on prt1_l_p2_p2 t1_3
+ -> Hash
+ -> Seq Scan on prt2_l_p2_p2 t2_3
+ Filter: (a = 0)
+ -> Hash Right Join
+ Hash Cond: ((t1_5.a = t2_4.b) AND ((t1_5.c)::text = (t2_4.c)::text))
-> Append
- -> Seq Scan on prt1_l_p3_p1 t1_3
- -> Seq Scan on prt1_l_p3_p2 t1_4
+ -> Seq Scan on prt1_l_p3_p1 t1_5
+ -> Seq Scan on prt1_l_p3_p2 t1_6
-> Hash
- -> Seq Scan on prt2_l_p3_p1 t2_3
+ -> Seq Scan on prt2_l_p3_p1 t2_4
Filter: (a = 0)
(29 rows)
@@ -1665,32 +1665,32 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM (SELECT * FROM prt1_l WHERE prt1_l.b = 0) t1
Sort Key: prt1_l.a, prt2_l.b
-> Append
-> Hash Full Join
- Hash Cond: ((prt1_l.a = prt2_l.b) AND ((prt1_l.c)::text = (prt2_l.c)::text))
- -> Seq Scan on prt1_l_p1 prt1_l
+ Hash Cond: ((prt1_l_1.a = prt2_l_1.b) AND ((prt1_l_1.c)::text = (prt2_l_1.c)::text))
+ -> Seq Scan on prt1_l_p1 prt1_l_1
Filter: (b = 0)
-> Hash
- -> Seq Scan on prt2_l_p1 prt2_l
+ -> Seq Scan on prt2_l_p1 prt2_l_1
Filter: (a = 0)
-> Hash Full Join
- Hash Cond: ((prt1_l_1.a = prt2_l_1.b) AND ((prt1_l_1.c)::text = (prt2_l_1.c)::text))
- -> Seq Scan on prt1_l_p2_p1 prt1_l_1
+ Hash Cond: ((prt1_l_2.a = prt2_l_2.b) AND ((prt1_l_2.c)::text = (prt2_l_2.c)::text))
+ -> Seq Scan on prt1_l_p2_p1 prt1_l_2
Filter: (b = 0)
-> Hash
- -> Seq Scan on prt2_l_p2_p1 prt2_l_1
+ -> Seq Scan on prt2_l_p2_p1 prt2_l_2
Filter: (a = 0)
-> Hash Full Join
- Hash Cond: ((prt1_l_2.a = prt2_l_2.b) AND ((prt1_l_2.c)::text = (prt2_l_2.c)::text))
- -> Seq Scan on prt1_l_p2_p2 prt1_l_2
+ Hash Cond: ((prt1_l_3.a = prt2_l_3.b) AND ((prt1_l_3.c)::text = (prt2_l_3.c)::text))
+ -> Seq Scan on prt1_l_p2_p2 prt1_l_3
Filter: (b = 0)
-> Hash
- -> Seq Scan on prt2_l_p2_p2 prt2_l_2
+ -> Seq Scan on prt2_l_p2_p2 prt2_l_3
Filter: (a = 0)
-> Hash Full Join
- Hash Cond: ((prt1_l_3.a = prt2_l_3.b) AND ((prt1_l_3.c)::text = (prt2_l_3.c)::text))
- -> Seq Scan on prt1_l_p3_p1 prt1_l_3
+ Hash Cond: ((prt1_l_4.a = prt2_l_4.b) AND ((prt1_l_4.c)::text = (prt2_l_4.c)::text))
+ -> Seq Scan on prt1_l_p3_p1 prt1_l_4
Filter: (b = 0)
-> Hash
- -> Seq Scan on prt2_l_p3_p1 prt2_l_3
+ -> Seq Scan on prt2_l_p3_p1 prt2_l_4
Filter: (a = 0)
(31 rows)
@@ -1726,46 +1726,46 @@ SELECT * FROM prt1_l t1 LEFT JOIN LATERAL
Sort Key: t1.a
-> Append
-> Nested Loop Left Join
- -> Seq Scan on prt1_l_p1 t1
- Filter: (b = 0)
- -> Hash Join
- Hash Cond: ((t3.b = t2.a) AND ((t3.c)::text = (t2.c)::text))
- -> Seq Scan on prt2_l_p1 t3
- -> Hash
- -> Seq Scan on prt1_l_p1 t2
- Filter: ((t1.a = a) AND ((t1.c)::text = (c)::text))
- -> Nested Loop Left Join
- -> Seq Scan on prt1_l_p2_p1 t1_1
+ -> Seq Scan on prt1_l_p1 t1_1
Filter: (b = 0)
-> Hash Join
Hash Cond: ((t3_1.b = t2_1.a) AND ((t3_1.c)::text = (t2_1.c)::text))
- -> Seq Scan on prt2_l_p2_p1 t3_1
+ -> Seq Scan on prt2_l_p1 t3_1
-> Hash
- -> Seq Scan on prt1_l_p2_p1 t2_1
+ -> Seq Scan on prt1_l_p1 t2_1
Filter: ((t1_1.a = a) AND ((t1_1.c)::text = (c)::text))
-> Nested Loop Left Join
- -> Seq Scan on prt1_l_p2_p2 t1_2
+ -> Seq Scan on prt1_l_p2_p1 t1_2
Filter: (b = 0)
-> Hash Join
Hash Cond: ((t3_2.b = t2_2.a) AND ((t3_2.c)::text = (t2_2.c)::text))
- -> Seq Scan on prt2_l_p2_p2 t3_2
+ -> Seq Scan on prt2_l_p2_p1 t3_2
-> Hash
- -> Seq Scan on prt1_l_p2_p2 t2_2
+ -> Seq Scan on prt1_l_p2_p1 t2_2
Filter: ((t1_2.a = a) AND ((t1_2.c)::text = (c)::text))
-> Nested Loop Left Join
- -> Seq Scan on prt1_l_p3_p1 t1_3
+ -> Seq Scan on prt1_l_p2_p2 t1_3
Filter: (b = 0)
-> Hash Join
Hash Cond: ((t3_3.b = t2_3.a) AND ((t3_3.c)::text = (t2_3.c)::text))
+ -> Seq Scan on prt2_l_p2_p2 t3_3
+ -> Hash
+ -> Seq Scan on prt1_l_p2_p2 t2_3
+ Filter: ((t1_3.a = a) AND ((t1_3.c)::text = (c)::text))
+ -> Nested Loop Left Join
+ -> Seq Scan on prt1_l_p3_p1 t1_4
+ Filter: (b = 0)
+ -> Hash Join
+ Hash Cond: ((t3_5.b = t2_5.a) AND ((t3_5.c)::text = (t2_5.c)::text))
-> Append
- -> Seq Scan on prt2_l_p3_p1 t3_3
- -> Seq Scan on prt2_l_p3_p2 t3_4
+ -> Seq Scan on prt2_l_p3_p1 t3_5
+ -> Seq Scan on prt2_l_p3_p2 t3_6
-> Hash
-> Append
- -> Seq Scan on prt1_l_p3_p1 t2_3
- Filter: ((t1_3.a = a) AND ((t1_3.c)::text = (c)::text))
- -> Seq Scan on prt1_l_p3_p2 t2_4
- Filter: ((t1_3.a = a) AND ((t1_3.c)::text = (c)::text))
+ -> Seq Scan on prt1_l_p3_p1 t2_5
+ Filter: ((t1_4.a = a) AND ((t1_4.c)::text = (c)::text))
+ -> Seq Scan on prt1_l_p3_p2 t2_6
+ Filter: ((t1_4.a = a) AND ((t1_4.c)::text = (c)::text))
(44 rows)
SELECT * FROM prt1_l t1 LEFT JOIN LATERAL
@@ -1795,11 +1795,11 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM (SELECT * FROM prt1_l WHERE a = 1 AND a = 2)
Hash Left Join
Hash Cond: ((t2.b = a) AND (t2.a = b) AND ((t2.c)::text = (c)::text))
-> Append
- -> Seq Scan on prt2_l_p1 t2
- -> Seq Scan on prt2_l_p2_p1 t2_1
- -> Seq Scan on prt2_l_p2_p2 t2_2
- -> Seq Scan on prt2_l_p3_p1 t2_3
- -> Seq Scan on prt2_l_p3_p2 t2_4
+ -> Seq Scan on prt2_l_p1 t2_1
+ -> Seq Scan on prt2_l_p2_p1 t2_2
+ -> Seq Scan on prt2_l_p2_p2 t2_3
+ -> Seq Scan on prt2_l_p3_p1 t2_4
+ -> Seq Scan on prt2_l_p3_p2 t2_5
-> Hash
-> Result
One-Time Filter: false
@@ -1881,14 +1881,14 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1 t1, prt4_n t2 WHERE t1.a = t2.a;
Hash Join
Hash Cond: (t1.a = t2.a)
-> Append
- -> Seq Scan on prt1_p1 t1
- -> Seq Scan on prt1_p2 t1_1
- -> Seq Scan on prt1_p3 t1_2
+ -> Seq Scan on prt1_p1 t1_1
+ -> Seq Scan on prt1_p2 t1_2
+ -> Seq Scan on prt1_p3 t1_3
-> Hash
-> Append
- -> Seq Scan on prt4_n_p1 t2
- -> Seq Scan on prt4_n_p2 t2_1
- -> Seq Scan on prt4_n_p3 t2_2
+ -> Seq Scan on prt4_n_p1 t2_1
+ -> Seq Scan on prt4_n_p2 t2_2
+ -> Seq Scan on prt4_n_p3 t2_3
(11 rows)
EXPLAIN (COSTS OFF)
@@ -1898,26 +1898,26 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1 t1, prt4_n t2, prt2 t3 WHERE t1.a = t2.a
Hash Join
Hash Cond: (t2.a = t1.a)
-> Append
- -> Seq Scan on prt4_n_p1 t2
- -> Seq Scan on prt4_n_p2 t2_1
- -> Seq Scan on prt4_n_p3 t2_2
+ -> Seq Scan on prt4_n_p1 t2_1
+ -> Seq Scan on prt4_n_p2 t2_2
+ -> Seq Scan on prt4_n_p3 t2_3
-> Hash
-> Append
-> Hash Join
- Hash Cond: (t1.a = t3.b)
- -> Seq Scan on prt1_p1 t1
- -> Hash
- -> Seq Scan on prt2_p1 t3
- -> Hash Join
Hash Cond: (t1_1.a = t3_1.b)
- -> Seq Scan on prt1_p2 t1_1
+ -> Seq Scan on prt1_p1 t1_1
-> Hash
- -> Seq Scan on prt2_p2 t3_1
+ -> Seq Scan on prt2_p1 t3_1
-> Hash Join
Hash Cond: (t1_2.a = t3_2.b)
- -> Seq Scan on prt1_p3 t1_2
+ -> Seq Scan on prt1_p2 t1_2
+ -> Hash
+ -> Seq Scan on prt2_p2 t3_2
+ -> Hash Join
+ Hash Cond: (t1_3.a = t3_3.b)
+ -> Seq Scan on prt1_p3 t1_3
-> Hash
- -> Seq Scan on prt2_p3 t3_2
+ -> Seq Scan on prt2_p3 t3_3
(23 rows)
-- partitionwise join can not be applied if there are no equi-join conditions
@@ -1928,15 +1928,15 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1 t1 LEFT JOIN prt2 t2 ON (t1.a < t2.b);
---------------------------------------------------------
Nested Loop Left Join
-> Append
- -> Seq Scan on prt1_p1 t1
- -> Seq Scan on prt1_p2 t1_1
- -> Seq Scan on prt1_p3 t1_2
+ -> Seq Scan on prt1_p1 t1_1
+ -> Seq Scan on prt1_p2 t1_2
+ -> Seq Scan on prt1_p3 t1_3
-> Append
- -> Index Scan using iprt2_p1_b on prt2_p1 t2
+ -> Index Scan using iprt2_p1_b on prt2_p1 t2_1
Index Cond: (b > t1.a)
- -> Index Scan using iprt2_p2_b on prt2_p2 t2_1
+ -> Index Scan using iprt2_p2_b on prt2_p2 t2_2
Index Cond: (b > t1.a)
- -> Index Scan using iprt2_p3_b on prt2_p3 t2_2
+ -> Index Scan using iprt2_p3_b on prt2_p3 t2_3
Index Cond: (b > t1.a)
(12 rows)
@@ -1949,14 +1949,14 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_m t1, prt2_m t2 WHERE t1.a = (t2.b + t2.
Hash Join
Hash Cond: (((t2.b + t2.a) / 2) = t1.a)
-> Append
- -> Seq Scan on prt2_m_p1 t2
- -> Seq Scan on prt2_m_p2 t2_1
- -> Seq Scan on prt2_m_p3 t2_2
+ -> Seq Scan on prt2_m_p1 t2_1
+ -> Seq Scan on prt2_m_p2 t2_2
+ -> Seq Scan on prt2_m_p3 t2_3
-> Hash
-> Append
- -> Seq Scan on prt1_m_p1 t1
- -> Seq Scan on prt1_m_p2 t1_1
- -> Seq Scan on prt1_m_p3 t1_2
+ -> Seq Scan on prt1_m_p1 t1_1
+ -> Seq Scan on prt1_m_p2 t1_2
+ -> Seq Scan on prt1_m_p3 t1_3
(11 rows)
-- equi-join between out-of-order partition key columns does not qualify for
@@ -1968,14 +1968,14 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_m t1 LEFT JOIN prt2_m t2 ON t1.a = t2.b;
Hash Left Join
Hash Cond: (t1.a = t2.b)
-> Append
- -> Seq Scan on prt1_m_p1 t1
- -> Seq Scan on prt1_m_p2 t1_1
- -> Seq Scan on prt1_m_p3 t1_2
+ -> Seq Scan on prt1_m_p1 t1_1
+ -> Seq Scan on prt1_m_p2 t1_2
+ -> Seq Scan on prt1_m_p3 t1_3
-> Hash
-> Append
- -> Seq Scan on prt2_m_p1 t2
- -> Seq Scan on prt2_m_p2 t2_1
- -> Seq Scan on prt2_m_p3 t2_2
+ -> Seq Scan on prt2_m_p1 t2_1
+ -> Seq Scan on prt2_m_p2 t2_2
+ -> Seq Scan on prt2_m_p3 t2_3
(11 rows)
-- equi-join between non-key columns does not qualify for partitionwise join
@@ -1986,14 +1986,14 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_m t1 LEFT JOIN prt2_m t2 ON t1.c = t2.c;
Hash Left Join
Hash Cond: (t1.c = t2.c)
-> Append
- -> Seq Scan on prt1_m_p1 t1
- -> Seq Scan on prt1_m_p2 t1_1
- -> Seq Scan on prt1_m_p3 t1_2
+ -> Seq Scan on prt1_m_p1 t1_1
+ -> Seq Scan on prt1_m_p2 t1_2
+ -> Seq Scan on prt1_m_p3 t1_3
-> Hash
-> Append
- -> Seq Scan on prt2_m_p1 t2
- -> Seq Scan on prt2_m_p2 t2_1
- -> Seq Scan on prt2_m_p3 t2_2
+ -> Seq Scan on prt2_m_p1 t2_1
+ -> Seq Scan on prt2_m_p2 t2_2
+ -> Seq Scan on prt2_m_p3 t2_3
(11 rows)
-- partitionwise join can not be applied between tables with different
@@ -2005,12 +2005,12 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_n t1 LEFT JOIN prt2_n t2 ON (t1.c = t2.c
Hash Right Join
Hash Cond: (t2.c = (t1.c)::text)
-> Append
- -> Seq Scan on prt2_n_p1 t2
- -> Seq Scan on prt2_n_p2 t2_1
+ -> Seq Scan on prt2_n_p1 t2_1
+ -> Seq Scan on prt2_n_p2 t2_2
-> Hash
-> Append
- -> Seq Scan on prt1_n_p1 t1
- -> Seq Scan on prt1_n_p2 t1_1
+ -> Seq Scan on prt1_n_p1 t1_1
+ -> Seq Scan on prt1_n_p2 t1_2
(9 rows)
EXPLAIN (COSTS OFF)
@@ -2020,19 +2020,19 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_n t1 JOIN prt2_n t2 ON (t1.c = t2.c) JOI
Hash Join
Hash Cond: (t2.c = (t1.c)::text)
-> Append
- -> Seq Scan on prt2_n_p1 t2
- -> Seq Scan on prt2_n_p2 t2_1
+ -> Seq Scan on prt2_n_p1 t2_1
+ -> Seq Scan on prt2_n_p2 t2_2
-> Hash
-> Hash Join
Hash Cond: (t3.c = (t1.c)::text)
-> Append
- -> Seq Scan on plt1_p1 t3
- -> Seq Scan on plt1_p2 t3_1
- -> Seq Scan on plt1_p3 t3_2
+ -> Seq Scan on plt1_p1 t3_1
+ -> Seq Scan on plt1_p2 t3_2
+ -> Seq Scan on plt1_p3 t3_3
-> Hash
-> Append
- -> Seq Scan on prt1_n_p1 t1
- -> Seq Scan on prt1_n_p2 t1_1
+ -> Seq Scan on prt1_n_p1 t1_1
+ -> Seq Scan on prt1_n_p2 t1_2
(16 rows)
-- partitionwise join can not be applied for a join between list and range
@@ -2044,13 +2044,13 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_n t1 FULL JOIN prt1 t2 ON (t1.c = t2.c);
Hash Full Join
Hash Cond: ((t2.c)::text = (t1.c)::text)
-> Append
- -> Seq Scan on prt1_p1 t2
- -> Seq Scan on prt1_p2 t2_1
- -> Seq Scan on prt1_p3 t2_2
+ -> Seq Scan on prt1_p1 t2_1
+ -> Seq Scan on prt1_p2 t2_2
+ -> Seq Scan on prt1_p3 t2_3
-> Hash
-> Append
- -> Seq Scan on prt1_n_p1 t1
- -> Seq Scan on prt1_n_p2 t1_1
+ -> Seq Scan on prt1_n_p1 t1_1
+ -> Seq Scan on prt1_n_p2 t1_2
(10 rows)
-- partitionwise join can not be applied if only one of joining tables has
@@ -2067,16 +2067,16 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1 t1, prt2 t2 WHERE t1.a = t2.b AND t1.b =
-> Hash Join
Hash Cond: (t2.b = t1.a)
-> Append
- -> Seq Scan on prt2_p1 t2
- -> Seq Scan on prt2_p2 t2_1
- -> Seq Scan on prt2_p3 t2_2
+ -> Seq Scan on prt2_p1 t2_1
+ -> Seq Scan on prt2_p2 t2_2
+ -> Seq Scan on prt2_p3 t2_3
-> Hash
-> Append
- -> Seq Scan on prt1_p1 t1
+ -> Seq Scan on prt1_p1 t1_1
Filter: (b = 0)
- -> Seq Scan on prt1_p2 t1_1
+ -> Seq Scan on prt1_p2 t1_2
Filter: (b = 0)
- -> Seq Scan on prt1_p3 t1_2
+ -> Seq Scan on prt1_p3 t1_3
Filter: (b = 0)
(16 rows)
diff --git a/src/test/regress/expected/partition_prune.out b/src/test/regress/expected/partition_prune.out
index f9eeda60e6a..57680f1d292 100644
--- a/src/test/regress/expected/partition_prune.out
+++ b/src/test/regress/expected/partition_prune.out
@@ -14,21 +14,21 @@ explain (costs off) select * from lp;
QUERY PLAN
-----------------------------------
Append
- -> Seq Scan on lp_ad lp
- -> Seq Scan on lp_bc lp_1
- -> Seq Scan on lp_ef lp_2
- -> Seq Scan on lp_g lp_3
- -> Seq Scan on lp_null lp_4
- -> Seq Scan on lp_default lp_5
+ -> Seq Scan on lp_ad lp_1
+ -> Seq Scan on lp_bc lp_2
+ -> Seq Scan on lp_ef lp_3
+ -> Seq Scan on lp_g lp_4
+ -> Seq Scan on lp_null lp_5
+ -> Seq Scan on lp_default lp_6
(7 rows)
explain (costs off) select * from lp where a > 'a' and a < 'd';
QUERY PLAN
-----------------------------------------------------------
Append
- -> Seq Scan on lp_bc lp
+ -> Seq Scan on lp_bc lp_1
Filter: ((a > 'a'::bpchar) AND (a < 'd'::bpchar))
- -> Seq Scan on lp_default lp_1
+ -> Seq Scan on lp_default lp_2
Filter: ((a > 'a'::bpchar) AND (a < 'd'::bpchar))
(5 rows)
@@ -36,11 +36,11 @@ explain (costs off) select * from lp where a > 'a' and a <= 'd';
QUERY PLAN
------------------------------------------------------------
Append
- -> Seq Scan on lp_ad lp
+ -> Seq Scan on lp_ad lp_1
Filter: ((a > 'a'::bpchar) AND (a <= 'd'::bpchar))
- -> Seq Scan on lp_bc lp_1
+ -> Seq Scan on lp_bc lp_2
Filter: ((a > 'a'::bpchar) AND (a <= 'd'::bpchar))
- -> Seq Scan on lp_default lp_2
+ -> Seq Scan on lp_default lp_3
Filter: ((a > 'a'::bpchar) AND (a <= 'd'::bpchar))
(7 rows)
@@ -62,15 +62,15 @@ explain (costs off) select * from lp where a is not null;
QUERY PLAN
-----------------------------------
Append
- -> Seq Scan on lp_ad lp
+ -> Seq Scan on lp_ad lp_1
Filter: (a IS NOT NULL)
- -> Seq Scan on lp_bc lp_1
+ -> Seq Scan on lp_bc lp_2
Filter: (a IS NOT NULL)
- -> Seq Scan on lp_ef lp_2
+ -> Seq Scan on lp_ef lp_3
Filter: (a IS NOT NULL)
- -> Seq Scan on lp_g lp_3
+ -> Seq Scan on lp_g lp_4
Filter: (a IS NOT NULL)
- -> Seq Scan on lp_default lp_4
+ -> Seq Scan on lp_default lp_5
Filter: (a IS NOT NULL)
(11 rows)
@@ -85,9 +85,9 @@ explain (costs off) select * from lp where a = 'a' or a = 'c';
QUERY PLAN
----------------------------------------------------------
Append
- -> Seq Scan on lp_ad lp
+ -> Seq Scan on lp_ad lp_1
Filter: ((a = 'a'::bpchar) OR (a = 'c'::bpchar))
- -> Seq Scan on lp_bc lp_1
+ -> Seq Scan on lp_bc lp_2
Filter: ((a = 'a'::bpchar) OR (a = 'c'::bpchar))
(5 rows)
@@ -95,9 +95,9 @@ explain (costs off) select * from lp where a is not null and (a = 'a' or a = 'c'
QUERY PLAN
--------------------------------------------------------------------------------
Append
- -> Seq Scan on lp_ad lp
+ -> Seq Scan on lp_ad lp_1
Filter: ((a IS NOT NULL) AND ((a = 'a'::bpchar) OR (a = 'c'::bpchar)))
- -> Seq Scan on lp_bc lp_1
+ -> Seq Scan on lp_bc lp_2
Filter: ((a IS NOT NULL) AND ((a = 'a'::bpchar) OR (a = 'c'::bpchar)))
(5 rows)
@@ -105,13 +105,13 @@ explain (costs off) select * from lp where a <> 'g';
QUERY PLAN
------------------------------------
Append
- -> Seq Scan on lp_ad lp
+ -> Seq Scan on lp_ad lp_1
Filter: (a <> 'g'::bpchar)
- -> Seq Scan on lp_bc lp_1
+ -> Seq Scan on lp_bc lp_2
Filter: (a <> 'g'::bpchar)
- -> Seq Scan on lp_ef lp_2
+ -> Seq Scan on lp_ef lp_3
Filter: (a <> 'g'::bpchar)
- -> Seq Scan on lp_default lp_3
+ -> Seq Scan on lp_default lp_4
Filter: (a <> 'g'::bpchar)
(9 rows)
@@ -119,13 +119,13 @@ explain (costs off) select * from lp where a <> 'a' and a <> 'd';
QUERY PLAN
-------------------------------------------------------------
Append
- -> Seq Scan on lp_bc lp
+ -> Seq Scan on lp_bc lp_1
Filter: ((a <> 'a'::bpchar) AND (a <> 'd'::bpchar))
- -> Seq Scan on lp_ef lp_1
+ -> Seq Scan on lp_ef lp_2
Filter: ((a <> 'a'::bpchar) AND (a <> 'd'::bpchar))
- -> Seq Scan on lp_g lp_2
+ -> Seq Scan on lp_g lp_3
Filter: ((a <> 'a'::bpchar) AND (a <> 'd'::bpchar))
- -> Seq Scan on lp_default lp_3
+ -> Seq Scan on lp_default lp_4
Filter: ((a <> 'a'::bpchar) AND (a <> 'd'::bpchar))
(9 rows)
@@ -133,13 +133,13 @@ explain (costs off) select * from lp where a not in ('a', 'd');
QUERY PLAN
------------------------------------------------
Append
- -> Seq Scan on lp_bc lp
+ -> Seq Scan on lp_bc lp_1
Filter: (a <> ALL ('{a,d}'::bpchar[]))
- -> Seq Scan on lp_ef lp_1
+ -> Seq Scan on lp_ef lp_2
Filter: (a <> ALL ('{a,d}'::bpchar[]))
- -> Seq Scan on lp_g lp_2
+ -> Seq Scan on lp_g lp_3
Filter: (a <> ALL ('{a,d}'::bpchar[]))
- -> Seq Scan on lp_default lp_3
+ -> Seq Scan on lp_default lp_4
Filter: (a <> ALL ('{a,d}'::bpchar[]))
(9 rows)
@@ -160,11 +160,11 @@ explain (costs off) select * from coll_pruning where a collate "POSIX" = 'a' col
QUERY PLAN
---------------------------------------------------------
Append
- -> Seq Scan on coll_pruning_a coll_pruning
+ -> Seq Scan on coll_pruning_a coll_pruning_1
Filter: ((a)::text = 'a'::text COLLATE "POSIX")
- -> Seq Scan on coll_pruning_b coll_pruning_1
+ -> Seq Scan on coll_pruning_b coll_pruning_2
Filter: ((a)::text = 'a'::text COLLATE "POSIX")
- -> Seq Scan on coll_pruning_def coll_pruning_2
+ -> Seq Scan on coll_pruning_def coll_pruning_3
Filter: ((a)::text = 'a'::text COLLATE "POSIX")
(7 rows)
@@ -207,9 +207,9 @@ explain (costs off) select * from rlp where a <= 1;
QUERY PLAN
------------------------------
Append
- -> Seq Scan on rlp1 rlp
+ -> Seq Scan on rlp1 rlp_1
Filter: (a <= 1)
- -> Seq Scan on rlp2 rlp_1
+ -> Seq Scan on rlp2 rlp_2
Filter: (a <= 1)
(5 rows)
@@ -231,35 +231,35 @@ explain (costs off) select * from rlp where a = 1::numeric; /* no pruning */
QUERY PLAN
-----------------------------------------------
Append
- -> Seq Scan on rlp1 rlp
+ -> Seq Scan on rlp1 rlp_1
Filter: ((a)::numeric = '1'::numeric)
- -> Seq Scan on rlp2 rlp_1
+ -> Seq Scan on rlp2 rlp_2
Filter: ((a)::numeric = '1'::numeric)
- -> Seq Scan on rlp3abcd rlp_2
+ -> Seq Scan on rlp3abcd rlp_3
Filter: ((a)::numeric = '1'::numeric)
- -> Seq Scan on rlp3efgh rlp_3
+ -> Seq Scan on rlp3efgh rlp_4
Filter: ((a)::numeric = '1'::numeric)
- -> Seq Scan on rlp3nullxy rlp_4
+ -> Seq Scan on rlp3nullxy rlp_5
Filter: ((a)::numeric = '1'::numeric)
- -> Seq Scan on rlp3_default rlp_5
+ -> Seq Scan on rlp3_default rlp_6
Filter: ((a)::numeric = '1'::numeric)
- -> Seq Scan on rlp4_1 rlp_6
+ -> Seq Scan on rlp4_1 rlp_7
Filter: ((a)::numeric = '1'::numeric)
- -> Seq Scan on rlp4_2 rlp_7
+ -> Seq Scan on rlp4_2 rlp_8
Filter: ((a)::numeric = '1'::numeric)
- -> Seq Scan on rlp4_default rlp_8
+ -> Seq Scan on rlp4_default rlp_9
Filter: ((a)::numeric = '1'::numeric)
- -> Seq Scan on rlp5_1 rlp_9
+ -> Seq Scan on rlp5_1 rlp_10
Filter: ((a)::numeric = '1'::numeric)
- -> Seq Scan on rlp5_default rlp_10
+ -> Seq Scan on rlp5_default rlp_11
Filter: ((a)::numeric = '1'::numeric)
- -> Seq Scan on rlp_default_10 rlp_11
+ -> Seq Scan on rlp_default_10 rlp_12
Filter: ((a)::numeric = '1'::numeric)
- -> Seq Scan on rlp_default_30 rlp_12
+ -> Seq Scan on rlp_default_30 rlp_13
Filter: ((a)::numeric = '1'::numeric)
- -> Seq Scan on rlp_default_null rlp_13
+ -> Seq Scan on rlp_default_null rlp_14
Filter: ((a)::numeric = '1'::numeric)
- -> Seq Scan on rlp_default_default rlp_14
+ -> Seq Scan on rlp_default_default rlp_15
Filter: ((a)::numeric = '1'::numeric)
(31 rows)
@@ -267,13 +267,13 @@ explain (costs off) select * from rlp where a <= 10;
QUERY PLAN
---------------------------------------------
Append
- -> Seq Scan on rlp1 rlp
+ -> Seq Scan on rlp1 rlp_1
Filter: (a <= 10)
- -> Seq Scan on rlp2 rlp_1
+ -> Seq Scan on rlp2 rlp_2
Filter: (a <= 10)
- -> Seq Scan on rlp_default_10 rlp_2
+ -> Seq Scan on rlp_default_10 rlp_3
Filter: (a <= 10)
- -> Seq Scan on rlp_default_default rlp_3
+ -> Seq Scan on rlp_default_default rlp_4
Filter: (a <= 10)
(9 rows)
@@ -281,27 +281,27 @@ explain (costs off) select * from rlp where a > 10;
QUERY PLAN
----------------------------------------------
Append
- -> Seq Scan on rlp3abcd rlp
+ -> Seq Scan on rlp3abcd rlp_1
Filter: (a > 10)
- -> Seq Scan on rlp3efgh rlp_1
+ -> Seq Scan on rlp3efgh rlp_2
Filter: (a > 10)
- -> Seq Scan on rlp3nullxy rlp_2
+ -> Seq Scan on rlp3nullxy rlp_3
Filter: (a > 10)
- -> Seq Scan on rlp3_default rlp_3
+ -> Seq Scan on rlp3_default rlp_4
Filter: (a > 10)
- -> Seq Scan on rlp4_1 rlp_4
+ -> Seq Scan on rlp4_1 rlp_5
Filter: (a > 10)
- -> Seq Scan on rlp4_2 rlp_5
+ -> Seq Scan on rlp4_2 rlp_6
Filter: (a > 10)
- -> Seq Scan on rlp4_default rlp_6
+ -> Seq Scan on rlp4_default rlp_7
Filter: (a > 10)
- -> Seq Scan on rlp5_1 rlp_7
+ -> Seq Scan on rlp5_1 rlp_8
Filter: (a > 10)
- -> Seq Scan on rlp5_default rlp_8
+ -> Seq Scan on rlp5_default rlp_9
Filter: (a > 10)
- -> Seq Scan on rlp_default_30 rlp_9
+ -> Seq Scan on rlp_default_30 rlp_10
Filter: (a > 10)
- -> Seq Scan on rlp_default_default rlp_10
+ -> Seq Scan on rlp_default_default rlp_11
Filter: (a > 10)
(23 rows)
@@ -309,13 +309,13 @@ explain (costs off) select * from rlp where a < 15;
QUERY PLAN
---------------------------------------------
Append
- -> Seq Scan on rlp1 rlp
+ -> Seq Scan on rlp1 rlp_1
Filter: (a < 15)
- -> Seq Scan on rlp2 rlp_1
+ -> Seq Scan on rlp2 rlp_2
Filter: (a < 15)
- -> Seq Scan on rlp_default_10 rlp_2
+ -> Seq Scan on rlp_default_10 rlp_3
Filter: (a < 15)
- -> Seq Scan on rlp_default_default rlp_3
+ -> Seq Scan on rlp_default_default rlp_4
Filter: (a < 15)
(9 rows)
@@ -323,21 +323,21 @@ explain (costs off) select * from rlp where a <= 15;
QUERY PLAN
---------------------------------------------
Append
- -> Seq Scan on rlp1 rlp
+ -> Seq Scan on rlp1 rlp_1
Filter: (a <= 15)
- -> Seq Scan on rlp2 rlp_1
+ -> Seq Scan on rlp2 rlp_2
Filter: (a <= 15)
- -> Seq Scan on rlp3abcd rlp_2
+ -> Seq Scan on rlp3abcd rlp_3
Filter: (a <= 15)
- -> Seq Scan on rlp3efgh rlp_3
+ -> Seq Scan on rlp3efgh rlp_4
Filter: (a <= 15)
- -> Seq Scan on rlp3nullxy rlp_4
+ -> Seq Scan on rlp3nullxy rlp_5
Filter: (a <= 15)
- -> Seq Scan on rlp3_default rlp_5
+ -> Seq Scan on rlp3_default rlp_6
Filter: (a <= 15)
- -> Seq Scan on rlp_default_10 rlp_6
+ -> Seq Scan on rlp_default_10 rlp_7
Filter: (a <= 15)
- -> Seq Scan on rlp_default_default rlp_7
+ -> Seq Scan on rlp_default_default rlp_8
Filter: (a <= 15)
(17 rows)
@@ -345,21 +345,21 @@ explain (costs off) select * from rlp where a > 15 and b = 'ab';
QUERY PLAN
---------------------------------------------------------
Append
- -> Seq Scan on rlp3abcd rlp
+ -> Seq Scan on rlp3abcd rlp_1
Filter: ((a > 15) AND ((b)::text = 'ab'::text))
- -> Seq Scan on rlp4_1 rlp_1
+ -> Seq Scan on rlp4_1 rlp_2
Filter: ((a > 15) AND ((b)::text = 'ab'::text))
- -> Seq Scan on rlp4_2 rlp_2
+ -> Seq Scan on rlp4_2 rlp_3
Filter: ((a > 15) AND ((b)::text = 'ab'::text))
- -> Seq Scan on rlp4_default rlp_3
+ -> Seq Scan on rlp4_default rlp_4
Filter: ((a > 15) AND ((b)::text = 'ab'::text))
- -> Seq Scan on rlp5_1 rlp_4
+ -> Seq Scan on rlp5_1 rlp_5
Filter: ((a > 15) AND ((b)::text = 'ab'::text))
- -> Seq Scan on rlp5_default rlp_5
+ -> Seq Scan on rlp5_default rlp_6
Filter: ((a > 15) AND ((b)::text = 'ab'::text))
- -> Seq Scan on rlp_default_30 rlp_6
+ -> Seq Scan on rlp_default_30 rlp_7
Filter: ((a > 15) AND ((b)::text = 'ab'::text))
- -> Seq Scan on rlp_default_default rlp_7
+ -> Seq Scan on rlp_default_default rlp_8
Filter: ((a > 15) AND ((b)::text = 'ab'::text))
(17 rows)
@@ -367,13 +367,13 @@ explain (costs off) select * from rlp where a = 16;
QUERY PLAN
--------------------------------------
Append
- -> Seq Scan on rlp3abcd rlp
+ -> Seq Scan on rlp3abcd rlp_1
Filter: (a = 16)
- -> Seq Scan on rlp3efgh rlp_1
+ -> Seq Scan on rlp3efgh rlp_2
Filter: (a = 16)
- -> Seq Scan on rlp3nullxy rlp_2
+ -> Seq Scan on rlp3nullxy rlp_3
Filter: (a = 16)
- -> Seq Scan on rlp3_default rlp_3
+ -> Seq Scan on rlp3_default rlp_4
Filter: (a = 16)
(9 rows)
@@ -395,9 +395,9 @@ explain (costs off) select * from rlp where a = 16 and b <= 'ab';
QUERY PLAN
----------------------------------------------------------
Append
- -> Seq Scan on rlp3abcd rlp
+ -> Seq Scan on rlp3abcd rlp_1
Filter: (((b)::text <= 'ab'::text) AND (a = 16))
- -> Seq Scan on rlp3_default rlp_1
+ -> Seq Scan on rlp3_default rlp_2
Filter: (((b)::text <= 'ab'::text) AND (a = 16))
(5 rows)
@@ -412,13 +412,13 @@ explain (costs off) select * from rlp where a = 16 and b is not null;
QUERY PLAN
------------------------------------------------
Append
- -> Seq Scan on rlp3abcd rlp
+ -> Seq Scan on rlp3abcd rlp_1
Filter: ((b IS NOT NULL) AND (a = 16))
- -> Seq Scan on rlp3efgh rlp_1
+ -> Seq Scan on rlp3efgh rlp_2
Filter: ((b IS NOT NULL) AND (a = 16))
- -> Seq Scan on rlp3nullxy rlp_2
+ -> Seq Scan on rlp3nullxy rlp_3
Filter: ((b IS NOT NULL) AND (a = 16))
- -> Seq Scan on rlp3_default rlp_3
+ -> Seq Scan on rlp3_default rlp_4
Filter: ((b IS NOT NULL) AND (a = 16))
(9 rows)
@@ -433,33 +433,33 @@ explain (costs off) select * from rlp where a is not null;
QUERY PLAN
----------------------------------------------
Append
- -> Seq Scan on rlp1 rlp
+ -> Seq Scan on rlp1 rlp_1
Filter: (a IS NOT NULL)
- -> Seq Scan on rlp2 rlp_1
+ -> Seq Scan on rlp2 rlp_2
Filter: (a IS NOT NULL)
- -> Seq Scan on rlp3abcd rlp_2
+ -> Seq Scan on rlp3abcd rlp_3
Filter: (a IS NOT NULL)
- -> Seq Scan on rlp3efgh rlp_3
+ -> Seq Scan on rlp3efgh rlp_4
Filter: (a IS NOT NULL)
- -> Seq Scan on rlp3nullxy rlp_4
+ -> Seq Scan on rlp3nullxy rlp_5
Filter: (a IS NOT NULL)
- -> Seq Scan on rlp3_default rlp_5
+ -> Seq Scan on rlp3_default rlp_6
Filter: (a IS NOT NULL)
- -> Seq Scan on rlp4_1 rlp_6
+ -> Seq Scan on rlp4_1 rlp_7
Filter: (a IS NOT NULL)
- -> Seq Scan on rlp4_2 rlp_7
+ -> Seq Scan on rlp4_2 rlp_8
Filter: (a IS NOT NULL)
- -> Seq Scan on rlp4_default rlp_8
+ -> Seq Scan on rlp4_default rlp_9
Filter: (a IS NOT NULL)
- -> Seq Scan on rlp5_1 rlp_9
+ -> Seq Scan on rlp5_1 rlp_10
Filter: (a IS NOT NULL)
- -> Seq Scan on rlp5_default rlp_10
+ -> Seq Scan on rlp5_default rlp_11
Filter: (a IS NOT NULL)
- -> Seq Scan on rlp_default_10 rlp_11
+ -> Seq Scan on rlp_default_10 rlp_12
Filter: (a IS NOT NULL)
- -> Seq Scan on rlp_default_30 rlp_12
+ -> Seq Scan on rlp_default_30 rlp_13
Filter: (a IS NOT NULL)
- -> Seq Scan on rlp_default_default rlp_13
+ -> Seq Scan on rlp_default_default rlp_14
Filter: (a IS NOT NULL)
(29 rows)
@@ -467,11 +467,11 @@ explain (costs off) select * from rlp where a > 30;
QUERY PLAN
---------------------------------------------
Append
- -> Seq Scan on rlp5_1 rlp
+ -> Seq Scan on rlp5_1 rlp_1
Filter: (a > 30)
- -> Seq Scan on rlp5_default rlp_1
+ -> Seq Scan on rlp5_default rlp_2
Filter: (a > 30)
- -> Seq Scan on rlp_default_default rlp_2
+ -> Seq Scan on rlp_default_default rlp_3
Filter: (a > 30)
(7 rows)
@@ -486,31 +486,31 @@ explain (costs off) select * from rlp where a <= 31;
QUERY PLAN
----------------------------------------------
Append
- -> Seq Scan on rlp1 rlp
+ -> Seq Scan on rlp1 rlp_1
Filter: (a <= 31)
- -> Seq Scan on rlp2 rlp_1
+ -> Seq Scan on rlp2 rlp_2
Filter: (a <= 31)
- -> Seq Scan on rlp3abcd rlp_2
+ -> Seq Scan on rlp3abcd rlp_3
Filter: (a <= 31)
- -> Seq Scan on rlp3efgh rlp_3
+ -> Seq Scan on rlp3efgh rlp_4
Filter: (a <= 31)
- -> Seq Scan on rlp3nullxy rlp_4
+ -> Seq Scan on rlp3nullxy rlp_5
Filter: (a <= 31)
- -> Seq Scan on rlp3_default rlp_5
+ -> Seq Scan on rlp3_default rlp_6
Filter: (a <= 31)
- -> Seq Scan on rlp4_1 rlp_6
+ -> Seq Scan on rlp4_1 rlp_7
Filter: (a <= 31)
- -> Seq Scan on rlp4_2 rlp_7
+ -> Seq Scan on rlp4_2 rlp_8
Filter: (a <= 31)
- -> Seq Scan on rlp4_default rlp_8
+ -> Seq Scan on rlp4_default rlp_9
Filter: (a <= 31)
- -> Seq Scan on rlp5_1 rlp_9
+ -> Seq Scan on rlp5_1 rlp_10
Filter: (a <= 31)
- -> Seq Scan on rlp_default_10 rlp_10
+ -> Seq Scan on rlp_default_10 rlp_11
Filter: (a <= 31)
- -> Seq Scan on rlp_default_30 rlp_11
+ -> Seq Scan on rlp_default_30 rlp_12
Filter: (a <= 31)
- -> Seq Scan on rlp_default_default rlp_12
+ -> Seq Scan on rlp_default_default rlp_13
Filter: (a <= 31)
(27 rows)
@@ -525,29 +525,29 @@ explain (costs off) select * from rlp where a = 1 or b = 'ab';
QUERY PLAN
-------------------------------------------------------
Append
- -> Seq Scan on rlp1 rlp
+ -> Seq Scan on rlp1 rlp_1
Filter: ((a = 1) OR ((b)::text = 'ab'::text))
- -> Seq Scan on rlp2 rlp_1
+ -> Seq Scan on rlp2 rlp_2
Filter: ((a = 1) OR ((b)::text = 'ab'::text))
- -> Seq Scan on rlp3abcd rlp_2
+ -> Seq Scan on rlp3abcd rlp_3
Filter: ((a = 1) OR ((b)::text = 'ab'::text))
- -> Seq Scan on rlp4_1 rlp_3
+ -> Seq Scan on rlp4_1 rlp_4
Filter: ((a = 1) OR ((b)::text = 'ab'::text))
- -> Seq Scan on rlp4_2 rlp_4
+ -> Seq Scan on rlp4_2 rlp_5
Filter: ((a = 1) OR ((b)::text = 'ab'::text))
- -> Seq Scan on rlp4_default rlp_5
+ -> Seq Scan on rlp4_default rlp_6
Filter: ((a = 1) OR ((b)::text = 'ab'::text))
- -> Seq Scan on rlp5_1 rlp_6
+ -> Seq Scan on rlp5_1 rlp_7
Filter: ((a = 1) OR ((b)::text = 'ab'::text))
- -> Seq Scan on rlp5_default rlp_7
+ -> Seq Scan on rlp5_default rlp_8
Filter: ((a = 1) OR ((b)::text = 'ab'::text))
- -> Seq Scan on rlp_default_10 rlp_8
+ -> Seq Scan on rlp_default_10 rlp_9
Filter: ((a = 1) OR ((b)::text = 'ab'::text))
- -> Seq Scan on rlp_default_30 rlp_9
+ -> Seq Scan on rlp_default_30 rlp_10
Filter: ((a = 1) OR ((b)::text = 'ab'::text))
- -> Seq Scan on rlp_default_null rlp_10
+ -> Seq Scan on rlp_default_null rlp_11
Filter: ((a = 1) OR ((b)::text = 'ab'::text))
- -> Seq Scan on rlp_default_default rlp_11
+ -> Seq Scan on rlp_default_default rlp_12
Filter: ((a = 1) OR ((b)::text = 'ab'::text))
(25 rows)
@@ -555,9 +555,9 @@ explain (costs off) select * from rlp where a > 20 and a < 27;
QUERY PLAN
-----------------------------------------
Append
- -> Seq Scan on rlp4_1 rlp
+ -> Seq Scan on rlp4_1 rlp_1
Filter: ((a > 20) AND (a < 27))
- -> Seq Scan on rlp4_2 rlp_1
+ -> Seq Scan on rlp4_2 rlp_2
Filter: ((a > 20) AND (a < 27))
(5 rows)
@@ -572,15 +572,15 @@ explain (costs off) select * from rlp where a >= 29;
QUERY PLAN
---------------------------------------------
Append
- -> Seq Scan on rlp4_default rlp
+ -> Seq Scan on rlp4_default rlp_1
Filter: (a >= 29)
- -> Seq Scan on rlp5_1 rlp_1
+ -> Seq Scan on rlp5_1 rlp_2
Filter: (a >= 29)
- -> Seq Scan on rlp5_default rlp_2
+ -> Seq Scan on rlp5_default rlp_3
Filter: (a >= 29)
- -> Seq Scan on rlp_default_30 rlp_3
+ -> Seq Scan on rlp_default_30 rlp_4
Filter: (a >= 29)
- -> Seq Scan on rlp_default_default rlp_4
+ -> Seq Scan on rlp_default_default rlp_5
Filter: (a >= 29)
(11 rows)
@@ -588,9 +588,9 @@ explain (costs off) select * from rlp where a < 1 or (a > 20 and a < 25);
QUERY PLAN
------------------------------------------------------
Append
- -> Seq Scan on rlp1 rlp
+ -> Seq Scan on rlp1 rlp_1
Filter: ((a < 1) OR ((a > 20) AND (a < 25)))
- -> Seq Scan on rlp4_1 rlp_1
+ -> Seq Scan on rlp4_1 rlp_2
Filter: ((a < 1) OR ((a > 20) AND (a < 25)))
(5 rows)
@@ -599,9 +599,9 @@ explain (costs off) select * from rlp where a = 20 or a = 40;
QUERY PLAN
----------------------------------------
Append
- -> Seq Scan on rlp4_1 rlp
+ -> Seq Scan on rlp4_1 rlp_1
Filter: ((a = 20) OR (a = 40))
- -> Seq Scan on rlp5_default rlp_1
+ -> Seq Scan on rlp5_default rlp_2
Filter: ((a = 20) OR (a = 40))
(5 rows)
@@ -624,27 +624,27 @@ explain (costs off) select * from rlp where a > 1 and a >=15; /* rlp3 onwards, i
QUERY PLAN
----------------------------------------------
Append
- -> Seq Scan on rlp3abcd rlp
+ -> Seq Scan on rlp3abcd rlp_1
Filter: ((a > 1) AND (a >= 15))
- -> Seq Scan on rlp3efgh rlp_1
+ -> Seq Scan on rlp3efgh rlp_2
Filter: ((a > 1) AND (a >= 15))
- -> Seq Scan on rlp3nullxy rlp_2
+ -> Seq Scan on rlp3nullxy rlp_3
Filter: ((a > 1) AND (a >= 15))
- -> Seq Scan on rlp3_default rlp_3
+ -> Seq Scan on rlp3_default rlp_4
Filter: ((a > 1) AND (a >= 15))
- -> Seq Scan on rlp4_1 rlp_4
+ -> Seq Scan on rlp4_1 rlp_5
Filter: ((a > 1) AND (a >= 15))
- -> Seq Scan on rlp4_2 rlp_5
+ -> Seq Scan on rlp4_2 rlp_6
Filter: ((a > 1) AND (a >= 15))
- -> Seq Scan on rlp4_default rlp_6
+ -> Seq Scan on rlp4_default rlp_7
Filter: ((a > 1) AND (a >= 15))
- -> Seq Scan on rlp5_1 rlp_7
+ -> Seq Scan on rlp5_1 rlp_8
Filter: ((a > 1) AND (a >= 15))
- -> Seq Scan on rlp5_default rlp_8
+ -> Seq Scan on rlp5_default rlp_9
Filter: ((a > 1) AND (a >= 15))
- -> Seq Scan on rlp_default_30 rlp_9
+ -> Seq Scan on rlp_default_30 rlp_10
Filter: ((a > 1) AND (a >= 15))
- -> Seq Scan on rlp_default_default rlp_10
+ -> Seq Scan on rlp_default_default rlp_11
Filter: ((a > 1) AND (a >= 15))
(23 rows)
@@ -659,15 +659,15 @@ explain (costs off) select * from rlp where (a = 1 and a = 3) or (a > 1 and a =
QUERY PLAN
-------------------------------------------------------------------
Append
- -> Seq Scan on rlp2 rlp
+ -> Seq Scan on rlp2 rlp_1
Filter: (((a = 1) AND (a = 3)) OR ((a > 1) AND (a = 15)))
- -> Seq Scan on rlp3abcd rlp_1
+ -> Seq Scan on rlp3abcd rlp_2
Filter: (((a = 1) AND (a = 3)) OR ((a > 1) AND (a = 15)))
- -> Seq Scan on rlp3efgh rlp_2
+ -> Seq Scan on rlp3efgh rlp_3
Filter: (((a = 1) AND (a = 3)) OR ((a > 1) AND (a = 15)))
- -> Seq Scan on rlp3nullxy rlp_3
+ -> Seq Scan on rlp3nullxy rlp_4
Filter: (((a = 1) AND (a = 3)) OR ((a > 1) AND (a = 15)))
- -> Seq Scan on rlp3_default rlp_4
+ -> Seq Scan on rlp3_default rlp_5
Filter: (((a = 1) AND (a = 3)) OR ((a > 1) AND (a = 15)))
(11 rows)
@@ -686,11 +686,11 @@ explain (costs off) select * from mc3p where a = 1;
QUERY PLAN
---------------------------------------
Append
- -> Seq Scan on mc3p0 mc3p
+ -> Seq Scan on mc3p0 mc3p_1
Filter: (a = 1)
- -> Seq Scan on mc3p1 mc3p_1
+ -> Seq Scan on mc3p1 mc3p_2
Filter: (a = 1)
- -> Seq Scan on mc3p_default mc3p_2
+ -> Seq Scan on mc3p_default mc3p_3
Filter: (a = 1)
(7 rows)
@@ -698,9 +698,9 @@ explain (costs off) select * from mc3p where a = 1 and abs(b) < 1;
QUERY PLAN
--------------------------------------------
Append
- -> Seq Scan on mc3p0 mc3p
+ -> Seq Scan on mc3p0 mc3p_1
Filter: ((a = 1) AND (abs(b) < 1))
- -> Seq Scan on mc3p_default mc3p_1
+ -> Seq Scan on mc3p_default mc3p_2
Filter: ((a = 1) AND (abs(b) < 1))
(5 rows)
@@ -708,11 +708,11 @@ explain (costs off) select * from mc3p where a = 1 and abs(b) = 1;
QUERY PLAN
--------------------------------------------
Append
- -> Seq Scan on mc3p0 mc3p
+ -> Seq Scan on mc3p0 mc3p_1
Filter: ((a = 1) AND (abs(b) = 1))
- -> Seq Scan on mc3p1 mc3p_1
+ -> Seq Scan on mc3p1 mc3p_2
Filter: ((a = 1) AND (abs(b) = 1))
- -> Seq Scan on mc3p_default mc3p_2
+ -> Seq Scan on mc3p_default mc3p_3
Filter: ((a = 1) AND (abs(b) = 1))
(7 rows)
@@ -720,9 +720,9 @@ explain (costs off) select * from mc3p where a = 1 and abs(b) = 1 and c < 8;
QUERY PLAN
--------------------------------------------------------
Append
- -> Seq Scan on mc3p0 mc3p
+ -> Seq Scan on mc3p0 mc3p_1
Filter: ((c < 8) AND (a = 1) AND (abs(b) = 1))
- -> Seq Scan on mc3p1 mc3p_1
+ -> Seq Scan on mc3p1 mc3p_2
Filter: ((c < 8) AND (a = 1) AND (abs(b) = 1))
(5 rows)
@@ -730,15 +730,15 @@ explain (costs off) select * from mc3p where a = 10 and abs(b) between 5 and 35;
QUERY PLAN
-----------------------------------------------------------------
Append
- -> Seq Scan on mc3p1 mc3p
+ -> Seq Scan on mc3p1 mc3p_1
Filter: ((a = 10) AND (abs(b) >= 5) AND (abs(b) <= 35))
- -> Seq Scan on mc3p2 mc3p_1
+ -> Seq Scan on mc3p2 mc3p_2
Filter: ((a = 10) AND (abs(b) >= 5) AND (abs(b) <= 35))
- -> Seq Scan on mc3p3 mc3p_2
+ -> Seq Scan on mc3p3 mc3p_3
Filter: ((a = 10) AND (abs(b) >= 5) AND (abs(b) <= 35))
- -> Seq Scan on mc3p4 mc3p_3
+ -> Seq Scan on mc3p4 mc3p_4
Filter: ((a = 10) AND (abs(b) >= 5) AND (abs(b) <= 35))
- -> Seq Scan on mc3p_default mc3p_4
+ -> Seq Scan on mc3p_default mc3p_5
Filter: ((a = 10) AND (abs(b) >= 5) AND (abs(b) <= 35))
(11 rows)
@@ -746,13 +746,13 @@ explain (costs off) select * from mc3p where a > 10;
QUERY PLAN
---------------------------------------
Append
- -> Seq Scan on mc3p5 mc3p
+ -> Seq Scan on mc3p5 mc3p_1
Filter: (a > 10)
- -> Seq Scan on mc3p6 mc3p_1
+ -> Seq Scan on mc3p6 mc3p_2
Filter: (a > 10)
- -> Seq Scan on mc3p7 mc3p_2
+ -> Seq Scan on mc3p7 mc3p_3
Filter: (a > 10)
- -> Seq Scan on mc3p_default mc3p_3
+ -> Seq Scan on mc3p_default mc3p_4
Filter: (a > 10)
(9 rows)
@@ -760,21 +760,21 @@ explain (costs off) select * from mc3p where a >= 10;
QUERY PLAN
---------------------------------------
Append
- -> Seq Scan on mc3p1 mc3p
+ -> Seq Scan on mc3p1 mc3p_1
Filter: (a >= 10)
- -> Seq Scan on mc3p2 mc3p_1
+ -> Seq Scan on mc3p2 mc3p_2
Filter: (a >= 10)
- -> Seq Scan on mc3p3 mc3p_2
+ -> Seq Scan on mc3p3 mc3p_3
Filter: (a >= 10)
- -> Seq Scan on mc3p4 mc3p_3
+ -> Seq Scan on mc3p4 mc3p_4
Filter: (a >= 10)
- -> Seq Scan on mc3p5 mc3p_4
+ -> Seq Scan on mc3p5 mc3p_5
Filter: (a >= 10)
- -> Seq Scan on mc3p6 mc3p_5
+ -> Seq Scan on mc3p6 mc3p_6
Filter: (a >= 10)
- -> Seq Scan on mc3p7 mc3p_6
+ -> Seq Scan on mc3p7 mc3p_7
Filter: (a >= 10)
- -> Seq Scan on mc3p_default mc3p_7
+ -> Seq Scan on mc3p_default mc3p_8
Filter: (a >= 10)
(17 rows)
@@ -782,11 +782,11 @@ explain (costs off) select * from mc3p where a < 10;
QUERY PLAN
---------------------------------------
Append
- -> Seq Scan on mc3p0 mc3p
+ -> Seq Scan on mc3p0 mc3p_1
Filter: (a < 10)
- -> Seq Scan on mc3p1 mc3p_1
+ -> Seq Scan on mc3p1 mc3p_2
Filter: (a < 10)
- -> Seq Scan on mc3p_default mc3p_2
+ -> Seq Scan on mc3p_default mc3p_3
Filter: (a < 10)
(7 rows)
@@ -794,13 +794,13 @@ explain (costs off) select * from mc3p where a <= 10 and abs(b) < 10;
QUERY PLAN
-----------------------------------------------
Append
- -> Seq Scan on mc3p0 mc3p
+ -> Seq Scan on mc3p0 mc3p_1
Filter: ((a <= 10) AND (abs(b) < 10))
- -> Seq Scan on mc3p1 mc3p_1
+ -> Seq Scan on mc3p1 mc3p_2
Filter: ((a <= 10) AND (abs(b) < 10))
- -> Seq Scan on mc3p2 mc3p_2
+ -> Seq Scan on mc3p2 mc3p_3
Filter: ((a <= 10) AND (abs(b) < 10))
- -> Seq Scan on mc3p_default mc3p_3
+ -> Seq Scan on mc3p_default mc3p_4
Filter: ((a <= 10) AND (abs(b) < 10))
(9 rows)
@@ -822,9 +822,9 @@ explain (costs off) select * from mc3p where a > 20;
QUERY PLAN
---------------------------------------
Append
- -> Seq Scan on mc3p7 mc3p
+ -> Seq Scan on mc3p7 mc3p_1
Filter: (a > 20)
- -> Seq Scan on mc3p_default mc3p_1
+ -> Seq Scan on mc3p_default mc3p_2
Filter: (a > 20)
(5 rows)
@@ -832,13 +832,13 @@ explain (costs off) select * from mc3p where a >= 20;
QUERY PLAN
---------------------------------------
Append
- -> Seq Scan on mc3p5 mc3p
+ -> Seq Scan on mc3p5 mc3p_1
Filter: (a >= 20)
- -> Seq Scan on mc3p6 mc3p_1
+ -> Seq Scan on mc3p6 mc3p_2
Filter: (a >= 20)
- -> Seq Scan on mc3p7 mc3p_2
+ -> Seq Scan on mc3p7 mc3p_3
Filter: (a >= 20)
- -> Seq Scan on mc3p_default mc3p_3
+ -> Seq Scan on mc3p_default mc3p_4
Filter: (a >= 20)
(9 rows)
@@ -846,13 +846,13 @@ explain (costs off) select * from mc3p where (a = 1 and abs(b) = 1 and c = 1) or
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------
Append
- -> Seq Scan on mc3p1 mc3p
+ -> Seq Scan on mc3p1 mc3p_1
Filter: (((a = 1) AND (abs(b) = 1) AND (c = 1)) OR ((a = 10) AND (abs(b) = 5) AND (c = 10)) OR ((a > 11) AND (a < 20)))
- -> Seq Scan on mc3p2 mc3p_1
+ -> Seq Scan on mc3p2 mc3p_2
Filter: (((a = 1) AND (abs(b) = 1) AND (c = 1)) OR ((a = 10) AND (abs(b) = 5) AND (c = 10)) OR ((a > 11) AND (a < 20)))
- -> Seq Scan on mc3p5 mc3p_2
+ -> Seq Scan on mc3p5 mc3p_3
Filter: (((a = 1) AND (abs(b) = 1) AND (c = 1)) OR ((a = 10) AND (abs(b) = 5) AND (c = 10)) OR ((a > 11) AND (a < 20)))
- -> Seq Scan on mc3p_default mc3p_3
+ -> Seq Scan on mc3p_default mc3p_4
Filter: (((a = 1) AND (abs(b) = 1) AND (c = 1)) OR ((a = 10) AND (abs(b) = 5) AND (c = 10)) OR ((a > 11) AND (a < 20)))
(9 rows)
@@ -860,15 +860,15 @@ explain (costs off) select * from mc3p where (a = 1 and abs(b) = 1 and c = 1) or
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------------------------------
Append
- -> Seq Scan on mc3p0 mc3p
+ -> Seq Scan on mc3p0 mc3p_1
Filter: (((a = 1) AND (abs(b) = 1) AND (c = 1)) OR ((a = 10) AND (abs(b) = 5) AND (c = 10)) OR ((a > 11) AND (a < 20)) OR (a < 1))
- -> Seq Scan on mc3p1 mc3p_1
+ -> Seq Scan on mc3p1 mc3p_2
Filter: (((a = 1) AND (abs(b) = 1) AND (c = 1)) OR ((a = 10) AND (abs(b) = 5) AND (c = 10)) OR ((a > 11) AND (a < 20)) OR (a < 1))
- -> Seq Scan on mc3p2 mc3p_2
+ -> Seq Scan on mc3p2 mc3p_3
Filter: (((a = 1) AND (abs(b) = 1) AND (c = 1)) OR ((a = 10) AND (abs(b) = 5) AND (c = 10)) OR ((a > 11) AND (a < 20)) OR (a < 1))
- -> Seq Scan on mc3p5 mc3p_3
+ -> Seq Scan on mc3p5 mc3p_4
Filter: (((a = 1) AND (abs(b) = 1) AND (c = 1)) OR ((a = 10) AND (abs(b) = 5) AND (c = 10)) OR ((a > 11) AND (a < 20)) OR (a < 1))
- -> Seq Scan on mc3p_default mc3p_4
+ -> Seq Scan on mc3p_default mc3p_5
Filter: (((a = 1) AND (abs(b) = 1) AND (c = 1)) OR ((a = 10) AND (abs(b) = 5) AND (c = 10)) OR ((a > 11) AND (a < 20)) OR (a < 1))
(11 rows)
@@ -876,15 +876,15 @@ explain (costs off) select * from mc3p where (a = 1 and abs(b) = 1 and c = 1) or
QUERY PLAN
-------------------------------------------------------------------------------------------------------------------------------------------------------
Append
- -> Seq Scan on mc3p0 mc3p
+ -> Seq Scan on mc3p0 mc3p_1
Filter: (((a = 1) AND (abs(b) = 1) AND (c = 1)) OR ((a = 10) AND (abs(b) = 5) AND (c = 10)) OR ((a > 11) AND (a < 20)) OR (a < 1) OR (a = 1))
- -> Seq Scan on mc3p1 mc3p_1
+ -> Seq Scan on mc3p1 mc3p_2
Filter: (((a = 1) AND (abs(b) = 1) AND (c = 1)) OR ((a = 10) AND (abs(b) = 5) AND (c = 10)) OR ((a > 11) AND (a < 20)) OR (a < 1) OR (a = 1))
- -> Seq Scan on mc3p2 mc3p_2
+ -> Seq Scan on mc3p2 mc3p_3
Filter: (((a = 1) AND (abs(b) = 1) AND (c = 1)) OR ((a = 10) AND (abs(b) = 5) AND (c = 10)) OR ((a > 11) AND (a < 20)) OR (a < 1) OR (a = 1))
- -> Seq Scan on mc3p5 mc3p_3
+ -> Seq Scan on mc3p5 mc3p_4
Filter: (((a = 1) AND (abs(b) = 1) AND (c = 1)) OR ((a = 10) AND (abs(b) = 5) AND (c = 10)) OR ((a > 11) AND (a < 20)) OR (a < 1) OR (a = 1))
- -> Seq Scan on mc3p_default mc3p_4
+ -> Seq Scan on mc3p_default mc3p_5
Filter: (((a = 1) AND (abs(b) = 1) AND (c = 1)) OR ((a = 10) AND (abs(b) = 5) AND (c = 10)) OR ((a > 11) AND (a < 20)) OR (a < 1) OR (a = 1))
(11 rows)
@@ -892,23 +892,23 @@ explain (costs off) select * from mc3p where a = 1 or abs(b) = 1 or c = 1;
QUERY PLAN
------------------------------------------------------
Append
- -> Seq Scan on mc3p0 mc3p
+ -> Seq Scan on mc3p0 mc3p_1
Filter: ((a = 1) OR (abs(b) = 1) OR (c = 1))
- -> Seq Scan on mc3p1 mc3p_1
+ -> Seq Scan on mc3p1 mc3p_2
Filter: ((a = 1) OR (abs(b) = 1) OR (c = 1))
- -> Seq Scan on mc3p2 mc3p_2
+ -> Seq Scan on mc3p2 mc3p_3
Filter: ((a = 1) OR (abs(b) = 1) OR (c = 1))
- -> Seq Scan on mc3p3 mc3p_3
+ -> Seq Scan on mc3p3 mc3p_4
Filter: ((a = 1) OR (abs(b) = 1) OR (c = 1))
- -> Seq Scan on mc3p4 mc3p_4
+ -> Seq Scan on mc3p4 mc3p_5
Filter: ((a = 1) OR (abs(b) = 1) OR (c = 1))
- -> Seq Scan on mc3p5 mc3p_5
+ -> Seq Scan on mc3p5 mc3p_6
Filter: ((a = 1) OR (abs(b) = 1) OR (c = 1))
- -> Seq Scan on mc3p6 mc3p_6
+ -> Seq Scan on mc3p6 mc3p_7
Filter: ((a = 1) OR (abs(b) = 1) OR (c = 1))
- -> Seq Scan on mc3p7 mc3p_7
+ -> Seq Scan on mc3p7 mc3p_8
Filter: ((a = 1) OR (abs(b) = 1) OR (c = 1))
- -> Seq Scan on mc3p_default mc3p_8
+ -> Seq Scan on mc3p_default mc3p_9
Filter: ((a = 1) OR (abs(b) = 1) OR (c = 1))
(19 rows)
@@ -916,17 +916,17 @@ explain (costs off) select * from mc3p where (a = 1 and abs(b) = 1) or (a = 10 a
QUERY PLAN
------------------------------------------------------------------------------
Append
- -> Seq Scan on mc3p0 mc3p
+ -> Seq Scan on mc3p0 mc3p_1
Filter: (((a = 1) AND (abs(b) = 1)) OR ((a = 10) AND (abs(b) = 10)))
- -> Seq Scan on mc3p1 mc3p_1
+ -> Seq Scan on mc3p1 mc3p_2
Filter: (((a = 1) AND (abs(b) = 1)) OR ((a = 10) AND (abs(b) = 10)))
- -> Seq Scan on mc3p2 mc3p_2
+ -> Seq Scan on mc3p2 mc3p_3
Filter: (((a = 1) AND (abs(b) = 1)) OR ((a = 10) AND (abs(b) = 10)))
- -> Seq Scan on mc3p3 mc3p_3
+ -> Seq Scan on mc3p3 mc3p_4
Filter: (((a = 1) AND (abs(b) = 1)) OR ((a = 10) AND (abs(b) = 10)))
- -> Seq Scan on mc3p4 mc3p_4
+ -> Seq Scan on mc3p4 mc3p_5
Filter: (((a = 1) AND (abs(b) = 1)) OR ((a = 10) AND (abs(b) = 10)))
- -> Seq Scan on mc3p_default mc3p_5
+ -> Seq Scan on mc3p_default mc3p_6
Filter: (((a = 1) AND (abs(b) = 1)) OR ((a = 10) AND (abs(b) = 10)))
(13 rows)
@@ -934,13 +934,13 @@ explain (costs off) select * from mc3p where (a = 1 and abs(b) = 1) or (a = 10 a
QUERY PLAN
-----------------------------------------------------------------------------
Append
- -> Seq Scan on mc3p0 mc3p
+ -> Seq Scan on mc3p0 mc3p_1
Filter: (((a = 1) AND (abs(b) = 1)) OR ((a = 10) AND (abs(b) = 9)))
- -> Seq Scan on mc3p1 mc3p_1
+ -> Seq Scan on mc3p1 mc3p_2
Filter: (((a = 1) AND (abs(b) = 1)) OR ((a = 10) AND (abs(b) = 9)))
- -> Seq Scan on mc3p2 mc3p_2
+ -> Seq Scan on mc3p2 mc3p_3
Filter: (((a = 1) AND (abs(b) = 1)) OR ((a = 10) AND (abs(b) = 9)))
- -> Seq Scan on mc3p_default mc3p_3
+ -> Seq Scan on mc3p_default mc3p_4
Filter: (((a = 1) AND (abs(b) = 1)) OR ((a = 10) AND (abs(b) = 9)))
(9 rows)
@@ -957,13 +957,13 @@ explain (costs off) select * from mc2p where a < 2;
QUERY PLAN
---------------------------------------
Append
- -> Seq Scan on mc2p0 mc2p
+ -> Seq Scan on mc2p0 mc2p_1
Filter: (a < 2)
- -> Seq Scan on mc2p1 mc2p_1
+ -> Seq Scan on mc2p1 mc2p_2
Filter: (a < 2)
- -> Seq Scan on mc2p2 mc2p_2
+ -> Seq Scan on mc2p2 mc2p_3
Filter: (a < 2)
- -> Seq Scan on mc2p_default mc2p_3
+ -> Seq Scan on mc2p_default mc2p_4
Filter: (a < 2)
(9 rows)
@@ -978,15 +978,15 @@ explain (costs off) select * from mc2p where a > 1;
QUERY PLAN
---------------------------------------
Append
- -> Seq Scan on mc2p2 mc2p
+ -> Seq Scan on mc2p2 mc2p_1
Filter: (a > 1)
- -> Seq Scan on mc2p3 mc2p_1
+ -> Seq Scan on mc2p3 mc2p_2
Filter: (a > 1)
- -> Seq Scan on mc2p4 mc2p_2
+ -> Seq Scan on mc2p4 mc2p_3
Filter: (a > 1)
- -> Seq Scan on mc2p5 mc2p_3
+ -> Seq Scan on mc2p5 mc2p_4
Filter: (a > 1)
- -> Seq Scan on mc2p_default mc2p_4
+ -> Seq Scan on mc2p_default mc2p_5
Filter: (a > 1)
(11 rows)
@@ -1042,9 +1042,9 @@ explain (costs off) select * from boolpart where a in (true, false);
QUERY PLAN
------------------------------------------------
Append
- -> Seq Scan on boolpart_f boolpart
+ -> Seq Scan on boolpart_f boolpart_1
Filter: (a = ANY ('{t,f}'::boolean[]))
- -> Seq Scan on boolpart_t boolpart_1
+ -> Seq Scan on boolpart_t boolpart_2
Filter: (a = ANY ('{t,f}'::boolean[]))
(5 rows)
@@ -1066,9 +1066,9 @@ explain (costs off) select * from boolpart where a is true or a is not true;
QUERY PLAN
--------------------------------------------------
Append
- -> Seq Scan on boolpart_f boolpart
+ -> Seq Scan on boolpart_f boolpart_1
Filter: ((a IS TRUE) OR (a IS NOT TRUE))
- -> Seq Scan on boolpart_t boolpart_1
+ -> Seq Scan on boolpart_t boolpart_2
Filter: ((a IS TRUE) OR (a IS NOT TRUE))
(5 rows)
@@ -1090,11 +1090,11 @@ explain (costs off) select * from boolpart where a is unknown;
QUERY PLAN
-----------------------------------------------
Append
- -> Seq Scan on boolpart_f boolpart
+ -> Seq Scan on boolpart_f boolpart_1
Filter: (a IS UNKNOWN)
- -> Seq Scan on boolpart_t boolpart_1
+ -> Seq Scan on boolpart_t boolpart_2
Filter: (a IS UNKNOWN)
- -> Seq Scan on boolpart_default boolpart_2
+ -> Seq Scan on boolpart_default boolpart_3
Filter: (a IS UNKNOWN)
(7 rows)
@@ -1102,11 +1102,11 @@ explain (costs off) select * from boolpart where a is not unknown;
QUERY PLAN
-----------------------------------------------
Append
- -> Seq Scan on boolpart_f boolpart
+ -> Seq Scan on boolpart_f boolpart_1
Filter: (a IS NOT UNKNOWN)
- -> Seq Scan on boolpart_t boolpart_1
+ -> Seq Scan on boolpart_t boolpart_2
Filter: (a IS NOT UNKNOWN)
- -> Seq Scan on boolpart_default boolpart_2
+ -> Seq Scan on boolpart_default boolpart_3
Filter: (a IS NOT UNKNOWN)
(7 rows)
@@ -1132,11 +1132,11 @@ explain (costs off) select * from coercepart where a in ('ab', to_char(125, '999
QUERY PLAN
------------------------------------------------------------------------------------------------------------------------------
Append
- -> Seq Scan on coercepart_ab coercepart
+ -> Seq Scan on coercepart_ab coercepart_1
Filter: ((a)::text = ANY ((ARRAY['ab'::character varying, (to_char(125, '999'::text))::character varying])::text[]))
- -> Seq Scan on coercepart_bc coercepart_1
+ -> Seq Scan on coercepart_bc coercepart_2
Filter: ((a)::text = ANY ((ARRAY['ab'::character varying, (to_char(125, '999'::text))::character varying])::text[]))
- -> Seq Scan on coercepart_cd coercepart_2
+ -> Seq Scan on coercepart_cd coercepart_3
Filter: ((a)::text = ANY ((ARRAY['ab'::character varying, (to_char(125, '999'::text))::character varying])::text[]))
(7 rows)
@@ -1144,11 +1144,11 @@ explain (costs off) select * from coercepart where a ~ any ('{ab}');
QUERY PLAN
----------------------------------------------------
Append
- -> Seq Scan on coercepart_ab coercepart
+ -> Seq Scan on coercepart_ab coercepart_1
Filter: ((a)::text ~ ANY ('{ab}'::text[]))
- -> Seq Scan on coercepart_bc coercepart_1
+ -> Seq Scan on coercepart_bc coercepart_2
Filter: ((a)::text ~ ANY ('{ab}'::text[]))
- -> Seq Scan on coercepart_cd coercepart_2
+ -> Seq Scan on coercepart_cd coercepart_3
Filter: ((a)::text ~ ANY ('{ab}'::text[]))
(7 rows)
@@ -1156,11 +1156,11 @@ explain (costs off) select * from coercepart where a !~ all ('{ab}');
QUERY PLAN
-----------------------------------------------------
Append
- -> Seq Scan on coercepart_ab coercepart
+ -> Seq Scan on coercepart_ab coercepart_1
Filter: ((a)::text !~ ALL ('{ab}'::text[]))
- -> Seq Scan on coercepart_bc coercepart_1
+ -> Seq Scan on coercepart_bc coercepart_2
Filter: ((a)::text !~ ALL ('{ab}'::text[]))
- -> Seq Scan on coercepart_cd coercepart_2
+ -> Seq Scan on coercepart_cd coercepart_3
Filter: ((a)::text !~ ALL ('{ab}'::text[]))
(7 rows)
@@ -1168,11 +1168,11 @@ explain (costs off) select * from coercepart where a ~ any ('{ab,bc}');
QUERY PLAN
-------------------------------------------------------
Append
- -> Seq Scan on coercepart_ab coercepart
+ -> Seq Scan on coercepart_ab coercepart_1
Filter: ((a)::text ~ ANY ('{ab,bc}'::text[]))
- -> Seq Scan on coercepart_bc coercepart_1
+ -> Seq Scan on coercepart_bc coercepart_2
Filter: ((a)::text ~ ANY ('{ab,bc}'::text[]))
- -> Seq Scan on coercepart_cd coercepart_2
+ -> Seq Scan on coercepart_cd coercepart_3
Filter: ((a)::text ~ ANY ('{ab,bc}'::text[]))
(7 rows)
@@ -1180,11 +1180,11 @@ explain (costs off) select * from coercepart where a !~ all ('{ab,bc}');
QUERY PLAN
--------------------------------------------------------
Append
- -> Seq Scan on coercepart_ab coercepart
+ -> Seq Scan on coercepart_ab coercepart_1
Filter: ((a)::text !~ ALL ('{ab,bc}'::text[]))
- -> Seq Scan on coercepart_bc coercepart_1
+ -> Seq Scan on coercepart_bc coercepart_2
Filter: ((a)::text !~ ALL ('{ab,bc}'::text[]))
- -> Seq Scan on coercepart_cd coercepart_2
+ -> Seq Scan on coercepart_cd coercepart_3
Filter: ((a)::text !~ ALL ('{ab,bc}'::text[]))
(7 rows)
@@ -1192,9 +1192,9 @@ explain (costs off) select * from coercepart where a = any ('{ab,bc}');
QUERY PLAN
-------------------------------------------------------
Append
- -> Seq Scan on coercepart_ab coercepart
+ -> Seq Scan on coercepart_ab coercepart_1
Filter: ((a)::text = ANY ('{ab,bc}'::text[]))
- -> Seq Scan on coercepart_bc coercepart_1
+ -> Seq Scan on coercepart_bc coercepart_2
Filter: ((a)::text = ANY ('{ab,bc}'::text[]))
(5 rows)
@@ -1268,12 +1268,12 @@ EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM part p(x) ORDER BY x;
Output: p.x, p.b
Sort Key: p.x
-> Append
- -> Seq Scan on public.part_p1 p
- Output: p.x, p.b
- -> Seq Scan on public.part_rev p_1
+ -> Seq Scan on public.part_p1 p_1
Output: p_1.x, p_1.b
- -> Seq Scan on public.part_p2_p1 p_2
+ -> Seq Scan on public.part_rev p_2
Output: p_2.x, p_2.b
+ -> Seq Scan on public.part_p2_p1 p_3
+ Output: p_3.x, p_3.b
(10 rows)
--
@@ -1288,31 +1288,31 @@ explain (costs off) select * from mc2p t1, lateral (select count(*) from mc3p t2
-----------------------------------------------------------------------
Nested Loop
-> Append
- -> Seq Scan on mc2p1 t1
+ -> Seq Scan on mc2p1 t1_1
Filter: (a = 1)
- -> Seq Scan on mc2p2 t1_1
+ -> Seq Scan on mc2p2 t1_2
Filter: (a = 1)
- -> Seq Scan on mc2p_default t1_2
+ -> Seq Scan on mc2p_default t1_3
Filter: (a = 1)
-> Aggregate
-> Append
- -> Seq Scan on mc3p0 t2
+ -> Seq Scan on mc3p0 t2_1
Filter: ((a = t1.b) AND (c = 1) AND (abs(b) = 1))
- -> Seq Scan on mc3p1 t2_1
+ -> Seq Scan on mc3p1 t2_2
Filter: ((a = t1.b) AND (c = 1) AND (abs(b) = 1))
- -> Seq Scan on mc3p2 t2_2
+ -> Seq Scan on mc3p2 t2_3
Filter: ((a = t1.b) AND (c = 1) AND (abs(b) = 1))
- -> Seq Scan on mc3p3 t2_3
+ -> Seq Scan on mc3p3 t2_4
Filter: ((a = t1.b) AND (c = 1) AND (abs(b) = 1))
- -> Seq Scan on mc3p4 t2_4
+ -> Seq Scan on mc3p4 t2_5
Filter: ((a = t1.b) AND (c = 1) AND (abs(b) = 1))
- -> Seq Scan on mc3p5 t2_5
+ -> Seq Scan on mc3p5 t2_6
Filter: ((a = t1.b) AND (c = 1) AND (abs(b) = 1))
- -> Seq Scan on mc3p6 t2_6
+ -> Seq Scan on mc3p6 t2_7
Filter: ((a = t1.b) AND (c = 1) AND (abs(b) = 1))
- -> Seq Scan on mc3p7 t2_7
+ -> Seq Scan on mc3p7 t2_8
Filter: ((a = t1.b) AND (c = 1) AND (abs(b) = 1))
- -> Seq Scan on mc3p_default t2_8
+ -> Seq Scan on mc3p_default t2_9
Filter: ((a = t1.b) AND (c = 1) AND (abs(b) = 1))
(28 rows)
@@ -1323,19 +1323,19 @@ explain (costs off) select * from mc2p t1, lateral (select count(*) from mc3p t2
-----------------------------------------------------------------------
Nested Loop
-> Append
- -> Seq Scan on mc2p1 t1
+ -> Seq Scan on mc2p1 t1_1
Filter: (a = 1)
- -> Seq Scan on mc2p2 t1_1
+ -> Seq Scan on mc2p2 t1_2
Filter: (a = 1)
- -> Seq Scan on mc2p_default t1_2
+ -> Seq Scan on mc2p_default t1_3
Filter: (a = 1)
-> Aggregate
-> Append
- -> Seq Scan on mc3p0 t2
+ -> Seq Scan on mc3p0 t2_1
Filter: ((c = t1.b) AND (a = 1) AND (abs(b) = 1))
- -> Seq Scan on mc3p1 t2_1
+ -> Seq Scan on mc3p1 t2_2
Filter: ((c = t1.b) AND (a = 1) AND (abs(b) = 1))
- -> Seq Scan on mc3p_default t2_2
+ -> Seq Scan on mc3p_default t2_3
Filter: ((c = t1.b) AND (a = 1) AND (abs(b) = 1))
(16 rows)
@@ -1348,11 +1348,11 @@ explain (costs off) select * from mc2p t1, lateral (select count(*) from mc3p t2
-> Seq Scan on mc3p1 t2
Filter: ((a = 1) AND (c = 1) AND (abs(b) = 1))
-> Append
- -> Seq Scan on mc2p1 t1
+ -> Seq Scan on mc2p1 t1_1
Filter: (a = 1)
- -> Seq Scan on mc2p2 t1_1
+ -> Seq Scan on mc2p2 t1_2
Filter: (a = 1)
- -> Seq Scan on mc2p_default t1_2
+ -> Seq Scan on mc2p_default t1_3
Filter: (a = 1)
(11 rows)
@@ -1368,11 +1368,11 @@ explain (costs off) select * from rp where a <> 1;
QUERY PLAN
----------------------------
Append
- -> Seq Scan on rp0 rp
+ -> Seq Scan on rp0 rp_1
Filter: (a <> 1)
- -> Seq Scan on rp1 rp_1
+ -> Seq Scan on rp1 rp_2
Filter: (a <> 1)
- -> Seq Scan on rp2 rp_2
+ -> Seq Scan on rp2 rp_3
Filter: (a <> 1)
(7 rows)
@@ -1380,11 +1380,11 @@ explain (costs off) select * from rp where a <> 1 and a <> 2;
QUERY PLAN
-----------------------------------------
Append
- -> Seq Scan on rp0 rp
+ -> Seq Scan on rp0 rp_1
Filter: ((a <> 1) AND (a <> 2))
- -> Seq Scan on rp1 rp_1
+ -> Seq Scan on rp1 rp_2
Filter: ((a <> 1) AND (a <> 2))
- -> Seq Scan on rp2 rp_2
+ -> Seq Scan on rp2 rp_3
Filter: ((a <> 1) AND (a <> 2))
(7 rows)
@@ -1393,15 +1393,15 @@ explain (costs off) select * from lp where a <> 'a';
QUERY PLAN
------------------------------------
Append
- -> Seq Scan on lp_ad lp
+ -> Seq Scan on lp_ad lp_1
Filter: (a <> 'a'::bpchar)
- -> Seq Scan on lp_bc lp_1
+ -> Seq Scan on lp_bc lp_2
Filter: (a <> 'a'::bpchar)
- -> Seq Scan on lp_ef lp_2
+ -> Seq Scan on lp_ef lp_3
Filter: (a <> 'a'::bpchar)
- -> Seq Scan on lp_g lp_3
+ -> Seq Scan on lp_g lp_4
Filter: (a <> 'a'::bpchar)
- -> Seq Scan on lp_default lp_4
+ -> Seq Scan on lp_default lp_5
Filter: (a <> 'a'::bpchar)
(11 rows)
@@ -1417,15 +1417,15 @@ explain (costs off) select * from lp where (a <> 'a' and a <> 'd') or a is null;
QUERY PLAN
------------------------------------------------------------------------------
Append
- -> Seq Scan on lp_bc lp
+ -> Seq Scan on lp_bc lp_1
Filter: (((a <> 'a'::bpchar) AND (a <> 'd'::bpchar)) OR (a IS NULL))
- -> Seq Scan on lp_ef lp_1
+ -> Seq Scan on lp_ef lp_2
Filter: (((a <> 'a'::bpchar) AND (a <> 'd'::bpchar)) OR (a IS NULL))
- -> Seq Scan on lp_g lp_2
+ -> Seq Scan on lp_g lp_3
Filter: (((a <> 'a'::bpchar) AND (a <> 'd'::bpchar)) OR (a IS NULL))
- -> Seq Scan on lp_null lp_3
+ -> Seq Scan on lp_null lp_4
Filter: (((a <> 'a'::bpchar) AND (a <> 'd'::bpchar)) OR (a IS NULL))
- -> Seq Scan on lp_default lp_4
+ -> Seq Scan on lp_default lp_5
Filter: (((a <> 'a'::bpchar) AND (a <> 'd'::bpchar)) OR (a IS NULL))
(11 rows)
@@ -1436,9 +1436,9 @@ explain (costs off) select * from rlp where a = 15 and b <> 'ab' and b <> 'cd' a
QUERY PLAN
------------------------------------------------------------------------------------------------------------------------------------------
Append
- -> Seq Scan on rlp3efgh rlp
+ -> Seq Scan on rlp3efgh rlp_1
Filter: ((b IS NOT NULL) AND ((b)::text <> 'ab'::text) AND ((b)::text <> 'cd'::text) AND ((b)::text <> 'xy'::text) AND (a = 15))
- -> Seq Scan on rlp3_default rlp_1
+ -> Seq Scan on rlp3_default rlp_2
Filter: ((b IS NOT NULL) AND ((b)::text <> 'ab'::text) AND ((b)::text <> 'cd'::text) AND ((b)::text <> 'xy'::text) AND (a = 15))
(5 rows)
@@ -1454,11 +1454,11 @@ explain (costs off) select * from coll_pruning_multi where substr(a, 1) = 'e' co
QUERY PLAN
------------------------------------------------------------
Append
- -> Seq Scan on coll_pruning_multi1 coll_pruning_multi
+ -> Seq Scan on coll_pruning_multi1 coll_pruning_multi_1
Filter: (substr(a, 1) = 'e'::text COLLATE "C")
- -> Seq Scan on coll_pruning_multi2 coll_pruning_multi_1
+ -> Seq Scan on coll_pruning_multi2 coll_pruning_multi_2
Filter: (substr(a, 1) = 'e'::text COLLATE "C")
- -> Seq Scan on coll_pruning_multi3 coll_pruning_multi_2
+ -> Seq Scan on coll_pruning_multi3 coll_pruning_multi_3
Filter: (substr(a, 1) = 'e'::text COLLATE "C")
(7 rows)
@@ -1467,9 +1467,9 @@ explain (costs off) select * from coll_pruning_multi where substr(a, 1) = 'a' co
QUERY PLAN
------------------------------------------------------------
Append
- -> Seq Scan on coll_pruning_multi1 coll_pruning_multi
+ -> Seq Scan on coll_pruning_multi1 coll_pruning_multi_1
Filter: (substr(a, 1) = 'a'::text COLLATE "POSIX")
- -> Seq Scan on coll_pruning_multi2 coll_pruning_multi_1
+ -> Seq Scan on coll_pruning_multi2 coll_pruning_multi_2
Filter: (substr(a, 1) = 'a'::text COLLATE "POSIX")
(5 rows)
@@ -1491,9 +1491,9 @@ explain (costs off) select * from like_op_noprune where a like '%BC';
QUERY PLAN
------------------------------------------------------
Append
- -> Seq Scan on like_op_noprune1 like_op_noprune
+ -> Seq Scan on like_op_noprune1 like_op_noprune_1
Filter: (a ~~ '%BC'::text)
- -> Seq Scan on like_op_noprune2 like_op_noprune_1
+ -> Seq Scan on like_op_noprune2 like_op_noprune_2
Filter: (a ~~ '%BC'::text)
(5 rows)
@@ -1565,13 +1565,13 @@ explain (costs off) select * from hp where a = 1;
QUERY PLAN
----------------------------
Append
- -> Seq Scan on hp0 hp
+ -> Seq Scan on hp0 hp_1
Filter: (a = 1)
- -> Seq Scan on hp1 hp_1
+ -> Seq Scan on hp1 hp_2
Filter: (a = 1)
- -> Seq Scan on hp2 hp_2
+ -> Seq Scan on hp2 hp_3
Filter: (a = 1)
- -> Seq Scan on hp3 hp_3
+ -> Seq Scan on hp3 hp_4
Filter: (a = 1)
(9 rows)
@@ -1579,13 +1579,13 @@ explain (costs off) select * from hp where b = 'xxx';
QUERY PLAN
-----------------------------------
Append
- -> Seq Scan on hp0 hp
+ -> Seq Scan on hp0 hp_1
Filter: (b = 'xxx'::text)
- -> Seq Scan on hp1 hp_1
+ -> Seq Scan on hp1 hp_2
Filter: (b = 'xxx'::text)
- -> Seq Scan on hp2 hp_2
+ -> Seq Scan on hp2 hp_3
Filter: (b = 'xxx'::text)
- -> Seq Scan on hp3 hp_3
+ -> Seq Scan on hp3 hp_4
Filter: (b = 'xxx'::text)
(9 rows)
@@ -1593,13 +1593,13 @@ explain (costs off) select * from hp where a is null;
QUERY PLAN
-----------------------------
Append
- -> Seq Scan on hp0 hp
+ -> Seq Scan on hp0 hp_1
Filter: (a IS NULL)
- -> Seq Scan on hp1 hp_1
+ -> Seq Scan on hp1 hp_2
Filter: (a IS NULL)
- -> Seq Scan on hp2 hp_2
+ -> Seq Scan on hp2 hp_3
Filter: (a IS NULL)
- -> Seq Scan on hp3 hp_3
+ -> Seq Scan on hp3 hp_4
Filter: (a IS NULL)
(9 rows)
@@ -1607,13 +1607,13 @@ explain (costs off) select * from hp where b is null;
QUERY PLAN
-----------------------------
Append
- -> Seq Scan on hp0 hp
+ -> Seq Scan on hp0 hp_1
Filter: (b IS NULL)
- -> Seq Scan on hp1 hp_1
+ -> Seq Scan on hp1 hp_2
Filter: (b IS NULL)
- -> Seq Scan on hp2 hp_2
+ -> Seq Scan on hp2 hp_3
Filter: (b IS NULL)
- -> Seq Scan on hp3 hp_3
+ -> Seq Scan on hp3 hp_4
Filter: (b IS NULL)
(9 rows)
@@ -1621,13 +1621,13 @@ explain (costs off) select * from hp where a < 1 and b = 'xxx';
QUERY PLAN
-------------------------------------------------
Append
- -> Seq Scan on hp0 hp
+ -> Seq Scan on hp0 hp_1
Filter: ((a < 1) AND (b = 'xxx'::text))
- -> Seq Scan on hp1 hp_1
+ -> Seq Scan on hp1 hp_2
Filter: ((a < 1) AND (b = 'xxx'::text))
- -> Seq Scan on hp2 hp_2
+ -> Seq Scan on hp2 hp_3
Filter: ((a < 1) AND (b = 'xxx'::text))
- -> Seq Scan on hp3 hp_3
+ -> Seq Scan on hp3 hp_4
Filter: ((a < 1) AND (b = 'xxx'::text))
(9 rows)
@@ -1635,13 +1635,13 @@ explain (costs off) select * from hp where a <> 1 and b = 'yyy';
QUERY PLAN
--------------------------------------------------
Append
- -> Seq Scan on hp0 hp
+ -> Seq Scan on hp0 hp_1
Filter: ((a <> 1) AND (b = 'yyy'::text))
- -> Seq Scan on hp1 hp_1
+ -> Seq Scan on hp1 hp_2
Filter: ((a <> 1) AND (b = 'yyy'::text))
- -> Seq Scan on hp2 hp_2
+ -> Seq Scan on hp2 hp_3
Filter: ((a <> 1) AND (b = 'yyy'::text))
- -> Seq Scan on hp3 hp_3
+ -> Seq Scan on hp3 hp_4
Filter: ((a <> 1) AND (b = 'yyy'::text))
(9 rows)
@@ -1649,13 +1649,13 @@ explain (costs off) select * from hp where a <> 1 and b <> 'xxx';
QUERY PLAN
---------------------------------------------------
Append
- -> Seq Scan on hp0 hp
+ -> Seq Scan on hp0 hp_1
Filter: ((a <> 1) AND (b <> 'xxx'::text))
- -> Seq Scan on hp1 hp_1
+ -> Seq Scan on hp1 hp_2
Filter: ((a <> 1) AND (b <> 'xxx'::text))
- -> Seq Scan on hp2 hp_2
+ -> Seq Scan on hp2 hp_3
Filter: ((a <> 1) AND (b <> 'xxx'::text))
- -> Seq Scan on hp3 hp_3
+ -> Seq Scan on hp3 hp_4
Filter: ((a <> 1) AND (b <> 'xxx'::text))
(9 rows)
@@ -1707,11 +1707,11 @@ explain (costs off) select * from hp where (a = 1 and b = 'abcde') or (a = 2 and
QUERY PLAN
-------------------------------------------------------------------------------------------------------------------------
Append
- -> Seq Scan on hp0 hp
+ -> Seq Scan on hp0 hp_1
Filter: (((a = 1) AND (b = 'abcde'::text)) OR ((a = 2) AND (b = 'xxx'::text)) OR ((a IS NULL) AND (b IS NULL)))
- -> Seq Scan on hp2 hp_1
+ -> Seq Scan on hp2 hp_2
Filter: (((a = 1) AND (b = 'abcde'::text)) OR ((a = 2) AND (b = 'xxx'::text)) OR ((a IS NULL) AND (b IS NULL)))
- -> Seq Scan on hp3 hp_2
+ -> Seq Scan on hp3 hp_3
Filter: (((a = 1) AND (b = 'abcde'::text)) OR ((a = 2) AND (b = 'xxx'::text)) OR ((a IS NULL) AND (b IS NULL)))
(7 rows)
@@ -1743,11 +1743,11 @@ explain (analyze, costs off, summary off, timing off) execute ab_q1 (2, 2, 3);
---------------------------------------------------------
Append (actual rows=0 loops=1)
Subplans Removed: 6
- -> Seq Scan on ab_a2_b1 ab (actual rows=0 loops=1)
+ -> Seq Scan on ab_a2_b1 ab_1 (actual rows=0 loops=1)
Filter: ((a >= $1) AND (a <= $2) AND (b <= $3))
- -> Seq Scan on ab_a2_b2 ab_1 (actual rows=0 loops=1)
+ -> Seq Scan on ab_a2_b2 ab_2 (actual rows=0 loops=1)
Filter: ((a >= $1) AND (a <= $2) AND (b <= $3))
- -> Seq Scan on ab_a2_b3 ab_2 (actual rows=0 loops=1)
+ -> Seq Scan on ab_a2_b3 ab_3 (actual rows=0 loops=1)
Filter: ((a >= $1) AND (a <= $2) AND (b <= $3))
(8 rows)
@@ -1756,17 +1756,17 @@ explain (analyze, costs off, summary off, timing off) execute ab_q1 (1, 2, 3);
---------------------------------------------------------
Append (actual rows=0 loops=1)
Subplans Removed: 3
- -> Seq Scan on ab_a1_b1 ab (actual rows=0 loops=1)
+ -> Seq Scan on ab_a1_b1 ab_1 (actual rows=0 loops=1)
Filter: ((a >= $1) AND (a <= $2) AND (b <= $3))
- -> Seq Scan on ab_a1_b2 ab_1 (actual rows=0 loops=1)
+ -> Seq Scan on ab_a1_b2 ab_2 (actual rows=0 loops=1)
Filter: ((a >= $1) AND (a <= $2) AND (b <= $3))
- -> Seq Scan on ab_a1_b3 ab_2 (actual rows=0 loops=1)
+ -> Seq Scan on ab_a1_b3 ab_3 (actual rows=0 loops=1)
Filter: ((a >= $1) AND (a <= $2) AND (b <= $3))
- -> Seq Scan on ab_a2_b1 ab_3 (actual rows=0 loops=1)
+ -> Seq Scan on ab_a2_b1 ab_4 (actual rows=0 loops=1)
Filter: ((a >= $1) AND (a <= $2) AND (b <= $3))
- -> Seq Scan on ab_a2_b2 ab_4 (actual rows=0 loops=1)
+ -> Seq Scan on ab_a2_b2 ab_5 (actual rows=0 loops=1)
Filter: ((a >= $1) AND (a <= $2) AND (b <= $3))
- -> Seq Scan on ab_a2_b3 ab_5 (actual rows=0 loops=1)
+ -> Seq Scan on ab_a2_b3 ab_6 (actual rows=0 loops=1)
Filter: ((a >= $1) AND (a <= $2) AND (b <= $3))
(14 rows)
@@ -1779,9 +1779,9 @@ explain (analyze, costs off, summary off, timing off) execute ab_q1 (2, 2);
---------------------------------------------------------
Append (actual rows=0 loops=1)
Subplans Removed: 4
- -> Seq Scan on ab_a2_b1 ab (actual rows=0 loops=1)
+ -> Seq Scan on ab_a2_b1 ab_1 (actual rows=0 loops=1)
Filter: ((a >= $1) AND (a <= $2) AND (b < 3))
- -> Seq Scan on ab_a2_b2 ab_1 (actual rows=0 loops=1)
+ -> Seq Scan on ab_a2_b2 ab_2 (actual rows=0 loops=1)
Filter: ((a >= $1) AND (a <= $2) AND (b < 3))
(6 rows)
@@ -1790,13 +1790,13 @@ explain (analyze, costs off, summary off, timing off) execute ab_q1 (2, 4);
---------------------------------------------------------
Append (actual rows=0 loops=1)
Subplans Removed: 2
- -> Seq Scan on ab_a2_b1 ab (actual rows=0 loops=1)
+ -> Seq Scan on ab_a2_b1 ab_1 (actual rows=0 loops=1)
Filter: ((a >= $1) AND (a <= $2) AND (b < 3))
- -> Seq Scan on ab_a2_b2 ab_1 (actual rows=0 loops=1)
+ -> Seq Scan on ab_a2_b2 ab_2 (actual rows=0 loops=1)
Filter: ((a >= $1) AND (a <= $2) AND (b < 3))
- -> Seq Scan on ab_a3_b1 ab_2 (actual rows=0 loops=1)
+ -> Seq Scan on ab_a3_b1 ab_3 (actual rows=0 loops=1)
Filter: ((a >= $1) AND (a <= $2) AND (b < 3))
- -> Seq Scan on ab_a3_b2 ab_3 (actual rows=0 loops=1)
+ -> Seq Scan on ab_a3_b2 ab_4 (actual rows=0 loops=1)
Filter: ((a >= $1) AND (a <= $2) AND (b < 3))
(10 rows)
@@ -1811,11 +1811,11 @@ explain (analyze, costs off, summary off, timing off) execute ab_q2 (2, 2);
InitPlan 1 (returns $0)
-> Result (actual rows=1 loops=1)
Subplans Removed: 6
- -> Seq Scan on ab_a2_b1 ab (actual rows=0 loops=1)
+ -> Seq Scan on ab_a2_b1 ab_1 (actual rows=0 loops=1)
Filter: ((a >= $1) AND (a <= $2) AND (b < $0))
- -> Seq Scan on ab_a2_b2 ab_1 (actual rows=0 loops=1)
+ -> Seq Scan on ab_a2_b2 ab_2 (actual rows=0 loops=1)
Filter: ((a >= $1) AND (a <= $2) AND (b < $0))
- -> Seq Scan on ab_a2_b3 ab_2 (never executed)
+ -> Seq Scan on ab_a2_b3 ab_3 (never executed)
Filter: ((a >= $1) AND (a <= $2) AND (b < $0))
(10 rows)
@@ -1829,11 +1829,11 @@ explain (analyze, costs off, summary off, timing off) execute ab_q3 (2, 2);
InitPlan 1 (returns $0)
-> Result (actual rows=1 loops=1)
Subplans Removed: 6
- -> Seq Scan on ab_a1_b2 ab (actual rows=0 loops=1)
+ -> Seq Scan on ab_a1_b2 ab_1 (actual rows=0 loops=1)
Filter: ((b >= $1) AND (b <= $2) AND (a < $0))
- -> Seq Scan on ab_a2_b2 ab_1 (actual rows=0 loops=1)
+ -> Seq Scan on ab_a2_b2 ab_2 (actual rows=0 loops=1)
Filter: ((b >= $1) AND (b <= $2) AND (a < $0))
- -> Seq Scan on ab_a3_b2 ab_2 (never executed)
+ -> Seq Scan on ab_a3_b2 ab_3 (never executed)
Filter: ((b >= $1) AND (b <= $2) AND (a < $0))
(10 rows)
@@ -1864,11 +1864,11 @@ begin;
create function list_part_fn(int) returns int as $$ begin return $1; end;$$ language plpgsql stable;
-- Ensure pruning works using a stable function containing no Vars
explain (analyze, costs off, summary off, timing off) select * from list_part where a = list_part_fn(1);
- QUERY PLAN
-----------------------------------------------------------------
+ QUERY PLAN
+------------------------------------------------------------------
Append (actual rows=1 loops=1)
Subplans Removed: 3
- -> Seq Scan on list_part1 list_part (actual rows=1 loops=1)
+ -> Seq Scan on list_part1 list_part_1 (actual rows=1 loops=1)
Filter: (a = list_part_fn(1))
(4 rows)
@@ -1877,13 +1877,13 @@ explain (analyze, costs off, summary off, timing off) select * from list_part wh
QUERY PLAN
------------------------------------------------------------------
Append (actual rows=4 loops=1)
- -> Seq Scan on list_part1 list_part (actual rows=1 loops=1)
+ -> Seq Scan on list_part1 list_part_1 (actual rows=1 loops=1)
Filter: (a = list_part_fn(a))
- -> Seq Scan on list_part2 list_part_1 (actual rows=1 loops=1)
+ -> Seq Scan on list_part2 list_part_2 (actual rows=1 loops=1)
Filter: (a = list_part_fn(a))
- -> Seq Scan on list_part3 list_part_2 (actual rows=1 loops=1)
+ -> Seq Scan on list_part3 list_part_3 (actual rows=1 loops=1)
Filter: (a = list_part_fn(a))
- -> Seq Scan on list_part4 list_part_3 (actual rows=1 loops=1)
+ -> Seq Scan on list_part4 list_part_4 (actual rows=1 loops=1)
Filter: (a = list_part_fn(a))
(9 rows)
@@ -1892,16 +1892,16 @@ explain (analyze, costs off, summary off, timing off) select * from list_part wh
QUERY PLAN
------------------------------------------------------------------
Append (actual rows=0 loops=1)
- -> Seq Scan on list_part1 list_part (actual rows=0 loops=1)
+ -> Seq Scan on list_part1 list_part_1 (actual rows=0 loops=1)
Filter: (a = (list_part_fn(1) + a))
Rows Removed by Filter: 1
- -> Seq Scan on list_part2 list_part_1 (actual rows=0 loops=1)
+ -> Seq Scan on list_part2 list_part_2 (actual rows=0 loops=1)
Filter: (a = (list_part_fn(1) + a))
Rows Removed by Filter: 1
- -> Seq Scan on list_part3 list_part_2 (actual rows=0 loops=1)
+ -> Seq Scan on list_part3 list_part_3 (actual rows=0 loops=1)
Filter: (a = (list_part_fn(1) + a))
Rows Removed by Filter: 1
- -> Seq Scan on list_part4 list_part_3 (actual rows=0 loops=1)
+ -> Seq Scan on list_part4 list_part_4 (actual rows=0 loops=1)
Filter: (a = (list_part_fn(1) + a))
Rows Removed by Filter: 1
(13 rows)
@@ -1951,11 +1951,11 @@ select explain_parallel_append('execute ab_q4 (2, 2)');
-> Partial Aggregate (actual rows=N loops=N)
-> Parallel Append (actual rows=N loops=N)
Subplans Removed: 6
- -> Parallel Seq Scan on ab_a2_b1 ab (actual rows=N loops=N)
+ -> Parallel Seq Scan on ab_a2_b1 ab_1 (actual rows=N loops=N)
Filter: ((a >= $1) AND (a <= $2) AND (b < 4))
- -> Parallel Seq Scan on ab_a2_b2 ab_1 (actual rows=N loops=N)
+ -> Parallel Seq Scan on ab_a2_b2 ab_2 (actual rows=N loops=N)
Filter: ((a >= $1) AND (a <= $2) AND (b < 4))
- -> Parallel Seq Scan on ab_a2_b3 ab_2 (actual rows=N loops=N)
+ -> Parallel Seq Scan on ab_a2_b3 ab_3 (actual rows=N loops=N)
Filter: ((a >= $1) AND (a <= $2) AND (b < 4))
(13 rows)
@@ -1972,11 +1972,11 @@ select explain_parallel_append('execute ab_q5 (1, 1, 1)');
-> Partial Aggregate (actual rows=N loops=N)
-> Parallel Append (actual rows=N loops=N)
Subplans Removed: 6
- -> Parallel Seq Scan on ab_a1_b1 ab (actual rows=N loops=N)
+ -> Parallel Seq Scan on ab_a1_b1 ab_1 (actual rows=N loops=N)
Filter: ((b < 4) AND (a = ANY (ARRAY[$1, $2, $3])))
- -> Parallel Seq Scan on ab_a1_b2 ab_1 (actual rows=N loops=N)
+ -> Parallel Seq Scan on ab_a1_b2 ab_2 (actual rows=N loops=N)
Filter: ((b < 4) AND (a = ANY (ARRAY[$1, $2, $3])))
- -> Parallel Seq Scan on ab_a1_b3 ab_2 (actual rows=N loops=N)
+ -> Parallel Seq Scan on ab_a1_b3 ab_3 (actual rows=N loops=N)
Filter: ((b < 4) AND (a = ANY (ARRAY[$1, $2, $3])))
(13 rows)
@@ -1990,17 +1990,17 @@ select explain_parallel_append('execute ab_q5 (2, 3, 3)');
-> Partial Aggregate (actual rows=N loops=N)
-> Parallel Append (actual rows=N loops=N)
Subplans Removed: 3
- -> Parallel Seq Scan on ab_a2_b1 ab (actual rows=N loops=N)
+ -> Parallel Seq Scan on ab_a2_b1 ab_1 (actual rows=N loops=N)
Filter: ((b < 4) AND (a = ANY (ARRAY[$1, $2, $3])))
- -> Parallel Seq Scan on ab_a2_b2 ab_1 (actual rows=N loops=N)
+ -> Parallel Seq Scan on ab_a2_b2 ab_2 (actual rows=N loops=N)
Filter: ((b < 4) AND (a = ANY (ARRAY[$1, $2, $3])))
- -> Parallel Seq Scan on ab_a2_b3 ab_2 (actual rows=N loops=N)
+ -> Parallel Seq Scan on ab_a2_b3 ab_3 (actual rows=N loops=N)
Filter: ((b < 4) AND (a = ANY (ARRAY[$1, $2, $3])))
- -> Parallel Seq Scan on ab_a3_b1 ab_3 (actual rows=N loops=N)
+ -> Parallel Seq Scan on ab_a3_b1 ab_4 (actual rows=N loops=N)
Filter: ((b < 4) AND (a = ANY (ARRAY[$1, $2, $3])))
- -> Parallel Seq Scan on ab_a3_b2 ab_4 (actual rows=N loops=N)
+ -> Parallel Seq Scan on ab_a3_b2 ab_5 (actual rows=N loops=N)
Filter: ((b < 4) AND (a = ANY (ARRAY[$1, $2, $3])))
- -> Parallel Seq Scan on ab_a3_b3 ab_5 (actual rows=N loops=N)
+ -> Parallel Seq Scan on ab_a3_b3 ab_6 (actual rows=N loops=N)
Filter: ((b < 4) AND (a = ANY (ARRAY[$1, $2, $3])))
(19 rows)
@@ -2016,7 +2016,7 @@ select explain_parallel_append('execute ab_q5 (33, 44, 55)');
-> Partial Aggregate (actual rows=N loops=N)
-> Parallel Append (actual rows=N loops=N)
Subplans Removed: 8
- -> Parallel Seq Scan on ab_a1_b1 ab (never executed)
+ -> Parallel Seq Scan on ab_a1_b1 ab_1 (never executed)
Filter: ((b < 4) AND (a = ANY (ARRAY[$1, $2, $3])))
(9 rows)
@@ -2034,11 +2034,11 @@ select explain_parallel_append('select count(*) from ab where (a = (select 1) or
Params Evaluated: $0, $1
Workers Launched: N
-> Parallel Append (actual rows=N loops=N)
- -> Parallel Seq Scan on ab_a1_b2 ab (actual rows=N loops=N)
+ -> Parallel Seq Scan on ab_a1_b2 ab_1 (actual rows=N loops=N)
Filter: ((b = 2) AND ((a = $0) OR (a = $1)))
- -> Parallel Seq Scan on ab_a2_b2 ab_1 (never executed)
+ -> Parallel Seq Scan on ab_a2_b2 ab_2 (never executed)
Filter: ((b = 2) AND ((a = $0) OR (a = $1)))
- -> Parallel Seq Scan on ab_a3_b2 ab_2 (actual rows=N loops=N)
+ -> Parallel Seq Scan on ab_a3_b2 ab_3 (actual rows=N loops=N)
Filter: ((b = 2) AND ((a = $0) OR (a = $1)))
(16 rows)
@@ -2072,23 +2072,23 @@ select explain_parallel_append('select avg(ab.a) from ab inner join lprt_a a on
-> Parallel Seq Scan on lprt_a a (actual rows=N loops=N)
Filter: (a = ANY ('{0,0,1}'::integer[]))
-> Append (actual rows=N loops=N)
- -> Index Scan using ab_a1_b1_a_idx on ab_a1_b1 ab (actual rows=N loops=N)
+ -> Index Scan using ab_a1_b1_a_idx on ab_a1_b1 ab_1 (actual rows=N loops=N)
Index Cond: (a = a.a)
- -> Index Scan using ab_a1_b2_a_idx on ab_a1_b2 ab_1 (actual rows=N loops=N)
+ -> Index Scan using ab_a1_b2_a_idx on ab_a1_b2 ab_2 (actual rows=N loops=N)
Index Cond: (a = a.a)
- -> Index Scan using ab_a1_b3_a_idx on ab_a1_b3 ab_2 (actual rows=N loops=N)
+ -> Index Scan using ab_a1_b3_a_idx on ab_a1_b3 ab_3 (actual rows=N loops=N)
Index Cond: (a = a.a)
- -> Index Scan using ab_a2_b1_a_idx on ab_a2_b1 ab_3 (never executed)
+ -> Index Scan using ab_a2_b1_a_idx on ab_a2_b1 ab_4 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a2_b2_a_idx on ab_a2_b2 ab_4 (never executed)
+ -> Index Scan using ab_a2_b2_a_idx on ab_a2_b2 ab_5 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a2_b3_a_idx on ab_a2_b3 ab_5 (never executed)
+ -> Index Scan using ab_a2_b3_a_idx on ab_a2_b3 ab_6 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a3_b1_a_idx on ab_a3_b1 ab_6 (never executed)
+ -> Index Scan using ab_a3_b1_a_idx on ab_a3_b1 ab_7 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a3_b2_a_idx on ab_a3_b2 ab_7 (never executed)
+ -> Index Scan using ab_a3_b2_a_idx on ab_a3_b2 ab_8 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a3_b3_a_idx on ab_a3_b3 ab_8 (never executed)
+ -> Index Scan using ab_a3_b3_a_idx on ab_a3_b3 ab_9 (never executed)
Index Cond: (a = a.a)
(27 rows)
@@ -2106,23 +2106,23 @@ select explain_parallel_append('select avg(ab.a) from ab inner join lprt_a a on
-> Parallel Seq Scan on lprt_a a (actual rows=N loops=N)
Filter: (a = ANY ('{0,0,1}'::integer[]))
-> Append (actual rows=N loops=N)
- -> Index Scan using ab_a1_b1_a_idx on ab_a1_b1 ab (actual rows=N loops=N)
+ -> Index Scan using ab_a1_b1_a_idx on ab_a1_b1 ab_1 (actual rows=N loops=N)
Index Cond: (a = (a.a + 0))
- -> Index Scan using ab_a1_b2_a_idx on ab_a1_b2 ab_1 (actual rows=N loops=N)
+ -> Index Scan using ab_a1_b2_a_idx on ab_a1_b2 ab_2 (actual rows=N loops=N)
Index Cond: (a = (a.a + 0))
- -> Index Scan using ab_a1_b3_a_idx on ab_a1_b3 ab_2 (actual rows=N loops=N)
+ -> Index Scan using ab_a1_b3_a_idx on ab_a1_b3 ab_3 (actual rows=N loops=N)
Index Cond: (a = (a.a + 0))
- -> Index Scan using ab_a2_b1_a_idx on ab_a2_b1 ab_3 (never executed)
+ -> Index Scan using ab_a2_b1_a_idx on ab_a2_b1 ab_4 (never executed)
Index Cond: (a = (a.a + 0))
- -> Index Scan using ab_a2_b2_a_idx on ab_a2_b2 ab_4 (never executed)
+ -> Index Scan using ab_a2_b2_a_idx on ab_a2_b2 ab_5 (never executed)
Index Cond: (a = (a.a + 0))
- -> Index Scan using ab_a2_b3_a_idx on ab_a2_b3 ab_5 (never executed)
+ -> Index Scan using ab_a2_b3_a_idx on ab_a2_b3 ab_6 (never executed)
Index Cond: (a = (a.a + 0))
- -> Index Scan using ab_a3_b1_a_idx on ab_a3_b1 ab_6 (never executed)
+ -> Index Scan using ab_a3_b1_a_idx on ab_a3_b1 ab_7 (never executed)
Index Cond: (a = (a.a + 0))
- -> Index Scan using ab_a3_b2_a_idx on ab_a3_b2 ab_7 (never executed)
+ -> Index Scan using ab_a3_b2_a_idx on ab_a3_b2 ab_8 (never executed)
Index Cond: (a = (a.a + 0))
- -> Index Scan using ab_a3_b3_a_idx on ab_a3_b3 ab_8 (never executed)
+ -> Index Scan using ab_a3_b3_a_idx on ab_a3_b3 ab_9 (never executed)
Index Cond: (a = (a.a + 0))
(27 rows)
@@ -2139,23 +2139,23 @@ select explain_parallel_append('select avg(ab.a) from ab inner join lprt_a a on
-> Parallel Seq Scan on lprt_a a (actual rows=N loops=N)
Filter: (a = ANY ('{1,0,3}'::integer[]))
-> Append (actual rows=N loops=N)
- -> Index Scan using ab_a1_b1_a_idx on ab_a1_b1 ab (actual rows=N loops=N)
+ -> Index Scan using ab_a1_b1_a_idx on ab_a1_b1 ab_1 (actual rows=N loops=N)
Index Cond: (a = a.a)
- -> Index Scan using ab_a1_b2_a_idx on ab_a1_b2 ab_1 (actual rows=N loops=N)
+ -> Index Scan using ab_a1_b2_a_idx on ab_a1_b2 ab_2 (actual rows=N loops=N)
Index Cond: (a = a.a)
- -> Index Scan using ab_a1_b3_a_idx on ab_a1_b3 ab_2 (actual rows=N loops=N)
+ -> Index Scan using ab_a1_b3_a_idx on ab_a1_b3 ab_3 (actual rows=N loops=N)
Index Cond: (a = a.a)
- -> Index Scan using ab_a2_b1_a_idx on ab_a2_b1 ab_3 (never executed)
+ -> Index Scan using ab_a2_b1_a_idx on ab_a2_b1 ab_4 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a2_b2_a_idx on ab_a2_b2 ab_4 (never executed)
+ -> Index Scan using ab_a2_b2_a_idx on ab_a2_b2 ab_5 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a2_b3_a_idx on ab_a2_b3 ab_5 (never executed)
+ -> Index Scan using ab_a2_b3_a_idx on ab_a2_b3 ab_6 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a3_b1_a_idx on ab_a3_b1 ab_6 (actual rows=N loops=N)
+ -> Index Scan using ab_a3_b1_a_idx on ab_a3_b1 ab_7 (actual rows=N loops=N)
Index Cond: (a = a.a)
- -> Index Scan using ab_a3_b2_a_idx on ab_a3_b2 ab_7 (actual rows=N loops=N)
+ -> Index Scan using ab_a3_b2_a_idx on ab_a3_b2 ab_8 (actual rows=N loops=N)
Index Cond: (a = a.a)
- -> Index Scan using ab_a3_b3_a_idx on ab_a3_b3 ab_8 (actual rows=N loops=N)
+ -> Index Scan using ab_a3_b3_a_idx on ab_a3_b3 ab_9 (actual rows=N loops=N)
Index Cond: (a = a.a)
(27 rows)
@@ -2172,23 +2172,23 @@ select explain_parallel_append('select avg(ab.a) from ab inner join lprt_a a on
Filter: (a = ANY ('{1,0,0}'::integer[]))
Rows Removed by Filter: N
-> Append (actual rows=N loops=N)
- -> Index Scan using ab_a1_b1_a_idx on ab_a1_b1 ab (actual rows=N loops=N)
+ -> Index Scan using ab_a1_b1_a_idx on ab_a1_b1 ab_1 (actual rows=N loops=N)
Index Cond: (a = a.a)
- -> Index Scan using ab_a1_b2_a_idx on ab_a1_b2 ab_1 (actual rows=N loops=N)
+ -> Index Scan using ab_a1_b2_a_idx on ab_a1_b2 ab_2 (actual rows=N loops=N)
Index Cond: (a = a.a)
- -> Index Scan using ab_a1_b3_a_idx on ab_a1_b3 ab_2 (actual rows=N loops=N)
+ -> Index Scan using ab_a1_b3_a_idx on ab_a1_b3 ab_3 (actual rows=N loops=N)
Index Cond: (a = a.a)
- -> Index Scan using ab_a2_b1_a_idx on ab_a2_b1 ab_3 (never executed)
+ -> Index Scan using ab_a2_b1_a_idx on ab_a2_b1 ab_4 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a2_b2_a_idx on ab_a2_b2 ab_4 (never executed)
+ -> Index Scan using ab_a2_b2_a_idx on ab_a2_b2 ab_5 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a2_b3_a_idx on ab_a2_b3 ab_5 (never executed)
+ -> Index Scan using ab_a2_b3_a_idx on ab_a2_b3 ab_6 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a3_b1_a_idx on ab_a3_b1 ab_6 (never executed)
+ -> Index Scan using ab_a3_b1_a_idx on ab_a3_b1 ab_7 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a3_b2_a_idx on ab_a3_b2 ab_7 (never executed)
+ -> Index Scan using ab_a3_b2_a_idx on ab_a3_b2 ab_8 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a3_b3_a_idx on ab_a3_b3 ab_8 (never executed)
+ -> Index Scan using ab_a3_b3_a_idx on ab_a3_b3 ab_9 (never executed)
Index Cond: (a = a.a)
(28 rows)
@@ -2206,23 +2206,23 @@ select explain_parallel_append('select avg(ab.a) from ab inner join lprt_a a on
Filter: (a = ANY ('{1,0,0}'::integer[]))
Rows Removed by Filter: N
-> Append (actual rows=N loops=N)
- -> Index Scan using ab_a1_b1_a_idx on ab_a1_b1 ab (never executed)
+ -> Index Scan using ab_a1_b1_a_idx on ab_a1_b1 ab_1 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a1_b2_a_idx on ab_a1_b2 ab_1 (never executed)
+ -> Index Scan using ab_a1_b2_a_idx on ab_a1_b2 ab_2 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a1_b3_a_idx on ab_a1_b3 ab_2 (never executed)
+ -> Index Scan using ab_a1_b3_a_idx on ab_a1_b3 ab_3 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a2_b1_a_idx on ab_a2_b1 ab_3 (never executed)
+ -> Index Scan using ab_a2_b1_a_idx on ab_a2_b1 ab_4 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a2_b2_a_idx on ab_a2_b2 ab_4 (never executed)
+ -> Index Scan using ab_a2_b2_a_idx on ab_a2_b2 ab_5 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a2_b3_a_idx on ab_a2_b3 ab_5 (never executed)
+ -> Index Scan using ab_a2_b3_a_idx on ab_a2_b3 ab_6 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a3_b1_a_idx on ab_a3_b1 ab_6 (never executed)
+ -> Index Scan using ab_a3_b1_a_idx on ab_a3_b1 ab_7 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a3_b2_a_idx on ab_a3_b2 ab_7 (never executed)
+ -> Index Scan using ab_a3_b2_a_idx on ab_a3_b2 ab_8 (never executed)
Index Cond: (a = a.a)
- -> Index Scan using ab_a3_b3_a_idx on ab_a3_b3 ab_8 (never executed)
+ -> Index Scan using ab_a3_b3_a_idx on ab_a3_b3 ab_9 (never executed)
Index Cond: (a = a.a)
(28 rows)
@@ -2244,47 +2244,47 @@ select * from ab where a = (select max(a) from lprt_a) and b = (select max(a)-1
InitPlan 2 (returns $1)
-> Aggregate (actual rows=1 loops=1)
-> Seq Scan on lprt_a lprt_a_1 (actual rows=102 loops=1)
- -> Bitmap Heap Scan on ab_a1_b1 ab (never executed)
+ -> Bitmap Heap Scan on ab_a1_b1 ab_1 (never executed)
Recheck Cond: (a = $0)
Filter: (b = $1)
-> Bitmap Index Scan on ab_a1_b1_a_idx (never executed)
Index Cond: (a = $0)
- -> Bitmap Heap Scan on ab_a1_b2 ab_1 (never executed)
+ -> Bitmap Heap Scan on ab_a1_b2 ab_2 (never executed)
Recheck Cond: (a = $0)
Filter: (b = $1)
-> Bitmap Index Scan on ab_a1_b2_a_idx (never executed)
Index Cond: (a = $0)
- -> Bitmap Heap Scan on ab_a1_b3 ab_2 (never executed)
+ -> Bitmap Heap Scan on ab_a1_b3 ab_3 (never executed)
Recheck Cond: (a = $0)
Filter: (b = $1)
-> Bitmap Index Scan on ab_a1_b3_a_idx (never executed)
Index Cond: (a = $0)
- -> Bitmap Heap Scan on ab_a2_b1 ab_3 (never executed)
+ -> Bitmap Heap Scan on ab_a2_b1 ab_4 (never executed)
Recheck Cond: (a = $0)
Filter: (b = $1)
-> Bitmap Index Scan on ab_a2_b1_a_idx (never executed)
Index Cond: (a = $0)
- -> Bitmap Heap Scan on ab_a2_b2 ab_4 (never executed)
+ -> Bitmap Heap Scan on ab_a2_b2 ab_5 (never executed)
Recheck Cond: (a = $0)
Filter: (b = $1)
-> Bitmap Index Scan on ab_a2_b2_a_idx (never executed)
Index Cond: (a = $0)
- -> Bitmap Heap Scan on ab_a2_b3 ab_5 (never executed)
+ -> Bitmap Heap Scan on ab_a2_b3 ab_6 (never executed)
Recheck Cond: (a = $0)
Filter: (b = $1)
-> Bitmap Index Scan on ab_a2_b3_a_idx (never executed)
Index Cond: (a = $0)
- -> Bitmap Heap Scan on ab_a3_b1 ab_6 (never executed)
+ -> Bitmap Heap Scan on ab_a3_b1 ab_7 (never executed)
Recheck Cond: (a = $0)
Filter: (b = $1)
-> Bitmap Index Scan on ab_a3_b1_a_idx (never executed)
Index Cond: (a = $0)
- -> Bitmap Heap Scan on ab_a3_b2 ab_7 (actual rows=0 loops=1)
+ -> Bitmap Heap Scan on ab_a3_b2 ab_8 (actual rows=0 loops=1)
Recheck Cond: (a = $0)
Filter: (b = $1)
-> Bitmap Index Scan on ab_a3_b2_a_idx (actual rows=0 loops=1)
Index Cond: (a = $0)
- -> Bitmap Heap Scan on ab_a3_b3 ab_8 (never executed)
+ -> Bitmap Heap Scan on ab_a3_b3 ab_9 (never executed)
Recheck Cond: (a = $0)
Filter: (b = $1)
-> Bitmap Index Scan on ab_a3_b3_a_idx (never executed)
@@ -2300,38 +2300,38 @@ select * from (select * from ab where a = 1 union all select * from ab) ab where
InitPlan 1 (returns $0)
-> Result (actual rows=1 loops=1)
-> Append (actual rows=0 loops=1)
- -> Bitmap Heap Scan on ab_a1_b1 ab_9 (actual rows=0 loops=1)
+ -> Bitmap Heap Scan on ab_a1_b1 ab_11 (actual rows=0 loops=1)
Recheck Cond: (a = 1)
Filter: (b = $0)
-> Bitmap Index Scan on ab_a1_b1_a_idx (actual rows=0 loops=1)
Index Cond: (a = 1)
- -> Bitmap Heap Scan on ab_a1_b2 ab_10 (never executed)
+ -> Bitmap Heap Scan on ab_a1_b2 ab_12 (never executed)
Recheck Cond: (a = 1)
Filter: (b = $0)
-> Bitmap Index Scan on ab_a1_b2_a_idx (never executed)
Index Cond: (a = 1)
- -> Bitmap Heap Scan on ab_a1_b3 ab_11 (never executed)
+ -> Bitmap Heap Scan on ab_a1_b3 ab_13 (never executed)
Recheck Cond: (a = 1)
Filter: (b = $0)
-> Bitmap Index Scan on ab_a1_b3_a_idx (never executed)
Index Cond: (a = 1)
- -> Seq Scan on ab_a1_b1 ab (actual rows=0 loops=1)
+ -> Seq Scan on ab_a1_b1 ab_1 (actual rows=0 loops=1)
Filter: (b = $0)
- -> Seq Scan on ab_a1_b2 ab_1 (never executed)
+ -> Seq Scan on ab_a1_b2 ab_2 (never executed)
Filter: (b = $0)
- -> Seq Scan on ab_a1_b3 ab_2 (never executed)
+ -> Seq Scan on ab_a1_b3 ab_3 (never executed)
Filter: (b = $0)
- -> Seq Scan on ab_a2_b1 ab_3 (actual rows=0 loops=1)
+ -> Seq Scan on ab_a2_b1 ab_4 (actual rows=0 loops=1)
Filter: (b = $0)
- -> Seq Scan on ab_a2_b2 ab_4 (never executed)
+ -> Seq Scan on ab_a2_b2 ab_5 (never executed)
Filter: (b = $0)
- -> Seq Scan on ab_a2_b3 ab_5 (never executed)
+ -> Seq Scan on ab_a2_b3 ab_6 (never executed)
Filter: (b = $0)
- -> Seq Scan on ab_a3_b1 ab_6 (actual rows=0 loops=1)
+ -> Seq Scan on ab_a3_b1 ab_7 (actual rows=0 loops=1)
Filter: (b = $0)
- -> Seq Scan on ab_a3_b2 ab_7 (never executed)
+ -> Seq Scan on ab_a3_b2 ab_8 (never executed)
Filter: (b = $0)
- -> Seq Scan on ab_a3_b3 ab_8 (never executed)
+ -> Seq Scan on ab_a3_b3 ab_9 (never executed)
Filter: (b = $0)
(37 rows)
@@ -2344,40 +2344,40 @@ select * from (select * from ab where a = 1 union all (values(10,5)) union all s
InitPlan 1 (returns $0)
-> Result (actual rows=1 loops=1)
-> Append (actual rows=0 loops=1)
- -> Bitmap Heap Scan on ab_a1_b1 ab_9 (actual rows=0 loops=1)
+ -> Bitmap Heap Scan on ab_a1_b1 ab_11 (actual rows=0 loops=1)
Recheck Cond: (a = 1)
Filter: (b = $0)
-> Bitmap Index Scan on ab_a1_b1_a_idx (actual rows=0 loops=1)
Index Cond: (a = 1)
- -> Bitmap Heap Scan on ab_a1_b2 ab_10 (never executed)
+ -> Bitmap Heap Scan on ab_a1_b2 ab_12 (never executed)
Recheck Cond: (a = 1)
Filter: (b = $0)
-> Bitmap Index Scan on ab_a1_b2_a_idx (never executed)
Index Cond: (a = 1)
- -> Bitmap Heap Scan on ab_a1_b3 ab_11 (never executed)
+ -> Bitmap Heap Scan on ab_a1_b3 ab_13 (never executed)
Recheck Cond: (a = 1)
Filter: (b = $0)
-> Bitmap Index Scan on ab_a1_b3_a_idx (never executed)
Index Cond: (a = 1)
-> Result (actual rows=0 loops=1)
One-Time Filter: (5 = $0)
- -> Seq Scan on ab_a1_b1 ab (actual rows=0 loops=1)
+ -> Seq Scan on ab_a1_b1 ab_1 (actual rows=0 loops=1)
Filter: (b = $0)
- -> Seq Scan on ab_a1_b2 ab_1 (never executed)
+ -> Seq Scan on ab_a1_b2 ab_2 (never executed)
Filter: (b = $0)
- -> Seq Scan on ab_a1_b3 ab_2 (never executed)
+ -> Seq Scan on ab_a1_b3 ab_3 (never executed)
Filter: (b = $0)
- -> Seq Scan on ab_a2_b1 ab_3 (actual rows=0 loops=1)
+ -> Seq Scan on ab_a2_b1 ab_4 (actual rows=0 loops=1)
Filter: (b = $0)
- -> Seq Scan on ab_a2_b2 ab_4 (never executed)
+ -> Seq Scan on ab_a2_b2 ab_5 (never executed)
Filter: (b = $0)
- -> Seq Scan on ab_a2_b3 ab_5 (never executed)
+ -> Seq Scan on ab_a2_b3 ab_6 (never executed)
Filter: (b = $0)
- -> Seq Scan on ab_a3_b1 ab_6 (actual rows=0 loops=1)
+ -> Seq Scan on ab_a3_b1 ab_7 (actual rows=0 loops=1)
Filter: (b = $0)
- -> Seq Scan on ab_a3_b2 ab_7 (never executed)
+ -> Seq Scan on ab_a3_b2 ab_8 (never executed)
Filter: (b = $0)
- -> Seq Scan on ab_a3_b3 ab_8 (never executed)
+ -> Seq Scan on ab_a3_b3 ab_9 (never executed)
Filter: (b = $0)
(39 rows)
@@ -2402,20 +2402,20 @@ explain (analyze, costs off, summary off, timing off) execute ab_q6(1);
InitPlan 1 (returns $0)
-> Result (actual rows=1 loops=1)
Subplans Removed: 12
- -> Seq Scan on ab_a1_b1 ab (never executed)
+ -> Seq Scan on ab_a1_b1 ab_1 (never executed)
Filter: ((a = $1) AND (b = $0))
- -> Seq Scan on ab_a1_b2 ab_1 (never executed)
+ -> Seq Scan on ab_a1_b2 ab_2 (never executed)
Filter: ((a = $1) AND (b = $0))
- -> Seq Scan on ab_a1_b3 ab_2 (never executed)
+ -> Seq Scan on ab_a1_b3 ab_3 (never executed)
Filter: ((a = $1) AND (b = $0))
-> Seq Scan on xy_1 (actual rows=0 loops=1)
Filter: ((x = $1) AND (y = $0))
Rows Removed by Filter: 1
- -> Seq Scan on ab_a1_b1 ab_3 (never executed)
+ -> Seq Scan on ab_a1_b1 ab_4 (never executed)
Filter: ((a = $1) AND (b = $0))
- -> Seq Scan on ab_a1_b2 ab_4 (never executed)
+ -> Seq Scan on ab_a1_b2 ab_5 (never executed)
Filter: ((a = $1) AND (b = $0))
- -> Seq Scan on ab_a1_b3 ab_5 (never executed)
+ -> Seq Scan on ab_a1_b3 ab_6 (never executed)
Filter: ((a = $1) AND (b = $0))
(19 rows)
@@ -2446,16 +2446,16 @@ update ab_a1 set b = 3 from ab where ab.a = 1 and ab.a = ab_a1.a;
Update on ab_a1_b3 ab_a1_3
-> Nested Loop (actual rows=0 loops=1)
-> Append (actual rows=1 loops=1)
- -> Bitmap Heap Scan on ab_a1_b1 ab (actual rows=0 loops=1)
+ -> Bitmap Heap Scan on ab_a1_b1 ab_1 (actual rows=0 loops=1)
Recheck Cond: (a = 1)
-> Bitmap Index Scan on ab_a1_b1_a_idx (actual rows=0 loops=1)
Index Cond: (a = 1)
- -> Bitmap Heap Scan on ab_a1_b2 ab_1 (actual rows=1 loops=1)
+ -> Bitmap Heap Scan on ab_a1_b2 ab_2 (actual rows=1 loops=1)
Recheck Cond: (a = 1)
Heap Blocks: exact=1
-> Bitmap Index Scan on ab_a1_b2_a_idx (actual rows=1 loops=1)
Index Cond: (a = 1)
- -> Bitmap Heap Scan on ab_a1_b3 ab_2 (actual rows=0 loops=1)
+ -> Bitmap Heap Scan on ab_a1_b3 ab_3 (actual rows=0 loops=1)
Recheck Cond: (a = 1)
-> Bitmap Index Scan on ab_a1_b3_a_idx (actual rows=0 loops=1)
Index Cond: (a = 1)
@@ -2466,16 +2466,16 @@ update ab_a1 set b = 3 from ab where ab.a = 1 and ab.a = ab_a1.a;
Index Cond: (a = 1)
-> Nested Loop (actual rows=1 loops=1)
-> Append (actual rows=1 loops=1)
- -> Bitmap Heap Scan on ab_a1_b1 ab (actual rows=0 loops=1)
+ -> Bitmap Heap Scan on ab_a1_b1 ab_1 (actual rows=0 loops=1)
Recheck Cond: (a = 1)
-> Bitmap Index Scan on ab_a1_b1_a_idx (actual rows=0 loops=1)
Index Cond: (a = 1)
- -> Bitmap Heap Scan on ab_a1_b2 ab_1 (actual rows=1 loops=1)
+ -> Bitmap Heap Scan on ab_a1_b2 ab_2 (actual rows=1 loops=1)
Recheck Cond: (a = 1)
Heap Blocks: exact=1
-> Bitmap Index Scan on ab_a1_b2_a_idx (actual rows=1 loops=1)
Index Cond: (a = 1)
- -> Bitmap Heap Scan on ab_a1_b3 ab_2 (actual rows=0 loops=1)
+ -> Bitmap Heap Scan on ab_a1_b3 ab_3 (actual rows=0 loops=1)
Recheck Cond: (a = 1)
-> Bitmap Index Scan on ab_a1_b3_a_idx (actual rows=1 loops=1)
Index Cond: (a = 1)
@@ -2487,16 +2487,16 @@ update ab_a1 set b = 3 from ab where ab.a = 1 and ab.a = ab_a1.a;
Index Cond: (a = 1)
-> Nested Loop (actual rows=0 loops=1)
-> Append (actual rows=1 loops=1)
- -> Bitmap Heap Scan on ab_a1_b1 ab (actual rows=0 loops=1)
+ -> Bitmap Heap Scan on ab_a1_b1 ab_1 (actual rows=0 loops=1)
Recheck Cond: (a = 1)
-> Bitmap Index Scan on ab_a1_b1_a_idx (actual rows=0 loops=1)
Index Cond: (a = 1)
- -> Bitmap Heap Scan on ab_a1_b2 ab_1 (actual rows=1 loops=1)
+ -> Bitmap Heap Scan on ab_a1_b2 ab_2 (actual rows=1 loops=1)
Recheck Cond: (a = 1)
Heap Blocks: exact=1
-> Bitmap Index Scan on ab_a1_b2_a_idx (actual rows=1 loops=1)
Index Cond: (a = 1)
- -> Bitmap Heap Scan on ab_a1_b3 ab_2 (actual rows=0 loops=1)
+ -> Bitmap Heap Scan on ab_a1_b3 ab_3 (actual rows=0 loops=1)
Recheck Cond: (a = 1)
-> Bitmap Index Scan on ab_a1_b3_a_idx (actual rows=1 loops=1)
Index Cond: (a = 1)
@@ -2518,8 +2518,8 @@ truncate ab;
insert into ab values (1, 1), (1, 2), (1, 3), (2, 1);
explain (analyze, costs off, summary off, timing off)
update ab_a1 set b = 3 from ab_a2 where ab_a2.b = (select 1);
- QUERY PLAN
-----------------------------------------------------------------------------
+ QUERY PLAN
+------------------------------------------------------------------------------
Update on ab_a1 (actual rows=0 loops=1)
Update on ab_a1_b1 ab_a1_1
Update on ab_a1_b2 ab_a1_2
@@ -2530,31 +2530,31 @@ update ab_a1 set b = 3 from ab_a2 where ab_a2.b = (select 1);
-> Seq Scan on ab_a1_b1 ab_a1_1 (actual rows=1 loops=1)
-> Materialize (actual rows=1 loops=1)
-> Append (actual rows=1 loops=1)
- -> Seq Scan on ab_a2_b1 ab_a2 (actual rows=1 loops=1)
+ -> Seq Scan on ab_a2_b1 ab_a2_1 (actual rows=1 loops=1)
Filter: (b = $0)
- -> Seq Scan on ab_a2_b2 ab_a2_1 (never executed)
+ -> Seq Scan on ab_a2_b2 ab_a2_2 (never executed)
Filter: (b = $0)
- -> Seq Scan on ab_a2_b3 ab_a2_2 (never executed)
+ -> Seq Scan on ab_a2_b3 ab_a2_3 (never executed)
Filter: (b = $0)
-> Nested Loop (actual rows=1 loops=1)
-> Seq Scan on ab_a1_b2 ab_a1_2 (actual rows=1 loops=1)
-> Materialize (actual rows=1 loops=1)
-> Append (actual rows=1 loops=1)
- -> Seq Scan on ab_a2_b1 ab_a2 (actual rows=1 loops=1)
+ -> Seq Scan on ab_a2_b1 ab_a2_1 (actual rows=1 loops=1)
Filter: (b = $0)
- -> Seq Scan on ab_a2_b2 ab_a2_1 (never executed)
+ -> Seq Scan on ab_a2_b2 ab_a2_2 (never executed)
Filter: (b = $0)
- -> Seq Scan on ab_a2_b3 ab_a2_2 (never executed)
+ -> Seq Scan on ab_a2_b3 ab_a2_3 (never executed)
Filter: (b = $0)
-> Nested Loop (actual rows=1 loops=1)
-> Seq Scan on ab_a1_b3 ab_a1_3 (actual rows=1 loops=1)
-> Materialize (actual rows=1 loops=1)
-> Append (actual rows=1 loops=1)
- -> Seq Scan on ab_a2_b1 ab_a2 (actual rows=1 loops=1)
+ -> Seq Scan on ab_a2_b1 ab_a2_1 (actual rows=1 loops=1)
Filter: (b = $0)
- -> Seq Scan on ab_a2_b2 ab_a2_1 (never executed)
+ -> Seq Scan on ab_a2_b2 ab_a2_2 (never executed)
Filter: (b = $0)
- -> Seq Scan on ab_a2_b3 ab_a2_2 (never executed)
+ -> Seq Scan on ab_a2_b3 ab_a2_3 (never executed)
Filter: (b = $0)
(36 rows)
@@ -2590,43 +2590,43 @@ set enable_hashjoin = off;
set enable_mergejoin = off;
explain (analyze, costs off, summary off, timing off)
select * from tbl1 join tprt on tbl1.col1 > tprt.col1;
- QUERY PLAN
----------------------------------------------------------------------------------
+ QUERY PLAN
+--------------------------------------------------------------------------
Nested Loop (actual rows=6 loops=1)
-> Seq Scan on tbl1 (actual rows=2 loops=1)
-> Append (actual rows=3 loops=2)
- -> Index Scan using tprt1_idx on tprt_1 tprt (actual rows=2 loops=2)
+ -> Index Scan using tprt1_idx on tprt_1 (actual rows=2 loops=2)
Index Cond: (col1 < tbl1.col1)
- -> Index Scan using tprt2_idx on tprt_2 tprt_1 (actual rows=2 loops=1)
+ -> Index Scan using tprt2_idx on tprt_2 (actual rows=2 loops=1)
Index Cond: (col1 < tbl1.col1)
- -> Index Scan using tprt3_idx on tprt_3 tprt_2 (never executed)
+ -> Index Scan using tprt3_idx on tprt_3 (never executed)
Index Cond: (col1 < tbl1.col1)
- -> Index Scan using tprt4_idx on tprt_4 tprt_3 (never executed)
+ -> Index Scan using tprt4_idx on tprt_4 (never executed)
Index Cond: (col1 < tbl1.col1)
- -> Index Scan using tprt5_idx on tprt_5 tprt_4 (never executed)
+ -> Index Scan using tprt5_idx on tprt_5 (never executed)
Index Cond: (col1 < tbl1.col1)
- -> Index Scan using tprt6_idx on tprt_6 tprt_5 (never executed)
+ -> Index Scan using tprt6_idx on tprt_6 (never executed)
Index Cond: (col1 < tbl1.col1)
(15 rows)
explain (analyze, costs off, summary off, timing off)
select * from tbl1 join tprt on tbl1.col1 = tprt.col1;
- QUERY PLAN
----------------------------------------------------------------------------------
+ QUERY PLAN
+--------------------------------------------------------------------------
Nested Loop (actual rows=2 loops=1)
-> Seq Scan on tbl1 (actual rows=2 loops=1)
-> Append (actual rows=1 loops=2)
- -> Index Scan using tprt1_idx on tprt_1 tprt (never executed)
+ -> Index Scan using tprt1_idx on tprt_1 (never executed)
Index Cond: (col1 = tbl1.col1)
- -> Index Scan using tprt2_idx on tprt_2 tprt_1 (actual rows=1 loops=2)
+ -> Index Scan using tprt2_idx on tprt_2 (actual rows=1 loops=2)
Index Cond: (col1 = tbl1.col1)
- -> Index Scan using tprt3_idx on tprt_3 tprt_2 (never executed)
+ -> Index Scan using tprt3_idx on tprt_3 (never executed)
Index Cond: (col1 = tbl1.col1)
- -> Index Scan using tprt4_idx on tprt_4 tprt_3 (never executed)
+ -> Index Scan using tprt4_idx on tprt_4 (never executed)
Index Cond: (col1 = tbl1.col1)
- -> Index Scan using tprt5_idx on tprt_5 tprt_4 (never executed)
+ -> Index Scan using tprt5_idx on tprt_5 (never executed)
Index Cond: (col1 = tbl1.col1)
- -> Index Scan using tprt6_idx on tprt_6 tprt_5 (never executed)
+ -> Index Scan using tprt6_idx on tprt_6 (never executed)
Index Cond: (col1 = tbl1.col1)
(15 rows)
@@ -2656,43 +2656,43 @@ order by tbl1.col1, tprt.col1;
insert into tbl1 values (1001), (1010), (1011);
explain (analyze, costs off, summary off, timing off)
select * from tbl1 inner join tprt on tbl1.col1 > tprt.col1;
- QUERY PLAN
----------------------------------------------------------------------------------
+ QUERY PLAN
+--------------------------------------------------------------------------
Nested Loop (actual rows=23 loops=1)
-> Seq Scan on tbl1 (actual rows=5 loops=1)
-> Append (actual rows=5 loops=5)
- -> Index Scan using tprt1_idx on tprt_1 tprt (actual rows=2 loops=5)
+ -> Index Scan using tprt1_idx on tprt_1 (actual rows=2 loops=5)
Index Cond: (col1 < tbl1.col1)
- -> Index Scan using tprt2_idx on tprt_2 tprt_1 (actual rows=3 loops=4)
+ -> Index Scan using tprt2_idx on tprt_2 (actual rows=3 loops=4)
Index Cond: (col1 < tbl1.col1)
- -> Index Scan using tprt3_idx on tprt_3 tprt_2 (actual rows=1 loops=2)
+ -> Index Scan using tprt3_idx on tprt_3 (actual rows=1 loops=2)
Index Cond: (col1 < tbl1.col1)
- -> Index Scan using tprt4_idx on tprt_4 tprt_3 (never executed)
+ -> Index Scan using tprt4_idx on tprt_4 (never executed)
Index Cond: (col1 < tbl1.col1)
- -> Index Scan using tprt5_idx on tprt_5 tprt_4 (never executed)
+ -> Index Scan using tprt5_idx on tprt_5 (never executed)
Index Cond: (col1 < tbl1.col1)
- -> Index Scan using tprt6_idx on tprt_6 tprt_5 (never executed)
+ -> Index Scan using tprt6_idx on tprt_6 (never executed)
Index Cond: (col1 < tbl1.col1)
(15 rows)
explain (analyze, costs off, summary off, timing off)
select * from tbl1 inner join tprt on tbl1.col1 = tprt.col1;
- QUERY PLAN
----------------------------------------------------------------------------------
+ QUERY PLAN
+--------------------------------------------------------------------------
Nested Loop (actual rows=3 loops=1)
-> Seq Scan on tbl1 (actual rows=5 loops=1)
-> Append (actual rows=1 loops=5)
- -> Index Scan using tprt1_idx on tprt_1 tprt (never executed)
+ -> Index Scan using tprt1_idx on tprt_1 (never executed)
Index Cond: (col1 = tbl1.col1)
- -> Index Scan using tprt2_idx on tprt_2 tprt_1 (actual rows=1 loops=2)
+ -> Index Scan using tprt2_idx on tprt_2 (actual rows=1 loops=2)
Index Cond: (col1 = tbl1.col1)
- -> Index Scan using tprt3_idx on tprt_3 tprt_2 (actual rows=0 loops=3)
+ -> Index Scan using tprt3_idx on tprt_3 (actual rows=0 loops=3)
Index Cond: (col1 = tbl1.col1)
- -> Index Scan using tprt4_idx on tprt_4 tprt_3 (never executed)
+ -> Index Scan using tprt4_idx on tprt_4 (never executed)
Index Cond: (col1 = tbl1.col1)
- -> Index Scan using tprt5_idx on tprt_5 tprt_4 (never executed)
+ -> Index Scan using tprt5_idx on tprt_5 (never executed)
Index Cond: (col1 = tbl1.col1)
- -> Index Scan using tprt6_idx on tprt_6 tprt_5 (never executed)
+ -> Index Scan using tprt6_idx on tprt_6 (never executed)
Index Cond: (col1 = tbl1.col1)
(15 rows)
@@ -2741,22 +2741,22 @@ delete from tbl1;
insert into tbl1 values (4400);
explain (analyze, costs off, summary off, timing off)
select * from tbl1 join tprt on tbl1.col1 < tprt.col1;
- QUERY PLAN
----------------------------------------------------------------------------------
+ QUERY PLAN
+--------------------------------------------------------------------------
Nested Loop (actual rows=1 loops=1)
-> Seq Scan on tbl1 (actual rows=1 loops=1)
-> Append (actual rows=1 loops=1)
- -> Index Scan using tprt1_idx on tprt_1 tprt (never executed)
+ -> Index Scan using tprt1_idx on tprt_1 (never executed)
Index Cond: (col1 > tbl1.col1)
- -> Index Scan using tprt2_idx on tprt_2 tprt_1 (never executed)
+ -> Index Scan using tprt2_idx on tprt_2 (never executed)
Index Cond: (col1 > tbl1.col1)
- -> Index Scan using tprt3_idx on tprt_3 tprt_2 (never executed)
+ -> Index Scan using tprt3_idx on tprt_3 (never executed)
Index Cond: (col1 > tbl1.col1)
- -> Index Scan using tprt4_idx on tprt_4 tprt_3 (never executed)
+ -> Index Scan using tprt4_idx on tprt_4 (never executed)
Index Cond: (col1 > tbl1.col1)
- -> Index Scan using tprt5_idx on tprt_5 tprt_4 (never executed)
+ -> Index Scan using tprt5_idx on tprt_5 (never executed)
Index Cond: (col1 > tbl1.col1)
- -> Index Scan using tprt6_idx on tprt_6 tprt_5 (actual rows=1 loops=1)
+ -> Index Scan using tprt6_idx on tprt_6 (actual rows=1 loops=1)
Index Cond: (col1 > tbl1.col1)
(15 rows)
@@ -2773,22 +2773,22 @@ delete from tbl1;
insert into tbl1 values (10000);
explain (analyze, costs off, summary off, timing off)
select * from tbl1 join tprt on tbl1.col1 = tprt.col1;
- QUERY PLAN
---------------------------------------------------------------------------
+ QUERY PLAN
+-------------------------------------------------------------------
Nested Loop (actual rows=0 loops=1)
-> Seq Scan on tbl1 (actual rows=1 loops=1)
-> Append (actual rows=0 loops=1)
- -> Index Scan using tprt1_idx on tprt_1 tprt (never executed)
+ -> Index Scan using tprt1_idx on tprt_1 (never executed)
Index Cond: (col1 = tbl1.col1)
- -> Index Scan using tprt2_idx on tprt_2 tprt_1 (never executed)
+ -> Index Scan using tprt2_idx on tprt_2 (never executed)
Index Cond: (col1 = tbl1.col1)
- -> Index Scan using tprt3_idx on tprt_3 tprt_2 (never executed)
+ -> Index Scan using tprt3_idx on tprt_3 (never executed)
Index Cond: (col1 = tbl1.col1)
- -> Index Scan using tprt4_idx on tprt_4 tprt_3 (never executed)
+ -> Index Scan using tprt4_idx on tprt_4 (never executed)
Index Cond: (col1 = tbl1.col1)
- -> Index Scan using tprt5_idx on tprt_5 tprt_4 (never executed)
+ -> Index Scan using tprt5_idx on tprt_5 (never executed)
Index Cond: (col1 = tbl1.col1)
- -> Index Scan using tprt6_idx on tprt_6 tprt_5 (never executed)
+ -> Index Scan using tprt6_idx on tprt_6 (never executed)
Index Cond: (col1 = tbl1.col1)
(15 rows)
@@ -2837,31 +2837,31 @@ select * from listp where b = 1;
-- which match the given parameter.
prepare q1 (int,int) as select * from listp where b in ($1,$2);
explain (analyze, costs off, summary off, timing off) execute q1 (1,1);
- QUERY PLAN
------------------------------------------------------------
+ QUERY PLAN
+-------------------------------------------------------------
Append (actual rows=0 loops=1)
Subplans Removed: 1
- -> Seq Scan on listp_1_1 listp (actual rows=0 loops=1)
+ -> Seq Scan on listp_1_1 listp_1 (actual rows=0 loops=1)
Filter: (b = ANY (ARRAY[$1, $2]))
(4 rows)
explain (analyze, costs off, summary off, timing off) execute q1 (2,2);
- QUERY PLAN
------------------------------------------------------------
+ QUERY PLAN
+-------------------------------------------------------------
Append (actual rows=0 loops=1)
Subplans Removed: 1
- -> Seq Scan on listp_2_1 listp (actual rows=0 loops=1)
+ -> Seq Scan on listp_2_1 listp_1 (actual rows=0 loops=1)
Filter: (b = ANY (ARRAY[$1, $2]))
(4 rows)
-- Try with no matching partitions. One subplan should remain in this case,
-- but it shouldn't be executed.
explain (analyze, costs off, summary off, timing off) execute q1 (0,0);
- QUERY PLAN
-----------------------------------------------------
+ QUERY PLAN
+------------------------------------------------------
Append (actual rows=0 loops=1)
Subplans Removed: 1
- -> Seq Scan on listp_1_1 listp (never executed)
+ -> Seq Scan on listp_1_1 listp_1 (never executed)
Filter: (b = ANY (ARRAY[$1, $2]))
(4 rows)
@@ -2874,7 +2874,7 @@ explain (analyze, costs off, summary off, timing off) execute q1 (1,2,2,0);
-------------------------------------------------------------------------
Append (actual rows=0 loops=1)
Subplans Removed: 1
- -> Seq Scan on listp_1_1 listp (actual rows=0 loops=1)
+ -> Seq Scan on listp_1_1 listp_1 (actual rows=0 loops=1)
Filter: ((b = ANY (ARRAY[$1, $2])) AND ($3 <> b) AND ($4 <> b))
(4 rows)
@@ -2885,7 +2885,7 @@ explain (analyze, costs off, summary off, timing off) execute q1 (1,2,2,1);
-------------------------------------------------------------------------
Append (actual rows=0 loops=1)
Subplans Removed: 1
- -> Seq Scan on listp_1_1 listp (never executed)
+ -> Seq Scan on listp_1_1 listp_1 (never executed)
Filter: ((b = ANY (ARRAY[$1, $2])) AND ($3 <> b) AND ($4 <> b))
(4 rows)
@@ -2897,9 +2897,9 @@ select * from listp where a = (select null::int);
Append (actual rows=0 loops=1)
InitPlan 1 (returns $0)
-> Result (actual rows=1 loops=1)
- -> Seq Scan on listp_1_1 listp (never executed)
+ -> Seq Scan on listp_1_1 listp_1 (never executed)
Filter: (a = $0)
- -> Seq Scan on listp_2_1 listp_1 (never executed)
+ -> Seq Scan on listp_2_1 listp_2 (never executed)
Filter: (a = $0)
(7 rows)
@@ -2921,20 +2921,20 @@ select * from stable_qual_pruning where a < localtimestamp;
--------------------------------------------------------------------------------------
Append (actual rows=0 loops=1)
Subplans Removed: 1
- -> Seq Scan on stable_qual_pruning1 stable_qual_pruning (actual rows=0 loops=1)
+ -> Seq Scan on stable_qual_pruning1 stable_qual_pruning_1 (actual rows=0 loops=1)
Filter: (a < LOCALTIMESTAMP)
- -> Seq Scan on stable_qual_pruning2 stable_qual_pruning_1 (actual rows=0 loops=1)
+ -> Seq Scan on stable_qual_pruning2 stable_qual_pruning_2 (actual rows=0 loops=1)
Filter: (a < LOCALTIMESTAMP)
(6 rows)
-- timestamp < timestamptz comparison is only stable, not immutable
explain (analyze, costs off, summary off, timing off)
select * from stable_qual_pruning where a < '2000-02-01'::timestamptz;
- QUERY PLAN
-------------------------------------------------------------------------------------
+ QUERY PLAN
+--------------------------------------------------------------------------------------
Append (actual rows=0 loops=1)
Subplans Removed: 2
- -> Seq Scan on stable_qual_pruning1 stable_qual_pruning (actual rows=0 loops=1)
+ -> Seq Scan on stable_qual_pruning1 stable_qual_pruning_1 (actual rows=0 loops=1)
Filter: (a < 'Tue Feb 01 00:00:00 2000 PST'::timestamp with time zone)
(4 rows)
@@ -2964,7 +2964,7 @@ select * from stable_qual_pruning
------------------------------------------------------------------------------------------------------------
Append (actual rows=0 loops=1)
Subplans Removed: 2
- -> Seq Scan on stable_qual_pruning2 stable_qual_pruning (actual rows=0 loops=1)
+ -> Seq Scan on stable_qual_pruning2 stable_qual_pruning_1 (actual rows=0 loops=1)
Filter: (a = ANY (ARRAY['Tue Feb 01 00:00:00 2000'::timestamp without time zone, LOCALTIMESTAMP]))
(4 rows)
@@ -2975,7 +2975,7 @@ select * from stable_qual_pruning
---------------------------------------------------------------------------------------------------------------------------
Append (actual rows=0 loops=1)
Subplans Removed: 2
- -> Seq Scan on stable_qual_pruning1 stable_qual_pruning (never executed)
+ -> Seq Scan on stable_qual_pruning1 stable_qual_pruning_1 (never executed)
Filter: (a = ANY ('{"Mon Feb 01 00:00:00 2010 PST","Wed Jan 01 00:00:00 2020 PST"}'::timestamp with time zone[]))
(4 rows)
@@ -2986,7 +2986,7 @@ select * from stable_qual_pruning
---------------------------------------------------------------------------------------------------------------------------
Append (actual rows=0 loops=1)
Subplans Removed: 2
- -> Seq Scan on stable_qual_pruning2 stable_qual_pruning (actual rows=0 loops=1)
+ -> Seq Scan on stable_qual_pruning2 stable_qual_pruning_1 (actual rows=0 loops=1)
Filter: (a = ANY ('{"Tue Feb 01 00:00:00 2000 PST","Fri Jan 01 00:00:00 2010 PST"}'::timestamp with time zone[]))
(4 rows)
@@ -2996,11 +2996,11 @@ select * from stable_qual_pruning
QUERY PLAN
--------------------------------------------------------------------------------------
Append (actual rows=0 loops=1)
- -> Seq Scan on stable_qual_pruning1 stable_qual_pruning (actual rows=0 loops=1)
+ -> Seq Scan on stable_qual_pruning1 stable_qual_pruning_1 (actual rows=0 loops=1)
Filter: (a = ANY (NULL::timestamp with time zone[]))
- -> Seq Scan on stable_qual_pruning2 stable_qual_pruning_1 (actual rows=0 loops=1)
+ -> Seq Scan on stable_qual_pruning2 stable_qual_pruning_2 (actual rows=0 loops=1)
Filter: (a = ANY (NULL::timestamp with time zone[]))
- -> Seq Scan on stable_qual_pruning3 stable_qual_pruning_2 (actual rows=0 loops=1)
+ -> Seq Scan on stable_qual_pruning3 stable_qual_pruning_3 (actual rows=0 loops=1)
Filter: (a = ANY (NULL::timestamp with time zone[]))
(7 rows)
@@ -3023,11 +3023,11 @@ select * from mc3p where a < 3 and abs(b) = 1;
QUERY PLAN
--------------------------------------------------------
Append (actual rows=3 loops=1)
- -> Seq Scan on mc3p0 mc3p (actual rows=1 loops=1)
+ -> Seq Scan on mc3p0 mc3p_1 (actual rows=1 loops=1)
Filter: ((a < 3) AND (abs(b) = 1))
- -> Seq Scan on mc3p1 mc3p_1 (actual rows=1 loops=1)
+ -> Seq Scan on mc3p1 mc3p_2 (actual rows=1 loops=1)
Filter: ((a < 3) AND (abs(b) = 1))
- -> Seq Scan on mc3p2 mc3p_2 (actual rows=1 loops=1)
+ -> Seq Scan on mc3p2 mc3p_3 (actual rows=1 loops=1)
Filter: ((a < 3) AND (abs(b) = 1))
(7 rows)
@@ -3040,13 +3040,13 @@ prepare ps1 as
select * from mc3p where a = $1 and abs(b) < (select 3);
explain (analyze, costs off, summary off, timing off)
execute ps1(1);
- QUERY PLAN
-------------------------------------------------------
+ QUERY PLAN
+--------------------------------------------------------
Append (actual rows=1 loops=1)
InitPlan 1 (returns $0)
-> Result (actual rows=1 loops=1)
Subplans Removed: 2
- -> Seq Scan on mc3p1 mc3p (actual rows=1 loops=1)
+ -> Seq Scan on mc3p1 mc3p_1 (actual rows=1 loops=1)
Filter: ((a = $1) AND (abs(b) < $0))
(6 rows)
@@ -3061,9 +3061,9 @@ execute ps2(1);
InitPlan 1 (returns $0)
-> Result (actual rows=1 loops=1)
Subplans Removed: 1
- -> Seq Scan on mc3p0 mc3p (actual rows=1 loops=1)
+ -> Seq Scan on mc3p0 mc3p_1 (actual rows=1 loops=1)
Filter: ((a <= $1) AND (abs(b) < $0))
- -> Seq Scan on mc3p1 mc3p_1 (actual rows=1 loops=1)
+ -> Seq Scan on mc3p1 mc3p_2 (actual rows=1 loops=1)
Filter: ((a <= $1) AND (abs(b) < $0))
(8 rows)
@@ -3084,24 +3084,24 @@ select * from boolp where a = (select value from boolvalues where value);
-> Seq Scan on boolvalues (actual rows=1 loops=1)
Filter: value
Rows Removed by Filter: 1
- -> Seq Scan on boolp_f boolp (never executed)
+ -> Seq Scan on boolp_f boolp_1 (never executed)
Filter: (a = $0)
- -> Seq Scan on boolp_t boolp_1 (actual rows=0 loops=1)
+ -> Seq Scan on boolp_t boolp_2 (actual rows=0 loops=1)
Filter: (a = $0)
(9 rows)
explain (analyze, costs off, summary off, timing off)
select * from boolp where a = (select value from boolvalues where not value);
- QUERY PLAN
----------------------------------------------------------
+ QUERY PLAN
+-----------------------------------------------------------
Append (actual rows=0 loops=1)
InitPlan 1 (returns $0)
-> Seq Scan on boolvalues (actual rows=1 loops=1)
Filter: (NOT value)
Rows Removed by Filter: 1
- -> Seq Scan on boolp_f boolp (actual rows=0 loops=1)
+ -> Seq Scan on boolp_f boolp_1 (actual rows=0 loops=1)
Filter: (a = $0)
- -> Seq Scan on boolp_t boolp_1 (never executed)
+ -> Seq Scan on boolp_t boolp_2 (never executed)
Filter: (a = $0)
(9 rows)
@@ -3125,10 +3125,10 @@ explain (analyze, costs off, summary off, timing off) execute mt_q1(15);
Merge Append (actual rows=2 loops=1)
Sort Key: ma_test.b
Subplans Removed: 1
- -> Index Scan using ma_test_p2_b_idx on ma_test_p2 ma_test (actual rows=1 loops=1)
+ -> Index Scan using ma_test_p2_b_idx on ma_test_p2 ma_test_1 (actual rows=1 loops=1)
Filter: ((a >= $1) AND ((a % 10) = 5))
Rows Removed by Filter: 9
- -> Index Scan using ma_test_p3_b_idx on ma_test_p3 ma_test_1 (actual rows=1 loops=1)
+ -> Index Scan using ma_test_p3_b_idx on ma_test_p3 ma_test_2 (actual rows=1 loops=1)
Filter: ((a >= $1) AND ((a % 10) = 5))
Rows Removed by Filter: 9
(9 rows)
@@ -3141,12 +3141,12 @@ execute mt_q1(15);
(2 rows)
explain (analyze, costs off, summary off, timing off) execute mt_q1(25);
- QUERY PLAN
----------------------------------------------------------------------------------------
+ QUERY PLAN
+-----------------------------------------------------------------------------------------
Merge Append (actual rows=1 loops=1)
Sort Key: ma_test.b
Subplans Removed: 2
- -> Index Scan using ma_test_p3_b_idx on ma_test_p3 ma_test (actual rows=1 loops=1)
+ -> Index Scan using ma_test_p3_b_idx on ma_test_p3 ma_test_1 (actual rows=1 loops=1)
Filter: ((a >= $1) AND ((a % 10) = 5))
Rows Removed by Filter: 9
(6 rows)
@@ -3159,12 +3159,12 @@ execute mt_q1(25);
-- Ensure MergeAppend behaves correctly when no subplans match
explain (analyze, costs off, summary off, timing off) execute mt_q1(35);
- QUERY PLAN
---------------------------------------------------------------------------------
+ QUERY PLAN
+----------------------------------------------------------------------------------
Merge Append (actual rows=0 loops=1)
Sort Key: ma_test.b
Subplans Removed: 2
- -> Index Scan using ma_test_p1_b_idx on ma_test_p1 ma_test (never executed)
+ -> Index Scan using ma_test_p1_b_idx on ma_test_p1 ma_test_1 (never executed)
Filter: ((a >= $1) AND ((a % 10) = 5))
(5 rows)
@@ -3186,11 +3186,11 @@ explain (analyze, costs off, summary off, timing off) select * from ma_test wher
-> Limit (actual rows=1 loops=1)
-> Index Scan using ma_test_p2_b_idx on ma_test_p2 (actual rows=1 loops=1)
Index Cond: (b IS NOT NULL)
- -> Index Scan using ma_test_p1_b_idx on ma_test_p1 ma_test (never executed)
+ -> Index Scan using ma_test_p1_b_idx on ma_test_p1 ma_test_1 (never executed)
Filter: (a >= $1)
- -> Index Scan using ma_test_p2_b_idx on ma_test_p2 ma_test_1 (actual rows=10 loops=1)
+ -> Index Scan using ma_test_p2_b_idx on ma_test_p2 ma_test_2 (actual rows=10 loops=1)
Filter: (a >= $1)
- -> Index Scan using ma_test_p3_b_idx on ma_test_p3 ma_test_2 (actual rows=10 loops=1)
+ -> Index Scan using ma_test_p3_b_idx on ma_test_p3 ma_test_3 (actual rows=10 loops=1)
Filter: (a >= $1)
(14 rows)
@@ -3224,9 +3224,9 @@ explain (costs off) select * from pp_arrpart where a in ('{4, 5}', '{1}');
QUERY PLAN
----------------------------------------------------------------------
Append
- -> Seq Scan on pp_arrpart1 pp_arrpart
+ -> Seq Scan on pp_arrpart1 pp_arrpart_1
Filter: ((a = '{4,5}'::integer[]) OR (a = '{1}'::integer[]))
- -> Seq Scan on pp_arrpart2 pp_arrpart_1
+ -> Seq Scan on pp_arrpart2 pp_arrpart_2
Filter: ((a = '{4,5}'::integer[]) OR (a = '{1}'::integer[]))
(5 rows)
@@ -3280,9 +3280,9 @@ explain (costs off) select * from pph_arrpart where a in ('{4, 5}', '{1}');
QUERY PLAN
----------------------------------------------------------------------
Append
- -> Seq Scan on pph_arrpart1 pph_arrpart
+ -> Seq Scan on pph_arrpart1 pph_arrpart_1
Filter: ((a = '{4,5}'::integer[]) OR (a = '{1}'::integer[]))
- -> Seq Scan on pph_arrpart2 pph_arrpart_1
+ -> Seq Scan on pph_arrpart2 pph_arrpart_2
Filter: ((a = '{4,5}'::integer[]) OR (a = '{1}'::integer[]))
(5 rows)
@@ -3385,9 +3385,9 @@ explain (costs off) select * from pp_lp where a = 1;
QUERY PLAN
----------------------------------
Append
- -> Seq Scan on pp_lp1 pp_lp
+ -> Seq Scan on pp_lp1 pp_lp_1
Filter: (a = 1)
- -> Seq Scan on pp_lp2 pp_lp_1
+ -> Seq Scan on pp_lp2 pp_lp_2
Filter: (a = 1)
(5 rows)
@@ -3420,9 +3420,9 @@ explain (costs off) select * from pp_lp where a = 1;
QUERY PLAN
----------------------------------
Append
- -> Seq Scan on pp_lp1 pp_lp
+ -> Seq Scan on pp_lp1 pp_lp_1
Filter: (a = 1)
- -> Seq Scan on pp_lp2 pp_lp_1
+ -> Seq Scan on pp_lp2 pp_lp_2
Filter: (a = 1)
(5 rows)
@@ -3465,9 +3465,9 @@ explain (costs off) select * from inh_lp where a = 1;
QUERY PLAN
------------------------------------
Append
- -> Seq Scan on inh_lp
+ -> Seq Scan on inh_lp inh_lp_1
Filter: (a = 1)
- -> Seq Scan on inh_lp1 inh_lp_1
+ -> Seq Scan on inh_lp1 inh_lp_2
Filter: (a = 1)
(5 rows)
@@ -3519,8 +3519,8 @@ explain (costs off) select * from pp_temp_parent where true;
QUERY PLAN
-----------------------------------------------------
Append
- -> Seq Scan on pp_temp_part_1 pp_temp_parent
- -> Seq Scan on pp_temp_part_def pp_temp_parent_1
+ -> Seq Scan on pp_temp_part_1 pp_temp_parent_1
+ -> Seq Scan on pp_temp_part_def pp_temp_parent_2
(3 rows)
explain (costs off) select * from pp_temp_parent where a = 2;
diff --git a/src/test/regress/expected/rowsecurity.out b/src/test/regress/expected/rowsecurity.out
index d2b846c8844..9506aaef82d 100644
--- a/src/test/regress/expected/rowsecurity.out
+++ b/src/test/regress/expected/rowsecurity.out
@@ -662,11 +662,11 @@ EXPLAIN (COSTS OFF) SELECT * FROM t1;
QUERY PLAN
-------------------------------
Append
- -> Seq Scan on t1
+ -> Seq Scan on t1 t1_1
Filter: ((a % 2) = 0)
- -> Seq Scan on t2 t1_1
+ -> Seq Scan on t2 t1_2
Filter: ((a % 2) = 0)
- -> Seq Scan on t3 t1_2
+ -> Seq Scan on t3 t1_3
Filter: ((a % 2) = 0)
(7 rows)
@@ -689,11 +689,11 @@ EXPLAIN (COSTS OFF) SELECT * FROM t1 WHERE f_leak(b);
QUERY PLAN
-----------------------------------------------
Append
- -> Seq Scan on t1
+ -> Seq Scan on t1 t1_1
Filter: (((a % 2) = 0) AND f_leak(b))
- -> Seq Scan on t2 t1_1
+ -> Seq Scan on t2 t1_2
Filter: (((a % 2) = 0) AND f_leak(b))
- -> Seq Scan on t3 t1_2
+ -> Seq Scan on t3 t1_3
Filter: (((a % 2) = 0) AND f_leak(b))
(7 rows)
@@ -712,11 +712,11 @@ EXPLAIN (COSTS OFF) SELECT *, t1 FROM t1;
QUERY PLAN
-------------------------------
Append
- -> Seq Scan on t1
+ -> Seq Scan on t1 t1_1
Filter: ((a % 2) = 0)
- -> Seq Scan on t2 t1_1
+ -> Seq Scan on t2 t1_2
Filter: ((a % 2) = 0)
- -> Seq Scan on t3 t1_2
+ -> Seq Scan on t3 t1_3
Filter: ((a % 2) = 0)
(7 rows)
@@ -735,11 +735,11 @@ EXPLAIN (COSTS OFF) SELECT *, t1 FROM t1;
QUERY PLAN
-------------------------------
Append
- -> Seq Scan on t1
+ -> Seq Scan on t1 t1_1
Filter: ((a % 2) = 0)
- -> Seq Scan on t2 t1_1
+ -> Seq Scan on t2 t1_2
Filter: ((a % 2) = 0)
- -> Seq Scan on t3 t1_2
+ -> Seq Scan on t3 t1_3
Filter: ((a % 2) = 0)
(7 rows)
@@ -759,11 +759,11 @@ EXPLAIN (COSTS OFF) SELECT * FROM t1 FOR SHARE;
-------------------------------------
LockRows
-> Append
- -> Seq Scan on t1
+ -> Seq Scan on t1 t1_1
Filter: ((a % 2) = 0)
- -> Seq Scan on t2 t1_1
+ -> Seq Scan on t2 t1_2
Filter: ((a % 2) = 0)
- -> Seq Scan on t3 t1_2
+ -> Seq Scan on t3 t1_3
Filter: ((a % 2) = 0)
(8 rows)
@@ -787,11 +787,11 @@ EXPLAIN (COSTS OFF) SELECT * FROM t1 WHERE f_leak(b) FOR SHARE;
-----------------------------------------------------
LockRows
-> Append
- -> Seq Scan on t1
+ -> Seq Scan on t1 t1_1
Filter: (((a % 2) = 0) AND f_leak(b))
- -> Seq Scan on t2 t1_1
+ -> Seq Scan on t2 t1_2
Filter: (((a % 2) = 0) AND f_leak(b))
- -> Seq Scan on t3 t1_2
+ -> Seq Scan on t3 t1_3
Filter: (((a % 2) = 0) AND f_leak(b))
(8 rows)
@@ -849,11 +849,11 @@ EXPLAIN (COSTS OFF) SELECT * FROM t1 WHERE f_leak(b);
QUERY PLAN
---------------------------
Append
- -> Seq Scan on t1
+ -> Seq Scan on t1 t1_1
Filter: f_leak(b)
- -> Seq Scan on t2 t1_1
+ -> Seq Scan on t2 t1_2
Filter: f_leak(b)
- -> Seq Scan on t3 t1_2
+ -> Seq Scan on t3 t1_3
Filter: f_leak(b)
(7 rows)
@@ -891,11 +891,11 @@ EXPLAIN (COSTS OFF) SELECT * FROM t1 WHERE f_leak(b);
QUERY PLAN
---------------------------
Append
- -> Seq Scan on t1
+ -> Seq Scan on t1 t1_1
Filter: f_leak(b)
- -> Seq Scan on t2 t1_1
+ -> Seq Scan on t2 t1_2
Filter: f_leak(b)
- -> Seq Scan on t3 t1_2
+ -> Seq Scan on t3 t1_3
Filter: f_leak(b)
(7 rows)
@@ -991,11 +991,11 @@ EXPLAIN (COSTS OFF) SELECT * FROM part_document WHERE f_leak(dtitle);
InitPlan 1 (returns $0)
-> Index Scan using uaccount_pkey on uaccount
Index Cond: (pguser = CURRENT_USER)
- -> Seq Scan on part_document_fiction part_document
+ -> Seq Scan on part_document_fiction part_document_1
Filter: ((dlevel <= $0) AND f_leak(dtitle))
- -> Seq Scan on part_document_satire part_document_1
+ -> Seq Scan on part_document_satire part_document_2
Filter: ((dlevel <= $0) AND f_leak(dtitle))
- -> Seq Scan on part_document_nonfiction part_document_2
+ -> Seq Scan on part_document_nonfiction part_document_3
Filter: ((dlevel <= $0) AND f_leak(dtitle))
(10 rows)
@@ -1033,11 +1033,11 @@ EXPLAIN (COSTS OFF) SELECT * FROM part_document WHERE f_leak(dtitle);
InitPlan 1 (returns $0)
-> Index Scan using uaccount_pkey on uaccount
Index Cond: (pguser = CURRENT_USER)
- -> Seq Scan on part_document_fiction part_document
+ -> Seq Scan on part_document_fiction part_document_1
Filter: ((dlevel <= $0) AND f_leak(dtitle))
- -> Seq Scan on part_document_satire part_document_1
+ -> Seq Scan on part_document_satire part_document_2
Filter: ((dlevel <= $0) AND f_leak(dtitle))
- -> Seq Scan on part_document_nonfiction part_document_2
+ -> Seq Scan on part_document_nonfiction part_document_3
Filter: ((dlevel <= $0) AND f_leak(dtitle))
(10 rows)
@@ -1180,11 +1180,11 @@ EXPLAIN (COSTS OFF) SELECT * FROM part_document WHERE f_leak(dtitle);
InitPlan 1 (returns $0)
-> Index Scan using uaccount_pkey on uaccount
Index Cond: (pguser = CURRENT_USER)
- -> Seq Scan on part_document_fiction part_document
+ -> Seq Scan on part_document_fiction part_document_1
Filter: ((dlevel <= $0) AND f_leak(dtitle))
- -> Seq Scan on part_document_satire part_document_1
+ -> Seq Scan on part_document_satire part_document_2
Filter: ((dlevel <= $0) AND f_leak(dtitle))
- -> Seq Scan on part_document_nonfiction part_document_2
+ -> Seq Scan on part_document_nonfiction part_document_3
Filter: ((dlevel <= $0) AND f_leak(dtitle))
(10 rows)
@@ -1229,11 +1229,11 @@ EXPLAIN (COSTS OFF) SELECT * FROM part_document WHERE f_leak(dtitle);
QUERY PLAN
---------------------------------------------------------------
Append
- -> Seq Scan on part_document_fiction part_document
+ -> Seq Scan on part_document_fiction part_document_1
Filter: ((dauthor = CURRENT_USER) AND f_leak(dtitle))
- -> Seq Scan on part_document_satire part_document_1
+ -> Seq Scan on part_document_satire part_document_2
Filter: ((dauthor = CURRENT_USER) AND f_leak(dtitle))
- -> Seq Scan on part_document_nonfiction part_document_2
+ -> Seq Scan on part_document_nonfiction part_document_3
Filter: ((dauthor = CURRENT_USER) AND f_leak(dtitle))
(7 rows)
@@ -1509,11 +1509,11 @@ EXPLAIN (COSTS OFF) EXECUTE p1(2);
QUERY PLAN
----------------------------------------------
Append
- -> Seq Scan on t1
+ -> Seq Scan on t1 t1_1
Filter: ((a <= 2) AND ((a % 2) = 0))
- -> Seq Scan on t2 t1_1
+ -> Seq Scan on t2 t1_2
Filter: ((a <= 2) AND ((a % 2) = 0))
- -> Seq Scan on t3 t1_2
+ -> Seq Scan on t3 t1_3
Filter: ((a <= 2) AND ((a % 2) = 0))
(7 rows)
@@ -1551,11 +1551,11 @@ EXPLAIN (COSTS OFF) SELECT * FROM t1 WHERE f_leak(b);
QUERY PLAN
---------------------------
Append
- -> Seq Scan on t1
+ -> Seq Scan on t1 t1_1
Filter: f_leak(b)
- -> Seq Scan on t2 t1_1
+ -> Seq Scan on t2 t1_2
Filter: f_leak(b)
- -> Seq Scan on t3 t1_2
+ -> Seq Scan on t3 t1_3
Filter: f_leak(b)
(7 rows)
@@ -1575,11 +1575,11 @@ EXPLAIN (COSTS OFF) EXECUTE p1(2);
QUERY PLAN
---------------------------
Append
- -> Seq Scan on t1
+ -> Seq Scan on t1 t1_1
Filter: (a <= 2)
- -> Seq Scan on t2 t1_1
+ -> Seq Scan on t2 t1_2
Filter: (a <= 2)
- -> Seq Scan on t3 t1_2
+ -> Seq Scan on t3 t1_3
Filter: (a <= 2)
(7 rows)
@@ -1596,11 +1596,11 @@ EXPLAIN (COSTS OFF) EXECUTE p2(2);
QUERY PLAN
---------------------------
Append
- -> Seq Scan on t1
+ -> Seq Scan on t1 t1_1
Filter: (a = 2)
- -> Seq Scan on t2 t1_1
+ -> Seq Scan on t2 t1_2
Filter: (a = 2)
- -> Seq Scan on t3 t1_2
+ -> Seq Scan on t3 t1_3
Filter: (a = 2)
(7 rows)
@@ -1619,11 +1619,11 @@ EXPLAIN (COSTS OFF) EXECUTE p2(2);
QUERY PLAN
---------------------------------------------
Append
- -> Seq Scan on t1
+ -> Seq Scan on t1 t1_1
Filter: ((a = 2) AND ((a % 2) = 0))
- -> Seq Scan on t2 t1_1
+ -> Seq Scan on t2 t1_2
Filter: ((a = 2) AND ((a % 2) = 0))
- -> Seq Scan on t3 t1_2
+ -> Seq Scan on t3 t1_3
Filter: ((a = 2) AND ((a % 2) = 0))
(7 rows)
@@ -1756,11 +1756,11 @@ WHERE t1.a = 3 and t2.a = 3 AND f_leak(t1.b) AND f_leak(t2.b);
-> Seq Scan on t2
Filter: ((a = 3) AND ((a % 2) = 1) AND f_leak(b))
-> Append
- -> Seq Scan on t1
+ -> Seq Scan on t1 t1_1
Filter: ((a = 3) AND ((a % 2) = 0) AND f_leak(b))
- -> Seq Scan on t2 t1_1
+ -> Seq Scan on t2 t1_2
Filter: ((a = 3) AND ((a % 2) = 0) AND f_leak(b))
- -> Seq Scan on t3 t1_2
+ -> Seq Scan on t3 t1_3
Filter: ((a = 3) AND ((a % 2) = 0) AND f_leak(b))
(11 rows)
@@ -1806,33 +1806,33 @@ AND f_leak(t1_1.b) AND f_leak(t1_2.b) RETURNING *, t1_1, t1_2;
-> Seq Scan on t1 t1_1
Filter: ((a = 4) AND ((a % 2) = 0) AND f_leak(b))
-> Append
- -> Seq Scan on t1 t1_2
+ -> Seq Scan on t1 t1_2_1
Filter: ((a = 4) AND ((a % 2) = 0) AND f_leak(b))
- -> Seq Scan on t2 t1_2_1
+ -> Seq Scan on t2 t1_2_2
Filter: ((a = 4) AND ((a % 2) = 0) AND f_leak(b))
- -> Seq Scan on t3 t1_2_2
+ -> Seq Scan on t3 t1_2_3
Filter: ((a = 4) AND ((a % 2) = 0) AND f_leak(b))
-> Nested Loop
Join Filter: (t1_1_1.b = t1_2.b)
-> Seq Scan on t2 t1_1_1
Filter: ((a = 4) AND ((a % 2) = 0) AND f_leak(b))
-> Append
- -> Seq Scan on t1 t1_2
+ -> Seq Scan on t1 t1_2_1
Filter: ((a = 4) AND ((a % 2) = 0) AND f_leak(b))
- -> Seq Scan on t2 t1_2_1
+ -> Seq Scan on t2 t1_2_2
Filter: ((a = 4) AND ((a % 2) = 0) AND f_leak(b))
- -> Seq Scan on t3 t1_2_2
+ -> Seq Scan on t3 t1_2_3
Filter: ((a = 4) AND ((a % 2) = 0) AND f_leak(b))
-> Nested Loop
Join Filter: (t1_1_2.b = t1_2.b)
-> Seq Scan on t3 t1_1_2
Filter: ((a = 4) AND ((a % 2) = 0) AND f_leak(b))
-> Append
- -> Seq Scan on t1 t1_2
+ -> Seq Scan on t1 t1_2_1
Filter: ((a = 4) AND ((a % 2) = 0) AND f_leak(b))
- -> Seq Scan on t2 t1_2_1
+ -> Seq Scan on t2 t1_2_2
Filter: ((a = 4) AND ((a % 2) = 0) AND f_leak(b))
- -> Seq Scan on t3 t1_2_2
+ -> Seq Scan on t3 t1_2_3
Filter: ((a = 4) AND ((a % 2) = 0) AND f_leak(b))
(37 rows)
diff --git a/src/test/regress/expected/select_parallel.out b/src/test/regress/expected/select_parallel.out
index 4d08abc0b8d..96dfb7c8dd6 100644
--- a/src/test/regress/expected/select_parallel.out
+++ b/src/test/regress/expected/select_parallel.out
@@ -21,12 +21,12 @@ explain (costs off)
Workers Planned: 3
-> Partial Aggregate
-> Parallel Append
- -> Parallel Seq Scan on d_star a_star_3
- -> Parallel Seq Scan on f_star a_star_5
- -> Parallel Seq Scan on e_star a_star_4
- -> Parallel Seq Scan on b_star a_star_1
- -> Parallel Seq Scan on c_star a_star_2
- -> Parallel Seq Scan on a_star
+ -> Parallel Seq Scan on d_star a_star_4
+ -> Parallel Seq Scan on f_star a_star_6
+ -> Parallel Seq Scan on e_star a_star_5
+ -> Parallel Seq Scan on b_star a_star_2
+ -> Parallel Seq Scan on c_star a_star_3
+ -> Parallel Seq Scan on a_star a_star_1
(11 rows)
select round(avg(aa)), sum(aa) from a_star a1;
@@ -47,12 +47,12 @@ explain (costs off)
Workers Planned: 3
-> Partial Aggregate
-> Parallel Append
- -> Seq Scan on d_star a_star_3
- -> Seq Scan on c_star a_star_2
- -> Parallel Seq Scan on f_star a_star_5
- -> Parallel Seq Scan on e_star a_star_4
- -> Parallel Seq Scan on b_star a_star_1
- -> Parallel Seq Scan on a_star
+ -> Seq Scan on d_star a_star_4
+ -> Seq Scan on c_star a_star_3
+ -> Parallel Seq Scan on f_star a_star_6
+ -> Parallel Seq Scan on e_star a_star_5
+ -> Parallel Seq Scan on b_star a_star_2
+ -> Parallel Seq Scan on a_star a_star_1
(11 rows)
select round(avg(aa)), sum(aa) from a_star a2;
@@ -75,12 +75,12 @@ explain (costs off)
Workers Planned: 3
-> Partial Aggregate
-> Parallel Append
- -> Seq Scan on d_star a_star_3
- -> Seq Scan on f_star a_star_5
- -> Seq Scan on e_star a_star_4
- -> Seq Scan on b_star a_star_1
- -> Seq Scan on c_star a_star_2
- -> Seq Scan on a_star
+ -> Seq Scan on d_star a_star_4
+ -> Seq Scan on f_star a_star_6
+ -> Seq Scan on e_star a_star_5
+ -> Seq Scan on b_star a_star_2
+ -> Seq Scan on c_star a_star_3
+ -> Seq Scan on a_star a_star_1
(11 rows)
select round(avg(aa)), sum(aa) from a_star a3;
@@ -106,12 +106,12 @@ explain (costs off)
Workers Planned: 1
-> Partial Aggregate
-> Append
- -> Parallel Seq Scan on a_star
- -> Parallel Seq Scan on b_star a_star_1
- -> Parallel Seq Scan on c_star a_star_2
- -> Parallel Seq Scan on d_star a_star_3
- -> Parallel Seq Scan on e_star a_star_4
- -> Parallel Seq Scan on f_star a_star_5
+ -> Parallel Seq Scan on a_star a_star_1
+ -> Parallel Seq Scan on b_star a_star_2
+ -> Parallel Seq Scan on c_star a_star_3
+ -> Parallel Seq Scan on d_star a_star_4
+ -> Parallel Seq Scan on e_star a_star_5
+ -> Parallel Seq Scan on f_star a_star_6
(11 rows)
select round(avg(aa)), sum(aa) from a_star a4;
@@ -145,15 +145,15 @@ explain (costs off)
-> Gather
Workers Planned: 3
-> Parallel Append
- -> Parallel Seq Scan on part_pa_test_p1 pa2
- -> Parallel Seq Scan on part_pa_test_p2 pa2_1
+ -> Parallel Seq Scan on part_pa_test_p1 pa2_1
+ -> Parallel Seq Scan on part_pa_test_p2 pa2_2
SubPlan 2
-> Result
SubPlan 1
-> Append
- -> Seq Scan on part_pa_test_p1 pa1
+ -> Seq Scan on part_pa_test_p1 pa1_1
Filter: (a = pa2.a)
- -> Seq Scan on part_pa_test_p2 pa1_1
+ -> Seq Scan on part_pa_test_p2 pa1_2
Filter: (a = pa2.a)
(14 rows)
diff --git a/src/test/regress/expected/tablesample.out b/src/test/regress/expected/tablesample.out
index a324220820a..078358d2265 100644
--- a/src/test/regress/expected/tablesample.out
+++ b/src/test/regress/expected/tablesample.out
@@ -198,13 +198,13 @@ explain (costs off)
-------------------------------------------------
Aggregate
-> Append
- -> Sample Scan on person
+ -> Sample Scan on person person_1
Sampling: bernoulli ('100'::real)
- -> Sample Scan on emp person_1
+ -> Sample Scan on emp person_2
Sampling: bernoulli ('100'::real)
- -> Sample Scan on student person_2
+ -> Sample Scan on student person_3
Sampling: bernoulli ('100'::real)
- -> Sample Scan on stud_emp person_3
+ -> Sample Scan on stud_emp person_4
Sampling: bernoulli ('100'::real)
(10 rows)
@@ -319,12 +319,12 @@ create table parted_sample_1 partition of parted_sample for values in (1);
create table parted_sample_2 partition of parted_sample for values in (2);
explain (costs off)
select * from parted_sample tablesample bernoulli (100);
- QUERY PLAN
-------------------------------------------------------
+ QUERY PLAN
+-------------------------------------------
Append
- -> Sample Scan on parted_sample_1 parted_sample
+ -> Sample Scan on parted_sample_1
Sampling: bernoulli ('100'::real)
- -> Sample Scan on parted_sample_2 parted_sample_1
+ -> Sample Scan on parted_sample_2
Sampling: bernoulli ('100'::real)
(5 rows)
diff --git a/src/test/regress/expected/updatable_views.out b/src/test/regress/expected/updatable_views.out
index 9e1dae60dec..d54a0a1c2e5 100644
--- a/src/test/regress/expected/updatable_views.out
+++ b/src/test/regress/expected/updatable_views.out
@@ -1548,16 +1548,16 @@ INSERT INTO other_tbl_parent VALUES (7),(200);
INSERT INTO other_tbl_child VALUES (8),(100);
EXPLAIN (costs off)
UPDATE rw_view1 SET a = a + 1000 FROM other_tbl_parent WHERE a = id;
- QUERY PLAN
-------------------------------------------------------------------------
+ QUERY PLAN
+-------------------------------------------------------------------------
Update on base_tbl_parent
Update on base_tbl_parent
Update on base_tbl_child base_tbl_parent_1
-> Hash Join
Hash Cond: (other_tbl_parent.id = base_tbl_parent.a)
-> Append
- -> Seq Scan on other_tbl_parent
- -> Seq Scan on other_tbl_child other_tbl_parent_1
+ -> Seq Scan on other_tbl_parent other_tbl_parent_1
+ -> Seq Scan on other_tbl_child other_tbl_parent_2
-> Hash
-> Seq Scan on base_tbl_parent
-> Merge Join
@@ -1568,8 +1568,8 @@ UPDATE rw_view1 SET a = a + 1000 FROM other_tbl_parent WHERE a = id;
-> Sort
Sort Key: other_tbl_parent.id
-> Append
- -> Seq Scan on other_tbl_parent
- -> Seq Scan on other_tbl_child other_tbl_parent_1
+ -> Seq Scan on other_tbl_parent other_tbl_parent_1
+ -> Seq Scan on other_tbl_child other_tbl_parent_2
(20 rows)
UPDATE rw_view1 SET a = a + 1000 FROM other_tbl_parent WHERE a = id;
@@ -2293,16 +2293,16 @@ UPDATE v1 SET a=100 WHERE snoop(a) AND leakproof(a) AND a < 7 AND a != 6;
Filter: ((t1.a <> 6) AND (alternatives: SubPlan 1 or hashed SubPlan 2) AND snoop(t1.a) AND leakproof(t1.a))
SubPlan 1
-> Append
- -> Seq Scan on public.t12
- Filter: (t12.a = t1.a)
- -> Seq Scan on public.t111 t12_1
+ -> Seq Scan on public.t12 t12_1
Filter: (t12_1.a = t1.a)
+ -> Seq Scan on public.t111 t12_2
+ Filter: (t12_2.a = t1.a)
SubPlan 2
-> Append
- -> Seq Scan on public.t12 t12_2
- Output: t12_2.a
- -> Seq Scan on public.t111 t12_3
- Output: t12_3.a
+ -> Seq Scan on public.t12 t12_4
+ Output: t12_4.a
+ -> Seq Scan on public.t111 t12_5
+ Output: t12_5.a
-> Index Scan using t11_a_idx on public.t11 t1_1
Output: 100, t1_1.b, t1_1.c, t1_1.d, t1_1.ctid
Index Cond: ((t1_1.a > 5) AND (t1_1.a < 7))
@@ -2343,16 +2343,16 @@ UPDATE v1 SET a=a+1 WHERE snoop(a) AND leakproof(a) AND a = 8;
Filter: ((alternatives: SubPlan 1 or hashed SubPlan 2) AND snoop(t1.a) AND leakproof(t1.a))
SubPlan 1
-> Append
- -> Seq Scan on public.t12
- Filter: (t12.a = t1.a)
- -> Seq Scan on public.t111 t12_1
+ -> Seq Scan on public.t12 t12_1
Filter: (t12_1.a = t1.a)
+ -> Seq Scan on public.t111 t12_2
+ Filter: (t12_2.a = t1.a)
SubPlan 2
-> Append
- -> Seq Scan on public.t12 t12_2
- Output: t12_2.a
- -> Seq Scan on public.t111 t12_3
- Output: t12_3.a
+ -> Seq Scan on public.t12 t12_4
+ Output: t12_4.a
+ -> Seq Scan on public.t111 t12_5
+ Output: t12_5.a
-> Index Scan using t11_a_idx on public.t11 t1_1
Output: (t1_1.a + 1), t1_1.b, t1_1.c, t1_1.d, t1_1.ctid
Index Cond: ((t1_1.a > 5) AND (t1_1.a = 8))