Craig James <[email protected]> writes:
> Then I thought maybe putting a foreign-key constraint on table "my_version"
> would solve the problem:
> alter table my_version add constraint fk_my_view foreign key(version_id)
> references registry.version(version_id) on delete cascade;
> That way, the planner would know that every key in table "my_version" has to
> also be in table "version", thus avoiding that part about "forcing the other
> join to be done in toto". But the foreign-key constraint makes no
> difference, it still does the full join and takes 65 seconds.
That's just wishful thinking I'm afraid. The planner doesn't currently
make any deductions whatsoever from the presence of a foreign key
constraint; and even if it did, I'm not sure that this would help it
decide that a join order constraint could safely be dropped.
regards, tom lane
--
Sent via pgsql-performance mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance