Re: [PATCH] Add tests for Bitmapset
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: David Rowley <dgrowleyml@gmail.com>
Cc: Greg Burd <greg@burd.me>, Ranier Vilela <ranier.vf@gmail.com>, Daniel Gustafsson <daniel@yesql.se>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-04-19T21:38:43Z
Lists: pgsql-hackers
On Sat, Apr 18, 2026 at 09:06:02PM +1200, David Rowley wrote: > On Fri, 10 Oct 2025 at 11:30, Michael Paquier <michael@paquier.xyz> wrote: > > Thanks for double-checking. Applied after running an indent. > > I was working on test_bitmapset.c to add some tests for a new > bitmapset function. I noticed a few weird things. > > 1. test_random_operations() is coded to use GetCurrentTimestamp() as a > seed when the given seed is <= 0. Of course, it'll be a while before > the return value of that wraps beyond 2^63 (292250 years), but I still > can't help but think that NULL is a better value to use to have the > seed auto-generate. Fine by me. > 2. Doing #1 means the function can't be STRICT. I do think it's wrong > that the function is marked as strict. That's normally reserved for > functions that we needn't call because NULL input(s) yield a NULL > output. That's not the case for this function. Using the existing HEAD approach where STRICT avoids these extra NULL checks, or adding explicit NULL checks without STRICT does not strike me as a big difference in this context. > 3. There's no CHECK_FOR_INTERRUPTS() in test_random_operations(). If > someone uses a large num_ops, there's no way to cancel the query. > 4. If there happened to be some rare bug in bitmapset.c that > test_random_operations() we might struggle to find it again, as we > don't report which seed we used in the ERROR message. These make sense. > I felt it was worth fixing these now as the function I plan to add > there does #1, #2, #3 and #4. If I add the new function for v20, the > discrepancy seems questionable. It is a test module, it would be a big issue if new pieces are backpatched in this area. In short I'm fine with these. Thanks for asking. -- Michael
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Minor fixes for test_bitmapset.c
- 5142f0093e64 19 (unreleased) landed
-
test_bitmapset: Improve random function
- 9d46b86529e8 19 (unreleased) landed
-
Add mem_exceeded_count column to pg_stat_replication_slots.
- d3b6183dd988 19 (unreleased) landed
-
Tidy-up unneeded NULL parameter checks from SQL function
- a69b55cd4727 19 (unreleased) landed
-
Remove check for NULL in STRICT function
- 381f5cffae00 19 (unreleased) landed
-
Fixes for comments in test_bitmapset
- a1b064e4b226 19 (unreleased) landed
-
Minor fixups of test_bitmapset.c
- 3a6615806859 19 (unreleased) landed
-
test_bitmapset: Simplify code of the module
- 9952f6c05a40 19 (unreleased) landed
-
test_bitmapset: Expand more the test coverage
- 5668fff3c512 19 (unreleased) landed
-
Fix compiler warnings in test_bitmapset
- f83fe65f3fc1 19 (unreleased) landed
-
Add a test module for Bitmapset
- 00c3d87a5cab 19 (unreleased) landed