> > >> 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).