Thread: pgsql: Allow a multi-row INSERT to specify DEFAULTs for a generated col

pgsql: Allow a multi-row INSERT to specify DEFAULTs for a generated col

From
Tom Lane
Date:
Allow a multi-row INSERT to specify DEFAULTs for a generated column.

One can say "INSERT INTO tab(generated_col) VALUES (DEFAULT)" and not
draw an error.  But the equivalent case for a multi-row VALUES list
always threw an error, even if one properly said DEFAULT in each row.
Fix that.  While here, improve the test cases for nearby logic about
OVERRIDING SYSTEM/USER values.

Dean Rasheed

Discussion: https://postgr.es/m/9q0sgcr416t.fsf@gmx.us

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/17958972fe3bb03454a4b53756b29d65dc285efa

Modified Files
--------------
src/backend/rewrite/rewriteHandler.c    | 242 ++++++++++++++++++++++++++++----
src/test/regress/expected/generated.out |  47 ++++++-
src/test/regress/expected/identity.out  |  56 ++++++++
src/test/regress/sql/generated.sql      |  21 ++-
src/test/regress/sql/identity.sql       |  23 +++
5 files changed, 357 insertions(+), 32 deletions(-)


Re: pgsql: Allow a multi-row INSERT to specify DEFAULTs for a generated col

From
Laurenz Albe
Date:
On Sun, 2020-11-22 at 20:48 +0000, Tom Lane wrote:
> Allow a multi-row INSERT to specify DEFAULTs for a generated column.
> 
> One can say "INSERT INTO tab(generated_col) VALUES (DEFAULT)" and not
> draw an error.  But the equivalent case for a multi-row VALUES list
> always threw an error, even if one properly said DEFAULT in each row.
> Fix that.  While here, improve the test cases for nearby logic about
> OVERRIDING SYSTEM/USER values.
> 
> Dean Rasheed
> 
> Discussion: https://postgr.es/m/9q0sgcr416t.fsf@gmx.us
> 
> Branch
> ------
> master
> 
> Details
> -------
> https://git.postgresql.org/pg/commitdiff/17958972fe3bb03454a4b53756b29d65dc285efa

Shouldn't this be backpatched?
That seems like a clear bug to me; see this report on v11:
https://stackoverflow.com/q/68834080/6464308

Yours,
Laurenz Albe




Laurenz Albe <laurenz.albe@cybertec.at> writes:
> On Sun, 2020-11-22 at 20:48 +0000, Tom Lane wrote:
>> Allow a multi-row INSERT to specify DEFAULTs for a generated column.

> Shouldn't this be backpatched?
> That seems like a clear bug to me; see this report on v11:
> https://stackoverflow.com/q/68834080/6464308

https://www.postgresql.org/message-id/flat/CAEMmGb5BN_iRabOKO1_G6LkecxqLHrwFQ%3DcuN1bJC4HmUsjjLw%40mail.gmail.com

            regards, tom lane