Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
d715aaa
Add check for large files in meson.build
michaelpq Nov 12, 2025
807df49
doc: Fix incorrect synopsis for ALTER PUBLICATION ... DROP ...
MasaoFujii Nov 12, 2025
e039b09
Fix pg_upgrade around multixid and mxoff wraparound
hlinnaka Nov 12, 2025
995c971
Fix range for commit_siblings in sample conf
danielgustafsson Nov 12, 2025
ecb884b
doc: Document effects of ownership change on privileges
danielgustafsson Nov 12, 2025
c1a5bde
Escalate ERRORs during async notify processing to FATAL
hlinnaka Nov 12, 2025
053e186
Fix bug where we truncated CLOG that was still needed by LISTEN/NOTIFY
hlinnaka Nov 12, 2025
44e8c60
Fix remaining race condition with CLOG truncation and LISTEN/NOTIFY
hlinnaka Nov 12, 2025
0e8eaa2
Clear 'xid' in dummy async notify entries written to fill up pages
hlinnaka Nov 12, 2025
8d43607
doc: Improve description of RLS policies applied by command type.
deanrasheed Nov 13, 2025
414e1ec
Add note about CreateStatistics()'s selective use of check_rights.
nathan-bossart Nov 14, 2025
2791d49
Doc: include MERGE in variable substitution command list
david-rowley Nov 16, 2025
a1407da
Define PS_USE_CLOBBER_ARGV on GNU/Hurd.
macdice Nov 16, 2025
9a991d4
Update .abi-compliance-history for change to CreateStatistics().
nathan-bossart Nov 17, 2025
1c8c320
Don't allow CTEs to determine semantic levels of aggregates.
tglsfdc Nov 18, 2025
890cc81
Print new OldestXID value in pg_resetwal when it's being changed
hlinnaka Nov 19, 2025
600acd3
jit: Adjust AArch64-only code for LLVM 21.
macdice Nov 22, 2025
14cdab0
Fix incorrect IndexOptInfo header comment
david-rowley Nov 24, 2025
89c8a1b
lwlock: Fix, currently harmless, bug in LWLockWakeup()
anarazel Nov 24, 2025
54ba4a6
doc: Clarify passphrase command reloading on Windows
danielgustafsson Nov 26, 2025
fc6e1a0
doc: Fix misleading synopsis for CREATE/ALTER PUBLICATION.
MasaoFujii Nov 27, 2025
b497766
Allow indexscans on partial hash indexes with implied quals.
tglsfdc Nov 27, 2025
4d288e3
Avoid rewriting data-modifying CTEs more than once.
deanrasheed Nov 29, 2025
f2a6df9
Fix amcheck's handling of incomplete root splits in B-tree
hlinnaka Dec 2, 2025
1829016
Fix amcheck's handling of half-dead B-tree pages
hlinnaka Dec 2, 2025
6351669
Set next multixid's offset when creating a new multixid
hlinnaka Dec 3, 2025
b38feca
Show version of nodes in output of TAP tests
michaelpq Dec 5, 2025
4d689a1
Fix setting next multixid's offset at offset wraparound
hlinnaka Dec 5, 2025
08e1ea3
Doc: fix typo in hash index documentation
david-rowley Dec 9, 2025
8348004
doc: Fix statement about ON CONFLICT and deferrable constraints.
deanrasheed Dec 9, 2025
d62a258
Fix O_CLOEXEC flag handling in Windows port.
macdice Dec 9, 2025
5a4dc4a
Fix allocation formula in llvmjit_expr.c
michaelpq Dec 11, 2025
7d42e23
Clarify comment on multixid offset wraparound check
hlinnaka Dec 15, 2025
1aa57e9
Fail recovery when missing redo checkpoint record without backup_label
michaelpq Dec 16, 2025
12c2f84
Switch memory contexts in ReinitializeParallelDSM.
robertmhaas Dec 16, 2025
b80227c
Fix multibyte issue in ltree_strncasecmp().
jeff-davis Dec 16, 2025
ed75434
Reorder two functions in inval.c
michaelpq Nov 7, 2023
1d7b027
For inplace update, send nontransactional invalidations.
nmisch Dec 17, 2025
720e930
WAL-log inplace update before revealing it to other sessions.
nmisch Dec 17, 2025
27e4fad
Assert lack of hazardous buffer locks before possible catalog read.
nmisch Dec 17, 2025
2655d2e
Update .abi-compliance-history for PrepareToInvalidateCacheTuple().
nmisch Dec 17, 2025
a527770
Do not emit WAL for unlogged BRIN indexes
hlinnaka Dec 18, 2025
3853f61
Add guard to prevent recursive memory context logging.
MasaoFujii Dec 19, 2025
0666ccc
Clean up test_cloexec.c and Makefile.
macdice Dec 21, 2025
b1316b7
Fix printf format string warning on MinGW.
macdice Dec 5, 2024
e22e9ab
Fix orphaned origin in shared memory after DROP SUBSCRIPTION
michaelpq Dec 23, 2025
ebd5696
Add missing .gitignore for src/test/modules/test_cloexec.
tglsfdc Dec 22, 2025
7efef18
Fix bug in following update chain when locking a heap tuple
hlinnaka Dec 23, 2025
63a65ad
Don't advance origin during apply failure.
Dec 24, 2025
82a923b
doc: Remove duplicate word in ECPG description
michaelpq Dec 26, 2025
c48829e
Fix pg_stat_get_backend_activity() to use multi-byte truncated result
michaelpq Dec 27, 2025
80e8ec7
Fix Mkvcbuild.pm builds of test_cloexec.c.
macdice Dec 29, 2025
4b9ce1e
ci: Test Windows + Mkvcbuild.pm in REL_16_STABLE.
macdice Dec 29, 2025
dfb9ff5
jit: Remove -Wno-deprecated-declarations in 18+.
macdice Dec 30, 2025
8214667
Fix a race condition in updating procArray->replication_slot_xmin.
MasahikoSawada Dec 30, 2025
130b001
jit: Fix jit_profiling_support when unavailable.
macdice Dec 31, 2025
3e77e94
Update copyright for 2026
bmomjian Jan 1, 2026
54f82c4
Fix selectivity estimation integer overflow in contrib/intarray
david-rowley Jan 4, 2026
5e02f92
Doc: add missing punctuation
david-rowley Jan 4, 2026
75f3428
Honor GUC settings specified in CREATE SUBSCRIPTION CONNECTION.
MasaoFujii Jan 6, 2026
67edd54
Add TAP test for GUC settings passed via CONNECTION in logical replic…
MasaoFujii Jan 6, 2026
0687a6e
Fix issue with EVENT TRIGGERS and ALTER PUBLICATION
david-rowley Jan 6, 2026
d3a2781
createuser: Update docs to reflect defaults
j-naylor Jan 7, 2026
2ce4765
Fix typo
petere Jan 7, 2026
24cce33
Prevent invalidation of newly created replication slots.
Jan 8, 2026
821c4d2
Fix possible incorrect column reference in ERROR message
david-rowley Jan 8, 2026
b95bdde
doc: Improve description of publish_via_partition_root
jchampio Jan 9, 2026
254038c
doc: Document DEFAULT option in file_fdw.
MasaoFujii Jan 13, 2026
2170e52
pg_waldump: Relax LSN comparison check in TAP test
michaelpq Jan 14, 2026
c7946e6
Add check for invalid offset at multixid truncation
hlinnaka Jan 15, 2026
a2eeb04
Fix 'unexpected data beyond EOF' on replica restart
hlinnaka Jan 15, 2026
980b7c7
Fix segfault from releasing locks in detached DSM segments
amitlan Jan 16, 2026
e8fd6c9
Fix error message related to end TLI in backup manifest
michaelpq Jan 18, 2026
d852d10
Update time zone data files to tzdata release 2025c.
tglsfdc Jan 18, 2026
098a1fa
amcheck: Fix snapshot usage in bt_index_parent_check
alvherre Jan 21, 2026
7600dc7
jit: Add missing inline pass for LLVM >= 17.
macdice Jan 22, 2026
3f2ab3f
doc: Mention pg_get_partition_constraintdef()
michaelpq Jan 22, 2026
3f56de3
Remove faulty Assert in partitioned INSERT...ON CONFLICT DO UPDATE.
tglsfdc Jan 22, 2026
fab386f
Fix bogus ctid requirement for dummy-root partitioned targets
amitlan Jan 23, 2026
e7391bb
Fix trigger transition table capture for MERGE in CTE queries.
deanrasheed Jan 24, 2026
4297a35
Fix possible issue of a WindowFunc being in the wrong WindowClause
david-rowley Jan 26, 2026
b06e7c1
Update .abi-compliance-history for change to TransitionCaptureState.
deanrasheed Jan 30, 2026
6548e4a
Improve guards against false regex matches in BackgroundPsql.pm.
tglsfdc Jan 30, 2026
73ac2b3
Fix various instances of undefined behavior
j-naylor Feb 4, 2026
2212325
Fix logical replication TAP test to read publisher log correctly.
MasaoFujii Feb 4, 2026
e37b598
Add file_extend_method=posix_fallocate,write_zeros.
macdice May 31, 2025
977a17a
Fix some error message inconsistencies
michaelpq Feb 6, 2026
46aaec4
Protect against small overread in SASLprep validation
jchampio Feb 6, 2026
f84a8d9
Placate ABI checker.
macdice Feb 6, 2026
a7bdbba
Further error message fix
petere Feb 7, 2026
7369656
meson: host_system value for Solaris is 'sunos' not 'solaris'.
tglsfdc Feb 8, 2026
2104e68
Translation updates
petere Feb 8, 2026
7937856
Release notes for 18.2, 17.8, 16.12, 15.16, 14.21.
tglsfdc Feb 8, 2026
527b730
pgcrypto: Fix buffer overflow in pgp_pub_decrypt_bytea()
michaelpq Feb 8, 2026
70ff9ed
Fix encoding length for EUC_CN.
macdice Feb 4, 2026
b0e3f5c
Fix mb2wchar functions on short input.
macdice Jan 25, 2026
d837fb0
Replace pg_mblen() with bounds-checked versions.
macdice Jan 7, 2026
4c08960
Code coverage for most pg_mblen* calls.
macdice Jan 11, 2026
0c33d56
Require PGP-decrypted text to pass encoding validation.
nmisch Feb 9, 2026
595956f
Guard against unexpected dimensions of oidvector/int2vector.
tglsfdc Feb 9, 2026
d484bc2
Add a syscache on pg_extension.oid.
tglsfdc Feb 9, 2026
91d7c0b
Require superuser to install a non-built-in selectivity estimator.
tglsfdc Feb 9, 2026
c0887b3
Harden _int_matchsel() against being attached to the wrong operator.
tglsfdc Feb 9, 2026
763671b
Fix test "NUL byte in text decrypt" for --without-zlib builds.
nmisch Feb 9, 2026
9889b3b
Last-minute updates for release notes.
tglsfdc Feb 9, 2026
e15d965
Stamp 16.12.
tglsfdc Feb 9, 2026
afa94d7
Update Postgres 16 to 16.12
thesuhas Feb 11, 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
37 changes: 37 additions & 0 deletions .abi-compliance-history
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,43 @@
# Be sure to replace "<ADD JUSTIFICATION HERE>" with details of your change and
# why it is deemed acceptable.

