|
From: Michael P <mic...@us...> - 2010-07-22 00:07:57
|
Project "Postgres-XC".
The branch, master has been updated
via d7ca431066efe320107581186ab853b28fa5f7a7 (commit)
from 0fdcc0b44b395df2e546ba90feaa0d656ad58f4d (commit)
- Log -----------------------------------------------------------------
commit d7ca431066efe320107581186ab853b28fa5f7a7
Author: Michael P <mic...@us...>
Date: Thu Jul 22 08:59:07 2010 +0900
Support for cold synchronization of catalog table of coordinator.
This cold solution is temporary.
Hot synchronization will be introduced in one of Postgres-XC's next release.
Cold synchronization method means that once a DDL is launched, all the coordinators are stopped.
And then the catalog copy begins from a coordinator chosen by the user.
It is also possible to synchronize catalogs without launching a DDL file on one coordinator.
Options possible to use for this script
-D locate the data folder, necessary to find pgxc.conf, containing the characteristics of all the coordinators
-l to locate the folder where applications are
-f for a DDL file
-d for a Database name
-n coordinator number where to launch DDl, number based on the one written in pgxc.conf
-t base name of folder where to save configuration files, by default /tmp/pgxc_config, completed by $$
Synchronization uses a new configuration file called pgxc.conf gathering all the coordinator data,
such as port number, data folder and host for each one.
Please refer to Postgres-XC 0.9.2 reference manual for further details.
diff --git a/src/backend/Makefile b/src/backend/Makefile
index df707e7..984c951 100644
--- a/src/backend/Makefile
+++ b/src/backend/Makefile
@@ -195,6 +195,7 @@ endif
$(INSTALL_DATA) $(srcdir)/libpq/pg_hba.conf.sample '$(DESTDIR)$(datadir)/pg_hba.conf.sample'
$(INSTALL_DATA) $(srcdir)/libpq/pg_ident.conf.sample '$(DESTDIR)$(datadir)/pg_ident.conf.sample'
$(INSTALL_DATA) $(srcdir)/utils/misc/postgresql.conf.sample '$(DESTDIR)$(datadir)/postgresql.conf.sample'
+ $(INSTALL_DATA) $(srcdir)/utils/misc/pgxc.conf.sample '$(DESTDIR)$(datadir)/pgxc.conf.sample'
$(INSTALL_DATA) $(srcdir)/access/transam/recovery.conf.sample '$(DESTDIR)$(datadir)/recovery.conf.sample'
install-bin: postgres $(POSTGRES_IMP) installdirs
@@ -248,8 +249,9 @@ endif
$(MAKE) -C catalog uninstall-data
$(MAKE) -C tsearch uninstall-data
rm -f '$(DESTDIR)$(datadir)/pg_hba.conf.sample' \
+ '$(DESTDIR)$(datadir)/pgxc.conf.sample' \
'$(DESTDIR)$(datadir)/pg_ident.conf.sample' \
- '$(DESTDIR)$(datadir)/postgresql.conf.sample' \
+ '$(DESTDIR)$(datadir)/postgresql.conf.sample' \
'$(DESTDIR)$(datadir)/recovery.conf.sample'
diff --git a/src/backend/utils/misc/pgxc.conf.sample b/src/backend/utils/misc/pgxc.conf.sample
new file mode 100644
index 0000000..9dcc0c7
--- /dev/null
+++ b/src/backend/utils/misc/pgxc.conf.sample
@@ -0,0 +1,20 @@
+# -----------------------------
+# Postgres-XC configuration file
+# -----------------------------
+#
+# This file consists of lines of the form:
+#
+# name = value
+#
+# It describes the list of coordinators used in the cluster
+
+#------------------------------------------------------------------------------
+# POSTGRES-XC COORDINATORS
+#------------------------------------------------------------------------------
+
+#coordinator_hosts = 'localhost' # Host names or addresses of data nodes
+ # (change requires restart)
+#coordinator_ports = '5451,5452' # Port numbers of coordinators
+ # (change requires restart)
+#coordinator_folders = '/pgxc/data' # List of Data folders of coordinators
+ # (change require restart)
\ No newline at end of file
diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
index 2d0b244..b4dd50b 100644
--- a/src/bin/initdb/initdb.c
+++ b/src/bin/initdb/initdb.c
@@ -100,6 +100,9 @@ static char *shdesc_file;
static char *hba_file;
static char *ident_file;
static char *conf_file;
+#ifdef PGXC
+static char *pgxc_conf_file;
+#endif
static char *conversion_file;
static char *dictionary_file;
static char *info_schema_file;
@@ -1296,6 +1299,19 @@ setup_config(void)
free(conflines);
+#ifdef PGXC
+ /* pgxc.conf */
+
+ conflines = readfile(pgxc_conf_file);
+
+ snprintf(path, sizeof(path), "%s/pgxc.conf", pg_data);
+
+ writefile(path, conflines);
+ chmod(path, 0600);
+
+ free(conflines);
+#endif
+
check_ok();
}
@@ -2810,6 +2826,9 @@ main(int argc, char *argv[])
set_input(&hba_file, "pg_hba.conf.sample");
set_input(&ident_file, "pg_ident.conf.sample");
set_input(&conf_file, "postgresql.conf.sample");
+#ifdef PGXC
+ set_input(&pgxc_conf_file, "pgxc.conf.sample");
+#endif
set_input(&conversion_file, "conversion_create.sql");
set_input(&dictionary_file, "snowball_create.sql");
set_input(&info_schema_file, "information_schema.sql");
@@ -2826,12 +2845,18 @@ main(int argc, char *argv[])
"POSTGRES_SUPERUSERNAME=%s\nPOSTGRES_BKI=%s\n"
"POSTGRES_DESCR=%s\nPOSTGRES_SHDESCR=%s\n"
"POSTGRESQL_CONF_SAMPLE=%s\n"
+#ifdef PGXC
+ "PGXC_CONF_SAMPLE=%s\n"
+#endif
"PG_HBA_SAMPLE=%s\nPG_IDENT_SAMPLE=%s\n",
PG_VERSION,
pg_data, share_path, bin_path,
username, bki_file,
desc_file, shdesc_file,
conf_file,
+#ifdef PGXC
+ pgxc_conf_file,
+#endif
hba_file, ident_file);
if (show_setting)
exit(0);
@@ -2842,6 +2867,9 @@ main(int argc, char *argv[])
check_input(shdesc_file);
check_input(hba_file);
check_input(ident_file);
+#ifdef PGXC
+ check_input(pgxc_conf_file);
+#endif
check_input(conf_file);
check_input(conversion_file);
check_input(dictionary_file);
diff --git a/src/bin/scripts/Makefile b/src/bin/scripts/Makefile
index c28a066..48f9c20 100644
--- a/src/bin/scripts/Makefile
+++ b/src/bin/scripts/Makefile
@@ -52,6 +52,8 @@ install: all installdirs
$(INSTALL_PROGRAM) clusterdb$(X) '$(DESTDIR)$(bindir)'/clusterdb$(X)
$(INSTALL_PROGRAM) vacuumdb$(X) '$(DESTDIR)$(bindir)'/vacuumdb$(X)
$(INSTALL_PROGRAM) reindexdb$(X) '$(DESTDIR)$(bindir)'/reindexdb$(X)
+ $(INSTALL_PROGRAM) pgxc_ddl$(X) '$(DESTDIR)$(bindir)'/pgxc_ddl$(X)
+ chmod 555 '$(DESTDIR)$(bindir)'/pgxc_ddl$(X)
installdirs:
$(mkinstalldirs) '$(DESTDIR)$(bindir)'
diff --git a/src/bin/scripts/pgxc_ddl b/src/bin/scripts/pgxc_ddl
new file mode 100644
index 0000000..efc2f69
--- /dev/null
+++ b/src/bin/scripts/pgxc_ddl
@@ -0,0 +1,443 @@
+#!/bin/bash
+# Copyright (c) 2010 Nippon Telegraph and Telephone Corporation
+
+#Scripts to launch DDL in PGXC cluster using a cold_backup method
+#Be sure to have set a correct ssl environment in all the servers of the cluster
+
+#This script uses pgxc.conf as a base to find the settings of all the coordinators
+
+#Options possible to use for this script
+# -D to locate the data folder, necessary to find pgxc.conf, containing the characteristics of all the coordinators
+# -l to locate the folder where applications are
+# -f for a DDL file
+# -d for a Database name
+# -n coordinator number where to launch DDl, number based on the one written in pgxc.conf
+# -t base name of folder where to save configuration files, by default /tmp/pgxc_config, completed by $$
+
+count=0
+
+#Default options
+#local folder used to save temporary the configuration files of coordinator's data folder being erased
+CONFIG_FOLDER=/tmp/pgxc_config_files.$$
+PGXC_BASE=
+#options to launch the coordinator
+#don't forget to add -i as we are in a cluster :)
+COORD_OPTIONS="-C -i"
+
+#-----------------------------------------------------------------------
+# Option Management
+#-----------------------------------------------------------------------
+while getopts 'f:d:D:l:hn:t:' OPTION
+do
+ count=$((count +2))
+ case $OPTION in
+ d) #for a database name
+ DB_NAME="$OPTARG"
+ ;;
+
+ D) #for a data folder, to find pgxc.conf
+ DATA_FOLDER="$OPTARG"
+ ;;
+
+ f) #for a DDL file
+ DDL_FILE_NAME="$OPTARG"
+ ;;
+
+ l) #To define folder where applications are if necessary
+ PGXC_BASE="$OPTARG"/
+ ;;
+
+ n) #for a coordinator number
+ COORD_NUM_ORIGIN="$OPTARG"
+ ;;
+
+ h) printf "Usage: %s: [-d dbname] [-l bin folder] [-D data folder] [-n coord number] [-f ddl file] [-t save folder name in /tmp/]\n" $(basename $0) >&2
+ exit 0
+ ;;
+ t) #to set the name of the folder where to save conf files. All is mandatory saved in /tmp
+ CONFIG_FOLDER=/tmp/"$OPTARG"
+ ;;
+
+ ?) printf "Usage: %s: [-d dbname] [-l bin folder] [-D data folder] [-n coord number] [-f ddl file] [-t save folder name in /tmp/]\n" $(basename $0) >&2
+ exit 0
+ ;;
+ esac
+done
+
+if [ $# -lt "1" ]
+then
+ echo "No arguments defined, you should try help -h"
+ exit 2
+fi
+
+#A couple of option checks
+if [ "$count" -ne "$#" ]
+then
+ echo "Arguments not correctly set, try -h for help"
+ exit 2
+fi
+
+if [ -z $COORD_NUM_ORIGIN ]
+then
+ echo "Coordinator number not defined, mandatory -n argument missing"
+ exit 2
+fi
+if [ -z $DATA_FOLDER ]
+then
+ echo "Data folder not defined, mandatory -D argument missing"
+ exit 2
+fi
+
+#Check if Argument of -n is an integer
+if [ ! $(echo "$COORD_NUM_ORIGIN" | grep -E "^[0-9]+$") ]
+ then
+ echo "Argument -n is not a valid integer"
+ exit 2
+fi
+
+#Check if DDL file exists
+if [ "$DDL_FILE_NAME" != "" ]
+then
+ if [ ! -e $DDL_FILE_NAME ]
+ then
+ echo "DDL file not defined"
+ exit 2
+ fi
+ if [ -z $DB_NAME ]
+ then
+ echo "Dbname not defined, mandatory -d argument missing when using a ddl file"
+ exit 2
+ fi
+fi
+
+#-----------------------------------------------------------------------
+# Begin to read the pgxc.conf to get coordinator characteristics
+#-----------------------------------------------------------------------
+PGXC_CONF=$DATA_FOLDER/pgxc.conf
+
+if [ ! -e $PGXC_CONF ]
+then
+ echo "pgxc.conf not defined in the directory defined by -D"
+ exit 2
+fi
+
+#Find parameters
+hosts=`cat $PGXC_CONF | grep coordinator_hosts | cut -d "'" -f 2`
+ports=`cat $PGXC_CONF | grep coordinator_ports | cut -d "'" -f 2`
+folders=`cat $PGXC_CONF | grep coordinator_folders | cut -d "'" -f 2`
+if [ "hosts" = "" ]
+then
+ echo "coordinator_hosts not defined in pgxc.conf"
+ exit 2
+fi
+if [ "ports" = "" ]
+then
+ echo "coordinator_ports not defined in pgxc.conf"
+ exit 2
+fi
+if [ "folders" = "" ]
+then
+ echo "coordinator_folders not defined in pgxc.conf"
+ exit 2
+fi
+
+#Check if the strings are using commas as separators
+hosts_sep="${hosts//[^,]/}"
+ports_sep="${ports//[^,]/}"
+folders_sep="${folders//[^,]/}"
+if [ "$hosts_sep" = "" ]
+then
+ echo "coordinator_hosts should use commas as a separator"
+ exit 2
+fi
+if [ "$ports_sep" = "" ]
+then
+ echo "coordinator_ports should use commas as a separator"
+ exit 2
+fi
+if [ "$folders_sep" = "" ]
+then
+ echo "coordinator_folders should use commas as a separator"
+ exit 2
+fi
+
+
+#-----------------------------------------------------------------------
+# Fill in Arrays that are used for the process from pgxc configuration file
+#-----------------------------------------------------------------------
+
+count=1
+#Coordinator list
+host_local=`echo $hosts | cut -d "," -f $count`
+while [ "$host_local" != "" ]
+do
+ COORD_HOSTNAMES[$((count -1))]=`echo $host_local`
+ count=$((count +1))
+ host_local=`echo $hosts | cut -d "," -f $count`
+done
+COORD_COUNT=${#COORD_HOSTNAMES[*]}
+
+#Port list corresponding to the coordinators
+#If all the coordinators use the same port on different servers,
+#it is possible to define that with a unique element array.
+count=1
+port_local=`echo $ports | cut -d "," -f $count`
+while [ "$port_local" != "" ]
+do
+ COORD_PORTS[$((count -1))]=$port_local
+ count=$((count +1))
+ port_local=`echo $ports | cut -d "," -f $count`
+done
+COORD_PORTS_COUNT=${#COORD_PORTS[*]}
+
+#Data folder list corresponding to the coordinators
+#If all the coordinators use the same data folder name on different servers,
+#it is possible to define that with a unique element array.
+count=1
+folder_local=`echo $folders | cut -d "," -f $count`
+
+while [ "$folder_local" != "" ]
+do
+ COORD_PGDATA[$((count -1))]=$folder_local
+ count=$((count +1))
+ folder_local=`echo $folders | cut -d "," -f $count`
+done
+COORD_PGDATA_COUNT=${#COORD_PGDATA[*]}
+
+
+#-----------------------------------------------------------------------
+# Start DDL process
+#-----------------------------------------------------------------------
+
+#It is supposed that the same bin folders are used among the servers
+#to call postgres processes
+#This can be customized by the user with option -l
+COORD_SERVER_PROCESS=postgres
+PGCTL_SERVER_PROCESS=pg_ctl
+PSQL_CLIENT_PROCESS=psql
+
+COORD_SERVER=$PGXC_BASE$COORD_SERVER_PROCESS
+PGCTL_SERVER=$PGXC_BASE$PGCTL_SERVER_PROCESS
+PSQL_CLIENT=$PGXC_BASE$PSQL_CLIENT_PROCESS
+
+#reajust coord number with index number
+COORD_NUM_ORIGIN=$((COORD_NUM_ORIGIN -1))
+
+#check data validity
+#Note: Add other checks here
+
+if [ $COORD_COUNT -eq "1" ]
+then
+ echo "Are you sure you want to use this utility with one only coordinator??"
+ exit 2
+fi
+
+if [ $COORD_PGDATA_COUNT -ne $COORD_COUNT ]
+then
+ echo "Number of pgdata folders must be the same as coordinator server number"
+ exit 2
+fi
+
+if [ $COORD_PORTS_COUNT -ne $COORD_COUNT ]
+then
+ echo "Number of coordinator ports defined must be the same as coordinator server number"
+ exit 2
+fi
+
+#Check if coordinator number is not outbounds
+if [ $COORD_NUM_ORIGIN -gt $((COORD_COUNT -1)) ]
+then
+ echo "coordinator number is out of bounds"
+ exit 2
+fi
+COORD_ORIG_INDEX=$COORD_NUM_ORIGIN
+
+#Check if the data folders are defined
+for index in ${!COORD_HOSTNAMES[*]}
+do
+ targethost=${COORD_HOSTNAMES[$index]}
+ targetdata=${COORD_PGDATA[$index]}
+ if [[ `ssh $targethost test -d $targetdata && echo exists` ]]
+ then
+ echo "defined directory exists for "$targethost
+ else
+ echo "defined directory does not exist for "$targethost
+ exit 2
+ fi
+done
+
+#Origin Coordinator Index has been found?
+if [ -z $COORD_ORIG_INDEX ]
+then
+ echo "origin coordinator is not in the coordinator list"
+ exit 2
+fi
+
+#Main process begins
+
+#Check if the database is defined, This could lead to coordinator being stopped uselessly
+if [ $DB_NAME != "" ]
+then
+ #Simply launch a fake SQL on the Database wanted
+ $PSQL_CLIENT -h ${COORD_HOSTNAMES[$COORD_ORIG_INDEX]} -p ${COORD_PORTS[$COORD_ORIG_INDEX]} -c 'select now()' -d $DB_NAME; err=$?
+ if [ $err -gt "0" ]
+ then
+ echo "Database not defined"
+ exit 2
+ fi
+fi
+
+#1) stop all the coordinators
+echo "Stopping all the coordinators"
+for index in ${!COORD_HOSTNAMES[*]}
+do
+ targethost=${COORD_HOSTNAMES[$index]}
+ targetdata=${COORD_PGDATA[$index]}
+ echo ssh $targethost $PGCTL_SERVER stop -D $targetdata
+ ssh $targethost $PGCTL_SERVER stop -D $targetdata; err=$?
+ if [ $err -gt "0" ]
+ then
+ "pg_ctl couldn't stop server"
+ exit 2
+ fi
+done
+
+#If a DDL file is not set by the user, just synchronize the catalogs with the catalog of the chosen coordinator
+if [ "$DDL_FILE_NAME" != "" ]
+then
+ echo "-f activated, DDL being launched"
+
+ #2) restart the one we want to launch DDL to...
+ echo ssh ${COORD_HOSTNAMES[$COORD_ORIG_INDEX]} $COORD_SERVER $COORD_OPTIONS -p ${COORD_PORTS[$COORD_ORIG_INDEX]} -D ${COORD_PGDATA[$COORD_ORIG_INDEX]}
+ ssh ${COORD_HOSTNAMES[$COORD_ORIG_INDEX]} $COORD_SERVER $COORD_OPTIONS -p ${COORD_PORTS[$COORD_ORIG_INDEX]} -D ${COORD_PGDATA[$COORD_ORIG_INDEX]} &
+
+ #wait a little bit to be sure it switched on
+ sleep 3
+
+ #3) launch the DDL
+ #This has to be done depending on if the user has defined a file or a command
+ echo $PSQL_CLIENT -h ${COORD_HOSTNAMES[$COORD_ORIG_INDEX]} -p ${COORD_PORTS[$COORD_ORIG_INDEX]} -f $DDL_FILE_NAME -d $DB_NAME
+ $PSQL_CLIENT -h ${COORD_HOSTNAMES[$COORD_ORIG_INDEX]} -p ${COORD_PORTS[$COORD_ORIG_INDEX]} -f $DDL_FILE_NAME -d $DB_NAME; err=$?
+ if [ $err -gt "0" ]
+ then
+ echo "psql error, is Database defined?"
+ exit 2
+ fi
+
+ #4) Stop again the origin coordinator as we cannot copy the lock files to other coordinators
+ echo ssh ${COORD_HOSTNAMES[$COORD_ORIG_INDEX]} $PGCTL_SERVER stop -D ${COORD_PGDATA[$COORD_ORIG_INDEX]}
+ ssh ${COORD_HOSTNAMES[$COORD_ORIG_INDEX]} $PGCTL_SERVER stop -D ${COORD_PGDATA[$COORD_ORIG_INDEX]}; err=$?
+ if [ $err -gt "0" ]
+ then
+ "pg_ctl couldn't stop server"
+ exit 2
+ fi
+fi
+
+#5) before copying the catalogs, save the configuration files or they are erased by the catalog copy
+#make a copy of them in a folder in /tmp/pgxc_conf (default folder)
+if [ -d $CONFIG_FOLDER ]
+then
+ rm -rf $CONFIG_FOLDER
+fi
+mkdir $CONFIG_FOLDER
+
+for index in ${!COORD_HOSTNAMES[*]}
+do
+ if [ $index -ne $COORD_ORIG_INDEX ]
+ then
+ targethost=${COORD_HOSTNAMES[$index]}
+ targetdata=${COORD_PGDATA[$index]}
+ echo scp -pr $targethost:$targetdata/postgresql.conf $CONFIG_FOLDER/postgresql.conf.$index
+ echo scp -pr $targethost:$targetdata/pg_hba.conf $CONFIG_FOLDER/pg_hba.conf.$index
+ scp -pr $targethost:$targetdata/postgresql.conf $CONFIG_FOLDER/postgresql.conf.$index; err=$?
+ if [ $err -gt "0" ]
+ then
+ echo "deleting saved configuration files"
+ rm -rf $CONFIG_FOLDER
+ echo "scp failed with "$targethost
+ exit 2
+ fi
+ scp -pr $targethost:$targetdata/pg_hba.conf $CONFIG_FOLDER/pg_hba.conf.$index; err=$?
+ if [ $err -gt "0" ]
+ then
+ echo "deleting saved configuration files"
+ rm -rf $CONFIG_FOLDER
+ echo "scp failed with "$targethost
+ exit 2
+ fi
+ fi
+done
+
+#6) copy catalog files to all coordinators but not to the origin one
+for index in ${!COORD_HOSTNAMES[*]}
+do
+ if [ $index -ne $COORD_ORIG_INDEX ]
+ then
+ srchost=${COORD_HOSTNAMES[$COORD_ORIG_INDEX]}
+ srcdata=${COORD_PGDATA[$COORD_ORIG_INDEX]}
+ targethost=${COORD_HOSTNAMES[$index]}
+ targetdata=${COORD_PGDATA[$index]}
+ #First erase the data to have a nice cleanup
+ echo ssh $targethost rm -rf $targetdata
+ ssh $targethost rm -rf $targetdata
+
+ #Just to be sure that catalog files of origin coordinator are copied well
+ echo scp -pr $srchost:$srcdata $targethost:$targetdata
+ scp -pr $srchost:$srcdata $targethost:$targetdata; err=$?
+ if [ $err -gt "0" ]
+ then
+ echo "deleting saved configuration files"
+ rm -rf $CONFIG_FOLDER
+ echo "scp failed with "$targethost
+ exit 2
+ fi
+ fi
+done
+
+#7) copy back the configuration files to the corresponding fresh folders
+#but not the configuration files of the origin coordinator
+for index in ${!COORD_HOSTNAMES[*]}
+do
+ if [ $index -ne $COORD_ORIG_INDEX ]
+ then
+ targethost=${COORD_HOSTNAMES[$index]}
+ targetdata=${COORD_PGDATA[$index]}
+ echo scp -pr $CONFIG_FOLDER/postgresql.conf.$index $targethost:$targetdata/postgresql.conf
+ echo scp -pr $CONFIG_FOLDER/pg_hba.conf.$index $targethost:$targetdata/pg_hba.conf
+ scp -pr $CONFIG_FOLDER/postgresql.conf.$index $targethost:$targetdata/postgresql.conf; err=$?
+ if [ $err -gt "0" ]
+ then
+ echo "deleting saved configuration files"
+ rm -rf $CONFIG_FOLDER
+ echo "scp failed with "$targethost
+ exit 2
+ fi
+ scp -pr $CONFIG_FOLDER/pg_hba.conf.$index $targethost:$targetdata/pg_hba.conf; err=$?
+ if [ $err -gt "0" ]
+ then
+ echo "deleting saved configuration files"
+ rm -rf $CONFIG_FOLDER
+ echo "scp failed with "$targethost
+ exit 2
+ fi
+ fi
+done
+
+#8) wait a little bit...
+sleep 1
+
+#9) restart all the other coordinators, origin coordinator has been stopped after DDL run
+for index in ${!COORD_HOSTNAMES[*]}
+do
+ echo ssh ${COORD_HOSTNAMES[$index]} $COORD_SERVER $COORD_OPTIONS -p ${COORD_PORTS[$index]} -D ${COORD_PGDATA[$index]} &
+ ssh ${COORD_HOSTNAMES[$index]} $COORD_SERVER $COORD_OPTIONS -p ${COORD_PORTS[$index]} -D ${COORD_PGDATA[$index]} &
+done
+
+sleep 2
+
+#Clean also the folder in tmp keeping the configuration files
+rm -rf $CONFIG_FOLDER
+
+#10) finished :p
+exit
\ No newline at end of file
-----------------------------------------------------------------------
Summary of changes:
src/backend/Makefile | 4 +-
src/backend/utils/misc/pgxc.conf.sample | 20 ++
src/bin/initdb/initdb.c | 28 ++
src/bin/scripts/Makefile | 2 +
src/bin/scripts/pgxc_ddl | 443 +++++++++++++++++++++++++++++++
5 files changed, 496 insertions(+), 1 deletions(-)
create mode 100644 src/backend/utils/misc/pgxc.conf.sample
create mode 100644 src/bin/scripts/pgxc_ddl
hooks/post-receive
--
Postgres-XC
|