Re: jsonb subscript operator returns null when key is fetched from table
David G. Johnston <david.g.johnston@gmail.com>
From: "David G. Johnston" <david.g.johnston@gmail.com>
To: exe-dealer <exe-dealer@yandex.ru>
Cc: "pgsql-bugs@lists.postgresql.org" <pgsql-bugs@lists.postgresql.org>
Date: 2022-12-12T18:51:19Z
Lists: pgsql-bugs
On Fri, Dec 9, 2022 at 1:35 PM exe-dealer <exe-dealer@yandex.ru> wrote:
> jsonb subscript operator returns null when key is fetched from table.
>
> PostgreSQL 15.1 on x86_64-pc-linux-musl, compiled by gcc (Alpine
> 12.2.1_git20220924-r4) 12.2.1 20220924, 64-bit
>
> WITH cte AS MATERIALIZED (SELECT 'foo' k, '{"foo":"bar"}'::jsonb j)
> SELECT j[k], j[k || ''] FROM cte;
>
> -- returns
> -- null, "bar"
>
> -- expected
> -- "bar", "bar"
>
Thanks for the report. I can confirm that this is a problem in both v14
and v15.
To clarify the subject line - the issue manifests only if the CTE is
MATERIALIZED.
Someone more experienced than I will need to actually do the debugging work
though; hoping this reply will be seen by one of them.
David J.
Commits
-
Fix jsonb subscripting to cope with toasted subscript values.
- b0feda79fdf0 16.0 landed
- d79b76b10ed5 15.2 landed
- a18328bb3395 14.7 landed