pgsql: Fix obsolete references to postgres.h in comments.

2025-09-19 Thread Nathan Bossart
Fix obsolete references to postgres.h in comments. Oversights in commits d08741eab5 and d952373a98. Reviewed-by: Chao Li Discussion: https://postgr.es/m/aMxbfSJ2wLWd32x-%40nathan Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/18cdf5932a279a2c035d44460e1e0cbb65947

pgsql: Add a test harness for the LWLock tranche code.

2025-09-18 Thread Nathan Bossart
Add a test harness for the LWLock tranche code. This code is heavily used and already has decent test coverage, but it lacks a dedicated test suite. This commit changes that. Author: Sami Imseih Co-authored-by: Nathan Bossart Reviewed-by: Bertrand Drouvot Discussion: https://postgr.es/m

Re: pgsql: Move named LWLock tranche requests to shared memory.

2025-09-18 Thread Nathan Bossart
On Thu, Sep 18, 2025 at 08:49:20AM +0900, Michael Paquier wrote: > Anyway, your comment additions in v3 look fine from here. Thanks for reviewing. Committed. -- nathan

pgsql: Fix re-initialization of LWLock-related shared memory.

2025-09-18 Thread Nathan Bossart
Fix re-initialization of LWLock-related shared memory. When shared memory is re-initialized after a crash, the named LWLock tranche request array that was copied to shared memory will no longer be accessible. To fix, save the pointer to the original array in postmaster's local memory, and switch

Re: pgsql: Move named LWLock tranche requests to shared memory.

2025-09-17 Thread Nathan Bossart
s stuff is rather precarious, and I'm a bit surprised there haven't been more problems in this area. -- nathan >From 1fbbc7df0fb2979eaaecf11d0f7d8203e527ff0b Mon Sep 17 00:00:00 2001 From: Nathan Bossart Date: Wed, 17 Sep 2025 09:24:45 -0500 Subject: [PATCH v3 1/1] Fix re-initialization

Re: pgsql: Move named LWLock tranche requests to shared memory.

2025-09-16 Thread Nathan Bossart
On Tue, Sep 16, 2025 at 10:27:34PM -0500, Nathan Bossart wrote: > It looks like the postmaster is trying to access the request array after > re-initializing shared memory, which of course fails. So, we need to keep > the request array in postmaster's local memory, too. Attac

Re: pgsql: Move named LWLock tranche requests to shared memory.

2025-09-16 Thread Nathan Bossart
o, we need to keep the request array in postmaster's local memory, too. Attached is a quick attempt at a fix. -- nathan >From ddc39754763edc82a9eb76164559addbcbced3c4 Mon Sep 17 00:00:00 2001 From: Nathan Bossart Date: Tue, 16 Sep 2025 22:11:47 -0500 Subject: [PATCH v1 1/1]

pgsql: Add commit 17a5ca58eb to .git-blame-ignore-revs.

2025-09-13 Thread Nathan Bossart
Add commit 17a5ca58eb to .git-blame-ignore-revs. Branch -- REL_18_STABLE Details --- https://git.postgresql.org/pg/commitdiff/01bea6029df3f03902cc7795459fd8678cc51625 Modified Files -- .git-blame-ignore-revs | 3 +++ 1 file changed, 3 insertions(+)

pgsql: Add commit 7e9c216b52 to .git-blame-ignore-revs.

2025-09-13 Thread Nathan Bossart
Add commit 7e9c216b52 to .git-blame-ignore-revs. Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/95bdc672282722fb52656a81fefe18296015708e Modified Files -- .git-blame-ignore-revs | 3 +++ 1 file changed, 3 insertions(+)

pgsql: Re-pgindent nbtpreprocesskeys.c after commit 796962922e.

2025-09-13 Thread Nathan Bossart
Re-pgindent nbtpreprocesskeys.c after commit 796962922e. Backpatch-through: 18 Branch -- REL_18_STABLE Details --- https://git.postgresql.org/pg/commitdiff/17a5ca58eb119a33e81e57b72618236538932167 Modified Files -- src/backend/access/nbtree/nbtpreprocesskeys.c | 2 +- 1 file

pgsql: Re-pgindent nbtpreprocesskeys.c after commit 796962922e.

2025-09-13 Thread Nathan Bossart
Re-pgindent nbtpreprocesskeys.c after commit 796962922e. Backpatch-through: 18 Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/7e9c216b5236cc61f677787b35e8c8f28f5f6959 Modified Files -- src/backend/access/nbtree/nbtpreprocesskeys.c | 2 +- 1 file changed

pgsql: meson: Build numeric.c with -ftree-vectorize.

2025-09-11 Thread Nathan Bossart
meson: Build numeric.c with -ftree-vectorize. autoconf builds have compiled this file with -ftree-vectorize since commit 8870917623, but meson builds seem to have missed the memo. Reviewed-by: Jeff Davis Discussion: https://postgr.es/m/aL85CeasM51-0D1h%40nathan Backpatch-through: 16 Branch

pgsql: Move named LWLock tranche requests to shared memory.

2025-09-11 Thread Nathan Bossart
Move named LWLock tranche requests to shared memory. In EXEC_BACKEND builds, GetNamedLWLockTranche() can segfault when called outside of the postmaster process, as it might access NamedLWLockTrancheRequestArray, which won't be initialized. Given the lack of reports, this is apparently unusual, pr

