Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
529cbe0
Doc: improve tutorial section about grouped aggregates.
tglsfdc Nov 8, 2022
e098c38
Doc: add comments about PreventInTransactionBlock/IsInTransactionBlock.
tglsfdc Nov 9, 2022
788370f
Fix comment of SimpleLruInit() in slru.c
michaelpq Nov 10, 2022
cb5dc89
Fix comments atop ReorderBufferAddInvalidations.
Nov 10, 2022
905c794
Re-allow building on Microsoft Visual Studio 2013.
tglsfdc Nov 10, 2022
4370129
Fix alter_table.sql test case to test what it claims to.
tglsfdc Nov 10, 2022
251fd71
Fix theoretical torn page hazard.
jeff-davis Nov 10, 2022
1bb517c
Fix cleanup lock acquisition in SPLIT_ALLOCATE_PAGE replay.
Nov 14, 2022
556d24c
Account for IPC::Run::result() Windows behavior change.
nmisch Nov 17, 2022
9bd2460
Fix version comparison in Version.pm
adunstan Nov 18, 2022
42ac8af
pg_dump: avoid unsafe function calls in getPolicies().
tglsfdc Nov 19, 2022
50bc1b7
Doc: sync src/tutorial/basics.source with SGML documentation.
tglsfdc Nov 19, 2022
fa7a8d2
Fix mislabeling of PROC_QUEUE->links as PGPROC, fixing UBSan on 32bit
anarazel Nov 17, 2022
4569a34
Prevent instability in contrib/pageinspect's regression test.
tglsfdc Nov 21, 2022
2463a33
Revert "Prevent instability in contrib/pageinspect's regression test."
tglsfdc Nov 21, 2022
c7c915f
Add comments and a missing CHECK_FOR_INTERRUPTS in ts_headline.
tglsfdc Nov 21, 2022
1a8fa73
Replace link to Hunspell with the current homepage
danielgustafsson Nov 21, 2022
1d620dd
YA attempt at taming worst-case behavior of get_actual_variable_range.
tglsfdc Nov 22, 2022
1bfdef3
Make multixact error message more explicit
alvherre Nov 24, 2022
a637391
Fix uninitialized access to InitialRunningXacts during decoding.
Nov 25, 2022
04c9857
Remove temporary portlock directory during make [dist]clean.
tglsfdc Nov 26, 2022
d287e3f
Fix binary mismatch for MSVC plperl vs gcc built perl libs
adunstan Nov 27, 2022
9bee077
Prevent clobbering of utility statements in SQL function caches.
tglsfdc Nov 29, 2022
6ea7afe
Improve heuristics for compressing the KnownAssignedXids array.
tglsfdc Nov 29, 2022
a5bb4c5
Fix comment in fe-auth-scram.c
michaelpq Nov 29, 2022
d217cb1
doc: add transaction processing chapter with internals info
bmomjian Nov 30, 2022
c7b0901
Reject missing database name in pg_regress and cohorts.
tglsfdc Nov 30, 2022
1d18ac7
revert: add transaction processing chapter with internals info
bmomjian Dec 1, 2022
681957c
Fix under-parenthesized display of AT TIME ZONE constructs.
tglsfdc Dec 1, 2022
e23ecbf
Doc: add example of round(v, s) with negative s.
tglsfdc Dec 1, 2022
cee9c94
Fix memory leak for hashing with nondeterministic collations.
jeff-davis Dec 1, 2022
fdf126c
Fix psql's \sf and \ef for new-style SQL functions.
tglsfdc Dec 2, 2022
f689cf7
Fix DEFAULT handling for multi-row INSERT rules.
deanrasheed Dec 3, 2022
c08b83a
Fix generate_partitionwise_join_paths() to tolerate failure.
tglsfdc Dec 4, 2022
e25cd77
Fix broken MemoizePath support in reparameterize_path().
tglsfdc Dec 4, 2022
27af519
doc: Add missing <varlistentry> markups for developer GUCs
michaelpq Dec 5, 2022
5c5af7d
Fix Memoize to work with partitionwise joining.
tglsfdc Dec 5, 2022
32690a4
Fix jsonb subscripting to cope with toasted subscript values.
tglsfdc Dec 12, 2022
0111b2e
Rethink handling of [Prevent|Is]InTransactionBlock in pipeline mode.
tglsfdc Dec 13, 2022
574ad71
Re-adjust drop-index-concurrently-1 isolation test
david-rowley Dec 15, 2022
45ffb3e
Fix contrib/seg to be more wary of long input numbers.
tglsfdc Dec 21, 2022
d9f97f5
Add some recursion and looping defenses in prepjointree.c.
tglsfdc Dec 22, 2022
bbb8795
Fix come incorrect elog() messages in aclchk.c
michaelpq Dec 23, 2022
6c422d6
Fix event trigger example
alvherre Dec 23, 2022
88e6fb5
Fix assert in BRIN build_distances
tvondra Dec 30, 2022
74f0a14
Avoid reference to nonexistent array element in ExecInitAgg().
tglsfdc Jan 2, 2023
9cda730
Fix typos in comments, code and documentation
michaelpq Jan 3, 2023
8f8033c
Improve documentation of the CREATEROLE attibute.
robertmhaas Jan 3, 2023
5e3d19e
Fix pg_truncate() on Windows.
macdice Jan 6, 2023
9e61161
Fix tab completion of ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA.
deanrasheed Jan 6, 2023
f52e163
Remove the streaming files for incomplete xacts after restart.
Jan 7, 2023
8d9c28f
Fix jsonpath existense checking of missing variables
akorotkov Jan 12, 2023
9b29be6
Fix WaitEventSetWait() buffer overrun.
macdice Jan 12, 2023
d8ce3c5
Fix some BufFileRead() error reporting
petere Jan 16, 2023
3ff557c
Fix failure with perlcritic in psql's create_help.pl
michaelpq Jan 19, 2023
5db4f77
Add missing assign hook for GUC checkpoint_completion_target
michaelpq Jan 19, 2023
6cfd19a
Log the correct ending timestamp in recovery_target_xid mode.
tglsfdc Jan 19, 2023
31acd19
Reject CancelRequestPacket having unexpected length.
nmisch Jan 21, 2023
dd6a0de
Allow REPLICA IDENTITY to be set on an index that's not (yet) valid.
tglsfdc Jan 21, 2023
4b37202
Fix error handling in libpqrcv_connect()
anarazel Jan 24, 2023
a115c5c
Fix the Drop Database hang.
Jan 24, 2023
d296cc1
doc: Fix network_ops -> inet_ops in SpGiST operator class list
michaelpq Jan 25, 2023
b26eb0d
Fix rare sharedtuplestore.c corruption.
macdice Jan 26, 2023
5ddbb19
Remove recovery test 011_crash_recovery.pl
michaelpq Jan 31, 2023
be8e0cc
Doc: clarify use of NULL to drop comments and security labels.
tglsfdc Jan 31, 2023
99cc2fd
Doc: Abstract AF_UNIX sockets don't work on Windows.
macdice Feb 2, 2023
b81d7d8
doc: Fix XML formatting that psql cannot handle
petere Feb 3, 2023
629ec7d
Release notes for 15.2, 14.7, 13.10, 12.14, 11.19.
tglsfdc Feb 5, 2023
9ae06f5
Rebase fixes
reshke Apr 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions GNUmakefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ $(call recurse,distprep coverage,doc src config contrib gpcontrib)
# it's not built by default
$(call recurse,clean,doc contrib gpcontrib src config)
clean:
rm -rf tmp_install/
rm -rf tmp_install/ portlock/
# Garbage from autoconf:
@rm -rf autom4te.cache/
# leap over gpAux/Makefile into subdirectories to avoid circular dependency.
Expand All @@ -132,7 +132,7 @@ distclean maintainer-clean:
$(MAKE) -C config $@
$(MAKE) -C gpMgmt $@
$(MAKE) -C src $@
rm -rf tmp_install/
rm -rf tmp_install/ portlock/
# Garbage from autoconf:
@rm -rf autom4te.cache/
rm -f config.cache config.log config.status GNUmakefile
Expand Down
4 changes: 2 additions & 2 deletions contrib/pax_storage/src/test/regress/expected/create_view.out
Original file line number Diff line number Diff line change
Expand Up @@ -1821,8 +1821,8 @@ select pg_get_viewdef('tt201v', true);
-----------------------------------------------------------------------------------------------
SELECT EXTRACT(day FROM now()) AS extr, +
((now(), '@ 1 day'::interval) OVERLAPS (CURRENT_TIMESTAMP(2), '@ 1 day'::interval)) AS o,+
(('foo'::text) IS NORMALIZED) AS isn, +
(('foo'::text) IS NFKC NORMALIZED) AS isnn, +
('foo'::text IS NORMALIZED) AS isn, +
('foo'::text IS NFKC NORMALIZED) AS isnn, +
NORMALIZE('foo'::text) AS n, +
NORMALIZE('foo'::text, NFKD) AS nfkd, +
OVERLAY('foo'::text PLACING 'bar'::text FROM 2) AS ovl, +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1820,8 +1820,8 @@ select pg_get_viewdef('tt201v', true);
-----------------------------------------------------------------------------------------------
SELECT EXTRACT(day FROM now()) AS extr, +
((now(), '@ 1 day'::interval) OVERLAPS (CURRENT_TIMESTAMP(2), '@ 1 day'::interval)) AS o,+
(('foo'::text) IS NORMALIZED) AS isn, +
(('foo'::text) IS NFKC NORMALIZED) AS isnn, +
('foo'::text IS NORMALIZED) AS isn, +
('foo'::text IS NFKC NORMALIZED) AS isnn, +
NORMALIZE('foo'::text) AS n, +
NORMALIZE('foo'::text, NFKD) AS nfkd, +
OVERLAY('foo'::text PLACING 'bar'::text FROM 2) AS ovl, +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ SELECT now()::timestamp::text = localtimestamp::text;
t
(1 row)

