Re: record identical operator - Mailing list pgsql-hackers

From Stephen Frost
Subject Re: record identical operator
Date
Msg-id CAOuzzgrZ30A3XiM0himu_-w8+fa4XdERcW81jAzx8WexFRbNAQ@mail.gmail.com
Whole thread Raw
In response to Re: record identical operator  (Kevin Grittner <kgrittn@ymail.com>)
Responses Re: record identical operator
Re: record identical operator
List pgsql-hackers
Kevin,

On Wednesday, September 18, 2013, Kevin Grittner wrote:
Stephen Frost <sfrost@snowman.net> wrote:

> If it's not actually *changing* (wrt its value), then I'm not at
> all impressed with the notion that it's going to get updated
> anyway.

But PostgreSQL very specifically (and as far as I can tell
*intentionally*) allows you to *change* a value and have it still
be considered *equal*.  

I'm curious where you're going with that- of course you can update a value and have the same value (and possibly the same byte representation) stored over the old. 
 
The concept of equal values really means
more like "equivalent" or "close enough" for common purposes.  It
very specifically does *not* mean the same value.

I'm really curious about your thoughts on unique indexes then. Should two numerics which are the same value but different byte representations be allowed in a unique index?
 
As just one example, think how much easier the citext type would be
to implement if it folded all values to lower case as they were
input, rather than preserving the data as entered and considering
different capitalizations as "equal".

If the type operator says they're equal, then I think we need to consider them as equal. If an update happens with a conditional of:

where col1 = 'Abc'

When col1 is 'ABC' using citext, should we still issue the update?


The notion that in PostgreSQL a value has not changed if the new
value is equal to the old is just flat out wrong.

The value *can* be changed to be equal to the existing value but that doesn't make the two values *not equal*.

Thanks,

Stephen

pgsql-hackers by date:

Previous
From: Fujii Masao
Date:
Subject: Re: pg_stat_statements: calls under-estimation propagation
Next
From: Hannu Krosing
Date:
Subject: Re: record identical operator