Re: array_to_string(anyarray, text) that was working in 8.1 is not working in 8.3 - Mailing list pgsql-sql

From Tom Lane
Subject Re: array_to_string(anyarray, text) that was working in 8.1 is not working in 8.3
Date
Msg-id 26729.1229278563@sss.pgh.pa.us
Whole thread Raw
In response to Re: array_to_string(anyarray, text) that was working in 8.1 is not working in 8.3  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: array_to_string(anyarray, text) that was working in 8.1 is not working in 8.3  (Corey Horton <chorton1@austin.rr.com>)
List pgsql-sql
I wrote:
> While we could probably revert just enough of the changes to
> enforce_generic_type_consistency to allow this case again, I wonder
> just how safe that'd really be.  It would amount to expecting that
> functions that take anyarray but don't take or return anyelement to
> not only work on any array type, but to be always prepared for the
> input element type to change on-the-fly (since that's exactly what
> would happen when scanning pg_statistic).  Quite a lot of the built-in
> anyarray functions are prepared to do that, but I'm not sure they all
> are.

I went and looked, and found that none of the thirty or so built-in
functions that accept ANYARRAY are coded to make unsafe assumptions
about the input array type remaining the same across calls.  So at least
as of CVS HEAD, it seems safe to relax this back to the way it was
pre-8.3.

I'm still worried about the possibility of extension functions or future
core functions failing to follow this coding rule; but as long as people
are lazy and copy-and-paste from the existing models, it should be okay.
        regards, tom lane


pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: array_to_string(anyarray, text) that was working in 8.1 is not working in 8.3
Next
From: Louis-David Mitterrand
Date:
Subject: optimizing a query