On 21.11.2023 03:50, Alena Rybakina wrote:
> 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?
>
>
Sorry, I lost your changes during the revision process. I returned
them. I raised the patch version just in case to run ci successfully.
--
Regards,
Alena Rybakina
Postgres Professional