e37b598028469d260650e5e1671c8275d30e22b6
#
# Add file_extend_method=posix_fallocate,write_zeros.
# 2026-02-06 17:43:49 +1300
#
# Modifying GUC tables isn't really an ABI break: the relevant object has
# incomplete type so its layout is unknown to other C translation units.
#
# Discussion: https://www.postgresql.org/message-id/flat/e1f0cd3b-0164-45f5-9705-e922e59df90f%40dunslane.net#8a350b54012c0042f9869d288e978cfe

e7391bbf14db94afee1fd3c011314f7b8ee493e9
#
# Fix trigger transition table capture for MERGE in CTE queries.
# 2026-01-24 11:30:50 +0000
#
# This commit changed the TransitionCaptureState structure, replacing
# the "tcs_private" field with 3 separate fields. This structure can
# only be built using MakeTransitionCaptureState(), and PGXN contained
# no calls to MakeTransitionCaptureState() or uses of the
# TransitionCaptureState structure.

1d7b02711f70f1ae87be562bca11ea2a9c43e85b
#
# For inplace update, send nontransactional invalidations.
# 2025-12-16 16:13:55 -0800
#
# This changed PrepareToInvalidateCacheTuple() parameters. PGXN contained no
# calls to that function.

d20abb5876ab61a627d80131b2cb78d9652557e3
#
# Check for CREATE privilege on the schema in CREATE STATISTICS.
# 2025-11-10 09:00:00 -0600
#
# This commit added a parameter to CreateStatistics(). We are unaware of any
# impacted third-party code.

