]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Tidy up datatype usage in test_random_offset_operations()
authorDavid Rowley <drowley@postgresql.org>
Wed, 8 Jul 2026 23:50:18 +0000 (11:50 +1200)
committerDavid Rowley <drowley@postgresql.org>
Wed, 8 Jul 2026 23:50:18 +0000 (11:50 +1200)
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 <peter@eisentraut.org>
Author: David Rowley <dgrowleyml@gmail.com>
Discussion: https://postgr.es/m/08fa9f01-373e-4cb4-9650-ad20517e2de3@eisentraut.org

src/backend/nodes/bitmapset.c
src/test/modules/test_bitmapset/test_bitmapset.c

index c89f1144141c311f978ec8ae270394c7bc031441..26f457a35096035a0affa752e8ccff90a5d4c8a3 100644 (file)
@@ -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
                        {
index b99720685b9dbd8f96a307169b373d65a272b3bd..0f366aadea0aeec203560b1381725c9727fe8234 100644 (file)
@@ -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++)
        {