}
    else
    {
-       /* parse unsigned-int seed value */
-       unsigned long ulseed;
        char        garbage;
 
-       /* Don't try to use UINT64_FORMAT here; it might not work for sscanf */
-       if (sscanf(seed, "%lu%c", &ulseed, &garbage) != 1)
+       if (sscanf(seed, "%" SCNu64 "%c", &iseed, &garbage) != 1)
        {
            pg_log_error("unrecognized random seed option \"%s\"", seed);
            pg_log_error_detail("Expecting an unsigned integer, \"time\" or \"rand\".");
            return false;
        }
-       iseed = (uint64) ulseed;
    }
 
    if (seed != NULL)
-       pg_log_info("setting random seed to %llu", (unsigned long long) iseed);
+       pg_log_info("setting random seed to %" PRIu64, iseed);
 
    random_seed = iseed;
 
    /* Initialize base_random_sequence using seed */
-   pg_prng_seed(&base_random_sequence, (uint64) iseed);
+   pg_prng_seed(&base_random_sequence, iseed);
 
    return true;
 }