From 1a7ccac6efa19d1b6e1c019898d95da3fed6e12a Mon Sep 17 00:00:00 2001 From: Sait Talha Nisanci Date: Wed, 20 May 2020 12:56:49 +0300 Subject: [PATCH] Add RangeTableEntryFromNSItem macro addRangeTableEntryXXX methods return a ParseNamespaceItem with pg >= 13. RangeTableEntryFromNSItem macro is added so that we return the range table entry from the ParseNamespaceItem in pg>=13 and for pg < 13 rte would already be returned with addRangeTableEntryXXX methods. Commit on Postgres side: 5815696bc66b3092f6361f53e0394909647042c8 --- src/backend/distributed/executor/insert_select_executor.c | 5 ++--- src/include/distributed/version_compat.h | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/backend/distributed/executor/insert_select_executor.c b/src/backend/distributed/executor/insert_select_executor.c index 87cdbad10..c85bbf958 100644 --- a/src/backend/distributed/executor/insert_select_executor.c +++ b/src/backend/distributed/executor/insert_select_executor.c @@ -346,9 +346,8 @@ WrapSubquery(Query *subquery) /* create range table entries */ Alias *selectAlias = makeAlias("citus_insert_select_subquery", NIL); - RangeTblEntry *newRangeTableEntry = addRangeTableEntryForSubquery(pstate, subquery, - selectAlias, false, - true); + RangeTblEntry *newRangeTableEntry = RangeTableEntryFromNSItem(addRangeTableEntryForSubquery( + pstate, subquery, selectAlias, false, true)); outerQuery->rtable = list_make1(newRangeTableEntry); /* set the FROM expression to the subquery */ diff --git a/src/include/distributed/version_compat.h b/src/include/distributed/version_compat.h index 6eaeaabcd..80e67e06b 100644 --- a/src/include/distributed/version_compat.h +++ b/src/include/distributed/version_compat.h @@ -40,6 +40,7 @@ #define varoattno varattnosyn #define varnoold varnosyn #define Set_ptr_value(a,b) a->ptr_value = b +#define RangeTableEntryFromNSItem(a) a->p_rte #else /* pre PG13 */ #define lnext_compat(l, r) lnext(r) #define list_delete_cell_compat(l,c,p) list_delete_cell(l,c,p) @@ -50,6 +51,7 @@ #define getOwnedSequencesCompat(a,b) getOwnedSequences(a,b) #define ExplainOnePlanCompat(a,b,c,d,e,f,g,h) ExplainOnePlan(a,b,c,d,e,f,g) #define Set_ptr_value(a,b) a->data.ptr_value = b +#define RangeTableEntryFromNSItem(a) a #endif #if PG_VERSION_NUM >= PG_VERSION_12