From 1a87aa4dd1c99f772eaa5f7369c7e6ab4e87028d Mon Sep 17 00:00:00 2001 From: Halil Ozan Akgul Date: Thu, 19 Aug 2021 19:01:26 +0300 Subject: [PATCH] Introduces make_simple_restrictinfo_compat and pull_varnos_compat macros make_simple_restrictinfo and pull_varnos functions now have a new parameter These new macros give us the ability to use this new parameter for PG14 and they don't give the parameter for previous versions Relevant PG commit: 55dc86eca70b1dc18a79c141b3567efed910329d --- src/backend/distributed/operations/delete_protocol.c | 7 ++++--- src/backend/distributed/planner/insert_select_planner.c | 3 ++- .../distributed/planner/relation_restriction_equivalence.c | 2 +- src/include/distributed/version_compat.h | 4 ++++ 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/backend/distributed/operations/delete_protocol.c b/src/backend/distributed/operations/delete_protocol.c index 38f35d76c..9fa7015ef 100644 --- a/src/backend/distributed/operations/delete_protocol.c +++ b/src/backend/distributed/operations/delete_protocol.c @@ -672,9 +672,10 @@ ShardsMatchingDeleteCriteria(Oid relationId, List *shardIntervalList, Expr *lessThanExpr = (Expr *) linitial(andExpr->args); Expr *greaterThanExpr = (Expr *) lsecond(andExpr->args); - RestrictInfo *lessThanRestrictInfo = make_simple_restrictinfo(NULL, lessThanExpr); - RestrictInfo *greaterThanRestrictInfo = make_simple_restrictinfo(NULL, - greaterThanExpr); + RestrictInfo *lessThanRestrictInfo = make_simple_restrictinfo_compat(NULL, + lessThanExpr); + RestrictInfo *greaterThanRestrictInfo = make_simple_restrictinfo_compat(NULL, + greaterThanExpr); restrictInfoList = lappend(restrictInfoList, lessThanRestrictInfo); restrictInfoList = lappend(restrictInfoList, greaterThanRestrictInfo); diff --git a/src/backend/distributed/planner/insert_select_planner.c b/src/backend/distributed/planner/insert_select_planner.c index 5384bf628..7975b6ec3 100644 --- a/src/backend/distributed/planner/insert_select_planner.c +++ b/src/backend/distributed/planner/insert_select_planner.c @@ -747,7 +747,8 @@ RouterModifyTaskForShardInterval(Query *originalQuery, continue; } - shardRestrictionList = make_simple_restrictinfo(NULL, (Expr *) shardOpExpressions); + shardRestrictionList = make_simple_restrictinfo_compat(NULL, + (Expr *) shardOpExpressions); extendedBaseRestrictInfo = lappend(extendedBaseRestrictInfo, shardRestrictionList); diff --git a/src/backend/distributed/planner/relation_restriction_equivalence.c b/src/backend/distributed/planner/relation_restriction_equivalence.c index 428309230..1c60d6ff7 100644 --- a/src/backend/distributed/planner/relation_restriction_equivalence.c +++ b/src/backend/distributed/planner/relation_restriction_equivalence.c @@ -2054,7 +2054,7 @@ GetRestrictInfoListForRelation(RangeTblEntry *rangeTblEntry, * If the restriction involves multiple tables, we cannot add it to * input relation's expression list. */ - Relids varnos = pull_varnos(NULL, (Node *) restrictionClause); + Relids varnos = pull_varnos_compat(NULL, (Node *) restrictionClause); if (bms_num_members(varnos) != 1) { continue; diff --git a/src/include/distributed/version_compat.h b/src/include/distributed/version_compat.h index fba6cfe99..8d5e8d663 100644 --- a/src/include/distributed/version_compat.h +++ b/src/include/distributed/version_compat.h @@ -60,6 +60,8 @@ #define pgproc_statusflags_compat(pgproc) ((pgproc)->statusFlags) #define get_partition_parent_compat(a, b) get_partition_parent(a, b) #define RelationGetPartitionDesc_compat(a, b) RelationGetPartitionDesc(a, b) +#define make_simple_restrictinfo_compat(a, b) make_simple_restrictinfo(a, b) +#define pull_varnos_compat(a, b) pull_varnos(a, b) #else #define AlterTableStmtObjType(a) ((a)->relkind) #define F_NEXTVAL_COMPAT F_NEXTVAL_OID @@ -94,6 +96,8 @@ #define get_partition_parent_compat(a, b) get_partition_parent(a) #define RelationGetPartitionDesc_compat(a, b) RelationGetPartitionDesc(a) #define PQ_LARGE_MESSAGE_LIMIT 0 +#define make_simple_restrictinfo_compat(a, b) make_simple_restrictinfo(b) +#define pull_varnos_compat(a, b) pull_varnos(b) #endif #if PG_VERSION_NUM >= PG_VERSION_13