From: Daniel Gustafsson <dgustafsson@postgresql.org>
To: pgsql-committers@lists.postgresql.org
Subject: pgsql: Add support for base64url encoding and decoding
Date: Sat, 20 Sep 2025 21:24:31 +0000
Message-ID: <E1v054I-001heo-1e@gemulon.postgresql.org> (raw)
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
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(-)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-committers@postgresql.org
Cc: dgustafsson@postgresql.org, pgsql-committers@lists.postgresql.org
Subject: Re: pgsql: Add support for base64url encoding and decoding
In-Reply-To: <E1v054I-001heo-1e@gemulon.postgresql.org>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox