Re: Add uuid_to_base32hex() and base32hex_to_uuid() built-in functions
Aleksander Alekseev <aleksander@tigerdata.com>
From: Aleksander Alekseev <aleksander@tigerdata.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Cc: Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Date: 2025-10-23T09:55:01Z
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
Hi Sergey, > I'm writing to propose adding two new built-in functions to PostgreSQL that provide compact UUID encoding using the base32hex format. Firstly, cc:'ing a few dozens of people is not the best way to get attention to your patch. Please don't do this. Secondly, in order to propose a patch please use `git format-patch` and send it as an attachment. Then register it on the nearest open commitfest [1]. The interface you are proposing is ugly and is not composable. The right way of doing this IMO would be: 1. Implement uuid -> bytea and bytea -> uuid casting 2. Implement encode(bytea, 'base32') and decode(text, 'base32') So the overall interface should be like this: SELECT encode(uuidv7() :: bytea, 'base32'); The value of converting uuid to base32 is not obvious though, so I would recommend explaining it in more detail. Consider starting a new thread for each separate patch. [1]: https://commitfest.postgresql.org/ -- Best regards, Aleksander Alekseev