On 18.06.24 04:17, Chapman Flack wrote:
On 06/17/24 19:17, David E. Wheeler wrote:
[1]:
https://github.com/postgres/postgres/blob/82ed67a/src/backend/utils/adt/jsonpath_exec.c#L2058-L2059
Huh, I just saw something peculiar, skimming through the code:
https://github.com/postgres/postgres/blob/82ed67a/src/backend/utils/adt/jsonpath_exec.c#L1385
We allow .boolean() applied to a jbvBool, a jbvString (those are the only
two possibilities allowed by the standard), or to a jbvNumeric (!), but
only if it can be serialized and then parsed as an int4, otherwise we say
ERRCODE_NON_NUMERIC_SQL_JSON_ITEM, or if it survived all that we call it
true if it isn't zero.
I wonder what that alternative is doing there.
Are you saying we shouldn't allow .boolean() to be called on a JSON number?
I would concur that that's what the spec says.