Fix JsonExpr deparsing to quote variable names in the PASSING clause.
authorDean Rasheed <dean.a.rasheed@gmail.com>
Sun, 12 Jan 2025 13:35:12 +0000 (13:35 +0000)
committerDean Rasheed <dean.a.rasheed@gmail.com>
Sun, 12 Jan 2025 13:35:12 +0000 (13:35 +0000)
commita93e2a1e25a6d5410abb1446637c4d9a4f24e35d
tree3c7e8946538ae17fd7a8c94b560e97e26d0c3489
parentd673eefd410cd7f5f95e418990146189f44811af
Fix JsonExpr deparsing to quote variable names in the PASSING clause.

When deparsing a JsonExpr, variable names in the PASSING clause were
not quoted. However, since they are parsed as ColLabel tokens, some
variable names require double quotes to ensure that they are properly
interpreted. Fix by using quote_identifier() in the deparsing code.

This oversight was limited to the SQL/JSON query functions
JSON_EXISTS(), JSON_QUERY(), and JSON_VALUE().

Back-patch to v17, where these functions were added.

Dean Rasheed, reviewed by Tom Lane.

Discussion: https://postgr.es/m/CAEZATCXTpAS%3DncfLNTZ7YS6O5puHeLg_SUYAit%2Bcs7wsrd9Msg%40mail.gmail.com
src/backend/utils/adt/ruleutils.c
src/test/regress/expected/sqljson_queryfuncs.out
src/test/regress/sql/sqljson_queryfuncs.sql