På fredag 01. desember 2017 kl. 03:30:21, skrev Simon Riggs < si...@2ndquadrant.com <mailto:si...@2ndquadrant.com>>: On 1 December 2017 at 12:20, David Rowley <david.row...@2ndquadrant.com> wrote: > On 1 December 2017 at 02:52, Andreas Joseph Krogh <andr...@visena.com> wrote: >> >> I came across this from Oracle: https://oracle-base.com/articles/misc/join-elimination#basic-join-elimination >> >> Needless to say, this would be very cool to have in PG:-) > > It would be nice, I agree. > >> It seems this has been discussed before [1], [2], [3], and the consesus at the time was that the proposted implementation introduced way too much planning-overhead to be worth it. Given that other RDBMS-vendors provides this, and it's on the "Cool feactures other have that we don't"-list [4], is anyone interessted in working on improving this? > > The large hurdle which a good workaround was never really found for > was the fact that foreign key triggers only update the referenced rows > at the end of the statement, or end of query when the foreign key > constraint is deferred. I don't recall much concern about planner > overhead. It's likely not going to be too big a concern since we're > already checking for foreign keys nowadays during selectivity > estimation. > > I do still have all the code I wrote all those years ago, and possibly > it will still apply to master as I rebased it just several months ago. > I've just not yet come up with any bright ideas on how to solve the > foreign key trigger timing problem.
So it would work if the Foreign Keys are marked NOT DEFERRABLE? Can someone please explain, in layman-terms, what the problems with FKs are related to JOIN-removal? -- Andreas Joseph Krogh CTO / Partner - Visena AS Mobile: +47 909 56 963 andr...@visena.com <mailto:andr...@visena.com> www.visena.com <https://www.visena.com> <https://www.visena.com>