pgsql: meson: Build numeric.c with -ftree-vectorize.

2025-09-10 Thread Nathan Bossart
meson: Build numeric.c with -ftree-vectorize. autoconf builds have compiled this file with -ftree-vectorize since commit 8870917623, but meson builds seem to have missed the memo. Reviewed-by: Jeff Davis Discussion: https://postgr.es/m/aL85CeasM51-0D1h%40nathan Backpatch-through: 16 Branch

pgsql: meson: Build numeric.c with -ftree-vectorize.

2025-09-10 Thread Nathan Bossart
meson: Build numeric.c with -ftree-vectorize. autoconf builds have compiled this file with -ftree-vectorize since commit 8870917623, but meson builds seem to have missed the memo. Reviewed-by: Jeff Davis Discussion: https://postgr.es/m/aL85CeasM51-0D1h%40nathan Backpatch-through: 16 Branch

pgsql: meson: Build numeric.c with -ftree-vectorize.

2025-09-10 Thread Nathan Bossart
meson: Build numeric.c with -ftree-vectorize. autoconf builds have compiled this file with -ftree-vectorize since commit 8870917623, but meson builds seem to have missed the memo. Reviewed-by: Jeff Davis Discussion: https://postgr.es/m/aL85CeasM51-0D1h%40nathan Backpatch-through: 16 Branch

pgsql: Fix documentation for shmem_startup_hook.

2025-09-09 Thread Nathan Bossart
Fix documentation for shmem_startup_hook. This section claims that each backend executes the shmem_startup_hook shortly after attaching to shared memory, which is true for EXEC_BACKEND builds, but not for others. This commit adds this important detail. Oversight in commit 964152c476. Reported-b

pgsql: Fix documentation for shmem_startup_hook.

2025-09-09 Thread Nathan Bossart
Fix documentation for shmem_startup_hook. This section claims that each backend executes the shmem_startup_hook shortly after attaching to shared memory, which is true for EXEC_BACKEND builds, but not for others. This commit adds this important detail. Oversight in commit 964152c476. Reported-b

pgsql: Fix documentation for shmem_startup_hook.

2025-09-09 Thread Nathan Bossart
Fix documentation for shmem_startup_hook. This section claims that each backend executes the shmem_startup_hook shortly after attaching to shared memory, which is true for EXEC_BACKEND builds, but not for others. This commit adds this important detail. Oversight in commit 964152c476. Reported-b

pgsql: test_slru: Fix LWLock tranche allocation in EXEC_BACKEND builds.

2025-09-09 Thread Nathan Bossart
test_slru: Fix LWLock tranche allocation in EXEC_BACKEND builds. Currently, test_slru's shmem_startup_hook unconditionally generates new LWLock tranche IDs. This is fine on non-EXEC_BACKEND builds, where only the postmaster executes this hook, but on EXEC_BACKEND builds, every backend executes it

pgsql: pg_upgrade: Transfer pg_largeobject_metadata's files when possib

2025-09-08 Thread Nathan Bossart
pg_upgrade: Transfer pg_largeobject_metadata's files when possible. Commit 161a3e8b68 taught pg_upgrade to use COPY for large object metadata for upgrades from v12 and newer, which is much faster to restore than the proper large object commands. For upgrades from v16 and newer, we can take this a

pgsql: Move dynamically-allocated LWLock tranche names to shared memory

2025-09-07 Thread Nathan Bossart
Move dynamically-allocated LWLock tranche names to shared memory. There are two ways for shared libraries to allocate their own LWLock tranches. One way is to call RequestNamedLWLockTranche() in a shmem_request_hook, which requires the library to be loaded via shared_preload_libraries. The other

pgsql: Revert recent change to RequestNamedLWLockTranche().

2025-09-04 Thread Nathan Bossart
Revert recent change to RequestNamedLWLockTranche(). Commit 38b602b028 modified this function to allocate enough space for MAX_NAMED_TRANCHES (256) requests, which is likely far more than most clusters need. This commit reverts that change so that it first allocates enough space for only 16 reque

pgsql: Adjust commentary for WaitEventLWLock in wait_event_names.txt.

2025-09-04 Thread Nathan Bossart
Adjust commentary for WaitEventLWLock in wait_event_names.txt. In addition to changing a couple of references for clarity, this commit combines the two similar comments. Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/1129d3e4c8883f25642d1f44750b4d36e29ec006 Modifi

pgsql: Change ReplicationSlotPersistentData's "synced" member to a bool

2025-09-02 Thread Nathan Bossart
Change ReplicationSlotPersistentData's "synced" member to a bool. Note that this doesn't require bumping SLOT_VERSION because we require sizeof(bool) == 1, thanks to commit 97525bc5c8. Overight in commit ddd5f4f54a. Discussion: Ranier Vilela Branch -- master Details --- https://git.po

pgsql: Prepare DSM registry for upcoming changes to LWLock tranche name

2025-08-29 Thread Nathan Bossart
Prepare DSM registry for upcoming changes to LWLock tranche names. A proposed patch would place a limit of NAMEDATALEN-1 (i.e., 63) bytes on the names of dynamically-allocated LWLock tranches, but GetNamedDSA() and GetNamedDSHash() may register tranches with longer names. This commit lowers the m

