1
0
mirror of https://github.com/postgres/postgres.git synced 2025-12-13 14:22:43 +03:00

Replace most StaticAssertStmt() with StaticAssertDecl()

Similar to commit 75f49221c2, it is preferable to use
StaticAssertDecl() instead of StaticAssertStmt() when possible.

Discussion: https://www.postgresql.org/message-id/flat/CA%2BhUKGKvr0x_oGmQTUkx%3DODgSksT2EtgCA6LmGx_jQFG%3DsDUpg%40mail.gmail.com
This commit is contained in:
Peter Eisentraut
2025-12-12 08:58:34 +01:00
parent 87a350e1f2
commit 493eb0da31
10 changed files with 36 additions and 35 deletions

View File

@@ -3388,6 +3388,9 @@ lazy_truncate_heap(LVRelState *vacrel)
static BlockNumber
count_nondeletable_pages(LVRelState *vacrel, bool *lock_waiter_detected)
{
StaticAssertDecl((PREFETCH_SIZE & (PREFETCH_SIZE - 1)) == 0,
"prefetch size must be power of 2");
BlockNumber blkno;
BlockNumber prefetchedUntil;
instr_time starttime;
@@ -3402,8 +3405,6 @@ count_nondeletable_pages(LVRelState *vacrel, bool *lock_waiter_detected)
* in forward direction, so that OS-level readahead can kick in.
*/
blkno = vacrel->rel_pages;
StaticAssertStmt((PREFETCH_SIZE & (PREFETCH_SIZE - 1)) == 0,
"prefetch size must be power of 2");
prefetchedUntil = InvalidBlockNumber;
while (blkno > vacrel->nonempty_pages)
{

View File

@@ -462,15 +462,15 @@ table_block_parallelscan_startblock_init(Relation rel,
BlockNumber startblock,
BlockNumber numblocks)
{
StaticAssertDecl(MaxBlockNumber <= 0xFFFFFFFE,
"pg_nextpower2_32 may be too small for non-standard BlockNumber width");
BlockNumber sync_startpage = InvalidBlockNumber;
BlockNumber scan_nblocks;
/* Reset the state we use for controlling allocation size. */
memset(pbscanwork, 0, sizeof(*pbscanwork));
StaticAssertStmt(MaxBlockNumber <= 0xFFFFFFFE,
"pg_nextpower2_32 may be too small for non-standard BlockNumber width");
retry:
/* Grab the spinlock. */
SpinLockAcquire(&pbscan->phs_mutex);

View File

@@ -266,6 +266,10 @@ InitializeParallelDSM(ParallelContext *pcxt)
if (pcxt->nworkers > 0)
{
StaticAssertDecl(BUFFERALIGN(PARALLEL_ERROR_QUEUE_SIZE) ==
PARALLEL_ERROR_QUEUE_SIZE,
"parallel error queue size not buffer-aligned");
/* Estimate space for various kinds of state sharing. */
library_len = EstimateLibraryStateSpace();
shm_toc_estimate_chunk(&pcxt->estimator, library_len);
@@ -297,9 +301,6 @@ InitializeParallelDSM(ParallelContext *pcxt)
shm_toc_estimate_keys(&pcxt->estimator, 12);
/* Estimate space need for error queues. */
StaticAssertStmt(BUFFERALIGN(PARALLEL_ERROR_QUEUE_SIZE) ==
PARALLEL_ERROR_QUEUE_SIZE,
"parallel error queue size not buffer-aligned");
shm_toc_estimate_chunk(&pcxt->estimator,
mul_size(PARALLEL_ERROR_QUEUE_SIZE,
pcxt->nworkers));

View File

@@ -7149,9 +7149,9 @@ buffer_readv_encode_error(PgAioResult *result,
error_count > 0 ? error_count : zeroed_count;
uint8 first_off;
StaticAssertStmt(PG_IOV_MAX <= 1 << READV_COUNT_BITS,
StaticAssertDecl(PG_IOV_MAX <= 1 << READV_COUNT_BITS,
"PG_IOV_MAX is bigger than reserved space for error data");
StaticAssertStmt((1 + 1 + 3 * READV_COUNT_BITS) <= PGAIO_RESULT_ERROR_BITS,
StaticAssertDecl((1 + 1 + 3 * READV_COUNT_BITS) <= PGAIO_RESULT_ERROR_BITS,
"PGAIO_RESULT_ERROR_BITS is insufficient for buffer_readv");
/*

View File

@@ -1111,23 +1111,6 @@ BasicOpenFilePerm(const char *fileName, int fileFlags, mode_t fileMode)
tryAgain:
#ifdef PG_O_DIRECT_USE_F_NOCACHE
/*
* The value we defined to stand in for O_DIRECT when simulating it with
* F_NOCACHE had better not collide with any of the standard flags.
*/
StaticAssertStmt((PG_O_DIRECT &
(O_APPEND |
O_CLOEXEC |
O_CREAT |
O_DSYNC |
O_EXCL |
O_RDWR |
O_RDONLY |
O_SYNC |
O_TRUNC |
O_WRONLY)) == 0,
"PG_O_DIRECT value collides with standard flag");
fd = open(fileName, fileFlags & ~PG_O_DIRECT, fileMode);
#else
fd = open(fileName, fileFlags, fileMode);

View File

@@ -462,7 +462,6 @@ CreateWaitEventSet(ResourceOwner resowner, int nevents)
* pending signals are serviced.
*/
set->handles[0] = pgwin32_signal_event;
StaticAssertStmt(WSA_INVALID_EVENT == NULL, "");
#endif
return set;
@@ -979,6 +978,8 @@ WaitEventAdjustKqueue(WaitEventSet *set, WaitEvent *event, int old_events)
#endif
#if defined(WAIT_USE_WIN32)
StaticAssertDecl(WSA_INVALID_EVENT == NULL, "");
static void
WaitEventAdjustWin32(WaitEventSet *set, WaitEvent *event)
{

View File

@@ -485,7 +485,7 @@ macaddr_abbrev_convert(Datum original, SortSupport ssup)
* There will be two bytes of zero padding on the end of the least
* significant bits.
*/
StaticAssertStmt(sizeof(res) >= sizeof(macaddr),
StaticAssertDecl(sizeof(res) >= sizeof(macaddr),
"Datum is too small for macaddr");
memset(&res, 0, sizeof(res));
memcpy(&res, authoritative, sizeof(macaddr));

View File

@@ -1753,7 +1753,7 @@ CacheInvalidateSmgr(RelFileLocatorBackend rlocator)
SharedInvalidationMessage msg;
/* verify optimization stated above stays valid */
StaticAssertStmt(MAX_BACKENDS_BITS <= 23,
StaticAssertDecl(MAX_BACKENDS_BITS <= 23,
"MAX_BACKENDS_BITS is too big for inval.c");
msg.sm.id = SHAREDINVALSMGR_ID;

View File

@@ -92,6 +92,22 @@ extern PGDLLIMPORT int max_safe_fds;
#elif defined(F_NOCACHE)
#define PG_O_DIRECT 0x80000000
#define PG_O_DIRECT_USE_F_NOCACHE
/*
* The value we defined to stand in for O_DIRECT when simulating it with
* F_NOCACHE had better not collide with any of the standard flags.
*/
StaticAssertDecl((PG_O_DIRECT &
(O_APPEND |
O_CLOEXEC |
O_CREAT |
O_DSYNC |
O_EXCL |
O_RDWR |
O_RDONLY |
O_SYNC |
O_TRUNC |
O_WRONLY)) == 0,
"PG_O_DIRECT value collides with standard flag");
#else
#define PG_O_DIRECT 0
#endif