Re: Add uuid_to_base32hex() and base32hex_to_uuid() built-in functions
Jelte Fennema-Nio <postgres@jeltef.nl>
From: Jelte Fennema-Nio <postgres@jeltef.nl>
To: Andrey Borodin <x4mmm@yandex-team.ru>
Cc: Aleksander Alekseev <aleksander@tigerdata.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>, Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Date: 2025-10-23T14:10:04Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add base32hex support to encode() and decode() functions.
- 497c1170cb10 19 (unreleased) landed
-
Allow explicit casting between bytea and uuid.
- ba21f5bf8aff 19 (unreleased) landed
-
Add support for base64url encoding and decoding
- e1d917182c19 19 (unreleased) cited
On Thu, 23 Oct 2025 at 15:07, Andrey Borodin <x4mmm@yandex-team.ru> wrote: > > SELECT encode(uuidv7() :: bytea, 'base32'); > > That's an excellent feedback! Would such conversion be idiomatic for Postgres users? > Are there any other alternative approaches? Agreed that extending the encode function is the way to go. An example of that is the recently added support for base64url: https://git.postgresql.org/cgit/postgresql.git/commit/?h=REL_18_0&id=e1d917182c1953b16b32a39ed2fe38e3d0823047 > > The value of converting uuid to base32 is not obvious though, so I > > would recommend explaining it in more detail. > > Yes, and maybe some examples of other systems that adopted this format would be handy too. Sergey, can you, please, extend reasoning why this particular format is prominent? RFC 4648 describes a bunch of formats. I've definitely used base32 to encode uuids myself. The primary benefit being shorter strings, while still being able to spell them out by voice to people without having to specify whether a letter is upper or lowercase.