Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
481 commits
Select commit Hold shift + click to select a range
2289e65
Fix logical decoding of empty prepared transactions.
MasahikoSawada Jul 28, 2026
9eb77f9
Recheck checksum state before file_copy during CREATE DATABASE
danielgustafsson Jul 28, 2026
e469e47
Handle invalid and dropped databases during checksum enable
danielgustafsson Jul 28, 2026
9740c68
Fix planner's nullability/strictness logic for ScalarArrayOpExpr.
tglsfdc Jul 28, 2026
e46c2a6
Avoid accumulating relation locks during sequence synchronization.
Jul 29, 2026
16c3435
Protect PGPROC lookup when terminating background workers
michaelpq Jul 29, 2026
bef46ae
Fix cascading standby reconnect failure after archive fallback
alvherre Jul 29, 2026
4ee0ccf
Fix stale comment in parallel_vacuum_main().
MasahikoSawada Jul 29, 2026
bc90a53
doc: remove added space within synopsis replaceable tags
bmomjian Jul 29, 2026
55c8143
doc: Add a note that refint will be removed in v20
danielgustafsson Jul 29, 2026
33cffe5
Skip SUBSCRIPTION TABLE TOC entries with --no-subscriptions.
Jul 30, 2026
b1aeda3
pgindent fix for 4ee0ccfd
danielgustafsson Jul 30, 2026
6d38b53
Add previous commit to .git-blame-ignore-revs
danielgustafsson Jul 30, 2026
b835cdb
Make sure to detach injection points for re-attaching
danielgustafsson Jul 30, 2026
5707d75
Initialize bs_reltuples in parallel GIN builds
tvondra Jul 30, 2026
068447d
Reject non-finite reltuples when restoring stats
tvondra Jul 30, 2026
6a80179
Fix races between deactivation of logical decoding and slot creation.
MasahikoSawada Jul 30, 2026
5c808b8
Fix background psql session cleanup in 051_effective_wal_level.pl.
MasahikoSawada Jul 30, 2026
4a791db
Fix incorrect Result node flattening logic
david-rowley Jul 31, 2026
f9282a6
Fix issue with RANGE's DEFAULT partition pruning
david-rowley Jul 31, 2026
c7d8049
Improve wording of sequence origin warning in logical replication.
Jul 31, 2026
a71a348
Fix Hash Join performance issue when hashing NULL values
david-rowley Jul 31, 2026
b333157
Fix autovacuum's database sorting.
nathan-bossart Jul 31, 2026
dfb9627
Prevent walsummarizer from getting stuck at a timeline switch.
robertmhaas Jul 31, 2026
19ff9a1
libpq-oauth: Avoid overflow for very large intervals
jchampio Jul 31, 2026
0c57a40
Add list of major features to the v19 release notes.
nathan-bossart Jul 31, 2026
d6792cc
Allow IO time to be counted without a matching IO operation in pg_sta…
melanieplageman Jul 31, 2026
602f19c
doc: Fix glossary entry for data checksums workers
danielgustafsson Aug 1, 2026
4afa978
Add a comment to distinguish backend types
danielgustafsson Aug 1, 2026
3c16aa2
Update time zone data files to tzdata release 2026c.
tglsfdc Aug 2, 2026
3fe4062
Fix memory-safety bugs in the ispell/hunspell dictionary loader.
tglsfdc Aug 2, 2026
df8407d
Tighten up TS dictionary cache entry creation.
tglsfdc Aug 2, 2026
3fb599b
Fix nullability check for a sub-select's upper-level Vars
Aug 3, 2026
d2ac26e
Fix missing space before WHERE in GRAPH_TABLE deparse
petere Aug 3, 2026
1d24c58
Remove unused arg and dead code in set_attnotnull()
alvherre Aug 3, 2026
072b962
Undo inadvertent loosening of archive filename checking.
robertmhaas Aug 3, 2026
72b0fee
Do not log subscription conninfo.
jeff-davis Aug 3, 2026
343d98c
Don't skip invalid databases when enabling data checksums
danielgustafsson Aug 3, 2026
9eccdae
Fix lock release for role membership grants in DROP OWNED BY.
jeff-davis Aug 3, 2026
608704a
Improve DROP SERVER handling of dependent subscriptions.
jeff-davis Aug 3, 2026
8c1723f
postgres_fdw: reject use_scram_passthrough for subscriptions.
jeff-davis Aug 3, 2026
98bcb0a
Validate publisher for retain_dead_tuples in the apply worker.
Aug 4, 2026
5cb0f00
Fix missing MCXT_ALLOC_NO_OOM handling in MemoryContextAllocAligned
david-rowley Aug 4, 2026
7746f74
Fix missing money overflow checks for INT64_MIN / -1
david-rowley Aug 4, 2026
ce6e434
Fix ALTER COLUMN ... DROP EXPRESSION with subpartitions
alvherre Aug 4, 2026
8380013
Fix error handling in getCopyDataMessage() and pqFunctionCall3()
MasaoFujii Aug 4, 2026
4054ec5
Prohibit GRANT ... ON TABLE on a property graph
petere Aug 4, 2026
7796432
doc: Add PROPERTY GRAPH to the access privilege tables
petere Aug 4, 2026
1f24c82
pg_surgery: Fix infinite loop on large TID arrays
alvherre Aug 4, 2026
01805b7
Do not reuse rd_smgr in fork loop when enabling data checksums
danielgustafsson Aug 4, 2026
16aba1f
doc: Make synopsis placeholders consistent
petere Aug 4, 2026
8126fe4
psql: Message style fixes
petere Aug 4, 2026
2f768dd
Silence Coverity warning about unused visibilitymap_clear() result
melanieplageman Aug 4, 2026
1aaca5a
doc: Clarify wal_sender_shutdown_timeout values
MasaoFujii Aug 5, 2026
3d4216d
Clarify wraparound warning percentage messages
MasaoFujii Aug 5, 2026
4642ddc
doc: Update XID wraparound error example
MasaoFujii Aug 5, 2026
c5e11de
More tab-completion for DROP PROPERTY GRAPH
petere Aug 5, 2026
0e2fb2c
Initialize read stream before fetching metapage in hash bulk-deletion
michaelpq Aug 5, 2026
8ce749f
Disallow aggregates, window functions, and SRFs in GRAPH_TABLE COLUMNS
petere Aug 5, 2026
55ea764
Fix calculating length of match to localized month/weekday names
alvherre Aug 5, 2026
8f7617f
Remove Subscription conninfo field; generate in caller.
jeff-davis Aug 5, 2026
f567e06
Build subscription conninfo after checking that it's enabled.
jeff-davis Aug 5, 2026
ae420d6
Be precise about when ALTER SUBSCRIPTION needs conninfo.
jeff-davis Aug 5, 2026
5ba1818
Always check foreign-server USAGE when resolving subscription conninfo.
jeff-davis Aug 5, 2026
caadb9e
For subscription DDL, demote user mapping checks to WARNING.
jeff-davis Aug 5, 2026
1718a16
CREATE SUBSCRIPTION: do not construct conninfo unnecessarily.
jeff-davis Aug 5, 2026
45b479a
Revert "Validate subscription conninfo on owner change"
jeff-davis Aug 5, 2026
a1e39c5
When changing owner of a subscription, do not throw an error.
jeff-davis Aug 5, 2026
4edd59d
Fix unlikely incremental tuple deform bug with missing attrs
david-rowley Aug 6, 2026
f4e44f1
Fix race condition in subscription TAP test 023_twophase_stream.
Aug 6, 2026
22d0eeb
Report duplicate property and label names with a proper error
petere Aug 6, 2026
fd90c32
Restore vacuum failsafe abandonment of buffer access strategy
melanieplageman Aug 6, 2026
cacba32
Make 030_pg_recvlogical robust against PID reuse
MasaoFujii Aug 7, 2026
89fc6a7
Fix local pgstat entry leak on OOM during entry creation
michaelpq Aug 7, 2026
c17b91e
Remove stale comment on ri_FastPathCheck()
amitlan Aug 7, 2026
8c0aa08
Restrict RI fast-path FK check to btree referenced indexes
amitlan Aug 7, 2026
f68f47f
Begin RI fast-path index scan under the switched user id
amitlan Aug 7, 2026
acdfaee
Fire fast-path FK batches inside the deferred trigger loop
amitlan Aug 7, 2026
7d74b26
Drain pending asynchronous requests during ExecReScanAppend.
Aug 7, 2026
52d87b4
Fix indentation issue introduced by commit 291a4bd2ca
amitlan Aug 7, 2026
d145844
Add previous commit to .git-blame-ignore-revs
amitlan Aug 7, 2026
a05ece5
Handle nullable referenced key in RI fast-path check
amitlan Aug 7, 2026
55d01a1
Only clear VACUUM's read stream strategy once in failsafe mode
melanieplageman Aug 7, 2026
7673dfe
Fix hot standby accepting connections too early after a crash reset
MasaoFujii Aug 7, 2026
b330f49
Translation updates
petere Aug 10, 2026
3294ab8
Guard against overlength time zone abbreviations in to_char().
tglsfdc Aug 10, 2026
cb947ca
Harden tsvector code against overflows.
tglsfdc Aug 10, 2026
3b2238f
Harden tsquery code against overflows.
tglsfdc Aug 10, 2026
7df2aa8
Fix potential buffer overrun in regexp match/split functions.
MasahikoSawada Aug 10, 2026
8c48cd6
Harden PL/Perl code against "tied" Perl arrays and hashes.
tglsfdc Aug 10, 2026
0d60ee7
Be more wary about constant's datatype in scalarineqsel().
tglsfdc Aug 10, 2026
92972e8
Replace fixed-size, too-short array with a palloc'd one.
tglsfdc Aug 10, 2026
86cd82b
pg_dump: avoid assuming how long pg_proc.protrftypes can be.
tglsfdc Aug 10, 2026
42d9749
Protect some fixed-size arrays that have FUNC_MAX_ARGS elements.
tglsfdc Aug 10, 2026
21a00de
Reject calls from SQL to functions that take or return type internal.
tglsfdc Aug 10, 2026
21d8cfb
Return nulls honestly in aggregate "combine" functions.
tglsfdc Aug 10, 2026
93b93f2
Preserve the owner of extended statistics rebuilt by ALTER TABLE.
MasahikoSawada Aug 10, 2026
bb02eba
pg_stat_statements: Fix buffer overflow with query normalization
alvherre Aug 10, 2026
aa7b581
Fix pg_trgm's picksplit function with all-true datums
hlinnaka Aug 10, 2026
a1c1727
Use palloc_array() in pltcl and plperl to avoid overflow
hlinnaka Aug 10, 2026
457b873
ecpg: Fix out-of-bound writes due to processing of invalid bytea data
michaelpq Aug 10, 2026
bf1bb7e
Reject GSSEncRequest after direct SSL connection
michaelpq Aug 10, 2026
b3d9262
Fix multirange type handling in pg_restore_attribute_stats()
michaelpq Aug 10, 2026
a3832a7
Obstruct EXTRACT() field name deparse injection.
nathan-bossart Aug 10, 2026
4d192fa
Use value of scram_iterations in mock_scram_secret().
nathan-bossart Aug 10, 2026
557cc71
Empty search_path in amcheck.
nmisch Aug 10, 2026
7082ce2
Move SplitGUCList() to fe_utils
jchampio Aug 10, 2026
5d47df2
Add an output_plugin_libraries GUC to bless trusted output plugins
jchampio Aug 10, 2026
64a65ea
Cross-check the type of a portal running EXECUTE or FETCH.
robertmhaas Aug 10, 2026
62c31b4
Avoid overflow in Levenshtein distance calculations.
nathan-bossart Aug 10, 2026
efdb260
Check for USAGE privilege on the subtype in CREATE TYPE AS RANGE.
nathan-bossart Aug 10, 2026
424fb71
Check for USAGE privilege on types used by stored expressions.
nathan-bossart Aug 10, 2026
bb1bc52
Check for USAGE privilege on the composite type in ALTER TABLE OF.
nathan-bossart Aug 10, 2026
567286b
Invalidate plan cache after role changes.
nathan-bossart Aug 10, 2026
8cf01e2
Save/restore more lexer state when skipping text due to \if.
tglsfdc Aug 10, 2026
d6ab88d
Teach psql to skip in-line COPY ... FROM STDIN data after a failure.
tglsfdc Aug 10, 2026
80ce920
Fix out-of-bound reads with ascii() for invalid multibyte characters
michaelpq Aug 10, 2026
ba207f5
Fix errorhandling for PGP encryption
danielgustafsson Aug 10, 2026
d97b3f5
pgcrypto: Add option to revert to prior decryption behavior
jchampio Aug 10, 2026
0119aa3
psql: Don't do backquote expansion in \unrestrict.
nathan-bossart Aug 10, 2026
3638289
Stamp 19beta3.
tglsfdc Aug 10, 2026
cf9453b
Tweak allocation rule for tzload()'s "union local_storage" variable.
tglsfdc Aug 11, 2026
5838806
Change wal_compression=on to the first of zstd, lz4, pglz
tvondra Aug 11, 2026
7ff4ee8
Fix poll_query_until() timeout handling with an undefined query in Cl…
michaelpq Aug 12, 2026
7cda7b5
Use per-query timeout in subscription test
danielgustafsson Aug 12, 2026
fd56954
Fix stale comments/signature after commit 28d534e2ae0a
alvherre Aug 12, 2026
94f94b2
Fix float8_regr_accum() for Inf/NaN with constant other input.
tglsfdc Aug 12, 2026
82c86ac
Reject REPLICA IDENTITY USING INDEX on column with invalid NOT NULL
alvherre Aug 12, 2026
ed23f7c
doc: Clarify pgbench reporting with --continue-on-error
MasaoFujii Aug 13, 2026
dc6c9c5
Doc: Clarify ALTER PUBLICATION's REFRESH PUBLICATION wording.
Aug 13, 2026
9e725e7
vacuumdb: Use ANALYZE ONLY for partitioned tables
MasaoFujii Aug 13, 2026
5185e64
Consistently enforce tsvector/tsquery maximum lengths.
tglsfdc Aug 13, 2026
d7db169
Reject CLUSTER (ANALYZE).
nathan-bossart Aug 13, 2026
9db2383
Fix authorization check for role membership changes.
nathan-bossart Aug 13, 2026
48965e1
postgres_fdw: Rename option "restore_stats" to "import_stats".
Aug 14, 2026
f3a116a
Enforce WITH CHECK OPTION on DELETE FOR PORTION OF leftovers
petere Aug 14, 2026
41a300a
Make generate_queries_for_path_pattern_recurse() interruptible
petere Aug 14, 2026
7f8de6d
psql: count every COPY FROM STDIN when scanning a query string.
tglsfdc Aug 14, 2026
e19cd26
Add missing PGDLLIMPORT marker.
nathan-bossart Aug 14, 2026
de73e69
Use int64 for number of entries in pg_stat_statements
danielgustafsson Aug 14, 2026
1674284
doc: Clarify the logging collector's guarantees.
nathan-bossart Aug 14, 2026
3ab3f33
Rename EXISTS-to-ANY converted subplan to exists_to_any
MasaoFujii Aug 15, 2026
3d2f2eb
pgindent fix for commit 7b7c4a8dcc9
MasaoFujii Aug 15, 2026
c9bd902
Add previous commit to .git-blame-ignore-revs
MasaoFujii Aug 15, 2026
7b84601
Clarify logic in CreateSubscription().
jeff-davis Aug 15, 2026
13967fe
Fix ASAN failure after flex errors in GUC file parsing
michaelpq Aug 16, 2026
67342a1
psql: Fix \d+ display of REPLICA IDENTITY NOTHING
michaelpq Aug 17, 2026
b6b4f5a
Make plperl's handling of Perl arrays safer and more consistent.
tglsfdc Aug 17, 2026
81aa0a2
Replace printf format %i by %d
petere Aug 17, 2026
3a18526
Make data checksums launcher cancel its worker at SIGINT
danielgustafsson Aug 17, 2026
abac86c
Reorder function prototypes to match definition order
danielgustafsson Aug 17, 2026
9c1e3b5
GiST: Deprecate F_TUPLES_DELETED opaque area flag.
petergeoghegan Aug 17, 2026
1c732c8
Tighten up tsqueryrecv().
tglsfdc Aug 17, 2026
2d893fd
Doc: clean up documentation about text search datatype limits.
tglsfdc Aug 17, 2026
3b70fa6
Fix cross-type foreign keys in the batched fast-path FK check
amitlan Aug 18, 2026
ec51b80
Fix RI fast-path race with REINDEX CONCURRENTLY
amitlan Aug 18, 2026
7864a14
Add wait-for-lsn process-exit cleanup callback
akorotkov Aug 18, 2026
d2eb714
Fix WAIT FOR LSN documentation examples
akorotkov Aug 18, 2026
58c48b4
Avoid locking when an LSN waiter is already removed
akorotkov Aug 18, 2026
f2d6392
Clarify LSN waiter cleanup after wakeup
akorotkov Aug 18, 2026
0ec36f4
Re-register LSN waiters after stale wakeups
akorotkov Aug 18, 2026
f840813
Message style fixes
petere Aug 18, 2026
96c34b1
test_json_parser: Fix broken file ref and inverted result check
adunstan Aug 18, 2026
ffb7e3a
doc PG 19: update to current
bmomjian Aug 18, 2026
e4f16fd
Fix stream abort for a transaction that was never streamed.
MasahikoSawada Aug 18, 2026
fe91799
pg_locale.c: comment improvements.
jeff-davis Aug 18, 2026
aaf8b99
Record initial state of data checksums in controlfile
danielgustafsson Aug 18, 2026
397f0fd
Add data_page_checksum_version to pg_control_checkpoint
danielgustafsson Aug 18, 2026
0907112
basebackup: do not verify checksums on pages from before enabling
danielgustafsson Aug 18, 2026
c61c3ec
Minor test suite cleanup
danielgustafsson Aug 18, 2026
1d28812
Stabilize the FORCE drop test for online data checksums
danielgustafsson Aug 18, 2026
fe06b9b
Defend against null "SV *" pointers in plperl modules.
tglsfdc Aug 18, 2026
db0f6dd
Report single-page checksum failures in pg_stat_database
michaelpq Aug 19, 2026
4a710d6
Fix relcache reference leak when decoding TRUNCATE
michaelpq Aug 19, 2026
9d4505b
psql: Avoid returning oom_buffer from psql slash command scanner
MasaoFujii Aug 19, 2026
e793e51
psql: Avoid returning oom_buffer from psql slash option scanner
MasaoFujii Aug 19, 2026
e3ad751
psql: Fix psql slash option leaks
MasaoFujii Aug 19, 2026
b6b1f89
Message style fixes
petere Aug 19, 2026
ca86b45
Message wording fix
petere Aug 19, 2026
18a15b9
Don't free fast-path FK metadata from the inval callback
amitlan Aug 19, 2026
abca128
Give RI fast-path cached FmgrInfos their own memory context
amitlan Aug 19, 2026
9bb8e16
Tighten ACL check in repack_is_permitted_for_relation()
alvherre Aug 19, 2026
6ee9a8b
Fix GIN VACUUM posting tree root split bug.
petergeoghegan Aug 19, 2026
adf440c
Fix GIN multiple-VACUUM-scans pending list bug.
petergeoghegan Aug 19, 2026
c684d98
pg_locale.c, unicode_case.c: use size_t for iteration.
jeff-davis Aug 19, 2026
29f7881
GiST: Invalidate killed items consistently.
petergeoghegan Aug 19, 2026
2a2076d
Reject too many arguments in CREATE TRIGGER
michaelpq Aug 20, 2026
f3a52a2
Restore after-trigger firing context at subtransaction end
amitlan Aug 20, 2026
3861984
Fix postmaster failing to exit when startup crashes during crash restart
michaelpq Aug 20, 2026
28f9c5b
Unify error messages
petere Aug 20, 2026
d2a710c
Track RI fast-path FK-check batches per firing cycle
amitlan Aug 20, 2026
d85a259
Skip bogus find_composite_type_dependencies() call on sequences
hlinnaka Aug 20, 2026
5e9d23f
Ensure all pg_locale.h APIs work with collate_is_c.
jeff-davis Aug 20, 2026
3849ce5
hashtext: fix fragile code.
jeff-davis Aug 20, 2026
86ed135
test_aio: Fix broken error recovery assertions in 001_aio
michaelpq Aug 20, 2026
ca99016
Fix snapshot import xmin ProcArrayLock bug.
petergeoghegan Aug 20, 2026
c06bf14
Attempt to stabilize plan of self-join test in tidscan.sql
david-rowley Aug 21, 2026
2b0d50e
psql: Do not let invalid \getresults affect the next query
MasaoFujii Aug 21, 2026
c63b210
Fix typos in comments.
Aug 21, 2026
c7e34c3
Fix error code for null FOR PORTION OF target
petere Aug 21, 2026
051be72
Doc: fix typo
david-rowley Aug 22, 2026
268958a
Track RI fast-path FK-check batches per subtransaction
amitlan Aug 22, 2026
b13fd28
Fix GIN posting tree page deletion with incomplete splits.
petergeoghegan Aug 22, 2026
165aa50
Allow an aggregate's planner support function to be set via CREATE AG…
tglsfdc Aug 23, 2026
250942b
Fix untranslatable message that was pasted together at run time
petere Aug 24, 2026
3b984ab
Add C test function for pg_locale.h APIs.
jeff-davis Aug 24, 2026
c96cd80
pg_locale.c: add explanatory comments.
jeff-davis Aug 24, 2026
5ce1cf4
ltree/crc32.c: fix fragile code.
jeff-davis Aug 24, 2026
d6e4e22
Align random test function parameters in test_bitmapset
david-rowley Aug 24, 2026
d446ca2
Don't assume DISTINCT ON implies uniqueness when the tlist has SRFs
Aug 25, 2026
2c654c4
Fix incorrect cast in Assert
david-rowley Aug 25, 2026
77027b3
Further cleanup related to statistics import support in postgres_fdw.
Aug 25, 2026
31ad154
Fix crash on trying to expand a shared memory hash table
hlinnaka Aug 25, 2026
dc8628e
doc: Update REPACK-related table rewrite documentation
MasaoFujii Aug 26, 2026
4680f32
Skip relations dropped concurrently in GetSubscriptionRelations().
Aug 26, 2026
b259ece
Fix registering shmem callbacks in single-user mode
hlinnaka Aug 26, 2026
4f0af26
Close relations opened specifically for AFTER triggers
david-rowley Aug 26, 2026
4d9224a
Fix crash in subscription refresh on concurrent relation drop.
MasahikoSawada Aug 26, 2026
ef89c83
Export subxip[] for snapshots taken during recovery.
petergeoghegan Aug 26, 2026
073bd83
Pin two ctype-dependent test_regex_utf8 cases to pg_c_utf8
adunstan Aug 22, 2026
3c73b27
Don't choose an invalid index for REPLICA IDENTITY FULL lookups.
Aug 27, 2026
3e8bcc8
Revert support for ALTER TABLE ... MERGE/SPLIT PARTITION(S) commands
akorotkov Aug 26, 2026
58af213
Fix inferred property graph keys with INCLUDE columns
petere Aug 27, 2026
63f8e97
Fix pg_event_trigger_ddl_commands for GRANT ON PROPERTY GRAPH
petere Aug 27, 2026
ba12a20
Don't create a shell type for function returning an array
hlinnaka Aug 27, 2026
4c52914
Report specific SQLSTATEs for stats restore errors
MasaoFujii Aug 27, 2026
d225057
Stabilize 019_replslot_limit
MasaoFujii Aug 27, 2026
764d31b
Fix temporary WAL receiver slot handling on timeline switches
MasaoFujii Aug 27, 2026
400c810
Fix empty FOREIGN_JOIN sublist validation
robertmhaas Aug 27, 2026
e721ce4
pg_upgrade: Read nextMultiOffset as a 64-bit value.
MasahikoSawada Aug 27, 2026
3fcb716
Report next_multi_offset as bigint in pg_control_checkpoint().
MasahikoSawada Aug 27, 2026
7a74e5e
Fix incorrect multi-column RANGE partition pruning
david-rowley Aug 28, 2026
15ccc20
Propagate disabled_nodes to single-child Append paths
Aug 28, 2026
5523e4d
Make platform guards in two regression tests match meson builds
adunstan Aug 28, 2026
da8da39
doc PG 19 relnotes: move replication items to logical replicat.
bmomjian Aug 28, 2026
92d44b2
Fix backend state after a failed after-startup shmem request
hlinnaka Aug 28, 2026
9d888cd
Track which shmem areas have been fully initialized
hlinnaka Aug 28, 2026
0ab90a5
Perform join removal by editing the query's jointree.
tglsfdc Aug 28, 2026
7ddb9c4
Fix pg_stat_autovacuum_scores for TOAST tables.
nathan-bossart Aug 28, 2026
4af0528
Propagate rebalanced cost limit to parallel vacuum workers
danielgustafsson Aug 28, 2026
f23de46
Disallow ONLY in REPACK commands.
nathan-bossart Aug 29, 2026
50daffb
Harden spell.c against out-of-order FLAG lines in Hunspell files.
tglsfdc Aug 29, 2026
efc3db9
doc: Mark up "option" in the CHECKPOINT synopsis.
nathan-bossart Aug 30, 2026
59335b5
doc: Fix the data type named in the regdatabase entry.
nathan-bossart Aug 30, 2026
4186d71
doc: Drop stale note about extension LWLock names.
nathan-bossart Aug 31, 2026
3474867
doc: Fix link on pg_dsm_registry_allocations page.
nathan-bossart Aug 31, 2026
ca8d4bd
Fix comment in attribute_stats.c
michaelpq Aug 31, 2026
9efc2f9
Fix integer to_char() overflow with V format
MasaoFujii Sep 1, 2026
07df2b2
doc: reformat GRAPH_TABLE examples
MasaoFujii Sep 1, 2026
11eb68e
Remove batching from the RI fast-path FK check
amitlan Aug 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
15 changes: 15 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,21 @@
#
# $ git log --pretty=format:"%H # %cd%n# %s" $PGINDENTGITHASH -1 --date=iso

3d2f2eb1664e5c823b66a063d2de9a9787970d42 # 2026-08-15 23:16:15 +0900
# pgindent fix for commit 7b7c4a8dcc9

52d87b42d9bef6a2ca66572fc39e5c1b0f61f5dd # 2026-08-07 17:38:13 +0900
# Fix indentation issue introduced by commit 291a4bd2ca

b1aeda3ec939c2867e5c3eb4ee7e1bae4768503e # 2026-07-30 09:26:07 +0200
# pgindent fix for 4ee0ccfd

99e44c3181c779ae0f3539ba7f408661983fbf8e # 2026-06-29 15:27:44 -0400
# Run pgperltidy

3f815dd11374b54deb29228dc0040179864af828 # 2026-06-29 15:16:25 -0400
# Sync typedefs.list with the buildfarm.

bd57abbb1910e51e45761b59985745d094ae9e03 # 2026-06-04 10:15:37 -0500
# Re-pgindent nodeModifyTable.c after commit 993a7aa0e4.

Expand Down
15 changes: 8 additions & 7 deletions .github/workflows/pg-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -990,6 +990,11 @@ jobs:
shell: cmd
run: mkdir ${{env.PG_REGRESS_SOCK_DIR}}

- &windows_setup_debugger_step
name: Setup Windows debugger
shell: pwsh
run: src/tools/ci/gha_setup_windows_debugger.ps1

- name: Configure
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
Expand Down Expand Up @@ -1019,9 +1024,6 @@ jobs:
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
run: *meson_test_world_cmd

# TODO: We need to collect crashlogs but for them to be generated, we'd
# have to configure the JIT Debugger to do so. cdb.exe is installed on
# the runner so that is possible.
- *upload_logs_step


Expand Down Expand Up @@ -1116,14 +1118,16 @@ jobs:
shell: cmd
run: mkdir ${{env.PG_REGRESS_SOCK_DIR}}

- *windows_setup_debugger_step

- *ccache_restore_default_step
- *ccache_restore_branch_step

- name: Configure
run: |
meson setup \
${{env.MESON_COMMON_PG_CONFIG_ARGS}} \
-Ddebug=true -Doptimization=g -Db_pch=true \
-Db_pch=true \
${{env.MESON_COMMON_FEATURES}} \
${{env.MESON_FEATURES}} \
-DTAR=${{env.TAR}} \
Expand All @@ -1138,9 +1142,6 @@ jobs:
- name: Test world
run: *meson_test_world_cmd

# TODO: We want to include crashlogs, but they are not yet
# collected. cdb.exe is installed on the runner, so we can configure it
# appropriately.
- *upload_logs_step


Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ all:
all check install installdirs installcheck installcheck-parallel uninstall clean distclean maintainer-clean dist distcheck world check-world install-world installcheck-world:
@if [ ! -f GNUmakefile ] ; then \
echo "You need to run the 'configure' program first. Please see"; \
echo "<https://www.postgresql.org/docs/devel/installation.html>" ; \
echo "<https://www.postgresql.org/docs/19/installation.html>" ; \
false ; \
fi
@IFS=':' ; \
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ and functions. This distribution also contains C language bindings.
Copyright and license information can be found in the file COPYRIGHT.

General documentation about this version of PostgreSQL can be found at
<https://www.postgresql.org/docs/devel/>. In particular, information
<https://www.postgresql.org/docs/19/>. In particular, information
about building PostgreSQL from the source code can be found at
<https://www.postgresql.org/docs/devel/installation.html>.
<https://www.postgresql.org/docs/19/installation.html>.

The latest version of this software, and related software, may be
obtained at <https://www.postgresql.org/download/>. For more information
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 19beta1.
# Generated by GNU Autoconf 2.69 for PostgreSQL 19beta3.
#
# 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='19beta1'
PACKAGE_STRING='PostgreSQL 19beta1'
PACKAGE_VERSION='19beta3'
PACKAGE_STRING='PostgreSQL 19beta3'
PACKAGE_BUGREPORT='pgsql-bugs@lists.postgresql.org'
PACKAGE_URL='https://www.postgresql.org/'

Expand Down Expand Up @@ -1468,7 +1468,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 19beta1 to adapt to many kinds of systems.
\`configure' configures PostgreSQL 19beta3 to adapt to many kinds of systems.

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

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

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

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

Copyright (C) 2012 Free Software Foundation, Inc.
Expand Down Expand Up @@ -2477,7 +2477,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 19beta1, which was
It was created by PostgreSQL $as_me 19beta3, which was
generated by GNU Autoconf 2.69. Invocation command line was

$ $0 $@
Expand Down Expand Up @@ -20348,7 +20348,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 19beta1, which was
This file was extended by PostgreSQL $as_me 19beta3, which was
generated by GNU Autoconf 2.69. Invocation command line was

CONFIG_FILES = $CONFIG_FILES
Expand Down Expand Up @@ -20419,7 +20419,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 19beta1
PostgreSQL config.status 19beta3
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], [19beta1], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/])
AC_INIT([PostgreSQL], [19beta3], [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
17 changes: 15 additions & 2 deletions contrib/amcheck/expected/check_btree.out
Original file line number Diff line number Diff line change
Expand Up @@ -186,27 +186,40 @@ SELECT bt_index_check('toasty', true);
(1 row)

--
-- Check that index expressions and predicates are run as the table's owner
-- Check that index expressions and predicates are run as the table's owner,
-- with empty search_path
--
TRUNCATE bttest_a;
INSERT INTO bttest_a SELECT * FROM generate_series(1, 1000);
ALTER TABLE bttest_a OWNER TO regress_bttest_role;
-- A dummy index function checking current_user
CREATE FUNCTION ifun(int8) RETURNS int8 AS $$
BEGIN
ASSERT current_user = 'regress_bttest_role',
ASSERT current_setting('search_path') = 'pg_catalog, pg_temp',
format('ifun(%s) called with current_schemas %s, search_path %s',
$1, current_schemas(true), current_setting('search_path'));
ASSERT "current_user"() = 'regress_bttest_role',
format('ifun(%s) called by %s', $1, current_user);
RETURN $1;
END;
$$ LANGUAGE plpgsql IMMUTABLE;
CREATE INDEX bttest_a_expr_idx ON bttest_a ((ifun(id) + ifun(0)))
WHERE ifun(id + 10) > ifun(10);
BEGIN;
SET LOCAL check_function_bodies = off;
CREATE SCHEMA preempt;
GRANT USAGE ON SCHEMA preempt TO regress_bttest_role;
SET LOCAL search_path = preempt, pg_catalog, public;
CREATE FUNCTION "current_user"() RETURNS name AS $$
broken
$$ LANGUAGE sql STABLE PARALLEL SAFE STRICT;
SELECT bt_index_check('bttest_a_expr_idx', true);
bt_index_check
----------------

(1 row)

ROLLBACK;
-- UNIQUE constraint check
SELECT bt_index_check('bttest_a_idx', heapallindexed => true, checkunique => true);
bt_index_check
Expand Down
18 changes: 15 additions & 3 deletions contrib/amcheck/sql/check_btree.sql
Original file line number Diff line number Diff line change
Expand Up @@ -123,24 +123,36 @@ INSERT INTO toast_bug SELECT repeat('a', 2200);
SELECT bt_index_check('toasty', true);

--
-- Check that index expressions and predicates are run as the table's owner
-- Check that index expressions and predicates are run as the table's owner,
-- with empty search_path
--
TRUNCATE bttest_a;
INSERT INTO bttest_a SELECT * FROM generate_series(1, 1000);
ALTER TABLE bttest_a OWNER TO regress_bttest_role;
-- A dummy index function checking current_user
CREATE FUNCTION ifun(int8) RETURNS int8 AS $$
BEGIN
ASSERT current_user = 'regress_bttest_role',
ASSERT current_setting('search_path') = 'pg_catalog, pg_temp',
format('ifun(%s) called with current_schemas %s, search_path %s',
$1, current_schemas(true), current_setting('search_path'));
ASSERT "current_user"() = 'regress_bttest_role',
format('ifun(%s) called by %s', $1, current_user);
RETURN $1;
END;
$$ LANGUAGE plpgsql IMMUTABLE;

CREATE INDEX bttest_a_expr_idx ON bttest_a ((ifun(id) + ifun(0)))
WHERE ifun(id + 10) > ifun(10);

BEGIN;
SET LOCAL check_function_bodies = off;
CREATE SCHEMA preempt;
GRANT USAGE ON SCHEMA preempt TO regress_bttest_role;
SET LOCAL search_path = preempt, pg_catalog, public;
CREATE FUNCTION "current_user"() RETURNS name AS $$
broken
$$ LANGUAGE sql STABLE PARALLEL SAFE STRICT;
SELECT bt_index_check('bttest_a_expr_idx', true);
ROLLBACK;

-- UNIQUE constraint check
SELECT bt_index_check('bttest_a_idx', heapallindexed => true, checkunique => true);
Expand Down
1 change: 1 addition & 0 deletions contrib/amcheck/verify_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ amcheck_lock_relation_and_check(Oid indrelid,
SetUserIdAndSecContext(heaprel->rd_rel->relowner,
save_sec_context | SECURITY_RESTRICTED_OPERATION);
save_nestlevel = NewGUCNestLevel();
RestrictSearchPath();
}
else
{
Expand Down
3 changes: 3 additions & 0 deletions contrib/amcheck/verify_gin.c
Original file line number Diff line number Diff line change
Expand Up @@ -637,6 +637,9 @@ gin_check_parent_keys_consistency(Relation rel,
pfree(ipd);
}

if (prev_tuple)
pfree(prev_tuple);

prev_tuple = CopyIndexTuple(idxtuple);
prev_attnum = current_attnum;
}
Expand Down
2 changes: 1 addition & 1 deletion contrib/btree_gist/btree_bit.c
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ gbt_bit_ssup_cmp(Datum x, Datum y, SortSupport ssup)
Datum result;

/* for leaf items we expect lower == upper, so only compare lower */
result = DirectFunctionCall2(byteacmp,
result = DirectFunctionCall2(bitcmp,
PointerGetDatum(arg1.lower),
PointerGetDatum(arg2.lower));

Expand Down
59 changes: 42 additions & 17 deletions contrib/btree_gist/btree_float4.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,53 +26,70 @@ PG_FUNCTION_INFO_V1(gbt_float4_penalty);
PG_FUNCTION_INFO_V1(gbt_float4_same);
PG_FUNCTION_INFO_V1(gbt_float4_sortsupport);

/*
* Use the NaN-aware comparators from utils/float.h, so that our results
* will agree with standard btree indexes. Note that penalty and distance
* functions below must also cope with NaNs, in particular with the policy
* that all NaNs are equal.
*/
static bool
gbt_float4gt(const void *a, const void *b, FmgrInfo *flinfo)
{
return (*((const float4 *) a) > *((const float4 *) b));
return float4_gt(*((const float4 *) a), *((const float4 *) b));
}
static bool
gbt_float4ge(const void *a, const void *b, FmgrInfo *flinfo)
{
return (*((const float4 *) a) >= *((const float4 *) b));
return float4_ge(*((const float4 *) a), *((const float4 *) b));
}
static bool
gbt_float4eq(const void *a, const void *b, FmgrInfo *flinfo)
{
return (*((const float4 *) a) == *((const float4 *) b));
return float4_eq(*((const float4 *) a), *((const float4 *) b));
}
static bool
gbt_float4le(const void *a, const void *b, FmgrInfo *flinfo)
{
return (*((const float4 *) a) <= *((const float4 *) b));
return float4_le(*((const float4 *) a), *((const float4 *) b));
}
static bool
gbt_float4lt(const void *a, const void *b, FmgrInfo *flinfo)
{
return (*((const float4 *) a) < *((const float4 *) b));
return float4_lt(*((const float4 *) a), *((const float4 *) b));
}

static int
gbt_float4key_cmp(const void *a, const void *b, FmgrInfo *flinfo)
{
float4KEY *ia = (float4KEY *) (((const Nsrt *) a)->t);
float4KEY *ib = (float4KEY *) (((const Nsrt *) b)->t);
int res;

if (ia->lower == ib->lower)
{
if (ia->upper == ib->upper)
return 0;

return (ia->upper > ib->upper) ? 1 : -1;
}

return (ia->lower > ib->lower) ? 1 : -1;
res = float4_cmp_internal(ia->lower, ib->lower);
if (res != 0)
return res;
return float4_cmp_internal(ia->upper, ib->upper);
}

static float8
gbt_float4_dist(const void *a, const void *b, FmgrInfo *flinfo)
{
return GET_FLOAT_DISTANCE(float4, a, b);
float8 arg1 = *(const float4 *) a;
float8 arg2 = *(const float4 *) b;
float8 r;

r = arg1 - arg2;
/* needn't consider isinf case here, must be due to input infinity */
if (unlikely(isnan(r)))
{
if (isnan(arg1) && isnan(arg2))
r = 0.0; /* treat NaNs as equal */
else if (isnan(arg1) || isnan(arg2))
r = get_float8_infinity(); /* max dist for NaN vs non-NaN */
else
r = 0.0; /* must be Inf - Inf case */
}
return fabs(r);
}


Expand Down Expand Up @@ -102,7 +119,15 @@ float4_dist(PG_FUNCTION_ARGS)
r = a - b;
if (unlikely(isinf(r)) && !isinf(a) && !isinf(b))
float_overflow_error();

if (unlikely(isnan(r)))
{
if (isnan(a) && isnan(b))
r = 0.0; /* treat NaNs as equal */
else if (isnan(a) || isnan(b))
r = get_float4_infinity(); /* max dist for NaN vs non-NaN */
else
r = 0.0; /* must be Inf - Inf case */
}
PG_RETURN_FLOAT4(fabsf(r));
}

Expand Down Expand Up @@ -186,7 +211,7 @@ gbt_float4_penalty(PG_FUNCTION_ARGS)
float4KEY *newentry = (float4KEY *) DatumGetPointer(((GISTENTRY *) PG_GETARG_POINTER(1))->key);
float *result = (float *) PG_GETARG_POINTER(2);

penalty_num(result, origentry->lower, origentry->upper, newentry->lower, newentry->upper);
float_penalty_num(result, origentry->lower, origentry->upper, newentry->lower, newentry->upper);

PG_RETURN_POINTER(result);
}
Expand Down
Loading
Loading