Re: Condition pushdown: why (=) is pushed down into join, but BETWEEN or >= is not?

From: Andy Fan <zhihui(dot)fan1213(at)gmail(dot)com>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, David Rowley <dgrowleyml(at)gmail(dot)com>, Dmitry Astapov <dastapov(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Condition pushdown: why (=) is pushed down into join, but BETWEEN or >= is not?
Date: 2022-03-02 03:00:12
Message-ID: CAKU4AWqtosYE3+OahesD2xTTuaE7zdWZWOvd791yXTf+bRQLSw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

>
>
> I don't think 0001 is right either, although maybe for somewhat
> different reasons. First, I think it only considers VAR OP CONST style
> clauses, but that is leaving money on the table, because given a.x =
> b.x AND mumble(a.x), we can decide to instead test mumble(b.x) if the
> equality operator in question has is-binary-identical semantics. It
> does not seem necessary for a first patch to deal with both that and
> the somewhat more pleasing case where we're making deductions based on
> operator families ... but we shouldn't commit to a design for the VAR
> OP CONST case without understanding how it could be generalized.
>

I can follow up with this and +1 with the statement.

> Second, it looks to me like the patch takes the rather naive strategy
> of enforcing the derived clauses everywhere that they can legally be
> put, which seems certain not to be optimal.

If we can have some agreement (after more discussion) the EC filter is
acceptable on semantics level, I think we may have some chances to
improve something at execution level.

--
Best Regards
Andy Fan

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message osumi.takamichi@fujitsu.com 2022-03-02 03:12:54 RE: Optionally automatically disable logical replication subscriptions on error
Previous Message Amit Kapila 2022-03-02 02:55:13 Re: Add the replication origin name and commit-LSN to logical replication worker errcontext