修复表上有BRU触发器时的一些问题。
BRU触发器中可能更新分区键,此时我们需要重新计算元组所属的分区;
当UPDATE时遇到CONCURRENTLY UPDATE/DELETE场景时,MERGE INTO需要
重新判断是否匹配,触发器中执行EPQ后投影的结果错误,可能导致宕机。
This commit is contained in:
@ -46,7 +46,7 @@ extern TupleTableSlot* ExecDelete(ItemPointer tupleid, Oid deletePartitionOid, i
|
||||
|
||||
extern TupleTableSlot* ExecUpdate(ItemPointer tupleid, Oid oldPartitionOid, int2 bucketid, HeapTupleHeader oldtuple,
|
||||
TupleTableSlot* slot, TupleTableSlot* planSlot, EPQState* epqstate, ModifyTableState* node, bool canSetTag,
|
||||
bool partKeyUpdate, TM_Result* out_result, char* partExprKeyStr = NULL);
|
||||
bool partKeyUpdate, TM_Result* uresultp = NULL, char* partExprKeyStr = NULL, TM_FailureData* tmfd = NULL);
|
||||
|
||||
template <bool useHeapMultiInsert>
|
||||
extern TupleTableSlot* ExecInsertT(ModifyTableState* state, TupleTableSlot* slot, TupleTableSlot* planSlot,
|
||||
|
||||
Reference in New Issue
Block a user