b2ae077205e18ac3e6d7bc5f7a6fa25a39323ec0
#
# Fix re-distributing previously distributed invalidation messages during logical decoding.
Expand Down
113 changes: 112 additions & 1 deletion .cirrus.tasks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -429,7 +429,7 @@ task:
env:
CPUS: 4 # always get that much for cirrusci macOS instances
BUILD_JOBS: $CPUS
# Test performance regresses noticably when using all cores. 8 seems to
# Test performance regresses noticeably when using all cores. 8 seems to
# work OK. See
# https://postgr.es/m/20220927040208.l3shfcidovpzqxfh%40awork3.anarazel.de
TEST_JOBS: 8
Expand Down Expand Up @@ -655,6 +655,117 @@ task:
type: text/plain


task:
<< : *WINDOWS_ENVIRONMENT_BASE
name: Windows - Server 2022, VS 2019 - Mkvcbuild.pm

env:
# Our legacy build system doesn't have test concurrency above the level
# of a single vcregress test target. Due to that, it's useful to run prove
# with multiple jobs. For the other tasks it isn't, because two sources
# (make and prove) of concurrency can overload machines.
#
# The concrete choice of 10 is based on a small bit of experimentation and
# likely can be improved upon further.
PROVE_FLAGS: -j10 --timer

# Avoid re-installing over and over
NO_TEMP_INSTALL: 1
# -m enables parallelism
# verbosity:minimal + Summary reduce verbosity, while keeping a summary of
# errors/warnings
# ForceNoAlign prevents msbuild from introducing line-breaks for long lines
# disable file tracker, we're never going to rebuild, and it slows down the
# build
MSBFLAGS: -m -verbosity:minimal "-consoleLoggerParameters:Summary;ForceNoAlign" /p:TrackFileAccess=false -nologo

# If tests hang forever, cirrus eventually times out. In that case log
# output etc is not uploaded, making the problem hard to debug. Of course
# tests internally should have shorter timeouts, but that's proven to not
# be sufficient. 15min currently is fast enough to finish individual test
# "suites".
T_C: "\"C:/Program Files/Git/usr/bin/timeout.exe\" -v -k60s 15m"

# startcreate_script starts a postgres instance that we don't want to get
# killed at the end of that script (it's stopped in stop_script). Can't
# trivially use background_scripts because a) need pg_ctl's dropping of
# permissions b) need to wait for startup to have finished, and we don't
# currently have a tool for that...
CIRRUS_ESCAPING_PROCESSES: 1

# Cirrus defaults to SetErrorMode(SEM_NOGPFAULTERRORBOX | ...). That
# prevents crash reporting from working unless binaries do SetErrorMode()
# themselves. Furthermore, it appears that either python or, more likely,
# the C runtime has a bug where SEM_NOGPFAULTERRORBOX can very
# occasionally *trigger* a crash on process exit - which is hard to debug,
# given that it explicitly prevents crash dumps from working...
# 0x8001 is SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX
CIRRUS_WINDOWS_ERROR_MODE: 0x8001

<<: *windows_task_template

depends_on: SanityCheck
only_if: $CI_WINDOWS_ENABLED

setup_additional_packages_script: |
REM choco install -y --no-progress ...

configure_script:
# copy errors out when using forward slashes
- copy src\tools\ci\windows_build_config.pl src\tools\msvc\config.pl
- vcvarsall x64
- perl src/tools/msvc/mkvcbuild.pl
build_script:
- vcvarsall x64
- msbuild %MSBFLAGS% pgsql.sln
tempinstall_script:
# Installation on windows currently only completely works from src/tools/msvc
- cd src/tools/msvc && perl install.pl %CIRRUS_WORKING_DIR%/tmp_install

test_regress_parallel_script: |
%T_C% perl src/tools/msvc/vcregress.pl check parallel
startcreate_script: |
rem paths to binaries need backslashes
tmp_install\bin\pg_ctl.exe initdb -D tmp_check/db -l tmp_check/initdb.log --options=--no-sync
echo include '%TEMP_CONFIG%' >> tmp_check/db/postgresql.conf
tmp_install\bin\pg_ctl.exe start -D tmp_check/db -l tmp_check/postmaster.log

test_pl_script: |
%T_C% perl src/tools/msvc/vcregress.pl plcheck
test_isolation_script: |
%T_C% perl src/tools/msvc/vcregress.pl isolationcheck
test_modules_script: |
%T_C% perl src/tools/msvc/vcregress.pl modulescheck
test_contrib_script: |
%T_C% perl src/tools/msvc/vcregress.pl contribcheck
stop_script: |
tmp_install\bin\pg_ctl.exe stop -D tmp_check/db -l tmp_check/postmaster.log
test_ssl_script: |
set with_ssl=openssl
%T_C% perl src/tools/msvc/vcregress.pl taptest ./src/test/ssl/
test_subscription_script: |
%T_C% perl src/tools/msvc/vcregress.pl taptest ./src/test/subscription/
test_authentication_script: |
%T_C% perl src/tools/msvc/vcregress.pl taptest ./src/test/authentication/
test_recovery_script: |
%T_C% perl src/tools/msvc/vcregress.pl recoverycheck
test_bin_script: |
%T_C% perl src/tools/msvc/vcregress.pl bincheck
test_ecpg_script: |
rem tries to build additional stuff
vcvarsall x64
rem References ecpg_regression.proj in the current dir
cd src/tools/msvc
%T_C% perl vcregress.pl ecpgcheck

# It's not really "_ac" but that has the same patterns as REL_15_STABLE used.
on_failure:
<<: *on_failure_ac
crashlog_artifacts:
path: "crashlog-*.txt"
type: text/plain


task:
name: CompilerWarnings

Expand Down
2 changes: 1 addition & 1 deletion COPYRIGHT
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PostgreSQL Database Management System
(also known as Postgres, formerly known as Postgres95)

Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group

Portions Copyright (c) 1994, The Regents of the University of California

Expand Down
18 changes: 9 additions & 9 deletions configure
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for PostgreSQL 16.11.
# Generated by GNU Autoconf 2.69 for PostgreSQL 16.12.
#
# Report bugs to <pgsql-bugs@lists.postgresql.org>.
#
Expand Down Expand Up @@ -582,8 +582,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='PostgreSQL'
PACKAGE_TARNAME='postgresql'
PACKAGE_VERSION='16.11'
PACKAGE_STRING='PostgreSQL 16.11'
PACKAGE_VERSION='16.12'
PACKAGE_STRING='PostgreSQL 16.12'
PACKAGE_BUGREPORT='pgsql-bugs@lists.postgresql.org'
PACKAGE_URL='https://www.postgresql.org/'

Expand Down Expand Up @@ -1450,7 +1450,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures PostgreSQL 16.11 to adapt to many kinds of systems.
\`configure' configures PostgreSQL 16.12 to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

Expand Down Expand Up @@ -1515,7 +1515,7 @@ fi

if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of PostgreSQL 16.11:";;
short | recursive ) echo "Configuration of PostgreSQL 16.12:";;
esac
cat <<\_ACEOF

Expand Down Expand Up @@ -1691,7 +1691,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
PostgreSQL configure 16.11
PostgreSQL configure 16.12
generated by GNU Autoconf 2.69

Copyright (C) 2012 Free Software Foundation, Inc.
Expand Down Expand Up @@ -2444,7 +2444,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by PostgreSQL $as_me 16.11, which was
It was created by PostgreSQL $as_me 16.12, which was
generated by GNU Autoconf 2.69. Invocation command line was

$ $0 $@
Expand Down Expand Up @@ -20133,7 +20133,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by PostgreSQL $as_me 16.11, which was
This file was extended by PostgreSQL $as_me 16.12, which was
generated by GNU Autoconf 2.69. Invocation command line was

CONFIG_FILES = $CONFIG_FILES
Expand Down Expand Up @@ -20204,7 +20204,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
PostgreSQL config.status 16.11
PostgreSQL config.status 16.12
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"

Expand Down
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ dnl Read the Autoconf manual for details.
dnl
m4_pattern_forbid(^PGAC_)dnl to catch undefined macros

AC_INIT([PostgreSQL], [16.11], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/])
AC_INIT([PostgreSQL], [16.12], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/])

m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required.
Untested combinations of 'autoconf' and PostgreSQL versions are not
Expand Down
24 changes: 24 additions & 0 deletions contrib/amcheck/t/002_cic.pl
Original file line number Diff line number Diff line change
Expand Up @@ -60,5 +60,29 @@
)
});

# Test bt_index_parent_check() with indexes created with
# CREATE INDEX CONCURRENTLY.
$node->safe_psql('postgres', q(CREATE TABLE quebec(i int primary key)));
# Insert two rows into index
$node->safe_psql('postgres',
q(INSERT INTO quebec SELECT i FROM generate_series(1, 2) s(i);));

# start background transaction
my $in_progress_h = $node->background_psql('postgres');
$in_progress_h->query_safe(q(BEGIN; SELECT pg_current_xact_id();));

# delete one row from table, while background transaction is in progress
$node->safe_psql('postgres', q(DELETE FROM quebec WHERE i = 1;));
# create index concurrently, which will skip the deleted row
$node->safe_psql('postgres',
q(CREATE INDEX CONCURRENTLY oscar ON quebec(i);));

# check index using bt_index_parent_check
$result = $node->psql('postgres',
q(SELECT bt_index_parent_check('oscar', heapallindexed => true)));
is($result, '0', 'bt_index_parent_check for CIC after removed row');

$in_progress_h->quit;

$node->stop;
done_testing();
Loading