aboutsummaryrefslogtreecommitdiff
path: root/src/test/regress/sql/sqljson_queryfuncs.sql
diff options
context:
space:
mode:
authorAmit Langote <amitlan@postgresql.org>2024-07-26 16:08:13 +0900
committerAmit Langote <amitlan@postgresql.org>2024-07-26 16:36:10 +0900
commit3c3ccd4ca80136939abf97a7c19b67486dfda3af (patch)
treef904c2d24c6870deec2d88fbf1f411972ed04bfa /src/test/regress/sql/sqljson_queryfuncs.sql
parentd1dc4ae5608d9c0e83d5b5d32de238a7ac3d9a1a (diff)
downloadpostgresql-3c3ccd4ca80136939abf97a7c19b67486dfda3af.tar.gz
postgresql-3c3ccd4ca80136939abf97a7c19b67486dfda3af.zip
SQL/JSON: Respect OMIT QUOTES when RETURNING domains over jsonb
populate_domain() didn't take into account the omit_quotes flag passed down to json_populate_type() by ExecEvalJsonCoercion() and that led to incorrect behavior when the RETURNING type is a domain over jsonb. Fix that by passing the flag by adding a new function parameter to populate_domain(). Reported-by: Jian He <jian.universality@gmail.com> Discussion: https://postgr.es/m/CACJufxEo4sUjKCYtda0_qt9tazqqKPmF1cqhW9KBOUeJFqQd2g@mail.gmail.com Backpatch-through: 17
Diffstat (limited to 'src/test/regress/sql/sqljson_queryfuncs.sql')
-rw-r--r--src/test/regress/sql/sqljson_queryfuncs.sql5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/test/regress/sql/sqljson_queryfuncs.sql b/src/test/regress/sql/sqljson_queryfuncs.sql
index be5593b3324..e9005d3d4eb 100644
--- a/src/test/regress/sql/sqljson_queryfuncs.sql
+++ b/src/test/regress/sql/sqljson_queryfuncs.sql
@@ -214,6 +214,11 @@ SELECT JSON_QUERY(jsonb'{"rec": "{1,2,3}"}', '$.rec' returning int[] keep quotes
SELECT JSON_QUERY(jsonb'{"rec": "[1,2]"}', '$.rec' returning int4range omit quotes);
SELECT JSON_QUERY(jsonb'{"rec": "[1,2]"}', '$.rec' returning int4range keep quotes);
SELECT JSON_QUERY(jsonb'{"rec": "[1,2]"}', '$.rec' returning int4range keep quotes error on error);
+CREATE DOMAIN qf_char_domain AS char(1);
+CREATE DOMAIN qf_jsonb_domain AS jsonb;
+SELECT JSON_QUERY(jsonb '"1"', '$' RETURNING qf_char_domain OMIT QUOTES ERROR ON ERROR);
+SELECT JSON_QUERY(jsonb '"1"', '$' RETURNING qf_jsonb_domain OMIT QUOTES ERROR ON ERROR);
+DROP DOMAIN qf_char_domain, qf_jsonb_domain;
SELECT JSON_QUERY(jsonb '[]', '$[*]');
SELECT JSON_QUERY(jsonb '[]', '$[*]' NULL ON EMPTY);