pgsql: Add support for base64url encoding and decoding

Started by Daniel Gustafsson4 months ago2 messages
#1Daniel Gustafsson
dgustafsson@postgresql.org

Add support for base64url encoding and decoding

This adds support for base64url encoding and decoding, a base64
variant which is safe to use in filenames and URLs. base64url
replaces '+' in the base64 alphabet with '-' and '/' with '_',
thus making it safe for URL addresses and file systems.

Support for base64url was originally suggested by Przemysław Sztoch.

Author: Florents Tselai <florents.tselai@gmail.com>
Reviewed-by: Aleksander Alekseev <aleksander@timescale.com>
Reviewed-by: David E. Wheeler <david@justatheory.com>
Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com>
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Reviewed-by: Chao Li (Evan) <li.evan.chao@gmail.com>
Discussion: /messages/by-id/70f2b6a8-486a-4fdb-a951-84cef35e22ab@sztoch.pl

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/e1d917182c1953b16b32a39ed2fe38e3d0823047

Modified Files
--------------
doc/src/sgml/func/func-binarystring.sgml | 19 ++++
src/backend/utils/adt/encode.c | 157 ++++++++++++++++++++++++++-----
src/test/regress/expected/strings.out | 150 +++++++++++++++++++++++++++++
src/test/regress/sql/strings.sql | 54 +++++++++++
4 files changed, 359 insertions(+), 21 deletions(-)

#2Erik Rijkers
er@xs4all.nl
In reply to: Daniel Gustafsson (#1)
Re: pgsql: Add support for base64url encoding and decoding

Op 9/20/25 om 23:24 schreef Daniel Gustafsson:

Add support for base64url encoding and decoding

This adds support for base64url encoding and decoding, a base64
variant which is safe to use in filenames and URLs. base64url
replaces '+' in the base64 alphabet with '-' and '/' with '_',
thus making it safe for URL addresses and file systems.

Support for base64url was originally suggested by Przemysław Sztoch.

Author: Florents Tselai <florents.tselai@gmail.com>
Reviewed-by: Aleksander Alekseev <aleksander@timescale.com>
Reviewed-by: David E. Wheeler <david@justatheory.com>
Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com>
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Reviewed-by: Chao Li (Evan) <li.evan.chao@gmail.com>
Discussion: /messages/by-id/70f2b6a8-486a-4fdb-a951-84cef35e22ab@sztoch.pl

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/e1d917182c1953b16b32a39ed2fe38e3d0823047

Modified Files
--------------
doc/src/sgml/func/func-binarystring.sgml | 19 ++++
src/backend/utils/adt/encode.c | 157 ++++++++++++++++++++++++++-----
src/test/regress/expected/strings.out | 150 +++++++++++++++++++++++++++++
src/test/regress/sql/strings.sql | 54 +++++++++++
4 files changed, 359 insertions(+), 21 deletions(-)

Hi,

doc/src/sgml/func/func-binarystring.sgml:
small typo:

The base64url alphabet use should be
The base64url alphabet uses

Thanks,

Erik