diff options
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/regress/expected/subselect.out | 27 | ||||
-rw-r--r-- | src/test/regress/sql/subselect.sql | 26 |
2 files changed, 53 insertions, 0 deletions
diff --git a/src/test/regress/expected/subselect.out b/src/test/regress/expected/subselect.out index 4bd0b4afbb5..f6dbc0212cd 100644 --- a/src/test/regress/expected/subselect.out +++ b/src/test/regress/expected/subselect.out @@ -438,3 +438,30 @@ select * from numeric_table 3 (4 rows) +-- +-- Test case for bug #4290: bogus calculation of subplan param sets +-- +create temp table ta (id int primary key, val int); +NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "ta_pkey" for table "ta" +insert into ta values(1,1); +insert into ta values(2,2); +create temp table tb (id int primary key, aval int); +NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "tb_pkey" for table "tb" +insert into tb values(1,1); +insert into tb values(2,1); +insert into tb values(3,2); +insert into tb values(4,2); +create temp table tc (id int primary key, aid int); +NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "tc_pkey" for table "tc" +insert into tc values(1,1); +insert into tc values(2,2); +select + ( select min(tb.id) from tb + where tb.aval = (select ta.val from ta where ta.id = tc.aid) ) as min_tb_id +from tc; + min_tb_id +----------- + 1 + 3 +(2 rows) + diff --git a/src/test/regress/sql/subselect.sql b/src/test/regress/sql/subselect.sql index d99bf321bdd..3a3f11793dc 100644 --- a/src/test/regress/sql/subselect.sql +++ b/src/test/regress/sql/subselect.sql @@ -272,3 +272,29 @@ select * from float_table select * from numeric_table where num_col in (select float_col from float_table); + +-- +-- Test case for bug #4290: bogus calculation of subplan param sets +-- + +create temp table ta (id int primary key, val int); + +insert into ta values(1,1); +insert into ta values(2,2); + +create temp table tb (id int primary key, aval int); + +insert into tb values(1,1); +insert into tb values(2,1); +insert into tb values(3,2); +insert into tb values(4,2); + +create temp table tc (id int primary key, aid int); + +insert into tc values(1,1); +insert into tc values(2,2); + +select + ( select min(tb.id) from tb + where tb.aval = (select ta.val from ta where ta.id = tc.aid) ) as min_tb_id +from tc; |