mirror of
https://github.com/postgres/postgres.git
synced 2025-11-07 19:06:32 +03:00
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
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user