diff --git a/src/test/regress/expected/join.out b/src/test/regress/expected/join.out index fcc82a19269..593aec2f7d0 100644 --- a/src/test/regress/expected/join.out +++ b/src/test/regress/expected/join.out @@ -5932,22 +5932,26 @@ left join j2 on j1.id1 = j2.id1 where j1.id2 = 1; set enable_nestloop to 0; set enable_hashjoin to 0; set enable_sort to 0; --- create an index that will be preferred over the PK to perform the join +-- create indexes that will be preferred over the PKs to perform the join create index j1_id1_idx on j1 (id1) where id1 % 1000 = 1; -explain (costs off) select * from j1 j1 -inner join j1 j2 on j1.id1 = j2.id1 and j1.id2 = j2.id2 +create index j2_id1_idx on j2 (id1) where id1 % 1000 = 1; +-- need an additional row in j2, if we want j2_id1_idx to be preferred +insert into j2 values(1,2); +analyze j2; +explain (costs off) select * from j1 +inner join j2 on j1.id1 = j2.id1 and j1.id2 = j2.id2 where j1.id1 % 1000 = 1 and j2.id1 % 1000 = 1; - QUERY PLAN --------------------------------------------- + QUERY PLAN +----------------------------------------- Merge Join Merge Cond: (j1.id1 = j2.id1) Join Filter: (j1.id2 = j2.id2) -> Index Scan using j1_id1_idx on j1 - -> Index Scan using j1_id1_idx on j1 j2 + -> Index Scan using j2_id1_idx on j2 (5 rows) -select * from j1 j1 -inner join j1 j2 on j1.id1 = j2.id1 and j1.id2 = j2.id2 +select * from j1 +inner join j2 on j1.id1 = j2.id1 and j1.id2 = j2.id2 where j1.id1 % 1000 = 1 and j2.id1 % 1000 = 1; id1 | id2 | id1 | id2 -----+-----+-----+----- diff --git a/src/test/regress/sql/join.sql b/src/test/regress/sql/join.sql index 11dc4c7a544..34d21d029f0 100644 --- a/src/test/regress/sql/join.sql +++ b/src/test/regress/sql/join.sql @@ -2014,15 +2014,20 @@ set enable_nestloop to 0; set enable_hashjoin to 0; set enable_sort to 0; --- create an index that will be preferred over the PK to perform the join +-- create indexes that will be preferred over the PKs to perform the join create index j1_id1_idx on j1 (id1) where id1 % 1000 = 1; +create index j2_id1_idx on j2 (id1) where id1 % 1000 = 1; -explain (costs off) select * from j1 j1 -inner join j1 j2 on j1.id1 = j2.id1 and j1.id2 = j2.id2 +-- need an additional row in j2, if we want j2_id1_idx to be preferred +insert into j2 values(1,2); +analyze j2; + +explain (costs off) select * from j1 +inner join j2 on j1.id1 = j2.id1 and j1.id2 = j2.id2 where j1.id1 % 1000 = 1 and j2.id1 % 1000 = 1; -select * from j1 j1 -inner join j1 j2 on j1.id1 = j2.id1 and j1.id2 = j2.id2 +select * from j1 +inner join j2 on j1.id1 = j2.id1 and j1.id2 = j2.id2 where j1.id1 % 1000 = 1 and j2.id1 % 1000 = 1; reset enable_nestloop;