Re: Error "cannot compare arrays of different element types" - Mailing list pgsql-general

From Florian G. Pflug
Subject Re: Error "cannot compare arrays of different element types"
Date
Msg-id 4197F43D.50601@phlo.org
Whole thread Raw
In response to Re: Error "cannot compare arrays of different element types" when trying to ANALYZE  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Tom Lane wrote:
> "Florian G. Pflug" <fgp@phlo.org> writes:
>
>>Since sometime yesterday, my postgresql (7.4.5) reports
>>"ERROR:  cannot compare arrays of different element types",
>>when I analyze a specific table in my database.
>>...
>>GOLink has the basetype int8, which GOLinkList has the basetype int8[].
>
> I wonder whether you have somehow managed to store some GOLinkList
> entries that internally show their element type as GOLink rather than
> int8.  That shouldn't happen (since we don't support arrays of domain
> types) but it would explain the error message.  Any idea what you did
> to create this situation?

Hm.. We hade some strange problems a week or so ago, where updating
fields of type GOLinkList would mange the numbers we where trying to
store. E.h, we did 'update datagraph."Filiale" set "Historie" =
"Historie" || array[1] where self = ...', but after the the update, the
last number in the "Historie" field would be some strangly large number
(somewhere in the range of a few millions). I'm not sure that these
problems happened for the "Filiale" table - I'll check with my collegue
who stumbled upton this...

Anyway, this only happened for a few records, and the problem vanished
after deleting and reinserting those records. Could it be that we
somehow managed to insert "GOLink"s instead of int8s into the
GOLinkList, and
those got misinterpretet as int8s when selecting, thus causing the
data-mangling?

greetings, Florian Pflug

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Error "cannot compare arrays of different element types" when trying to ANALYZE
Next
From: "Harvey, Allan AC"
Date:
Subject: table configuration tweak for performance gain.