From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: how to correctly cast json value to text? |
Date: | 2021-05-03 09:23:52 |
Message-ID: | CAFj8pRBrwzBaz_qJA7Kqh-v2J0Wde1uXOyGz8an6ERt-pfd1LQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi
po 3. 5. 2021 v 11:15 odesílatel Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
napsal:
> Hi
>
> I am testing a new subscripting interface for jsonb, and I found one issue.
>
> DO $$
> DECLARE v jsonb;
> BEGIN
> v['a'] = '"Ahoj"';
> RAISE NOTICE '%', v['a'];
> END;
> $$;
> NOTICE: "Ahoj"
> DO
>
> When I use this interface for reading, the jsonb type is returned. What is
> the correct way for casting from jsonb text to text value? I would not
> double quotes inside the result. Cast to text doesn't help. For operator
> API we can use "->>" symbol. But we have nothing similar for subscript API.
>
now I need function like
CREATE OR REPLACE FUNCTION public.value_to_text(jsonb)
RETURNS text
LANGUAGE plpgsql
IMMUTABLE
AS $function$
DECLARE x jsonb;
BEGIN
x['x'] = $1;
RETURN x->>'x';
END;
$function$
DO $$
DECLARE v jsonb;
BEGIN
-- hodnota musi byt validni json
v['a'] = '"Ahoj"';
RAISE NOTICE '%', value_to_text(v['a']);
END;
$$;
NOTICE: Ahoj
DO
Is it possible to do this with built functionality?
I miss the cast function for json scalar string value to string.
Regards
Pavel
> Regards
>
> Pavel
>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Marko Tiikkaja | 2021-05-03 09:25:59 | Re: how to correctly cast json value to text? |
Previous Message | Pavel Stehule | 2021-05-03 09:15:08 | how to correctly cast json value to text? |