public inbox for [email protected]  
help / color / mirror / Atom feed
From: Erik Rijkers <[email protected]>
To: Amit Langote <[email protected]>
Cc: Alvaro Herrera <[email protected]>
Cc: jian he <[email protected]>
Cc: Andrew Dunstan <[email protected]>
Cc: PostgreSQL-development <[email protected]>
Subject: Re: remaining sql/json patches
Date: Mon, 18 Sep 2023 12:12:25 +0200
Message-ID: <[email protected]> (raw)
In-Reply-To: <CA+HiwqGq=v9HbgbMt2mHuxwhFq8u0dxqO9-aMtb0g9XamdWGLA@mail.gmail.com>
References: <CA+HiwqGvevxxRj3JdxCJOeDdQnX7hKeRTdfosL7j9J4T1uJ5kg@mail.gmail.com>
	<[email protected]>
	<CA+HiwqFzxD0nGBTQgGA+__bzcWwtwT8=NpVn8ZbJ9rq14_77nA@mail.gmail.com>
	<[email protected]>
	<CA+HiwqGq=v9HbgbMt2mHuxwhFq8u0dxqO9-aMtb0g9XamdWGLA@mail.gmail.com>

Op 9/18/23 om 05:15 schreef Amit Langote:
> On Sun, Sep 17, 2023 at 3:34 PM Erik Rijkers <[email protected]> wrote:
>> Op 9/14/23 om 10:14 schreef Amit Langote:
>>>
>>>
>>
>> Hi Amit,
>>
>> Just now I built a v14-patched server and I found this crash:
>>
>> select json_query(jsonb '
>> {
>>     "arr": [
>>       {"arr": [2,3]}
>>     , {"arr": [4,5]}
>>     ]
>> }'
>>     , '$.arr[*].arr ? (@ <= 3)' returning anyarray  WITH WRAPPER) --crash
>> ;
>> server closed the connection unexpectedly
>>          This probably means the server terminated abnormally
>>          before or while processing the request.
>> connection to server was lost
> 
> Thanks for the report.
> 
> Attached updated version fixes the crash, but you get an error as is
> to be expected:
> 
> select json_query(jsonb '
> {
>     "arr": [
>       {"arr": [2,3]}
>     , {"arr": [4,5]}
>     ]
> }'
>     , '$.arr[*].arr ? (@ <= 3)' returning anyarray  WITH WRAPPER);
> ERROR:  cannot accept a value of type anyarray
> 
> unlike when using int[]:
> 
> select json_query(jsonb '
> {
>     "arr": [
>       {"arr": [2,3]}
>     , {"arr": [4,5]}
>     ]
> }'
>     , '$.arr[*].arr ? (@ <= 3)' returning int[]  WITH WRAPPER);
>   json_query
> ------------
>   {2,3}
> (1 row)
> 

Thanks, Amit. Alas, there are more: for 'anyarray' I thought I'd 
substitute 'interval', 'int4range', 'int8range', and sure enough they 
all give similar crashes. Patched with v15:

psql -qX -e << SQL
select json_query(jsonb'{"a":[{"a":[2,3]},{"a":[4,5]}]}',
   '$.a[*].a?(@<=3)'returning int[] with wrapper --ok
);

select json_query(jsonb'{"a": [{"a": [2,3]}, {"a": [4,5]}]}',
   '$.a[*].a?(@<=3)'returning interval  with wrapper --crash
--'$.a[*].a?(@<=3)'returning int4range with wrapper --crash
--'$.a[*].a?(@<=3)'returning int8range with wrapper --crash
--'$.a[*].a?(@<=3)'returning numeric[] with wrapper --{2,3} =ok
--'$.a[*].a?(@<=3)'returning anyarray  with wrapper --fixed
--'$.a[*].a?(@<=3)'returning anyarray           --null =ok
--'$.a[*].a?(@<=3)'returning int                --null =ok
--'$.a[*].a?(@<=3)'returning int   with wrapper --error =ok
--'$.a[*].a?(@<=3)'returning int[] with wrapper -- {2,3} =ok
);
SQL
=> server closed the connection unexpectedly, etc

Because those first three tries gave a crash (*all three*), I'm a bit 
worried there may be many more.

I am sorry to be bothering you with these somewhat idiotic SQL 
statements but I suppose somehow it needs to be made more solid.

Thanks!

Erik






view thread (6+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected], [email protected]
  Subject: Re: remaining sql/json patches
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox