mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Identity columns
This is the SQL standard-conforming variant of PostgreSQL's serial columns. It fixes a few usability issues that serial columns have: - CREATE TABLE / LIKE copies default but refers to same sequence - cannot add/drop serialness with ALTER TABLE - dropping default does not drop sequence - need to grant separate privileges to sequence - other slight weirdnesses because serial is some kind of special macro Reviewed-by: Vitaly Burovoy <vitaly.burovoy@gmail.com>
This commit is contained in:
@ -2763,6 +2763,7 @@ _outColumnDef(StringInfo str, const ColumnDef *node)
|
||||
WRITE_CHAR_FIELD(storage);
|
||||
WRITE_NODE_FIELD(raw_default);
|
||||
WRITE_NODE_FIELD(cooked_default);
|
||||
WRITE_CHAR_FIELD(identity);
|
||||
WRITE_NODE_FIELD(collClause);
|
||||
WRITE_OID_FIELD(collOid);
|
||||
WRITE_NODE_FIELD(constraints);
|
||||
@ -2868,6 +2869,7 @@ _outQuery(StringInfo str, const Query *node)
|
||||
WRITE_NODE_FIELD(rtable);
|
||||
WRITE_NODE_FIELD(jointree);
|
||||
WRITE_NODE_FIELD(targetList);
|
||||
WRITE_ENUM_FIELD(override, OverridingKind);
|
||||
WRITE_NODE_FIELD(onConflict);
|
||||
WRITE_NODE_FIELD(returningList);
|
||||
WRITE_NODE_FIELD(groupClause);
|
||||
@ -3405,6 +3407,13 @@ _outConstraint(StringInfo str, const Constraint *node)
|
||||
WRITE_STRING_FIELD(cooked_expr);
|
||||
break;
|
||||
|
||||
case CONSTR_IDENTITY:
|
||||
appendStringInfoString(str, "IDENTITY");
|
||||
WRITE_NODE_FIELD(raw_expr);
|
||||
WRITE_STRING_FIELD(cooked_expr);
|
||||
WRITE_CHAR_FIELD(generated_when);
|
||||
break;
|
||||
|
||||
case CONSTR_CHECK:
|
||||
appendStringInfoString(str, "CHECK");
|
||||
WRITE_BOOL_FIELD(is_no_inherit);
|
||||
|
Reference in New Issue
Block a user