Re: jsonb_array_length: ERROR: 22023: cannot get array length of ascalar - Mailing list pgsql-general

From Adrian Klaver
Subject Re: jsonb_array_length: ERROR: 22023: cannot get array length of ascalar
Date
Msg-id 796da8b2-f538-a753-f3ed-ad69f3374308@aklaver.com
Whole thread Raw
In response to Re: jsonb_array_length: ERROR: 22023: cannot get array length of a scalar  ("David G. Johnston" <david.g.johnston@gmail.com>)
Responses Re: jsonb_array_length: ERROR: 22023: cannot get array length of a scalar  (Alexander Farber <alexander.farber@gmail.com>)
List pgsql-general
On 03/02/2018 10:04 AM, David G. Johnston wrote:
> On Friday, March 2, 2018, Adrian Klaver <adrian.klaver@aklaver.com 
> <mailto:adrian.klaver@aklaver.com>> wrote:
> 
>     On 03/02/2018 06:42 AM, Alexander Farber wrote:
> 
> 
> 
>     2018-03-02 15:30:33.646 CET [16693] LOG:  duration: 0.058 ms  bind
>     <unnamed>: SELECT out_uid  AS uid,  out_fcm  AS fcm,  out_apns AS
>     apns, out_adm  AS adm,  out_body AS body  FROM
>     words_play_game($1::int, $2::int, $3::jsonb)
> 
>     where is $3::jsonb coming from?
> 
> 
> Java prepared statement I think, using setString.

I was thinking more about the ultimate source of the data. The 
words_play_game() function, AFAICT, just passes the jsonb from input 
into the word_moves table. If that is the case the problem may occur 
further upstream where the jsonb array is actually built.

> 
> Not at computer right now but what does:
> 
> '[1,2,3]'::text::jsonb result in compared to '[1,2,3]'::jsonb ?
> 
> Because the system think your array-looking string is actually just a 
> scalar that happens to have a leading [ and a trailing ]
> 
> David J.
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com


pgsql-general by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: jsonb_array_length: ERROR: 22023: cannot get array length of a scalar
Next
From: Alexander Farber
Date:
Subject: Re: jsonb_array_length: ERROR: 22023: cannot get array length of a scalar