From: | Daniel Gustafsson <daniel(at)yesql(dot)se> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Comma-separated predicates in simple CASE expressions (f263) |
Date: | 2022-08-30 22:29:41 |
Message-ID: | 16E4EDA8-9111-463F-B044-8530DE39F991@yesql.se |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> On 31 Aug 2022, at 00:20, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
> Daniel Gustafsson <daniel(at)yesql(dot)se> writes:
>> I was looking at F263 from the SQL standard, Comma-separated predicates in
>> simple CASE expression, and thinking if we could support this within the
>> framework we already have at a minimal added cost. The attached sketch diff
>> turns each predicate in the list into a CaseWhen node and uses the location
>> from parsing for grouping in errorhandling for searched case.
>
>> Is this a viable approach or am I missing something obvious?
Thanks for looking!
> I don't particularly like duplicating the THEN clause multiple times.
> I think if we're going to do this we should do it right, and that
> means a substantially larger patch to propagate the notion of multiple
> comparison values all the way down.
Fair enough, I think that's doable without splitting the simple and searched
case in the parser which I think would be a good thing to avoid. I'll take a
stab at it.
> I also don't care for the bit in transformCaseExpr where you seem
> to be relying on subexpression location fields to make semantic
> decisions. Surely there's a better way.
If we group the predicates such a single node contains the full list then we'll
have all the info we need at that point.
--
Daniel Gustafsson https://vmware.com/
From | Date | Subject | |
---|---|---|---|
Next Message | David Rowley | 2022-08-30 22:40:43 | Re: Reducing the chunk header sizes on all memory context types |
Previous Message | Nathan Bossart | 2022-08-30 22:22:43 | Re: introduce bufmgr hooks |