Re: JSON_VALUE() behavior when RETURNING bytea (expected base64 decoding)

From: Shay Rojansky <roji(at)roji(dot)org>
To: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: JSON_VALUE() behavior when RETURNING bytea (expected base64 decoding)
Date: 2025-03-06 00:54:35
Message-ID: CADT4RqDDJN4t8A8Za4yhJeLmZJMeHES5aZvW2W4EpWnDd6U0FQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

>
>
>> SELECT JSON_VALUE(jsonb '"AQID"', '$' RETURNING bytea); -- Expected
>> 0x010203, got AQID
>>
>
> I get \x41514944 which is precisely what I would expect since it what this
> query results in as well:
>
> select 'AQID'::bytea;
>

If the behavior of RETURNING is meant to be identical to that of simply
applying a cast, is there any actual advantage in using JSON_VALUE with
RETURNING? In other words, why not just do JSON_VALUE(json '"AQID"',
'$')::bytea instead of using RETURNING? I thought the point was precisely
for RETURNING to be able to perform JSON-specific conversions (e.g. take
into account that the base64 is being converted from a *JSON* string, and
therefore apply base64 decoding to it).

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David G. Johnston 2025-03-06 01:11:04 Re: JSON_VALUE() behavior when RETURNING bytea (expected base64 decoding)
Previous Message Greg Sabino Mullane 2025-03-06 00:51:50 Re: JSON_VALUE() behavior when RETURNING bytea (expected base64 decoding)