summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/regress/expected/join.out28
-rw-r--r--src/test/regress/sql/join.sql13
2 files changed, 41 insertions, 0 deletions
diff --git a/src/test/regress/expected/join.out b/src/test/regress/expected/join.out
index b901d7299fa..93583710725 100644
--- a/src/test/regress/expected/join.out
+++ b/src/test/regress/expected/join.out
@@ -4651,6 +4651,34 @@ select a.q2, b.q1
reset enable_hashjoin;
reset enable_nestloop;
--
+-- test join strength reduction with a SubPlan providing the proof
+--
+explain (costs off)
+select a.unique1, b.unique2
+ from onek a left join onek b on a.unique1 = b.unique2
+ where b.unique2 = any (select q1 from int8_tbl c where c.q1 < b.unique1);
+ QUERY PLAN
+----------------------------------------------------------
+ Hash Join
+ Hash Cond: (b.unique2 = a.unique1)
+ -> Seq Scan on onek b
+ Filter: (SubPlan 1)
+ SubPlan 1
+ -> Seq Scan on int8_tbl c
+ Filter: (q1 < b.unique1)
+ -> Hash
+ -> Index Only Scan using onek_unique1 on onek a
+(9 rows)
+
+select a.unique1, b.unique2
+ from onek a left join onek b on a.unique1 = b.unique2
+ where b.unique2 = any (select q1 from int8_tbl c where c.q1 < b.unique1);
+ unique1 | unique2
+---------+---------
+ 123 | 123
+(1 row)
+
+--
-- test join removal
--
begin;
diff --git a/src/test/regress/sql/join.sql b/src/test/regress/sql/join.sql
index ccbbe5454c5..a81c7dce7d5 100644
--- a/src/test/regress/sql/join.sql
+++ b/src/test/regress/sql/join.sql
@@ -1604,6 +1604,19 @@ reset enable_hashjoin;
reset enable_nestloop;
--
+-- test join strength reduction with a SubPlan providing the proof
+--
+
+explain (costs off)
+select a.unique1, b.unique2
+ from onek a left join onek b on a.unique1 = b.unique2
+ where b.unique2 = any (select q1 from int8_tbl c where c.q1 < b.unique1);
+
+select a.unique1, b.unique2
+ from onek a left join onek b on a.unique1 = b.unique2
+ where b.unique2 = any (select q1 from int8_tbl c where c.q1 < b.unique1);
+
+--
-- test join removal
--