From: | Alena Rybakina <lena(dot)ribackina(at)yandex(dot)ru> |
---|---|
To: | Ranier Vilela <ranier(dot)vf(at)gmail(dot)com> |
Cc: | Andrey Lepikhov <a(dot)lepikhov(at)postgrespro(dot)ru>, Marcos Pegoraro <marcos(at)f10(dot)com(dot)br>, teodor(at)sigaev(dot)ru, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, Peter Geoghegan <pg(at)bowt(dot)ie> |
Subject: | Re: POC, WIP: OR-clause support for indexes |
Date: | 2023-07-11 12:29:21 |
Message-ID: | 61732291-742a-9fb0-dc26-82782121d203@yandex.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi!
On 10.07.2023 15:15, Ranier Vilela wrote:
> Em seg., 10 de jul. de 2023 às 09:03, Ranier Vilela
> <ranier(dot)vf(at)gmail(dot)com> escreveu:
>
> Hi Alena,
>
> Em seg., 10 de jul. de 2023 às 05:38, Alena Rybakina
> <lena(dot)ribackina(at)yandex(dot)ru> escreveu:
>
> I agreed with the changes. Thank you for your work.
>
> I updated patch and added you to the authors.
>
> I specified Ranier Vilela as a reviewer.
>
> Is a good habit when post a new version of the patch, name it v1,
> v2, v3,etc.
> Makes it easy to follow development and references on the thread.
>
Sorry, I fixed it.
>
> Regarding the last patch.
> 1. I think that variable const_is_left is not necessary.
> You can stick with:
> + if (IsA(get_leftop(orqual), Const))
> + nconst_expr =get_rightop(orqual);
> + const_expr = get_leftop(orqual) ;
> + else if (IsA(get_rightop(orqual), Const))
> + nconst_expr =get_leftop(orqual);
> + const_expr = get_rightop(orqual) ;
> + else
> + {
> + or_list = lappend(or_list, orqual);
> + continue;
> + }
>
Agreed.
>
>
> 2. Test scalar_type != RECORDOID is more cheaper,
> mainly if OidIsValid were a function, we knows that is a macro.
> + if (scalar_type != RECORDOID && OidIsValid(scalar_type))
>
Is it safe? Maybe we should first make sure that it can be checked on
RECORDOID at all?
>
> 3. Sorry about wrong tip about array_type, but if really necessary,
> better use it.
> + newa->element_typeid = scalar_type;
> + newa->array_typeid = array_type;
>
Agreed.
>
>
> 4. Is a good habit, call free last, to avoid somebody accidentally
> using it.
> + or_list = lappend(or_list, gentry->expr);
> + list_free(gentry->consts);
> + continue;
>
No, this is not necessary, because we add the original expression in
these places to the resulting list and later
we will not use the list of constants for this group at all, otherwise
it would be an error.
--
Regards,
Alena Rybakina
Postgres Professional
Attachment | Content-Type | Size |
---|---|---|
v5-Replace-OR-clause-to-ANY-expressions.patch | text/x-patch | 8.0 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Palak Chaturvedi | 2023-07-11 12:38:56 | Re: Extension Enhancement: Buffer Invalidation in pg_buffercache |
Previous Message | Amit Kapila | 2023-07-11 12:29:07 | Re: pg_decode_message vs skip_empty_xacts and xact_wrote_changes |