Skip to content

Commit 75f92cd

Browse files
committed
Merge branch 'PGPROEE9_6' into mtm-stm
2 parents 34980b9 + 85a8575 commit 75f92cd

File tree

10 files changed

+84
-37
lines changed

10 files changed

+84
-37
lines changed

.ci/build_and_test_world

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
if [ -z "$TCLCONFIG" ]; then
33
[ -x /usr/lib/tcl8.5/tclConfig.sh ] && TCLCONFIG=/usr/lib/tcl8.5
44
[ -x /usr/lib/tcl8.6/tclConfig.sh ] && TCLCONFIG=/usr/lib/tcl8.6
5-
[ -x /usr/lib64/tclConfig.sh ] && TCLCONFIG=/usr/lib64/tclConfig.sh
5+
[ -f /usr/lib64/tclConfig.sh ] && TCLCONFIG=/usr/lib64
66
fi
77
[ -n "$TCLCONFIG" ] && export TCLCONFIG
88
echo TCLCONFIG=${TCLCONFIG}

.ci/make_test_base

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,22 @@ put into postgresql conf.
77
88
On success, starts database
99
"""
10-
import os,sys,subprocess,glob,re,os.path,time
10+
import os,sys,subprocess,glob,re,os.path,time,re
1111

1212
if len(sys.argv)!=2:
1313
print >>sys.stderr,"Usage %s data-directory" % sys.argv[0]
1414
sys.exit(1)
15+
16+
def prepare_extlist(value):
17+
v = re.sub("[']", '', value)
18+
l = re.split("\s*,\s*",v)
19+
if "pg_pathman" in l:
20+
# remove duplicates and reorder extension list to move pg_pathman to tail
21+
nl = sorted(list(set(l)), cmp = lambda a,b: 1 if a=="pg_pathman" else -1)
22+
new_value = "'{}'".format(",".join(nl))
23+
return new_value
24+
else:
25+
return value
1526

1627
datadir=sys.argv[1]
1728

@@ -56,10 +67,10 @@ for module in glob.glob("contrib/*"):
5667
else:
5768
addopts[opt]=value
5869

59-
if addopts:
70+
if addopts:
6071
with open(datadir+"/postgresql.conf","a") as f:
6172
for opt,value in addopts.items():
62-
print >> f,"%s=%s"%(opt,value)
73+
print >> f,"%s=%s"%(opt,prepare_extlist(value))
6374
with open("initdb.log","a") as f:
6475
exitcode=subprocess.call(["pg_ctl","start","-D",datadir,"-l",datadir+"/postmaster.log"],env=env,stdout=f,stderr=subprocess.STDOUT)
6576
if exitcode:
@@ -73,5 +84,3 @@ while time.time() < failtime:
7384
sys.exit(0)
7485
print >>sys.stderr,"Database havent't started in 60 seconds"
7586
sys.exit(1)
76-
77-

.ci/run.cmd

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
@echo off
2-
PATH=C:\Windows\system32;C:\Perl64\bin;C:\msys64\usr\bin
2+
PATH=C:\Windows\system32;C:\Perl64\bin;C:\Program Files\Git\cmd;C:\msys64\usr\bin
33

4-
IF "%ARCH%"=="" SET ARCH=X86
5-
IF "%ARCH%"=="x86" SET ARCH=X86
6-
IF "%ARCH%"=="x64" SET ARCH=X64
7-
IF "%SDK%"=="" SET SDK=SDK71
4+
IF "%ARCH%"=="" SET ARCH=X86
5+
IF "%ARCH%"=="x86" SET ARCH=X86
6+
IF "%ARCH%"=="x64" SET ARCH=X64
7+
IF "%ARCH%"=="amd64" SET ARCH=X64
8+
IF "%SDK%"=="" SET SDK=SDK71
89

10+
echo BUILD_ID=%BUILD_ID%
11+
echo BUILD_NAME=%BUILD_NAME%
912
echo ARCH=%ARCH%
1013
echo SDK=%SDK%
1114

doc/src/sgml/datatype.sgml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4544,13 +4544,16 @@ SELECT * FROM pg_attribute
45444544
<para>
45454545
Another identifier type used by the system is <type>xid</>, or transaction
45464546
(abbreviated <abbrev>xact</>) identifier. This is the data type of the system columns
4547-
<structfield>xmin</> and <structfield>xmax</>. Transaction identifiers are 32-bit quantities.
4547+
<structfield>xmin</> and <structfield>xmax</>.
4548+
In <productname>&productname;</productname>, transaction IDs
4549+
are implemented as 64-bit counters to prevent transaction ID wraparound.
4550+
For details, see <xref linkend="vacuum-for-wraparound">.
45484551
</para>
45494552

45504553
<para>
45514554
A third identifier type used by the system is <type>cid</>, or
45524555
command identifier. This is the data type of the system columns
4553-
<structfield>cmin</> and <structfield>cmax</>. Command identifiers are also 32-bit quantities.
4556+
<structfield>cmin</> and <structfield>cmax</>. Command identifiers are 32-bit quantities.
45544557
</para>
45554558

45564559
<para>

doc/src/sgml/ddl.sgml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1096,16 +1096,13 @@ CREATE TABLE circles (
10961096
</para>
10971097

10981098
<para>
1099-
Transaction identifiers are also 32-bit quantities. In a
1100-
long-lived database it is possible for transaction IDs to wrap
1101-
around. This is not a fatal problem given appropriate maintenance
1102-
procedures; see <xref linkend="maintenance"> for details. It is
1103-
unwise, however, to depend on the uniqueness of transaction IDs
1104-
over the long term (more than one billion transactions).
1099+
In <productname>&productname;</productname>, transaction IDs
1100+
are implemented as 64-bit counters to prevent transaction ID wraparound.
1101+
For details, see <xref linkend="vacuum-for-wraparound">.
11051102
</para>
11061103

11071104
<para>
1108-
Command identifiers are also 32-bit quantities. This creates a hard limit
1105+
Command identifiers are 32-bit quantities. This creates a hard limit
11091106
of 2<superscript>32</> (4 billion) <acronym>SQL</acronym> commands
11101107
within a single transaction. In practice this limit is not a
11111108
problem &mdash; note that the limit is on the number of

doc/src/sgml/func.sgml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17198,8 +17198,9 @@ SELECT collation for ('foo' COLLATE "de_DE");
1719817198
</table>
1719917199

1720017200
<para>
17201-
The internal transaction ID type (<type>xid</>) is 32 bits wide and
17202-
wraps around every 4 billion transactions. However, these functions
17201+
In <productname>&productname;</productname>, transaction IDs
17202+
are implemented as 64-bit counters to prevent transaction ID wraparound.
17203+
The following functions
1720317204
export a 64-bit format that is extended with an <quote>epoch</> counter
1720417205
so it will not wrap around during the life of an installation.
1720517206
The data type used by these functions, <type>txid_snapshot</type>,

doc/src/sgml/maintenance.sgml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@
405405
<productname>Postgres Pro Enterprise 9.6</productname> introduced
406406
64-bit transaction IDs, which are not subject to wraparound and
407407
do not need modulo-2<superscript>32</> arithmetic to be compared.
408-
Each tuple header contain two XIDs, so extending them would lead to
408+
Each tuple header contains two XIDs, so extending them would lead to
409409
high overhead. For that reason on-page XIDs are still 32-bit, but
410410
each page's header contains an offset, called <firstterm>epoch</>,
411411
to which they are added before comparing with each other.

doc/src/sgml/multimaster.sgml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -857,7 +857,7 @@ pg_ctl -D <replaceable>datadir</replaceable> -l <replaceable>pg.log</replaceable
857857
<sect3 id="multimaster-guc-variables">
858858
<title>GUC Variables</title>
859859
<variablelist>
860-
<varlistentry><term><varname>multimaster.node_id</varname>
860+
<varlistentry id="multimaster-node-id"><term><varname>multimaster.node_id</varname>
861861
<indexterm><primary><varname>multimaster.node_id</varname></primary></indexterm></term><listitem><para>
862862
Node ID &mdash; a unique natural
863863
number identifying the node of a multi-master cluster. You must

doc/src/sgml/pgpro-scheduler.sgml

Lines changed: 45 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,9 @@ Make sure to create the <filename>pgpro_scheduler</filename> extension for each
114114
schedule jobs, in the comma-separated format:
115115
<programlisting>
116116
<varname>schedule.database</varname> = '<replaceable>database1</>,<replaceable>database2</>'
117-
</programlisting></para>
117+
</programlisting>
118+
You can omit this step when using <filename>pgpro_scheduler</filename>
119+
on a cluster configured with <filename>multimaster</filename>.</para>
118120
</listitem>
119121
<listitem>
120122
<para>
@@ -639,7 +641,7 @@ schedule.cancel_job(<replaceable>job_id</replaceable> <type>bigint</type>);
639641
</term>
640642
<listitem>
641643
<para>
642-
Specifies whether the scheduler is enabled on your system.</para>
644+
Specifies whether <filename>pgpro_scheduler</filename> is enabled on your system.</para>
643645
<para>Default: <literal>false</literal>.
644646
</para>
645647
</listitem>
@@ -653,7 +655,16 @@ schedule.cancel_job(<replaceable>job_id</replaceable> <type>bigint</type>);
653655
</term>
654656
<listitem>
655657
<para>
656-
Specifies the list of databases for which the scheduler is enabled. Database names must be separated by commas.</para><para>Default: empty string.
658+
Specifies the databases for which <filename>pgpro_scheduler</filename> is enabled.
659+
Database names must be separated by commas.
660+
</para>
661+
<para>
662+
If <filename>pgpro_scheduler</filename> is running on a cluster configured with
663+
<filename>multimaster</filename>, the database name is derived from the
664+
<xref linkend="multimaster-conn-strings"> variable.
665+
</para>
666+
<para>
667+
Default: empty string.
657668
</para>
658669
</listitem>
659670
</varlistentry>
@@ -666,11 +677,10 @@ schedule.cancel_job(<replaceable>job_id</replaceable> <type>bigint</type>);
666677
</term>
667678
<listitem>
668679
<para>
669-
Specifies the name of a schema where the scheduler
670-
stores its tables and functions. Normally, you should
671-
not change this variable. This
672-
variable may be useful if you run <filename>pgpro_scheduler</filename>
673-
on a multi-master cluster.</para>
680+
Deprecated. Specifies the name of a schema where the scheduler
681+
stores its tables and functions.
682+
If you need to change the default schema, use <xref linkend="sql-alterextension">.
683+
</para>
674684
<para>Default: <literal>schedule</literal>.
675685
</para>
676686
</listitem>
@@ -684,10 +694,18 @@ schedule.cancel_job(<replaceable>job_id</replaceable> <type>bigint</type>);
684694
</term>
685695
<listitem>
686696
<para>
687-
Specifies the node name of your <productname>&productname;</productname> instance. Do
688-
not change or use this variable if you run a single server configuration. You may need this
689-
variable if you run <filename>pgpro_scheduler</filename>
690-
on a multi-master cluster.</para>
697+
Specifies the node name of your <productname>&productname;</productname> instance.
698+
Do not change or use this variable if you run a single-server cluster configuration.
699+
</para>
700+
<para>
701+
On a cluster configured with <filename>multimaster</filename>, the node name is
702+
derived from the <xref linkend="multimaster-node-id"> variable. For example, if
703+
<literal>multimaster.node_id = 3</literal>, the <varname>schedule.nodename</>
704+
variable is set to <literal>mtm-node-3</>. However, if you explicitly set
705+
the <varname>schedule.nodename</> variable by editing the <filename>postgresql.conf</filename>
706+
file or running the <command>ALTER</command> command, <filename>pgpro_scheduler</filename>
707+
will use the provided value, ignoring the <varname>multimaster.node_id</varname> variable.
708+
</para>
691709
<para>Default: <literal>master</literal>.
692710
</para>
693711
</listitem>
@@ -2113,6 +2131,21 @@ schedule.create_job(<parameter>dates</parameter> <type>timestamp with time zone[
21132131
<para>The number of records deleted.</para></listitem></itemizedlist>
21142132
</listitem>
21152133
</varlistentry>
2134+
2135+
<varlistentry>
2136+
<term>
2137+
<function>schedule.nodename()
2138+
</function>
2139+
<indexterm>
2140+
<primary><function>schedule.nodename()</></primary>
2141+
</indexterm>
2142+
</term>
2143+
<listitem>
2144+
<para>
2145+
Returns the current node name.
2146+
</para>
2147+
</listitem>
2148+
</varlistentry>
21162149
</variablelist>
21172150
</sect4>
21182151
<sect4 id="pgpro-scheduler-one-time-job-functions"><title>Functions for Managing One-Time Jobs</title>

src/tools/msvc/Solution.pm

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,8 @@ EOF
509509
# Generate commit_id file
510510
# If there is .git rewrite file whenever gitlog succeeds
511511
if ( -d ".git" ) {
512-
open P,"git log -1 --format='%h' |";
512+
my $cmd = "git log -1 --format='%h'";
513+
open P,"$cmd |" || confess "Could not open: $cmd\n";
513514
my $commit_id = <P>;
514515
chomp($commit_id);
515516
if (close(P)) {

0 commit comments

Comments
 (0)