I wrote:
> However, it seems to be inapplicable for inequality operators. The plan
> was improved after I added the deduce-able 'U.i = 100' in theory.

Sorry, there was a miss. The correct is 'U.i < 100'.

> 
> EXPLAIN SELECT * FROM T, U WHERE T.i = U.i AND T.i < 100;
>                                  QUERY PLAN                                  
> -----------------------------------------------------------------------------
>  Merge Join  (cost=0.00..340.38 rows=100 width=8)
>    Merge Cond: (t.i = u.i)
>    ->  Index Scan using t_pkey on t  (cost=0.00..10.00 rows=100 width=4)
>          Index Cond: (i < 100)
>    ->  Index Scan using u_pkey on u  (cost=0.00..3048.26 rows=100000 width=4)
> 
> EXPLAIN SELECT * FROM T, U WHERE T.i = U.i AND T.i < 100 AND U.i < 100;
>                                QUERY PLAN                                
> -------------------------------------------------------------------------
>  Merge Join  (cost=0.00..11.32 rows=1 width=8)
>    Merge Cond: (t.i = u.i)
>    ->  Index Scan using t_pkey on t  (cost=0.00..10.00 rows=100 width=4)
>          Index Cond: (i < 100)
>    ->  Index Scan using u_pkey on u  (cost=0.00..9.94 rows=96 width=4)
>          Index Cond: (i < 100)


Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center



---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to [EMAIL PROTECTED] so that your
       message can get through to the mailing list cleanly

Reply via email to