Fwd: [PATCH] Add support for INSERT ... SET syntax

From: Triveni N <triveni(dot)n(at)enterprisedb(dot)com>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Cc: Suraj Kharage <suraj(dot)kharage(at)enterprisedb(dot)com>, alvherre(at)kurilemu(dot)de, "andrew(at)dunslane(dot)net" <andrew(at)dunslane(dot)net>, david(dot)g(dot)johnston(at)gmail(dot)com, Ajay Pal <ajay(dot)pal(dot)k(at)gmail(dot)com>
Subject: Fwd: [PATCH] Add support for INSERT ... SET syntax
Date: 2026-06-19 13:35:03
Message-ID: CAJrT2Tt32+hTEECzSmMV+fp0Xw8U=cXoQO-yCK27R35kLx6RbQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

From: Suraj Kharage <suraj(dot)kharage(at)enterprisedb(dot)com>
Date: Mon, Apr 6, 2026 at 4:13 PM
Subject: Re: [PATCH] Add support for INSERT ... SET syntax
To: Ajay Pal <ajay(dot)pal(dot)k(at)gmail(dot)com>
Cc: Álvaro Herrera <alvherre(at)kurilemu(dot)de>, Andrew Dunstan <
andrew(at)dunslane(dot)net>, David G. Johnston <david(dot)g(dot)johnston(at)gmail(dot)com>,
PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>

Hi,

Rebased the patch with some documentation changes.
Also, added commitfest entry - https://commitfest.postgresql.org/patch/6635/

--

Thanks & Regards,
Suraj kharage,

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

Sharing an update on testing.

Below are the areas that I’ve covered:

**Core syntax**
- Basic SET syntax (single row, with and without parentheses)
- Column order independence
- Multi-row insertion — SET (col=val, ...), (col=val, ...) syntax

**Value types**
- DEFAULT keyword and implicit defaults (column omission)
- Expressions, functions, and subqueries (including deeply nested)
- NULL values, array columns, composite types, and domain types

**Clauses & advanced features**
- RETURNING clause (single and multi-row)
- ON CONFLICT DO NOTHING / DO UPDATE
- OVERRIDING SYSTEM VALUE
- CTE (WITH clause)
- EXPLAIN / EXPLAIN ANALYZE

**Schema & constraints**
- CHECK constraints and column-level privileges
- Foreign key constraints (valid and failing cases)
- Partitioned tables, table inheritance, and schema-qualified table names
- Quoted and reserved keyword column names

**Procedural contexts**
- PL/pgSQL functions and DO blocks (including multi-row)
- Dynamic SQL via EXECUTE with parameters
- Prepared statements (PREPARE + EXECUTE)
- SAVEPOINTs and rollback behavior

**Other**
- Updatable views
- BEFORE and AFTER INSERT triggers
- Negative cases covering syntax errors, constraint violations, and
privilege violations

Note: Issue reported by Ajay Pal has been resolved in v3 patch.

--
Warm regards,
Triveni

Attachment Content-Type Size
v3-0001-Add-support-for-INSERT-.-SET-syntax.patch application/x-patch 35.6 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Bertrand Drouvot 2026-06-19 13:36:45 Re: Avoid orphaned objects dependencies, take 3
Previous Message Bertrand Drouvot 2026-06-19 13:28:21 Re: Avoid orphaned objects dependencies, take 3