pgsql: Make LWLockCounter a global variable.

2025-08-29 Thread Nathan Bossart
Make LWLockCounter a global variable. Using the LWLockCounter requires first calculating its address in shared memory like this: LWLockCounter = (int *) ((char *) MainLWLockArray - sizeof(int)); Commit 82e861fbe1 started this trend in order to fix EXEC_BACKEND builds, but it could also b

pgsql: Remove unused parameter from ProcessSlotSyncInterrupts().

2025-08-29 Thread Nathan Bossart
Remove unused parameter from ProcessSlotSyncInterrupts(). Oversight in commit 93db6cbda0. Author: ChangAo Chen Discussion: https://postgr.es/m/tencent_7B42BBE8D0A5C28DDAB91436192CBCCB8307%40qq.com Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/6fbd7b93c615f34df6

pgsql: Document privileges required for vacuumdb --missing-stats-only.

2025-08-26 Thread Nathan Bossart
Document privileges required for vacuumdb --missing-stats-only. When vacuumdb's --missing-stats-only option is used, the catalog query for retrieving the list of relations to process must read pg_statistic and pg_statistic_ext_data. However, those catalogs can only be read by superusers by defaul

pgsql: Document privileges required for vacuumdb --missing-stats-only.

2025-08-26 Thread Nathan Bossart
Document privileges required for vacuumdb --missing-stats-only. When vacuumdb's --missing-stats-only option is used, the catalog query for retrieving the list of relations to process must read pg_statistic and pg_statistic_ext_data. However, those catalogs can only be read by superusers by defaul

pgsql: Use PqMsg_* macros in applyparallelworker.c.

2025-08-25 Thread Nathan Bossart
Use PqMsg_* macros in applyparallelworker.c. Oversight in commit f4b54e1ed9. Author: Ranier Vilela Discussion: https://postgr.es/m/CAEudQAobFsHaLMypA6C96-9YExvF4AcU1xNPoPuNYRVm3mq4dg%40mail.gmail.com Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/989b2e4d5c95f6b

pgsql: Use PqMsg_* macros in fe-protocol3.c.

2025-08-25 Thread Nathan Bossart
Use PqMsg_* macros in fe-protocol3.c. Oversight in commit f4b54e1ed9. Reviewed-by: Jacob Champion Reviewed-by: Fabrízio de Royes Mello Discussion: https://postgr.es/m/aKx5vEbbP03JNgtp%40nathan Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/3ef2b863a376af35e8d5f2

pgsql: vacuumdb: Fix --missing-stats-only with virtual generated column

2025-08-22 Thread Nathan Bossart
vacuumdb: Fix --missing-stats-only with virtual generated columns. Statistics aren't created for virtual generated columns, so "vacuumdb --missing-stats-only" always chooses to analyze tables that have them. To fix, modify vacuumdb's query for retrieving relations that are missing statistics to e

pgsql: vacuumdb: Fix --missing-stats-only with virtual generated column

2025-08-22 Thread Nathan Bossart
vacuumdb: Fix --missing-stats-only with virtual generated columns. Statistics aren't created for virtual generated columns, so "vacuumdb --missing-stats-only" always chooses to analyze tables that have them. To fix, modify vacuumdb's query for retrieving relations that are missing statistics to e

pgsql: Fix comment for MAX_SIMUL_LWLOCKS.

2025-08-19 Thread Nathan Bossart
Fix comment for MAX_SIMUL_LWLOCKS. This comment mentions that pg_buffercache locks all buffer partitions simultaneously, but it hasn't done so since v10. Oversight in commit 6e654546fb. Reviewed-by: Andres Freund Discussion: https://postgr.es/m/aKTuAHVEuYCUmmIy%40nathan Branch -- master D

pgsql: Fix misspelling of "tranche" in dsa.h.

2025-08-19 Thread Nathan Bossart
Fix misspelling of "tranche" in dsa.h. Oversight in commit bb952c8c8b. Discussion: https://postgr.es/m/aKOWzsCPgrsoEG1Q%40nathan Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/c6abf24ebfecf0ef4f7d21750e198959b8b61586 Modified Files -- src/include/util

pgsql: Fix MSVC pg_upgrade test.

2025-08-14 Thread Nathan Bossart
Fix MSVC pg_upgrade test. In the back-branch versions of commit 71ea0d6795, I missed updating this test to use --restrict-key so that the generated dump output is comparable. Per buildfarm member hamerkop. Reviewed-by: Tom Lane Security: CVE-2025-8714 Backpatch-through: 13-14 Branch -- REL

pgsql: Fix MSVC pg_upgrade test.

2025-08-14 Thread Nathan Bossart
Fix MSVC pg_upgrade test. In the back-branch versions of commit 71ea0d6795, I missed updating this test to use --restrict-key so that the generated dump output is comparable. Per buildfarm member hamerkop. Reviewed-by: Tom Lane Security: CVE-2025-8714 Backpatch-through: 13-14 Branch -- REL

pgsql: Restrict psql meta-commands in plain-text dumps.

2025-08-14 Thread Nathan Bossart
Restrict psql meta-commands in plain-text dumps. A malicious server could inject psql meta-commands into plain-text dump output (i.e., scripts created with pg_dump --format=plain, pg_dumpall, or pg_restore --file) that are run at restore time on the machine running psql. To fix, introduce a new "

pgsql: Restrict psql meta-commands in plain-text dumps.

2025-08-14 Thread Nathan Bossart
Restrict psql meta-commands in plain-text dumps. A malicious server could inject psql meta-commands into plain-text dump output (i.e., scripts created with pg_dump --format=plain, pg_dumpall, or pg_restore --file) that are run at restore time on the machine running psql. To fix, introduce a new "

pgsql: Restrict psql meta-commands in plain-text dumps.

2025-08-14 Thread Nathan Bossart
Restrict psql meta-commands in plain-text dumps. A malicious server could inject psql meta-commands into plain-text dump output (i.e., scripts created with pg_dump --format=plain, pg_dumpall, or pg_restore --file) that are run at restore time on the machine running psql. To fix, introduce a new "

pgsql: Restrict psql meta-commands in plain-text dumps.

2025-08-14 Thread Nathan Bossart
Restrict psql meta-commands in plain-text dumps. A malicious server could inject psql meta-commands into plain-text dump output (i.e., scripts created with pg_dump --format=plain, pg_dumpall, or pg_restore --file) that are run at restore time on the machine running psql. To fix, introduce a new "

pgsql: Restrict psql meta-commands in plain-text dumps.

2025-08-14 Thread Nathan Bossart
Restrict psql meta-commands in plain-text dumps. A malicious server could inject psql meta-commands into plain-text dump output (i.e., scripts created with pg_dump --format=plain, pg_dumpall, or pg_restore --file) that are run at restore time on the machine running psql. To fix, introduce a new "

pgsql: Restrict psql meta-commands in plain-text dumps.

2025-08-14 Thread Nathan Bossart
Restrict psql meta-commands in plain-text dumps. A malicious server could inject psql meta-commands into plain-text dump output (i.e., scripts created with pg_dump --format=plain, pg_dumpall, or pg_restore --file) that are run at restore time on the machine running psql. To fix, introduce a new "

pgsql: Restrict psql meta-commands in plain-text dumps.

2025-08-14 Thread Nathan Bossart
Restrict psql meta-commands in plain-text dumps. A malicious server could inject psql meta-commands into plain-text dump output (i.e., scripts created with pg_dump --format=plain, pg_dumpall, or pg_restore --file) that are run at restore time on the machine running psql. To fix, introduce a new "

pgsql: Expand usage of macros for protocol characters.

2025-08-06 Thread Nathan Bossart
Expand usage of macros for protocol characters. This commit makes use of the existing PqMsg_* macros in more places and adds new PqReplMsg_* and PqBackupMsg_* macros for use in special replication and backup messages, respectively. Author: Dave Cramer Co-authored-by: Fabrízio de Royes Mello Rev

pgsql: Rename transformRelOptions()'s "namspace" parameter to "nameSpac

2025-08-06 Thread Nathan Bossart
Rename transformRelOptions()'s "namspace" parameter to "nameSpace". The name "namspace" looks like a typo, but it was presumably meant to avoid using the "namespace" C++ keyword. This commit renames the parameter to "nameSpace" to prevent future confusion while still avoiding the keyword. Review

pgsql: Allow resetting unknown custom GUCs with reserved prefixes.

2025-08-01 Thread Nathan Bossart
Allow resetting unknown custom GUCs with reserved prefixes. Currently, ALTER DATABASE/ROLE/SYSTEM RESET [ALL] with an unknown custom GUC with a prefix reserved by MarkGUCPrefixReserved() errors (unless a superuser runs a RESET ALL variant). This is problematic for cases such as an extension libra

pgsql: Allow resetting unknown custom GUCs with reserved prefixes.

2025-08-01 Thread Nathan Bossart
Allow resetting unknown custom GUCs with reserved prefixes. Currently, ALTER DATABASE/ROLE/SYSTEM RESET [ALL] with an unknown custom GUC with a prefix reserved by MarkGUCPrefixReserved() errors (unless a superuser runs a RESET ALL variant). This is problematic for cases such as an extension libra

pgsql: Allow resetting unknown custom GUCs with reserved prefixes.

2025-08-01 Thread Nathan Bossart
Allow resetting unknown custom GUCs with reserved prefixes. Currently, ALTER DATABASE/ROLE/SYSTEM RESET [ALL] with an unknown custom GUC with a prefix reserved by MarkGUCPrefixReserved() errors (unless a superuser runs a RESET ALL variant). This is problematic for cases such as an extension libra

pgsql: Allow resetting unknown custom GUCs with reserved prefixes.

2025-08-01 Thread Nathan Bossart
Allow resetting unknown custom GUCs with reserved prefixes. Currently, ALTER DATABASE/ROLE/SYSTEM RESET [ALL] with an unknown custom GUC with a prefix reserved by MarkGUCPrefixReserved() errors (unless a superuser runs a RESET ALL variant). This is problematic for cases such as an extension libra

pgsql: Allow resetting unknown custom GUCs with reserved prefixes.

2025-08-01 Thread Nathan Bossart
Allow resetting unknown custom GUCs with reserved prefixes. Currently, ALTER DATABASE/ROLE/SYSTEM RESET [ALL] with an unknown custom GUC with a prefix reserved by MarkGUCPrefixReserved() errors (unless a superuser runs a RESET ALL variant). This is problematic for cases such as an extension libra

pgsql: doc: Adjust documentation for vacuumdb --missing-stats-only.

2025-07-30 Thread Nathan Bossart
doc: Adjust documentation for vacuumdb --missing-stats-only. The sentence in question gave readers the impression that vacuumdb removes statistics for a period of time while analyzing, but it's actually meant to convey that --analyze-in-stages temporarily replaces existing statistics with ones gen

pgsql: doc: Adjust documentation for vacuumdb --missing-stats-only.

2025-07-30 Thread Nathan Bossart
doc: Adjust documentation for vacuumdb --missing-stats-only. The sentence in question gave readers the impression that vacuumdb removes statistics for a period of time while analyzing, but it's actually meant to convey that --analyze-in-stages temporarily replaces existing statistics with ones gen

pgsql: Teach pg_upgrade to handle in-place tablespaces.

2025-07-30 Thread Nathan Bossart
Teach pg_upgrade to handle in-place tablespaces. Presently, pg_upgrade assumes that all non-default tablespaces don't move to different directories during upgrade. Unfortunately, this isn't true for in-place tablespaces, which move to the new cluster's pg_tblspc directory. This commit teaches pg

pgsql: Add commit 1d1612aec7 to .git-blame-ignore-revs.

2025-07-29 Thread Nathan Bossart
Add commit 1d1612aec7 to .git-blame-ignore-revs. Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/0f3a26feddae7ae403c90742095ff4626d7e5617 Modified Files -- .git-blame-ignore-revs | 3 +++ 1 file changed, 3 insertions(+)

pgsql: Fix return value of visibilitymap_get_status().

2025-07-24 Thread Nathan Bossart
Fix return value of visibilitymap_get_status(). This function is declared as returning a uint8, but it returns a bool in one code path. To fix, return (uint8) 0 instead of false there. This should behave exactly the same as before, but it might prevent future compiler complaints. Oversight in c

pgsql: Cross-check lists of built-in LWLock tranches.

2025-07-23 Thread Nathan Bossart
Cross-check lists of built-in LWLock tranches. lwlock.c, lwlock.h, and wait_event_names.txt each contain a list of built-in LWLock tranches. It is easy to miss one or the other when adding or removing tranches, and discrepancies have adverse effects (e.g., breaking JOINs between pg_stat_activity

pgsql: Use PqMsg_* macros in walsender.c

2025-07-23 Thread Nathan Bossart
Use PqMsg_* macros in walsender.c Oversights in commits f4b54e1ed9, dc21234005, and 228c370868. Author: Dave Cramer Discussion: https://postgr.es/m/CADK3HH%2BowWVdnbmWH4NHG8%3D%2BkXA_wjsyEVLoY719iJnb%3D%2BtT6A%40mail.gmail.com Branch -- master Details --- https://git.postgresql.org/pg

pgsql: Remove unused variable in generate-lwlocknames.pl.

2025-07-18 Thread Nathan Bossart
Remove unused variable in generate-lwlocknames.pl. Oversight in commit da952b415f. Author: Bertrand Drouvot Discussion: https://postgr.es/m/aHpOgwuFQfcFMZ/B%40ip-10-97-1-34.eu-west-3.compute.internal Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/84409ed640568d8

pgsql: pg_upgrade: Use COPY for large object metadata.

2025-07-18 Thread Nathan Bossart
pg_upgrade: Use COPY for large object metadata. Presently, pg_dump generates commands like SELECT pg_catalog.lo_create('5432'); ALTER LARGE OBJECT 5432 OWNER TO alice; GRANT SELECT ON LARGE OBJECT 5432 TO bob; for each large object. This is particularly slow at restore time, especia

pgsql: Add a test harness for the binary heap code.

2025-07-17 Thread Nathan Bossart
Add a test harness for the binary heap code. binaryheap is heavily used and already has decent test coverage, but it lacks dedicated tests for its correctness. This commit changes that. Author: Aleksander Alekseev Discussion: https://postgr.es/m/CAJ7c6TMwp%2Bmb8MMoi%3DSMVMso2hYecoVu2Pwf2EOkesq

pgsql: doc: Add note about how to use pg_overexplain.

2025-07-17 Thread Nathan Bossart
doc: Add note about how to use pg_overexplain. This commit adds a note to the pg_overexplain page that describes how to use it (LOAD, session_preload_libraries, or shared_preload_libraries). The new text is mostly lifted from the auto_explain page. We should probably consider centralizing this i

pgsql: doc: Add note about how to use pg_overexplain.

2025-07-17 Thread Nathan Bossart
doc: Add note about how to use pg_overexplain. This commit adds a note to the pg_overexplain page that describes how to use it (LOAD, session_preload_libraries, or shared_preload_libraries). The new text is mostly lifted from the auto_explain page. We should probably consider centralizing this i

pgsql: psql: Fix note on project naming in output of \copyright.

2025-07-16 Thread Nathan Bossart
psql: Fix note on project naming in output of \copyright. This adjusts the wording to match the changes in commits 5987553fde, a233a603ba, and pgweb commit 2d764dbc08. Reviewed-by: Tom Lane Reviewed-by: Daniel Gustafsson Discussion: https://postgr.es/m/aHVo791guQR6uqwT%40nathan Backpatch-throug

pgsql: psql: Fix note on project naming in output of \copyright.

2025-07-16 Thread Nathan Bossart
psql: Fix note on project naming in output of \copyright. This adjusts the wording to match the changes in commits 5987553fde, a233a603ba, and pgweb commit 2d764dbc08. Reviewed-by: Tom Lane Reviewed-by: Daniel Gustafsson Discussion: https://postgr.es/m/aHVo791guQR6uqwT%40nathan Backpatch-throug

pgsql: psql: Fix note on project naming in output of \copyright.

2025-07-16 Thread Nathan Bossart
psql: Fix note on project naming in output of \copyright. This adjusts the wording to match the changes in commits 5987553fde, a233a603ba, and pgweb commit 2d764dbc08. Reviewed-by: Tom Lane Reviewed-by: Daniel Gustafsson Discussion: https://postgr.es/m/aHVo791guQR6uqwT%40nathan Backpatch-throug

pgsql: psql: Fix note on project naming in output of \copyright.

2025-07-16 Thread Nathan Bossart
psql: Fix note on project naming in output of \copyright. This adjusts the wording to match the changes in commits 5987553fde, a233a603ba, and pgweb commit 2d764dbc08. Reviewed-by: Tom Lane Reviewed-by: Daniel Gustafsson Discussion: https://postgr.es/m/aHVo791guQR6uqwT%40nathan Backpatch-throug

pgsql: psql: Fix note on project naming in output of \copyright.

2025-07-16 Thread Nathan Bossart
psql: Fix note on project naming in output of \copyright. This adjusts the wording to match the changes in commits 5987553fde, a233a603ba, and pgweb commit 2d764dbc08. Reviewed-by: Tom Lane Reviewed-by: Daniel Gustafsson Discussion: https://postgr.es/m/aHVo791guQR6uqwT%40nathan Backpatch-throug

pgsql: psql: Fix note on project naming in output of \copyright.

2025-07-16 Thread Nathan Bossart
psql: Fix note on project naming in output of \copyright. This adjusts the wording to match the changes in commits 5987553fde, a233a603ba, and pgweb commit 2d764dbc08. Reviewed-by: Tom Lane Reviewed-by: Daniel Gustafsson Discussion: https://postgr.es/m/aHVo791guQR6uqwT%40nathan Backpatch-throug

pgsql: psql: Fix note on project naming in output of \copyright.

2025-07-16 Thread Nathan Bossart
psql: Fix note on project naming in output of \copyright. This adjusts the wording to match the changes in commits 5987553fde, a233a603ba, and pgweb commit 2d764dbc08. Reviewed-by: Tom Lane Reviewed-by: Daniel Gustafsson Discussion: https://postgr.es/m/aHVo791guQR6uqwT%40nathan Backpatch-throug

pgsql: Remove XLogCtl->ckptFullXid.

2025-07-12 Thread Nathan Bossart
Remove XLogCtl->ckptFullXid. A few code paths set this variable, but its value is never used. Oversight in commit 2fc7af5e96. Reviewed-by: Aleksander Alekseev Discussion: https://postgr.es/m/aHFyE1bs9YR93dQ1%40nathan Branch -- master Details --- https://git.postgresql.org/pg/commitdif

pgsql: Add MODE option to CHECKPOINT command.

2025-07-11 Thread Nathan Bossart
Add MODE option to CHECKPOINT command. This option may be set to FAST (the default) to request the checkpoint be completed as fast as possible, or SPREAD to request the checkpoint be spread over a longer interval (based on the checkpoint-related configuration parameters). Note that the server may

pgsql: Rename CHECKPOINT_IMMEDIATE to CHECKPOINT_FAST.

2025-07-11 Thread Nathan Bossart
Rename CHECKPOINT_IMMEDIATE to CHECKPOINT_FAST. The new name more accurately reflects the effects of this flag on a requested checkpoint. Checkpoint-related log messages (i.e., those controlled by the log_checkpoints configuration parameter) will now say "fast" instead of "immediate", too. Likew

pgsql: Add option list to CHECKPOINT command.

2025-07-11 Thread Nathan Bossart
Add option list to CHECKPOINT command. This commit adds the boilerplate code for supporting a list of options in CHECKPOINT commands. No actual options are supported yet, but follow-up commits will add support for MODE and FLUSH_UNLOGGED. While at it, this commit refactors the code for executing

pgsql: Add FLUSH_UNLOGGED option to CHECKPOINT command.

2025-07-11 Thread Nathan Bossart
Add FLUSH_UNLOGGED option to CHECKPOINT command. This option, which is disabled by default, can be used to request the checkpoint also flush dirty buffers of unlogged relations. As with the MODE option, the server may consolidate the options for concurrently requested checkpoints. For example, i

pgsql: Rename CHECKPOINT_FLUSH_ALL to CHECKPOINT_FLUSH_UNLOGGED.

2025-07-11 Thread Nathan Bossart
Rename CHECKPOINT_FLUSH_ALL to CHECKPOINT_FLUSH_UNLOGGED. The new name more accurately relects the effects of this flag on a requested checkpoint. Checkpoint-related log messages (i.e., those controlled by the log_checkpoints configuration parameter) will now say "flush-unlogged" instead of "flus

pgsql: pg_dump: Fix object-type sort priority for large objects.

2025-07-10 Thread Nathan Bossart
pg_dump: Fix object-type sort priority for large objects. Commit a45c78e328 moved large object metadata from SECTION_PRE_DATA to SECTION_DATA but neglected to move PRIO_LARGE_OBJECT in dbObjectTypePriorities accordingly. While this hasn't produced any known live bugs, it causes problems for a pro

pgsql: pg_dump: Fix object-type sort priority for large objects.

2025-07-10 Thread Nathan Bossart
pg_dump: Fix object-type sort priority for large objects. Commit a45c78e328 moved large object metadata from SECTION_PRE_DATA to SECTION_DATA but neglected to move PRIO_LARGE_OBJECT in dbObjectTypePriorities accordingly. While this hasn't produced any known live bugs, it causes problems for a pro

pgsql: pg_dump: Fix object-type sort priority for large objects.

2025-07-10 Thread Nathan Bossart
pg_dump: Fix object-type sort priority for large objects. Commit a45c78e328 moved large object metadata from SECTION_PRE_DATA to SECTION_DATA but neglected to move PRIO_LARGE_OBJECT in dbObjectTypePriorities accordingly. While this hasn't produced any known live bugs, it causes problems for a pro

pgsql: Introduce pg_dsm_registry_allocations view.

2025-07-09 Thread Nathan Bossart
Introduce pg_dsm_registry_allocations view. This commit adds a new system view that provides information about entries in the dynamic shared memory (DSM) registry. Specifically, it returns the name, type, and size of each entry. Note that since we cannot discover the size of dynamic shared memor

Re: pgsql: Fix cross-version upgrade test breakage from commit fe07100e82.

2025-07-02 Thread Nathan Bossart
On Wed, Jul 02, 2025 at 03:43:02PM -0400, Andrew Dunstan wrote: > On 2025-07-02 We 2:27 PM, Nathan Bossart wrote: >> To fix, revert those renames. I could probably get away with only >> un-renaming the C symbols, but I figured I'd avoid introducing >> function name mis

pgsql: Fix cross-version upgrade test breakage from commit fe07100e82.

2025-07-02 Thread Nathan Bossart
Fix cross-version upgrade test breakage from commit fe07100e82. In commit fe07100e82, I renamed a couple of functions in test_dsm_registry to make it clear what they are testing. However, the buildfarm's cross-version upgrade tests run pg_upgrade with the test modules installed, so this caused er

pgsql: Make more use of RELATION_IS_OTHER_TEMP().

2025-07-02 Thread Nathan Bossart
Make more use of RELATION_IS_OTHER_TEMP(). A few places were open-coding it instead of using this handy macro. Author: Junwang Zhao Reviewed-by: Ashutosh Bapat Discussion: https://postgr.es/m/CAEG8a3LjTGJcOcxQx-SUOGoxstG4XuCWLH0ATJKKt_aBTE5K8w%40mail.gmail.com Branch -- master Details --

pgsql: Add GetNamedDSA() and GetNamedDSHash().

2025-07-02 Thread Nathan Bossart
Add GetNamedDSA() and GetNamedDSHash(). Presently, the dynamic shared memory (DSM) registry only provides GetNamedDSMSegment(), which allocates a fixed-size segment. To use the DSM registry for more sophisticated things like dynamic shared memory areas (DSAs) or a hash table backed by a DSA (dsha

pgsql: Document pg_get_multixact_members().

2025-07-01 Thread Nathan Bossart
Document pg_get_multixact_members(). Oversight in commit 0ac5ad5134. Author: Sami Imseih Co-authored-by: Álvaro Herrera Reviewed-by: Ashutosh Bapat Discussion: https://postgr.es/m/20150619215231.GT133018%40postgresql.org Discussion: https://postgr.es/m/CAA5RZ0sjQDDwJfMRb%3DZ13nDLuRpF13ME2L_Bd

pgsql: Document pg_get_multixact_members().

2025-07-01 Thread Nathan Bossart
Document pg_get_multixact_members(). Oversight in commit 0ac5ad5134. Author: Sami Imseih Co-authored-by: Álvaro Herrera Reviewed-by: Ashutosh Bapat Discussion: https://postgr.es/m/20150619215231.GT133018%40postgresql.org Discussion: https://postgr.es/m/CAA5RZ0sjQDDwJfMRb%3DZ13nDLuRpF13ME2L_Bd

pgsql: Add commit 9e345415bc to .git-blame-ignore-revs.

2025-07-01 Thread Nathan Bossart
Add commit 9e345415bc to .git-blame-ignore-revs. Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/aa268cbaade2e7c87addc2fabc7fc8a43310a440 Modified Files -- .git-blame-ignore-revs | 3 +++ 1 file changed, 3 insertions(+)

pgsql: Add commit 07448b3969 to .git-blame-ignore-revs.

2025-07-01 Thread Nathan Bossart
Add commit 07448b3969 to .git-blame-ignore-revs. Branch -- REL_18_STABLE Details --- https://git.postgresql.org/pg/commitdiff/3386b2fe7af98159b0c7bc3f0f03fcb524d98cd6 Modified Files -- .git-blame-ignore-revs | 3 +++ 1 file changed, 3 insertions(+)

pgsql: Make more use of binaryheap_empty() and binaryheap_size().

2025-07-01 Thread Nathan Bossart
Make more use of binaryheap_empty() and binaryheap_size(). A few places were accessing bh_size directly instead of via these handy macros. Author: Aleksander Alekseev Discussion: https://postgr.es/m/CAJ7c6TPQMVL%2B028T4zuw9ZqL5Du9JavOLhBQLkJeK0RznYx_6w%40mail.gmail.com Branch -- master De

pgsql: Document pg_get_multixact_members().

2025-07-01 Thread Nathan Bossart
Document pg_get_multixact_members(). Oversight in commit 0ac5ad5134. Author: Sami Imseih Co-authored-by: Álvaro Herrera Reviewed-by: Ashutosh Bapat Discussion: https://postgr.es/m/20150619215231.GT133018%40postgresql.org Discussion: https://postgr.es/m/CAA5RZ0sjQDDwJfMRb%3DZ13nDLuRpF13ME2L_Bd

pgsql: Document pg_get_multixact_members().

2025-07-01 Thread Nathan Bossart
Document pg_get_multixact_members(). Oversight in commit 0ac5ad5134. Author: Sami Imseih Co-authored-by: Álvaro Herrera Reviewed-by: Ashutosh Bapat Discussion: https://postgr.es/m/20150619215231.GT133018%40postgresql.org Discussion: https://postgr.es/m/CAA5RZ0sjQDDwJfMRb%3DZ13nDLuRpF13ME2L_Bd

pgsql: Document pg_get_multixact_members().

2025-07-01 Thread Nathan Bossart
Document pg_get_multixact_members(). Oversight in commit 0ac5ad5134. Author: Sami Imseih Co-authored-by: Álvaro Herrera Reviewed-by: Ashutosh Bapat Discussion: https://postgr.es/m/20150619215231.GT133018%40postgresql.org Discussion: https://postgr.es/m/CAA5RZ0sjQDDwJfMRb%3DZ13nDLuRpF13ME2L_Bd

pgsql: Document pg_get_multixact_members().

2025-07-01 Thread Nathan Bossart
Document pg_get_multixact_members(). Oversight in commit 0ac5ad5134. Author: Sami Imseih Co-authored-by: Álvaro Herrera Reviewed-by: Ashutosh Bapat Discussion: https://postgr.es/m/20150619215231.GT133018%40postgresql.org Discussion: https://postgr.es/m/CAA5RZ0sjQDDwJfMRb%3DZ13nDLuRpF13ME2L_Bd

pgsql: Document pg_get_multixact_members().

2025-07-01 Thread Nathan Bossart
Document pg_get_multixact_members(). Oversight in commit 0ac5ad5134. Author: Sami Imseih Co-authored-by: Álvaro Herrera Reviewed-by: Ashutosh Bapat Discussion: https://postgr.es/m/20150619215231.GT133018%40postgresql.org Discussion: https://postgr.es/m/CAA5RZ0sjQDDwJfMRb%3DZ13nDLuRpF13ME2L_Bd

pgsql: Document age(xid) and mxid_age(xid).

2025-07-01 Thread Nathan Bossart
Document age(xid) and mxid_age(xid). These functions have been around for some time, but commits 48b5aa3143 and 15afb7d61c were only back-patched to v16. Let's back-patch them to all supported versions now. Reported-by: David Rowley (commit 48b5aa3143) Author: Bruce Momjian (commit 48b5aa3143)

pgsql: Document age(xid) and mxid_age(xid).

2025-07-01 Thread Nathan Bossart
Document age(xid) and mxid_age(xid). These functions have been around for some time, but commits 48b5aa3143 and 15afb7d61c were only back-patched to v16. Let's back-patch them to all supported versions now. Reported-by: David Rowley (commit 48b5aa3143) Author: Bruce Momjian (commit 48b5aa3143)

pgsql: Document age(xid) and mxid_age(xid).

2025-07-01 Thread Nathan Bossart
Document age(xid) and mxid_age(xid). These functions have been around for some time, but commits 48b5aa3143 and 15afb7d61c were only back-patched to v16. Let's back-patch them to all supported versions now. Reported-by: David Rowley (commit 48b5aa3143) Author: Bruce Momjian (commit 48b5aa3143)

pgsql: Add new OID alias type regdatabase.

2025-06-30 Thread Nathan Bossart
Add new OID alias type regdatabase. This provides a convenient way to look up a database's OID. For example, the query SELECT * FROM pg_shdepend WHERE dbid = (SELECT oid FROM pg_database WHERE datname = current_database()); can now be simplified to SELECT * FROM p

pgsql: Use correct DatumGet*() function in test_shm_mq_main().

2025-06-27 Thread Nathan Bossart
Use correct DatumGet*() function in test_shm_mq_main(). This is purely cosmetic, as dsm_attach() interprets its argument as a dsm_handle (i.e., an unsigned integer), but we might as well fix it. Oversight in commit 4db3744f1f. Author: Jianghua Yang Reviewed-by: Tom Lane Discussion: https://po

  1   2   3   4   5   6   >