remove bits* types
Nathan Bossart <nathandbossart@gmail.com>
From: Nathan Bossart <nathandbossart@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: Álvaro Herrera <alvherre@kurilemu.de>, Pg Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-03-18T21:38:39Z
Lists: pgsql-hackers
Attachments
- v1-0001-remove-bits-types.patch (text/plain)
(new thread) On Wed, Mar 18, 2026 at 04:17:40PM -0500, Nathan Bossart wrote: > On Tue, Mar 17, 2026 at 05:09:49PM -0400, Andres Freund wrote: >> Personally I object to the existence of the bits* types, to me they're just >> noise over using the corresponding unsigned integer types. One more thing that >> one has to just know what it means without there being any actual improved >> type checking or such. It's not like using bits* would make it any easier to >> make the underlying type a struct or such (which is different to >> e.g. TransactionId, we could probably replace that with a struct without crazy >> amounts of trouble). > > Yeah, I don't see why you'd prefer bits32 over uint32. If anything, uint32 > is probably less confusing because most hackers will have used it before. > AFAICT the bits* types are a relic of the 80s, and there used to be other > types like bool8 and word32, all of which were just uint* behind the > scenes. Those were removed in 2004 by commit ca7a1f0c86. I assume bits* > was left behind because it was still in use. > >> I think we should just rip the bits* types out and replace them with the >> underlying types. > > +1. If there seems to be consensus, I'm happy to write the patch. Well, in the process of seeing how bad the patch would look, I ended up writing it. I used sed for most of this, and I tried to make all necessary manual adjustments, but I may have missed a couple. -- nathan
Commits
-
Remove bits* typedefs.
- bab2f27eaaad 19 (unreleased) landed