Add support for base64url encoding and decoding
authorDaniel Gustafsson <dgustafsson@postgresql.org>
Sat, 20 Sep 2025 21:19:32 +0000 (23:19 +0200)
committerDaniel Gustafsson <dgustafsson@postgresql.org>
Sat, 20 Sep 2025 21:19:32 +0000 (23:19 +0200)
commite1d917182c1953b16b32a39ed2fe38e3d0823047
treea107b80202efa1d95f6d994dec3665bd7652e679
parent261f89a976bf3dbf25e43bab9983fdd28f20b49b
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: https://postgr.es/m/70f2b6a8-486a-4fdb-a951-84cef35e22ab@sztoch.pl
doc/src/sgml/func/func-binarystring.sgml
src/backend/utils/adt/encode.c
src/test/regress/expected/strings.out
src/test/regress/sql/strings.sql