summaryrefslogtreecommitdiff
path: root/src/test/regress/expected
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/regress/expected')
-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))