forked from huawei/openGauss-server
logical
This commit is contained in:
parent
e7466a0ba5
commit
9b22bbca66
|
|
@ -1781,7 +1781,7 @@ static char** get_pkey_attnames(Relation rel, int16* indnkeyatts)
|
|||
indexRelation = heap_open(IndexRelationId, AccessShareLock);
|
||||
ScanKeyInit(&skey, Anum_pg_index_indrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(rel)));
|
||||
|
||||
scan = systable_beginscan(indexRelation, IndexIndrelidIndexId, true, SnapshotNow, 1, &skey);
|
||||
scan = systable_beginscan(indexRelation, IndexIndrelidIndexId, true, NULL, 1, &skey);
|
||||
|
||||
while (HeapTupleIsValid(indexTuple = systable_getnext(scan))) {
|
||||
Form_pg_index index = (Form_pg_index)GETSTRUCT(indexTuple);
|
||||
|
|
|
|||
|
|
@ -634,7 +634,7 @@ static void exec_object_restorecon(struct selabel_handle* sehnd, Oid catalogId)
|
|||
*/
|
||||
rel = heap_open(catalogId, AccessShareLock);
|
||||
|
||||
sscan = systable_beginscan(rel, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
sscan = systable_beginscan(rel, InvalidOid, false, NULL, 0, NULL);
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(sscan))) {
|
||||
Form_pg_database datForm;
|
||||
Form_pg_namespace nspForm;
|
||||
|
|
|
|||
|
|
@ -1526,7 +1526,7 @@ void RemoveRoleFromObjectACL(Oid roleid, Oid classid, Oid objid)
|
|||
|
||||
ScanKeyInit(&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(objid));
|
||||
|
||||
scan = systable_beginscan(rel, DefaultAclOidIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(rel, DefaultAclOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
tuple = systable_getnext(scan);
|
||||
|
||||
|
|
@ -1623,7 +1623,7 @@ void RemoveDefaultACLById(Oid defaclOid)
|
|||
|
||||
ScanKeyInit(&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(defaclOid));
|
||||
|
||||
scan = systable_beginscan(rel, DefaultAclOidIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(rel, DefaultAclOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
tuple = systable_getnext(scan);
|
||||
|
||||
|
|
@ -2987,7 +2987,7 @@ static void ExecGrant_Largeobject(InternalGrant* istmt)
|
|||
/* There's no syscache for pg_largeobject_metadata */
|
||||
ScanKeyInit(&entry[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(loid));
|
||||
|
||||
scan = systable_beginscan(relation, LargeObjectMetadataOidIndexId, true, SnapshotNow, 1, entry);
|
||||
scan = systable_beginscan(relation, LargeObjectMetadataOidIndexId, true, NULL, 1, entry);
|
||||
|
||||
tuple = systable_getnext(scan);
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
|
|
@ -6153,7 +6153,7 @@ bool pg_largeobject_ownercheck(Oid lobj_oid, Oid roleid)
|
|||
|
||||
ScanKeyInit(&entry[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(lobj_oid));
|
||||
|
||||
scan = systable_beginscan(pg_lo_meta, LargeObjectMetadataOidIndexId, true, SnapshotNow, 1, entry);
|
||||
scan = systable_beginscan(pg_lo_meta, LargeObjectMetadataOidIndexId, true, NULL, 1, entry);
|
||||
|
||||
tuple = systable_getnext(scan);
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
|
|
@ -6483,7 +6483,7 @@ bool pg_extension_ownercheck(Oid ext_oid, Oid roleid)
|
|||
|
||||
ScanKeyInit(&entry[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(ext_oid));
|
||||
|
||||
scan = systable_beginscan(pg_extension, ExtensionOidIndexId, true, SnapshotNow, 1, entry);
|
||||
scan = systable_beginscan(pg_extension, ExtensionOidIndexId, true, NULL, 1, entry);
|
||||
|
||||
tuple = systable_getnext(scan);
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
|
|
|
|||
|
|
@ -909,7 +909,7 @@ static void drop_delta_rel(Oid deltataRelId)
|
|||
Relation depRel = relation_open(DependRelationId, RowExclusiveLock);
|
||||
ScanKeyInit(&key[0], Anum_pg_depend_classid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationRelationId));
|
||||
ScanKeyInit(&key[1], Anum_pg_depend_objid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(deltataRelId));
|
||||
scan = systable_beginscan(depRel, DependDependerIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(depRel, DependDependerIndexId, true, NULL, 2, key);
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
simple_heap_delete(depRel, &tup->t_self);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -569,7 +569,7 @@ static void findDependentObjects(const ObjectAddress* object, int flags, ObjectA
|
|||
} else
|
||||
nkeys = 2;
|
||||
|
||||
scan = systable_beginscan(*depRel, DependDependerIndexId, true, SnapshotNow, nkeys, key);
|
||||
scan = systable_beginscan(*depRel, DependDependerIndexId, true, NULL, nkeys, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
Form_pg_depend foundDep = (Form_pg_depend)GETSTRUCT(tup);
|
||||
|
|
@ -718,7 +718,7 @@ static void findDependentObjects(const ObjectAddress* object, int flags, ObjectA
|
|||
} else
|
||||
nkeys = 2;
|
||||
|
||||
scan = systable_beginscan(*depRel, DependReferenceIndexId, true, SnapshotNow, nkeys, key);
|
||||
scan = systable_beginscan(*depRel, DependReferenceIndexId, true, NULL, nkeys, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
Form_pg_depend foundDep = (Form_pg_depend)GETSTRUCT(tup);
|
||||
|
|
@ -1076,7 +1076,7 @@ static void deleteOneObject(const ObjectAddress* object, Relation* depRel, int f
|
|||
} else
|
||||
nkeys = 2;
|
||||
|
||||
scan = systable_beginscan(*depRel, DependDependerIndexId, true, SnapshotNow, nkeys, key);
|
||||
scan = systable_beginscan(*depRel, DependDependerIndexId, true, NULL, nkeys, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
simple_heap_delete(*depRel, &tup->t_self);
|
||||
|
|
@ -1100,7 +1100,7 @@ static void deleteOneObject(const ObjectAddress* object, Relation* depRel, int f
|
|||
} else
|
||||
nkeys = 2;
|
||||
|
||||
scan = systable_beginscan(*depRel, DependReferenceIndexId, true, SnapshotNow, nkeys, key);
|
||||
scan = systable_beginscan(*depRel, DependReferenceIndexId, true, NULL, nkeys, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
Form_pg_depend Pinnedobj = (Form_pg_depend)GETSTRUCT(tup);
|
||||
|
|
@ -2419,7 +2419,7 @@ char* getObjectDescription(const ObjectAddress* object)
|
|||
ScanKeyInit(
|
||||
&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(object->objectId));
|
||||
|
||||
rcscan = systable_beginscan(castDesc, CastOidIndexId, true, SnapshotNow, 1, skey);
|
||||
rcscan = systable_beginscan(castDesc, CastOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
tup = systable_getnext(rcscan);
|
||||
|
||||
|
|
@ -2503,7 +2503,7 @@ char* getObjectDescription(const ObjectAddress* object)
|
|||
ScanKeyInit(
|
||||
&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(object->objectId));
|
||||
|
||||
adscan = systable_beginscan(attrdefDesc, AttrDefaultOidIndexId, true, SnapshotNow, 1, skey);
|
||||
adscan = systable_beginscan(attrdefDesc, AttrDefaultOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
tup = systable_getnext(adscan);
|
||||
|
||||
|
|
@ -2595,7 +2595,7 @@ char* getObjectDescription(const ObjectAddress* object)
|
|||
ScanKeyInit(
|
||||
&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(object->objectId));
|
||||
|
||||
amscan = systable_beginscan(amopDesc, AccessMethodOperatorOidIndexId, true, SnapshotNow, 1, skey);
|
||||
amscan = systable_beginscan(amopDesc, AccessMethodOperatorOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
tup = systable_getnext(amscan);
|
||||
|
||||
|
|
@ -2642,7 +2642,7 @@ char* getObjectDescription(const ObjectAddress* object)
|
|||
ScanKeyInit(
|
||||
&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(object->objectId));
|
||||
|
||||
amscan = systable_beginscan(amprocDesc, AccessMethodProcedureOidIndexId, true, SnapshotNow, 1, skey);
|
||||
amscan = systable_beginscan(amprocDesc, AccessMethodProcedureOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
tup = systable_getnext(amscan);
|
||||
|
||||
|
|
@ -2687,7 +2687,7 @@ char* getObjectDescription(const ObjectAddress* object)
|
|||
ScanKeyInit(
|
||||
&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(object->objectId));
|
||||
|
||||
rcscan = systable_beginscan(ruleDesc, RewriteOidIndexId, true, SnapshotNow, 1, skey);
|
||||
rcscan = systable_beginscan(ruleDesc, RewriteOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
tup = systable_getnext(rcscan);
|
||||
|
||||
|
|
@ -2717,7 +2717,7 @@ char* getObjectDescription(const ObjectAddress* object)
|
|||
ScanKeyInit(
|
||||
&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(object->objectId));
|
||||
|
||||
tgscan = systable_beginscan(trigDesc, TriggerOidIndexId, true, SnapshotNow, 1, skey);
|
||||
tgscan = systable_beginscan(trigDesc, TriggerOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
tup = systable_getnext(tgscan);
|
||||
|
||||
|
|
@ -2885,7 +2885,7 @@ char* getObjectDescription(const ObjectAddress* object)
|
|||
ScanKeyInit(
|
||||
&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(object->objectId));
|
||||
|
||||
rcscan = systable_beginscan(defaclrel, DefaultAclOidIndexId, true, SnapshotNow, 1, skey);
|
||||
rcscan = systable_beginscan(defaclrel, DefaultAclOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
tup = systable_getnext(rcscan);
|
||||
|
||||
|
|
@ -2984,7 +2984,7 @@ char* getObjectDescription(const ObjectAddress* object)
|
|||
F_OIDEQ,
|
||||
ObjectIdGetDatum(object->objectId));
|
||||
|
||||
SysScanDesc scanDesc = systable_beginscan(pg_rlspolicy, PgRlspolicyOidIndex, true, SnapshotNow, 1, scanKey);
|
||||
SysScanDesc scanDesc = systable_beginscan(pg_rlspolicy, PgRlspolicyOidIndex, true, NULL, 1, scanKey);
|
||||
|
||||
HeapTuple tuple = systable_getnext(scanDesc);
|
||||
if (HeapTupleIsValid(tuple) == false) {
|
||||
|
|
@ -3160,7 +3160,7 @@ bool TSConfigurationHasDependentObjects(Oid tsconfoid)
|
|||
|
||||
ScanKeyInit(&key[1], Anum_pg_depend_refobjid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(tsconfoid));
|
||||
|
||||
scan = systable_beginscan(depRel, DependReferenceIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(depRel, DependReferenceIndexId, true, NULL, 2, key);
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
Form_pg_depend pg_depend = (Form_pg_depend)GETSTRUCT(tuple);
|
||||
|
||||
|
|
@ -3227,7 +3227,7 @@ static void findTsDependentObjects(ObjectAddresses* targetObjects, Relation depR
|
|||
|
||||
ScanKeyInit(&key[0], Anum_pg_depend_refclassid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(cur->classId));
|
||||
ScanKeyInit(&key[1], Anum_pg_depend_refobjid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(cur->objectId));
|
||||
scan = systable_beginscan(depRel, DependReferenceIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(depRel, DependReferenceIndexId, true, NULL, 2, key);
|
||||
while(HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
Form_pg_depend foundDep = (Form_pg_depend)GETSTRUCT(tup);
|
||||
otherObj.classId = foundDep->classid;
|
||||
|
|
|
|||
|
|
@ -2905,7 +2905,7 @@ static void RelationRemoveInheritance(Oid relid)
|
|||
|
||||
ScanKeyInit(&key, Anum_pg_inherits_inhrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relid));
|
||||
|
||||
scan = systable_beginscan(catalogRelation, InheritsRelidSeqnoIndexId, true, SnapshotNow, 1, &key);
|
||||
scan = systable_beginscan(catalogRelation, InheritsRelidSeqnoIndexId, true, NULL, 1, &key);
|
||||
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan)))
|
||||
simple_heap_delete(catalogRelation, &tuple->t_self);
|
||||
|
|
@ -2963,7 +2963,7 @@ void DeleteAttributeTuples(Oid relid)
|
|||
/* Use the index to scan only attributes of the target relation */
|
||||
ScanKeyInit(&key[0], Anum_pg_attribute_attrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relid));
|
||||
|
||||
scan = systable_beginscan(attrel, AttributeRelidNumIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(attrel, AttributeRelidNumIndexId, true, NULL, 1, key);
|
||||
|
||||
/* Delete all the matching tuples */
|
||||
while ((atttup = systable_getnext(scan)) != NULL)
|
||||
|
|
@ -2996,7 +2996,7 @@ void DeleteSystemAttributeTuples(Oid relid)
|
|||
ScanKeyInit(&key[0], Anum_pg_attribute_attrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relid));
|
||||
ScanKeyInit(&key[1], Anum_pg_attribute_attnum, BTLessEqualStrategyNumber, F_INT2LE, Int16GetDatum(0));
|
||||
|
||||
scan = systable_beginscan(attrel, AttributeRelidNumIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(attrel, AttributeRelidNumIndexId, true, NULL, 2, key);
|
||||
|
||||
/* Delete all the matching tuples */
|
||||
while ((atttup = systable_getnext(scan)) != NULL)
|
||||
|
|
@ -3156,7 +3156,7 @@ void RemoveAttrDefault(Oid relid, AttrNumber attnum, DropBehavior behavior, bool
|
|||
ScanKeyInit(&scankeys[0], Anum_pg_attrdef_adrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relid));
|
||||
ScanKeyInit(&scankeys[1], Anum_pg_attrdef_adnum, BTEqualStrategyNumber, F_INT2EQ, Int16GetDatum(attnum));
|
||||
|
||||
scan = systable_beginscan(attrdef_rel, AttrDefaultIndexId, true, SnapshotNow, 2, scankeys);
|
||||
scan = systable_beginscan(attrdef_rel, AttrDefaultIndexId, true, NULL, 2, scankeys);
|
||||
|
||||
/* There should be at most one matching tuple, but we loop anyway */
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
|
|
@ -3204,7 +3204,7 @@ void RemoveAttrDefaultById(Oid attrdefId)
|
|||
/* Find the pg_attrdef tuple */
|
||||
ScanKeyInit(&scankeys[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(attrdefId));
|
||||
|
||||
scan = systable_beginscan(attrdef_rel, AttrDefaultOidIndexId, true, SnapshotNow, 1, scankeys);
|
||||
scan = systable_beginscan(attrdef_rel, AttrDefaultOidIndexId, true, NULL, 1, scankeys);
|
||||
|
||||
tuple = systable_getnext(scan);
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
|
|
@ -3945,7 +3945,7 @@ static bool MergeWithExistingConstraint(
|
|||
F_OIDEQ,
|
||||
ObjectIdGetDatum(RelationGetNamespace(rel)));
|
||||
|
||||
conscan = systable_beginscan(conDesc, ConstraintNameNspIndexId, true, SnapshotNow, 2, skey);
|
||||
conscan = systable_beginscan(conDesc, ConstraintNameNspIndexId, true, NULL, 2, skey);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(conscan))) {
|
||||
Form_pg_constraint con = (Form_pg_constraint)GETSTRUCT(tup);
|
||||
|
|
@ -4254,7 +4254,7 @@ void RemoveStatistics(Oid relid, AttrNumber attnum)
|
|||
}
|
||||
|
||||
pgstatistic = heap_open(StatisticRelationId, RowExclusiveLock);
|
||||
scan = systable_beginscan(pgstatistic, StatisticRelidKindAttnumInhIndexId, true, SnapshotNow, nkeys, key);
|
||||
scan = systable_beginscan(pgstatistic, StatisticRelidKindAttnumInhIndexId, true, NULL, nkeys, key);
|
||||
|
||||
/* we must loop even when attnum != 0, in case of inherited stats */
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan)))
|
||||
|
|
@ -4269,7 +4269,7 @@ void RemoveStatistics(Oid relid, AttrNumber attnum)
|
|||
*/
|
||||
nkeys = 2;
|
||||
pgstatistic = heap_open(StatisticExtRelationId, RowExclusiveLock);
|
||||
scan = systable_beginscan(pgstatistic, StatisticExtRelidKindInhKeyIndexId, true, SnapshotNow, nkeys, key);
|
||||
scan = systable_beginscan(pgstatistic, StatisticExtRelidKindInhKeyIndexId, true, NULL, nkeys, key);
|
||||
|
||||
/* we must loop here, in case of inherited stats and extended stats */
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
|
|
@ -4666,7 +4666,7 @@ List* heap_truncate_find_FKs(List* relationIds)
|
|||
*/
|
||||
fkeyRel = heap_open(ConstraintRelationId, AccessShareLock);
|
||||
|
||||
fkeyScan = systable_beginscan(fkeyRel, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
fkeyScan = systable_beginscan(fkeyRel, InvalidOid, false, NULL, 0, NULL);
|
||||
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(fkeyScan))) {
|
||||
Form_pg_constraint con = (Form_pg_constraint)GETSTRUCT(tuple);
|
||||
|
|
@ -6750,7 +6750,7 @@ bool FindExistingConstraint(const char* ccname, Relation rel)
|
|||
F_OIDEQ,
|
||||
ObjectIdGetDatum(RelationGetNamespace(rel)));
|
||||
|
||||
conscan = systable_beginscan(conDesc, ConstraintNameNspIndexId, true, SnapshotNow, 2, skey);
|
||||
conscan = systable_beginscan(conDesc, ConstraintNameNspIndexId, true, NULL, 2, skey);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(conscan))) {
|
||||
Form_pg_constraint con = (Form_pg_constraint)GETSTRUCT(tup);
|
||||
|
|
|
|||
|
|
@ -4697,7 +4697,7 @@ static void reindexPartIndex(Oid indexId, Oid partOid, bool skip_constraint_chec
|
|||
|
||||
ScanKeyInit(&partKey, Anum_pg_partition_indextblid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(partOid));
|
||||
|
||||
partScan = systable_beginscan(partRel, PartitionIndexTableIdIndexId, true, SnapshotNow, 1, &partKey);
|
||||
partScan = systable_beginscan(partRel, PartitionIndexTableIdIndexId, true, NULL, 1, &partKey);
|
||||
|
||||
while ((partTuple = systable_getnext(partScan)) != NULL) {
|
||||
partForm = (Form_pg_partition)GETSTRUCT(partTuple);
|
||||
|
|
|
|||
|
|
@ -4737,7 +4737,7 @@ bool checkGroup(Oid relid, bool missing_ok)
|
|||
*/
|
||||
pgxc_group = heap_open(PgxcGroupRelationId, AccessShareLock);
|
||||
|
||||
scan = systable_beginscan(pgxc_group, PgxcGroupGroupNameIndexId, true, SnapshotNow, 0, NULL);
|
||||
scan = systable_beginscan(pgxc_group, PgxcGroupGroupNameIndexId, true, NULL, 0, NULL);
|
||||
|
||||
while (HeapTupleIsValid(tuple1 = systable_getnext(scan))) {
|
||||
Form_pgxc_group groupForm = (Form_pgxc_group)GETSTRUCT(tuple1);
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ void RemoveCollationById(Oid collationOid)
|
|||
|
||||
ScanKeyInit(&scanKeyData, ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(collationOid));
|
||||
|
||||
scandesc = systable_beginscan(rel, CollationOidIndexId, true, SnapshotNow, 1, &scanKeyData);
|
||||
scandesc = systable_beginscan(rel, CollationOidIndexId, true, NULL, 1, &scanKeyData);
|
||||
|
||||
tuple = systable_getnext(scandesc);
|
||||
|
||||
|
|
|
|||
|
|
@ -382,7 +382,7 @@ bool ConstraintNameIsUsed(ConstraintCategory conCat, Oid objId, Oid objNamespace
|
|||
ScanKeyInit(
|
||||
&skey[1], Anum_pg_constraint_connamespace, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(objNamespace));
|
||||
|
||||
conscan = systable_beginscan(conDesc, ConstraintNameNspIndexId, true, SnapshotNow, 2, skey);
|
||||
conscan = systable_beginscan(conDesc, ConstraintNameNspIndexId, true, NULL, 2, skey);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(conscan))) {
|
||||
Form_pg_constraint con = (Form_pg_constraint)GETSTRUCT(tup);
|
||||
|
|
@ -464,7 +464,7 @@ char* ChooseConstraintName(const char* name1, const char* name2, const char* lab
|
|||
F_OIDEQ,
|
||||
ObjectIdGetDatum(namespaceid));
|
||||
|
||||
conscan = systable_beginscan(conDesc, ConstraintNameNspIndexId, true, SnapshotNow, 2, skey);
|
||||
conscan = systable_beginscan(conDesc, ConstraintNameNspIndexId, true, NULL, 2, skey);
|
||||
|
||||
found = (HeapTupleIsValid(systable_getnext(conscan)));
|
||||
|
||||
|
|
@ -635,11 +635,11 @@ void AlterConstraintNamespaces(Oid ownerId, Oid oldNspId, Oid newNspId, bool isT
|
|||
if (isType) {
|
||||
ScanKeyInit(&key[0], Anum_pg_constraint_contypid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(ownerId));
|
||||
|
||||
scan = systable_beginscan(conRel, ConstraintTypidIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(conRel, ConstraintTypidIndexId, true, NULL, 1, key);
|
||||
} else {
|
||||
ScanKeyInit(&key[0], Anum_pg_constraint_conrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(ownerId));
|
||||
|
||||
scan = systable_beginscan(conRel, ConstraintRelidIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(conRel, ConstraintRelidIndexId, true, NULL, 1, key);
|
||||
}
|
||||
|
||||
while (HeapTupleIsValid((tup = systable_getnext(scan)))) {
|
||||
|
|
@ -721,7 +721,7 @@ Oid get_relation_constraint_oid(Oid relid, const char* conname, bool missing_ok)
|
|||
|
||||
ScanKeyInit(&skey[0], Anum_pg_constraint_conrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relid));
|
||||
|
||||
scan = systable_beginscan(pg_constraint, ConstraintRelidIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(pg_constraint, ConstraintRelidIndexId, true, NULL, 1, skey);
|
||||
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
Form_pg_constraint con = (Form_pg_constraint)GETSTRUCT(tuple);
|
||||
|
|
@ -770,7 +770,7 @@ Oid get_domain_constraint_oid(Oid typid, const char* conname, bool missing_ok)
|
|||
|
||||
ScanKeyInit(&skey[0], Anum_pg_constraint_contypid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(typid));
|
||||
|
||||
scan = systable_beginscan(pg_constraint, ConstraintTypidIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(pg_constraint, ConstraintTypidIndexId, true, NULL, 1, skey);
|
||||
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
Form_pg_constraint con = (Form_pg_constraint)GETSTRUCT(tuple);
|
||||
|
|
@ -824,7 +824,7 @@ bool check_functional_grouping(Oid relid, Index varno, Index varlevelsup, List*
|
|||
|
||||
ScanKeyInit(&skey[0], Anum_pg_constraint_conrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relid));
|
||||
|
||||
scan = systable_beginscan(pg_constraint, ConstraintRelidIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(pg_constraint, ConstraintRelidIndexId, true, NULL, 1, skey);
|
||||
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
Form_pg_constraint con = (Form_pg_constraint)GETSTRUCT(tuple);
|
||||
|
|
@ -914,7 +914,7 @@ List* get_parse_dependency_rel_list(List* conids)
|
|||
Oid conid = lfirst_oid(lc);
|
||||
ScanKeyInit(&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, conid);
|
||||
|
||||
scan = systable_beginscan(pg_constraint, ConstraintOidIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(pg_constraint, ConstraintOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
/* Only one record should be qualified, and get the relid */
|
||||
if (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ void AlterSetting(Oid databaseid, Oid roleid, VariableSetStmt* setstmt)
|
|||
ScanKeyInit(
|
||||
&scankey[0], Anum_pg_db_role_setting_setdatabase, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(databaseid));
|
||||
ScanKeyInit(&scankey[1], Anum_pg_db_role_setting_setrole, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(roleid));
|
||||
scan = systable_beginscan(rel, DbRoleSettingDatidRolidIndexId, true, SnapshotNow, 2, scankey);
|
||||
scan = systable_beginscan(rel, DbRoleSettingDatidRolidIndexId, true, NULL, 2, scankey);
|
||||
tuple = systable_getnext(scan);
|
||||
|
||||
/*
|
||||
|
|
@ -238,7 +238,7 @@ void ApplySetting(Oid databaseid, Oid roleid, Relation relsetting, GucSource sou
|
|||
&keys[0], Anum_pg_db_role_setting_setdatabase, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(databaseid));
|
||||
ScanKeyInit(&keys[1], Anum_pg_db_role_setting_setrole, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(roleid));
|
||||
|
||||
scan = systable_beginscan(relsetting, DbRoleSettingDatidRolidIndexId, true, SnapshotNow, 2, keys);
|
||||
scan = systable_beginscan(relsetting, DbRoleSettingDatidRolidIndexId, true, NULL, 2, keys);
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
bool isnull = false;
|
||||
Datum datum;
|
||||
|
|
|
|||
|
|
@ -250,7 +250,7 @@ long deleteDependencyRecordsFor(Oid classId, Oid objectId, bool skipExtensionDep
|
|||
ScanKeyInit(&key[0], Anum_pg_depend_classid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(classId));
|
||||
ScanKeyInit(&key[1], Anum_pg_depend_objid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(objectId));
|
||||
|
||||
scan = systable_beginscan(depRel, DependDependerIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(depRel, DependDependerIndexId, true, NULL, 2, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
if (skipExtensionDeps && ((Form_pg_depend)GETSTRUCT(tup))->deptype == DEPENDENCY_EXTENSION)
|
||||
|
|
@ -291,7 +291,7 @@ long deleteDependencyRecordsForClass(Oid classId, Oid objectId, Oid refclassId,
|
|||
ScanKeyInit(&key[0], Anum_pg_depend_classid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(classId));
|
||||
ScanKeyInit(&key[1], Anum_pg_depend_objid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(objectId));
|
||||
|
||||
scan = systable_beginscan(depRel, DependDependerIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(depRel, DependDependerIndexId, true, NULL, 2, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
Form_pg_depend depform = (Form_pg_depend)GETSTRUCT(tup);
|
||||
|
|
@ -361,7 +361,7 @@ long changeDependencyFor(Oid classId, Oid objectId, Oid refClassId, Oid oldRefOb
|
|||
ScanKeyInit(&key[0], Anum_pg_depend_classid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(classId));
|
||||
ScanKeyInit(&key[1], Anum_pg_depend_objid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(objectId));
|
||||
|
||||
scan = systable_beginscan(depRel, DependDependerIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(depRel, DependDependerIndexId, true, NULL, 2, key);
|
||||
|
||||
while (HeapTupleIsValid((tup = systable_getnext(scan)))) {
|
||||
Form_pg_depend depform = (Form_pg_depend)GETSTRUCT(tup);
|
||||
|
|
@ -420,7 +420,7 @@ static bool isObjectPinned(const ObjectAddress* object, Relation rel)
|
|||
|
||||
ScanKeyInit(&key[1], Anum_pg_depend_refobjid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(object->objectId));
|
||||
|
||||
scan = systable_beginscan(rel, DependReferenceIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(rel, DependReferenceIndexId, true, NULL, 2, key);
|
||||
|
||||
/*
|
||||
* Since we won't generate additional pg_depend entries for pinned
|
||||
|
|
@ -469,7 +469,7 @@ Oid getExtensionOfObject(Oid classId, Oid objectId)
|
|||
ScanKeyInit(&key[0], Anum_pg_depend_classid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(classId));
|
||||
ScanKeyInit(&key[1], Anum_pg_depend_objid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(objectId));
|
||||
|
||||
scan = systable_beginscan(depRel, DependDependerIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(depRel, DependDependerIndexId, true, NULL, 2, key);
|
||||
|
||||
while (HeapTupleIsValid((tup = systable_getnext(scan)))) {
|
||||
Form_pg_depend depform = (Form_pg_depend)GETSTRUCT(tup);
|
||||
|
|
@ -511,7 +511,7 @@ bool sequenceIsOwned(Oid seqId, Oid* tableId, int32* colId)
|
|||
ScanKeyInit(&key[0], Anum_pg_depend_classid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationRelationId));
|
||||
ScanKeyInit(&key[1], Anum_pg_depend_objid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(seqId));
|
||||
|
||||
scan = systable_beginscan(depRel, DependDependerIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(depRel, DependDependerIndexId, true, NULL, 2, key);
|
||||
|
||||
while (HeapTupleIsValid((tup = systable_getnext(scan)))) {
|
||||
Form_pg_depend depform = (Form_pg_depend)GETSTRUCT(tup);
|
||||
|
|
@ -559,7 +559,7 @@ List* getOwnedSequences(Oid relid, List* attrList)
|
|||
&key[0], Anum_pg_depend_refclassid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationRelationId));
|
||||
ScanKeyInit(&key[1], Anum_pg_depend_refobjid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relid));
|
||||
|
||||
scan = systable_beginscan(depRel, DependReferenceIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(depRel, DependReferenceIndexId, true, NULL, 2, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
Form_pg_depend deprec = (Form_pg_depend)GETSTRUCT(tup);
|
||||
|
|
@ -612,7 +612,7 @@ Oid get_constraint_index(Oid constraintId)
|
|||
ScanKeyInit(&key[1], Anum_pg_depend_refobjid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(constraintId));
|
||||
ScanKeyInit(&key[2], Anum_pg_depend_refobjsubid, BTEqualStrategyNumber, F_INT4EQ, Int32GetDatum(0));
|
||||
|
||||
scan = systable_beginscan(depRel, DependReferenceIndexId, true, SnapshotNow, 3, key);
|
||||
scan = systable_beginscan(depRel, DependReferenceIndexId, true, NULL, 3, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
Form_pg_depend deprec = (Form_pg_depend)GETSTRUCT(tup);
|
||||
|
|
@ -657,7 +657,7 @@ Oid get_index_constraint(Oid indexId)
|
|||
ScanKeyInit(&key[1], Anum_pg_depend_objid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(indexId));
|
||||
ScanKeyInit(&key[2], Anum_pg_depend_objsubid, BTEqualStrategyNumber, F_INT4EQ, Int32GetDatum(0));
|
||||
|
||||
scan = systable_beginscan(depRel, DependDependerIndexId, true, SnapshotNow, 3, key);
|
||||
scan = systable_beginscan(depRel, DependDependerIndexId, true, NULL, 3, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
Form_pg_depend deprec = (Form_pg_depend)GETSTRUCT(tup);
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ void EnumValuesDelete(Oid enumTypeOid)
|
|||
|
||||
ScanKeyInit(&key[0], Anum_pg_enum_enumtypid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(enumTypeOid));
|
||||
|
||||
scan = systable_beginscan(pg_enum, EnumTypIdLabelIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(pg_enum, EnumTypIdLabelIndexId, true, NULL, 1, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
simple_heap_delete(pg_enum, &tup->t_self);
|
||||
|
|
|
|||
|
|
@ -389,7 +389,7 @@ Oid searchHashBucketByBucketid(oidvector *bucketlist, Oid bucketid)
|
|||
BTEqualStrategyNumber, F_INT4EQ,
|
||||
Int32GetDatum(bucketlist->dim1));
|
||||
|
||||
scan = systable_beginscan(pg_hashbucket, HashBucketBidIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(pg_hashbucket, HashBucketBidIndexId, true, NULL, 3, key);
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
Datum bucketDatum;
|
||||
bool isnull = false;
|
||||
|
|
@ -440,7 +440,7 @@ text* searchMergeListByRelid(Oid reloid, bool *find, bool retresult)
|
|||
BTEqualStrategyNumber, F_OIDEQ,
|
||||
ObjectIdGetDatum(reloid));
|
||||
|
||||
scan = systable_beginscan(pgxc_class_rel, PgxcClassPgxcRelIdIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(pgxc_class_rel, PgxcClassPgxcRelIdIndexId, true, NULL, 1, key);
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
Datum pgxcDatum;
|
||||
bool isnull = false;
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ List* find_inheritance_children(Oid parentrelId, LOCKMODE lockmode)
|
|||
|
||||
ScanKeyInit(&key[0], Anum_pg_inherits_inhparent, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(parentrelId));
|
||||
|
||||
scan = systable_beginscan(relation, InheritsParentIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(relation, InheritsParentIndexId, true, NULL, 1, key);
|
||||
|
||||
while ((inheritsTuple = systable_getnext(scan)) != NULL) {
|
||||
inhrelid = ((Form_pg_inherits)GETSTRUCT(inheritsTuple))->inhrelid;
|
||||
|
|
@ -297,7 +297,7 @@ bool typeInheritsFrom(Oid subclassTypeId, Oid superclassTypeId)
|
|||
|
||||
ScanKeyInit(&skey, Anum_pg_inherits_inhrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(this_relid));
|
||||
|
||||
inhscan = systable_beginscan(inhrel, InheritsRelidSeqnoIndexId, true, SnapshotNow, 1, &skey);
|
||||
inhscan = systable_beginscan(inhrel, InheritsRelidSeqnoIndexId, true, NULL, 1, &skey);
|
||||
|
||||
while ((inhtup = systable_getnext(inhscan)) != NULL) {
|
||||
Form_pg_inherits inh = (Form_pg_inherits)GETSTRUCT(inhtup);
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ void LargeObjectDrop(Oid loid)
|
|||
*/
|
||||
ScanKeyInit(&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(loid));
|
||||
|
||||
scan = systable_beginscan(pg_lo_meta, LargeObjectMetadataOidIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(pg_lo_meta, LargeObjectMetadataOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
tuple = systable_getnext(scan);
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
|
|
@ -110,7 +110,7 @@ void LargeObjectDrop(Oid loid)
|
|||
*/
|
||||
ScanKeyInit(&skey[0], Anum_pg_largeobject_loid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(loid));
|
||||
|
||||
scan = systable_beginscan(pg_largeobject, LargeObjectLOidPNIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(pg_largeobject, LargeObjectLOidPNIndexId, true, NULL, 1, skey);
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
simple_heap_delete(pg_largeobject, &tuple->t_self);
|
||||
}
|
||||
|
|
@ -140,7 +140,7 @@ void LargeObjectAlterOwner(Oid loid, Oid newOwnerId)
|
|||
|
||||
ScanKeyInit(&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(loid));
|
||||
|
||||
scan = systable_beginscan(pg_lo_meta, LargeObjectMetadataOidIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(pg_lo_meta, LargeObjectMetadataOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
oldtup = systable_getnext(scan);
|
||||
if (!HeapTupleIsValid(oldtup))
|
||||
|
|
@ -232,7 +232,7 @@ bool LargeObjectExists(Oid loid)
|
|||
|
||||
pg_lo_meta = heap_open(LargeObjectMetadataRelationId, AccessShareLock);
|
||||
|
||||
sd = systable_beginscan(pg_lo_meta, LargeObjectMetadataOidIndexId, true, SnapshotNow, 1, skey);
|
||||
sd = systable_beginscan(pg_lo_meta, LargeObjectMetadataOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
tuple = systable_getnext(sd);
|
||||
if (HeapTupleIsValid(tuple))
|
||||
|
|
|
|||
|
|
@ -694,7 +694,7 @@ List* getPartitionObjectIdList(Oid relid, char relkind)
|
|||
ScanKeyInit(&key[0], Anum_pg_partition_parttype, BTEqualStrategyNumber, F_CHAREQ, CharGetDatum(relkind));
|
||||
ScanKeyInit(&key[1], Anum_pg_partition_parentid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relid));
|
||||
|
||||
scan = systable_beginscan(relation, PartitionParentOidIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(relation, PartitionParentOidIndexId, true, NULL, 2, key);
|
||||
while (HeapTupleIsValid((tuple = systable_getnext(scan)))) {
|
||||
partitionid = HeapTupleGetOid(tuple);
|
||||
|
||||
|
|
@ -728,7 +728,7 @@ List* searchPartitionIndexesByblid(Oid blid)
|
|||
|
||||
ScanKeyInit(&key[0], Anum_pg_partition_indextblid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(blid));
|
||||
|
||||
scan = systable_beginscan(partRel, PartitionIndexTableIdIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(partRel, PartitionIndexTableIdIndexId, true, NULL, 1, key);
|
||||
while (HeapTupleIsValid((tup = systable_getnext(scan)))) {
|
||||
dtp = heap_copytuple(tup);
|
||||
l = lappend(l, dtp);
|
||||
|
|
@ -761,7 +761,18 @@ List* searchPgPartitionByParentId(char parttype, Oid parentId)
|
|||
ScanKeyInit(&key[0], Anum_pg_partition_parttype, BTEqualStrategyNumber, F_CHAREQ, CharGetDatum(parttype));
|
||||
ScanKeyInit(&key[1], Anum_pg_partition_parentid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(parentId));
|
||||
|
||||
scan = systable_beginscan(pg_partition, PartitionParentOidIndexId, true, SnapshotNow, 2, key);
|
||||
/*
|
||||
* The caller might need a tuple that's newer than the one the historic
|
||||
* snapshot; currently the only case requiring to do so is looking up the
|
||||
* relfilenode of non mapped system relations during decoding.
|
||||
*/
|
||||
Snapshot snapshot = NULL;
|
||||
snapshot = SnapshotNow;
|
||||
if (HistoricSnapshotActive()) {
|
||||
snapshot = GetCatalogSnapshot();
|
||||
}
|
||||
|
||||
scan = systable_beginscan(pg_partition, PartitionParentOidIndexId, true, snapshot, 2, key);
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
dtuple = heap_copytuple(tuple);
|
||||
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ void RangeDelete(Oid rangeTypeOid)
|
|||
|
||||
ScanKeyInit(&key[0], Anum_pg_range_rngtypid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(rangeTypeOid));
|
||||
|
||||
scan = systable_beginscan(pg_range, RangeTypidIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(pg_range, RangeTypidIndexId, true, NULL, 1, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
simple_heap_delete(pg_range, &tup->t_self);
|
||||
|
|
|
|||
|
|
@ -212,7 +212,7 @@ static void shdepChangeDep(Relation sdepRel, Oid classid, Oid objid, int32 objsu
|
|||
ScanKeyInit(&key[2], Anum_pg_shdepend_objid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(objid));
|
||||
ScanKeyInit(&key[3], Anum_pg_shdepend_objsubid, BTEqualStrategyNumber, F_INT4EQ, Int32GetDatum(objsubid));
|
||||
|
||||
scan = systable_beginscan(sdepRel, SharedDependDependerIndexId, true, SnapshotNow, 4, key);
|
||||
scan = systable_beginscan(sdepRel, SharedDependDependerIndexId, true, NULL, 4, key);
|
||||
|
||||
while ((scantup = systable_getnext(scan)) != NULL) {
|
||||
/* Ignore if not of the target dependency type */
|
||||
|
|
@ -478,7 +478,7 @@ SysScanDesc initAndGetScanByRefId(Relation sdepRel, Oid classId, Oid objectId)
|
|||
ScanKeyInit(&key[0], Anum_pg_shdepend_refclassid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(classId));
|
||||
ScanKeyInit(&key[1], Anum_pg_shdepend_refobjid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(objectId));
|
||||
|
||||
return systable_beginscan(sdepRel, SharedDependReferenceIndexId, true, SnapshotNow, NumberOfReferenceKey, key);
|
||||
return systable_beginscan(sdepRel, SharedDependReferenceIndexId, true, NULL, NumberOfReferenceKey, key);
|
||||
}
|
||||
|
||||
SysScanDesc initAndGetScanByDependerIndexId(
|
||||
|
|
@ -511,7 +511,7 @@ SysScanDesc initAndGetScanByDependerIndexId(
|
|||
}
|
||||
}
|
||||
|
||||
return systable_beginscan(sdepRel, SharedDependDependerIndexId, true, SnapshotNow, maxAttributeId, key);
|
||||
return systable_beginscan(sdepRel, SharedDependDependerIndexId, true, NULL, maxAttributeId, key);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -708,7 +708,7 @@ void copyTemplateDependencies(Oid templateDbId, Oid newDbId)
|
|||
/* Scan all entries with dbid = templateDbId */
|
||||
ScanKeyInit(&key[0], Anum_pg_shdepend_dbid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(templateDbId));
|
||||
|
||||
scan = systable_beginscan(sdepRel, SharedDependDependerIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(sdepRel, SharedDependDependerIndexId, true, NULL, 1, key);
|
||||
|
||||
/* Set up to copy the tuples except for inserting newDbId */
|
||||
rc = memset_s(values, sizeof(values), 0, sizeof(values));
|
||||
|
|
@ -788,7 +788,7 @@ void dropDatabaseDependencies(Oid databaseId)
|
|||
*/
|
||||
ScanKeyInit(&key[0], Anum_pg_shdepend_dbid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(databaseId));
|
||||
/* We leave the other index fields unspecified */
|
||||
scan = systable_beginscan(sdepRel, SharedDependDependerIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(sdepRel, SharedDependDependerIndexId, true, NULL, 1, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
#ifdef ENABLE_MOT
|
||||
|
|
@ -918,7 +918,7 @@ static void shdepDropDependency(Relation sdepRel, Oid classId, Oid objectId, int
|
|||
nkeys = 4;
|
||||
}
|
||||
|
||||
scan = systable_beginscan(sdepRel, SharedDependDependerIndexId, true, SnapshotNow, nkeys, key);
|
||||
scan = systable_beginscan(sdepRel, SharedDependDependerIndexId, true, NULL, nkeys, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
Form_pg_shdepend shdepForm = (Form_pg_shdepend)GETSTRUCT(tup);
|
||||
|
|
@ -1410,7 +1410,7 @@ bool CheckDependencyOnRespool(Oid classId, Oid refobjectId, List** foundlist, bo
|
|||
&key[0], Anum_pg_shdepend_refclassid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(ResourcePoolRelationId));
|
||||
ScanKeyInit(&key[1], Anum_pg_shdepend_refobjid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(refobjectId));
|
||||
|
||||
scan = systable_beginscan(sdepRel, SharedDependReferenceIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(sdepRel, SharedDependReferenceIndexId, true, NULL, 2, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
Form_pg_shdepend sdepForm = (Form_pg_shdepend)GETSTRUCT(tup);
|
||||
|
|
|
|||
|
|
@ -425,7 +425,7 @@ bool RelationRedisCheck(Relation rel)
|
|||
&skey, Anum_pgxc_class_pcrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(rel)));
|
||||
|
||||
pcrel = heap_open(PgxcClassRelationId, AccessShareLock);
|
||||
pcscan = systable_beginscan(pcrel, PgxcClassPgxcRelIdIndexId, true, SnapshotNow, 1, &skey);
|
||||
pcscan = systable_beginscan(pcrel, PgxcClassPgxcRelIdIndexId, true, NULL, 1, &skey);
|
||||
htup = systable_getnext(pcscan);
|
||||
if (!HeapTupleIsValid(htup)) {
|
||||
/* Assume local relation only */
|
||||
|
|
|
|||
|
|
@ -992,7 +992,7 @@ void remove_cmk_args_by_id(Oid id)
|
|||
HeapTuple tuple;
|
||||
|
||||
ScanKeyInit(&scankey, ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(id));
|
||||
scan = systable_beginscan(ce_rel, ClientLogicGlobalSettingsArgsOidIndexId, true, SnapshotNow, 1, &scankey);
|
||||
scan = systable_beginscan(ce_rel, ClientLogicGlobalSettingsArgsOidIndexId, true, NULL, 1, &scankey);
|
||||
|
||||
tuple = systable_getnext(scan);
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
|
|
@ -1010,7 +1010,7 @@ void remove_cek_args_by_id(Oid id)
|
|||
HeapTuple tuple;
|
||||
|
||||
ScanKeyInit(&scankey, ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(id));
|
||||
scan = systable_beginscan(ce_rel, ClientLogicColumnSettingsArgsOidIndexId, true, SnapshotNow, 1, &scankey);
|
||||
scan = systable_beginscan(ce_rel, ClientLogicColumnSettingsArgsOidIndexId, true, NULL, 1, &scankey);
|
||||
|
||||
tuple = systable_getnext(scan);
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
|
|
@ -1032,7 +1032,7 @@ void get_global_setting_description(StringInfo buffer, const ObjectAddress *obje
|
|||
cmKeys = heap_open(ClientLogicGlobalSettingsId, AccessShareLock);
|
||||
|
||||
ScanKeyInit(&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(object->objectId));
|
||||
rcscan = systable_beginscan(cmKeys, ClientLogicGlobalSettingsOidIndexId, true, SnapshotNow, 1, skey);
|
||||
rcscan = systable_beginscan(cmKeys, ClientLogicGlobalSettingsOidIndexId, true, NULL, 1, skey);
|
||||
tup = systable_getnext(rcscan);
|
||||
if (!HeapTupleIsValid(tup)) {
|
||||
systable_endscan(rcscan);
|
||||
|
|
@ -1057,7 +1057,7 @@ void get_column_setting_description(StringInfo buffer, const ObjectAddress *obje
|
|||
column_setting_rel = heap_open(ClientLogicColumnSettingsId, AccessShareLock);
|
||||
|
||||
ScanKeyInit(&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(object->objectId));
|
||||
rcscan = systable_beginscan(column_setting_rel, ClientLogicColumnSettingsOidIndexId, true, SnapshotNow, 1, skey);
|
||||
rcscan = systable_beginscan(column_setting_rel, ClientLogicColumnSettingsOidIndexId, true, NULL, 1, skey);
|
||||
tup = systable_getnext(rcscan);
|
||||
if (!HeapTupleIsValid(tup)) {
|
||||
systable_endscan(rcscan);
|
||||
|
|
@ -1105,7 +1105,7 @@ void get_global_setting_args_description(StringInfo buffer, const ObjectAddress
|
|||
rel = heap_open(ClientLogicGlobalSettingsArgsId, AccessShareLock);
|
||||
|
||||
ScanKeyInit(&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(object->objectId));
|
||||
rcscan = systable_beginscan(rel, ClientLogicGlobalSettingsArgsOidIndexId, true, SnapshotNow, 1, skey);
|
||||
rcscan = systable_beginscan(rel, ClientLogicGlobalSettingsArgsOidIndexId, true, NULL, 1, skey);
|
||||
tup = systable_getnext(rcscan);
|
||||
if (!HeapTupleIsValid(tup)) {
|
||||
systable_endscan(rcscan);
|
||||
|
|
@ -1129,7 +1129,7 @@ void get_column_setting_args_description(StringInfo buffer, const ObjectAddress
|
|||
rel = heap_open(ClientLogicColumnSettingsArgsId, AccessShareLock);
|
||||
|
||||
ScanKeyInit(&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(object->objectId));
|
||||
rcscan = systable_beginscan(rel, ClientLogicColumnSettingsArgsOidIndexId, true, SnapshotNow, 1, skey);
|
||||
rcscan = systable_beginscan(rel, ClientLogicColumnSettingsArgsOidIndexId, true, NULL, 1, skey);
|
||||
tup = systable_getnext(rcscan);
|
||||
if (!HeapTupleIsValid(tup)) {
|
||||
systable_endscan(rcscan);
|
||||
|
|
|
|||
|
|
@ -3972,7 +3972,7 @@ static bool is_rel_child_of_rel(RangeTblEntry* child_rte, RangeTblEntry* parent_
|
|||
/* Scan pg_inherits and get all the subclass OIDs one by one. */
|
||||
relation = heap_open(InheritsRelationId, AccessShareLock);
|
||||
ScanKeyInit(&key[0], Anum_pg_inherits_inhparent, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(parentOID));
|
||||
scan = systable_beginscan(relation, InheritsParentIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(relation, InheritsParentIndexId, true, NULL, 1, key);
|
||||
|
||||
while ((inheritsTuple = systable_getnext(scan)) != NULL) {
|
||||
inhrelid = ((Form_pg_inherits)GETSTRUCT(inheritsTuple))->inhrelid;
|
||||
|
|
|
|||
|
|
@ -963,7 +963,7 @@ void RelationBuildLocator(Relation rel)
|
|||
&skey, Anum_pgxc_class_pcrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(rel)));
|
||||
|
||||
pcrel = heap_open(PgxcClassRelationId, AccessShareLock);
|
||||
pcscan = systable_beginscan(pcrel, PgxcClassPgxcRelIdIndexId, true, SnapshotNow, 1, &skey);
|
||||
pcscan = systable_beginscan(pcrel, PgxcClassPgxcRelIdIndexId, true, NULL, 1, &skey);
|
||||
htup = systable_getnext(pcscan);
|
||||
if (!HeapTupleIsValid(htup)) {
|
||||
/* Assume local relation only */
|
||||
|
|
|
|||
|
|
@ -3367,7 +3367,7 @@ char* PgxcGroupGetFirstLogicCluster()
|
|||
|
||||
ScanKeyInit(&skey[0], ObjectIdAttributeNumber, BTGreaterStrategyNumber, F_OIDGT, ObjectIdGetDatum(0));
|
||||
|
||||
scan = systable_beginscan(pgxc_group_rel, PgxcGroupOidIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(pgxc_group_rel, PgxcGroupOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
while ((tup = systable_getnext(scan)) != NULL) {
|
||||
group_kind = get_group_kind(tup);
|
||||
|
|
@ -4614,7 +4614,7 @@ List* PgxcGroupGetLogicClusterList(Bitmapset* nodeids)
|
|||
}
|
||||
|
||||
ScanKeyInit(&skey[0], ObjectIdAttributeNumber, BTGreaterStrategyNumber, F_OIDGT, ObjectIdGetDatum(0));
|
||||
scan = systable_beginscan(pgxc_group_rel, PgxcGroupOidIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(pgxc_group_rel, PgxcGroupOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
while ((tup = systable_getnext(scan)) != NULL) {
|
||||
Oid group_oid = HeapTupleGetOid(tup);
|
||||
|
|
|
|||
|
|
@ -1174,7 +1174,7 @@ void PgxcNodeAlter(AlterNodeStmt* stmt)
|
|||
|
||||
HeapTuple tmptup;
|
||||
TupleDesc pg_node_dsc = RelationGetDescr(rel);
|
||||
SysScanDesc scan = systable_beginscan(rel, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
SysScanDesc scan = systable_beginscan(rel, InvalidOid, false, NULL, 0, NULL);
|
||||
while (HeapTupleIsValid((tmptup = systable_getnext(scan)))) {
|
||||
bool isnull = true;
|
||||
Oid scanoid = HeapTupleGetOid(tmptup);
|
||||
|
|
|
|||
|
|
@ -8210,7 +8210,7 @@ bool IsInheritor(Oid relid)
|
|||
|
||||
pginherits = heap_open(InheritsRelationId, AccessShareLock);
|
||||
ScanKeyInit(&key[0], Anum_pg_inherits_inhrelid, BTEqualStrategyNumber, F_OIDEQ, relid);
|
||||
scan = systable_beginscan(pginherits, InheritsRelidSeqnoIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(pginherits, InheritsRelidSeqnoIndexId, true, NULL, 1, key);
|
||||
if (HeapTupleIsValid(systable_getnext(scan))) {
|
||||
ret = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ Datum globalsettingin(PG_FUNCTION_ARGS)
|
|||
CStringGetDatum(key_name_or_oid));
|
||||
|
||||
hdesc = heap_open(ClientLogicGlobalSettingsId, AccessShareLock);
|
||||
sysscan = systable_beginscan(hdesc, ClientLogicGlobalSettingsNameIndexId, true, SnapshotNow, 1, skey);
|
||||
sysscan = systable_beginscan(hdesc, ClientLogicGlobalSettingsNameIndexId, true, NULL, 1, skey);
|
||||
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(sysscan))) {
|
||||
result = Oid HeapTupleGetOid(tuple);
|
||||
|
|
@ -166,7 +166,7 @@ Datum columnsettingin(PG_FUNCTION_ARGS)
|
|||
CStringGetDatum(key_name_or_oid));
|
||||
|
||||
hdesc = heap_open(ClientLogicColumnSettingsId, AccessShareLock);
|
||||
sysscan = systable_beginscan(hdesc, ClientLogicColumnSettingsNameIndexId, true, SnapshotNow, 1, skey);
|
||||
sysscan = systable_beginscan(hdesc, ClientLogicColumnSettingsNameIndexId, true, NULL, 1, skey);
|
||||
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(sysscan))) {
|
||||
result = Oid HeapTupleGetOid(tuple);
|
||||
|
|
|
|||
|
|
@ -518,7 +518,7 @@ static double calculate_source_database_size()
|
|||
/*scan the pg_class to fetch the reltuples of every relation.*/
|
||||
class_rel = heap_open(RelationRelationId, AccessShareLock);
|
||||
pg_class_tuple_desc = class_rel->rd_att;
|
||||
scan = systable_beginscan(class_rel, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
scan = systable_beginscan(class_rel, InvalidOid, false, NULL, 0, NULL);
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
tuple_class = (Form_pg_class)GETSTRUCT(tuple);
|
||||
Oid relid = HeapTupleHeaderGetOid(tuple->t_data);
|
||||
|
|
|
|||
|
|
@ -921,7 +921,7 @@ List* es_explore_declared_stats(Oid relid, VacuumStmt* vacstmt, bool inh)
|
|||
ScanKeyInit(&key[2], Anum_pg_statistic_ext_stainherit, BTEqualStrategyNumber, F_BOOLEQ, BoolGetDatum(inh));
|
||||
|
||||
Relation relation = heap_open(StatisticExtRelationId, AccessShareLock);
|
||||
SysScanDesc scan = systable_beginscan(relation, StatisticExtRelidKindInhKeyIndexId, true, SnapshotNow, 3, key);
|
||||
SysScanDesc scan = systable_beginscan(relation, StatisticExtRelidKindInhKeyIndexId, true, NULL, 3, key);
|
||||
|
||||
List* es_list = NIL;
|
||||
for (HeapTuple tuple = NULL; NULL != (tuple = systable_getnext(scan));) {
|
||||
|
|
@ -1114,7 +1114,7 @@ static List* es_search_extended_statistics(
|
|||
|
||||
Relation relation = heap_open(StatisticExtRelationId, AccessShareLock);
|
||||
SysScanDesc scan =
|
||||
systable_beginscan(relation, StatisticExtRelidKindInhKeyIndexId, true, SnapshotNow, num_key, key);
|
||||
systable_beginscan(relation, StatisticExtRelidKindInhKeyIndexId, true, NULL, num_key, key);
|
||||
|
||||
int count = 0;
|
||||
for (HeapTuple tuple = NULL; NULL != (tuple = systable_getnext(scan));) {
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ static Datum regprocin_booststrap(char* procname)
|
|||
ScanKeyInit(&skey[0], Anum_pg_proc_proname, BTEqualStrategyNumber, F_NAMEEQ, CStringGetDatum(procname));
|
||||
|
||||
hdesc = heap_open(ProcedureRelationId, AccessShareLock);
|
||||
sysscan = systable_beginscan(hdesc, ProcedureNameArgsNspIndexId, true, SnapshotNow, 1, skey);
|
||||
sysscan = systable_beginscan(hdesc, ProcedureNameArgsNspIndexId, true, NULL, 1, skey);
|
||||
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(sysscan))) {
|
||||
result = (RegProcedure)HeapTupleGetOid(tuple);
|
||||
|
|
@ -416,7 +416,7 @@ Datum regoperin(PG_FUNCTION_ARGS)
|
|||
&skey[0], Anum_pg_operator_oprname, BTEqualStrategyNumber, F_NAMEEQ, CStringGetDatum(opr_name_or_oid));
|
||||
|
||||
hdesc = heap_open(OperatorRelationId, AccessShareLock);
|
||||
sysscan = systable_beginscan(hdesc, OperatorNameNspIndexId, true, SnapshotNow, 1, skey);
|
||||
sysscan = systable_beginscan(hdesc, OperatorNameNspIndexId, true, NULL, 1, skey);
|
||||
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(sysscan))) {
|
||||
result = HeapTupleGetOid(tuple);
|
||||
|
|
@ -730,7 +730,7 @@ Datum regclassin(PG_FUNCTION_ARGS)
|
|||
&skey[0], Anum_pg_class_relname, BTEqualStrategyNumber, F_NAMEEQ, CStringGetDatum(class_name_or_oid));
|
||||
|
||||
hdesc = heap_open(RelationRelationId, AccessShareLock);
|
||||
sysscan = systable_beginscan(hdesc, ClassNameNspIndexId, true, SnapshotNow, 1, skey);
|
||||
sysscan = systable_beginscan(hdesc, ClassNameNspIndexId, true, NULL, 1, skey);
|
||||
|
||||
if (HeapTupleIsValid(tuple = systable_getnext(sysscan)))
|
||||
result = HeapTupleGetOid(tuple);
|
||||
|
|
@ -877,7 +877,7 @@ Datum regtypein(PG_FUNCTION_ARGS)
|
|||
ScanKeyInit(&skey[0], Anum_pg_type_typname, BTEqualStrategyNumber, F_NAMEEQ, CStringGetDatum(typ_name_or_oid));
|
||||
|
||||
hdesc = heap_open(TypeRelationId, AccessShareLock);
|
||||
sysscan = systable_beginscan(hdesc, TypeNameNspIndexId, true, SnapshotNow, 1, skey);
|
||||
sysscan = systable_beginscan(hdesc, TypeNameNspIndexId, true, NULL, 1, skey);
|
||||
|
||||
if (HeapTupleIsValid(tuple = systable_getnext(sysscan)))
|
||||
result = HeapTupleGetOid(tuple);
|
||||
|
|
|
|||
|
|
@ -940,7 +940,7 @@ static void get_table_partitiondef(StringInfo query, StringInfo buf, Oid tableoi
|
|||
ScanKeyInit(&key[0], Anum_pg_partition_parttype, BTEqualStrategyNumber, F_CHAREQ, CharGetDatum(relkind));
|
||||
ScanKeyInit(&key[1], Anum_pg_partition_parentid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(tableoid));
|
||||
|
||||
scan = systable_beginscan(relation, PartitionParentOidIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(relation, PartitionParentOidIndexId, true, NULL, 2, key);
|
||||
while (HeapTupleIsValid((tuple = systable_getnext(scan)))) {
|
||||
int2vector* partVec = NULL;
|
||||
Datum datum = SysCacheGetAttr(PARTRELID, tuple, Anum_pg_partition_partkey, &isnull);
|
||||
|
|
@ -1208,7 +1208,7 @@ static int get_table_attribute(
|
|||
ScanKeyInit(
|
||||
&skey[0], Anum_pg_attrdef_adrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(tableoid));
|
||||
|
||||
adscan = systable_beginscan(attrdefDesc, AttrDefaultIndexId, true, SnapshotNow, 1, skey);
|
||||
adscan = systable_beginscan(attrdefDesc, AttrDefaultIndexId, true, NULL, 1, skey);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(adscan))) {
|
||||
attrdef = (Form_pg_attrdef)GETSTRUCT(tup);
|
||||
|
|
@ -1252,7 +1252,7 @@ char* printDistributeKey(Oid relOid)
|
|||
ScanKeyInit(&skey, Anum_pgxc_class_pcrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relOid));
|
||||
|
||||
pcrel = heap_open(PgxcClassRelationId, AccessShareLock);
|
||||
pcscan = systable_beginscan(pcrel, PgxcClassPgxcRelIdIndexId, true, SnapshotNow, 1, &skey);
|
||||
pcscan = systable_beginscan(pcrel, PgxcClassPgxcRelIdIndexId, true, NULL, 1, &skey);
|
||||
htup = systable_getnext(pcscan);
|
||||
|
||||
if (!HeapTupleIsValid(htup)) {
|
||||
|
|
@ -1551,7 +1551,7 @@ static void get_foreign_constraint_info(StringInfo buf, Oid tableoid, const char
|
|||
|
||||
ScanKeyInit(&skey[0], Anum_pg_constraint_conrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(tableoid));
|
||||
|
||||
scan = systable_beginscan(pg_constraint, ConstraintRelidIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(pg_constraint, ConstraintRelidIndexId, true, NULL, 1, skey);
|
||||
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
Form_pg_constraint con = (Form_pg_constraint)GETSTRUCT(tuple);
|
||||
|
|
@ -1606,7 +1606,7 @@ static void get_index_list_info(Oid tableoid, StringInfo buf, const char* relnam
|
|||
ScanKeyInit(&skey, Anum_pg_index_indrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(tableoid));
|
||||
|
||||
indrel = heap_open(IndexRelationId, AccessShareLock);
|
||||
indscan = systable_beginscan(indrel, IndexIndrelidIndexId, true, SnapshotNow, 1, &skey);
|
||||
indscan = systable_beginscan(indrel, IndexIndrelidIndexId, true, NULL, 1, &skey);
|
||||
|
||||
while (HeapTupleIsValid(htup = systable_getnext(indscan))) {
|
||||
Form_pg_index index = (Form_pg_index)GETSTRUCT(htup);
|
||||
|
|
@ -1899,7 +1899,7 @@ static void get_table_alter_info(
|
|||
|
||||
ScanKeyInit(&skey[0], Anum_pg_constraint_conrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(tableoid));
|
||||
|
||||
scan = systable_beginscan(pg_constraint, ConstraintRelidIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(pg_constraint, ConstraintRelidIndexId, true, NULL, 1, skey);
|
||||
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
Form_pg_constraint con = (Form_pg_constraint)GETSTRUCT(tuple);
|
||||
|
|
@ -2187,7 +2187,7 @@ static char* pg_get_tabledef_worker(Oid tableoid)
|
|||
|
||||
ScanKeyInit(&skey[0], Anum_pg_constraint_conrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(tableoid));
|
||||
|
||||
scan = systable_beginscan(pg_constraint, ConstraintRelidIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(pg_constraint, ConstraintRelidIndexId, true, NULL, 1, skey);
|
||||
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
Form_pg_constraint con = (Form_pg_constraint)GETSTRUCT(tuple);
|
||||
|
|
@ -2319,7 +2319,7 @@ static char* pg_get_triggerdef_worker(Oid trigid, bool pretty)
|
|||
|
||||
ScanKeyInit(&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(trigid));
|
||||
|
||||
tgscan = systable_beginscan(tgrel, TriggerOidIndexId, true, SnapshotNow, 1, skey);
|
||||
tgscan = systable_beginscan(tgrel, TriggerOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
ht_trig = systable_getnext(tgscan);
|
||||
|
||||
|
|
@ -3441,7 +3441,7 @@ Datum pg_get_serial_sequence(PG_FUNCTION_ARGS)
|
|||
ScanKeyInit(&key[1], Anum_pg_depend_refobjid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(tableOid));
|
||||
ScanKeyInit(&key[2], Anum_pg_depend_refobjsubid, BTEqualStrategyNumber, F_INT4EQ, Int32GetDatum(attnum));
|
||||
|
||||
scan = systable_beginscan(depRel, DependReferenceIndexId, true, SnapshotNow, 3, key);
|
||||
scan = systable_beginscan(depRel, DependReferenceIndexId, true, NULL, 3, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
Form_pg_depend deprec = (Form_pg_depend)GETSTRUCT(tup);
|
||||
|
|
@ -11136,7 +11136,7 @@ Datum getDistributeKey(PG_FUNCTION_ARGS)
|
|||
ScanKeyInit(&skey, Anum_pgxc_class_pcrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relOid));
|
||||
|
||||
pcrel = heap_open(PgxcClassRelationId, AccessShareLock);
|
||||
pcscan = systable_beginscan(pcrel, PgxcClassPgxcRelIdIndexId, true, SnapshotNow, 1, &skey);
|
||||
pcscan = systable_beginscan(pcrel, PgxcClassPgxcRelIdIndexId, true, NULL, 1, &skey);
|
||||
htup = systable_getnext(pcscan);
|
||||
|
||||
if (!HeapTupleIsValid(htup)) {
|
||||
|
|
|
|||
|
|
@ -1575,7 +1575,7 @@ static HeapTuple SearchCatCacheMiss(
|
|||
ereport(DEBUG1, (errmsg("cache->cc_reloid - %d", cache->cc_reloid)));
|
||||
|
||||
scandesc = systable_beginscan(
|
||||
relation, cache->cc_indexoid, IndexScanOK(cache, cur_skey), SnapshotNow, nkeys, cur_skey);
|
||||
relation, cache->cc_indexoid, IndexScanOK(cache, cur_skey), NULL, nkeys, cur_skey);
|
||||
|
||||
while (HeapTupleIsValid(ntp = systable_getnext(scandesc))) {
|
||||
ct = CatalogCacheCreateEntry(cache, ntp, arguments, hashValue, hashIndex, false);
|
||||
|
|
@ -2452,7 +2452,7 @@ CatCList* SearchCatCacheList(CatCache* cache, int nkeys, Datum v1, Datum v2, Dat
|
|||
relation = heap_open(cache->cc_reloid, AccessShareLock);
|
||||
|
||||
scandesc = systable_beginscan(
|
||||
relation, cache->cc_indexoid, IndexScanOK(cache, cur_skey), SnapshotNow, nkeys, cur_skey);
|
||||
relation, cache->cc_indexoid, IndexScanOK(cache, cur_skey), NULL, nkeys, cur_skey);
|
||||
|
||||
/* The list will be ordered iff we are doing an index scan */
|
||||
ordered = (scandesc->irel != NULL);
|
||||
|
|
|
|||
|
|
@ -3341,7 +3341,7 @@ static List* GetAllSliceTuples(Relation pgxcSliceRel, Oid tableOid)
|
|||
F_OIDEQ, ObjectIdGetDatum(tableOid));
|
||||
ScanKeyInit(&skey[1], Anum_pgxc_slice_type, BTEqualStrategyNumber,
|
||||
F_CHAREQ, CharGetDatum(PGXC_SLICE_TYPE_SLICE));
|
||||
sliceScan = systable_beginscan(pgxcSliceRel, PgxcSliceOrderIndexId, true, SnapshotNow, 2, skey);
|
||||
sliceScan = systable_beginscan(pgxcSliceRel, PgxcSliceOrderIndexId, true, NULL, 2, skey);
|
||||
while (HeapTupleIsValid((htup = systable_getnext(sliceScan)))) {
|
||||
dtup = heap_copytuple(htup);
|
||||
sliceList = lappend(sliceList, dtup);
|
||||
|
|
|
|||
|
|
@ -149,6 +149,10 @@ static HeapTuple ScanPgPartition(Oid targetPartId, bool indexOK, Snapshot snapsh
|
|||
(errcode(ERRCODE_UNDEFINED_DATABASE), errmsg("cannot read pg_class without having selected a database")));
|
||||
}
|
||||
|
||||
if (snapshot == NULL) {
|
||||
snapshot = GetCatalogSnapshot();
|
||||
}
|
||||
|
||||
/*
|
||||
* form a scan key
|
||||
*/
|
||||
|
|
@ -237,7 +241,7 @@ static Partition PartitionBuildDesc(Oid targetPartId, bool insertIt, bool isbukc
|
|||
/*
|
||||
* find the tuple in pg_class corresponding to the given relation id
|
||||
*/
|
||||
pg_partition_tuple = ScanPgPartition(targetPartId, true, SnapshotNow);
|
||||
pg_partition_tuple = ScanPgPartition(targetPartId, true, NULL);
|
||||
/*
|
||||
* if no such tuple exists, return NULL
|
||||
*/
|
||||
|
|
@ -378,7 +382,7 @@ Partition PartitionIdGetPartition(Oid partitionId, bool isbucket)
|
|||
|
||||
char* PartitionOidGetName(Oid partOid)
|
||||
{
|
||||
HeapTuple tuple = ScanPgPartition(partOid, true, SnapshotNow);
|
||||
HeapTuple tuple = ScanPgPartition(partOid, true, NULL);
|
||||
if (!HeapTupleIsValid(tuple)) {
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -394,7 +398,7 @@ char* PartitionOidGetName(Oid partOid)
|
|||
|
||||
Oid PartitionOidGetTablespace(Oid partOid)
|
||||
{
|
||||
HeapTuple tuple = ScanPgPartition(partOid, true, SnapshotNow);
|
||||
HeapTuple tuple = ScanPgPartition(partOid, true, NULL);
|
||||
if (!HeapTupleIsValid(tuple)) {
|
||||
return InvalidOid;
|
||||
}
|
||||
|
|
@ -1333,7 +1337,7 @@ static void PartitionReloadIndexInfo(Partition part)
|
|||
*/
|
||||
Assert(NULL == part->pd_smgr);
|
||||
|
||||
pg_partition_tuple = ScanPgPartition(PartitionGetPartid(part), true, SnapshotNow);
|
||||
pg_partition_tuple = ScanPgPartition(PartitionGetPartid(part), true, NULL);
|
||||
if (!HeapTupleIsValid(pg_partition_tuple)) {
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_NO_DATA),
|
||||
|
|
@ -2008,7 +2012,7 @@ bool PartitionMetadataDisabledClean(Relation pgPartition)
|
|||
&key[0], Anum_pg_partition_parttype, BTEqualStrategyNumber, F_CHAREQ, CharGetDatum(PART_OBJ_TYPE_PARTED_TABLE));
|
||||
|
||||
partTupdesc = RelationGetDescr(pgPartition);
|
||||
scan = systable_beginscan(pgPartition, PartitionParentOidIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(pgPartition, PartitionParentOidIndexId, true, NULL, 1, key);
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
bool isNull = false;
|
||||
Datum partOptions = fastgetattr(tuple, Anum_pg_partition_reloptions, partTupdesc, &isNull);
|
||||
|
|
|
|||
|
|
@ -1205,11 +1205,17 @@ HeapTuple ScanPgRelation(Oid targetRelId, bool indexOK, bool force_non_historic)
|
|||
pg_class_desc = heap_open(RelationRelationId, AccessShareLock);
|
||||
|
||||
/*
|
||||
* for logical decoding
|
||||
* The caller might need a tuple that's newer than the one the historic
|
||||
* snapshot; currently the only case requiring to do so is looking up the
|
||||
* relfilenode of non mapped system relations during decoding.
|
||||
*/
|
||||
snapshot = SnapshotNow;
|
||||
if (HistoricSnapshotActive())
|
||||
snapshot = GetCatalogSnapshot(RelationRelationId);
|
||||
if (HistoricSnapshotActive()) {
|
||||
if (force_non_historic)
|
||||
snapshot = GetNonHistoricCatalogSnapshot(RelationRelationId);
|
||||
else
|
||||
snapshot = GetCatalogSnapshot();
|
||||
}
|
||||
|
||||
/*
|
||||
* The caller might need a tuple that's newer than the one the historic
|
||||
|
|
@ -1389,6 +1395,15 @@ static void RelationBuildTupleDesc(Relation relation, bool onlyLoadInitDefVal)
|
|||
ObjectIdGetDatum(RelationGetRelid(relation)));
|
||||
ScanKeyInit(&skey[1], Anum_pg_attribute_attnum, BTGreaterStrategyNumber, F_INT2GT, Int16GetDatum(0));
|
||||
|
||||
/*
|
||||
* Using historical snapshot in logic decoding.
|
||||
*/
|
||||
Snapshot snapshot = NULL;
|
||||
snapshot = SnapshotNow;
|
||||
if (HistoricSnapshotActive()) {
|
||||
snapshot = GetCatalogSnapshot();
|
||||
}
|
||||
|
||||
/*
|
||||
* Open pg_attribute and begin a scan. Force heap scan if we haven't yet
|
||||
* built the critical relcache entries (this includes initdb and startup
|
||||
|
|
@ -1396,7 +1411,7 @@ static void RelationBuildTupleDesc(Relation relation, bool onlyLoadInitDefVal)
|
|||
*/
|
||||
pg_attribute_desc = heap_open(AttributeRelationId, AccessShareLock);
|
||||
pg_attribute_scan = systable_beginscan(
|
||||
pg_attribute_desc, AttributeRelidNumIndexId, u_sess->relcache_cxt.criticalRelcachesBuilt, SnapshotNow, 2, skey);
|
||||
pg_attribute_desc, AttributeRelidNumIndexId, u_sess->relcache_cxt.criticalRelcachesBuilt, snapshot, 2, skey);
|
||||
|
||||
/*
|
||||
* add attribute data to relation->rd_att
|
||||
|
|
@ -1651,7 +1666,7 @@ static void RelationBuildRuleLock(Relation relation)
|
|||
*/
|
||||
rewrite_desc = heap_open(RewriteRelationId, AccessShareLock);
|
||||
rewrite_tupdesc = RelationGetDescr(rewrite_desc);
|
||||
rewrite_scan = systable_beginscan(rewrite_desc, RewriteRelRulenameIndexId, true, SnapshotNow, 1, &key);
|
||||
rewrite_scan = systable_beginscan(rewrite_desc, RewriteRelRulenameIndexId, true, NULL, 1, &key);
|
||||
|
||||
while (HeapTupleIsValid(rewrite_tuple = systable_getnext(rewrite_scan))) {
|
||||
Form_pg_rewrite rewrite_form = (Form_pg_rewrite)GETSTRUCT(rewrite_tuple);
|
||||
|
|
@ -2619,7 +2634,7 @@ static OpClassCacheEnt* LookupOpclassInfo(Oid operatorClassOid, StrategyNumber n
|
|||
*/
|
||||
ScanKeyInit(&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(operatorClassOid));
|
||||
rel = heap_open(OperatorClassRelationId, AccessShareLock);
|
||||
scan = systable_beginscan(rel, OpclassOidIndexId, indexOK, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(rel, OpclassOidIndexId, indexOK, NULL, 1, skey);
|
||||
|
||||
if (HeapTupleIsValid(htup = systable_getnext(scan))) {
|
||||
Form_pg_opclass opclassform = (Form_pg_opclass)GETSTRUCT(htup);
|
||||
|
|
@ -2655,7 +2670,7 @@ static OpClassCacheEnt* LookupOpclassInfo(Oid operatorClassOid, StrategyNumber n
|
|||
F_OIDEQ,
|
||||
ObjectIdGetDatum(opcentry->opcintype));
|
||||
rel = heap_open(AccessMethodProcedureRelationId, AccessShareLock);
|
||||
scan = systable_beginscan(rel, AccessMethodProcedureIndexId, indexOK, SnapshotNow, 3, skey);
|
||||
scan = systable_beginscan(rel, AccessMethodProcedureIndexId, indexOK, NULL, 3, skey);
|
||||
|
||||
while (HeapTupleIsValid(htup = systable_getnext(scan))) {
|
||||
Form_pg_amproc amprocform = (Form_pg_amproc)GETSTRUCT(htup);
|
||||
|
|
@ -5022,7 +5037,7 @@ static void AttrDefaultFetch(Relation relation)
|
|||
&skey, Anum_pg_attrdef_adrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(relation)));
|
||||
|
||||
adrel = heap_open(AttrDefaultRelationId, AccessShareLock);
|
||||
adscan = systable_beginscan(adrel, AttrDefaultIndexId, true, SnapshotNow, 1, &skey);
|
||||
adscan = systable_beginscan(adrel, AttrDefaultIndexId, true, NULL, 1, &skey);
|
||||
found = 0;
|
||||
|
||||
while (HeapTupleIsValid(htup = systable_getnext(adscan))) {
|
||||
|
|
@ -5087,7 +5102,7 @@ static void CheckConstraintFetch(Relation relation)
|
|||
ObjectIdGetDatum(RelationGetRelid(relation)));
|
||||
|
||||
conrel = heap_open(ConstraintRelationId, AccessShareLock);
|
||||
conscan = systable_beginscan(conrel, ConstraintRelidIndexId, true, SnapshotNow, 1, skey);
|
||||
conscan = systable_beginscan(conrel, ConstraintRelidIndexId, true, NULL, 1, skey);
|
||||
|
||||
while (HeapTupleIsValid(htup = systable_getnext(conscan))) {
|
||||
Form_pg_constraint conform = (Form_pg_constraint)GETSTRUCT(htup);
|
||||
|
|
@ -5251,7 +5266,7 @@ List* RelationGetIndexList(Relation relation)
|
|||
&skey, Anum_pg_index_indrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(relation)));
|
||||
|
||||
indrel = heap_open(IndexRelationId, AccessShareLock);
|
||||
indscan = systable_beginscan(indrel, IndexIndrelidIndexId, true, SnapshotNow, 1, &skey);
|
||||
indscan = systable_beginscan(indrel, IndexIndrelidIndexId, true, NULL, 1, &skey);
|
||||
|
||||
while (HeapTupleIsValid(htup = systable_getnext(indscan))) {
|
||||
Form_pg_index index = (Form_pg_index)GETSTRUCT(htup);
|
||||
|
|
@ -5413,7 +5428,7 @@ int RelationGetIndexNum(Relation relation)
|
|||
&skey, Anum_pg_index_indrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(relation)));
|
||||
|
||||
indrel = heap_open(IndexRelationId, AccessShareLock);
|
||||
indscan = systable_beginscan(indrel, IndexIndrelidIndexId, true, SnapshotNow, 1, &skey);
|
||||
indscan = systable_beginscan(indrel, IndexIndrelidIndexId, true, NULL, 1, &skey);
|
||||
|
||||
while (HeapTupleIsValid(htup = systable_getnext(indscan))) {
|
||||
Form_pg_index index = (Form_pg_index)GETSTRUCT(htup);
|
||||
|
|
@ -5776,7 +5791,7 @@ static void ClusterConstraintFetch(__inout Relation relation)
|
|||
ObjectIdGetDatum(RelationGetRelid(relation)));
|
||||
|
||||
conrel = heap_open(ConstraintRelationId, AccessShareLock);
|
||||
conscan = systable_beginscan(conrel, ConstraintRelidIndexId, true, SnapshotNow, 1, skey);
|
||||
conscan = systable_beginscan(conrel, ConstraintRelidIndexId, true, NULL, 1, skey);
|
||||
|
||||
while (HeapTupleIsValid(htup = systable_getnext(conscan))) {
|
||||
Form_pg_constraint conform = (Form_pg_constraint)GETSTRUCT(htup);
|
||||
|
|
@ -6012,7 +6027,7 @@ void RelationGetExclusionInfo(Relation indexRelation, Oid** operators, Oid** pro
|
|||
ObjectIdGetDatum(indexRelation->rd_index->indrelid));
|
||||
|
||||
conrel = heap_open(ConstraintRelationId, AccessShareLock);
|
||||
conscan = systable_beginscan(conrel, ConstraintRelidIndexId, true, SnapshotNow, 1, skey);
|
||||
conscan = systable_beginscan(conrel, ConstraintRelidIndexId, true, NULL, 1, skey);
|
||||
found = false;
|
||||
|
||||
while (HeapTupleIsValid(htup = systable_getnext(conscan))) {
|
||||
|
|
@ -6936,7 +6951,7 @@ List* PartitionGetPartIndexList(Partition part)
|
|||
ObjectIdGetDatum(PartitionGetPartid(part)));
|
||||
|
||||
partrel = heap_open(PartitionRelationId, AccessShareLock);
|
||||
indscan = systable_beginscan(partrel, PartitionIndexTableIdIndexId, true, SnapshotNow, 1, &skey);
|
||||
indscan = systable_beginscan(partrel, PartitionIndexTableIdIndexId, true, NULL, 1, &skey);
|
||||
|
||||
while (HeapTupleIsValid(parttup = systable_getnext(indscan))) {
|
||||
Form_pg_partition partform = (Form_pg_partition)GETSTRUCT(parttup);
|
||||
|
|
|
|||
|
|
@ -191,7 +191,10 @@ Oid RelidByRelfilenode(Oid reltablespace, Oid relfilenode)
|
|||
skey[0].sk_argument = ObjectIdGetDatum(reltablespace);
|
||||
skey[1].sk_argument = ObjectIdGetDatum(relfilenode);
|
||||
|
||||
scandesc = systable_beginscan(relation, ClassTblspcRelfilenodeIndexId, true, SnapshotNow, 2, skey);
|
||||
/*
|
||||
* Using historical snapshot in logic decoding.
|
||||
*/
|
||||
scandesc = systable_beginscan(relation, ClassTblspcRelfilenodeIndexId, true, NULL, 2, skey);
|
||||
|
||||
found = false;
|
||||
|
||||
|
|
@ -270,7 +273,15 @@ Oid PartitionRelidByRelfilenode(Oid reltablespace, Oid relfilenode, Oid& partati
|
|||
skey[0].sk_argument = ObjectIdGetDatum(reltablespace);
|
||||
skey[1].sk_argument = ObjectIdGetDatum(relfilenode);
|
||||
|
||||
scandesc = systable_beginscan(relation, InvalidOid, false, SnapshotNow, 2, skey);
|
||||
/*
|
||||
* Using historical snapshot in logic decoding.
|
||||
*/
|
||||
Snapshot snapshot = NULL;
|
||||
snapshot = SnapshotNow;
|
||||
if (HistoricSnapshotActive()) {
|
||||
snapshot = GetCatalogSnapshot();
|
||||
}
|
||||
scandesc = systable_beginscan(relation, InvalidOid, false, NULL, 2, skey);
|
||||
|
||||
while (HeapTupleIsValid(ntp = systable_getnext(scandesc))) {
|
||||
if (foundflag)
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@ static HeapTuple GetDatabaseTuple(const char* dbname)
|
|||
*/
|
||||
relation = heap_open(DatabaseRelationId, AccessShareLock);
|
||||
scan = systable_beginscan(
|
||||
relation, DatabaseNameIndexId, u_sess->relcache_cxt.criticalSharedRelcachesBuilt, SnapshotNow, 1, key);
|
||||
relation, DatabaseNameIndexId, u_sess->relcache_cxt.criticalSharedRelcachesBuilt, NULL, 1, key);
|
||||
|
||||
tuple = systable_getnext(scan);
|
||||
|
||||
|
|
@ -245,7 +245,7 @@ static HeapTuple GetDatabaseTupleByOid(Oid dboid)
|
|||
*/
|
||||
relation = heap_open(DatabaseRelationId, AccessShareLock);
|
||||
scan = systable_beginscan(
|
||||
relation, DatabaseOidIndexId, u_sess->relcache_cxt.criticalSharedRelcachesBuilt, SnapshotNow, 1, key);
|
||||
relation, DatabaseOidIndexId, u_sess->relcache_cxt.criticalSharedRelcachesBuilt, NULL, 1, key);
|
||||
|
||||
tuple = systable_getnext(scan);
|
||||
|
||||
|
|
|
|||
|
|
@ -598,7 +598,7 @@ Snapshot GetLatestSnapshot(void)
|
|||
* Get a snapshot that is sufficiently up-to-date for scan of the
|
||||
* system catalog with the specified OID.
|
||||
*/
|
||||
Snapshot GetCatalogSnapshot(Oid relid)
|
||||
Snapshot GetCatalogSnapshot()
|
||||
{
|
||||
/*
|
||||
* Return historic snapshot if we're doing logical decoding, but
|
||||
|
|
@ -608,7 +608,7 @@ Snapshot GetCatalogSnapshot(Oid relid)
|
|||
if (HistoricSnapshotActive())
|
||||
return u_sess->utils_cxt.HistoricSnapshot;
|
||||
|
||||
return GetNonHistoricCatalogSnapshot(relid);
|
||||
return SnapshotNow;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -263,7 +263,7 @@ static void InitInstrWorkloadTransactionUser(void)
|
|||
t_thrd.utils_cxt.CurrentResourceOwner = ResourceOwnerCreate(NULL, "ForWorkloadTransaction", MEMORY_CONTEXT_CBB);
|
||||
|
||||
Relation relation = heap_open(AuthIdRelationId, AccessShareLock);
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, NULL, 0, NULL);
|
||||
HeapTuple tup;
|
||||
|
||||
while (HeapTupleIsValid((tup = systable_getnext(scan)))) {
|
||||
|
|
|
|||
|
|
@ -2128,7 +2128,7 @@ void WLMReAdjustAllUserSpaceInternal(bool isReset)
|
|||
|
||||
rel = heap_open(RelationRelationId, AccessShareLock);
|
||||
|
||||
SysScanDesc scan = systable_beginscan(rel, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
SysScanDesc scan = systable_beginscan(rel, InvalidOid, false, NULL, 0, NULL);
|
||||
|
||||
/* get all user in system table */
|
||||
while (HeapTupleIsValid((tup = systable_getnext(scan)))) {
|
||||
|
|
@ -2225,7 +2225,7 @@ void WLMReAdjustUserSpaceWithResetFlagInternal(UserData* userdata, bool isReset)
|
|||
|
||||
rel = heap_open(RelationRelationId, AccessShareLock);
|
||||
|
||||
SysScanDesc scan = systable_beginscan(rel, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
SysScanDesc scan = systable_beginscan(rel, InvalidOid, false, NULL, 0, NULL);
|
||||
|
||||
/* get all user in system table */
|
||||
while (HeapTupleIsValid((tup = systable_getnext(scan)))) {
|
||||
|
|
|
|||
|
|
@ -199,7 +199,7 @@ void CheckRespoolMultiTenantCreate(WLMNodeGroupInfo* ng, char* cgroup, int* memp
|
|||
char* groupanme = NULL;
|
||||
|
||||
Relation relation = heap_open(ResourcePoolRelationId, AccessShareLock);
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, NULL, 0, NULL);
|
||||
while (HeapTupleIsValid((tup = systable_getnext(scan)))) {
|
||||
Oid scanrpoid = HeapTupleGetOid(tup);
|
||||
char scancgroup[NAMEDATALEN];
|
||||
|
|
@ -385,7 +385,7 @@ void CheckRespoolMultiTenantAlter(WLMNodeGroupInfo* ng, const char* pool_name, c
|
|||
|
||||
/* scan system table of all the resource pools */
|
||||
Relation relation = heap_open(ResourcePoolRelationId, AccessShareLock);
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, NULL, 0, NULL);
|
||||
Datum groupanme_datum;
|
||||
bool isNull = false;
|
||||
char* groupanme = NULL;
|
||||
|
|
@ -2638,7 +2638,7 @@ void DropWorkloadGroup(DropWorkloadGroupStmt* stmt)
|
|||
|
||||
relation = heap_open(AppWorkloadGroupMappingRelationId, AccessShareLock);
|
||||
|
||||
scan = systable_beginscan(relation, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
scan = systable_beginscan(relation, InvalidOid, false, NULL, 0, NULL);
|
||||
|
||||
while (HeapTupleIsValid((tup = systable_getnext(scan)))) {
|
||||
app_data = (Form_pg_app_workloadgroup_mapping)GETSTRUCT(tup);
|
||||
|
|
@ -3161,7 +3161,7 @@ bool BuildResourcePoolHash(LOCKMODE lockmode)
|
|||
|
||||
TupleDesc pg_respool_dsc = RelationGetDescr(relation);
|
||||
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, NULL, 0, NULL);
|
||||
|
||||
while (HeapTupleIsValid((tup = systable_getnext(scan)))) {
|
||||
Oid rpoid = HeapTupleGetOid(tup);
|
||||
|
|
@ -3473,7 +3473,7 @@ bool BuildUserInfoHash(LOCKMODE lockmode)
|
|||
|
||||
TupleDesc pg_authid_dsc = RelationGetDescr(relation);
|
||||
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, NULL, 0, NULL);
|
||||
|
||||
/* get all user in system table */
|
||||
while (HeapTupleIsValid((tup = systable_getnext(scan)))) {
|
||||
|
|
@ -3799,7 +3799,7 @@ void BuildNodeGroupInfoHash(LOCKMODE lockmode)
|
|||
|
||||
TupleDesc pg_group_dsc = RelationGetDescr(relation);
|
||||
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, NULL, 0, NULL);
|
||||
|
||||
/* get all user in system table */
|
||||
while (HeapTupleIsValid((tup = systable_getnext(scan)))) {
|
||||
|
|
@ -3871,7 +3871,7 @@ bool GetUserChildlistFromCatalog(Oid userid, List** childlist, bool findall)
|
|||
|
||||
TupleDesc pg_authid_dsc = RelationGetDescr(relation);
|
||||
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, NULL, 0, NULL);
|
||||
|
||||
while (HeapTupleIsValid((tup = systable_getnext(scan)))) {
|
||||
Datum authidparentidDatum = heap_getattr(tup, Anum_pg_authid_rolparentid, pg_authid_dsc, &isNULL);
|
||||
|
|
|
|||
|
|
@ -385,7 +385,7 @@ char *search_table_attname(Oid attrelid, int2 attnum)
|
|||
ScanKeyInit(&key[0], Anum_pg_attribute_attrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(attrelid));
|
||||
ScanKeyInit(&key[1], Anum_pg_attribute_attnum, BTEqualStrategyNumber, F_INT2EQ, Int16GetDatum(attnum));
|
||||
|
||||
scan = systable_beginscan(pg_attribute, AttributeRelidNumIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(pg_attribute, AttributeRelidNumIndexId, true, NULL, 2, key);
|
||||
tup = systable_getnext(scan);
|
||||
if (!HeapTupleIsValid(tup)) {
|
||||
systable_endscan(scan);
|
||||
|
|
|
|||
|
|
@ -241,7 +241,7 @@ void CreateComments(Oid oid, Oid classoid, int32 subid, const char* comment)
|
|||
|
||||
description = heap_open(DescriptionRelationId, RowExclusiveLock);
|
||||
|
||||
sd = systable_beginscan(description, DescriptionObjIndexId, true, SnapshotNow, 3, skey);
|
||||
sd = systable_beginscan(description, DescriptionObjIndexId, true, NULL, 3, skey);
|
||||
if ((oldtuple = systable_getnext(sd)) != NULL) {
|
||||
/* Found the old tuple, so delete or update it */
|
||||
if (comment == NULL) {
|
||||
|
|
@ -312,7 +312,7 @@ void CreateSharedComments(Oid oid, Oid classoid, const char* comment)
|
|||
|
||||
shdescription = heap_open(SharedDescriptionRelationId, RowExclusiveLock);
|
||||
|
||||
sd = systable_beginscan(shdescription, SharedDescriptionObjIndexId, true, SnapshotNow, 2, skey);
|
||||
sd = systable_beginscan(shdescription, SharedDescriptionObjIndexId, true, NULL, 2, skey);
|
||||
if ((oldtuple = systable_getnext(sd)) != NULL) {
|
||||
/* Found the old tuple, so delete or update it */
|
||||
if (comment == NULL)
|
||||
|
|
@ -368,7 +368,7 @@ void DeleteComments(Oid oid, Oid classoid, int32 subid)
|
|||
|
||||
description = heap_open(DescriptionRelationId, RowExclusiveLock);
|
||||
|
||||
sd = systable_beginscan(description, DescriptionObjIndexId, true, SnapshotNow, nkeys, skey);
|
||||
sd = systable_beginscan(description, DescriptionObjIndexId, true, NULL, nkeys, skey);
|
||||
|
||||
while ((oldtuple = systable_getnext(sd)) != NULL)
|
||||
simple_heap_delete(description, &oldtuple->t_self);
|
||||
|
|
@ -394,7 +394,7 @@ void DeleteSharedComments(Oid oid, Oid classoid)
|
|||
|
||||
shdescription = heap_open(SharedDescriptionRelationId, RowExclusiveLock);
|
||||
|
||||
sd = systable_beginscan(shdescription, SharedDescriptionObjIndexId, true, SnapshotNow, 2, skey);
|
||||
sd = systable_beginscan(shdescription, SharedDescriptionObjIndexId, true, NULL, 2, skey);
|
||||
|
||||
while ((oldtuple = systable_getnext(sd)) != NULL)
|
||||
simple_heap_delete(shdescription, &oldtuple->t_self);
|
||||
|
|
@ -424,7 +424,7 @@ char* GetComment(Oid oid, Oid classoid, int32 subid)
|
|||
description = heap_open(DescriptionRelationId, AccessShareLock);
|
||||
tupdesc = RelationGetDescr(description);
|
||||
|
||||
sd = systable_beginscan(description, DescriptionObjIndexId, true, SnapshotNow, 3, skey);
|
||||
sd = systable_beginscan(description, DescriptionObjIndexId, true, NULL, 3, skey);
|
||||
|
||||
comment = NULL;
|
||||
if ((tuple = systable_getnext(sd)) != NULL) {
|
||||
|
|
|
|||
|
|
@ -1362,7 +1362,7 @@ static void movedb(const char* dbname, const char* tblspcname)
|
|||
* Update the database's pg_database tuple
|
||||
*/
|
||||
ScanKeyInit(&scankey, Anum_pg_database_datname, BTEqualStrategyNumber, F_NAMEEQ, NameGetDatum(dbname));
|
||||
sysscan = systable_beginscan(pgdbrel, DatabaseNameIndexId, true, SnapshotNow, 1, &scankey);
|
||||
sysscan = systable_beginscan(pgdbrel, DatabaseNameIndexId, true, NULL, 1, &scankey);
|
||||
oldtuple = systable_getnext(sysscan);
|
||||
if (!HeapTupleIsValid(oldtuple)) /* shouldn't happen... */
|
||||
ereport(ERROR, (errcode(ERRCODE_UNDEFINED_DATABASE), errmsg("database \"%s\" does not exist", dbname)));
|
||||
|
|
@ -1597,7 +1597,7 @@ void AlterDatabase(AlterDatabaseStmt* stmt, bool isTopLevel)
|
|||
*/
|
||||
rel = heap_open(DatabaseRelationId, RowExclusiveLock);
|
||||
ScanKeyInit(&scankey, Anum_pg_database_datname, BTEqualStrategyNumber, F_NAMEEQ, NameGetDatum(stmt->dbname));
|
||||
scan = systable_beginscan(rel, DatabaseNameIndexId, true, SnapshotNow, 1, &scankey);
|
||||
scan = systable_beginscan(rel, DatabaseNameIndexId, true, NULL, 1, &scankey);
|
||||
tuple = systable_getnext(scan);
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
ereport(ERROR, (errcode(ERRCODE_UNDEFINED_DATABASE), errmsg("database \"%s\" does not exist", stmt->dbname)));
|
||||
|
|
@ -1688,7 +1688,7 @@ void AlterDatabaseOwner(const char* dbname, Oid newOwnerId)
|
|||
*/
|
||||
rel = heap_open(DatabaseRelationId, RowExclusiveLock);
|
||||
ScanKeyInit(&scankey, Anum_pg_database_datname, BTEqualStrategyNumber, F_NAMEEQ, NameGetDatum(dbname));
|
||||
scan = systable_beginscan(rel, DatabaseNameIndexId, true, SnapshotNow, 1, &scankey);
|
||||
scan = systable_beginscan(rel, DatabaseNameIndexId, true, NULL, 1, &scankey);
|
||||
tuple = systable_getnext(scan);
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
ereport(ERROR, (errcode(ERRCODE_UNDEFINED_DATABASE), errmsg("database \"%s\" does not exist", dbname)));
|
||||
|
|
@ -1803,7 +1803,7 @@ static bool get_db_info(const char* name, LOCKMODE lockmode, Oid* dbIdP, Oid* ow
|
|||
*/
|
||||
ScanKeyInit(&scanKey, Anum_pg_database_datname, BTEqualStrategyNumber, F_NAMEEQ, NameGetDatum(name));
|
||||
|
||||
scan = systable_beginscan(relation, DatabaseNameIndexId, true, SnapshotNow, 1, &scanKey);
|
||||
scan = systable_beginscan(relation, DatabaseNameIndexId, true, NULL, 1, &scanKey);
|
||||
|
||||
tuple = systable_getnext(scan);
|
||||
|
||||
|
|
@ -2084,7 +2084,7 @@ Oid get_database_oid(const char* dbname, bool missing_ok)
|
|||
*/
|
||||
pg_database = heap_open(DatabaseRelationId, AccessShareLock);
|
||||
ScanKeyInit(&entry[0], Anum_pg_database_datname, BTEqualStrategyNumber, F_NAMEEQ, CStringGetDatum(dbname));
|
||||
scan = systable_beginscan(pg_database, DatabaseNameIndexId, true, SnapshotNow, 1, entry);
|
||||
scan = systable_beginscan(pg_database, DatabaseNameIndexId, true, NULL, 1, entry);
|
||||
|
||||
dbtuple = systable_getnext(scan);
|
||||
|
||||
|
|
|
|||
|
|
@ -362,7 +362,7 @@ void AlterDirectoryOwner(const char* dirname, Oid newOwnerId)
|
|||
*/
|
||||
rel = heap_open(PgDirectoryRelationId, RowExclusiveLock);
|
||||
ScanKeyInit(&scankey, Anum_pg_directory_directory_name, BTEqualStrategyNumber, F_NAMEEQ, NameGetDatum(dirname));
|
||||
scan = systable_beginscan(rel, PgDirectoryDirectoriesNameIndexId, true, SnapshotNow, 1, &scankey);
|
||||
scan = systable_beginscan(rel, PgDirectoryDirectoriesNameIndexId, true, NULL, 1, &scankey);
|
||||
tuple = systable_getnext(scan);
|
||||
if (!HeapTupleIsValid(tuple)) {
|
||||
heap_close(rel, RowExclusiveLock);
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ Oid get_extension_oid(const char* extname, bool missing_ok)
|
|||
|
||||
ScanKeyInit(&entry[0], Anum_pg_extension_extname, BTEqualStrategyNumber, F_NAMEEQ, CStringGetDatum(extname));
|
||||
|
||||
scandesc = systable_beginscan(rel, ExtensionNameIndexId, true, SnapshotNow, 1, entry);
|
||||
scandesc = systable_beginscan(rel, ExtensionNameIndexId, true, NULL, 1, entry);
|
||||
|
||||
tuple = systable_getnext(scandesc);
|
||||
|
||||
|
|
@ -153,7 +153,7 @@ char* get_extension_name(Oid ext_oid)
|
|||
|
||||
ScanKeyInit(&entry[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(ext_oid));
|
||||
|
||||
scandesc = systable_beginscan(rel, ExtensionOidIndexId, true, SnapshotNow, 1, entry);
|
||||
scandesc = systable_beginscan(rel, ExtensionOidIndexId, true, NULL, 1, entry);
|
||||
|
||||
tuple = systable_getnext(scandesc);
|
||||
|
||||
|
|
@ -187,7 +187,7 @@ static Oid get_extension_schema(Oid ext_oid)
|
|||
|
||||
ScanKeyInit(&entry[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(ext_oid));
|
||||
|
||||
scandesc = systable_beginscan(rel, ExtensionOidIndexId, true, SnapshotNow, 1, entry);
|
||||
scandesc = systable_beginscan(rel, ExtensionOidIndexId, true, NULL, 1, entry);
|
||||
|
||||
tuple = systable_getnext(scandesc);
|
||||
|
||||
|
|
@ -1564,7 +1564,7 @@ void RemoveExtensionById(Oid extId)
|
|||
rel = heap_open(ExtensionRelationId, RowExclusiveLock);
|
||||
|
||||
ScanKeyInit(&entry[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(extId));
|
||||
scandesc = systable_beginscan(rel, ExtensionOidIndexId, true, SnapshotNow, 1, entry);
|
||||
scandesc = systable_beginscan(rel, ExtensionOidIndexId, true, NULL, 1, entry);
|
||||
|
||||
tuple = systable_getnext(scandesc);
|
||||
|
||||
|
|
@ -2045,7 +2045,7 @@ Datum pg_extension_config_dump(PG_FUNCTION_ARGS)
|
|||
F_OIDEQ,
|
||||
ObjectIdGetDatum(u_sess->cmd_cxt.CurrentExtensionObject));
|
||||
|
||||
extScan = systable_beginscan(extRel, ExtensionOidIndexId, true, SnapshotNow, 1, key);
|
||||
extScan = systable_beginscan(extRel, ExtensionOidIndexId, true, NULL, 1, key);
|
||||
|
||||
extTup = systable_getnext(extScan);
|
||||
|
||||
|
|
@ -2176,7 +2176,7 @@ static void extension_config_remove(Oid extensionoid, Oid tableoid)
|
|||
|
||||
ScanKeyInit(&key[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(extensionoid));
|
||||
|
||||
extScan = systable_beginscan(extRel, ExtensionOidIndexId, true, SnapshotNow, 1, key);
|
||||
extScan = systable_beginscan(extRel, ExtensionOidIndexId, true, NULL, 1, key);
|
||||
|
||||
extTup = systable_getnext(extScan);
|
||||
|
||||
|
|
@ -2351,7 +2351,7 @@ void AlterExtensionNamespace(List* names, const char* newschema)
|
|||
|
||||
ScanKeyInit(&key[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(extensionOid));
|
||||
|
||||
extScan = systable_beginscan(extRel, ExtensionOidIndexId, true, SnapshotNow, 1, key);
|
||||
extScan = systable_beginscan(extRel, ExtensionOidIndexId, true, NULL, 1, key);
|
||||
|
||||
extTup = systable_getnext(extScan);
|
||||
|
||||
|
|
@ -2392,7 +2392,7 @@ void AlterExtensionNamespace(List* names, const char* newschema)
|
|||
&key[0], Anum_pg_depend_refclassid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(ExtensionRelationId));
|
||||
ScanKeyInit(&key[1], Anum_pg_depend_refobjid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(extensionOid));
|
||||
|
||||
depScan = systable_beginscan(depRel, DependReferenceIndexId, true, SnapshotNow, 2, key);
|
||||
depScan = systable_beginscan(depRel, DependReferenceIndexId, true, NULL, 2, key);
|
||||
|
||||
while (HeapTupleIsValid(depTup = systable_getnext(depScan))) {
|
||||
Form_pg_depend pg_depend = (Form_pg_depend)GETSTRUCT(depTup);
|
||||
|
|
@ -2486,7 +2486,7 @@ void ExecAlterExtensionStmt(AlterExtensionStmt* stmt)
|
|||
|
||||
ScanKeyInit(&key[0], Anum_pg_extension_extname, BTEqualStrategyNumber, F_NAMEEQ, CStringGetDatum(stmt->extname));
|
||||
|
||||
extScan = systable_beginscan(extRel, ExtensionNameIndexId, true, SnapshotNow, 1, key);
|
||||
extScan = systable_beginscan(extRel, ExtensionNameIndexId, true, NULL, 1, key);
|
||||
|
||||
extTup = systable_getnext(extScan);
|
||||
|
||||
|
|
@ -2610,7 +2610,7 @@ static void ApplyExtensionUpdates(
|
|||
|
||||
ScanKeyInit(&key[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(extensionOid));
|
||||
|
||||
extScan = systable_beginscan(extRel, ExtensionOidIndexId, true, SnapshotNow, 1, key);
|
||||
extScan = systable_beginscan(extRel, ExtensionOidIndexId, true, NULL, 1, key);
|
||||
|
||||
extTup = systable_getnext(extScan);
|
||||
|
||||
|
|
@ -2830,7 +2830,7 @@ static void AlterExtensionOwner_internal(Relation rel, Oid extensionOid, Oid new
|
|||
|
||||
ScanKeyInit(&entry[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(extensionOid));
|
||||
|
||||
scandesc = systable_beginscan(rel, ExtensionOidIndexId, true, SnapshotNow, 1, entry);
|
||||
scandesc = systable_beginscan(rel, ExtensionOidIndexId, true, NULL, 1, entry);
|
||||
|
||||
/* We assume that there can be at most one matching tuple */
|
||||
tup = systable_getnext(scandesc);
|
||||
|
|
|
|||
|
|
@ -2114,7 +2114,7 @@ void DropCastById(Oid castOid)
|
|||
relation = heap_open(CastRelationId, RowExclusiveLock);
|
||||
|
||||
ScanKeyInit(&scankey, ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(castOid));
|
||||
scan = systable_beginscan(relation, CastOidIndexId, true, SnapshotNow, 1, &scankey);
|
||||
scan = systable_beginscan(relation, CastOidIndexId, true, NULL, 1, &scankey);
|
||||
|
||||
tuple = systable_getnext(scan);
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
|
|
|
|||
|
|
@ -1921,7 +1921,7 @@ Oid GetDefaultOpClass(Oid type_id, Oid am_id)
|
|||
|
||||
ScanKeyInit(&skey[0], Anum_pg_opclass_opcmethod, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(am_id));
|
||||
|
||||
scan = systable_beginscan(rel, OpclassAmNameNspIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(rel, OpclassAmNameNspIndexId, true, NULL, 1, skey);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
Form_pg_opclass opclass = (Form_pg_opclass)GETSTRUCT(tup);
|
||||
|
|
@ -2937,7 +2937,7 @@ static bool relationHasInformationalPrimaryKey(const Relation rel)
|
|||
ScanKeyInit(
|
||||
&skey[0], Anum_pg_constraint_conrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(rel)));
|
||||
conrel = heap_open(ConstraintRelationId, ShareUpdateExclusiveLock);
|
||||
conscan = systable_beginscan(conrel, ConstraintRelidIndexId, true, SnapshotNow, 1, skey);
|
||||
conscan = systable_beginscan(conrel, ConstraintRelidIndexId, true, NULL, 1, skey);
|
||||
while (HeapTupleIsValid(htup = systable_getnext(conscan))) {
|
||||
Form_pg_constraint con = (Form_pg_constraint)GETSTRUCT(htup);
|
||||
|
||||
|
|
@ -3118,7 +3118,7 @@ static bool CheckGlobalIndexCompatible(Oid relOid, bool isGlobal, const IndexInf
|
|||
|
||||
ScanKeyInit(&skey[0], Anum_pg_index_indrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relOid));
|
||||
indexRelation = heap_open(IndexRelationId, AccessShareLock);
|
||||
sysScan = systable_beginscan(indexRelation, IndexIndrelidIndexId, true, SnapshotNow, 1, skey);
|
||||
sysScan = systable_beginscan(indexRelation, IndexIndrelidIndexId, true, NULL, 1, skey);
|
||||
|
||||
AttrNumber* currAttrsArray = (AttrNumber*)palloc0(currSize);
|
||||
rc = memcpy_s(currAttrsArray, currSize, indexInfo->ii_KeyAttrNumbers, currSize);
|
||||
|
|
|
|||
|
|
@ -506,7 +506,7 @@ static void ExecutorMatMapDelete(Oid mapid, Oid relid, ItemPointer rel_ctid, Oid
|
|||
}
|
||||
Oid indexOid = (Oid)linitial_oid(indexOidList);
|
||||
|
||||
scan = systable_beginscan(mapRel, indexOid, true, SnapshotNow, 3, scankey);
|
||||
scan = systable_beginscan(mapRel, indexOid, true, NULL, 3, scankey);
|
||||
if (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
Datum matctid = heap_getattr(tuple,
|
||||
MatMapAttributeMatctid,
|
||||
|
|
@ -1981,7 +1981,7 @@ Oid find_matview_mlog_table(Oid relid)
|
|||
|
||||
ScanKeyInit(&scanKey, Anum_pg_class_relname, BTEqualStrategyNumber, F_NAMEEQ, CStringGetDatum(mlogname));
|
||||
rel = heap_open(RelationRelationId, AccessShareLock);
|
||||
scan = systable_beginscan(rel, ClassNameNspIndexId, true, SnapshotNow, 1, &scanKey);
|
||||
scan = systable_beginscan(rel, ClassNameNspIndexId, true, NULL, 1, &scanKey);
|
||||
tup = systable_getnext(scan);
|
||||
|
||||
if (HeapTupleIsValid(tup)) {
|
||||
|
|
@ -2472,7 +2472,7 @@ static List* get_distkey_info(Oid oid) {
|
|||
|
||||
ScanKeyInit(&scanKey, Anum_pgxc_class_pcrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(oid));
|
||||
rel = heap_open(PgxcClassRelationId, AccessShareLock);
|
||||
scan = systable_beginscan(rel, PgxcClassPgxcRelIdIndexId, true, SnapshotNow, 1, &scanKey);
|
||||
scan = systable_beginscan(rel, PgxcClassPgxcRelIdIndexId, true, NULL, 1, &scanKey);
|
||||
tup = systable_getnext(scan);
|
||||
|
||||
Assert(HeapTupleIsValid(tup));
|
||||
|
|
|
|||
|
|
@ -547,7 +547,7 @@ void DefineOpClass(CreateOpClassStmt* stmt)
|
|||
|
||||
ScanKeyInit(&skey[0], Anum_pg_opclass_opcmethod, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(amoid));
|
||||
|
||||
scan = systable_beginscan(rel, OpclassAmNameNspIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(rel, OpclassAmNameNspIndexId, true, NULL, 1, skey);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
Form_pg_opclass opclass = (Form_pg_opclass)GETSTRUCT(tup);
|
||||
|
|
@ -1453,7 +1453,7 @@ void RemoveAmOpEntryById(Oid entryOid)
|
|||
|
||||
rel = heap_open(AccessMethodOperatorRelationId, RowExclusiveLock);
|
||||
|
||||
scan = systable_beginscan(rel, AccessMethodOperatorOidIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(rel, AccessMethodOperatorOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
/* we expect exactly one match */
|
||||
tup = systable_getnext(scan);
|
||||
|
|
@ -1477,7 +1477,7 @@ void RemoveAmProcEntryById(Oid entryOid)
|
|||
|
||||
rel = heap_open(AccessMethodProcedureRelationId, RowExclusiveLock);
|
||||
|
||||
scan = systable_beginscan(rel, AccessMethodProcedureOidIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(rel, AccessMethodProcedureOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
/* we expect exactly one match */
|
||||
tup = systable_getnext(scan);
|
||||
|
|
|
|||
|
|
@ -440,7 +440,7 @@ static PLTemplate* find_language_template(const char* languageName)
|
|||
rel = heap_open(PLTemplateRelationId, AccessShareLock);
|
||||
|
||||
ScanKeyInit(&key, Anum_pg_pltemplate_tmplname, BTEqualStrategyNumber, F_NAMEEQ, NameGetDatum(languageName));
|
||||
scan = systable_beginscan(rel, PLTemplateNameIndexId, true, SnapshotNow, 1, &key);
|
||||
scan = systable_beginscan(rel, PLTemplateNameIndexId, true, NULL, 1, &key);
|
||||
|
||||
tup = systable_getnext(scan);
|
||||
if (HeapTupleIsValid(tup)) {
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ void CreateRlsPolicy(CreateRlsPolicyStmt* stmt)
|
|||
|
||||
/* Search old tuple by index */
|
||||
SysScanDesc scanDesc =
|
||||
systable_beginscan(pg_rlspolicy, PgRlspolicyPolrelidPolnameIndex, true, SnapshotNow, 2, scanKey);
|
||||
systable_beginscan(pg_rlspolicy, PgRlspolicyPolrelidPolnameIndex, true, NULL, 2, scanKey);
|
||||
HeapTuple rlsPolicyTuple = systable_getnext(scanDesc);
|
||||
|
||||
/* Policy already exists */
|
||||
|
|
@ -188,7 +188,7 @@ void CreateRlsPolicy(CreateRlsPolicyStmt* stmt)
|
|||
|
||||
/* RLS policies for one relation should not large than MaxRlsPolciesForRelation */
|
||||
ScanKeyInit(&scanKey[0], Anum_pg_rlspolicy_polrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(tableOid));
|
||||
scanDesc = systable_beginscan(pg_rlspolicy, PgRlspolicyPolrelidPolnameIndex, true, SnapshotNow, 1, scanKey);
|
||||
scanDesc = systable_beginscan(pg_rlspolicy, PgRlspolicyPolrelidPolnameIndex, true, NULL, 1, scanKey);
|
||||
int existRlsNum = 0;
|
||||
while ((rlsPolicyTuple = systable_getnext(scanDesc)) != NULL) {
|
||||
existRlsNum++;
|
||||
|
|
@ -310,7 +310,7 @@ void AlterRlsPolicy(AlterRlsPolicyStmt* stmt)
|
|||
|
||||
/* Search tuple by index */
|
||||
SysScanDesc scanDesc =
|
||||
systable_beginscan(pg_rlspolicy, PgRlspolicyPolrelidPolnameIndex, true, SnapshotNow, 2, scanKey);
|
||||
systable_beginscan(pg_rlspolicy, PgRlspolicyPolrelidPolnameIndex, true, NULL, 2, scanKey);
|
||||
HeapTuple rlsPolicyTuple = systable_getnext(scanDesc);
|
||||
|
||||
/* Policy does not exists */
|
||||
|
|
@ -498,7 +498,7 @@ void RenameRlsPolicy(RenameStmt* renameStmt)
|
|||
|
||||
/* Search tuple by index */
|
||||
SysScanDesc scanDesc =
|
||||
systable_beginscan(pg_rlspolicy, PgRlspolicyPolrelidPolnameIndex, true, SnapshotNow, 2, scanKey);
|
||||
systable_beginscan(pg_rlspolicy, PgRlspolicyPolrelidPolnameIndex, true, NULL, 2, scanKey);
|
||||
HeapTuple rlsPolicyTuple = systable_getnext(scanDesc);
|
||||
|
||||
/* Policy already exists */
|
||||
|
|
@ -516,7 +516,7 @@ void RenameRlsPolicy(RenameStmt* renameStmt)
|
|||
ScanKeyInit(&scanKey[0], Anum_pg_rlspolicy_polrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relid));
|
||||
ScanKeyInit(
|
||||
&scanKey[1], Anum_pg_rlspolicy_polname, BTEqualStrategyNumber, F_NAMEEQ, NameGetDatum(renameStmt->subname));
|
||||
scanDesc = systable_beginscan(pg_rlspolicy, PgRlspolicyPolrelidPolnameIndex, true, SnapshotNow, 2, scanKey);
|
||||
scanDesc = systable_beginscan(pg_rlspolicy, PgRlspolicyPolrelidPolnameIndex, true, NULL, 2, scanKey);
|
||||
rlsPolicyTuple = systable_getnext(scanDesc);
|
||||
/* Policy does not exists */
|
||||
if (HeapTupleIsValid(rlsPolicyTuple) == false) {
|
||||
|
|
@ -572,7 +572,7 @@ bool RemoveRoleFromRlsPolicy(Oid roleid, Oid rlsrelid, Oid rlspolicyid)
|
|||
ScanKeyData scanKey[1];
|
||||
ScanKeyInit(&scanKey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, rlspolicyid);
|
||||
/* search tuple by index */
|
||||
SysScanDesc scanDesc = systable_beginscan(pg_rlspolicy, PgRlspolicyOidIndex, true, SnapshotNow, 1, scanKey);
|
||||
SysScanDesc scanDesc = systable_beginscan(pg_rlspolicy, PgRlspolicyOidIndex, true, NULL, 1, scanKey);
|
||||
HeapTuple rlsPolicyTuple = systable_getnext(scanDesc);
|
||||
if (false == HeapTupleIsValid(rlsPolicyTuple)) {
|
||||
ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("could not find tuple for policy %u", rlspolicyid)));
|
||||
|
|
@ -686,7 +686,7 @@ void RemoveRlsPolicyById(Oid rlsPolicyOid)
|
|||
Relation pg_rlspolicy = heap_open(RlsPolicyRelationId, RowExclusiveLock);
|
||||
|
||||
/* Search tuple by index */
|
||||
SysScanDesc scanDesc = systable_beginscan(pg_rlspolicy, PgRlspolicyOidIndex, true, SnapshotNow, 1, scanKey);
|
||||
SysScanDesc scanDesc = systable_beginscan(pg_rlspolicy, PgRlspolicyOidIndex, true, NULL, 1, scanKey);
|
||||
|
||||
HeapTuple tuple = systable_getnext(scanDesc);
|
||||
if (!HeapTupleIsValid(tuple)) {
|
||||
|
|
@ -739,7 +739,7 @@ Oid get_rlspolicy_oid(Oid relid, const char* policy_name, bool missing_ok)
|
|||
|
||||
/* Search old tuple by index */
|
||||
SysScanDesc scanDesc =
|
||||
systable_beginscan(pg_rlspolicy, PgRlspolicyPolrelidPolnameIndex, true, SnapshotNow, 2, scanKey);
|
||||
systable_beginscan(pg_rlspolicy, PgRlspolicyPolrelidPolnameIndex, true, NULL, 2, scanKey);
|
||||
HeapTuple rlsPolicyTuple = systable_getnext(scanDesc);
|
||||
|
||||
if (HeapTupleIsValid(rlsPolicyTuple)) {
|
||||
|
|
@ -783,7 +783,7 @@ void RelationBuildRlsPolicies(Relation relation)
|
|||
|
||||
/* Search old tuple by index */
|
||||
SysScanDesc scanDesc =
|
||||
systable_beginscan(pg_rlspolicy, PgRlspolicyPolrelidPolnameIndex, true, SnapshotNow, 1, scanKey);
|
||||
systable_beginscan(pg_rlspolicy, PgRlspolicyPolrelidPolnameIndex, true, NULL, 1, scanKey);
|
||||
|
||||
MemoryContext oldcxt = NULL;
|
||||
/*
|
||||
|
|
@ -1042,7 +1042,7 @@ bool RelationHasRlspolicy(Oid relid)
|
|||
|
||||
/* Search tuple by index */
|
||||
SysScanDesc scanDesc =
|
||||
systable_beginscan(pg_rlspolicy, PgRlspolicyPolrelidPolnameIndex, true, SnapshotNow, 1, scanKey);
|
||||
systable_beginscan(pg_rlspolicy, PgRlspolicyPolrelidPolnameIndex, true, NULL, 1, scanKey);
|
||||
HeapTuple rlsPolicyTuple = systable_getnext(scanDesc);
|
||||
/* Find RLS policy for this relation */
|
||||
int findPolicy = false;
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ static char* GetSharedSecurityLabel(const ObjectAddress* object, const char* pro
|
|||
|
||||
pg_shseclabel = heap_open(SharedSecLabelRelationId, AccessShareLock);
|
||||
|
||||
scan = systable_beginscan(pg_shseclabel, SharedSecLabelObjectIndexId, true, SnapshotNow, 3, keys);
|
||||
scan = systable_beginscan(pg_shseclabel, SharedSecLabelObjectIndexId, true, NULL, 3, keys);
|
||||
|
||||
tuple = systable_getnext(scan);
|
||||
if (HeapTupleIsValid(tuple)) {
|
||||
|
|
@ -193,7 +193,7 @@ char* GetSecurityLabel(const ObjectAddress* object, const char* provider)
|
|||
|
||||
pg_seclabel = heap_open(SecLabelRelationId, AccessShareLock);
|
||||
|
||||
scan = systable_beginscan(pg_seclabel, SecLabelObjectIndexId, true, SnapshotNow, 4, keys);
|
||||
scan = systable_beginscan(pg_seclabel, SecLabelObjectIndexId, true, NULL, 4, keys);
|
||||
|
||||
tuple = systable_getnext(scan);
|
||||
if (HeapTupleIsValid(tuple)) {
|
||||
|
|
@ -243,7 +243,7 @@ static void SetSharedSecurityLabel(const ObjectAddress* object, const char* prov
|
|||
|
||||
pg_shseclabel = heap_open(SharedSecLabelRelationId, RowExclusiveLock);
|
||||
|
||||
scan = systable_beginscan(pg_shseclabel, SharedSecLabelObjectIndexId, true, SnapshotNow, 3, keys);
|
||||
scan = systable_beginscan(pg_shseclabel, SharedSecLabelObjectIndexId, true, NULL, 3, keys);
|
||||
|
||||
oldtup = systable_getnext(scan);
|
||||
if (HeapTupleIsValid(oldtup)) {
|
||||
|
|
@ -312,7 +312,7 @@ void SetSecurityLabel(const ObjectAddress* object, const char* provider, const c
|
|||
|
||||
Relation pg_seclabel = heap_open(SecLabelRelationId, RowExclusiveLock);
|
||||
|
||||
SysScanDesc scan = systable_beginscan(pg_seclabel, SecLabelObjectIndexId, true, SnapshotNow, 4, keys);
|
||||
SysScanDesc scan = systable_beginscan(pg_seclabel, SecLabelObjectIndexId, true, NULL, 4, keys);
|
||||
|
||||
HeapTuple oldtup = systable_getnext(scan);
|
||||
if (HeapTupleIsValid(oldtup)) {
|
||||
|
|
@ -357,7 +357,7 @@ void DeleteSharedSecurityLabel(Oid objectId, Oid classId)
|
|||
|
||||
pg_shseclabel = heap_open(SharedSecLabelRelationId, RowExclusiveLock);
|
||||
|
||||
scan = systable_beginscan(pg_shseclabel, SharedSecLabelObjectIndexId, true, SnapshotNow, 2, skey);
|
||||
scan = systable_beginscan(pg_shseclabel, SharedSecLabelObjectIndexId, true, NULL, 2, skey);
|
||||
while (HeapTupleIsValid(oldtup = systable_getnext(scan)))
|
||||
simple_heap_delete(pg_shseclabel, &oldtup->t_self);
|
||||
systable_endscan(scan);
|
||||
|
|
@ -395,7 +395,7 @@ void DeleteSecurityLabel(const ObjectAddress* object)
|
|||
|
||||
pg_seclabel = heap_open(SecLabelRelationId, RowExclusiveLock);
|
||||
|
||||
scan = systable_beginscan(pg_seclabel, SecLabelObjectIndexId, true, SnapshotNow, nkeys, skey);
|
||||
scan = systable_beginscan(pg_seclabel, SecLabelObjectIndexId, true, NULL, nkeys, skey);
|
||||
while (HeapTupleIsValid(oldtup = systable_getnext(scan)))
|
||||
simple_heap_delete(pg_seclabel, &oldtup->t_self);
|
||||
systable_endscan(scan);
|
||||
|
|
|
|||
|
|
@ -8152,7 +8152,7 @@ void find_composite_type_dependencies(Oid typeOid, Relation origRelation, const
|
|||
ScanKeyInit(&key[0], Anum_pg_depend_refclassid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(TypeRelationId));
|
||||
ScanKeyInit(&key[1], Anum_pg_depend_refobjid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(typeOid));
|
||||
|
||||
depScan = systable_beginscan(depRel, DependReferenceIndexId, true, SnapshotNow, 2, key);
|
||||
depScan = systable_beginscan(depRel, DependReferenceIndexId, true, NULL, 2, key);
|
||||
|
||||
while (HeapTupleIsValid(depTup = systable_getnext(depScan))) {
|
||||
Form_pg_depend pg_depend = (Form_pg_depend)GETSTRUCT(depTup);
|
||||
|
|
@ -10554,7 +10554,7 @@ static void ATExecValidateConstraint(Relation rel, char* constrName, bool recurs
|
|||
*/
|
||||
ScanKeyInit(
|
||||
&key, Anum_pg_constraint_conrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(rel)));
|
||||
scan = systable_beginscan(conrel, ConstraintRelidIndexId, true, SnapshotNow, 1, &key);
|
||||
scan = systable_beginscan(conrel, ConstraintRelidIndexId, true, NULL, 1, &key);
|
||||
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
con = (Form_pg_constraint)GETSTRUCT(tuple);
|
||||
|
|
@ -11349,7 +11349,7 @@ static void ATExecDropConstraint(Relation rel, const char* constrName, DropBehav
|
|||
*/
|
||||
ScanKeyInit(
|
||||
&key, Anum_pg_constraint_conrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(rel)));
|
||||
scan = systable_beginscan(conrel, ConstraintRelidIndexId, true, SnapshotNow, 1, &key);
|
||||
scan = systable_beginscan(conrel, ConstraintRelidIndexId, true, NULL, 1, &key);
|
||||
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
ObjectAddress conobj;
|
||||
|
|
@ -11458,7 +11458,7 @@ static void ATExecDropConstraint(Relation rel, const char* constrName, DropBehav
|
|||
CheckTableNotInUse(childrel, "ALTER TABLE");
|
||||
|
||||
ScanKeyInit(&key, Anum_pg_constraint_conrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(childrelid));
|
||||
scan = systable_beginscan(conrel, ConstraintRelidIndexId, true, SnapshotNow, 1, &key);
|
||||
scan = systable_beginscan(conrel, ConstraintRelidIndexId, true, NULL, 1, &key);
|
||||
|
||||
/* scan for matching tuple - there should only be one */
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
|
|
@ -11882,7 +11882,7 @@ static void ATExecAlterColumnType(AlteredTableInfo* tab, Relation rel, AlterTabl
|
|||
&key[1], Anum_pg_depend_refobjid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(rel)));
|
||||
ScanKeyInit(&key[2], Anum_pg_depend_refobjsubid, BTEqualStrategyNumber, F_INT4EQ, Int32GetDatum((int32)attnum));
|
||||
|
||||
scan = systable_beginscan(depRel, DependReferenceIndexId, true, SnapshotNow, 3, key);
|
||||
scan = systable_beginscan(depRel, DependReferenceIndexId, true, NULL, 3, key);
|
||||
|
||||
while (HeapTupleIsValid(depTup = systable_getnext(scan))) {
|
||||
Form_pg_depend foundDep = (Form_pg_depend)GETSTRUCT(depTup);
|
||||
|
|
@ -13051,7 +13051,7 @@ static void change_owner_fix_column_acls(Oid relationOid, Oid oldOwnerId, Oid ne
|
|||
|
||||
attRelation = heap_open(AttributeRelationId, RowExclusiveLock);
|
||||
ScanKeyInit(&key[0], Anum_pg_attribute_attrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relationOid));
|
||||
scan = systable_beginscan(attRelation, AttributeRelidNumIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(attRelation, AttributeRelidNumIndexId, true, NULL, 1, key);
|
||||
while (HeapTupleIsValid(attributeTuple = systable_getnext(scan))) {
|
||||
Form_pg_attribute att = (Form_pg_attribute)GETSTRUCT(attributeTuple);
|
||||
Datum repl_val[Natts_pg_attribute];
|
||||
|
|
@ -13116,7 +13116,7 @@ static void change_owner_recurse_to_sequences(Oid relationOid, Oid newOwnerId, L
|
|||
&key[0], Anum_pg_depend_refclassid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationRelationId));
|
||||
ScanKeyInit(&key[1], Anum_pg_depend_refobjid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relationOid));
|
||||
/* we leave refobjsubid unspecified */
|
||||
scan = systable_beginscan(depRel, DependReferenceIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(depRel, DependReferenceIndexId, true, NULL, 2, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
Form_pg_depend depForm = (Form_pg_depend)GETSTRUCT(tup);
|
||||
|
|
@ -14529,7 +14529,7 @@ static void ATExecAddInherit(Relation child_rel, RangeVar* parent, LOCKMODE lock
|
|||
catalogRelation = heap_open(InheritsRelationId, RowExclusiveLock);
|
||||
ScanKeyInit(
|
||||
&key, Anum_pg_inherits_inhrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(child_rel)));
|
||||
scan = systable_beginscan(catalogRelation, InheritsRelidSeqnoIndexId, true, SnapshotNow, 1, &key);
|
||||
scan = systable_beginscan(catalogRelation, InheritsRelidSeqnoIndexId, true, NULL, 1, &key);
|
||||
|
||||
/* inhseqno sequences start at 1 */
|
||||
inhseqno = 0;
|
||||
|
|
@ -14750,7 +14750,7 @@ static void MergeConstraintsIntoExisting(Relation child_rel, Relation parent_rel
|
|||
BTEqualStrategyNumber,
|
||||
F_OIDEQ,
|
||||
ObjectIdGetDatum(RelationGetRelid(parent_rel)));
|
||||
parent_scan = systable_beginscan(catalog_relation, ConstraintRelidIndexId, true, SnapshotNow, 1, &parent_key);
|
||||
parent_scan = systable_beginscan(catalog_relation, ConstraintRelidIndexId, true, NULL, 1, &parent_key);
|
||||
|
||||
while (HeapTupleIsValid(parent_tuple = systable_getnext(parent_scan))) {
|
||||
Form_pg_constraint parent_con = (Form_pg_constraint)GETSTRUCT(parent_tuple);
|
||||
|
|
@ -14772,7 +14772,7 @@ static void MergeConstraintsIntoExisting(Relation child_rel, Relation parent_rel
|
|||
BTEqualStrategyNumber,
|
||||
F_OIDEQ,
|
||||
ObjectIdGetDatum(RelationGetRelid(child_rel)));
|
||||
child_scan = systable_beginscan(catalog_relation, ConstraintRelidIndexId, true, SnapshotNow, 1, &child_key);
|
||||
child_scan = systable_beginscan(catalog_relation, ConstraintRelidIndexId, true, NULL, 1, &child_key);
|
||||
|
||||
while (HeapTupleIsValid(child_tuple = systable_getnext(child_scan))) {
|
||||
Form_pg_constraint child_con = (Form_pg_constraint)GETSTRUCT(child_tuple);
|
||||
|
|
@ -14870,7 +14870,7 @@ static void ATExecDropInherit(Relation rel, RangeVar* parent, LOCKMODE lockmode)
|
|||
catalogRelation = heap_open(InheritsRelationId, RowExclusiveLock);
|
||||
ScanKeyInit(
|
||||
&key[0], Anum_pg_inherits_inhrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(rel)));
|
||||
scan = systable_beginscan(catalogRelation, InheritsRelidSeqnoIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(catalogRelation, InheritsRelidSeqnoIndexId, true, NULL, 1, key);
|
||||
|
||||
while (HeapTupleIsValid(inheritsTuple = systable_getnext(scan))) {
|
||||
Oid inhparent;
|
||||
|
|
@ -14899,7 +14899,7 @@ static void ATExecDropInherit(Relation rel, RangeVar* parent, LOCKMODE lockmode)
|
|||
catalogRelation = heap_open(AttributeRelationId, RowExclusiveLock);
|
||||
ScanKeyInit(
|
||||
&key[0], Anum_pg_attribute_attrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(rel)));
|
||||
scan = systable_beginscan(catalogRelation, AttributeRelidNumIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(catalogRelation, AttributeRelidNumIndexId, true, NULL, 1, key);
|
||||
while (HeapTupleIsValid(attributeTuple = systable_getnext(scan))) {
|
||||
Form_pg_attribute att = (Form_pg_attribute)GETSTRUCT(attributeTuple);
|
||||
|
||||
|
|
@ -14938,7 +14938,7 @@ static void ATExecDropInherit(Relation rel, RangeVar* parent, LOCKMODE lockmode)
|
|||
BTEqualStrategyNumber,
|
||||
F_OIDEQ,
|
||||
ObjectIdGetDatum(RelationGetRelid(parent_rel)));
|
||||
scan = systable_beginscan(catalogRelation, ConstraintRelidIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(catalogRelation, ConstraintRelidIndexId, true, NULL, 1, key);
|
||||
|
||||
connames = NIL;
|
||||
|
||||
|
|
@ -14954,7 +14954,7 @@ static void ATExecDropInherit(Relation rel, RangeVar* parent, LOCKMODE lockmode)
|
|||
/* Now scan the child's constraints */
|
||||
ScanKeyInit(
|
||||
&key[0], Anum_pg_constraint_conrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(rel)));
|
||||
scan = systable_beginscan(catalogRelation, ConstraintRelidIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(catalogRelation, ConstraintRelidIndexId, true, NULL, 1, key);
|
||||
|
||||
while (HeapTupleIsValid(constraintTuple = systable_getnext(scan))) {
|
||||
Form_pg_constraint con = (Form_pg_constraint)GETSTRUCT(constraintTuple);
|
||||
|
|
@ -15023,7 +15023,7 @@ static void drop_parent_dependency(Oid relid, Oid refclassid, Oid refobjid)
|
|||
ScanKeyInit(&key[1], Anum_pg_depend_objid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relid));
|
||||
ScanKeyInit(&key[2], Anum_pg_depend_objsubid, BTEqualStrategyNumber, F_INT4EQ, Int32GetDatum(0));
|
||||
|
||||
scan = systable_beginscan(catalogRelation, DependDependerIndexId, true, SnapshotNow, 3, key);
|
||||
scan = systable_beginscan(catalogRelation, DependDependerIndexId, true, NULL, 3, key);
|
||||
|
||||
while (HeapTupleIsValid(depTuple = systable_getnext(scan))) {
|
||||
Form_pg_depend dep = (Form_pg_depend)GETSTRUCT(depTuple);
|
||||
|
|
@ -15073,7 +15073,7 @@ static void ATExecAddOf(Relation rel, const TypeName* ofTypename, LOCKMODE lockm
|
|||
/* Fail if the table has any inheritance parents. */
|
||||
inheritsRelation = heap_open(InheritsRelationId, AccessShareLock);
|
||||
ScanKeyInit(&key, Anum_pg_inherits_inhrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relid));
|
||||
scan = systable_beginscan(inheritsRelation, InheritsRelidSeqnoIndexId, true, SnapshotNow, 1, &key);
|
||||
scan = systable_beginscan(inheritsRelation, InheritsRelidSeqnoIndexId, true, NULL, 1, &key);
|
||||
if (HeapTupleIsValid(systable_getnext(scan)))
|
||||
ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("typed tables cannot inherit")));
|
||||
systable_endscan(scan);
|
||||
|
|
@ -16384,7 +16384,7 @@ static void AlterSeqNamespaces(
|
|||
ScanKeyInit(
|
||||
&key[1], Anum_pg_depend_refobjid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(rel)));
|
||||
/* we leave refobjsubid unspecified */
|
||||
scan = systable_beginscan(depRel, DependReferenceIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(depRel, DependReferenceIndexId, true, NULL, 2, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
Form_pg_depend depForm = (Form_pg_depend)GETSTRUCT(tup);
|
||||
|
|
@ -19909,7 +19909,7 @@ static void checkColumnForExchange(Relation partTableRel, Relation ordTableRel)
|
|||
ScanKeyInit(&scankeys[1], Anum_pg_attrdef_adnum, BTEqualStrategyNumber, F_INT2EQ,
|
||||
partVals[Anum_pg_attribute_attnum - 1]);
|
||||
|
||||
partAttrdefScan = systable_beginscan(attrdefRel, AttrDefaultIndexId, true, SnapshotNow, 2, scankeys);
|
||||
partAttrdefScan = systable_beginscan(attrdefRel, AttrDefaultIndexId, true, NULL, 2, scankeys);
|
||||
partAttrdefTuple = systable_getnext(partAttrdefScan);
|
||||
|
||||
ScanKeyInit(&scankeys[0],
|
||||
|
|
@ -19920,7 +19920,7 @@ static void checkColumnForExchange(Relation partTableRel, Relation ordTableRel)
|
|||
ScanKeyInit(&scankeys[1], Anum_pg_attrdef_adnum, BTEqualStrategyNumber, F_INT2EQ,
|
||||
ordVals[Anum_pg_attribute_attnum - 1]);
|
||||
|
||||
ordAttrdefScan = systable_beginscan(attrdefRel, AttrDefaultIndexId, true, SnapshotNow, 2, scankeys);
|
||||
ordAttrdefScan = systable_beginscan(attrdefRel, AttrDefaultIndexId, true, NULL, 2, scankeys);
|
||||
ordAttrdefTuple = systable_getnext(ordAttrdefScan);
|
||||
|
||||
if ((partAttrdefTuple != NULL) && (ordAttrdefTuple != NULL)) {
|
||||
|
|
@ -19997,7 +19997,7 @@ bool checkPartitionLocalIndexesUsable(Oid partitionOid)
|
|||
pg_part_rel = relation_open(PartitionRelationId, AccessShareLock);
|
||||
ScanKeyInit(
|
||||
&scankeys[0], Anum_pg_partition_indextblid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(partitionOid));
|
||||
partScan = systable_beginscan(pg_part_rel, PartitionIndexTableIdIndexId, true, SnapshotNow, 1, scankeys);
|
||||
partScan = systable_beginscan(pg_part_rel, PartitionIndexTableIdIndexId, true, NULL, 1, scankeys);
|
||||
while (NULL != (partTuple = systable_getnext(partScan))) {
|
||||
Relation indexRel = NULL;
|
||||
Partition indexPart = NULL;
|
||||
|
|
@ -20044,7 +20044,7 @@ bool checkRelationLocalIndexesUsable(Relation relation)
|
|||
&skey, Anum_pg_index_indrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(relation)));
|
||||
|
||||
indrel = heap_open(IndexRelationId, AccessShareLock);
|
||||
indscan = systable_beginscan(indrel, IndexIndrelidIndexId, true, SnapshotNow, 1, &skey);
|
||||
indscan = systable_beginscan(indrel, IndexIndrelidIndexId, true, NULL, 1, &skey);
|
||||
|
||||
while (HeapTupleIsValid(htup = systable_getnext(indscan))) {
|
||||
Form_pg_index index = (Form_pg_index)GETSTRUCT(htup);
|
||||
|
|
@ -20222,11 +20222,11 @@ static List* getConstraintList(Oid relOid, char conType)
|
|||
if (conType != CONSTRAINT_INVALID) {
|
||||
ScanKeyInit(&skey[1], Anum_pg_constraint_contype, BTEqualStrategyNumber, F_CHAREQ, CharGetDatum(conType));
|
||||
nkeys = 2;
|
||||
scan = systable_beginscan(pgConstraint, ConstraintRelidIndexId, false, SnapshotNow, nkeys, skey);
|
||||
scan = systable_beginscan(pgConstraint, ConstraintRelidIndexId, false, NULL, nkeys, skey);
|
||||
|
||||
} else {
|
||||
nkeys = 1;
|
||||
scan = systable_beginscan(pgConstraint, ConstraintRelidIndexId, true, SnapshotNow, nkeys, skey);
|
||||
scan = systable_beginscan(pgConstraint, ConstraintRelidIndexId, true, NULL, nkeys, skey);
|
||||
}
|
||||
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
|
|
@ -23323,7 +23323,7 @@ static void ResetPartsRedisCtidRelOptions(Relation rel)
|
|||
ScanKeyInit(&key[1], Anum_pg_partition_parentid, BTEqualStrategyNumber,F_OIDEQ,
|
||||
ObjectIdGetDatum(RelationGetRelid(rel)));
|
||||
|
||||
scan = systable_beginscan(pg_partition, PartitionParentOidIndexId, true, SnapshotNow, 2, key);
|
||||
scan = systable_beginscan(pg_partition, PartitionParentOidIndexId, true, NULL, 2, key);
|
||||
redis_reloptions = AlterTableSetRedistribute(rel, REDIS_REL_RESET_CTID, NULL);
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
HeapTuple dtuple;
|
||||
|
|
|
|||
|
|
@ -516,7 +516,7 @@ Oid CreateTrigger(CreateTrigStmt* stmt, const char* queryString, Oid relOid, Oid
|
|||
if (!isInternal) {
|
||||
ScanKeyInit(
|
||||
&key, Anum_pg_trigger_tgrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(rel)));
|
||||
tgscan = systable_beginscan(tgrel, TriggerRelidNameIndexId, true, SnapshotNow, 1, &key);
|
||||
tgscan = systable_beginscan(tgrel, TriggerRelidNameIndexId, true, NULL, 1, &key);
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(tgscan))) {
|
||||
Form_pg_trigger pg_trigger = (Form_pg_trigger)GETSTRUCT(tuple);
|
||||
if (namestrcmp(&(pg_trigger->tgname), trigname) == 0)
|
||||
|
|
@ -1033,7 +1033,7 @@ void RemoveTriggerById(Oid trigOid)
|
|||
*/
|
||||
ScanKeyInit(&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(trigOid));
|
||||
|
||||
tgscan = systable_beginscan(tgrel, TriggerOidIndexId, true, SnapshotNow, 1, skey);
|
||||
tgscan = systable_beginscan(tgrel, TriggerOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
tup = systable_getnext(tgscan);
|
||||
if (!HeapTupleIsValid(tup))
|
||||
|
|
@ -1103,7 +1103,7 @@ Oid get_trigger_oid(Oid relid, const char* trigname, bool missing_ok)
|
|||
ScanKeyInit(&skey[0], Anum_pg_trigger_tgrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relid));
|
||||
ScanKeyInit(&skey[1], Anum_pg_trigger_tgname, BTEqualStrategyNumber, F_NAMEEQ, CStringGetDatum(trigname));
|
||||
|
||||
tgscan = systable_beginscan(tgrel, TriggerRelidNameIndexId, true, SnapshotNow, 2, skey);
|
||||
tgscan = systable_beginscan(tgrel, TriggerRelidNameIndexId, true, NULL, 2, skey);
|
||||
|
||||
tup = systable_getnext(tgscan);
|
||||
if (!HeapTupleIsValid(tup)) {
|
||||
|
|
@ -1199,7 +1199,7 @@ void renametrig(RenameStmt* stmt)
|
|||
*/
|
||||
ScanKeyInit(&key[0], Anum_pg_trigger_tgrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relid));
|
||||
ScanKeyInit(&key[1], Anum_pg_trigger_tgname, BTEqualStrategyNumber, F_NAMEEQ, PointerGetDatum(stmt->newname));
|
||||
tgscan = systable_beginscan(tgrel, TriggerRelidNameIndexId, true, SnapshotNow, 2, key);
|
||||
tgscan = systable_beginscan(tgrel, TriggerRelidNameIndexId, true, NULL, 2, key);
|
||||
if (HeapTupleIsValid(tuple = systable_getnext(tgscan)))
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_DUPLICATE_OBJECT),
|
||||
|
|
@ -1213,7 +1213,7 @@ void renametrig(RenameStmt* stmt)
|
|||
*/
|
||||
ScanKeyInit(&key[0], Anum_pg_trigger_tgrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relid));
|
||||
ScanKeyInit(&key[1], Anum_pg_trigger_tgname, BTEqualStrategyNumber, F_NAMEEQ, PointerGetDatum(stmt->subname));
|
||||
tgscan = systable_beginscan(tgrel, TriggerRelidNameIndexId, true, SnapshotNow, 2, key);
|
||||
tgscan = systable_beginscan(tgrel, TriggerRelidNameIndexId, true, NULL, 2, key);
|
||||
if (HeapTupleIsValid(tuple = systable_getnext(tgscan))) {
|
||||
/*
|
||||
* Update pg_trigger tuple with new tgname.
|
||||
|
|
@ -1289,7 +1289,7 @@ void EnableDisableTrigger(Relation rel, const char* tgname, char fires_when, boo
|
|||
} else
|
||||
nkeys = 1;
|
||||
|
||||
tgscan = systable_beginscan(tgrel, TriggerRelidNameIndexId, true, SnapshotNow, nkeys, keys);
|
||||
tgscan = systable_beginscan(tgrel, TriggerRelidNameIndexId, true, NULL, nkeys, keys);
|
||||
|
||||
found = changed = false;
|
||||
|
||||
|
|
@ -1383,7 +1383,7 @@ void RelationBuildTriggers(Relation relation)
|
|||
&skey, Anum_pg_trigger_tgrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(RelationGetRelid(relation)));
|
||||
|
||||
tgrel = heap_open(TriggerRelationId, AccessShareLock);
|
||||
tgscan = systable_beginscan(tgrel, TriggerRelidNameIndexId, true, SnapshotNow, 1, &skey);
|
||||
tgscan = systable_beginscan(tgrel, TriggerRelidNameIndexId, true, NULL, 1, &skey);
|
||||
|
||||
while (HeapTupleIsValid(htup = systable_getnext(tgscan))) {
|
||||
Form_pg_trigger pg_trigger = (Form_pg_trigger)GETSTRUCT(htup);
|
||||
|
|
@ -4490,7 +4490,7 @@ void AfterTriggerSetState(ConstraintsSetStmt* stmt)
|
|||
F_OIDEQ,
|
||||
ObjectIdGetDatum(namespaceId));
|
||||
|
||||
conscan = systable_beginscan(conrel, ConstraintNameNspIndexId, true, SnapshotNow, 2, skey);
|
||||
conscan = systable_beginscan(conrel, ConstraintNameNspIndexId, true, NULL, 2, skey);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(conscan))) {
|
||||
Form_pg_constraint con = (Form_pg_constraint)GETSTRUCT(tup);
|
||||
|
|
@ -4543,7 +4543,7 @@ void AfterTriggerSetState(ConstraintsSetStmt* stmt)
|
|||
|
||||
ScanKeyInit(&skey, Anum_pg_trigger_tgconstraint, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(conoid));
|
||||
|
||||
tgscan = systable_beginscan(tgrel, TriggerConstraintIndexId, true, SnapshotNow, 1, &skey);
|
||||
tgscan = systable_beginscan(tgrel, TriggerConstraintIndexId, true, NULL, 1, &skey);
|
||||
|
||||
while (HeapTupleIsValid(htup = systable_getnext(tgscan))) {
|
||||
Form_pg_trigger pg_trigger = (Form_pg_trigger)GETSTRUCT(htup);
|
||||
|
|
@ -5686,7 +5686,7 @@ void InvalidRelcacheForTriggerFunction(Oid funcoid, Oid returnType)
|
|||
* Find associated trigger with given function, and send invalid message to
|
||||
* the relation holding these triggers.
|
||||
*/
|
||||
sscan = systable_beginscan(trigRel, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
sscan = systable_beginscan(trigRel, InvalidOid, false, NULL, 0, NULL);
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(sscan))) {
|
||||
Form_pg_trigger trigger = (Form_pg_trigger)GETSTRUCT(tuple);
|
||||
if (trigger->tgfoid == funcoid) {
|
||||
|
|
|
|||
|
|
@ -1297,7 +1297,7 @@ static void makeConfigurationDependencies(HeapTuple tuple, bool removeOld, Relat
|
|||
ScanKeyInit(
|
||||
&skey, Anum_pg_ts_config_map_mapcfg, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(myself.objectId));
|
||||
|
||||
scan = systable_beginscan(mapRel, TSConfigMapIndexId, true, SnapshotNow, 1, &skey);
|
||||
scan = systable_beginscan(mapRel, TSConfigMapIndexId, true, NULL, 1, &skey);
|
||||
while (HeapTupleIsValid((maptup = systable_getnext(scan)))) {
|
||||
Form_pg_ts_config_map cfgmap = (Form_pg_ts_config_map)GETSTRUCT(maptup);
|
||||
|
||||
|
|
@ -1442,7 +1442,7 @@ void DefineTSConfiguration(List* names, List* parameters, List* cfoptions)
|
|||
|
||||
mapRel = heap_open(TSConfigMapRelationId, RowExclusiveLock);
|
||||
ScanKeyInit(&skey, Anum_pg_ts_config_map_mapcfg, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(sourceOid));
|
||||
scan = systable_beginscan(mapRel, TSConfigMapIndexId, true, SnapshotNow, 1, &skey);
|
||||
scan = systable_beginscan(mapRel, TSConfigMapIndexId, true, NULL, 1, &skey);
|
||||
while (HeapTupleIsValid((maptup = systable_getnext(scan)))) {
|
||||
Form_pg_ts_config_map cfgmap = (Form_pg_ts_config_map)GETSTRUCT(maptup);
|
||||
HeapTuple newmaptup;
|
||||
|
|
@ -1598,7 +1598,7 @@ void RemoveTSConfigurationById(Oid cfgId)
|
|||
/* Remove any pg_ts_config_map entries */
|
||||
relMap = heap_open(TSConfigMapRelationId, RowExclusiveLock);
|
||||
ScanKeyInit(&skey, Anum_pg_ts_config_map_mapcfg, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(cfgId));
|
||||
scan = systable_beginscan(relMap, TSConfigMapIndexId, true, SnapshotNow, 1, &skey);
|
||||
scan = systable_beginscan(relMap, TSConfigMapIndexId, true, NULL, 1, &skey);
|
||||
|
||||
while (HeapTupleIsValid((tup = systable_getnext(scan)))) {
|
||||
simple_heap_delete(relMap, &tup->t_self);
|
||||
|
|
@ -1836,7 +1836,7 @@ static void MakeConfigurationMapping(AlterTSConfigurationStmt* stmt, HeapTuple t
|
|||
F_INT4EQ,
|
||||
Int32GetDatum(tokens[i]));
|
||||
|
||||
scan = systable_beginscan(relMap, TSConfigMapIndexId, true, SnapshotNow, 2, skey);
|
||||
scan = systable_beginscan(relMap, TSConfigMapIndexId, true, NULL, 2, skey);
|
||||
|
||||
while (HeapTupleIsValid((maptup = systable_getnext(scan)))) {
|
||||
simple_heap_delete(relMap, &maptup->t_self);
|
||||
|
|
@ -1868,7 +1868,7 @@ static void MakeConfigurationMapping(AlterTSConfigurationStmt* stmt, HeapTuple t
|
|||
|
||||
ScanKeyInit(&skey[0], Anum_pg_ts_config_map_mapcfg, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(cfgId));
|
||||
|
||||
scan = systable_beginscan(relMap, TSConfigMapIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(relMap, TSConfigMapIndexId, true, NULL, 1, skey);
|
||||
|
||||
while (HeapTupleIsValid((maptup = systable_getnext(scan)))) {
|
||||
Form_pg_ts_config_map cfgmap = (Form_pg_ts_config_map)GETSTRUCT(maptup);
|
||||
|
|
@ -1969,7 +1969,7 @@ static void DropConfigurationMapping(AlterTSConfigurationStmt* stmt, HeapTuple t
|
|||
ScanKeyInit(
|
||||
&skey[1], Anum_pg_ts_config_map_maptokentype, BTEqualStrategyNumber, F_INT4EQ, Int32GetDatum(tokens[i]));
|
||||
|
||||
scan = systable_beginscan(relMap, TSConfigMapIndexId, true, SnapshotNow, 2, skey);
|
||||
scan = systable_beginscan(relMap, TSConfigMapIndexId, true, NULL, 2, skey);
|
||||
|
||||
while (HeapTupleIsValid((maptup = systable_getnext(scan)))) {
|
||||
simple_heap_delete(relMap, &maptup->t_self);
|
||||
|
|
|
|||
|
|
@ -2216,7 +2216,7 @@ void AlterDomainDropConstraint(List* names, const char* constrName, DropBehavior
|
|||
ScanKeyInit(
|
||||
&key[0], Anum_pg_constraint_contypid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(HeapTupleGetOid(tup)));
|
||||
|
||||
conscan = systable_beginscan(conrel, ConstraintTypidIndexId, true, SnapshotNow, 1, key);
|
||||
conscan = systable_beginscan(conrel, ConstraintTypidIndexId, true, NULL, 1, key);
|
||||
|
||||
/*
|
||||
* Scan over the result set, removing any matching entries.
|
||||
|
|
@ -2394,7 +2394,7 @@ void AlterDomainValidateConstraint(List* names, char* constrName)
|
|||
*/
|
||||
conrel = heap_open(ConstraintRelationId, RowExclusiveLock);
|
||||
ScanKeyInit(&key, Anum_pg_constraint_contypid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(domainoid));
|
||||
scan = systable_beginscan(conrel, ConstraintTypidIndexId, true, SnapshotNow, 1, &key);
|
||||
scan = systable_beginscan(conrel, ConstraintTypidIndexId, true, NULL, 1, &key);
|
||||
|
||||
while (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
con = (Form_pg_constraint)GETSTRUCT(tuple);
|
||||
|
|
@ -2558,7 +2558,7 @@ static List* get_rels_with_domain(Oid domainOid, LOCKMODE lockmode)
|
|||
ScanKeyInit(&key[0], Anum_pg_depend_refclassid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(TypeRelationId));
|
||||
ScanKeyInit(&key[1], Anum_pg_depend_refobjid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(domainOid));
|
||||
|
||||
depScan = systable_beginscan(depRel, DependReferenceIndexId, true, SnapshotNow, 2, key);
|
||||
depScan = systable_beginscan(depRel, DependReferenceIndexId, true, NULL, 2, key);
|
||||
|
||||
while (HeapTupleIsValid(depTup = systable_getnext(depScan))) {
|
||||
Form_pg_depend pg_depend = (Form_pg_depend)GETSTRUCT(depTup);
|
||||
|
|
@ -2859,7 +2859,7 @@ List* GetDomainConstraints(Oid typeOid)
|
|||
/* Look for CHECK Constraints on this domain */
|
||||
ScanKeyInit(&key[0], Anum_pg_constraint_contypid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(typeOid));
|
||||
|
||||
scan = systable_beginscan(conRel, ConstraintTypidIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(conRel, ConstraintTypidIndexId, true, NULL, 1, key);
|
||||
|
||||
while (HeapTupleIsValid(conTup = systable_getnext(scan))) {
|
||||
Form_pg_constraint c = (Form_pg_constraint)GETSTRUCT(conTup);
|
||||
|
|
|
|||
|
|
@ -327,7 +327,7 @@ void initSqlCountUser()
|
|||
t_thrd.utils_cxt.CurrentResourceOwner = ResourceOwnerCreate(NULL, "ForSqlCount", MEMORY_CONTEXT_OPTIMIZER);
|
||||
|
||||
Relation relation = heap_open(AuthIdRelationId, AccessShareLock);
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, NULL, 0, NULL);
|
||||
HeapTuple tup = NULL;
|
||||
|
||||
while (HeapTupleIsValid((tup = systable_getnext(scan)))) {
|
||||
|
|
@ -3237,7 +3237,7 @@ void DropRole(DropRoleStmt* stmt)
|
|||
*/
|
||||
ScanKeyInit(&scankey, Anum_pg_auth_members_roleid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(roleid));
|
||||
|
||||
SysScanDesc sscan = systable_beginscan(pg_auth_members_rel, AuthMemRoleMemIndexId, true, SnapshotNow, 1, &scankey);
|
||||
SysScanDesc sscan = systable_beginscan(pg_auth_members_rel, AuthMemRoleMemIndexId, true, NULL, 1, &scankey);
|
||||
HeapTuple tmp_tuple = NULL;
|
||||
while (HeapTupleIsValid(tmp_tuple = systable_getnext(sscan))) {
|
||||
simple_heap_delete(pg_auth_members_rel, &tmp_tuple->t_self);
|
||||
|
|
@ -3247,7 +3247,7 @@ void DropRole(DropRoleStmt* stmt)
|
|||
|
||||
ScanKeyInit(&scankey, Anum_pg_auth_members_member, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(roleid));
|
||||
|
||||
sscan = systable_beginscan(pg_auth_members_rel, AuthMemMemRoleIndexId, true, SnapshotNow, 1, &scankey);
|
||||
sscan = systable_beginscan(pg_auth_members_rel, AuthMemMemRoleIndexId, true, NULL, 1, &scankey);
|
||||
|
||||
while (HeapTupleIsValid(tmp_tuple = systable_getnext(sscan))) {
|
||||
simple_heap_delete(pg_auth_members_rel, &tmp_tuple->t_self);
|
||||
|
|
@ -4499,7 +4499,7 @@ static void AddAuthHistory(Oid roleID, const char* rolename, const char* passwd,
|
|||
fromTime = TimestampGetDatum(fromTimeDatum);
|
||||
/* get all the records from pg_auth_history of the roleID */
|
||||
ScanKeyInit(&key[0], Anum_pg_auth_history_roloid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(roleID));
|
||||
scan = systable_beginscan(pg_auth_history_rel, AuthHistoryIndexId, true, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(pg_auth_history_rel, AuthHistoryIndexId, true, NULL, 1, key);
|
||||
|
||||
/* get the tuple according to reverse order of the index */
|
||||
while (HeapTupleIsValid(password_tuple = systable_getnext_back(scan))) {
|
||||
|
|
@ -4600,7 +4600,7 @@ static void DropAuthHistory(Oid roleID)
|
|||
|
||||
ScanKeyInit(&scankey, Anum_pg_auth_history_roloid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(roleID));
|
||||
|
||||
sscan = systable_beginscan(pg_auth_history_rel, AuthHistoryIndexId, true, SnapshotNow, 1, &scankey);
|
||||
sscan = systable_beginscan(pg_auth_history_rel, AuthHistoryIndexId, true, NULL, 1, &scankey);
|
||||
|
||||
while (HeapTupleIsValid(tmp_tuple = systable_getnext(sscan))) {
|
||||
simple_heap_delete(pg_auth_history_rel, &tmp_tuple->t_self);
|
||||
|
|
|
|||
|
|
@ -1237,7 +1237,7 @@ void vac_update_datfrozenxid(void)
|
|||
*/
|
||||
relation = heap_open(RelationRelationId, AccessShareLock);
|
||||
|
||||
scan = systable_beginscan(relation, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
scan = systable_beginscan(relation, InvalidOid, false, NULL, 0, NULL);
|
||||
|
||||
while ((classTup = systable_getnext(scan)) != NULL) {
|
||||
Form_pg_class classForm = (Form_pg_class)GETSTRUCT(classTup);
|
||||
|
|
@ -2700,7 +2700,7 @@ void CalculatePartitionedRelStats(_in_ Relation partitionRel, _in_ Relation part
|
|||
F_OIDEQ,
|
||||
ObjectIdGetDatum(RelationGetRelid(partitionRel)));
|
||||
|
||||
SysScanDesc partScan = systable_beginscan(partRel, PartitionParentOidIndexId, true, SnapshotNow, 2, partKey);
|
||||
SysScanDesc partScan = systable_beginscan(partRel, PartitionParentOidIndexId, true, NULL, 2, partKey);
|
||||
|
||||
HeapTuple partTuple = NULL;
|
||||
/* compute all pages, tuples and the minimum frozenXid */
|
||||
|
|
|
|||
|
|
@ -10704,7 +10704,7 @@ bool findConstraintByVar(Var* var, Oid relid, constraintType conType)
|
|||
ScanKeyInit(&skey[0], Anum_pg_constraint_conrelid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relid));
|
||||
|
||||
conrel = heap_open(ConstraintRelationId, AccessShareLock);
|
||||
conscan = systable_beginscan(conrel, ConstraintRelidIndexId, true, SnapshotNow, 1, skey);
|
||||
conscan = systable_beginscan(conrel, ConstraintRelidIndexId, true, NULL, 1, skey);
|
||||
|
||||
/* Forantion table only can exist one information constraint now. */
|
||||
while (HeapTupleIsValid(htup = systable_getnext(conscan))) {
|
||||
|
|
|
|||
|
|
@ -804,7 +804,7 @@ static bool IsEqualOpr(Oid opno)
|
|||
|
||||
ScanKeyInit(&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, opno);
|
||||
|
||||
scan = systable_beginscan(pg_operator, OperatorOidIndexId, true, SnapshotNow, 1, skey);
|
||||
scan = systable_beginscan(pg_operator, OperatorOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
/* Only one record should be qualified, and get the relid */
|
||||
if (HeapTupleIsValid(tuple = systable_getnext(scan))) {
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ void RemoveRewriteRuleById(Oid ruleOid)
|
|||
*/
|
||||
ScanKeyInit(&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(ruleOid));
|
||||
|
||||
rcscan = systable_beginscan(RewriteRelation, RewriteOidIndexId, true, SnapshotNow, 1, skey);
|
||||
rcscan = systable_beginscan(RewriteRelation, RewriteOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
tuple = systable_getnext(rcscan);
|
||||
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ char* get_rewrite_rulename(Oid ruleid, bool missing_ok)
|
|||
errno_t rc;
|
||||
Relation rewrite_rel = heap_open(RewriteRelationId, AccessShareLock);
|
||||
ScanKeyInit(&entry, ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(ruleid));
|
||||
scan = systable_beginscan(rewrite_rel, RewriteOidIndexId, true, SnapshotNow, 1, &entry);
|
||||
scan = systable_beginscan(rewrite_rel, RewriteOidIndexId, true, NULL, 1, &entry);
|
||||
rewrite_tup = systable_getnext(scan);
|
||||
if (!HeapTupleIsValid(rewrite_tup)) {
|
||||
if (missing_ok) {
|
||||
|
|
@ -158,7 +158,7 @@ bool rel_has_rule(Oid relid, char ev_type)
|
|||
HeapTuple rewrite_tup;
|
||||
Relation rewrite_rel = heap_open(RewriteRelationId, AccessShareLock);
|
||||
ScanKeyInit(&entry, Anum_pg_rewrite_ev_class, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(relid));
|
||||
scan = systable_beginscan(rewrite_rel, RewriteRelRulenameIndexId, true, SnapshotNow, 1, &entry);
|
||||
scan = systable_beginscan(rewrite_rel, RewriteRelRulenameIndexId, true, NULL, 1, &entry);
|
||||
while (HeapTupleIsValid((rewrite_tup = systable_getnext(scan)))) {
|
||||
Form_pg_rewrite pg_rewrite = (Form_pg_rewrite)GETSTRUCT(rewrite_tup);
|
||||
if (pg_rewrite->ev_type == ev_type) {
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@ void SaveDataToFile(const char* filename)
|
|||
{
|
||||
Oid encodingTable = RelnameGetRelid("gs_wlm_plan_encoding_table");
|
||||
Relation relation = heap_open(encodingTable, AccessShareLock);
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, SnapshotNow, 0, NULL);
|
||||
SysScanDesc scan = systable_beginscan(relation, InvalidOid, false, NULL, 0, NULL);
|
||||
HeapTuple tuple;
|
||||
TreeEncPtr enc;
|
||||
FILE* fpout = NULL;
|
||||
|
|
|
|||
|
|
@ -508,7 +508,7 @@ static void check_xact_readonly(Node* parse_tree)
|
|||
*/
|
||||
void PreventCommandIfReadOnly(const char* cmd_name)
|
||||
{
|
||||
if (u_sess->attr.attr_common.XactReadOnly)
|
||||
if (u_sess->attr.attr_common.XactReadOnly && u_sess->attr.attr_storage.replorigin_sesssion_origin == 0)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_READ_ONLY_SQL_TRANSACTION),
|
||||
/* translator: %s is name of a SQL command, eg CREATE */
|
||||
|
|
|
|||
|
|
@ -1029,7 +1029,7 @@ static CStoreStrategyNumber GetCStoreScanStrategyNumber(Oid opno)
|
|||
|
||||
ScanKeyInit(&skey[0], ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(opno));
|
||||
hdesc = heap_open(OperatorRelationId, AccessShareLock);
|
||||
sysscan = systable_beginscan(hdesc, OperatorOidIndexId, true, SnapshotNow, 1, skey);
|
||||
sysscan = systable_beginscan(hdesc, OperatorOidIndexId, true, NULL, 1, skey);
|
||||
|
||||
tuple = systable_getnext(sysscan);
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
|
|
|
|||
|
|
@ -328,7 +328,7 @@ static void update_filters(const filters_set *filters_to_update, Relation policy
|
|||
|
||||
/* Search tuple by index */
|
||||
SysScanDesc scanDesc = systable_beginscan(policy_filters_relation, GsAuditingPolicyFiltersPolicyOidIndexId,
|
||||
true, SnapshotNow, 1, scanKey);
|
||||
true, NULL, 1, scanKey);
|
||||
|
||||
HeapTuple auditingPolicyTuple = systable_getnext(scanDesc);
|
||||
if (!HeapTupleIsValid(auditingPolicyTuple)) {
|
||||
|
|
@ -483,7 +483,7 @@ static bool update_policy(const GsPolicyStruct *policy, Relation relation, bool
|
|||
/*
|
||||
* set up for heap-or-index scan, not need to check tgscan as systable_getnext will deal with sysscan->irel = NULL
|
||||
*/
|
||||
SysScanDesc tgscan = systable_beginscan(relation, GsAuditingPolicyOidIndexId, true, SnapshotNow, 1, &skey);
|
||||
SysScanDesc tgscan = systable_beginscan(relation, GsAuditingPolicyOidIndexId, true, NULL, 1, &skey);
|
||||
HeapTuple tup;
|
||||
tup = systable_getnext(tgscan);
|
||||
if (!tup || !HeapTupleIsValid(tup)) {
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ void load_existing_masking_labels(policy_labelname_set *policy_labels, Oid polic
|
|||
|
||||
/* Search tuple by index */
|
||||
SysScanDesc scanDesc = systable_beginscan(relation, GsMaskingPolicyActionsPolicyOidIndexId,
|
||||
true, SnapshotNow, 1, scanKey);
|
||||
true, NULL, 1, scanKey);
|
||||
|
||||
while ((maskingPolicyTuple = systable_getnext(scanDesc)) != NULL) {
|
||||
rel_data = (Form_gs_masking_policy_actions)GETSTRUCT(maskingPolicyTuple);
|
||||
|
|
@ -442,7 +442,7 @@ static void update_masking_filters(const filters_set* filters_to_update, Relatio
|
|||
SysScanDesc scanDesc = systable_beginscan(policy_filters_relation,
|
||||
GsMaskingPolicyFiltersPolicyOidIndexId,
|
||||
true,
|
||||
SnapshotNow,
|
||||
NULL,
|
||||
1,
|
||||
scanKey);
|
||||
|
||||
|
|
@ -486,7 +486,7 @@ static void get_policy_filter(gs_stl::gs_string *filter, Oid polid)
|
|||
SysScanDesc scanDesc = systable_beginscan(rel,
|
||||
GsMaskingPolicyFiltersPolicyOidIndexId,
|
||||
true,
|
||||
SnapshotNow,
|
||||
NULL,
|
||||
1,
|
||||
scanKey);
|
||||
|
||||
|
|
@ -736,7 +736,7 @@ static bool update_policy(const GsPolicyStruct* policy, Relation relation,
|
|||
BTEqualStrategyNumber, F_OIDEQ,
|
||||
ObjectIdGetDatum(policy->m_id));
|
||||
|
||||
SysScanDesc tgscan = systable_beginscan(relation, GsMaskingPolicyOidIndexId, true, SnapshotNow, 1, &skey);
|
||||
SysScanDesc tgscan = systable_beginscan(relation, GsMaskingPolicyOidIndexId, true, NULL, 1, &skey);
|
||||
HeapTuple tup = NULL;
|
||||
if (tgscan == NULL) {
|
||||
(void)err_msg->append("could not scan index GsMaskingPolicyOidIndexId.");
|
||||
|
|
@ -818,7 +818,7 @@ static inline bool update_labels_in_masking_action(const PgPolicyMaskingActionSt
|
|||
BTEqualStrategyNumber, F_OIDEQ,
|
||||
ObjectIdGetDatum(it->second->begin()->m_id));
|
||||
|
||||
SysScanDesc tgscan = systable_beginscan(relation, GsMaskingPolicyActionsOidIndexId, true, SnapshotNow, 1, &skey);
|
||||
SysScanDesc tgscan = systable_beginscan(relation, GsMaskingPolicyActionsOidIndexId, true, NULL, 1, &skey);
|
||||
HeapTuple tup = NULL;
|
||||
if (tgscan == NULL) {
|
||||
(void)err_msg->append("could not scan index GsMaskingPolicyActionsOidIndexId.");
|
||||
|
|
|
|||
|
|
@ -223,7 +223,7 @@ bool scan_to_delete_from_relation(long long row_id, Relation relation, unsigned
|
|||
BTEqualStrategyNumber, F_OIDEQ,
|
||||
ObjectIdGetDatum(row_id));
|
||||
|
||||
SysScanDesc tgscan = systable_beginscan(relation, index_id, true, SnapshotNow, 1, &skey);
|
||||
SysScanDesc tgscan = systable_beginscan(relation, index_id, true, NULL, 1, &skey);
|
||||
|
||||
HeapTuple tup = systable_getnext(tgscan);
|
||||
if (!HeapTupleIsValid(tup)) {
|
||||
|
|
|
|||
|
|
@ -782,7 +782,7 @@ static void remove_policy_label(Relation relation, GsPolicyLabel *item,
|
|||
ScanKeyData skey;
|
||||
/* Find the label row to delete. */
|
||||
ScanKeyInit(&skey, ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(item->m_id));
|
||||
SysScanDesc tgscan = systable_beginscan(relation, GsPolicyLabelOidIndexId, true, SnapshotNow, 1, &skey);
|
||||
SysScanDesc tgscan = systable_beginscan(relation, GsPolicyLabelOidIndexId, true, NULL, 1, &skey);
|
||||
HeapTuple tup = systable_getnext(tgscan);
|
||||
if (!HeapTupleIsValid(tup)) {
|
||||
ereport(ERROR, (errcode(ERRCODE_TRIGGERED_INVALID_TUPLE),
|
||||
|
|
@ -943,7 +943,7 @@ static void remove_label(const policy_labels_set *label_resources, Relation rela
|
|||
* Find the label row to delete.
|
||||
*/
|
||||
ScanKeyInit(&skey, ObjectIdAttributeNumber, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(it->m_id));
|
||||
SysScanDesc tgscan = systable_beginscan(relation, GsPolicyLabelOidIndexId, true, SnapshotNow, 1, &skey);
|
||||
SysScanDesc tgscan = systable_beginscan(relation, GsPolicyLabelOidIndexId, true, NULL, 1, &skey);
|
||||
HeapTuple tup = systable_getnext(tgscan);
|
||||
if (!HeapTupleIsValid(tup))
|
||||
ereport(ERROR,
|
||||
|
|
|
|||
|
|
@ -81,7 +81,12 @@ void heap_page_prune_opt(Relation relation, Buffer buffer)
|
|||
if (RecoveryInProgress())
|
||||
return;
|
||||
|
||||
oldest_xmin = u_sess->utils_cxt.RecentGlobalXmin;
|
||||
if (IsCatalogRelation(relation) ||
|
||||
RelationIsAccessibleInLogicalDecoding(relation)) {
|
||||
oldest_xmin = u_sess->utils_cxt.RecentGlobalXmin;
|
||||
} else {
|
||||
oldest_xmin = u_sess->utils_cxt.RecentGlobalDataXmin;
|
||||
}
|
||||
|
||||
Assert(TransactionIdIsValid(oldest_xmin));
|
||||
|
||||
|
|
|
|||
|
|
@ -323,6 +323,10 @@ SysScanDesc systable_beginscan(Relation heap_relation, Oid index_id, bool index_
|
|||
} else
|
||||
irel = NULL;
|
||||
|
||||
if (snapshot == NULL) {
|
||||
snapshot = GetCatalogSnapshot();
|
||||
}
|
||||
|
||||
sysscan = (SysScanDesc)palloc(sizeof(SysScanDescData));
|
||||
|
||||
sysscan->heap_rel = heap_relation;
|
||||
|
|
|
|||
|
|
@ -691,6 +691,13 @@ static XLogRecData *XLogRecordAssemble(RmgrId rmid, uint8 info, XLogFPWInfo fpw_
|
|||
scratch += sizeof(XLogRecPtr);
|
||||
}
|
||||
|
||||
/* followed by the record's origin, if any */
|
||||
if (u_sess->attr.attr_storage.replorigin_sesssion_origin == 0 &&
|
||||
(u_sess->attr.attr_sql.enable_cluster_resize || t_thrd.role == AUTOVACUUM_WORKER)) {
|
||||
t_thrd.xlog_cxt.include_origin = true;
|
||||
u_sess->attr.attr_storage.replorigin_sesssion_origin = 1;
|
||||
}
|
||||
|
||||
/* followed by the record's origin, if any */
|
||||
if (t_thrd.xlog_cxt.include_origin && u_sess->attr.attr_storage.replorigin_sesssion_origin != InvalidRepOriginId) {
|
||||
*(scratch++) = XLR_BLOCK_ID_ORIGIN;
|
||||
|
|
|
|||
|
|
@ -4720,7 +4720,7 @@ void CStoreDropColumnInCuDesc(Relation rel, AttrNumber attrnum)
|
|||
int attrno = attrnum;
|
||||
ScanKeyInit(&key[0], (AttrNumber)CUDescColIDAttr, BTEqualStrategyNumber, F_INT4EQ, Int32GetDatum(attrno));
|
||||
|
||||
scan = systable_beginscan(cudescHeap, rel->rd_rel->relcudescidx, false, SnapshotNow, 1, key);
|
||||
scan = systable_beginscan(cudescHeap, rel->rd_rel->relcudescidx, false, NULL, 1, key);
|
||||
|
||||
while (HeapTupleIsValid(tup = systable_getnext(scan))) {
|
||||
simple_heap_delete(cudescHeap, &tup->t_self);
|
||||
|
|
|
|||
|
|
@ -4090,6 +4090,7 @@ Snapshot GetLocalSnapshotData(Snapshot snapshot)
|
|||
snapshot->takenDuringRecovery = snapxid->takenDuringRecovery;
|
||||
|
||||
TransactionId replication_slot_xmin = g_instance.proc_array_idx->replication_slot_xmin;
|
||||
TransactionId replication_slot_catalog_xmin = g_instance.proc_array_idx->replication_slot_catalog_xmin;
|
||||
|
||||
if (!TransactionIdIsValid(t_thrd.pgxact->xmin)) {
|
||||
t_thrd.pgxact->xmin = u_sess->utils_cxt.TransactionXmin = snapxid->xmin;
|
||||
|
|
@ -4108,6 +4109,18 @@ Snapshot GetLocalSnapshotData(Snapshot snapshot)
|
|||
TransactionIdPrecedes(replication_slot_xmin, u_sess->utils_cxt.RecentGlobalXmin))
|
||||
u_sess->utils_cxt.RecentGlobalXmin = replication_slot_xmin;
|
||||
|
||||
/* Non-catalog tables can be vacuumed if older than this xid */
|
||||
u_sess->utils_cxt.RecentGlobalDataXmin = u_sess->utils_cxt.RecentGlobalXmin;
|
||||
|
||||
/*
|
||||
* Check whether there's a replication slot requiring an older catalog
|
||||
* xmin.
|
||||
*/
|
||||
if (TransactionIdIsNormal(replication_slot_catalog_xmin) &&
|
||||
NormalTransactionIdPrecedes(replication_slot_catalog_xmin, u_sess->utils_cxt.RecentGlobalXmin)) {
|
||||
u_sess->utils_cxt.RecentGlobalXmin = replication_slot_catalog_xmin;
|
||||
}
|
||||
|
||||
u_sess->utils_cxt.RecentXmin = snapxid->xmin;
|
||||
snapshot->xmin = snapxid->xmin;
|
||||
snapshot->xmax = snapxid->xmax;
|
||||
|
|
@ -4117,8 +4130,6 @@ Snapshot GetLocalSnapshotData(Snapshot snapshot)
|
|||
snapshot->active_count = 0;
|
||||
snapshot->regd_count = 0;
|
||||
snapshot->copied = false;
|
||||
/* Non-catalog tables can be vacuumed if older than this xid */
|
||||
u_sess->utils_cxt.RecentGlobalDataXmin = u_sess->utils_cxt.RecentGlobalXmin;
|
||||
|
||||
ReleaseSnapshotData(snapshot);
|
||||
|
||||
|
|
|
|||
|
|
@ -440,12 +440,6 @@ static void DecodeHeap3Op(LogicalDecodingContext *ctx, XLogRecordBuffer *buf)
|
|||
|
||||
switch (info) {
|
||||
case XLOG_HEAP3_NEW_CID: {
|
||||
xl_heap_new_cid *xlrec = NULL;
|
||||
int bucket_id = 0;
|
||||
xlrec = (xl_heap_new_cid *)buf->record_data;
|
||||
bucket_id = XLogRecGetBucketId(buf->record);
|
||||
SnapBuildProcessNewCid(builder, xid, buf->origptr, xlrec, bucket_id);
|
||||
|
||||
break;
|
||||
}
|
||||
case XLOG_HEAP3_REWRITE:
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ extern bool IsXidVisibleInGtmLiteLocalSnapshot(TransactionId xid, Snapshot snaps
|
|||
|
||||
extern Snapshot GetTransactionSnapshot(bool force_local_snapshot = false);
|
||||
extern Snapshot GetLatestSnapshot(void);
|
||||
extern Snapshot GetCatalogSnapshot(Oid relid);
|
||||
extern Snapshot GetCatalogSnapshot();
|
||||
extern void SnapshotSetCommandId(CommandId curcid);
|
||||
extern Snapshot GetNonHistoricCatalogSnapshot(Oid relid);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue