Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
f4c0883
Don't treat EINVAL from semget() as a hard failure.
tglsfdc Aug 13, 2025
88f3f7f
ci: Per-repo configuration for manually trigger tasks
anarazel Aug 14, 2025
b3aa95b
ci: Simplify ci-os-only handling
anarazel Aug 14, 2025
199a347
Fix invalid format string in HASH_DEBUG code
david-rowley Aug 15, 2025
82f9968
Fix git whitespace warning
petere Aug 15, 2025
242e5af
Update obsolete comments in ResultRelInfo struct.
Aug 17, 2025
e411371
Fix self-deadlock during DROP SUBSCRIPTION.
Aug 19, 2025
eb9ee4d
Add CHECK_FOR_INTERRUPTS in contrib/pg_buffercache functions.
MasahikoSawada Aug 19, 2025
818be9b
Fix assertion failure with replication slot release in single-user mode
michaelpq Aug 20, 2025
1c58a1b
doc: Improve description of wal_compression
michaelpq Aug 21, 2025
ec47100
Ignore temporary relations in RelidByRelfilenumber()
michaelpq Aug 22, 2025
fbf967e
Sort DO_DEFAULT_ACL dump objects independent of OIDs.
nmisch Aug 23, 2025
090c9c9
Rewrite previous commit's test for TestUpgradeXversion compatibility.
nmisch Aug 23, 2025
a9c1b9c
Do CHECK_FOR_INTERRUPTS inside, not before, scanGetItem.
tglsfdc Aug 26, 2025
34249b3
Put "excludeOnly" GIN scan keys at the end of the scankey array.
tglsfdc Aug 26, 2025
f9a7622
CREATE STATISTICS: improve misleading error message
alvherre Aug 29, 2025
8286bce
Fix possible use after free in expand_partitioned_rtentry()
david-rowley Aug 29, 2025
0b274c4
libpq: Fix PQtrace() format for non-printable characters
michaelpq Sep 3, 2025
53e35fb
Fix planner error when estimating SubPlan cost
Sep 3, 2025
451b22e
Fix replica identity check for INSERT ON CONFLICT DO UPDATE.
deanrasheed Sep 4, 2025
5481cc3
Fix replica identity check for MERGE.
deanrasheed Sep 4, 2025
a462492
Fix compiler error introduced by 5386bfb9c1f.
deanrasheed Sep 4, 2025
f871fba
Fix concurrent update issue with MERGE.
deanrasheed Sep 5, 2025
1852ec5
Fix corruption of pgstats shared hashtable due to OOM failures
michaelpq Sep 8, 2025
5ac9738
Fix memory leakage in nodeSubplan.c.
tglsfdc Sep 10, 2025
cbe37db
Fix description of WAL record blocks in hash_xlog.h
michaelpq Sep 11, 2025
451373d
Report the correct is_temporary flag for column defaults.
tglsfdc Sep 11, 2025
33e49ee
Fix oversights in pg_event_trigger_dropped_objects() fixes.
tglsfdc Sep 12, 2025
9fd5315
Amend recent fix for SIMILAR TO regex conversion.
tglsfdc Sep 13, 2025
72a24be
jit: fix build with LLVM-21
petere Sep 15, 2025
4529861
CREATE STATISTICS: improve misleading error message
petere Sep 15, 2025
c8ed160
pg_restore: Fix comment handling with --no-publications / --no-subscr…
MasaoFujii Sep 16, 2025
165b07e
pg_dump: Fix dumping of security labels on subscriptions and event tr…
MasaoFujii Sep 16, 2025
0773f3a
Fix pg_dump COMMENT dependency for separate domain constraints.
nmisch Sep 16, 2025
0057702
Add missing EPQ recheck for TID Scan
david-rowley Sep 16, 2025
f00ad44
Add missing EPQ recheck for TID Range Scan
david-rowley Sep 17, 2025
afd18f2
Calculate agglevelsup correctly when Aggref contains a CTE.
tglsfdc Sep 17, 2025
5f42008
pg_restore: Fix security label handling with --no-publications/subscr…
MasaoFujii Sep 18, 2025
fa42213
Add minimal sleep to stats isolation test functions.
tglsfdc Sep 25, 2025
704f517
pgbench: Fix assertion failure with retriable errors in pipeline mode.
MasaoFujii Sep 26, 2025
9ca7989
Fix missed copying of groupDistinct in transformPLAssignStmt.
tglsfdc Sep 27, 2025
d202ec1
Fix StatisticsObjIsVisibleExt() for pg_temp.
nmisch Sep 29, 2025
bdccb63
pgbench: Fix error reporting in readCommandResponse().
MasaoFujii Sep 30, 2025
49b5f0b
pgstattuple: Improve reports generated for indexes (hash, gist, btree)
michaelpq Oct 2, 2025
b5cefc1
pgbench: Fail cleanly when finding a COPY result state
michaelpq Oct 3, 2025
771b106
Use SOCK_ERRNO[_SET] in fe-secure-gssapi.c.
tglsfdc Oct 5, 2025
c407617
Fix access-to-already-freed-memory issue in pgoutput.
MasahikoSawada Oct 9, 2025
0adf424
Remove state.tmp when failing to save a replication slot
michaelpq Oct 10, 2025
5bc057d
Fix two typos in xlogstats.h and xlogstats.c
michaelpq Oct 10, 2025
ca0c939
Remove overzealous _bt_killitems assertion.
petergeoghegan Oct 10, 2025
23b316c
dbase_redo: Fix Valgrind-reported memory leak
alvherre Oct 11, 2025
bdae984
Stop creating constraints during DETACH CONCURRENTLY
alvherre Oct 11, 2025
46086fb
Doc: clarify n_distinct_inherited setting
david-rowley Oct 13, 2025
f91666c
Fix incorrect message-printing in win32security.c.
tglsfdc Oct 13, 2025
4a08603
Fix EvalPlanQual handling of foreign/custom joins in ExecScanFetch.
Oct 15, 2025
33202cb
Fix update-po for the PGXS case
alvherre Oct 16, 2025
6c03ae8
Fix privilege checks for pg_prewarm() on indexes.
nathan-bossart Oct 17, 2025
4cc3b44
Fix pg_dump sorting of foreign key constraints
alvherre Oct 18, 2025
8b9924b
Don't rely on zlib's gzgetc() macro.
tglsfdc Oct 19, 2025
4c3795c
Fix POSIX compliance in pgwin32_unsetenv() for "name" argument
michaelpq Oct 20, 2025
810aaf7
Fix BRIN 32-bit counter wrap issue with huge tables
david-rowley Oct 21, 2025
f9790ac
Re-pgindent brin.c.
nathan-bossart Oct 21, 2025
d1469c2
Add previous commit to .git-blame-ignore-revs.
nathan-bossart Oct 21, 2025
d9c5e71
Add .abi-compliance-history to back-branches.
nathan-bossart Oct 21, 2025
59b215f
Fix stalled lag columns in pg_stat_replication when replay LSN stops …
MasaoFujii Oct 22, 2025
caf529a
Make invalid primary_slot_name follow standard GUC error reporting.
MasaoFujii Oct 22, 2025
b8ecfbe
Fix incorrect zero extension of Datum in JIT tuple deform code
david-rowley Oct 23, 2025
574a656
Add copyright notice to vacuum_horizon_floor.pl test.
MasahikoSawada Oct 23, 2025
c16154b
Add comments explaining overflow entries in the replication lag tracker.
MasaoFujii Oct 23, 2025
4cde732
Fix resource leaks in PL/Python error reporting, redux.
tglsfdc Oct 23, 2025
05d8a08
Fix off-by-one Asserts in FreePageBtreeInsertInternal/Leaf.
tglsfdc Oct 23, 2025
5f0b6f7
doc: Remove mention of Git protocol support
danielgustafsson Oct 23, 2025
2992b9a
Fix incorrect logic for caching ResultRelInfos for triggers
david-rowley Oct 25, 2025
f3420e0
Fix bogus use of "long" in AllocSetCheck()
david-rowley Oct 30, 2025
4eac7e3
ci: Fix Windows and MinGW task names
anarazel Oct 30, 2025
a027ce3
ci: macos: Upgrade to Sequoia
anarazel Oct 30, 2025
3f76f65
doc: rewrite random_page_cost description
bmomjian Oct 30, 2025
cd55aba
Avoid mixing void and integer in a conditional expression.
tglsfdc Nov 2, 2025
e1dd1f9
Doc: cover index CONCURRENTLY causing errors in INSERT ... ON CONFLICT.
nmisch Nov 3, 2025
da5ea6c
Fix unconditional WAL receiver shutdown during stream-archive transition
michaelpq Nov 4, 2025
23ddadf
BRIN autosummarization may need a snapshot
alvherre Nov 4, 2025
643a5e9
Tighten check for generated column in partition key expression
petere Nov 4, 2025
42fa4db
Have psql's "\? variables" show csv_fieldsep
alvherre Nov 4, 2025
00bdbac
Backpatch: Fix warnings about declaration of environ on MinGW
anarazel Nov 4, 2025
eeabf8b
ci: debian: Switch to Debian Trixie release
anarazel Nov 4, 2025
bcfbd3f
Fix snapshot handling bug in recent BRIN fix
alvherre Nov 4, 2025
5b45f7e
jit: Fix accidentally-harmless type confusion
anarazel Nov 4, 2025
13efc28
Fix timing-dependent failure in recovery test 004_timeline_switch
michaelpq Nov 5, 2025
c3359d1
ci: Add missing "set -e" to scripts run by su.
macdice Nov 6, 2025
910409d
postgres_fdw: Add more test coverage for EvalPlanQual testing.
Nov 6, 2025
1cba25e
Update obsolete comment in ExecScanReScan().
Nov 6, 2025
8278737
Disallow generated columns in COPY WHERE clause
petere Nov 6, 2025
49b4599
Introduce XLogRecPtrIsValid()
alvherre Nov 6, 2025
a2e17a2
doc: Fix descriptions of some PGC_POSTMASTER parameters.
MasaoFujii Nov 7, 2025
1c7cba4
Fix generic read and write barriers for Clang.
macdice Nov 7, 2025
e334e80
Release notes for 18.1, 17.7, 16.11, 15.15, 14.20, 13.23.
tglsfdc Nov 9, 2025
86cbe9e
Translation updates
petere Nov 10, 2025
9142156
libpq: Prevent some overflows of int/size_t
jchampio Nov 10, 2025
2393d37
Check for CREATE privilege on the schema in CREATE STATISTICS.
nathan-bossart Nov 10, 2025
70d03b5
Last-minute updates for release notes.
tglsfdc Nov 10, 2025
32f3881
Stamp 15.15.
tglsfdc Nov 10, 2025
43cc766
Merge tag 'REL_15_15' into merge_15_15
mrdrivingduck Nov 19, 2025
5fb59da
merge: resolve conflicts with PostgreSQL 15.15
mrdrivingduck Nov 19, 2025
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
30 changes: 30 additions & 0 deletions .abi-compliance-history
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Reference point for ABI compliance checks
#
# This file lists commits on the current branch that break ABI compatibility in
# ways that have been deemed acceptable (e.g., removing an extern function with
# no third-party uses). The primary intent of this file is to control the ABI
# compliance checks on the buildfarm, but it also serves as a central location
# to document the justification for each.
#
# In general, entries should be added reactively after an abi-compliance-check
# buildfarm failure. It is important to verify the details of the breakage
# match expectations, as the first entry listed will become the updated ABI
# baseline point.
#
# Add new entries by adding the output of the following to the top of the file:
#
# $ git log --pretty=format:"%H%n#%n# %s%n# %cd%n#%n# <ADD JUSTIFICATION HERE>" $ABIBREAKGITHASH -1 --date=iso
#
# Be sure to replace "<ADD JUSTIFICATION HERE>" with details of your change and
# why it is deemed acceptable.

fc0fb77c550fe8289d718c33c7aacf16023d9941
#
# Fix re-distributing previously distributed invalidation messages during logical decoding.
# 2025-06-16 17:35:53 -0700
#
# This is the original ABI baseline point for REL_15_STABLE. The first entry
# would ordinarily point to something just before the .0 release, but this file
# was first added in October 2025, and we're unlikely to act upon ABI breaks in
# released minor versions, so we've chosen to truncate the ABI history to start
# with the most recent ABI break documented in the git commit history.
78 changes: 74 additions & 4 deletions .cirrus.star
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ https://github.com/bazelbuild/starlark/blob/master/spec.md
See also .cirrus.yml and src/tools/ci/README
"""

load("cirrus", "env", "fs")
load("cirrus", "env", "fs", "re", "yaml")


def main():
Expand All @@ -18,32 +18,102 @@ def main():

1) the contents of .cirrus.yml

2) if defined, the contents of the file referenced by the, repository
2) computed environment variables

3) if defined, the contents of the file referenced by the, repository
level, REPO_CI_CONFIG_GIT_URL variable (see
https://cirrus-ci.org/guide/programming-tasks/#fs for the accepted
format)

3) .cirrus.tasks.yml
4) .cirrus.tasks.yml
"""

output = ""

# 1) is evaluated implicitly


# Add 2)
additional_env = compute_environment_vars()
env_fmt = """
###
# Computed environment variables start here
###
{0}
###
# Computed environment variables end here
###
"""
output += env_fmt.format(yaml.dumps({'env': additional_env}))


# Add 3)
repo_config_url = env.get("REPO_CI_CONFIG_GIT_URL")
if repo_config_url != None:
print("loading additional configuration from \"{}\"".format(repo_config_url))
output += config_from(repo_config_url)
else:
output += "\n# REPO_CI_CONFIG_URL was not set\n"

# Add 3)

# Add 4)
output += config_from(".cirrus.tasks.yml")


return output


def compute_environment_vars():
cenv = {}

###
# Some tasks are manually triggered by default because they might use too
# many resources for users of free Cirrus credits, but they can be
# triggered automatically by naming them in an environment variable e.g.
# REPO_CI_AUTOMATIC_TRIGGER_TASKS="task_name other_task" under "Repository
# Settings" on Cirrus CI's website.

default_manual_trigger_tasks = []

repo_ci_automatic_trigger_tasks = env.get('REPO_CI_AUTOMATIC_TRIGGER_TASKS', '')
for task in default_manual_trigger_tasks:
name = 'CI_TRIGGER_TYPE_' + task.upper()
if repo_ci_automatic_trigger_tasks.find(task) != -1:
value = 'automatic'
else:
value = 'manual'
cenv[name] = value
###

###
# Parse "ci-os-only:" tag in commit message and set
# CI_{$OS}_ENABLED variable for each OS

operating_systems = [
'freebsd',
'linux',
'macos',
'windows',
]
commit_message = env.get('CIRRUS_CHANGE_MESSAGE')
match_re = r"(^|.*\n)ci-os-only: ([^\n]+)($|\n.*)"

# re.match() returns an array with a tuple of (matched-string, match_1, ...)
m = re.match(match_re, commit_message)
if m and len(m) > 0:
os_only = m[0][2]
os_only_list = re.split(r'[, ]+', os_only)
else:
os_only_list = operating_systems

for os in operating_systems:
os_enabled = os in os_only_list
cenv['CI_{0}_ENABLED'.format(os.upper())] = os_enabled
###

return cenv


def config_from(config_src):
"""return contents of config file `config_src`, surrounded by markers
indicating start / end of the the included file
Expand Down
33 changes: 18 additions & 15 deletions .cirrus.tasks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ task:

<<: *freebsd_task_template

only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*freebsd.*'
only_if: $CI_FREEBSD_ENABLED

sysinfo_script: |
id
Expand Down Expand Up @@ -76,6 +76,7 @@ task:
# freebsd already takes longer than other platforms except for windows.
configure_script: |
su postgres <<-EOF
set -e
./configure \
--enable-cassert --enable-debug --enable-tap-tests \
--enable-nls \
Expand Down Expand Up @@ -138,13 +139,13 @@ LINUX_CONFIGURE_FEATURES: &LINUX_CONFIGURE_FEATURES >-


task:
name: Linux - Debian Bookworm
name: Linux - Debian Trixie

env:
CPUS: 4
BUILD_JOBS: 4
TEST_JOBS: 8 # experimentally derived to be a decent choice
IMAGE_FAMILY: pg-ci-bookworm
IMAGE_FAMILY: pg-ci-trixie

CCACHE_DIR: /tmp/ccache_dir
DEBUGINFOD_URLS: "https://debuginfod.debian.net"
Expand All @@ -153,7 +154,7 @@ task:

<<: *linux_task_template

only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*linux.*'
only_if: $CI_LINUX_ENABLED

ccache_cache:
folder: ${CCACHE_DIR}
Expand Down Expand Up @@ -181,6 +182,7 @@ task:

configure_script: |
su postgres <<-EOF
set -e
./configure \
--enable-cassert --enable-debug --enable-tap-tests \
--enable-nls \
Expand All @@ -198,6 +200,7 @@ task:

test_world_script: |
su postgres <<-EOF
set -e
ulimit -c unlimited # default is 0
make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
EOF
Expand All @@ -208,7 +211,7 @@ task:


task:
name: macOS - Sonoma
name: macOS - Sequoia

env:
CPUS: 4 # always get that much for cirrusci macOS instances
Expand All @@ -217,7 +220,7 @@ task:
# work OK. See
# https://postgr.es/m/20220927040208.l3shfcidovpzqxfh%40awork3.anarazel.de
TEST_JOBS: 8
IMAGE: ghcr.io/cirruslabs/macos-runner:sonoma
IMAGE: ghcr.io/cirruslabs/macos-runner:sequoia

CIRRUS_WORKING_DIR: ${HOME}/pgsql/
CCACHE_DIR: ${HOME}/ccache
Expand All @@ -239,7 +242,7 @@ task:

<<: *macos_task_template

only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*(macos|darwin|osx).*'
only_if: $CI_MACOS_ENABLED

sysinfo_script: |
id
Expand Down Expand Up @@ -328,7 +331,7 @@ task:


task:
name: Windows - Server 2019, VS 2019
name: Windows - Server 2022, VS 2019

env:
# Half the allowed per-user CPU cores
Expand Down Expand Up @@ -389,7 +392,7 @@ task:

<<: *windows_task_template

only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*windows.*'
only_if: $CI_WINDOWS_ENABLED

sysinfo_script: |
chcp
Expand Down Expand Up @@ -460,12 +463,12 @@ task:

# To limit unnecessary work only run this once the normal linux test succeeds
depends_on:
- Linux - Debian Bookworm
- Linux - Debian Trixie

env:
CPUS: 4
BUILD_JOBS: 4
IMAGE_FAMILY: pg-ci-bookworm
IMAGE_FAMILY: pg-ci-trixie

# Use larger ccache cache, as this task compiles with multiple compilers /
# flag combinations
Expand All @@ -476,7 +479,7 @@ task:

# task that did not run, count as a success, so we need to recheck Linux'
# condition here ...
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*linux.*'
only_if: $CI_LINUX_ENABLED

<<: *linux_task_template

Expand Down Expand Up @@ -554,10 +557,10 @@ task:
always:
mingw_cross_warning_script: |
time ./configure \
--host=x86_64-w64-mingw32 \
--host=x86_64-w64-mingw32ucrt \
--enable-cassert \
CC="ccache x86_64-w64-mingw32-gcc" \
CXX="ccache x86_64-w64-mingw32-g++"
CC="ccache x86_64-w64-mingw32ucrt-gcc" \
CXX="ccache x86_64-w64-mingw32ucrt-g++"
make -s -j${BUILD_JOBS} clean
time make -s -j${BUILD_JOBS} world-bin

Expand Down
12 changes: 10 additions & 2 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,20 @@
#
# 1) the contents of this file
#
# 2) if defined, the contents of the file referenced by the, repository
# 2) computed environment variables
#
# Used to enable/disable tasks based on the execution environment. See
# .cirrus.star: compute_environment_vars()
#
# 3) if defined, the contents of the file referenced by the, repository
# level, REPO_CI_CONFIG_GIT_URL variable (see
# https://cirrus-ci.org/guide/programming-tasks/#fs for the accepted
# format)
#
# 3) .cirrus.tasks.yml
# This allows running tasks in a different execution environment than the
# default, e.g. to have sufficient resources for cfbot.
#
# 4) .cirrus.tasks.yml
#
# This composition is done by .cirrus.star

Expand Down
3 changes: 3 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@
#
# $ git log --pretty=format:"%H # %cd%n# %s" $PGINDENTGITHASH -1 --date=iso

f9790ac5464da45eb44470ab831584356381597b # 2025-10-21 09:56:26 -0500
# Re-pgindent brin.c.

d04649cd9674a5408bada0c1d5f543a931ab675f # 2024-08-29 21:34:37 +0800
# feat: prior indent run for PolarDB-PG 15

Expand Down
4 changes: 2 additions & 2 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
*.x[ms]l whitespace=space-before-tab,trailing-space,tab-in-indent

# Avoid confusing ASCII underlines with leftover merge conflict markers
README conflict-marker-size=32
README.* conflict-marker-size=32
README conflict-marker-size=48
README.* conflict-marker-size=48

# Certain data files that contain special whitespace, and other special cases
*.data -whitespace
Expand Down
Loading