Index: head/databases/Makefile =================================================================== --- head/databases/Makefile +++ head/databases/Makefile @@ -549,6 +549,7 @@ SUBDIR += percona56-client SUBDIR += percona56-server SUBDIR += pg_activity + SUBDIR += pg_citus SUBDIR += pg_reorg SUBDIR += pg_rman SUBDIR += pg_statsinfo Index: head/databases/pg_citus/Makefile =================================================================== --- head/databases/pg_citus/Makefile +++ head/databases/pg_citus/Makefile @@ -0,0 +1,32 @@ +# Created by: Matthew Seaman +# $FreeBSD$ + +PORTNAME= citus +PORTVERSION= 5.0.0 +DISTVERSIONPREFIX= v +CATEGORIES= databases +PKGNAMEPREFIX= pg_ + +MAINTAINER= matthew@FreeBSD.org +COMMENT= Horizontally scale Postgresql using sharding and replication + +LICENSE= AGPLv3 + +USE_GITHUB= yes +GH_ACCOUNT= citusdata + +USES= gmake pgsql:9.4+ autoreconf +WANT_PGSQL= server +GNU_CONFIGURE= yes + +INSTALL_TARGET= install-strip +MAKE_ARGS= INSTALL="${INSTALL} -c" + +.include + +.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1000033 +BUILD_DEPENDS+= ${LOCALBASE}/bin/flex:${PORTSDIR}/textproc/flex +MAKE_ARGS+= FLEX=${LOCALBASE}/bin/flex +.endif + +.include Index: head/databases/pg_citus/distinfo =================================================================== --- head/databases/pg_citus/distinfo +++ head/databases/pg_citus/distinfo @@ -0,0 +1,2 @@ +SHA256 (citusdata-citus-v5.0.0_GH0.tar.gz) = a72bd7e9020c11f19d08e58f1f8aa8e83e7f1f377facb6c8020fcaa917f9a3ee +SIZE (citusdata-citus-v5.0.0_GH0.tar.gz) = 1615520 Index: head/databases/pg_citus/files/patch-configure.in =================================================================== --- head/databases/pg_citus/files/patch-configure.in +++ head/databases/pg_citus/files/patch-configure.in @@ -0,0 +1,12 @@ +--- configure.in.orig 2016-03-23 23:36:42 UTC ++++ configure.in +@@ -58,6 +58,9 @@ SAVE_CFLAGS="$CFLAGS" + AC_PROG_CC([$($PG_CONFIG --cc)]) + CFLAGS="$SAVE_CFLAGS" + ++# Add the Postgres PKGINCLUDEDIR to the include search path ++CPPFLAGS="$CPPFLAGS -I$($PG_CONFIG --pkgincludedir)" ++ + # check for a number of CFLAGS that make development easier + + # CITUSAC_PROG_CC_CFLAGS_OPT Index: head/databases/pg_citus/files/patch-src_backend_distributed_executor_multi__real__time__executor.c =================================================================== --- head/databases/pg_citus/files/patch-src_backend_distributed_executor_multi__real__time__executor.c +++ head/databases/pg_citus/files/patch-src_backend_distributed_executor_multi__real__time__executor.c @@ -0,0 +1,10 @@ +--- src/backend/distributed/executor/multi_real_time_executor.c.orig 2016-03-23 23:36:42 UTC ++++ src/backend/distributed/executor/multi_real_time_executor.c +@@ -19,6 +19,7 @@ + #include "postgres.h" + #include "miscadmin.h" + ++#include + #include + + #include "commands/dbcommands.h" Index: head/databases/pg_citus/files/patch-src_backend_distributed_executor_multi__task__tracker__executor.c =================================================================== --- head/databases/pg_citus/files/patch-src_backend_distributed_executor_multi__task__tracker__executor.c +++ head/databases/pg_citus/files/patch-src_backend_distributed_executor_multi__task__tracker__executor.c @@ -0,0 +1,10 @@ +--- src/backend/distributed/executor/multi_task_tracker_executor.c.orig 2016-03-23 23:36:42 UTC ++++ src/backend/distributed/executor/multi_task_tracker_executor.c +@@ -20,6 +20,7 @@ + #include "postgres.h" + #include "miscadmin.h" + ++#include + #include + + #include "commands/dbcommands.h" Index: head/databases/pg_citus/files/patch-src_backend_distributed_worker_worker__partition__protocol.c =================================================================== --- head/databases/pg_citus/files/patch-src_backend_distributed_worker_worker__partition__protocol.c +++ head/databases/pg_citus/files/patch-src_backend_distributed_worker_worker__partition__protocol.c @@ -0,0 +1,10 @@ +--- src/backend/distributed/worker/worker_partition_protocol.c.orig 2016-03-23 23:36:42 UTC ++++ src/backend/distributed/worker/worker_partition_protocol.c +@@ -17,6 +17,7 @@ + #include "postgres.h" + #include "funcapi.h" + ++#include + #include + #include + #ifdef HAVE_INTTYPES_H Index: head/databases/pg_citus/files/patch-src_include_distributed_master__metadata__utility.h =================================================================== --- head/databases/pg_citus/files/patch-src_include_distributed_master__metadata__utility.h +++ head/databases/pg_citus/files/patch-src_include_distributed_master__metadata__utility.h @@ -0,0 +1,11 @@ +--- src/include/distributed/master_metadata_utility.h.orig 2016-03-25 21:45:35 UTC ++++ src/include/distributed/master_metadata_utility.h +@@ -22,7 +22,7 @@ + + + /* total number of hash tokens (2^32) */ +-#define HASH_TOKEN_COUNT INT64CONST(4294967296UL) ++#define HASH_TOKEN_COUNT INT64CONST(4294967296) + + /* In-memory representation of a typed tuple in pg_dist_shard. */ + typedef struct ShardInterval Index: head/databases/pg_citus/pkg-descr =================================================================== --- head/databases/pg_citus/pkg-descr +++ head/databases/pg_citus/pkg-descr @@ -0,0 +1,13 @@ +What is Citus? + + * Open-source PostgreSQL extension (not a fork) + * Scalable across multiple hosts through sharding and replication + * Distributed engine for query parallelization + * Highly available in the face of host failures + +Citus horizontally scales PostgreSQL across commodity servers using +sharding and replication. Its query engine parallelizes incoming SQL +queries across these servers to enable real-time responses on large +datasets. + +WWW: https://www.citusdata.com/ Index: head/databases/pg_citus/pkg-plist =================================================================== --- head/databases/pg_citus/pkg-plist +++ head/databases/pg_citus/pkg-plist @@ -0,0 +1,39 @@ +bin/copy_to_distributed_table +bin/csql +include/postgresql/server/citus_config.h +include/postgresql/server/distributed/citus_nodefuncs.h +include/postgresql/server/distributed/citus_nodes.h +include/postgresql/server/distributed/citus_ruleutils.h +include/postgresql/server/distributed/connection_cache.h +include/postgresql/server/distributed/listutils.h +include/postgresql/server/distributed/master_metadata_utility.h +include/postgresql/server/distributed/master_protocol.h +include/postgresql/server/distributed/metadata_cache.h +include/postgresql/server/distributed/modify_planner.h +include/postgresql/server/distributed/multi_client_executor.h +include/postgresql/server/distributed/multi_executor.h +include/postgresql/server/distributed/multi_explain.h +include/postgresql/server/distributed/multi_join_order.h +include/postgresql/server/distributed/multi_logical_optimizer.h +include/postgresql/server/distributed/multi_logical_planner.h +include/postgresql/server/distributed/multi_master_planner.h +include/postgresql/server/distributed/multi_physical_planner.h +include/postgresql/server/distributed/multi_planner.h +include/postgresql/server/distributed/multi_resowner.h +include/postgresql/server/distributed/multi_router_executor.h +include/postgresql/server/distributed/multi_server_executor.h +include/postgresql/server/distributed/multi_utility.h +include/postgresql/server/distributed/pg_dist_partition.h +include/postgresql/server/distributed/pg_dist_shard.h +include/postgresql/server/distributed/pg_dist_shard_placement.h +include/postgresql/server/distributed/relay_utility.h +include/postgresql/server/distributed/resource_lock.h +include/postgresql/server/distributed/task_tracker.h +include/postgresql/server/distributed/task_tracker_protocol.h +include/postgresql/server/distributed/test_helper_functions.h +include/postgresql/server/distributed/transmit.h +include/postgresql/server/distributed/worker_manager.h +include/postgresql/server/distributed/worker_protocol.h +lib/postgresql/citus.so +share/postgresql/extension/citus--5.0.sql +share/postgresql/extension/citus.control