Thanks, Ajay for reporting this.

The issue is that the INSERT...SET grammar was incorrectly using
set_clause_list which includes the UPDATE-style
multi-column assignment syntax (col1, col2) = expr. This creates
MultiAssignRef nodes that are only valid in UPDATE contexts, not INSERT.
Fix this by changing the grammer rule.

Please find attached v2 patch with the above fix. I have also added support
for different column sets in multi-row inserts.

Thanks, Andrew for the offline discussion and help on this.
--

Thanks & Regards,
Suraj kharage,



enterprisedb.com <https://www.enterprisedb.com/>


On Tue, Mar 31, 2026 at 11:44 AM Ajay Pal <[email protected]> wrote:

> Hello all,
>
> I am reporting a server crash encountered while testing the patch
> provided by Suraj. The crash is consistently triggered by the query
> attached below.
>
> postgres=# INSERT INTO emp_test SET (empno,ename)=(SELECT 1,'aa');
>
> server closed the connection unexpectedly
> This probably means the server terminated abnormally
> before or while processing the request.
> The connection to the server was lost. Attempting reset: Failed.
>
> Thanks
> Ajay
>
> On Mon, Mar 30, 2026 at 9:19 PM Álvaro Herrera <[email protected]>
> wrote:
> >
> > On 2026-Mar-30, Andrew Dunstan wrote:
> >
> > > Well, Suraj has kinda beaten me to it, but he didn't invent this
> syntax.
> > > Oracle did <
> https://oracle-base.com/articles/23/non-positional-insert-into-set-and-insert-into-by-name-clauses-23
> >
> > > and I believe there is a proposal to add it to the standard. (Unlike
> > > Suraj's, my WIP patch also supports the INSERT BY NAME variant.)
> >
> > Hmm, I don't see any WIP patch from you -- are you talking about this
> > patch from July 2019?
> >
> https://postgr.es/m/CA+A-St+NntBh2EGu3a0xbVxJFzaeEOn=vn_v84ouhm59_hk...@mail.gmail.com
> >
> > Funnily enough, we have an even older proposal from 2016,
> > https://postgr.es/m/[email protected]
> >
> > It seems this is quite a popular missing feature, as Marko's patch was
> > also asked about in February 2019:
> > https://postgr.es/m/[email protected]
> >
> > --
> > Álvaro Herrera        Breisgau, Deutschland  —
> https://www.EnterpriseDB.com/
> >
> >
>

Attachment: v2-0001-Add-support-for-INSERT-.-SET-syntax.patch
Description: Binary data

Reply via email to