Cast json array to postgres array and preserve order of elements
When I want t to convert json array into postgres array, I do:
with t(j) as(
select '{"my_arr":[3,1,2]}'::json
)
SELECT ARRAY(SELECT json_array_elements_text(j->'my_arr')) from t
It works like a charm and I never noticed any problem, but I'm asking here
just to make sure, order of elements will be preserved always?
Is that guaranteed in above example, or not?
Thanks.
On 5/10/20 8:21 AM, otar shavadze wrote:
When I want t to convert json array into postgres array, I do:
with t(j) as(
select '{"my_arr":[3,1,2]}'::json
)
SELECT ARRAY(SELECT json_array_elements_text(j->'my_arr')) from tIt works like a charm and I never noticed any problem, but I'm asking
here just to make sure, order of elements will be preserved always?
Is that guaranteed in above example, or not?
yes. The order is significant and the elements are produced in array order.
cheers
andrew
--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Great, thanks very much Andrew!
On Sun, May 10, 2020 at 7:08 PM Andrew Dunstan <
andrew.dunstan@2ndquadrant.com> wrote:
Show quoted text
On 5/10/20 8:21 AM, otar shavadze wrote:
When I want t to convert json array into postgres array, I do:
with t(j) as(
select '{"my_arr":[3,1,2]}'::json
)
SELECT ARRAY(SELECT json_array_elements_text(j->'my_arr')) from tIt works like a charm and I never noticed any problem, but I'm asking
here just to make sure, order of elements will be preserved always?
Is that guaranteed in above example, or not?yes. The order is significant and the elements are produced in array order.
cheers
andrew
--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services