Re: POC, WIP: OR-clause support for indexes

From: Alena Rybakina <a(dot)rybakina(at)postgrespro(dot)ru>
To: Alexander Korotkov <aekorotkov(at)gmail(dot)com>
Cc: Nikolay Shaplov <dhyan(at)nataraj(dot)su>, pgsql-hackers(at)lists(dot)postgresql(dot)org, Andrei Lepikhov <a(dot)lepikhov(at)postgrespro(dot)ru>, jian he <jian(dot)universality(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org, Peter Geoghegan <pg(at)bowt(dot)ie>, Marcos Pegoraro <marcos(at)f10(dot)com(dot)br>, teodor(at)sigaev(dot)ru, Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, Peter Eisentraut <peter(at)eisentraut(dot)org>, Ranier Vilela <ranier(dot)vf(at)gmail(dot)com>
Subject: Re: POC, WIP: OR-clause support for indexes
Date: 2024-08-15 19:13:32
Message-ID: e657e536-f10b-4131-a3f2-667c73c86588@postgrespro.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi!
On 07.08.2024 04:11, Alexander Korotkov wrote:
> On Mon, Aug 5, 2024 at 11:24 PM Alena Rybakina
> <a(dot)rybakina(at)postgrespro(dot)ru> wrote:
>> Ok, thank you for your work)
>>
>> I think we can leave only the two added libraries in the first patch,
>> others are superfluous.
> Thank you.
> I also have fixed some grammar issues.

While reviewing the patch, I can't understand one part of the code where
we check the comparability of restrictinfos.

/* RestrictInfo parameters dmust match parent */
        if (subRinfo->is_pushed_down != rinfo->is_pushed_down ||
            subRinfo->is_clone != rinfo->is_clone ||
            subRinfo->security_level != rinfo->security_level ||
            !bms_equal(subRinfo->required_relids,
rinfo->required_relids) ||
            !bms_equal(subRinfo->incompatible_relids,
rinfo->incompatible_relids) ||
            !bms_equal(subRinfo->outer_relids, rinfo->outer_relids))
            return NULL;

I didn't find a place in the optimizer where required_relids,
incompatible_relids and outer_relids become different. Each
make_restrictinfo function takes arguments from
parent data.

I disabled this check and the regression tests passed. This code is
needed for security verification, may I clarify?

In the last patch I corrected the libraries - one of them was not in
alphabetical order.

--
Regards,
Alena Rybakina
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Attachment Content-Type Size
v34-0001-Transform-OR-clauses-to-SAOP-s-during-index-matching.patch text/x-patch 27.1 KB
v34-0002-Teach-bitmap-path-generation-about-transforming-OR-c.patch text/x-patch 39.1 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Geoghegan 2024-08-15 19:22:32 Showing primitive index scan count in EXPLAIN ANALYZE (for skip scan and SAOP scans)
Previous Message Bruce Momjian 2024-08-15 18:48:42 Re: Partial aggregates pushdown