On 30/11/2023 15:00, Alena Rybakina wrote:
> 2. The second patch is my patch version when I moved the OR
> transformation in the s index formation stage:
>
> So, I got the best query plan despite the possible OR to ANY
> transformation:
If the user uses a clause like "x IN (1,2) AND y=100", it will break
your 'good' solution.
In my opinion, the general approach here is to stay with OR->ANY
transformation at the parsing stage and invent one more way for picking
an index by looking into the array and attempting to find a compound index.
Having a shorter list of expressions, where uniform ORs are grouped into
arrays, the optimizer will do such work with less overhead.
--
regards,
Andrei Lepikhov
Postgres Professional