diff options
| author | Fujii Masao <fujii@postgresql.org> | 2025-11-20 09:14:02 +0900 |
|---|---|---|
| committer | Fujii Masao <fujii@postgresql.org> | 2025-11-20 09:14:02 +0900 |
| commit | 99780da7209605bf9f226eac3eac30ab2bc9427c (patch) | |
| tree | 9c9eb7b857018fa45001fba3ed6a9fb5ffdce6d8 /src/test | |
| parent | 6b46669883fac9521c20fe4e2c55ccfbee778591 (diff) | |
Add HINT listing valid encodings to encode() and decode() errors.
This commit updates encode() and decode() so that when an invalid encoding
is specified, their error message includes a HINT listing all valid encodings.
This helps users quickly see which encodings are supported without needing
to consult the documentation.
Author: Shinya Sugamoto <shinya34892@gmail.com>
Reviewed-by: Chao Li <lic@highgo.com>
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com>
Reviewed-by: Peter Eisentraut <peter@eisentraut.org>
Reviewed-by: Nathan Bossart <nathandbossart@gmail.com>
Reviewed-by: Fujii Masao <masao.fujii@gmail.com>
Discussion: https://postgr.es/m/CAAe3y+99sfPv8UDF1VM-rC1i5HBdqxUh=2HrbJJFm2+i=1OwOw@mail.gmail.com
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/strings.out | 7 | ||||
| -rw-r--r-- | src/test/regress/sql/strings.sql | 4 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/test/regress/expected/strings.out b/src/test/regress/expected/strings.out index b9dc08d5f61..727304f60e7 100644 --- a/src/test/regress/expected/strings.out +++ b/src/test/regress/expected/strings.out @@ -2575,6 +2575,13 @@ SELECT decode(encode('\x1234567890abcdef00', 'escape'), 'escape'); \x1234567890abcdef00 (1 row) +-- report an error with a hint listing valid encodings when an invalid encoding is specified +SELECT encode('\x01'::bytea, 'invalid'); -- error +ERROR: unrecognized encoding: "invalid" +HINT: Valid encodings are "base64", "base64url", "escape", and "hex". +SELECT decode('00', 'invalid'); -- error +ERROR: unrecognized encoding: "invalid" +HINT: Valid encodings are "base64", "base64url", "escape", and "hex". -- -- base64url encoding/decoding -- diff --git a/src/test/regress/sql/strings.sql b/src/test/regress/sql/strings.sql index a2a91523404..88aa4c2983b 100644 --- a/src/test/regress/sql/strings.sql +++ b/src/test/regress/sql/strings.sql @@ -815,6 +815,10 @@ SELECT decode(encode(('\x' || repeat('1234567890abcdef0001', 7))::bytea, SELECT encode('\x1234567890abcdef00', 'escape'); SELECT decode(encode('\x1234567890abcdef00', 'escape'), 'escape'); +-- report an error with a hint listing valid encodings when an invalid encoding is specified +SELECT encode('\x01'::bytea, 'invalid'); -- error +SELECT decode('00', 'invalid'); -- error + -- -- base64url encoding/decoding -- |
