Lists: | pgsql-hackers |
---|
From: | Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | full join qualifications on 8.3.1 vs. 8.3.6 |
Date: | 2009-07-21 16:27:16 |
Message-ID: | 87d47ungrf.fsf@news-spur.riddles.org.uk |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
Given:
select * from test1 full join test2 using (a,b) where b=1;
8.3.1 and CVS HEAD produce a plan in which the b=1 condition is pushed
down into each side of the join, but 8.3.6 and 8.3.7 do not.
Is this intentional? I wasn't able to identify anything applicable in
the release notes.
testcase used:
create table test1 (a integer, b integer, c text);
create table test2 (a integer, b integer, c text);
insert into test1 select i,i,i::text from generate_series(1,10000) i;
insert into test2 select i,i,i::text from generate_series(1,10000) i;
create index test1_idx on test1 (b);
create index test2_idx on test2 (b);
explain select * from test1 full join test2 using (a,b) where b = 1;
--
Andrew (irc:RhodiumToad)
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: full join qualifications on 8.3.1 vs. 8.3.6 |
Date: | 2009-07-21 16:58:11 |
Message-ID: | 15213.1248195491@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk> writes:
> select * from test1 full join test2 using (a,b) where b=1;
> 8.3.1 and CVS HEAD produce a plan in which the b=1 condition is pushed
> down into each side of the join, but 8.3.6 and 8.3.7 do not.
It does what you're expecting in 8.3 branch tip.
http://archives.postgresql.org/pgsql-committers/2009-04/msg00204.php
We're really overdue for a set of back-branch update releases :-(
regards, tom lane