mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-28 09:46:44 +08:00
Replace ExecBRInsertTriggersCompat with fixed code
PG12 implementation of ExecBRInsertTriggers changes given slot in place and return Boolean indicating success, which is different from earlier implementations where it returned new slot value. This commit fixes a bug in the compatability macro and its usage.
This commit is contained in:
parent
d2d5a484ce
commit
fe87ac40be
12
src/compat.h
12
src/compat.h
@ -383,18 +383,6 @@ MakeTupleTableSlotCompat(TupleDesc tupdesc, void *tts_ops)
|
||||
|
||||
#endif
|
||||
|
||||
/* ExecBRInsertTriggers */
|
||||
#if PG12_LT
|
||||
#define ExecBRInsertTriggersCompat(estate, relinfo, slot) \
|
||||
do \
|
||||
{ \
|
||||
slot = ExecBRInsertTriggers(estate, relinfo, slot); \
|
||||
} while (0)
|
||||
#else
|
||||
#define ExecBRInsertTriggersCompat(estate, relinfo, slot) \
|
||||
ExecBRInsertTriggers(estate, relinfo, slot)
|
||||
#endif
|
||||
|
||||
/* fmgr
|
||||
* In a9c35cf postgres changed how it calls SQL functions so that the number of
|
||||
* argument-slots allocated is chosen dynamically, instead of being fixed. This
|
||||
|
10
src/copy.c
10
src/copy.c
@ -332,10 +332,12 @@ copyfrom(CopyChunkState *ccstate, List *range_table, Hypertable *ht)
|
||||
/* BEFORE ROW INSERT Triggers */
|
||||
if (resultRelInfo->ri_TrigDesc && resultRelInfo->ri_TrigDesc->trig_insert_before_row)
|
||||
{
|
||||
ExecBRInsertTriggersCompat(estate, resultRelInfo, myslot);
|
||||
|
||||
if (myslot == NULL) /* "do nothing" */
|
||||
skip_tuple = true;
|
||||
#if PG12_LT
|
||||
myslot = ExecBRInsertTriggers(estate, resultRelInfo, myslot);
|
||||
skip_tuple = (myslot == NULL);
|
||||
#else
|
||||
skip_tuple = !ExecBRInsertTriggers(estate, resultRelInfo, myslot);
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!skip_tuple)
|
||||
|
Loading…
x
Reference in New Issue
Block a user