From: | Alena Rybakina <a(dot)rybakina(at)postgrespro(dot)ru> |
---|---|
To: | Andrei Lepikhov <a(dot)lepikhov(at)postgrespro(dot)ru>, pgsql-hackers(at)postgresql(dot)org |
Cc: | Peter Geoghegan <pg(at)bowt(dot)ie>, Robert Haas <robertmhaas(at)gmail(dot)com>, "Finnerty, Jim" <jfinnert(at)amazon(dot)com>, Marcos Pegoraro <marcos(at)f10(dot)com(dot)br>, teodor(at)sigaev(dot)ru, Ranier Vilela <ranier(dot)vf(at)gmail(dot)com>, Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, Peter Eisentraut <peter(at)eisentraut(dot)org>, Alexander Korotkov <aekorotkov(at)gmail(dot)com> |
Subject: | Re: POC, WIP: OR-clause support for indexes |
Date: | 2023-11-21 00:50:15 |
Message-ID: | 4c1c2c0b-802f-45ae-a7cd-007bfd8957cf@postgrespro.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 20.11.2023 11:52, Andrei Lepikhov wrote:
> Looking into the patch, I found some trivial improvements (see
> attachment).
> Also, it is not obvious that using a string representation of the
> clause as a hash table key is needed here. Also, by making a copy of
> the node in the get_key_nconst_node(), you replace the location field,
> but in the case of complex expression, you don't do the same with
> other nodes.
> I propose to generate expression hash instead + prove the equality of
> two expressions by calling equal().
>
I was thinking about your last email and a possible error where the
location field may not be cleared in complex expressions. Unfortunately,
I didn't come up with any examples either, but I think I was able to
handle this with a special function that removes location-related
patterns. The alternative to this is to bypass this expression, but I
think it will be more invasive. In addition, I have added changes
related to the hash table: now the key is of type int.
All changes are displayed in the attached
v9-0001-Replace-OR-clause-to_ANY.diff.txt file.
I haven't measured it yet. But what do you think about these changes?
--
Regards,
Alena Rybakina
Postgres Professional
Attachment | Content-Type | Size |
---|---|---|
v9-0001-PATCH-Replace-OR-clause-to-ANY-expressions.patch | text/x-patch | 34.6 KB |
v9-0001-Replace-OR-clause-to_ANY.diff.txt | text/plain | 7.5 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Jeff Davis | 2023-11-21 01:13:33 | Re: Faster "SET search_path" |
Previous Message | Michael Paquier | 2023-11-21 00:26:00 | Re: Show WAL write and fsync stats in pg_stat_io |