On Fri, Nov 6, 2015 at 9:42 AM, Kouhei Kaigai <kai...@ak.jp.nec.com> wrote: > This patch needs to be rebased. > One thing different from the latest version is fdw_recheck_quals of > ForeignScan was added. So, ... > > (1) Principle is that FDW driver knows what qualifiers were pushed down > and how does it kept in the private field. So, fdw_recheck_quals is > redundant and to be reverted. > > (2) Even though the principle is as described in (1), however, > wired logic in ForeignRecheck() and fdw_recheck_quals are useful > default for most of FDW drivers. So, it shall be kept and valid > only if RecheckForeignScan callback is not defined. > > Which is better approach for the v3 patch? > My preference is (1), because fdw_recheck_quals is a new feature, > thus, FDW driver has to be adjusted in v9.5 more or less, even if > it already supports qualifier push-down. > In general, interface becomes more graceful to stick its principle.
fdw_recheck_quals seems likely to be very convenient for FDW authors, and I think ripping it out would be a terrible decision. I think ForeignRecheck should first call ExecQual to test fdw_recheck_quals. If it returns false, return false. If it returns true, then give the FDW callback a chance, if one is defined. If that returns false, return false. If we haven't yet returned false, return true. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers