diff options
author | Pavan Deolasee | 2014-07-31 10:13:12 +0000 |
---|---|---|
committer | Pavan Deolasee | 2014-09-01 14:20:30 +0000 |
commit | 2f4b65dfed44785aea10a5953696717b41c36ae5 (patch) | |
tree | 2b0a5b30803c904b48abd54e74d6678347dd29eb | |
parent | 55700225386484f8a0b2d96b66e3cca64a142541 (diff) |
Add ability to specify datanode slave ports and datanode slave pooler ports
separately.
Currently pgxc_ctl requires that datanode master and slave must have the same
server and poole ports. While this is nice for easier configuration and
management of datanode master/slave, its quite constraining, especially
while testing master/slave on a single node
-rw-r--r-- | contrib/pgxc_ctl/config.c | 25 | ||||
-rw-r--r-- | contrib/pgxc_ctl/datanode_cmd.c | 78 | ||||
-rw-r--r-- | contrib/pgxc_ctl/datanode_cmd.h | 2 | ||||
-rw-r--r-- | contrib/pgxc_ctl/do_command.c | 15 | ||||
-rw-r--r-- | contrib/pgxc_ctl/monitor.c | 4 | ||||
-rw-r--r-- | contrib/pgxc_ctl/pgxc_ctl_bash.c | 4 | ||||
-rwxr-xr-x | contrib/pgxc_ctl/pgxc_ctl_bash_2 | 4 | ||||
-rw-r--r-- | contrib/pgxc_ctl/signature.h | 2 | ||||
-rw-r--r-- | contrib/pgxc_ctl/varnames.h | 4 |
9 files changed, 113 insertions, 25 deletions
diff --git a/contrib/pgxc_ctl/config.c b/contrib/pgxc_ctl/config.c index 2d09826dc1..92e28398c2 100644 --- a/contrib/pgxc_ctl/config.c +++ b/contrib/pgxc_ctl/config.c @@ -369,6 +369,10 @@ static void emptyDatanodeSlaves() reset_var_val(VAR_datanodeSlave, "n"); reset_var(VAR_datanodeSlaveServers); + reset_var(VAR_datanodeSlavePorts); +#ifdef XCP + reset_var(VAR_datanodeSlavePoolerPorts); +#endif reset_var(VAR_datanodeSlaveDirs); reset_var(VAR_datanodeArchLogDirs); for (ii = 0; ii < arraySizeName(VAR_datanodeSlaveServers); ii++) @@ -631,7 +635,7 @@ int checkPortConflict(char *host, int port) if (isVarYes(VAR_datanodeSlave)) for (ii = 0; aval(VAR_datanodeNames)[ii]; ii++) if (doesExist(VAR_datanodeSlaveServers, ii) && !is_none(aval(VAR_datanodeSlaveServers)[ii]) && - (strcasecmp(host, aval(VAR_datanodeSlaveServers)[ii]) == 0) && (atoi(aval(VAR_datanodePorts)[ii]) == port)) + (strcasecmp(host, aval(VAR_datanodeSlaveServers)[ii]) == 0) && (atoi(aval(VAR_datanodeSlavePorts)[ii]) == port)) return 1; return 0; } @@ -860,6 +864,10 @@ static void verifyResource(void) NULL}; char *datanodeSlaveVars[] = {VAR_datanodeNames, VAR_datanodeSlaveServers, + VAR_datanodeSlavePorts, +#ifdef XCP + VAR_datanodeSlavePoolerPorts, +#endif VAR_datanodeSlaveDirs, VAR_datanodeArchLogDirs, NULL}; @@ -932,7 +940,7 @@ static void verifyResource(void) /* GTM and datanode slaves, if any */ if(isVarYes(VAR_datanodeSlave)) checkResourceConflict(VAR_gtmName, VAR_gtmMasterServer, VAR_gtmMasterPort, NULL, VAR_gtmMasterDir, - VAR_datanodeNames, VAR_datanodeMasterServers, VAR_datanodePorts, NULL, VAR_datanodeSlaveDirs, + VAR_datanodeNames, VAR_datanodeMasterServers, VAR_datanodeSlavePorts, NULL, VAR_datanodeSlaveDirs, TRUE, TRUE); /* * GTM slave and others ------------ @@ -960,7 +968,7 @@ static void verifyResource(void) /* GTM slave and datanode slave, if any */ if (isVarYes(VAR_datanodeSlave)) checkResourceConflict(VAR_gtmName, VAR_gtmSlaveServer, VAR_gtmSlavePort, NULL, VAR_gtmSlaveDir, - VAR_datanodeNames, VAR_datanodeSlaveServers, VAR_datanodePorts, NULL, VAR_datanodeSlaveDirs, + VAR_datanodeNames, VAR_datanodeSlaveServers, VAR_datanodeSlavePorts, NULL, VAR_datanodeSlaveDirs, TRUE, TRUE); } /* @@ -984,7 +992,7 @@ static void verifyResource(void) /* GTM proxy and datanode slave, if any */ if (sval(VAR_datanodeSlave) && (strcmp(sval(VAR_datanodeSlave), "y") == 0)) checkResourceConflict(VAR_gtmProxyNames, VAR_gtmProxyServers, VAR_gtmProxyPorts, NULL, VAR_gtmProxyDirs, - VAR_datanodeNames, VAR_datanodeSlaveServers, VAR_datanodePorts, NULL, VAR_datanodeSlaveDirs, + VAR_datanodeNames, VAR_datanodeSlaveServers, VAR_datanodeSlavePorts, NULL, VAR_datanodeSlaveDirs, TRUE, TRUE); } /* @@ -1002,7 +1010,8 @@ static void verifyResource(void) /* Coordinator masters and datanode slave, if any */ if (isVarYes(VAR_datanodeSlave)) checkResourceConflict(VAR_coordNames, VAR_coordMasterServers, VAR_coordPorts, VAR_poolerPorts, VAR_coordMasterDirs, - VAR_datanodeNames, VAR_datanodeSlaveServers, VAR_datanodePorts, NULL, VAR_datanodeSlaveDirs, + VAR_datanodeNames, VAR_datanodeSlaveServers, + VAR_datanodeSlavePorts, NULL, VAR_datanodeSlaveDirs, TRUE, TRUE); /* * Coordinator slaves and others @@ -1016,7 +1025,8 @@ static void verifyResource(void) /* Coordinator slave and datanode slave, if any */ if (isVarYes(VAR_datanodeSlave)) checkResourceConflict(VAR_coordNames, VAR_coordSlaveServers, VAR_coordPorts, VAR_poolerPorts, VAR_coordSlaveDirs, - VAR_datanodeNames, VAR_datanodeSlaveServers, VAR_datanodePorts, NULL, VAR_datanodeSlaveDirs, + VAR_datanodeNames, VAR_datanodeSlaveServers, + VAR_datanodeSlavePorts, NULL, VAR_datanodeSlaveDirs, TRUE, TRUE); } /* @@ -1029,7 +1039,8 @@ static void verifyResource(void) /* Datanode master and datanode slave, if any */ if (sval(VAR_datanodeSlave) && (strcmp(sval(VAR_datanodeSlave), "y") == 0)) checkResourceConflict(VAR_datanodeNames, VAR_datanodeMasterServers, VAR_datanodePorts, NULL, VAR_datanodeMasterDirs, - VAR_datanodeNames, VAR_datanodeSlaveServers, VAR_datanodePorts, NULL, VAR_datanodeSlaveDirs, + VAR_datanodeNames, VAR_datanodeSlaveServers, + VAR_datanodeSlavePorts, NULL, VAR_datanodeSlaveDirs, TRUE, FALSE); if (anyConfigErrors) { diff --git a/contrib/pgxc_ctl/datanode_cmd.c b/contrib/pgxc_ctl/datanode_cmd.c index 3b5a4569a7..69f7e75ca5 100644 --- a/contrib/pgxc_ctl/datanode_cmd.c +++ b/contrib/pgxc_ctl/datanode_cmd.c @@ -284,7 +284,7 @@ cmd_t *prepare_initDatanodeSlave(char *nodeName) "#==========================================\n" "# Added to initialize the slave, %s\n" "standby_mode = on\n" - "primary_conninfo = 'host = %s port = %sd user = %s application_name = %s'\n" + "primary_conninfo = 'host = %s port = %s user = %s application_name = %s'\n" "restore_command = 'cp %s/%%f %%p'\n" "archive_cleanup_command = 'pg_archivecleanup %s %%r'\n", timeStampString(timestamp, MAXTOKEN), @@ -309,9 +309,11 @@ cmd_t *prepare_initDatanodeSlave(char *nodeName) "# Added to startup the slave, %s\n" "hot_standby = on\n" "port = %s\n" + "pooler_port = %s\n" "# End of addition\n", timeStampString(timestamp, MAXTOKEN), - aval(VAR_datanodePorts)[idx]); + aval(VAR_datanodeSlavePorts)[idx], + aval(VAR_datanodeSlavePoolerPorts)[idx]); fclose(f); /* Stp datanode master if needed */ @@ -589,7 +591,7 @@ cmd_t *prepare_stopDatanodeSlave(char *nodeName, char *immediate) /* The next step might need improvement. When GTM is dead, the following may * fail even though the master is running. */ - if (pingNode(aval(VAR_datanodeSlaveServers)[idx], aval(VAR_datanodePorts)[idx]) == 0) + if (pingNode(aval(VAR_datanodeSlaveServers)[idx], aval(VAR_datanodeSlavePorts)[idx]) == 0) { cmd_t *cmdReloadMaster; @@ -753,7 +755,14 @@ static int failover_oneDatanode(int datanodeIdx) var_assign(&(aval(VAR_datanodeSlaveServers)[datanodeIdx]), Strdup("none")); var_assign(&(aval(VAR_datanodeMasterDirs)[datanodeIdx]), Strdup(aval(VAR_datanodeSlaveDirs)[datanodeIdx])); var_assign(&(aval(VAR_datanodeSlaveDirs)[datanodeIdx]), Strdup("none")); - + var_assign(&(aval(VAR_datanodePorts)[datanodeIdx]), Strdup(aval(VAR_datanodeSlavePorts)[datanodeIdx])); +#ifdef XCP + var_assign(&(aval(VAR_datanodePoolerPorts)[datanodeIdx]), Strdup(aval(VAR_datanodeSlavePoolerPorts)[datanodeIdx])); +#endif + var_assign(&(aval(VAR_datanodeSlavePorts)[datanodeIdx]), Strdup("none")); +#ifdef XCP + var_assign(&(aval(VAR_datanodeSlavePoolerPorts)[datanodeIdx]), Strdup("none")); +#endif /* * Update the configuration file */ @@ -766,14 +775,30 @@ static int failover_oneDatanode(int datanodeIdx) "#=====================================================\n" "# Updated due to the datanode failover, %s, %s\n" "datanodeMasterServers=( %s )\n" + "datanodePorts=( %s )\n" +#ifdef XCP + "datanodePoolerPorts=( %s )\n" +#endif "datanodeMasterDirs=( %s )\n" "datanodeSlaveServers=( %s )\n" + "datanodeSlavePorts=( %s )\n" +#ifdef XCP + "datanodeSlavePoolerPorts=( %s )\n" +#endif "datanodeSlaveDirs=( %s )\n" "# End of the update\n", aval(VAR_datanodeNames)[datanodeIdx], timeStampString(timestamp, MAXTOKEN), listValue(VAR_datanodeMasterServers), + listValue(VAR_datanodePorts), +#ifdef XCP + listValue(VAR_datanodePoolerPorts), +#endif listValue(VAR_datanodeMasterDirs), listValue(VAR_datanodeSlaveServers), + listValue(VAR_datanodeSlavePorts), +#ifdef XCP + listValue(VAR_datanodeSlavePoolerPorts), +#endif listValue(VAR_datanodeSlaveDirs)); fclose(f); @@ -913,6 +938,10 @@ int add_datanodeMaster(char *name, char *host, int port, char *dir, char *restor assign_arrayEl(VAR_datanodeMasterDirs, idx, dir, NULL); assign_arrayEl(VAR_datanodeMaxWALSenders, idx, aval(VAR_datanodeMaxWALSenders)[0], NULL); /* Could be vulnerable */ assign_arrayEl(VAR_datanodeSlaveServers, idx, "none", NULL); + assign_arrayEl(VAR_datanodeSlavePorts, idx, "-1", NULL); +#ifdef XCP + assign_arrayEl(VAR_datanodeSlavePoolerPorts, idx, "-1", NULL); +#endif assign_arrayEl(VAR_datanodeSlaveDirs, idx, "none", NULL); assign_arrayEl(VAR_datanodeArchLogDirs, idx, "none", NULL); assign_arrayEl(VAR_datanodeSpecificExtraConfig, idx, "none", NULL); @@ -950,6 +979,10 @@ int add_datanodeMaster(char *name, char *host, int port, char *dir, char *restor fprintAval(f, VAR_datanodeMasterDirs); fprintAval(f, VAR_datanodeMaxWALSenders); fprintAval(f, VAR_datanodeSlaveServers); + fprintAval(f, VAR_datanodeSlavePorts); +#ifdef XCP + fprintAval(f, VAR_datanodeSlavePoolerPorts); +#endif fprintAval(f, VAR_datanodeSlaveDirs); fprintAval(f, VAR_datanodeArchLogDirs); fprintAval(f, VAR_datanodeSpecificExtraConfig); @@ -1109,10 +1142,14 @@ int add_datanodeMaster(char *name, char *host, int port, char *dir, char *restor } -int add_datanodeSlave(char *name, char *host, char *dir, char *archDir) +int add_datanodeSlave(char *name, char *host, int port, int pooler, char *dir, char *archDir) { int idx; FILE *f; + char port_s[MAXTOKEN+1]; +#ifdef XCP + char pooler_s[MAXTOKEN+1]; +#endif /* Check if the name is valid datanode */ if ((idx = datanodeIdx(name)) < 0) @@ -1136,7 +1173,7 @@ int add_datanodeSlave(char *name, char *host, char *dir, char *archDir) * We dont check the name conflict here because acquiring datanode index means that * there's no name conflict. */ - if (checkPortConflict(host, atoi(aval(VAR_datanodePorts)[idx]))) + if (checkPortConflict(host, port)) { elog(ERROR, "ERROR: the port %s has already been used in the host %s.\n", aval(VAR_datanodePorts)[idx], host); return 1; @@ -1201,9 +1238,19 @@ int add_datanodeSlave(char *name, char *host, char *dir, char *archDir) return 1; } #endif + + snprintf(port_s, MAXTOKEN, "%d", port); +#ifdef XCP + snprintf(pooler_s, MAXTOKEN, "%d", pooler); +#endif + if (!isVarYes(VAR_datanodeSlave)) assign_sval(VAR_datanodeSlave, "y"); assign_arrayEl(VAR_datanodeSlaveServers, idx, host, NULL); + assign_arrayEl(VAR_datanodeSlavePorts, idx, port_s, NULL); +#ifdef XCP + assign_arrayEl(VAR_datanodeSlavePoolerPorts, idx, pooler_s, NULL); +#endif assign_arrayEl(VAR_datanodeSlaveDirs, idx, dir, NULL); assign_arrayEl(VAR_datanodeArchLogDirs, idx, archDir, NULL); /* Update the configuration file and backup it */ @@ -1220,6 +1267,10 @@ int add_datanodeSlave(char *name, char *host, char *dir, char *archDir) timeStampString(date, MAXTOKEN+1)); fprintSval(f, VAR_datanodeSlave); fprintAval(f, VAR_datanodeSlaveServers); + fprintAval(f, VAR_datanodeSlavePorts); +#ifdef XCP + fprintAval(f, VAR_datanodeSlavePoolerPorts); +#endif fprintAval(f, VAR_datanodeArchLogDirs); fprintAval(f, VAR_datanodeSlaveDirs); fprintf(f, "%s", "#----End of reconfiguration -------------------------\n"); @@ -1265,9 +1316,9 @@ int add_datanodeSlave(char *name, char *host, char *dir, char *archDir) "max_wal_senders = 0\n" /* Minimum WAL senders */ "# End of Addition\n", #ifdef XCP - timeStampString(date, MAXTOKEN), aval(VAR_datanodePorts)[idx], aval(VAR_datanodePoolerPorts)[idx]); + timeStampString(date, MAXTOKEN), aval(VAR_datanodeSlavePorts)[idx], aval(VAR_datanodeSlavePoolerPorts)[idx]); #else - timeStampString(date, MAXTOKEN), aval(VAR_datanodePorts)[idx]); + timeStampString(date, MAXTOKEN), aval(VAR_datanodeSlavePorts)[idx]); #endif pclose(f); /* Update the slave recovery.conf */ @@ -1464,6 +1515,7 @@ int remove_datanodeMaster(char *name, int clean_opt) fprintAval(f, VAR_datanodeMasterServers); fprintAval(f, VAR_datanodeMaxWALSenders); fprintAval(f, VAR_datanodeSlaveServers); + fprintAval(f, VAR_datanodeSlavePorts); fprintAval(f, VAR_datanodeSlaveDirs); fprintAval(f, VAR_datanodeArchLogDirs); fprintAval(f, VAR_datanodeSpecificExtraConfig); @@ -1495,7 +1547,7 @@ int remove_datanodeSlave(char *name, int clean_opt) return 1; } AddMember(nodelist, name); - if (pingNode(aval(VAR_datanodeSlaveServers)[idx], aval(VAR_datanodePorts)[idx]) == 0) + if (pingNode(aval(VAR_datanodeSlaveServers)[idx], aval(VAR_datanodeSlavePorts)[idx]) == 0) stop_datanode_slave(nodelist, "immediate"); { FILE *f; @@ -1723,10 +1775,10 @@ int show_config_datanodeSlave(int flag, int idx, char *hostname) elog(NOTICE, "%s", outBuf); #ifdef XCP elog(NOTICE, " Nodename: '%s', port: %s, pooler port: %s\n", - aval(VAR_datanodeNames)[idx], aval(VAR_datanodePorts)[idx], aval(VAR_poolerPorts)[idx]); + aval(VAR_datanodeNames)[idx], aval(VAR_datanodeSlavePorts)[idx], aval(VAR_poolerPorts)[idx]); #else elog(NOTICE, " Nodename: '%s', port: %s\n", - aval(VAR_datanodeNames)[idx], aval(VAR_datanodePorts)[idx]); + aval(VAR_datanodeNames)[idx], aval(VAR_datanodeSlavePorts)[idx]); #endif elog(NOTICE," Dir: '%s', Archive Log Dir: '%s'\n", aval(VAR_datanodeSlaveDirs)[idx], aval(VAR_datanodeArchLogDirs)[idx]); @@ -1908,7 +1960,7 @@ cmd_t *prepare_killDatanodeSlave(char *nodeName) elog(WARNING, "WARNING: pid for datanode slave \"%s\" slave was not found. Remove socket only.\n", nodeName); snprintf(newCommand(cmd), MAXLINE, "rm -rf /tmp/.s.'*'%s'*'", /* Remove the socket */ - aval(VAR_datanodePorts)[dnIndex]); + aval(VAR_datanodeSlavePorts)[dnIndex]); } else { @@ -1919,7 +1971,7 @@ cmd_t *prepare_killDatanodeSlave(char *nodeName) "rm -rf /tmp/.s.'*'%d'*'", /* Remove the socket */ postmasterPid, pidList, - atoi(aval(VAR_datanodePorts)[dnIndex])); + atoi(aval(VAR_datanodeSlavePorts)[dnIndex])); freeAndReset(pidList); } return(cmd); diff --git a/contrib/pgxc_ctl/datanode_cmd.h b/contrib/pgxc_ctl/datanode_cmd.h index d8e58dfe36..0c619e547a 100644 --- a/contrib/pgxc_ctl/datanode_cmd.h +++ b/contrib/pgxc_ctl/datanode_cmd.h @@ -56,7 +56,7 @@ extern int add_datanodeMaster(char *name, char *host, int port, int pooler, char #else extern int add_datanodeMaster(char *name, char *host, int port, char *dir, char *restore_dname); #endif -extern int add_datanodeSlave(char *name, char *host, char *dir, char *archDir); +extern int add_datanodeSlave(char *name, char *host, int port, int pooler, char *dir, char *archDir); extern int remove_datanodeMaster(char *name, int clean_opt); extern int remove_datanodeSlave(char *name, int clean_opt); diff --git a/contrib/pgxc_ctl/do_command.c b/contrib/pgxc_ctl/do_command.c index d7382de8d5..bfc7517f92 100644 --- a/contrib/pgxc_ctl/do_command.c +++ b/contrib/pgxc_ctl/do_command.c @@ -971,11 +971,24 @@ static void do_add_command(char *line) { GetAndSet(name, "ERROR: please specify the name of the datanode slave\n"); GetAndSet(host, "ERROR: please specify the host for the datanode slave\n"); + GetAndSet(port, "ERROR: please specify the port number for the datanode slave\n"); +#ifdef XCP + GetAndSet(pooler, "ERROR: please specify the pooler port number for the datanode slave.\n"); +#endif GetAndSet(dir, "ERROR: please specify the working director for datanode slave\n"); GetAndSet(archDir, "ERROR: please specify WAL archive directory for datanode slave\n"); - add_datanodeSlave(name, host, dir, archDir); + +#ifdef XCP + add_datanodeSlave(name, host, atoi(port), atoi(pooler), dir, archDir); +#else + add_datanodeSlave(name, host, atoi(port), dir, archDir); +#endif freeAndReset(name); freeAndReset(host); + freeAndReset(port); +#ifdef XCP + freeAndReset(pooler); +#endif freeAndReset(dir); } } diff --git a/contrib/pgxc_ctl/monitor.c b/contrib/pgxc_ctl/monitor.c index 2323bd00a1..92c01adbed 100644 --- a/contrib/pgxc_ctl/monitor.c +++ b/contrib/pgxc_ctl/monitor.c @@ -195,7 +195,7 @@ static void monitor_datanode_slave(char **nodeList) continue; } if (doesExist(VAR_datanodeSlaveServers, idx) && !is_none(aval(VAR_datanodeSlaveServers)[idx])) - printResult(pingNode(aval(VAR_datanodeSlaveServers)[idx], aval(VAR_datanodePorts)[idx]), + printResult(pingNode(aval(VAR_datanodeSlaveServers)[idx], aval(VAR_datanodeSlavePorts)[idx]), "datanode slave", actualNodeList[ii]); else elog(ERROR, "ERROR: datanode slave %s is not configured.\n", actualNodeList[ii]); @@ -219,7 +219,7 @@ static void monitor_datanode(char **nodeList) printResult(pingNode(aval(VAR_datanodeMasterServers)[idx], aval(VAR_datanodePorts)[idx]), "datanode master", actualNodeList[ii]); if (doesExist(VAR_datanodeSlaveServers, idx) && !is_none(aval(VAR_datanodeSlaveServers)[idx])) - printResult(pingNode(aval(VAR_datanodeSlaveServers)[idx], aval(VAR_datanodePorts)[idx]), + printResult(pingNode(aval(VAR_datanodeSlaveServers)[idx], aval(VAR_datanodeSlavePorts)[idx]), "datanode slave", actualNodeList[ii]); } } diff --git a/contrib/pgxc_ctl/pgxc_ctl_bash.c b/contrib/pgxc_ctl/pgxc_ctl_bash.c index 1e40e66149..30fae0c445 100644 --- a/contrib/pgxc_ctl/pgxc_ctl_bash.c +++ b/contrib/pgxc_ctl/pgxc_ctl_bash.c @@ -156,6 +156,10 @@ char *pgxc_ctl_bash_script[] = { " echo datanodeSlave $datanodeSlave", " echo datanodeSlaveSync $datanodeSlaveSync", " print_array datanodeSlaveServers", +" print_array datanodeSlavePorts", +#ifdef XCP +" print_array datanodeSlavePoolerPorts", +#endif " print_array datanodeSlaveDirs", " print_array datanodeArchLogDirs", "", diff --git a/contrib/pgxc_ctl/pgxc_ctl_bash_2 b/contrib/pgxc_ctl/pgxc_ctl_bash_2 index c83adda40b..c98864ba0b 100755 --- a/contrib/pgxc_ctl/pgxc_ctl_bash_2 +++ b/contrib/pgxc_ctl/pgxc_ctl_bash_2 @@ -123,6 +123,10 @@ function print_values echo datanodeSlave $datanodeSlave echo datanodeSlaveSync $datanodeSlaveSync print_array datanodeSlaveServers + print_array datanodeSlavePorts +#ifdef XCP + print_array datanodeSlavePoolerPorts +#endif print_array datanodeSlaveDirs print_array datanodeArchLogDirs diff --git a/contrib/pgxc_ctl/signature.h b/contrib/pgxc_ctl/signature.h index 3998195cc4..8484b398b7 100644 --- a/contrib/pgxc_ctl/signature.h +++ b/contrib/pgxc_ctl/signature.h @@ -11,5 +11,5 @@ #ifndef SIGNATURE_H #define SIGNATURE_H /* Signature file to identify the make */ -#define signature "140308_0826_521531776" +#define signature "140725_1610_N" #endif /* SIGNATURE_H */ diff --git a/contrib/pgxc_ctl/varnames.h b/contrib/pgxc_ctl/varnames.h index 313141b721..4bb54a32f2 100644 --- a/contrib/pgxc_ctl/varnames.h +++ b/contrib/pgxc_ctl/varnames.h @@ -103,6 +103,10 @@ /* Datanode slaves */ #define VAR_datanodeSlave "datanodeSlave" #define VAR_datanodeSlaveServers "datanodeSlaveServers" +#define VAR_datanodeSlavePorts "datanodeSlavePorts" +#ifdef XCP +#define VAR_datanodeSlavePoolerPorts "datanodeSlavePoolerPorts" +#endif #define VAR_datanodeSlaveSync "datanodeSlaveSync" #define VAR_datanodeSlaveDirs "datanodeSlaveDirs" #define VAR_datanodeArchLogDirs "datanodeArchLogDirs" |