From: | Pavel Borisov <pashkin(dot)elfe(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Andrey Borodin <x4mmm(at)yandex-team(dot)ru>, Michel Pelletier <pelletier(dot)michel(at)gmail(dot)com>, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: Using Expanded Objects other than Arrays from plpgsql |
Date: | 2025-01-30 20:32:03 |
Message-ID: | CALT9ZEGy5+GNQUtR80BPL7k-Qi47sqwPLnN_dOaQUW5UbxcTGA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general pgsql-hackers |
Hi, Michel and Tom!
On Sun, 26 Jan 2025 at 23:04, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
> Andrey Borodin <x4mmm(at)yandex-team(dot)ru> writes:
> > On 26 Jan 2025, at 20:37, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> >> Maybe we should recast it as an action. What do you think of
> >> "mark_expr_as_assignment_source"?
>
> > Sounds better to me. I found no examples of similar functions nether in pl_gram.y, nor in gram.y, so IMO mark_expr_as_assignment_source() is the best candidate.
>
> WFM, I'll make it so in next version.
>
> > Got it, many thanks for the explanation.
>
> I'll see about incorporating more of that in the comments, too.
>
> > I wonder if you plan similar optimizations for array_cat(), array_remove() etc?
> > + a := a || a; -- not optimizable
> > Why is it not optimizable? Because there is no support function, because array_cat() has no support function, or something else?
>
> plpgsql won't attempt to optimize it because "a" is referenced twice
> and there is no support function that might say it's safe anyway.
>
> array_cat doesn't currently have any special smarts about expanded
> arrays, so it's all moot because the arrays would get flattened
> on the way into it. If we did improve it to be able to cope with
> expanded arrays, I'm not real sure that it could safely manage an
> in-place update where the two inputs are the same array --- at
> the least, some extreme care would be needed to get the right
> answers.
>
> I'm not real excited about optimizing additional array operations
> anyway. Maybe some more will get done at some point, but I don't
> see that as part of this work.
>
> regards, tom lane
I started looking at the patchset.
Recently it got conflicts with changes to yyparse (473a575e05979b4db).
Could you rebase it and also do naming changes proposed by Andrew
Borodin, which I definitely agree with?
Regards,
Pavel Borisov
From | Date | Subject | |
---|---|---|---|
Next Message | Rich Shepard | 2025-01-30 21:47:59 | Using psql's \prompt command |
Previous Message | Tom Lane | 2025-01-30 17:50:48 | Re: could not accept ssl connection tlsv1 alert unknown ca |
From | Date | Subject | |
---|---|---|---|
Next Message | Melanie Plageman | 2025-01-30 20:36:12 | Re: BitmapHeapScan streaming read user and prelim refactoring |
Previous Message | Masahiko Sawada | 2025-01-30 19:54:59 | Re: UUID v7 |