From 6314eba5df88733c31b57d5ecffbc447cdf1097e Mon Sep 17 00:00:00 2001 From: Sait Talha Nisanci Date: Mon, 18 May 2020 19:23:41 +0300 Subject: [PATCH] introduce standard_planner_compat standard_planner now takes the query string as a parameter as well with pg >= 13. Commit on Postgres Side: 66888f7424f7d6c7cea2c26e181054d1455d4e7a --- src/backend/distributed/planner/combine_query_planner.c | 2 +- src/backend/distributed/planner/distributed_planner.c | 5 +++-- src/include/distributed/version_compat.h | 2 ++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/backend/distributed/planner/combine_query_planner.c b/src/backend/distributed/planner/combine_query_planner.c index 9202a5d93..0db7d4b6f 100644 --- a/src/backend/distributed/planner/combine_query_planner.c +++ b/src/backend/distributed/planner/combine_query_planner.c @@ -295,7 +295,7 @@ BuildSelectStatementViaStdPlanner(Query *combineQuery, List *remoteScanTargetLis ReplaceCitusExtraDataContainer = true; ReplaceCitusExtraDataContainerWithCustomScan = remoteScan; - standardStmt = standard_planner(combineQuery, 0, NULL); + standardStmt = standard_planner_compat(combineQuery, NULL, 0, NULL); ReplaceCitusExtraDataContainer = false; ReplaceCitusExtraDataContainerWithCustomScan = NULL; diff --git a/src/backend/distributed/planner/distributed_planner.c b/src/backend/distributed/planner/distributed_planner.c index 8ae4fe6ab..738b3b37e 100644 --- a/src/backend/distributed/planner/distributed_planner.c +++ b/src/backend/distributed/planner/distributed_planner.c @@ -217,7 +217,8 @@ distributed_planner(Query *parse, int cursorOptions, ParamListInfo boundParams) * restriction information per table and parse tree transformations made by * postgres' planner. */ - planContext.plan = standard_planner(planContext.query, + planContext.plan = standard_planner_compat(planContext.query, + NULL, planContext.cursorOptions, planContext.boundParams); if (needsDistributedPlanning) @@ -1047,7 +1048,7 @@ CreateDistributedPlan(uint64 planId, Query *originalQuery, Query *query, ParamLi * being contiguous. */ - standard_planner(newQuery, 0, boundParams); + standard_planner_compat(newQuery, NULL, 0, boundParams); /* overwrite the old transformed query with the new transformed query */ *query = *newQuery; diff --git a/src/include/distributed/version_compat.h b/src/include/distributed/version_compat.h index b3f9848f4..be38c468c 100644 --- a/src/include/distributed/version_compat.h +++ b/src/include/distributed/version_compat.h @@ -33,6 +33,7 @@ #define list_delete_cell_compat(l,c,p) list_delete_cell(l,c) #define pg_plan_query_compat(p,q,c,b) pg_plan_query(p,q,c,b) #define planner_compat(p,q,c,b) planner(p,q,c,b) +#define standard_planner_compat(a,b,c,d) standard_planner(a,b,c,d) #define PortalDefineQuerySelectCompat(a,b,c,e,f) PortalDefineQuery(a,b,c,CMDTAG_SELECT,e,f) #define getOwnedSequencesCompat(a,b) getOwnedSequences(a) #else /* pre PG13 */ @@ -40,6 +41,7 @@ #define list_delete_cell_compat(l,c,p) list_delete_cell(l,c,p) #define pg_plan_query_compat(p,q,c,b) pg_plan_query(p,c,b) #define planner_compat(p,q,c,b) planner(p,c,b) +#define standard_planner_compat(a,b,c,d) standard_planner(a,c,d) #define PortalDefineQuerySelectCompat(a,b,c,e,f) PortalDefineQuery(a,b,c,"SELECT",e,f) #define getOwnedSequencesCompat(a,b) getOwnedSequences(a,b) #endif