Re: BUG #17206: the function array_cat(anyarray, anyarray) does not exist

From: David Turoň <Turon(dot)David(at)seznam(dot)cz>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: <edouard(dot)hibon(at)free(dot)fr>, "PostgreSQL mailing lists" <pgsql-bugs(at)lists(dot)postgresql(dot)org>, "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
Subject: Re: BUG #17206: the function array_cat(anyarray, anyarray) does not exist
Date: 2022-08-11 10:17:10
Message-ID: 13T.5{S3.6C2WnHnPYu}.1YzDSc@scif.cz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi,

anycompatible didn't accept anyarray. Example from system catalogs:

SELECT most_common_freqs[

    array_position(most_common_vals::text::text[],'range_ops'::text)

] * 100 AS occurrence_percent  

FROM pg_stats 

WHERE schemaname='pg_catalog' AND tablename ='pg_opfamily' AND attname=
'opfname';

 occurrence_percent 

--------------------

 2.7397260069847107

must be cast to text::text[] without cast:

ERROR:  function array_position(anyarray, text) does not exist

Is bug that function with anycompatiblearray didn't accept anyarray data
type? 

regards, David Turoň

---------- Původní e-mail ----------
Od: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Komu: David G. Johnston <david(dot)g(dot)johnston(at)gmail(dot)com>
Kopie: edouard(dot)hibon(at)free(dot)fr, PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)
postgresql.org>
Datum: 11. 8. 2022 12:02:17
Předmět: Re: BUG #17206: the function array_cat(anyarray, anyarray) does not
exist
""David G. Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> writes:
> On Thu, Sep 30, 2021 at 2:51 PM PG Bug reporting form <
> noreply(at)postgresql(dot)org> wrote:
>> I get the ERROR : the function array_cat(anyarray, anyarray) does not
>> exist,

> You may find this commit to be illuminating. Work was done in this area
> for v14.
> https://github.com/postgres/postgres/commit/97f73a978fc1aca59c6ad765548ce
0096d95a923

This one might be more so:

https://git.postgresql.org/gitweb/?p=postgresql.git&a=commitdiff&h=9e38c2bb
50

Also see the very first item in the v14 compatibility notes:

User-defined objects that reference certain built-in array functions
along with their argument types must be recreated (Tom Lane)

Specifically, array_append(), array_prepend(), array_cat(),
array_position(), array_positions(), array_remove(), array_replace(),
and width_bucket() used to take anyarray arguments but now take
anycompatiblearray. Therefore, user-defined objects like aggregates
and operators that reference those array function signatures must be
dropped before upgrading, and recreated once the upgrade completes.

regards, tom lane

"

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Pavel Stehule 2022-08-11 11:08:01 Re: BUG #17206: the function array_cat(anyarray, anyarray) does not exist
Previous Message Richard Guo 2022-08-11 02:41:37 Re: BUG #17579: 15beta2: strange error when trying to use MERGE statement as a CTE