From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Teodor Sigaev <teodor(at)sigaev(dot)ru> |
Cc: | Gregory Stark <stark(at)enterprisedb(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Garbage pad bytes within datums are bad news |
Date: | 2008-04-04 22:40:04 |
Message-ID: | 9444.1207348804@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Teodor Sigaev <teodor(at)sigaev(dot)ru> writes:
>> That still puts the responsibility on the individual datatype author to
>> get it right. The case I'm most worried about is user-written datatypes
>> that are never going to magically acquire such asserts.
> It seems to me that working with two assumption (binary equal and
> catalog-defined equal function) in the same time is a wrong way. If we decide to
> use binary equal criteria, then why we need catalog-defined equal at all? If we
> use catalog-defined one, why we should require binary equality? Using both way
> in the same time is an error prone. It's possible to say that two value is equal
> if they are binary the same, if not - we should find catalog-defined equal
> operation and call it. Binary comparison is only an optimization.
That only works if there is a unique function that we can say is "THE"
equal operation for the datatype (with a true result guaranteeing that
every operation the datatype has will produce the same results from the
two values). There is no such concept in PG at the moment, and if
memory serves there are at least three built-in types for which the
default btree "equality" function in fact doesn't guarantee that.
So even if we wanted to pursue that path, it wouldn't produce a fix
that we could back-patch.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Gregory Stark | 2008-04-04 22:46:11 | Re: Garbage pad bytes within datums are bad news |
Previous Message | Alvaro Herrera | 2008-04-04 22:30:33 | Re: psql \G command -- send query and output using extended format |