mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Fix INSERT OVERRIDING USER VALUE behavior
The original implementation disallowed using OVERRIDING USER VALUE on identity columns defined as GENERATED ALWAYS, which is not per standard. So allow that now. Expand documentation and tests around this. Author: Dean Rasheed <dean.a.rasheed@gmail.com> Reviewed-by: Peter Eisentraut <peter.eisentraut@2ndquadrant.com> Reviewed-by: Vik Fearing <vik@postgresfriends.org> Discussion: https://www.postgresql.org/message-id/flat/CAEZATCVrh2ufCwmzzM%3Dk_OfuLhTTPBJCdFkimst2kry4oHepuQ%40mail.gmail.com
This commit is contained in:
@ -808,7 +808,9 @@ rewriteTargetListIU(List *targetList,
|
||||
{
|
||||
if (att_tup->attidentity == ATTRIBUTE_IDENTITY_ALWAYS && !apply_default)
|
||||
{
|
||||
if (override != OVERRIDING_SYSTEM_VALUE)
|
||||
if (override == OVERRIDING_USER_VALUE)
|
||||
apply_default = true;
|
||||
else if (override != OVERRIDING_SYSTEM_VALUE)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_GENERATED_ALWAYS),
|
||||
errmsg("cannot insert into column \"%s\"", NameStr(att_tup->attname)),
|
||||
|
Reference in New Issue
Block a user