From adb4669d3461771986037a11f0d09a6ce43e8811 Mon Sep 17 00:00:00 2001 From: Brian Cloutier Date: Tue, 23 Jan 2018 14:22:08 -0800 Subject: [PATCH] Add appveyor.yml, support builds on Windows --- Makefile | 114 ++++++++++++++ appveyor.yml | 83 ++++++++++ windows/Mkvcbuild-minimize.patch | 254 +++++++++++++++++++++++++++++++ windows/Mkvcbuild.pm.patch | 25 +++ windows/include/citus_version.h | 26 ++++ 5 files changed, 502 insertions(+) create mode 100644 appveyor.yml create mode 100644 windows/Mkvcbuild-minimize.patch create mode 100644 windows/Mkvcbuild.pm.patch create mode 100644 windows/include/citus_version.h diff --git a/Makefile b/Makefile index 5735e8ea4..6eb203207 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,119 @@ # Citus toplevel Makefile +EXTENSION = citus +DATA = citus--7.0-15.sql + + +MODULE_big = citus + +OBJS = src/backend/distributed/shared_library_init.o \ + src/backend/distributed/commands/create_distributed_table.o \ + src/backend/distributed/commands/drop_distributed_table.o \ + src/backend/distributed/commands/multi_copy.o \ + src/backend/distributed/commands/transmit.o \ + src/backend/distributed/connection/connection_management.o \ + src/backend/distributed/connection/placement_connection.o \ + src/backend/distributed/connection/remote_commands.o \ + src/backend/distributed/executor/citus_custom_scan.o \ + src/backend/distributed/executor/insert_select_executor.o \ + src/backend/distributed/executor/intermediate_results.o \ + src/backend/distributed/executor/multi_client_executor.o \ + src/backend/distributed/executor/multi_executor.o \ + src/backend/distributed/executor/multi_real_time_executor.o \ + src/backend/distributed/executor/multi_router_executor.o \ + src/backend/distributed/executor/multi_server_executor.o \ + src/backend/distributed/executor/multi_task_tracker_executor.o \ + src/backend/distributed/executor/multi_utility.o \ + src/backend/distributed/executor/subplan_execution.o \ + src/backend/distributed/master/citus_create_restore_point.o \ + src/backend/distributed/master/master_citus_tools.o \ + src/backend/distributed/master/master_create_shards.o \ + src/backend/distributed/master/master_delete_protocol.o \ + src/backend/distributed/master/master_expire_table_cache.o \ + src/backend/distributed/master/master_metadata_utility.o \ + src/backend/distributed/master/master_modify_multiple_shards.o \ + src/backend/distributed/master/master_node_protocol.o \ + src/backend/distributed/master/master_repair_shards.o \ + src/backend/distributed/master/master_split_shards.o \ + src/backend/distributed/master/master_stage_protocol.o \ + src/backend/distributed/master/master_truncate.o \ + src/backend/distributed/master/worker_node_manager.o \ + src/backend/distributed/metadata/metadata_sync.o \ + src/backend/distributed/planner/deparse_shard_query.o \ + src/backend/distributed/planner/distributed_planner.o \ + src/backend/distributed/planner/insert_select_planner.o \ + src/backend/distributed/planner/multi_explain.o \ + src/backend/distributed/planner/multi_join_order.o \ + src/backend/distributed/planner/multi_logical_optimizer.o \ + src/backend/distributed/planner/multi_logical_planner.o \ + src/backend/distributed/planner/multi_master_planner.o \ + src/backend/distributed/planner/multi_physical_planner.o \ + src/backend/distributed/planner/query_colocation_checker.o \ + src/backend/distributed/planner/multi_router_planner.o \ + src/backend/distributed/planner/postgres_planning_functions.o \ + src/backend/distributed/planner/recursive_planning.o \ + src/backend/distributed/planner/relation_restriction_equivalence.o \ + src/backend/distributed/planner/shard_pruning.o \ + src/backend/distributed/progress/multi_progress.o \ + src/backend/distributed/relay/relay_event_utility.o \ + src/backend/distributed/test/colocation_utils.o \ + src/backend/distributed/test/create_shards.o \ + src/backend/distributed/test/deparse_shard_query.o \ + src/backend/distributed/test/distributed_deadlock_detection.o \ + src/backend/distributed/test/distribution_metadata.o \ + src/backend/distributed/test/fake_fdw.o \ + src/backend/distributed/test/generate_ddl_commands.o \ + src/backend/distributed/test/metadata_sync.o \ + src/backend/distributed/test/partitioning_utils.o \ + src/backend/distributed/test/progress_utils.o \ + src/backend/distributed/test/prune_shard_list.o \ + src/backend/distributed/transaction/backend_data.o \ + src/backend/distributed/transaction/distributed_deadlock_detection.o \ + src/backend/distributed/transaction/lock_graph.o \ + src/backend/distributed/transaction/multi_shard_transaction.o \ + src/backend/distributed/transaction/remote_transaction.o \ + src/backend/distributed/transaction/transaction_management.o \ + src/backend/distributed/transaction/transaction_recovery.o \ + src/backend/distributed/transaction/worker_transaction.o \ + src/backend/distributed/utils/citus_clauses.o \ + src/backend/distributed/utils/citus_copyfuncs.o \ + src/backend/distributed/utils/citus_nodefuncs.o \ + src/backend/distributed/utils/citus_outfuncs.o \ + src/backend/distributed/utils/citus_readfuncs.o \ + src/backend/distributed/utils/citus_ruleutils.o \ + src/backend/distributed/utils/colocation_utils.o \ + src/backend/distributed/utils/distribution_column.o \ + src/backend/distributed/utils/errormessage.o \ + src/backend/distributed/utils/hash_helpers.o \ + src/backend/distributed/utils/listutils.o \ + src/backend/distributed/utils/maintenanced.o \ + src/backend/distributed/utils/metadata_cache.o \ + src/backend/distributed/utils/multi_partitioning_utils.o \ + src/backend/distributed/utils/multi_resowner.o \ + src/backend/distributed/utils/node_metadata.o \ + src/backend/distributed/utils/reference_table_utils.o \ + src/backend/distributed/utils/resource_lock.o \ + src/backend/distributed/utils/ruleutils_10.o \ + src/backend/distributed/utils/ruleutils_96.o \ + src/backend/distributed/utils/shardinterval_utils.o \ + src/backend/distributed/utils/statistics_collection.o \ + src/backend/distributed/worker/task_tracker.o \ + src/backend/distributed/worker/task_tracker_protocol.o \ + src/backend/distributed/worker/worker_data_fetch_protocol.o \ + src/backend/distributed/worker/worker_drop_protocol.o \ + src/backend/distributed/worker/worker_file_access_protocol.o \ + src/backend/distributed/worker/worker_merge_protocol.o \ + src/backend/distributed/worker/worker_partition_protocol.o \ + src/backend/distributed/worker/worker_truncate_trigger_protocol.o \ + $(WIN32RES) + +EXTENSION= +DATA= +MODULE_big= +OBJS= + +# the above is so that builds can work on Windows, the below is for all other platforms + citus_subdir = . citus_top_builddir = . diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 000000000..b587d26b2 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,83 @@ +# Notes: +# - Minimal appveyor.yml file is an empty file. All sections are optional. +# - Indent each level of configuration with 2 spaces. Do not use tabs! +# - All section names are case-sensitive. +# - Section names should be unique on each level. +# - Full sample file at: https://www.appveyor.com/docs/appveyor-yml/ + +#---------------------------------# +# general configuration # +#---------------------------------# + +version: 1.0.{build}-{branch} + +# Maximum number of concurrent jobs for the project +max_jobs: 1 + +#---------------------------------# +# environment configuration # +#---------------------------------# + +cache: + - C:\tools\vcpkg\installed\ + - C:\tools\vcpkg\packages\ + +# Build worker image (VM template) +image: Visual Studio 2017 + +# save the cache even if the build fails +environment: + VCPKG_DIR: C:\tools\vcpkg + APPVEYOR_SAVE_CACHE_ON_ERROR: true + +# scripts that are called at very beginning, before repo cloning +init: + - git config --global core.autocrlf input + +# clone directory +clone_folder: c:\projects\citus + +# doesn't checkout the entire history, uses github API to download a zip of the repo +shallow_clone: true # default is "false" + +# scripts which run after cloning repository +install: + # add flex/bison to path + - set PATH=%PATH%;C:\msys64\usr\bin + - flex --version + - bison --version + # make postgres think we're a contrib module + - git clone -b REL_10_STABLE https://github.com/postgres/postgres C:\projects\postgres + - git -C C:\projects\postgres apply C:\projects\citus\windows\Mkvcbuild.pm.patch + # temporary hack: mark enable_hashagg PGDLLIMPORT + - git -C C:\projects\postgres cherry-pick 935dee9ad5a8d12f4d3b772a6e6c99d245e5ad44 & exit 0 + # an even bigger hack, this file has a merge conflict so skip it + - git -C C:\projects\postgres reset src\include\optimizer\cost.h + - git -C C:\projects\postgres checkout src\include\optimizer\cost.h + # only build Citus, don't build the other contrib modules + - git -C C:\projects\postgres apply C:\projects\citus\windows\Mkvcbuild-minimize.patch + - rmdir /s /q C:\projects\postgres\contrib + - mkdir C:\projects\postgres\contrib + - xcopy /i /e C:\projects\citus C:\projects\postgres\contrib\citus + - '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"' + # we need this for usage reporting + - vcpkg install curl:x64-windows & exit 0 + +#---------------------------------# +# build configuration # +#---------------------------------# + +platform: x64 +configuration: + - Release + +build_script: + - ps: cd C:\projects\postgres\src\tools\msvc + - build RELEASE + +#---------------------------------# +# tests configuration # +#---------------------------------# + +# disable automatic tests +test: off diff --git a/windows/Mkvcbuild-minimize.patch b/windows/Mkvcbuild-minimize.patch new file mode 100644 index 000000000..497cec145 --- /dev/null +++ b/windows/Mkvcbuild-minimize.patch @@ -0,0 +1,254 @@ +diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm +index 93f364a..d1b0968 100644 +--- a/src/tools/msvc/Mkvcbuild.pm ++++ b/src/tools/msvc/Mkvcbuild.pm +@@ -344,66 +344,66 @@ sub mkvcbuild + AddSimpleFrontend($d); + } + +- my $pgbasebackup = AddSimpleFrontend('pg_basebackup', 1); +- $pgbasebackup->AddFile('src/bin/pg_basebackup/pg_basebackup.c'); +- $pgbasebackup->AddLibrary('ws2_32.lib'); +- +- my $pgreceivewal = AddSimpleFrontend('pg_basebackup', 1); +- $pgreceivewal->{name} = 'pg_receivewal'; +- $pgreceivewal->AddFile('src/bin/pg_basebackup/pg_receivewal.c'); +- $pgreceivewal->AddLibrary('ws2_32.lib'); +- +- my $pgrecvlogical = AddSimpleFrontend('pg_basebackup', 1); +- $pgrecvlogical->{name} = 'pg_recvlogical'; +- $pgrecvlogical->AddFile('src/bin/pg_basebackup/pg_recvlogical.c'); +- $pgrecvlogical->AddLibrary('ws2_32.lib'); +- +- my $pgrewind = AddSimpleFrontend('pg_rewind', 1); +- $pgrewind->{name} = 'pg_rewind'; +- $pgrewind->AddFile('src/backend/access/transam/xlogreader.c'); +- $pgrewind->AddLibrary('ws2_32.lib'); +- $pgrewind->AddDefine('FRONTEND'); +- +- my $pgevent = $solution->AddProject('pgevent', 'dll', 'bin'); +- $pgevent->AddFiles('src/bin/pgevent', 'pgevent.c', 'pgmsgevent.rc'); +- $pgevent->AddResourceFile('src/bin/pgevent', 'Eventlog message formatter', +- 'win32'); +- $pgevent->RemoveFile('src/bin/pgevent/win32ver.rc'); +- $pgevent->UseDef('src/bin/pgevent/pgevent.def'); +- $pgevent->DisableLinkerWarnings('4104'); +- +- my $pgdump = AddSimpleFrontend('pg_dump', 1); +- $pgdump->AddIncludeDir('src/backend'); +- $pgdump->AddFile('src/bin/pg_dump/pg_dump.c'); +- $pgdump->AddFile('src/bin/pg_dump/common.c'); +- $pgdump->AddFile('src/bin/pg_dump/pg_dump_sort.c'); +- $pgdump->AddLibrary('ws2_32.lib'); +- +- my $pgdumpall = AddSimpleFrontend('pg_dump', 1); +- +- # pg_dumpall doesn't use the files in the Makefile's $(OBJS), unlike +- # pg_dump and pg_restore. +- # So remove their sources from the object, keeping the other setup that +- # AddSimpleFrontend() has done. +- my @nodumpall = grep { m!src/bin/pg_dump/.*\.c$! } +- keys %{ $pgdumpall->{files} }; +- delete @{ $pgdumpall->{files} }{@nodumpall}; +- $pgdumpall->{name} = 'pg_dumpall'; +- $pgdumpall->AddIncludeDir('src/backend'); +- $pgdumpall->AddFile('src/bin/pg_dump/pg_dumpall.c'); +- $pgdumpall->AddFile('src/bin/pg_dump/dumputils.c'); +- $pgdumpall->AddLibrary('ws2_32.lib'); +- +- my $pgrestore = AddSimpleFrontend('pg_dump', 1); +- $pgrestore->{name} = 'pg_restore'; +- $pgrestore->AddIncludeDir('src/backend'); +- $pgrestore->AddFile('src/bin/pg_dump/pg_restore.c'); +- $pgrestore->AddLibrary('ws2_32.lib'); +- +- my $zic = $solution->AddProject('zic', 'exe', 'utils'); +- $zic->AddFiles('src/timezone', 'zic.c'); +- $zic->AddDirResourceFile('src/timezone'); +- $zic->AddReference($libpgcommon, $libpgport); ++# my $pgbasebackup = AddSimpleFrontend('pg_basebackup', 1); ++# $pgbasebackup->AddFile('src/bin/pg_basebackup/pg_basebackup.c'); ++# $pgbasebackup->AddLibrary('ws2_32.lib'); ++# ++# my $pgreceivewal = AddSimpleFrontend('pg_basebackup', 1); ++# $pgreceivewal->{name} = 'pg_receivewal'; ++# $pgreceivewal->AddFile('src/bin/pg_basebackup/pg_receivewal.c'); ++# $pgreceivewal->AddLibrary('ws2_32.lib'); ++# ++# my $pgrecvlogical = AddSimpleFrontend('pg_basebackup', 1); ++# $pgrecvlogical->{name} = 'pg_recvlogical'; ++# $pgrecvlogical->AddFile('src/bin/pg_basebackup/pg_recvlogical.c'); ++# $pgrecvlogical->AddLibrary('ws2_32.lib'); ++# ++# my $pgrewind = AddSimpleFrontend('pg_rewind', 1); ++# $pgrewind->{name} = 'pg_rewind'; ++# $pgrewind->AddFile('src/backend/access/transam/xlogreader.c'); ++# $pgrewind->AddLibrary('ws2_32.lib'); ++# $pgrewind->AddDefine('FRONTEND'); ++# ++# my $pgevent = $solution->AddProject('pgevent', 'dll', 'bin'); ++# $pgevent->AddFiles('src/bin/pgevent', 'pgevent.c', 'pgmsgevent.rc'); ++# $pgevent->AddResourceFile('src/bin/pgevent', 'Eventlog message formatter', ++# 'win32'); ++# $pgevent->RemoveFile('src/bin/pgevent/win32ver.rc'); ++# $pgevent->UseDef('src/bin/pgevent/pgevent.def'); ++# $pgevent->DisableLinkerWarnings('4104'); ++# ++# my $pgdump = AddSimpleFrontend('pg_dump', 1); ++# $pgdump->AddIncludeDir('src/backend'); ++# $pgdump->AddFile('src/bin/pg_dump/pg_dump.c'); ++# $pgdump->AddFile('src/bin/pg_dump/common.c'); ++# $pgdump->AddFile('src/bin/pg_dump/pg_dump_sort.c'); ++# $pgdump->AddLibrary('ws2_32.lib'); ++# ++# my $pgdumpall = AddSimpleFrontend('pg_dump', 1); ++# ++# # pg_dumpall doesn't use the files in the Makefile's $(OBJS), unlike ++# # pg_dump and pg_restore. ++# # So remove their sources from the object, keeping the other setup that ++# # AddSimpleFrontend() has done. ++# my @nodumpall = grep { m!src/bin/pg_dump/.*\.c$! } ++# keys %{ $pgdumpall->{files} }; ++# delete @{ $pgdumpall->{files} }{@nodumpall}; ++# $pgdumpall->{name} = 'pg_dumpall'; ++# $pgdumpall->AddIncludeDir('src/backend'); ++# $pgdumpall->AddFile('src/bin/pg_dump/pg_dumpall.c'); ++# $pgdumpall->AddFile('src/bin/pg_dump/dumputils.c'); ++# $pgdumpall->AddLibrary('ws2_32.lib'); ++# ++# my $pgrestore = AddSimpleFrontend('pg_dump', 1); ++# $pgrestore->{name} = 'pg_restore'; ++# $pgrestore->AddIncludeDir('src/backend'); ++# $pgrestore->AddFile('src/bin/pg_dump/pg_restore.c'); ++# $pgrestore->AddLibrary('ws2_32.lib'); ++# ++# my $zic = $solution->AddProject('zic', 'exe', 'utils'); ++# $zic->AddFiles('src/timezone', 'zic.c'); ++# $zic->AddDirResourceFile('src/timezone'); ++# $zic->AddReference($libpgcommon, $libpgport); + + if (!$solution->{options}->{xml}) + { +@@ -422,39 +422,39 @@ sub mkvcbuild + + # AddProject() does not recognize the constructs used to populate OBJS in + # the pgcrypto Makefile, so it will discover no files. +- my $pgcrypto = +- $solution->AddProject('pgcrypto', 'dll', 'crypto', 'contrib/pgcrypto'); +- $pgcrypto->AddFiles( +- 'contrib/pgcrypto', 'pgcrypto.c', +- 'px.c', 'px-hmac.c', +- 'px-crypt.c', 'crypt-gensalt.c', +- 'crypt-blowfish.c', 'crypt-des.c', +- 'crypt-md5.c', 'mbuf.c', +- 'pgp.c', 'pgp-armor.c', +- 'pgp-cfb.c', 'pgp-compress.c', +- 'pgp-decrypt.c', 'pgp-encrypt.c', +- 'pgp-info.c', 'pgp-mpi.c', +- 'pgp-pubdec.c', 'pgp-pubenc.c', +- 'pgp-pubkey.c', 'pgp-s2k.c', +- 'pgp-pgsql.c'); +- if ($solution->{options}->{openssl}) +- { +- $pgcrypto->AddFiles('contrib/pgcrypto', 'openssl.c', +- 'pgp-mpi-openssl.c'); +- } +- else +- { +- $pgcrypto->AddFiles( +- 'contrib/pgcrypto', 'md5.c', +- 'sha1.c', 'internal.c', +- 'internal-sha2.c', 'blf.c', +- 'rijndael.c', 'pgp-mpi-internal.c', +- 'imath.c'); +- } +- $pgcrypto->AddReference($postgres); +- $pgcrypto->AddLibrary('ws2_32.lib'); +- my $mf = Project::read_file('contrib/pgcrypto/Makefile'); +- GenerateContribSqlFiles('pgcrypto', $mf); ++# my $pgcrypto = ++# $solution->AddProject('pgcrypto', 'dll', 'crypto', 'contrib/pgcrypto'); ++# $pgcrypto->AddFiles( ++# 'contrib/pgcrypto', 'pgcrypto.c', ++# 'px.c', 'px-hmac.c', ++# 'px-crypt.c', 'crypt-gensalt.c', ++# 'crypt-blowfish.c', 'crypt-des.c', ++# 'crypt-md5.c', 'mbuf.c', ++# 'pgp.c', 'pgp-armor.c', ++# 'pgp-cfb.c', 'pgp-compress.c', ++# 'pgp-decrypt.c', 'pgp-encrypt.c', ++# 'pgp-info.c', 'pgp-mpi.c', ++# 'pgp-pubdec.c', 'pgp-pubenc.c', ++# 'pgp-pubkey.c', 'pgp-s2k.c', ++# 'pgp-pgsql.c'); ++# if ($solution->{options}->{openssl}) ++# { ++# $pgcrypto->AddFiles('contrib/pgcrypto', 'openssl.c', ++# 'pgp-mpi-openssl.c'); ++# } ++# else ++# { ++# $pgcrypto->AddFiles( ++# 'contrib/pgcrypto', 'md5.c', ++# 'sha1.c', 'internal.c', ++# 'internal-sha2.c', 'blf.c', ++# 'rijndael.c', 'pgp-mpi-internal.c', ++# 'imath.c'); ++# } ++# $pgcrypto->AddReference($postgres); ++# $pgcrypto->AddLibrary('ws2_32.lib'); ++# my $mf = Project::read_file('contrib/pgcrypto/Makefile'); ++# GenerateContribSqlFiles('pgcrypto', $mf); + + foreach my $subdir ('contrib', 'src/test/modules') + { +@@ -472,7 +472,8 @@ sub mkvcbuild + # Build Perl and Python modules after contrib/ modules to satisfy some + # dependencies with transform contrib modules, like hstore_plpython + # ltree_plpython and hstore_plperl. +- if ($solution->{options}->{python}) ++# if ($solution->{options}->{python}) ++ if (0) + { + + # Attempt to get python version and location. +@@ -512,7 +513,8 @@ sub mkvcbuild + 'PLPYTHON_LIBNAME="plpython' . $pymajorver . '"'); + } + +- if ($solution->{options}->{perl}) ++# if ($solution->{options}->{perl}) ++ if (0) + { + my $plperlsrc = "src/pl/plperl/"; + my $plperl = +@@ -748,7 +750,7 @@ sub mkvcbuild + } + } + +- $mf = ++ my $mf = + Project::read_file('src/backend/utils/mb/conversion_procs/Makefile'); + $mf =~ s{\\\r?\n}{}g; + $mf =~ m{SUBDIRS\s*=\s*(.*)$}m +@@ -802,13 +804,13 @@ sub mkvcbuild + + # fix up pg_waldump once it's been set up + # files symlinked on Unix are copied on windows +- my $pg_waldump = AddSimpleFrontend('pg_waldump'); +- $pg_waldump->AddDefine('FRONTEND'); +- foreach my $xf (glob('src/backend/access/rmgrdesc/*desc.c')) +- { +- $pg_waldump->AddFile($xf); +- } +- $pg_waldump->AddFile('src/backend/access/transam/xlogreader.c'); ++# my $pg_waldump = AddSimpleFrontend('pg_waldump'); ++# $pg_waldump->AddDefine('FRONTEND'); ++# foreach my $xf (glob('src/backend/access/rmgrdesc/*desc.c')) ++# { ++# $pg_waldump->AddFile($xf); ++# } ++# $pg_waldump->AddFile('src/backend/access/transam/xlogreader.c'); + + $solution->Save(); + return $solution->{vcver}; diff --git a/windows/Mkvcbuild.pm.patch b/windows/Mkvcbuild.pm.patch new file mode 100644 index 000000000..580ae7398 --- /dev/null +++ b/windows/Mkvcbuild.pm.patch @@ -0,0 +1,25 @@ +commit 06672ddcdf3da7ba473b0907405133076dce8af2 +Author: Brian Cloutier +Date: Wed Nov 1 14:11:03 2017 -0700 + + Help postgres build the citus 'contrib' module + +diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm +index 4c2e12e..82f3ab1 100644 +--- a/src/tools/msvc/Mkvcbuild.pm ++++ b/src/tools/msvc/Mkvcbuild.pm +@@ -31,11 +31,11 @@ my $libpq; + + # Set of variables for modules in contrib/ and src/test/modules/ + my $contrib_defines = { 'refint' => 'REFINT_VERBOSE' }; +-my @contrib_uselibpq = ('dblink', 'oid2name', 'postgres_fdw', 'vacuumlo'); ++my @contrib_uselibpq = ('citus', 'dblink', 'oid2name', 'postgres_fdw', 'vacuumlo'); + my @contrib_uselibpgport = ('oid2name', 'pg_standby', 'vacuumlo'); + my @contrib_uselibpgcommon = ('oid2name', 'pg_standby', 'vacuumlo'); +-my $contrib_extralibs = undef; +-my $contrib_extraincludes = { 'dblink' => ['src/backend'] }; ++my $contrib_extralibs = { 'citus' => ['ws2_32.lib']}; ++my $contrib_extraincludes = { 'dblink' => ['src/backend'], 'citus' => ['contrib/citus/src/include', 'contrib/citus/windows/include'] }; + my $contrib_extrasource = { + 'cube' => [ 'contrib/cube/cubescan.l', 'contrib/cube/cubeparse.y' ], + 'seg' => [ 'contrib/seg/segscan.l', 'contrib/seg/segparse.y' ], }; diff --git a/windows/include/citus_version.h b/windows/include/citus_version.h new file mode 100644 index 000000000..0397ee538 --- /dev/null +++ b/windows/include/citus_version.h @@ -0,0 +1,26 @@ +/* Citus full name as a string */ +#define CITUS_NAME "Citus" + +/* Citus edition as a string */ +#define CITUS_EDITION "community" + +/* Extension version expected by this Citus build */ +#define CITUS_EXTENSIONVERSION "7.3-1" + +/* Citus major version as a string */ +#define CITUS_MAJORVERSION "7.3" + +/* Citus version as a string */ +#define CITUS_VERSION "7.3devel" + +/* Citus version as a number */ +#define CITUS_VERSION_NUM 70300 + +/* A string containing the version number, platform, and C compiler */ +#define CITUS_VERSION_STR "Citus 7.3devel on x86_64-windows, compiled by Visual Studio" + +/* Define to 1 if you have the `curl' library (-lcurl). */ +#define HAVE_LIBCURL 0 + +/* Base URL for statistics collection and update checks */ +#define REPORTS_BASE_URL "https://reports.citusdata.com"