Re: different empty array syntax requirements - Mailing list pgsql-general

From Tom Lane
Subject Re: different empty array syntax requirements
Date
Msg-id 14071.1461292673@sss.pgh.pa.us
Whole thread Raw
In response to different empty array syntax requirements  (Scott Ribe <scott_ribe@elevated-dev.com>)
Responses Re: different empty array syntax requirements
List pgsql-general
Scott Ribe <scott_ribe@elevated-dev.com> writes:
> How is that one pgsql build (both are 9.5.2) has different casting behavior for empty arrays:
> pedcard=# select (ARRAY[])::text[];
> ERROR:  cannot determine type of empty array
> LINE 1: select (ARRAY[])::text[];
>                 ^
> HINT:  Explicitly cast to the desired type, for example ARRAY[]::integer[].

... wtf?

[ thinks for awhile ... ]

Oh!  I bet this explains it:

regression=#  select (ARRAY[])::text[];
 array
-------
 {}
(1 row)

regression=# set operator_precedence_warning = on;
SET
regression=#  select (ARRAY[])::text[];
ERROR:  cannot determine type of empty array
LINE 1: select (ARRAY[])::text[];
                ^
HINT:  Explicitly cast to the desired type, for example ARRAY[]::integer[].


The parens turn into an actual parsetree node when
operator_precedence_warning is on, and the cast-of-an-array hack doesn't
know it should look through such a node.  That's a bug.  Will fix it.

            regards, tom lane


pgsql-general by date:

Previous
From: Alvaro Aguayo Garcia-Rada
Date:
Subject: Re: different empty array syntax requirements
Next
From:
Date:
Subject: Fw: new important message