From: | Alena Rybakina <a(dot)rybakina(at)postgrespro(dot)ru> |
---|---|
To: | Alexander Korotkov <aekorotkov(at)gmail(dot)com>, Andrei Lepikhov <lepihov(at)gmail(dot)com> |
Cc: | Ivan Kush <ivan(dot)kush(at)tantorlabs(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at> |
Subject: | Re: Replace IN VALUES with ANY in WHERE clauses during optimization |
Date: | 2025-03-01 11:39:11 |
Message-ID: | 99c3d74c-56c1-4fc1-b6db-c0c87cc9cc2d@postgrespro.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 28.02.2025 14:48, Alena Rybakina wrote:
>
> Hi!
>
> On 21.02.2025 00:09, Alena Rybakina wrote:
>>
>> Hi!
>>
>> On 09.02.2025 18:38, Alexander Korotkov wrote:
>>>> Also, aren't we too restrictive while requiring is_simple_values_sequence()?
>>>> For instance, I believe cases like this (containing Var) could be transformed too.
>>>>
>>>> select * from t t1, lateral (select * from t t2 where t2.i in (values (t1.i), (1)));
>>
> I added it and attached a patch with diff file. To be honest, I didn't
> find queries except for var with volatile functions where the
> transform can't be applied.
>
I removed the function volatility check that I added in the previous
version, since we already check it in is_simple_values_sequence.
> I'm not sure about only cases where var can refer to something outside
> available_rels list but I couldn't come up with an example where
> that's possible, what do you think?
>
Considering it again, I think we can't face problems like that because
we don't work with join.
I attached a diff file as a difference with the 3rd version of the
patch, when we did not consider the values with var for transformation.
--
Regards,
Alena Rybakina
Postgres Professional
Attachment | Content-Type | Size |
---|---|---|
consider_vars.diff.no-cfbot | text/plain | 2.5 KB |
v5-0002-Add-an-implementation-of-the-x-IN-VALUES-to-x-ANY.patch | text/x-patch | 31.7 KB |
v5-0001-Move-the-function-for-generating-ArrayExpr-to-anothe.patch | text/x-patch | 9.7 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Thomas Munro | 2025-03-01 12:37:12 | Re: Adding NetBSD and OpenBSD to Postgres CI |
Previous Message | Dean Rasheed | 2025-03-01 11:30:47 | Re: [PATCH] Add get_bytes() and set_bytes() functions |