pgsql: Remove a couple of strerror() calls

2024-09-04 Thread Peter Eisentraut
Remove a couple of strerror() calls Change to using %m in the error message string. We need to be a bit careful here to preserve errno until we need to print it. This change avoids the use of not-thread-safe strerror() and unifies some error message strings, and maybe makes the code appear more

pgsql: Revert "Optimize pg_visibility with read streams."

2024-09-04 Thread Noah Misch
Revert "Optimize pg_visibility with read streams." This reverts commit ed1b1ee59fb3792baa32f669333b75024ef01bcc and its followup 1c61fd8b527954f0ec522e5e60a11ce82628b681. They rendered collect_corrupt_items() unable to detect corruption. Discussion: https://postgr.es/m/can55fz1_ru3xpmgtwsu67fth

pgsql: Remove test-case workarounds for ancient libedit versions.

2024-09-04 Thread Tom Lane
Remove test-case workarounds for ancient libedit versions. This reverts some hacks added in d33a81203 and cd69ec66c. At the time the concern was the already-ancient version of libedit shipped in Debian 10 (Buster). That platform is now two years past EOL, so desupporting it for PG 18 seems fine.

pgsql: Remove lc_collate_is_c().

2024-09-04 Thread Jeff Davis
Remove lc_collate_is_c(). Instead just look up the collation and check collate_is_c field. Author: Andreas Karlsson Discussion: https://postgr.es/m/60929555-4709-40a7-b136-bcb44cff5...@proxel.se Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/06421b08436414b42cd169

pgsql: Speedup WindowAgg code by moving uncommon code out-of-line

2024-09-04 Thread David Rowley
Speedup WindowAgg code by moving uncommon code out-of-line The code to calculate the frame offsets is only performed once per scan. Moving this code out of line gives a small (around 4-5%) speedup when testing with some CPUs. Other tested CPUs are indifferent to the change. Reviewed-by: Ashutosh

pgsql: Optimize WindowAgg's use of tuplestores

2024-09-04 Thread David Rowley
Optimize WindowAgg's use of tuplestores When WindowAgg finished one partition of a PARTITION BY, it previously would call tuplestore_end() to purge all the stored tuples before again calling tuplestore_begin_heap() and carefully setting up all of the tuplestore read pointers exactly as required fo

pgsql: Check availability of module injection_points in TAP tests

2024-09-04 Thread Michael Paquier
Check availability of module injection_points in TAP tests This fixes defects with installcheck for TAP tests that expect the module injection_points to exist in an installation, but the contents of src/test/modules are not installed by default with installcheck. This would cause, for example, fa

pgsql: Fix two NULL pointer dereferences when reading custom pgstats fr

2024-09-04 Thread Michael Paquier
Fix two NULL pointer dereferences when reading custom pgstats from file There were two spots in pgstat_read_statsfile() where is was possible to finish with a null-pointer-dereference crash for custom pgstats kinds: - When reading stats for a fixed-numbered stats entry. - When reading a variable s