introduce standard_planner_compat

standard_planner now takes the query string as a parameter as well with
pg >= 13.

Commit on Postgres Side:
66888f7424f7d6c7cea2c26e181054d1455d4e7a
pull/3900/head
Sait Talha Nisanci 2020-05-18 19:23:41 +03:00
parent 991f49efc9
commit 6314eba5df
3 changed files with 6 additions and 3 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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