From: David Rowley Date: Wed, 8 Jul 2026 23:50:18 +0000 (+1200) Subject: Tidy up datatype usage in test_random_offset_operations() X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b5d73d2dd73d5a0dc744bf82ec3c18846c42c072;p=thirdparty%2Fpostgresql.git Tidy up datatype usage in test_random_offset_operations() I had previously made "seed" a uint64, as that's what pg_prng_seed() expects to get. However, GetCurrentTimestamp() and PG_GETARG_INT64() both return int64, so there was a mismatch in signedness. There are no bugs being fixed here, but it seems cleaner to make the variable int64 and cast to unsigned when passing to pg_prng_seed(). This means we no longer have to use the INT64_FORMAT specifier on the unsigned type to format the seed of the failing test correctly to allow a user to use the same seed from SQL when trying to recreate any failures manually. The most important thing to ensure is correct here is that users can specify the full range of seed values that could be automatically selected by GetCurrentTimestamp() so that we can recreate any failures from runs where the seed was auto-selected. This still works as expected when using the int64 type. In passing, adjust a comment that was a little misleading. Reported-by: Peter Eisentraut Author: David Rowley Discussion: https://postgr.es/m/08fa9f01-373e-4cb4-9650-ad20517e2de3@eisentraut.org --- diff --git a/src/backend/nodes/bitmapset.c b/src/backend/nodes/bitmapset.c index c89f1144141..26f457a3509 100644 --- a/src/backend/nodes/bitmapset.c +++ b/src/backend/nodes/bitmapset.c @@ -522,7 +522,7 @@ bms_offset_members(const Bitmapset *a, int offset) /* * We loop backward over the array so we correctly carry bits from - * higher words before they're overwritten. + * higher words. */ do { diff --git a/src/test/modules/test_bitmapset/test_bitmapset.c b/src/test/modules/test_bitmapset/test_bitmapset.c index b99720685b9..0f366aadea0 100644 --- a/src/test/modules/test_bitmapset/test_bitmapset.c +++ b/src/test/modules/test_bitmapset/test_bitmapset.c @@ -797,7 +797,7 @@ Datum test_random_offset_operations(PG_FUNCTION_ARGS) { pg_prng_state state; - uint64 seed; + int64 seed; int num_ops; int max_range; int min_value; @@ -819,7 +819,7 @@ test_random_offset_operations(PG_FUNCTION_ARGS) if (PG_ARGISNULL(3) || min_value < 0) elog(ERROR, "invalid minimum value"); - pg_prng_seed(&state, seed); + pg_prng_seed(&state, (uint64) seed); for (int op = 0; op < num_ops; op++) {