-- current_role/user/user is tested in rolnames.sql
-- current_role/user/user is tested in rolenames.sql
-- current database / catalog
SELECT current_catalog = current_database();
?column?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ SELECT now()::timestamp::text = localtimestamp::text;
t
(1 row)

-- current_role/user/user is tested in rolnames.sql
-- current_role/user/user is tested in rolenames.sql
-- current database / catalog
SELECT current_catalog = current_database();
?column?
Expand Down
2 changes: 1 addition & 1 deletion contrib/pax_storage/src/test/regress/sql/expressions.sql
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ SELECT length(current_timestamp::text) >= length(current_timestamp(0)::text);
-- localtimestamp
SELECT now()::timestamp::text = localtimestamp::text;

-- current_role/user/user is tested in rolnames.sql
-- current_role/user/user is tested in rolenames.sql

-- current database / catalog
SELECT current_catalog = current_database();
Expand Down
7 changes: 7 additions & 0 deletions contrib/seg/expected/seg.out
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,13 @@ SELECT '12.34567890123456'::seg AS seg;
12.3457
(1 row)

-- Same, with a very long input
SELECT '12.3456789012345600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'::seg AS seg;
seg
---------
12.3457
(1 row)

-- Numbers with certainty indicators
SELECT '~6.5'::seg AS seg;
seg
Expand Down
8 changes: 6 additions & 2 deletions contrib/seg/seg.c
Original file line number Diff line number Diff line change
Expand Up @@ -927,9 +927,13 @@ restore(char *result, float val, int n)

