Fix JsonExpr deparsing to emit QUOTES and WRAPPER correctly
Amit Langote <amitlan@postgresql.org>
Fix JsonExpr deparsing to emit QUOTES and WRAPPER correctly Currently, get_json_expr_options() does not emit the default values for QUOTES (KEEP QUOTES) and WRAPPER (WITHOUT WRAPPER). That causes the deparsed JSON_TABLE() columns, such as those contained in a a view's query, to behave differently when executed than the original definition. That's because the rules encoded in transformJsonTableColumns() will choose either JSON_VALUE() or JSON_QUERY() as implementation to execute a given column's path expression depending on the QUOTES and WRAPPER specificationd and they have slightly different semantics. Reported-by: Jian He <jian.universality@gmail.com> Discussion: https://postgr.es/m/CACJufxEqhqsfrg_p7EMyo5zak3d767iFDL8vz_4%3DZBHpOtrghw%40mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/utils/adt/ruleutils.c | modified | +6 −0 |
| src/test/regress/expected/sqljson_jsontable.out | modified | +22 −22 |
| src/test/regress/expected/sqljson_queryfuncs.out | modified | +13 −13 |
Discussion
- remaining sql/json patches 300 messages · 2023-06-19 → 2024-11-14