mirror of https://github.com/citusdata/citus.git
Merge pull request #1667 from citusdata/recovery_index_fix
Use unique constraint index for transaction record deletionpull/1676/head
commit
8483d6213b
|
@ -478,8 +478,8 @@ DeleteTransactionRecord(int32 groupId, char *transactionName)
|
|||
{
|
||||
Relation pgDistTransaction = NULL;
|
||||
SysScanDesc scanDescriptor = NULL;
|
||||
ScanKeyData scanKey[1];
|
||||
int scanKeyCount = 1;
|
||||
ScanKeyData scanKey[2];
|
||||
int scanKeyCount = 2;
|
||||
bool indexOK = true;
|
||||
HeapTuple heapTuple = NULL;
|
||||
bool heapTupleFound = false;
|
||||
|
@ -488,9 +488,11 @@ DeleteTransactionRecord(int32 groupId, char *transactionName)
|
|||
|
||||
ScanKeyInit(&scanKey[0], Anum_pg_dist_transaction_groupid,
|
||||
BTEqualStrategyNumber, F_INT4EQ, Int32GetDatum(groupId));
|
||||
ScanKeyInit(&scanKey[1], Anum_pg_dist_transaction_gid,
|
||||
BTEqualStrategyNumber, F_TEXTEQ, CStringGetTextDatum(transactionName));
|
||||
|
||||
scanDescriptor = systable_beginscan(pgDistTransaction,
|
||||
DistTransactionGroupIndexId(), indexOK,
|
||||
DistTransactionRecordIndexId(), indexOK,
|
||||
NULL, scanKeyCount, scanKey);
|
||||
|
||||
heapTuple = systable_getnext(scanDescriptor);
|
||||
|
|
|
@ -113,6 +113,7 @@ typedef struct MetadataCacheData
|
|||
Oid distPlacementGroupidIndexId;
|
||||
Oid distTransactionRelationId;
|
||||
Oid distTransactionGroupIndexId;
|
||||
Oid distTransactionRecordIndexId;
|
||||
Oid extraDataContainerFuncId;
|
||||
Oid workerHashFunctionId;
|
||||
Oid extensionOwner;
|
||||
|
@ -1796,6 +1797,17 @@ DistTransactionGroupIndexId(void)
|
|||
}
|
||||
|
||||
|
||||
/* return oid of pg_dist_transaction_unique_constraint */
|
||||
Oid
|
||||
DistTransactionRecordIndexId(void)
|
||||
{
|
||||
CachedRelationLookup("pg_dist_transaction_unique_constraint",
|
||||
&MetadataCache.distTransactionRecordIndexId);
|
||||
|
||||
return MetadataCache.distTransactionRecordIndexId;
|
||||
}
|
||||
|
||||
|
||||
/* return oid of pg_dist_placement_groupid_index */
|
||||
Oid
|
||||
DistPlacementGroupidIndexId(void)
|
||||
|
|
|
@ -117,6 +117,7 @@ extern Oid DistPlacementShardidIndexId(void);
|
|||
extern Oid DistPlacementPlacementidIndexId(void);
|
||||
extern Oid DistTransactionRelationId(void);
|
||||
extern Oid DistTransactionGroupIndexId(void);
|
||||
extern Oid DistTransactionRecordIndexId(void);
|
||||
extern Oid DistPlacementGroupidIndexId(void);
|
||||
|
||||
/* function oids */
|
||||
|
|
Loading…
Reference in New Issue