mirror of
https://github.com/postgres/postgres.git
synced 2025-06-14 18:42:34 +03:00
Fix assorted bugs related to identity column in partitioned tables
When changing the data type of a column of a partitioned table, craft the ALTER SEQUENCE command only once. Partitions do not have identity sequences of their own and thus do not need a ALTER SEQUENCE command for each partition. Fix getIdentitySequence() to fetch the identity sequence associated with the top-level partitioned table when a Relation of a partition is passed to it. While doing so, translate the attribute number of the partition into the attribute number of the partitioned table. Author: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com> Reported-by: Alexander Lakhin <exclusion@gmail.com> Reviewed-by: Dmitry Dolgov <9erthalion6@gmail.com> Discussion: https://www.postgresql.org/message-id/3b8a9dc1-bbc7-0ef5-6863-c432afac7d59@gmail.com
This commit is contained in:
@ -8535,7 +8535,7 @@ ATExecDropIdentity(Relation rel, const char *colName, bool missing_ok, LOCKMODE
|
||||
if (!recursing)
|
||||
{
|
||||
/* drop the internal sequence */
|
||||
seqid = getIdentitySequence(RelationGetRelid(rel), attnum, false);
|
||||
seqid = getIdentitySequence(rel, attnum, false);
|
||||
deleteDependencyRecordsForClass(RelationRelationId, seqid,
|
||||
RelationRelationId, DEPENDENCY_INTERNAL);
|
||||
CommandCounterIncrement();
|
||||
|
Reference in New Issue
Block a user