/*
* Put a cap on the number of significant digits to avoid garbage in the
* output and ensure we don't overrun the result buffer.
* output and ensure we don't overrun the result buffer. (n should not be
* negative, but check to protect ourselves against corrupted data.)
*/
n = Min(n, FLT_DIG);
if (n <= 0)
n = FLT_DIG;
else
n = Min(n, FLT_DIG);

/* remember the sign */
sign = (val < 0 ? 1 : 0);
Expand Down
22 changes: 17 additions & 5 deletions contrib/seg/segparse.y
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

#include "postgres.h"

#include <float.h>
#include <math.h>

#include "fmgr.h"
Expand All @@ -23,6 +24,8 @@

static float seg_atof(const char *value);

static int sig_digits(const char *value);

static char strbuf[25] = {
'0', '0', '0', '0', '0',
'0', '0', '0', '0', '0',
Expand Down Expand Up @@ -63,9 +66,9 @@ range: boundary PLUMIN deviation
result->lower = $1.val - $3.val;
result->upper = $1.val + $3.val;
sprintf(strbuf, "%g", result->lower);
result->l_sigd = Max(Min(6, significant_digits(strbuf)), Max($1.sigd, $3.sigd));
result->l_sigd = Max(sig_digits(strbuf), Max($1.sigd, $3.sigd));
sprintf(strbuf, "%g", result->upper);
result->u_sigd = Max(Min(6, significant_digits(strbuf)), Max($1.sigd, $3.sigd));
result->u_sigd = Max(sig_digits(strbuf), Max($1.sigd, $3.sigd));
result->l_ext = '\0';
result->u_ext = '\0';
}
Expand Down Expand Up @@ -122,7 +125,7 @@ boundary: SEGFLOAT
float val = seg_atof($1);

