Hi John, Thank you for reviewing and bringing this up regarding checksum architecture.
On Tue, Oct 28, 2025 at 7:50 PM John Naylor <[email protected]> wrote: > > On Fri, Oct 24, 2025 at 2:49 PM Andrew Kim <[email protected]> wrote: > > The function signatures (pg_checksum_block, pg_checksum_page) remain > > identical, and checksum_impl.h still contains the complete > > implementation that external programs can include. The runtime > > dispatch only affects internal PostgreSQL usage. > > I don't quite understand the architecture here -- all > platform-specific definitions were put in the "checksum_impl.h" > header. My thinking was that checksum.c would have all that, with thin > wrappers around the functions included from that header. The v9 patch series is attached. I've implemented the architecture as you described. checksum_impl.h -No platform-specific code (removed all AVX2, CPUID, intrinsics) -External programs get a clean, portable standalone implementation -Uses #ifndef PG_CHECKSUM_INTERNAL guard to prevent conflicts checksum.c (full implementation for checksum): -Includes checksum_impl.h for the basic implementation and common definitions -Contains all platform-specific code (AVX2, CPUID detection, runtime dispatch) -Implements thin wrapper functions that provide the public interface -Uses #define PG_CHECKSUM_INTERNAL before including the header > > -- > John Naylor > Amazon Web Services Thanks Andrew
v9-0001-Move-checksum-functions-from-backend-storage-to-port.patch
Description: Binary data
v9-0002-Move-platform-specific-checksum-code-from-header-to-.patch
Description: Binary data
v9-0003-Benchmark-code-for-postgres-checksums.patch
Description: Binary data
