Re: Incorrect matching of sql/json PASSING variable names
Amit Langote <amitlangote09@gmail.com>
From: Amit Langote <amitlangote09@gmail.com>
To: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2024-06-13T08:04:29Z
Lists: pgsql-hackers
Attachments
- v2-0001-SQL-JSON-Correct-jsonpath-variable-name-matching.patch (application/octet-stream) patch v2-0001
On Thu, Jun 6, 2024 at 6:20 PM Amit Langote <amitlangote09@gmail.com> wrote:
>
> 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.
Here's an updated version that I'll push tomorrow.
--
Thanks, Amit Langote
Commits
-
SQL/JSON: Correct jsonpath variable name matching
- 0f271e8e8d9c 17.0 landed