Specify dependency type in seq. ownership check

sequenceIsOwned now accepts a dependency type, but simply passing
DEPENDENCY_AUTO preserves existing behavior.
pull/1439/head
Jason Petersen 2017-04-19 21:35:13 -06:00
parent fdfcbaeb2a
commit b1cf59e32a
No known key found for this signature in database
GPG Key ID: 9F1D3510D110ABA9
2 changed files with 14 additions and 2 deletions

View File

@ -2183,6 +2183,7 @@ ErrorIfDistributedAlterSeqOwnedBy(AlterSeqStmt *alterSeqStmt)
{
Oid sequenceId = RangeVarGetRelid(alterSeqStmt->sequence, AccessShareLock,
alterSeqStmt->missing_ok);
bool sequenceOwned = false;
Oid ownedByTableId = InvalidOid;
Oid newOwnedByTableId = InvalidOid;
int32 ownedByColumnId = 0;
@ -2194,8 +2195,15 @@ ErrorIfDistributedAlterSeqOwnedBy(AlterSeqStmt *alterSeqStmt)
return;
}
/* see whether the sequences is already owned by a distributed table */
if (sequenceIsOwned(sequenceId, &ownedByTableId, &ownedByColumnId))
#if (PG_VERSION_NUM >= 100000)
sequenceOwned = sequenceIsOwned(sequenceId, DEPENDENCY_AUTO, &ownedByTableId,
&ownedByColumnId);
#else
sequenceOwned = sequenceIsOwned(sequenceId, &ownedByTableId, &ownedByColumnId);
#endif
/* see whether the sequence is already owned by a distributed table */
if (sequenceOwned)
{
hasDistributedOwner = IsDistributedTable(ownedByTableId);
}

View File

@ -925,7 +925,11 @@ EnsureSupportedSequenceColumnType(Oid sequenceOid)
bool hasMetadataWorkers = HasMetadataWorkers();
/* call sequenceIsOwned in order to get the tableId and columnId */
#if (PG_VERSION_NUM >= 100000)
sequenceIsOwned(sequenceOid, DEPENDENCY_AUTO, &tableId, &columnId);
#else
sequenceIsOwned(sequenceOid, &tableId, &columnId);
#endif
shouldSyncMetadata = ShouldSyncTableMetadata(tableId);