$$.ext = '\0';
$$.sigd = significant_digits($1);
$$.sigd = sig_digits($1);
$$.val = val;
}
| EXTENSION SEGFLOAT
Expand All @@ -131,7 +134,7 @@ boundary: SEGFLOAT
float val = seg_atof($2);

$$.ext = $1[0];
$$.sigd = significant_digits($2);
$$.sigd = sig_digits($2);
$$.val = val;
}
;
Expand All @@ -142,7 +145,7 @@ deviation: SEGFLOAT
float val = seg_atof($1);

$$.ext = '\0';
$$.sigd = significant_digits($1);
$$.sigd = sig_digits($1);
$$.val = val;
}
;
Expand All @@ -159,5 +162,14 @@ seg_atof(const char *value)
return DatumGetFloat4(datum);
}

static int
sig_digits(const char *value)
{
int n = significant_digits(value);

/* Clamp, to ensure value will fit in sigd fields */
return Min(n, FLT_DIG);
}


#include "segscan.c"
3 changes: 3 additions & 0 deletions contrib/seg/sql/seg.sql
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ SELECT '3.400e5'::seg AS seg;
-- Digits truncated
SELECT '12.34567890123456'::seg AS seg;

-- Same, with a very long input
SELECT '12.3456789012345600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'::seg AS seg;

-- Numbers with certainty indicators
SELECT '~6.5'::seg AS seg;
SELECT '<6.5'::seg AS seg;
Expand Down
16 changes: 8 additions & 8 deletions doc/src/sgml/config.sgml
Original file line number Diff line number Diff line change
Expand Up @@ -756,7 +756,7 @@ include_dir 'conf.d'
<para>
A value that starts with <literal>@</literal> specifies that a
Unix-domain socket in the abstract namespace should be created
(currently supported on Linux and Windows). In that case, this value
(currently supported on Linux only). In that case, this value
does not specify a <quote>directory</quote> but a prefix from which
the actual socket name is computed in the same manner as for the
file-system namespace. While the abstract socket name prefix can be
Expand Down Expand Up @@ -10734,7 +10734,7 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
</listitem>
</varlistentry>

<varlistentry>
<varlistentry id="guc-trace-locks" xreflabel="trace_locks">
<term><varname>trace_locks</varname> (<type>boolean</type>)
<indexterm>
<primary><varname>trace_locks</varname> configuration parameter</primary>
Expand Down Expand Up @@ -10775,7 +10775,7 @@ LOG: CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1)
</listitem>
</varlistentry>

<varlistentry>
<varlistentry id="guc-trace-lwlocks" xreflabel="trace_lwlocks">
<term><varname>trace_lwlocks</varname> (<type>boolean</type>)
<indexterm>
<primary><varname>trace_lwlocks</varname> configuration parameter</primary>
Expand All @@ -10795,7 +10795,7 @@ LOG: CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1)
</listitem>
</varlistentry>

<varlistentry>
<varlistentry id="guc-trace-userlocks" xreflabel="trace_userlocks">
<term><varname>trace_userlocks</varname> (<type>boolean</type>)
<indexterm>
<primary><varname>trace_userlocks</varname> configuration parameter</primary>
Expand All @@ -10814,7 +10814,7 @@ LOG: CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1)
</listitem>
</varlistentry>

<varlistentry>
<varlistentry id="guc-trace-lock-oidmin" xreflabel="trace_lock_oidmin">
<term><varname>trace_lock_oidmin</varname> (<type>integer</type>)
<indexterm>
<primary><varname>trace_lock_oidmin</varname> configuration parameter</primary>
Expand All @@ -10833,7 +10833,7 @@ LOG: CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1)
</listitem>
</varlistentry>

