Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ujkiF-00Bbl2-Lu for pgsql-general@arkaria.postgresql.org; Wed, 06 Aug 2025 20:26:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1ujkiD-000xlC-Iz for pgsql-general@arkaria.postgresql.org; Wed, 06 Aug 2025 20:26:13 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ujkiD-000xl3-26 for pgsql-general@lists.postgresql.org; Wed, 06 Aug 2025 20:26:13 +0000 Received: from mail-oi1-x22d.google.com ([2607:f8b0:4864:20::22d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1ujkiA-0016Gy-1h for pgsql-general@lists.postgresql.org; Wed, 06 Aug 2025 20:26:12 +0000 Received: by mail-oi1-x22d.google.com with SMTP id 5614622812f47-401c43671ecso194878b6e.0 for ; Wed, 06 Aug 2025 13:26:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754511970; x=1755116770; darn=lists.postgresql.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=/fNdDfjO0hHqhx2ATo24gdLOWvRwVNANSUJT6N20wzM=; b=m5rvvkobF2bWiug40cNrRgVa2ExUwDp3wL8poHiRCykVGjnZm+qmkCIDpkCj+XW2Vc XJiVoNwZm7prMuqF/5XSTAhgsfL23dU0+9+XfjMSOlQKV90tFFtW34rqkXznxdpYbZ5T Bnp9a4WKh/uFtxX5jddWuSTL6eZKThG9YEHsJ2+3Re7PTKli9ZzNXqF896k3T7putqNe yt5zXN7+yqVBwQN5o5efTTTF09O92F9G9T8N8lGcO4pOPtIPxlHaSi8GZXKQEbqvhNWb 5YS6ZJXuj8XkLycLVB40cmBSTjh/HI90aLAkIe3lxr71sX1wWZW/ucqwPvO6TZwIrUe9 2TsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754511970; x=1755116770; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=/fNdDfjO0hHqhx2ATo24gdLOWvRwVNANSUJT6N20wzM=; b=fuLBPX9QZ2zFE8RPb9mjcQckkFlT9XzSrqq+OudiCuVs2/+w1Yix3FnFP1i/6VTduC Vg8N7hnK5uLxNvFUqTxWjlgt+jh4bvjbBhWlBTneXX93olXQ09YfhP7gWBUgw5vsUTPY 3LvWA0MGlutu4Ec2pyMDoK0WlzGnT/SRaeA+IGLYQ07hDT7xh72pzpRf6z7Ry+5sdZF9 IvPJJihDBxBa7f8wNO9GYbQJIMes0uLon0R2GJIrM257PQ1XWDdr9RPm8yNP95a2Xk9T E8GsXc5/jpIoW1huImdEeq0yeuCkEIFtnaw2ibwlgxN7NMbTBvbxtYO3ioqwsdV27Gm5 t1zA== X-Gm-Message-State: AOJu0Yx1Gpvw2RIxMSGUbHkeGkCvV5yumcz2xZEgqdKGSHiDDyvX28nG HFzQDE5y35Xl3y75kOl3fHJkKCP88eu/fQIlk6SNKWLcM/L+bh90LqQzBP9SuTBQ5NGzIOPDgVv 178c8keD13L7XteQ0flY7/+ORnNP+RwtB20rq X-Gm-Gg: ASbGncvrwAC/EzGXQofDFBWchY63VP6mGu0+SNYrRfxgmEe3PFhrfEo2u7jb+MB0cDE bxx5r5X1wDnICljiiJmQlvqCthue4CMfx0gmjbnf0S0CN3OMvGSeiSGVpcm1CG7fKaHBrjgkgxg /qLBJHPUzACYRVZ8Jyq4ZTDn/NVjWqrMl4e9/q8+Diu5P3Mkn05gXfUuurn/ER60BFDvGallASu B/F5WW2nYWeqwRJCJM= X-Google-Smtp-Source: AGHT+IGlKrTnEDj0NjIMHYU5rdg6dCA5W44przzaM+qRihzbWV3flLTXcMcQbq4xyB68c4SPTgmjmcsZPxr0iB2sgX8= X-Received: by 2002:a05:6808:30a1:b0:434:8e2:33c1 with SMTP id 5614622812f47-43587ced49dmr701484b6e.10.1754511970389; Wed, 06 Aug 2025 13:26:10 -0700 (PDT) MIME-Version: 1.0 References: <1934172.1753462470@sss.pgh.pa.us> <1936547.1753463422@sss.pgh.pa.us> <1940680.1753465819@sss.pgh.pa.us> <1943137.1753467040@sss.pgh.pa.us> <2223785.1753476729@sss.pgh.pa.us> In-Reply-To: From: Ron Johnson Date: Wed, 6 Aug 2025 16:25:59 -0400 X-Gm-Features: Ac12FXxv3Fyyip9zmhPplaFV7o4xZqErNrjXGhy-bN2i0E_9MYNhcI_rPMJAEsY Message-ID: Subject: Re: PostgreSQL Bug with simple function unexpectedly treating varchar parameter as an array To: PostgreSQL Content-Type: multipart/alternative; boundary="000000000000bfd235063bb82606" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000bfd235063bb82606 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Puzzling. I'd do: pg_dump --schema-only xxx_pub_dev_2_db | grep -i -A5 _sa_setup_role Note the -i. That _might_ be important. On Wed, Aug 6, 2025 at 4:18=E2=80=AFPM Rumpi Gravenstein wrote: > Just coming back to this. Don't know how to interpret this: > > xxx_pub_dev_2_db=3D# select proname, pronamespace, oid from pg_proc where > proname like '%sa_setup%'; > proname | pronamespace | oid > ----------------+--------------+--------- > _sa_setup_role | 7038406 | 7869125 > (1 row) > > xxx_pub_dev_2_db=3D# drop FUNCTION if exists _sa_setup_role; > DROP FUNCTION > xxx_pub_dev_2_db=3D# select proname, pronamespace, oid from pg_proc where > proname like '%sa_setup%'; > proname | pronamespace | oid > ---------+--------------+----- > (0 rows) > > xxx_pub_dev_2_db=3D# select _sa_setup_role('af_repo_app'); > ERROR: malformed array literal: "af_repo_app" > LINE 1: select _sa_setup_role('af_repo_app'); > ^ > DETAIL: Array value must start with "{" or dimension information. > xxx_pub_dev_2_db=3D# > > On Fri, Jul 25, 2025 at 4:52=E2=80=AFPM Tom Lane wrot= e: > >> Laurenz Albe writes: >> > On Fri, 2025-07-25 at 14:10 -0400, Tom Lane wrote: >> >> So ... any chance you have a data type named _sa_setup_role? >> >> > ... it could also be a type "sa_setup_role", and "_sa_setup_role" >> > is interpreted as the corresponding array type: >> >> Oh, of course --- that's a good deal more likely than my version. >> >> regards, tom lane >> > > > -- > Rumpi Gravenstein > --=20 Death to , and butter sauce. Don't boil me, I'm still alive. lobster! --000000000000bfd235063bb82606 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Puzzling.

I'= d do:
pg_dump --schema-only xxx_pub_dev_2_db | grep -i -A5 _sa_se= tup_role

Note the -i.=C2=A0 That _migh= t_ be important.

On Wed, A= ug 6, 2025 at 4:18=E2=80=AFPM Rumpi Gravenstein <rgravens@gmail.com> wrote:
Just coming back to this.=C2=A0 Don't know how to i= nterpret this:

xxx_pub_dev_2_db=3D# select proname, pronamespace, oi= d from pg_proc where proname like '%sa_setup%';
=C2=A0 =C2=A0 pr= oname =C2=A0 =C2=A0 | pronamespace | =C2=A0 oid
----------------+-------= -------+---------
_sa_setup_role | =C2=A0 =C2=A0 =C2=A07038406 | 7869125=
(1 row)
=C2=A0
xxx_pub_dev_2_db=3D# drop FUNCTION if exists _sa_s= etup_role;
DROP FUNCTION
xxx_pub_dev_2_db=3D# select proname, proname= space, oid from pg_proc where proname like '%sa_setup%';
proname= | pronamespace | oid
---------+--------------+-----
(0 rows)
=C2= =A0
xxx_pub_dev_2_db=3D# select _sa_setup_role('af_repo_app');ERROR: =C2=A0malformed array literal: "af_repo_app"
LINE 1: = select _sa_setup_role('af_repo_app');
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 ^
DETAIL: =C2=A0Array value must start with "{" or dime= nsion information.
xxx_pub_dev_2_db=3D#

On Fri, Jul 25, 2025 at 4:52=E2= =80=AFPM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Laurenz Albe <laurenz.albe@cybertec.at> writes:
> On Fri, 2025-07-25 at 14:10 -0400, Tom Lane wrote:
>> So ... any chance you have a data type named _sa_setup_role?

> ... it could also be a type "sa_setup_role", and "_sa_s= etup_role"
> is interpreted as the corresponding array type:

Oh, of course --- that's a good deal more likely than my version.

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 regards, tom lane


--
Rumpi Gravenstein


--
Death to <Redacted>, and butter sauce.Don't boil me, I'm still alive.
<Redacted> lobs= ter!
--000000000000bfd235063bb82606--