Subject: BUG: test_bloomfilter error message reports wrong variable and wrong format specifier

From: Jianghua Yang <[email-masked]>
Date: Tue, 24 Mar 2026 05:31:55 -0700

Hi,

  I found a small bug in
src/test/modules/test_bloomfilter/test_bloomfilter.c, line 128.

  The current code:

  int64   nelements = PG_GETARG_INT64(1);
  int     tests = PG_GETARG_INT32(3);

  if (tests <= 0)
      elog(ERROR, "invalid number of tests: %d", tests);

  if (nelements < 0)
      elog(ERROR, "invalid number of elements: %d", tests);

  The second elog has two issues:

  1. It checks nelements but prints tests. For example, with
  nelements = -1 and tests = 1, the error message would be
  "invalid number of elements: 1" — which is misleading when debugging.
  2. nelements is int64, so the format specifier should be
  INT64_FORMAT rather than %d. Using %d for int64 is
  undefined behavior on 32-bit platforms.

  The fix:

  if (nelements < 0)
      elog(ERROR, "invalid number of elements: " INT64_FORMAT, nelements);

  A patch is attached.

  Regards,
  Jianghua Yang

---

From: Nathan Bossart <[email-masked]>
Date: Tue, 24 Mar 2026 09:34:23 -0500

>   A patch is attached.

Committed, thanks.

-- 
nathan