From: | Tomasz Myrta <jasiek(at)klaster(dot)net> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: To use a VIEW or not to use a View..... |
Date: | 2003-01-22 21:54:19 |
Message-ID: | 3E2F130B.4030002@klaster.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Stephan Szabo wrote:
>That's not the same join for optimization purposes
>since postgresql treats explicit join syntax as a
>constraint on the ordering of joins.
>
>The same join would be something like:
>
>przystanki p1 join miasta m1 using (id_miasta)
>join (przystanki p2 join miasta m2 using (id_miasta))
> using (id_przystanku)
>
>minus the fact I think you'd need some explicit naming in
>there.
You are right.
The result of your query is:
explain select * from
przystanki p1 join miasta m1 using (id_miasta)
join (przystanki p2 join miasta m2 using (id_miasta))
using (id_przystanku)
where id_przystanku=1230
Hash Join (cost=13.00..30.10 rows=1 width=128)
-> Hash Join (cost=6.74..21.02 rows=374 width=64)
-> Seq Scan on przystanki p2 (cost=0.00..7.74 rows=374 width=41)
-> Hash (cost=5.99..5.99 rows=299 width=23)
-> Seq Scan on miasta m2 (cost=0.00..5.99 rows=299 width=23)
-> Hash (cost=6.26..6.26 rows=1 width=64)
-> Nested Loop (cost=0.00..6.26 rows=1 width=64)
-> Index Scan using przystanki_pkey on przystanki p1 (cost=0.00..3.14 rows=1 width=41)
-> Index Scan using miasta_pkey on miasta m1 (cost=0.00..3.10 rows=1 width=23)
Anyway - is it possible to expose table "przystanki alias p2" to get valid result?
The problem is similiar to my problem "sub-select with aggregate" dated on 2002-10-23
and the answer (which doesn't satisfy me) is the same:
if we pass static values to "przystanki p2 join miasta m2", the query will work ok:
explain select * from
przystanki p1 join miasta m1 using (id_miasta)
cross join (przystanki p2 join miasta m2 using (id_miasta)) X
where p1.id_przystanku=1230 and X.id_przystanku=1230
Nested Loop (cost=0.00..12.52 rows=1 width=128)
-> Nested Loop (cost=0.00..6.26 rows=1 width=64)
-> Index Scan using przystanki_pkey on przystanki p1 (cost=0.00..3.14 rows=1 width=41)
-> Index Scan using miasta_pkey on miasta m1 (cost=0.00..3.10 rows=1 width=23)
-> Materialize (cost=6.26..6.26 rows=1 width=64)
-> Nested Loop (cost=0.00..6.26 rows=1 width=64)
-> Index Scan using przystanki_pkey on przystanki p2 (cost=0.00..3.14 rows=1 width=41)
-> Index Scan using miasta_pkey on miasta m2 (cost=0.00..3.10 rows=1 width=23)
Stephan - I have some problems with mail relay to you.
Does my mail server have any open-relay problem, or something like this (213.25.37.66) ?
Regards,
Tomasz Myrta
From | Date | Subject | |
---|---|---|---|
Next Message | Stephan Szabo | 2003-01-23 00:45:10 | Re: To use a VIEW or not to use a View..... |
Previous Message | Björn Metzdorf | 2003-01-22 21:43:05 | Re: sort by relevance |