| From: | Amit Langote <amitlangote09(at)gmail(dot)com> | 
|---|---|
| To: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Incorrect matching of sql/json PASSING variable names | 
| Date: | 2024-06-06 09:20:07 | 
| Message-ID: | CA+HiwqFGkLWMvELBH6E4SQ45qUHthgcRH6gCJL20OsYDRtFx_w@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
Hi,
Alvaro reported off-list that the following should really fail,
because the jsonpath expression refers to a PASSING variable that
doesn't exist:
select json_query('"1"', jsonpath '$xy' passing 2 AS xyz);
 json_query
------------
 2
(1 row)
This works because of a bug in GetJsonPathVar() whereby it allows a
jsonpath expression to reference any prefix of the PASSING variable
names.
Attached is a patch to fix that.
Thanks Alvaro for the report.
-- 
Thanks, Amit Langote
| Attachment | Content-Type | Size | 
|---|---|---|
| v1-0001-in-transformJsonBehavior-better-handle-default-ex.patch | application/octet-stream | 7.8 KB | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andrei Lepikhov | 2024-06-06 09:26:13 | Re: Proposal: Job Scheduler | 
| Previous Message | Jelte Fennema-Nio | 2024-06-06 09:12:30 | Re: Add new protocol message to change GUCs for usage with future protocol-only GUCs |