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;
|
Relation pgDistTransaction = NULL;
|
||||||
SysScanDesc scanDescriptor = NULL;
|
SysScanDesc scanDescriptor = NULL;
|
||||||
ScanKeyData scanKey[1];
|
ScanKeyData scanKey[2];
|
||||||
int scanKeyCount = 1;
|
int scanKeyCount = 2;
|
||||||
bool indexOK = true;
|
bool indexOK = true;
|
||||||
HeapTuple heapTuple = NULL;
|
HeapTuple heapTuple = NULL;
|
||||||
bool heapTupleFound = false;
|
bool heapTupleFound = false;
|
||||||
|
@ -488,9 +488,11 @@ DeleteTransactionRecord(int32 groupId, char *transactionName)
|
||||||
|
|
||||||
ScanKeyInit(&scanKey[0], Anum_pg_dist_transaction_groupid,
|
ScanKeyInit(&scanKey[0], Anum_pg_dist_transaction_groupid,
|
||||||
BTEqualStrategyNumber, F_INT4EQ, Int32GetDatum(groupId));
|
BTEqualStrategyNumber, F_INT4EQ, Int32GetDatum(groupId));
|
||||||
|
ScanKeyInit(&scanKey[1], Anum_pg_dist_transaction_gid,
|
||||||
|
BTEqualStrategyNumber, F_TEXTEQ, CStringGetTextDatum(transactionName));
|
||||||
|
|
||||||
scanDescriptor = systable_beginscan(pgDistTransaction,
|
scanDescriptor = systable_beginscan(pgDistTransaction,
|
||||||
DistTransactionGroupIndexId(), indexOK,
|
DistTransactionRecordIndexId(), indexOK,
|
||||||
NULL, scanKeyCount, scanKey);
|
NULL, scanKeyCount, scanKey);
|
||||||
|
|
||||||
heapTuple = systable_getnext(scanDescriptor);
|
heapTuple = systable_getnext(scanDescriptor);
|
||||||
|
|
|
@ -113,6 +113,7 @@ typedef struct MetadataCacheData
|
||||||
Oid distPlacementGroupidIndexId;
|
Oid distPlacementGroupidIndexId;
|
||||||
Oid distTransactionRelationId;
|
Oid distTransactionRelationId;
|
||||||
Oid distTransactionGroupIndexId;
|
Oid distTransactionGroupIndexId;
|
||||||
|
Oid distTransactionRecordIndexId;
|
||||||
Oid extraDataContainerFuncId;
|
Oid extraDataContainerFuncId;
|
||||||
Oid workerHashFunctionId;
|
Oid workerHashFunctionId;
|
||||||
Oid extensionOwner;
|
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 */
|
/* return oid of pg_dist_placement_groupid_index */
|
||||||
Oid
|
Oid
|
||||||
DistPlacementGroupidIndexId(void)
|
DistPlacementGroupidIndexId(void)
|
||||||
|
|
|
@ -117,6 +117,7 @@ extern Oid DistPlacementShardidIndexId(void);
|
||||||
extern Oid DistPlacementPlacementidIndexId(void);
|
extern Oid DistPlacementPlacementidIndexId(void);
|
||||||
extern Oid DistTransactionRelationId(void);
|
extern Oid DistTransactionRelationId(void);
|
||||||
extern Oid DistTransactionGroupIndexId(void);
|
extern Oid DistTransactionGroupIndexId(void);
|
||||||
|
extern Oid DistTransactionRecordIndexId(void);
|
||||||
extern Oid DistPlacementGroupidIndexId(void);
|
extern Oid DistPlacementGroupidIndexId(void);
|
||||||
|
|
||||||
/* function oids */
|
/* function oids */
|
||||||
|
|
Loading…
Reference in New Issue