From: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
---|---|
To: | "David E(dot) Wheeler" <david(at)justatheory(dot)com>, andrew(at)dunslane(dot)net |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Shouldn't jsonpath .string() Unwrap? |
Date: | 2024-06-12 20:02:44 |
Message-ID: | CAKFQuwacXyOuRCkQZaJmzXu2jkPz629GFZS2AdjZa8T32FKDow@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sat, Jun 8, 2024 at 3:50 PM David E. Wheeler <david(at)justatheory(dot)com>
wrote:
> Hackers,
>
> Most of the jsonpath methods auto-unwrap in lax mode:
>
> david=# select jsonb_path_query('[-2,5]', '$.abs()');
> jsonb_path_query
> ------------------
> 2
> 5
> (2 rows)
>
> The obvious exceptions are size() and type(), which apply directly to
> arrays, so no need to unwrap:
>
> david=# select jsonb_path_query('[-2,5]', '$.size()');
> jsonb_path_query
> ------------------
> 2
> (1 row)
>
> david=# select jsonb_path_query('[-2,5]', '$.type()');
> jsonb_path_query
> ------------------
> "array"
>
> But what about string()? Is there some reason it doesn’t unwrap?
>
> david=# select jsonb_path_query('[-2,5]', '$.string()');
> ERROR: jsonpath item method .string() can only be applied to a bool,
> string, numeric, or datetime value
>
> What I expect:
>
> david=# select jsonb_path_query('[-2,5]', '$.string()');
> jsonb_path_query
> —————————
> "2"
> "5"
> (2 rows)
>
> However, I do see a test[1] for this behavior, so maybe there’s a reason
> for it?
>
>
Adding Andrew.
I'm willing to call this an open item against this feature as I don't see
any documentation explaining that string() behaves differently than the
others.
David J.
From | Date | Subject | |
---|---|---|---|
Next Message | David E. Wheeler | 2024-06-12 20:10:01 | Re: Shouldn't jsonpath .string() Unwrap? |
Previous Message | Michail Nikolaev | 2024-06-12 20:02:00 | Re: race condition in pg_class |