Re: postgres_fdw: wrong results with self join + enable_nestloop off
Etsuro Fujita <etsuro.fujita@gmail.com>
From: Etsuro Fujita <etsuro.fujita@gmail.com>
To: Richard Guo <guofenglinux@gmail.com>
Cc: Nishant Sharma <nishant.sharma@enterprisedb.com>, Suraj Kharage <suraj.kharage@enterprisedb.com>, pgsql-hackers@postgresql.org
Date: 2023-07-28T08:55:52Z
Lists: pgsql-hackers
Attachments
- 0002-Allow-join-pushdown-even-if-pseudoconstant-quals-v3.patch (application/octet-stream) patch v3-0002
Hi Richard, On Mon, Jul 24, 2023 at 11:45 AM Richard Guo <guofenglinux@gmail.com> wrote: > On Fri, Jul 21, 2023 at 8:51 PM Etsuro Fujita <etsuro.fujita@gmail.com> wrote: >> * In this bit I changed the last argument to NIL, which would be >> nitpicking, though. >> >> @@ -1038,7 +1038,7 @@ postgresGetForeignPaths(PlannerInfo *root, >> add_path(baserel, (Path *) path); >> >> /* Add paths with pathkeys */ >> - add_paths_with_pathkeys_for_rel(root, baserel, NULL); >> + add_paths_with_pathkeys_for_rel(root, baserel, NULL, NULL); > This was my oversight. No. IIUC, I think that that would work well as-proposed, but I changed it as such, for readability. > So the two patches both look good to me now. Cool! I pushed the first patch after polishing it a little bit, so here is a rebased version of the second patch, in which I modified the ForeignPath and CustomPath cases in reparameterize_path_by_child() to reflect the new members fdw_restrictinfo and custom_restrictinfo, for safety, and tweaked a comment a bit. Thanks for looking! Best regards, Etsuro Fujita
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Re-allow FDWs and custom scan providers to replace joins with pseudoconstant quals.
- 9e9931d2bf40 17.0 landed
-
Disallow replacing joins with scans in problematic cases.
- db01f26968f2 11.21 landed
- 9edf72aa7644 12.16 landed
- 730f983effa5 13.12 landed
- b0e390e6d1d6 14.9 landed
- d1ef5631e620 15.4 landed
- 695f5deb7902 16.0 landed
- 6f80a8d9c137 17.0 landed
-
doc: PQinitOpenSSL and PQinitSSL are obsolete in OpenSSL 1.1.0+
- 928e05ddfd40 16.0 cited