mirror of https://github.com/citusdata/citus.git
Merge pull request #5360 from citusdata/cleanup/compat
Since we dropped support for pg versions not having oid attribute in catalog tables, removing those functions.pull/5348/head
commit
877d21d3f4
|
@ -76,7 +76,6 @@ static void ForeignConstraintFindDistKeys(HeapTuple pgConstraintTuple,
|
||||||
int *referencedAttrIndex);
|
int *referencedAttrIndex);
|
||||||
static List * GetForeignKeyIdsForColumn(char *columnName, Oid relationId,
|
static List * GetForeignKeyIdsForColumn(char *columnName, Oid relationId,
|
||||||
int searchForeignKeyColumnFlags);
|
int searchForeignKeyColumnFlags);
|
||||||
static Oid get_relation_constraint_oid_compat(HeapTuple heapTuple);
|
|
||||||
static List * GetForeignKeysWithLocalTables(Oid relationId);
|
static List * GetForeignKeysWithLocalTables(Oid relationId);
|
||||||
static bool IsTableTypeIncluded(Oid relationId, int flags);
|
static bool IsTableTypeIncluded(Oid relationId, int flags);
|
||||||
static void UpdateConstraintIsValid(Oid constraintId, bool isValid);
|
static void UpdateConstraintIsValid(Oid constraintId, bool isValid);
|
||||||
|
@ -600,9 +599,8 @@ GetForeignKeyIdsForColumn(char *columnName, Oid relationId,
|
||||||
if (HeapTupleOfForeignConstraintIncludesColumn(heapTuple, relationId,
|
if (HeapTupleOfForeignConstraintIncludesColumn(heapTuple, relationId,
|
||||||
pgConstraintKey, columnName))
|
pgConstraintKey, columnName))
|
||||||
{
|
{
|
||||||
Oid foreignKeyOid = get_relation_constraint_oid_compat(heapTuple);
|
|
||||||
foreignKeyIdsColumnAppeared = lappend_oid(foreignKeyIdsColumnAppeared,
|
foreignKeyIdsColumnAppeared = lappend_oid(foreignKeyIdsColumnAppeared,
|
||||||
foreignKeyOid);
|
constraintForm->oid);
|
||||||
}
|
}
|
||||||
|
|
||||||
heapTuple = systable_getnext(scanDescriptor);
|
heapTuple = systable_getnext(scanDescriptor);
|
||||||
|
@ -701,26 +699,6 @@ GetForeignConstraintCommandsInternal(Oid relationId, int flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* get_relation_constraint_oid_compat returns OID of the constraint represented
|
|
||||||
* by the constraintForm, which is passed as an heapTuple. OID of the contraint
|
|
||||||
* is already stored in the constraintForm struct if major PostgreSQL version is
|
|
||||||
* 12. However, in the older versions, we should utilize HeapTupleGetOid to deduce
|
|
||||||
* that OID with no cost.
|
|
||||||
*/
|
|
||||||
static Oid
|
|
||||||
get_relation_constraint_oid_compat(HeapTuple heapTuple)
|
|
||||||
{
|
|
||||||
Assert(heapTuple != NULL);
|
|
||||||
|
|
||||||
|
|
||||||
Form_pg_constraint constraintForm = (Form_pg_constraint) GETSTRUCT(heapTuple);
|
|
||||||
Oid constraintOid = constraintForm->oid;
|
|
||||||
|
|
||||||
return constraintOid;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HasForeignKeyWithLocalTable returns true if relation has foreign key
|
* HasForeignKeyWithLocalTable returns true if relation has foreign key
|
||||||
* relationship with a local table.
|
* relationship with a local table.
|
||||||
|
@ -1050,7 +1028,7 @@ GetForeignKeyOids(Oid relationId, int flags)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
Oid constraintId = get_relation_constraint_oid_compat(heapTuple);
|
Oid constraintId = constraintForm->oid;
|
||||||
|
|
||||||
bool isSelfReference = (constraintForm->conrelid == constraintForm->confrelid);
|
bool isSelfReference = (constraintForm->conrelid == constraintForm->confrelid);
|
||||||
if (excludeSelfReference && isSelfReference)
|
if (excludeSelfReference && isSelfReference)
|
||||||
|
|
|
@ -162,8 +162,7 @@ GetExplicitTriggerIdList(Oid relationId)
|
||||||
*/
|
*/
|
||||||
if (!triggerForm->tgisinternal)
|
if (!triggerForm->tgisinternal)
|
||||||
{
|
{
|
||||||
Oid triggerId = get_relation_trigger_oid_compat(heapTuple);
|
triggerIdList = lappend_oid(triggerIdList, triggerForm->oid);
|
||||||
triggerIdList = lappend_oid(triggerIdList, triggerId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
heapTuple = systable_getnext(scanDescriptor);
|
heapTuple = systable_getnext(scanDescriptor);
|
||||||
|
@ -176,26 +175,6 @@ GetExplicitTriggerIdList(Oid relationId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* get_relation_trigger_oid_compat returns OID of the trigger represented
|
|
||||||
* by the constraintForm, which is passed as an heapTuple. OID of the
|
|
||||||
* trigger is already stored in the triggerForm struct if major PostgreSQL
|
|
||||||
* version is 12. However, in the older versions, we should utilize
|
|
||||||
* HeapTupleGetOid to deduce that OID with no cost.
|
|
||||||
*/
|
|
||||||
Oid
|
|
||||||
get_relation_trigger_oid_compat(HeapTuple heapTuple)
|
|
||||||
{
|
|
||||||
Assert(HeapTupleIsValid(heapTuple));
|
|
||||||
|
|
||||||
|
|
||||||
Form_pg_trigger triggerForm = (Form_pg_trigger) GETSTRUCT(heapTuple);
|
|
||||||
Oid triggerOid = triggerForm->oid;
|
|
||||||
|
|
||||||
return triggerOid;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PostprocessCreateTriggerStmt is called after a CREATE TRIGGER command has
|
* PostprocessCreateTriggerStmt is called after a CREATE TRIGGER command has
|
||||||
* been executed by standard process utility. This function errors out for
|
* been executed by standard process utility. This function errors out for
|
||||||
|
|
|
@ -478,7 +478,6 @@ extern void PostprocessVacuumStmt(VacuumStmt *vacuumStmt, const char *vacuumComm
|
||||||
extern List * GetExplicitTriggerCommandList(Oid relationId);
|
extern List * GetExplicitTriggerCommandList(Oid relationId);
|
||||||
extern HeapTuple GetTriggerTupleById(Oid triggerId, bool missingOk);
|
extern HeapTuple GetTriggerTupleById(Oid triggerId, bool missingOk);
|
||||||
extern List * GetExplicitTriggerIdList(Oid relationId);
|
extern List * GetExplicitTriggerIdList(Oid relationId);
|
||||||
extern Oid get_relation_trigger_oid_compat(HeapTuple heapTuple);
|
|
||||||
extern List * PostprocessCreateTriggerStmt(Node *node, const char *queryString);
|
extern List * PostprocessCreateTriggerStmt(Node *node, const char *queryString);
|
||||||
extern ObjectAddress CreateTriggerStmtObjectAddress(Node *node, bool missingOk);
|
extern ObjectAddress CreateTriggerStmtObjectAddress(Node *node, bool missingOk);
|
||||||
extern void CreateTriggerEventExtendNames(CreateTrigStmt *createTriggerStmt,
|
extern void CreateTriggerEventExtendNames(CreateTrigStmt *createTriggerStmt,
|
||||||
|
|
Loading…
Reference in New Issue