Hi!

I'm not understand why postgres prefers to sort table instead of using index only scan when query is a simple inner join on composite type. Query with equality clause with constant works fine with index scan but join not. Could somebody point me why? Thank you.

And I'm not able to force merge_join with index scans with any combination of enable_* variables.

Attached script is a self-contained test script. Pg config file is default.

explain
select
    a.idv, b.idv
from
    a, b
where
    a.idv = b.idv;


 Merge Join  (cost=25751.64..27751.64 rows=100000 width=74)
   Merge Cond: (a.idv = b.idv)
   ->  Sort  (cost=12875.82..13125.82 rows=100000 width=37)
         Sort Key: a.idv
         ->  Seq Scan on a  (cost=0.00..1834.00 rows=100000 width=37)
   ->  Sort  (cost=12875.82..13125.82 rows=100000 width=37)
         Sort Key: b.idv
         ->  Seq Scan on b  (cost=0.00..1834.00 rows=100000 width=37)

--
Teodor Sigaev                      E-mail: teo...@sigaev.ru
                                      WWW: http://www.sigaev.ru/

Attachment: test.sql
Description: application/sql

Reply via email to