Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7e76912

Browse files
committed
Add support of pg11
1 parent4666195 commit7e76912

File tree

3 files changed

+29
-24
lines changed

3 files changed

+29
-24
lines changed

‎src/include/compat/pg_compat.h

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -802,17 +802,6 @@ extern AttrNumber *convert_tuples_by_name_map(TupleDesc indesc,
802802
MakeTupleTableSlot()
803803
#endif
804804

805-
/*
806-
* ExecInitExtraTupleSlot()
807-
*/
808-
#ifPG_VERSION_NUM >=110000
809-
#defineExecInitExtraTupleSlotCompat(estate) \
810-
ExecInitExtraTupleSlot((estate), NULL)
811-
#else
812-
#defineExecInitExtraTupleSlotCompat(estate) \
813-
ExecInitExtraTupleSlot(estate)
814-
#endif
815-
816805
/*
817806
* BackgroundWorkerInitializeConnectionByOid()
818807
*/
@@ -877,7 +866,6 @@ extern AttrNumber *convert_tuples_by_name_map(TupleDesc indesc,
877866
find_childrel_appendrelinfo((root), (rel))
878867
#endif
879868

880-
881869
/*
882870
* HeapTupleGetXmin()
883871
* Vanilla PostgreSQL has HeaptTupleHeaderGetXmin, but for 64-bit xid
@@ -895,6 +883,19 @@ extern AttrNumber *convert_tuples_by_name_map(TupleDesc indesc,
895883
* Common code
896884
* -------------
897885
*/
886+
staticinlineTupleTableSlot*
887+
ExecInitExtraTupleSlotCompat(EState*s,TupleDesct)
888+
{
889+
#ifPG_VERSION_NUM >=110000
890+
returnExecInitExtraTupleSlot(s,t);
891+
#else
892+
TupleTableSlot*res=ExecInitExtraTupleSlot(s);
893+
if (t)
894+
ExecSetSlotDescriptor(res,t);
895+
896+
returnres;
897+
#endif
898+
}
898899

899900
/* See ExecEvalParamExtern() */
900901
staticinlineParamExternData*

‎src/partition_router.c

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -171,15 +171,12 @@ prepare_modify_table_for_partition_router(PlanState *state, void *context)
171171
if (!changed_method)
172172
{
173173
/* HACK: replace ModifyTable's execution method */
174-
#ifPG_VERSION_NUM >=110000
175174
if (!mt_method)
176175
mt_method=state->ExecProcNodeReal;
177176

177+
#ifPG_VERSION_NUM >=110000
178178
ExecSetExecProcNode(state,router_run_modify_table);
179179
#elifPG_VERSION_NUM >=100000
180-
if (!mt_method)
181-
mt_method=state->ExecProcNode;
182-
183180
state->ExecProcNode=router_run_modify_table;
184181
#else
185182
#error "doesn't supported yet"
@@ -316,7 +313,7 @@ router_run_modify_table(PlanState *state)
316313
mt_state= (ModifyTableState*)state;
317314

318315
/* Get initial signal */
319-
mt_plans_old=MTHackField(mt_state,mt_nplans);
316+
mt_plans_old=mt_state->mt_nplans;
320317

321318
restart:
322319
/* Fetch next tuple */
@@ -359,21 +356,29 @@ router_set_slot(PartitionRouterState *state,
359356
MTHackField(mt_state,mt_nplans)=-mt_state->mt_whichplan;
360357
MTHackField(mt_state,operation)=operation;
361358

362-
/* HACK: disable AFTER STATEMENT triggers */
363-
MTDisableStmtTriggers(mt_state,state);
364-
365359
if (!TupIsNull(slot))
366360
{
367361
/* We should've cached junk filter already */
368362
Assert(state->junkfilter);
369363

364+
/* HACK: disable AFTER STATEMENT triggers */
365+
MTDisableStmtTriggers(mt_state,state);
366+
367+
370368
/* HACK: conditionally disable junk filter in result relation */
371369
state->current_rri->ri_junkFilter= (operation==CMD_UPDATE) ?
372370
state->junkfilter :
373371
NULL;
374372

375373
/* Don't forget to set saved_slot! */
376-
state->yielded_slot=slot;
374+
state->yielded_slot=ExecInitExtraTupleSlotCompat(mt_state->ps.state,
375+
slot->tts_tupleDescriptor);
376+
ExecCopySlot(state->yielded_slot,slot);
377+
}
378+
else
379+
{
380+
/* HACK: enable AFTER STATEMENT triggers */
381+
MTEnableStmtTriggers(mt_state,state);
377382
}
378383

379384
/* Yield */

‎src/utility_stmt_hooking.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -514,10 +514,9 @@ PathmanCopyFrom(CopyState cstate, Relation parent_rel,
514514
RPS_RRI_CB(finish_rri_for_copy,NULL));
515515

516516
/* Set up a tuple slot too */
517-
myslot=ExecInitExtraTupleSlotCompat(estate);
518-
ExecSetSlotDescriptor(myslot,tupDesc);
517+
myslot=ExecInitExtraTupleSlotCompat(estate,NULL);
519518
/* Triggers might need a slot as well */
520-
estate->es_trig_tuple_slot=ExecInitExtraTupleSlotCompat(estate);
519+
estate->es_trig_tuple_slot=ExecInitExtraTupleSlotCompat(estate,tupDesc);
521520

522521
/* Prepare to catch AFTER triggers. */
523522
AfterTriggerBeginQuery();

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp