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

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

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

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

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

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

pgsql: Use NULL instead of 0 for pointer arguments.

2025-06-06 Thread Nathan Bossart
Use NULL instead of 0 for pointer arguments. Commit 5fe08c006c fixed this for calls to dshash_create(). This commit fixes calls to dshash_attach() and dsa_create_in_place(). Reviewed-by: Masahiko Sawada Reviewed-by: Michael Paquier Discussion: https://postgr.es/m/aECi_gSD9JnVWQ8T%40nathan Bra

pgsql: Fixed signed/unsigned mismatch in test_dsm_registry.

2025-06-06 Thread Nathan Bossart
Fixed signed/unsigned mismatch in test_dsm_registry. Oversight in commit 8b2bcf3f28. Reviewed-by: Masahiko Sawada Discussion: https://postgr.es/m/aECi_gSD9JnVWQ8T%40nathan Backpatch-through: 17 Branch -- REL_17_STABLE Details --- https://git.postgresql.org/pg/commitdiff/65145d0955c494d

pgsql: Fixed signed/unsigned mismatch in test_dsm_registry.

2025-06-06 Thread Nathan Bossart
Fixed signed/unsigned mismatch in test_dsm_registry. Oversight in commit 8b2bcf3f28. Reviewed-by: Masahiko Sawada Discussion: https://postgr.es/m/aECi_gSD9JnVWQ8T%40nathan Backpatch-through: 17 Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/304862973e9a77c31cbf05

pgsql: doc: Remove notes about "unencrypted" passwords.

2025-06-04 Thread Nathan Bossart
doc: Remove notes about "unencrypted" passwords. The documentation for the pg_authid system catalog and the pg_shadow system view indicates that passwords might be stored in cleartext, but that hasn't been possible for some time. Oversight in commit eb61136dc7. Reviewed-by: Michael Paquier Disc

pgsql: doc: Remove notes about "unencrypted" passwords.

2025-06-04 Thread Nathan Bossart
doc: Remove notes about "unencrypted" passwords. The documentation for the pg_authid system catalog and the pg_shadow system view indicates that passwords might be stored in cleartext, but that hasn't been possible for some time. Oversight in commit eb61136dc7. Reviewed-by: Michael Paquier Disc

pgsql: doc: Remove notes about "unencrypted" passwords.

2025-06-04 Thread Nathan Bossart
doc: Remove notes about "unencrypted" passwords. The documentation for the pg_authid system catalog and the pg_shadow system view indicates that passwords might be stored in cleartext, but that hasn't been possible for some time. Oversight in commit eb61136dc7. Reviewed-by: Michael Paquier Disc

pgsql: doc: Remove notes about "unencrypted" passwords.

2025-06-04 Thread Nathan Bossart
doc: Remove notes about "unencrypted" passwords. The documentation for the pg_authid system catalog and the pg_shadow system view indicates that passwords might be stored in cleartext, but that hasn't been possible for some time. Oversight in commit eb61136dc7. Reviewed-by: Michael Paquier Disc

pgsql: doc: Remove notes about "unencrypted" passwords.

2025-06-04 Thread Nathan Bossart
doc: Remove notes about "unencrypted" passwords. The documentation for the pg_authid system catalog and the pg_shadow system view indicates that passwords might be stored in cleartext, but that hasn't been possible for some time. Oversight in commit eb61136dc7. Reviewed-by: Michael Paquier Disc

pgsql: doc: Remove notes about "unencrypted" passwords.

2025-06-04 Thread Nathan Bossart
doc: Remove notes about "unencrypted" passwords. The documentation for the pg_authid system catalog and the pg_shadow system view indicates that passwords might be stored in cleartext, but that hasn't been possible for some time. Oversight in commit eb61136dc7. Reviewed-by: Michael Paquier Disc

Re: pgsql: Fix a pg_dump scenario for platforms where SEEK_CUR != 1.