<varlistentry>
<varlistentry id="guc-trace-lock-table" xreflabel="trace_lock_table">
<term><varname>trace_lock_table</varname> (<type>integer</type>)
<indexterm>
<primary><varname>trace_lock_table</varname> configuration parameter</primary>
Expand All @@ -10851,7 +10851,7 @@ LOG: CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1)
</listitem>
</varlistentry>

<varlistentry>
<varlistentry id="guc-debug-deadlocks" xreflabel="debug_deadlocks">
<term><varname>debug_deadlocks</varname> (<type>boolean</type>)
<indexterm>
<primary><varname>debug_deadlocks</varname> configuration parameter</primary>
Expand All @@ -10870,7 +10870,7 @@ LOG: CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1)
</listitem>
</varlistentry>

<varlistentry>
<varlistentry id="guc-log-btree-build-stats" xreflabel="log_btree_build_stats">
<term><varname>log_btree_build_stats</varname> (<type>boolean</type>)
<indexterm>
<primary><varname>log_btree_build_stats</varname> configuration parameter</primary>
Expand Down
5 changes: 3 additions & 2 deletions doc/src/sgml/event-trigger.sgml
Original file line number Diff line number Diff line change
Expand Up @@ -1194,8 +1194,9 @@ noddl(PG_FUNCTION_ARGS)
trigdata = (EventTriggerData *) fcinfo->context;

ereport(ERROR,
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
errmsg("command \"%s\" denied", trigdata->tag)));
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
errmsg("command \"%s\" denied",
GetCommandTagName(trigdata->tag))));

PG_RETURN_NULL();
}
Expand Down
4 changes: 4 additions & 0 deletions doc/src/sgml/func.sgml
Original file line number Diff line number Diff line change
Expand Up @@ -1598,6 +1598,10 @@ repeat('Pg', 4) <returnvalue>PgPgPgPg</returnvalue>
<para>
<literal>round(42.4382, 2)</literal>
<returnvalue>42.44</returnvalue>
</para>
<para>
<literal>round(1234.56, -1)</literal>
<returnvalue>1230</returnvalue>
</para></entry>
</row>

Expand Down
5 changes: 3 additions & 2 deletions doc/src/sgml/libpq.sgml
Original file line number Diff line number Diff line change
Expand Up @@ -5024,10 +5024,11 @@ int PQflush(PGconn *conn);
</para>

<para>
While the pipeline API was introduced in
While <application>libpq</application>'s pipeline API was introduced in
<productname>PostgreSQL</productname> 14, it is a client-side feature
which doesn't require special server support and works on any server
that supports the v3 extended query protocol.
that supports the v3 extended query protocol. For more information see
<xref linkend="protocol-flow-pipelining"/>.
</para>

<sect2 id="libpq-pipeline-using">
Expand Down
2 changes: 1 addition & 1 deletion doc/src/sgml/parallel.sgml
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ EXPLAIN SELECT * FROM pgbench_accounts WHERE filler LIKE '%x%';

<para>
In addition, the system must not be running in single-user mode. Since
the entire database system is running in single process in this situation,
the entire database system is running as a single process in this situation,
no background workers will be available.
</para>

Expand Down
9 changes: 5 additions & 4 deletions doc/src/sgml/protocol.sgml
Original file line number Diff line number Diff line change
Expand Up @@ -1093,17 +1093,18 @@ SELCT 1/0;<!-- this typo is intentional -->
implicit <command>ROLLBACK</command> if they failed. However, there
are a few DDL commands (such as <command>CREATE DATABASE</command>)
that cannot be executed inside a transaction block. If one of
these is executed in a pipeline, it will, upon success, force an
immediate commit to preserve database consistency.
A Sync immediately following one of these has no effect except to
these is executed in a pipeline, it will fail unless it is the first
command in the pipeline. Furthermore, upon success it will force an
immediate commit to preserve database consistency. Thus a Sync
immediately following one of these commands has no effect except to
respond with ReadyForQuery.
</para>

<para>
When using this method, completion of the pipeline must be determined
by counting ReadyForQuery messages and waiting for that to reach the
number of Syncs sent. Counting command completion responses is
unreliable, since some of the commands may not be executed and thus not
unreliable, since some of the commands may be skipped and thus not
produce a completion message.
</para>
</sect2>
Expand Down
Loading
Loading