Make verify_compact_attribute available in non-assert builds
authorDavid Rowley <drowley@postgresql.org>
Sat, 11 Jan 2025 00:45:54 +0000 (13:45 +1300)
committerDavid Rowley <drowley@postgresql.org>
Sat, 11 Jan 2025 00:45:54 +0000 (13:45 +1300)
commit34c6e652425fde42c2746f749e31d196fc0d5538
tree0a5940fe55a1ac6b82ed8c9cfe5bc0caf9ed4148
parenta9dcbb4d5c00b703e727e14055ed70c525a86418
Make verify_compact_attribute available in non-assert builds

6f3820f37 adjusted the assert-enabled validation of the CompactAttribute
to call a new external function to perform the validation.  That commit
made it so the function was only available when building with
USE_ASSERT_CHECKING, and because TupleDescCompactAttr() is a static
inline function, the call to verify_compact_attribute() was compiled
into any extension which uses TupleDescCompactAttr().  This caused issues
for such extensions when loading the assert-enabled extension into
PostgreSQL versions without asserts enabled due to that function being
unavailable in core.

To fix this, make verify_compact_attribute() available unconditionally,
but make it do nothing unless building with USE_ASSERT_CHECKING.

Author: Andrew Kane <andrew@ankane.org>
Reviewed-by: David Rowley <dgrowleyml@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/CAOdR5yHfMEMW00XGo=v1zCVUS6Huq2UehXdvKnwtXPTcZwXhmg@mail.gmail.com
src/backend/access/common/tupdesc.c
src/include/access/tupdesc.h