Skip to content

Commit 992a7ad

Browse files
committed
improve function pathman_update_trigger_func_move_tuple()
1 parent 2604a1c commit 992a7ad

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

src/partition_filter.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ build_part_tuple_map(Relation parent_rel, Relation child_rel)
344344
TupleDesc child_tupdesc,
345345
parent_tupdesc;
346346

347-
/* Use fake 'tdtypeid' in order to fool convert_tuples_by_name() */
347+
/* HACK: use fake 'tdtypeid' in order to fool convert_tuples_by_name() */
348348
child_tupdesc = CreateTupleDescCopy(RelationGetDescr(child_rel));
349349
child_tupdesc->tdtypeid = InvalidOid;
350350

src/pl_funcs.c

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1212,11 +1212,18 @@ pathman_update_trigger_func_move_tuple(Relation source_rel,
12121212
HeapTuple old_tuple,
12131213
HeapTuple new_tuple)
12141214
{
1215-
TupleDesc source_tupdesc = RelationGetDescr(source_rel),
1216-
target_tupdesc = RelationGetDescr(target_rel);
1215+
TupleDesc source_tupdesc,
1216+
target_tupdesc;
12171217
HeapTuple target_tuple;
12181218
TupleConversionMap *conversion_map;
12191219

1220+
/* HACK: use fake 'tdtypeid' in order to fool convert_tuples_by_name() */
1221+
source_tupdesc = CreateTupleDescCopy(RelationGetDescr(source_rel));
1222+
source_tupdesc->tdtypeid = InvalidOid;
1223+
1224+
target_tupdesc = CreateTupleDescCopy(RelationGetDescr(target_rel));
1225+
target_tupdesc->tdtypeid = InvalidOid;
1226+
12201227
/* Build tuple conversion map */
12211228
conversion_map = convert_tuples_by_name(source_tupdesc,
12221229
target_tupdesc,
@@ -1286,6 +1293,10 @@ pathman_update_trigger_func_move_tuple(Relation source_rel,
12861293
}
12871294
/* Else emit error */
12881295
else elog(ERROR, "could not connect using SPI");
1296+
1297+
/* At last, free these temporary tuple descs */
1298+
FreeTupleDesc(source_tupdesc);
1299+
FreeTupleDesc(target_tupdesc);
12891300
}
12901301

12911302
/* Create UPDATE triggers for all partitions */

0 commit comments

Comments
 (0)