From 00e738600705638e1551d7bb5d9b3f7f9933bc50 Mon Sep 17 00:00:00 2001 From: Sait Talha Nisanci Date: Mon, 18 May 2020 17:08:54 +0300 Subject: [PATCH] introduce PortalDefineQuerySelectCompat PortalDefineQuery doesn't accept char* for command tag anymore with PG >= 13. We are currently only using it with Select, therefore a Portal define query compat for select is created. Commit on PG side: 2f9661311b83dc481fc19f6e3bda015392010a40 --- src/backend/distributed/executor/multi_executor.c | 3 +-- .../executor/partitioned_intermediate_results.c | 2 +- src/include/distributed/version_compat.h | 8 +++++++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/backend/distributed/executor/multi_executor.c b/src/backend/distributed/executor/multi_executor.c index 7c3395404..92720e13e 100644 --- a/src/backend/distributed/executor/multi_executor.c +++ b/src/backend/distributed/executor/multi_executor.c @@ -628,10 +628,9 @@ ExecutePlanIntoDestReceiver(PlannedStmt *queryPlan, ParamListInfo params, /* don't display the portal in pg_cursors, it is for internal use only */ portal->visible = false; - PortalDefineQuery(portal, + PortalDefineQuerySelectCompat(portal, NULL, "", - "SELECT", list_make1(queryPlan), NULL); diff --git a/src/backend/distributed/executor/partitioned_intermediate_results.c b/src/backend/distributed/executor/partitioned_intermediate_results.c index b08028040..21722dbfc 100644 --- a/src/backend/distributed/executor/partitioned_intermediate_results.c +++ b/src/backend/distributed/executor/partitioned_intermediate_results.c @@ -266,7 +266,7 @@ StartPortalForQueryExecution(const char *queryString) /* don't display the portal in pg_cursors, it is for internal use only */ portal->visible = false; - PortalDefineQuery(portal, NULL, queryString, "SELECT", list_make1(queryPlan), NULL); + PortalDefineQuerySelectCompat(portal, NULL, queryString, list_make1(queryPlan), NULL); int eflags = 0; PortalStart(portal, NULL, eflags, GetActiveSnapshot()); diff --git a/src/include/distributed/version_compat.h b/src/include/distributed/version_compat.h index ca343a652..8fe66e709 100644 --- a/src/include/distributed/version_compat.h +++ b/src/include/distributed/version_compat.h @@ -24,16 +24,22 @@ #include "optimizer/optimizer.h" #endif +#if (PG_VERSION_NUM >= PG_VERSION_13) +#include "tcop/tcopprot.h" +#endif + #if PG_VERSION_NUM >= PG_VERSION_13 #define lnext_compat(l, r) lnext(l, r) #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 planner_compat(p,q,c,b) planner(p,q,c,b) +#define PortalDefineQuerySelectCompat(a,b,c,e,f) PortalDefineQuery(a,b,c,CMDTAG_SELECT,e,f) #else /* pre PG13 */ #define lnext_compat(l, r) lnext(r) #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 PortalDefineQuerySelectCompat(a,b,c,e,f) PortalDefineQuery(a,b,c,"SELECT",e,f) #endif #if PG_VERSION_NUM >= PG_VERSION_12