2025-06-03 Thread Nathan Bossart
On Tue, Jun 03, 2025 at 06:19:37PM +, Noah Misch wrote: > Fix a pg_dump scenario for platforms where SEEK_CUR != 1. > > POSIX allows such platforms. Given the lack of complaints, we may not > currently test on such a platform. This is new in v18 (commit > 7d5c83b4e90c7156655f98b7312a30ae5eeb

pgsql: Ensure we have a snapshot when updating various system catalogs.

2025-05-30 Thread Nathan Bossart
Ensure we have a snapshot when updating various system catalogs. A few places that access system catalogs don't set up an active snapshot before potentially accessing their TOAST tables. To fix, push an active snapshot just before each section of code that might require accessing one of these TOA

pgsql: Ensure we have a snapshot when updating various system catalogs.

2025-05-30 Thread Nathan Bossart
Ensure we have a snapshot when updating various system catalogs. A few places that access system catalogs don't set up an active snapshot before potentially accessing their TOAST tables. To fix, push an active snapshot just before each section of code that might require accessing one of these TOA

pgsql: Ensure we have a snapshot when updating various system catalogs.

2025-05-30 Thread Nathan Bossart
Ensure we have a snapshot when updating various system catalogs. A few places that access system catalogs don't set up an active snapshot before potentially accessing their TOAST tables. To fix, push an active snapshot just before each section of code that might require accessing one of these TOA

pgsql: Ensure we have a snapshot when updating various system catalogs.

2025-05-30 Thread Nathan Bossart
Ensure we have a snapshot when updating various system catalogs. A few places that access system catalogs don't set up an active snapshot before potentially accessing their TOAST tables. To fix, push an active snapshot just before each section of code that might require accessing one of these TOA

pgsql: Ensure we have a snapshot when updating various system catalogs.

2025-05-30 Thread Nathan Bossart
Ensure we have a snapshot when updating various system catalogs. A few places that access system catalogs don't set up an active snapshot before potentially accessing their TOAST tables. To fix, push an active snapshot just before each section of code that might require accessing one of these TOA

pgsql: Ensure we have a snapshot when updating various system catalogs.

2025-05-30 Thread Nathan Bossart
Ensure we have a snapshot when updating various system catalogs. A few places that access system catalogs don't set up an active snapshot before potentially accessing their TOAST tables. To fix, push an active snapshot just before each section of code that might require accessing one of these TOA

pgsql: pg_dump: Adjust reltuples from 0 to -1 for dumps of older versio

2025-05-22 Thread Nathan Bossart
pg_dump: Adjust reltuples from 0 to -1 for dumps of older versions. Before v14, a reltuples value of 0 was ambiguous: it could either mean the relation is empty, or it could mean that it hadn't yet been vacuumed or analyzed. (Commit 3d351d916b taught v14 and newer to use -1 for the latter case.)

pgsql: pg_dump: Fix array literals in fetchAttributeStats().

2025-05-20 Thread Nathan Bossart
that would cause the test to fail without this change. Oversight in commit 9c02e3a986. Reported-by: Philippe Beaudoin Author: Jian He Co-authored-by: Nathan Bossart Co-authored-by: Stepan Neretin Reviewed-by: Tom Lane Bug: #18923 Discussion: https://postgr.es/m/18923-e79273f87c6bed69

pgsql: Remove pg_replication_origin's TOAST table.

2025-05-07 Thread Nathan Bossart
Remove pg_replication_origin's TOAST table. A few places that access this catalog don't set up an active snapshot before potentially accessing its TOAST table. However, roname (the replication origin name) is the only varlena column, so this is only a problem if the name requires out-of-line stor

pgsql: pg_dumpall: Add --sequence-data.

2025-05-07 Thread Nathan Bossart
pg_dumpall: Add --sequence-data. I recently added this option to pg_dump, but I forgot to add it to pg_dumpall, too. There's probably little use for it at the moment, but we will need it if/when we teach pg_upgrade to use pg_dumpall to dump the database schemas. Oversight in commit 9c49f0e8cd.

pgsql: Remove extra "not" in pg_upgrade documentation.

2025-05-01 Thread Nathan Bossart
Remove extra "not" in pg_upgrade documentation. Oversight in commit cb45dc3afb. Reported-by: Erik Rijkers Reviewed-by: Fujii Masao Discussion: https://postgr.es/m/7b856277-62ad-80f0-36e1-a134ec3c9cab%40xs4all.nl Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/a3e

pgsql: doc: Add missing reference to track_cost_delay_timing.

2025-04-30 Thread Nathan Bossart
doc: Add missing reference to track_cost_delay_timing. Oversight in commit bb8dff9995. Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/2d6745a66b12e980fb12bd06d583a66231b5ed5c Modified Files -- doc/src/sgml/monitoring.sgml | 5 + 1 file changed, 5 in

pgsql: Further adjust guidance for running vacuumdb after pg_upgrade.

2025-04-30 Thread Nathan Bossart
Further adjust guidance for running vacuumdb after pg_upgrade. Since pg_upgrade does not transfer the cumulative statistics used to trigger autovacuum and autoanalyze, the server may take much longer than expected to process them post-upgrade. Currently, we recommend analyzing only relations for

pgsql: vacuumdb: Don't skip empty relations in --missing-stats-only mod

2025-04-30 Thread Nathan Bossart
vacuumdb: Don't skip empty relations in --missing-stats-only mode. Presently, --missing-stats-only skips relations with reltuples set to 0 because empty relations don't get optimizer statistics. However, before v14, a reltuples value of 0 was ambiguous: it could either mean the relation is empty,

pgsql: doc: Alphabetize long options for pg_dump[all].

2025-04-30 Thread Nathan Bossart
doc: Alphabetize long options for pg_dump[all]. The current ordering strategy for these pages is to list the short options in alphabetical order followed by the long options in alphabetical order. If an option has both a short variant and a long variant, the short variant takes precedence. This

pgsql: initdb: Do not report default autovacuum_worker_slots.

2025-04-29 Thread Nathan Bossart
initdb: Do not report default autovacuum_worker_slots. Commit 6d01541960 taught initdb to lower the default value of autovacuum_worker_slots for systems with very few semaphores. It also added a "fake" report for the chosen value, i.e., initdb prints a message about selecting the default, but the

pgsql: Add missing space in pg_restore documentation.

2025-04-11 Thread Nathan Bossart
Add missing space in pg_restore documentation. Oversight in commit 1495eff7bd. Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/5822bf21d50eb3a4938066951727294e3d33ca6c Modified Files -- doc/src/sgml/ref/pg_restore.sgml | 2 +- 1 file changed, 1 insertion

pgsql: pg_upgrade: Mention that we preserve database OIDs in a comment.

2025-04-09 Thread Nathan Bossart
pg_upgrade: Mention that we preserve database OIDs in a comment. Oversight in commit aa01051418. Reported-by: Tom Lane Discussion: https://postgr.es/m/4055696.1744134682%40sss.pgh.pa.us Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/e2665efd0f4d2ae90d3245f9425d37

pgsql: Prevent 006_transfer_modes.pl from leaving files behind.

2025-04-08 Thread Nathan Bossart
Prevent 006_transfer_modes.pl from leaving files behind. This test was leaving files like delete_old_cluster.{sh,bat} in the source directory for VPATH and meson builds. To fix, change the directory to tmp_check before running the test, as was done in commits 15b6d21553, 8af917be6b, and c462b054b

pgsql: pg_upgrade: Fix memory leak in check_for_unicode_update().

2025-04-06 Thread Nathan Bossart
pg_upgrade: Fix memory leak in check_for_unicode_update(). This function was initializing the "task" variable before a couple of early returns. To fix, postpone the initialization until just before it's needed. Per Coverity. Discussion: https://postgr.es/m/Z_KMsUH2-FEbiNjC%40nathan Branch

pgsql: doc: Adjust some notes about pg_upgrade's file transfer modes.

2025-04-05 Thread Nathan Bossart
doc: Adjust some notes about pg_upgrade's file transfer modes. --copy-file-range and --swap were not mentioned in a few places that discuss the available file transfer modes. This entire page would likely benefit from an overhaul, but that's v19 material at this point. Oversights in commits d936

Re: pgsql: Prevent redeclaration of typedef TocEntry.

2025-04-05 Thread Nathan Bossart
Sorry, I missed this one last night. On Sat, Apr 05, 2025 at 02:10:10AM -0400, Tom Lane wrote: > =?utf-8?Q?=C3=81lvaro?= Herrera writes: >> ... AFAICS we could move both DefnDumperPtr and >> DataDumperPtr typedefs to pg_backup_archiver.h, together with struct >> _tocEntry (the only place where th

pgsql: pg_dump: Fix query for gathering attribute stats on older versio

2025-04-04 Thread Nathan Bossart
pg_dump: Fix query for gathering attribute stats on older versions. Commit 9c02e3a986 taught pg_dump to retrieve attribute statistics for 64 relations at a time. pg_dump supports dumping from v9.2 and newer versions, but our query for retrieving statistics for multiple relations uses WITH ORDINAL

pgsql: Prevent redeclaration of typedef TocEntry.

2025-04-04 Thread Nathan Bossart
Prevent redeclaration of typedef TocEntry. Commit 9c02e3a986 added a forward declaration for this typedef that caused redeclarations, which is not valid in C99. To fix, add some preprocessor guards to avoid a redefinition, as is done elsewhere (e.g., commit 382092a0cd). Per buildfarm. Branch --

Re: pgsql: pg_dump: Retrieve attribute statistics in batches.

2025-04-04 Thread Nathan Bossart
On Fri, Apr 04, 2025 at 07:51:56PM +, Nathan Bossart wrote: > pg_dump: Retrieve attribute statistics in batches. > > [...] > > Discussion: > https://postgr.es/m/CADkLM%3Dc%2Br05srPy9w%2B-%2BnbmLEo15dKXYQ03Q_xyK%2BriJerigLQ%40mail.gmail.com I see the buildfarm failure and a

pgsql: Remove unused function parameters in pg_backup_archiver.c.

2025-04-04 Thread Nathan Bossart
Remove unused function parameters in pg_backup_archiver.c. Thanks to commit 9c02e3a986, which modified some of the changes from commit a0a4601765, we can remove the now-unused ArchiveHandle parameter from _tocEntryRestorePass() and move_to_ready_heap(). Reviewed-by: Jeff Davis Discussion: https:

pgsql: pg_dump: Reduce memory usage of dumps with statistics.

2025-04-04 Thread Nathan Bossart
se of running the queries twice. Author: Corey Huinker Co-authored-by: Nathan Bossart Reviewed-by: Jeff Davis Discussion: https://postgr.es/m/CADkLM%3Dc%2Br05srPy9w%2B-%2BnbmLEo15dKXYQ03Q_xyK%2BriJerigLQ%40mail.gmail.com Branch -- master Details --- https://git.pos

pgsql: pg_dump: Retrieve attribute statistics in batches.

2025-04-04 Thread Nathan Bossart
at we always dump them in TOC order. A convenient side effect of this change is that we can revert a decent chunk of commit a0a4601765, but that is left for a follow-up commit. Author: Corey Huinker Co-authored-by: Nathan Bossart Reviewed-by: Jeff Davis Discussion: https://postgr.es/m/CADkL

pgsql: Skip second WriteToc() call for custom-format dumps without data

2025-04-04 Thread Nathan Bossart
Skip second WriteToc() call for custom-format dumps without data. Presently, "pg_dump --format=custom" calls WriteToc() twice. The second call updates the data offset information, which allegedly makes parallel pg_restore significantly faster. However, if we're not dumping any data, there are no

pgsql: Add commit e1a8b1ad58 to .git-blame-ignore-revs.

2025-04-04 Thread Nathan Bossart
Add commit e1a8b1ad58 to .git-blame-ignore-revs. Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/742317a80f89a5d6476c20b3d07330f3ec0d4357 Modified Files -- .git-blame-ignore-revs | 3 +++ 1 file changed, 3 insertions(+)

pgsql: Re-pgindent pg_largeobject.c after commit 0d6c477664.

2025-04-04 Thread Nathan Bossart
Re-pgindent pg_largeobject.c after commit 0d6c477664. Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/e1a8b1ad587112e67fdc5aa7b388631dde4dbdda Modified Files -- src/backend/catalog/pg_largeobject.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)

pgsql: Optimize popcount functions with ARM SVE intrinsics.

2025-03-28 Thread Nathan Bossart
Optimize popcount functions with ARM SVE intrinsics. This commit introduces SVE implementations of pg_popcount{32,64}. Unlike the Neon versions, we need an additional configure-time check to determine if the compiler supports SVE intrinsics, and we need a runtime check to determine if the current

pgsql: Optimize popcount functions with ARM Neon intrinsics.

2025-03-28 Thread Nathan Bossart
Optimize popcount functions with ARM Neon intrinsics. This commit introduces Neon implementations of pg_popcount{32,64}, pg_popcount(), and pg_popcount_masked(). As in simd.h, we assume that all available AArch64 hardware supports Neon, so we don't need any new configure-time or runtime checks.

pgsql: Rename TRY_POPCNT_FAST to TRY_POPCNT_X86_64.

2025-03-28 Thread Nathan Bossart
Rename TRY_POPCNT_FAST to TRY_POPCNT_X86_64. This macro protects x86_64-specific code, and a subsequent commit will introduce AArch64-specific versions of that code. To prevent confusion, let's rename it to clearly indicate that it's for x86_64. We should likely move this code to its own file (p

pgsql: pg_upgrade: Add --swap for faster file transfer.

2025-03-25 Thread Nathan Bossart
pg_upgrade: Add --swap for faster file transfer. This new option instructs pg_upgrade to move the data directories from the old cluster to the new cluster and then to replace the catalog files with those generated for the new cluster. This mode can outperform --link, --clone, --copy, and --copy-f

pgsql: initdb: Add --no-sync-data-files.

2025-03-25 Thread Nathan Bossart
initdb: Add --no-sync-data-files. This new option instructs initdb to skip synchronizing any files in database directories, the database directories themselves, and the tablespace directories, i.e., everything in the base/ subdirectory and any other tablespace directories. Other files, such as th

pgsql: pg_dump: Add --sequence-data.

2025-03-25 Thread Nathan Bossart
pg_dump: Add --sequence-data. This new option instructs pg_dump to dump sequence data when the --no-data, --schema-only, or --statistics-only option is specified. This was originally considered for commit a7e5457db8, but it was left out at that time because there was no known use-case. A follow-u

  1   2   3   4   5   >