diff --git a/src/backend/distributed/commands/create_distributed_table.c b/src/backend/distributed/commands/create_distributed_table.c index 6aee796fc..8be8f96d0 100644 --- a/src/backend/distributed/commands/create_distributed_table.c +++ b/src/backend/distributed/commands/create_distributed_table.c @@ -46,6 +46,7 @@ #include "distributed/remote_commands.h" #include "distributed/worker_protocol.h" #include "distributed/worker_transaction.h" +#include "distributed/version_compat.h" #include "executor/executor.h" #include "executor/spi.h" #include "nodes/execnodes.h" diff --git a/src/backend/distributed/commands/multi_copy.c b/src/backend/distributed/commands/multi_copy.c index 1853b3875..4df4f4f62 100644 --- a/src/backend/distributed/commands/multi_copy.c +++ b/src/backend/distributed/commands/multi_copy.c @@ -69,6 +69,7 @@ #include "distributed/remote_commands.h" #include "distributed/resource_lock.h" #include "distributed/shard_pruning.h" +#include "distributed/version_compat.h" #include "executor/executor.h" #include "nodes/makefuncs.h" #include "tsearch/ts_locale.h" diff --git a/src/backend/distributed/executor/multi_utility.c b/src/backend/distributed/executor/multi_utility.c index 9be3c8134..76f44f75c 100644 --- a/src/backend/distributed/executor/multi_utility.c +++ b/src/backend/distributed/executor/multi_utility.c @@ -56,6 +56,7 @@ #include "distributed/transmit.h" #include "distributed/worker_protocol.h" #include "distributed/worker_transaction.h" +#include "distributed/version_compat.h" #include "executor/executor.h" #include "foreign/foreign.h" #include "lib/stringinfo.h" diff --git a/src/backend/distributed/master/master_citus_tools.c b/src/backend/distributed/master/master_citus_tools.c index faa4d1865..bc491fe54 100644 --- a/src/backend/distributed/master/master_citus_tools.c +++ b/src/backend/distributed/master/master_citus_tools.c @@ -23,6 +23,7 @@ #include "distributed/multi_server_executor.h" #include "distributed/remote_commands.h" #include "distributed/worker_protocol.h" +#include "distributed/version_compat.h" #include "lib/stringinfo.h" #include "utils/builtins.h" diff --git a/src/backend/distributed/metadata/metadata_sync.c b/src/backend/distributed/metadata/metadata_sync.c index 54dc9c0c1..7d51d08f9 100644 --- a/src/backend/distributed/metadata/metadata_sync.c +++ b/src/backend/distributed/metadata/metadata_sync.c @@ -38,6 +38,7 @@ #include "distributed/pg_dist_node.h" #include "distributed/worker_manager.h" #include "distributed/worker_transaction.h" +#include "distributed/version_compat.h" #include "foreign/foreign.h" #include "nodes/pg_list.h" #include "utils/builtins.h" diff --git a/src/backend/distributed/planner/deparse_shard_query.c b/src/backend/distributed/planner/deparse_shard_query.c index c52913559..5bb718501 100644 --- a/src/backend/distributed/planner/deparse_shard_query.c +++ b/src/backend/distributed/planner/deparse_shard_query.c @@ -20,6 +20,7 @@ #include "distributed/metadata_cache.h" #include "distributed/multi_physical_planner.h" #include "distributed/multi_router_planner.h" +#include "distributed/version_compat.h" #include "lib/stringinfo.h" #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" diff --git a/src/backend/distributed/utils/citus_ruleutils.c b/src/backend/distributed/utils/citus_ruleutils.c index ee152fd65..d8e1a4236 100644 --- a/src/backend/distributed/utils/citus_ruleutils.c +++ b/src/backend/distributed/utils/citus_ruleutils.c @@ -37,6 +37,7 @@ #include "distributed/multi_partitioning_utils.h" #include "distributed/relay_utility.h" #include "distributed/master_metadata_utility.h" +#include "distributed/version_compat.h" #include "foreign/foreign.h" #include "lib/stringinfo.h" #include "nodes/nodes.h" diff --git a/src/include/distributed/version_compat.h b/src/include/distributed/version_compat.h new file mode 100644 index 000000000..e939e30ad --- /dev/null +++ b/src/include/distributed/version_compat.h @@ -0,0 +1,24 @@ +/*------------------------------------------------------------------------- + * + * version_compat.h + * Compatibility macros for writing code agnostic to PostgreSQL versions + * + * Copyright (c) 2017, Citus Data, Inc. + * + *------------------------------------------------------------------------- + */ + +#ifndef VERSION_COMPAT_H +#define VERSION_COMPAT_H + +#include "postgres.h" + +#if (PG_VERSION_NUM >= 90600 && PG_VERSION_NUM < 90700) + +/* Backports from PostgreSQL 10 */ +/* Accessor for the i'th attribute of tupdesc. */ +#define TupleDescAttr(tupdesc, i) ((tupdesc)->attrs[(i)]) + +#endif + +#endif /* VERSION_COMPAT_H */