Re: Create array of data from JSONB in PG 9.5

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Arup Rakshit <ar(at)zeit(dot)io>
Cc: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Create array of data from JSONB in PG 9.5
Date: 2019-11-15 16:08:18
Message-ID: 28530.1573834098@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Arup Rakshit <ar(at)zeit(dot)io> writes:
> I wrote the below SQL which works and give me what I want, but it doesn’t work in 9.5 version. I wrote this query in PG 10. I want to change it so that I can run it on 9.5 as production using 9.5 version. I need help on this.

> SELECT DISTINCT
> ARRAY [jsonb_array_elements(data) ->> 'group', jsonb_array_elements(jsonb_array_elements(data) -> 'properties') ->> 'name']
> FROM
> "vessels"
> WHERE
> "vessels"."deleted_at" IS NULL
> AND "vessels"."company_id" = '7d105acd-be5a-4225-a2db-b549105e4172';

> When I ran the same query to production I get error:
> ERROR: set-valued function called in context that cannot accept a set

IIRC, you can't nest calls of set-returning functions before about v10.
One workaround is to put the inner set-returning function call into a
sub-select.

regards, tom lane

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Dave Hughes 2019-11-15 16:23:39 Authentication: MD5 to SCRAM-SHA-256 error
Previous Message Adrian Klaver 2019-11-15 15:54:33 Re: Create array of data from JSONB in PG 9.5