X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [64.117.224.130]) by svr1.postgresql.org (Postfix) with ESMTP id 9F149D1C514 for ; Sat, 9 Aug 2003 14:35:32 +0000 (GMT) Received: from svr1.postgresql.org ([64.117.224.193]) by localhost (neptune.hub.org [64.117.224.130]) (amavisd-new, port 10024) with ESMTP id 73113-06 for ; Sat, 9 Aug 2003 11:34:06 -0300 (ADT) Received: from sss.pgh.pa.us (unknown [192.204.191.242]) by svr1.postgresql.org (Postfix) with ESMTP id A4E8ED1C9BE for ; Sat, 9 Aug 2003 11:35:20 -0300 (ADT) Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1]) by sss.pgh.pa.us (8.12.9/8.12.9) with ESMTP id h79EY7Sa005329; Sat, 9 Aug 2003 10:34:08 -0400 (EDT) To: Bertrand Petit Cc: PostgreSQL-sql Subject: Re: Comparing arrays In-reply-to: <20030809121212.A71948@memo.frmug.org> References: <20030809121212.A71948@memo.frmug.org> Comments: In-reply-to Bertrand Petit message dated "Sat, 09 Aug 2003 12:12:12 +0200" Date: Sat, 09 Aug 2003 10:34:07 -0400 Message-ID: <5328.1060439647@sss.pgh.pa.us> From: Tom Lane X-Virus-Scanned: by amavisd-new at postgresql.org X-Archive-Number: 200308/86 X-Sequence-Number: 14702 Bertrand Petit writes: > That query can't be planed because of the following error: "Unable to > identify an ordering operator '<' for type 'character varying[]'". This shortcoming is (at long last) repaired for 7.4. There is no simple solution in earlier releases, I fear. > I'm signaled that the array_out procedure is not defined: "ERROR: > TypeCreate: function array_out(attributes) does not exist". That error > sounds strange as the CREATE TYPE manual describes uniform array type > creation as illustrated above and that array_out() seems to exist as > shown bellow. CREATE TYPE wants an *exact* match of the argument/result datatypes. You could fake it out by creating another pg_proc row pointing at the same internal procedure. However, I think creating a private datatype is the hard way to go about this. A better short-run solution is just to create = and < operators for varchar[]. regards, tom lane