Re: Rewritten rows on unchanged values

Поиск
Список
Период
Сортировка
От Albe Laurenz
Тема Re: Rewritten rows on unchanged values
Дата
Msg-id A737B7A37273E048B164557ADEF4A58B057CAB9A@ntex2010a.host.magwien.gv.at
обсуждение исходный текст
Ответ на Re: Rewritten rows on unchanged values  (Adrian Klaver <adrian.klaver@gmail.com>)
Список pgsql-general
Adrian Klaver wrote:
> On 03/22/2013 05:32 AM, Bertrand Janin wrote:
>> I noticed how rows were re-written to a different location (new ctid) even
>> without changes to the values. This illustrate what I mean:

>>      -- ctid = (0,1)
>>      SELECT id, xmin, ctid, value
>>      FROM demo
>>      WHERE id = 1;
>>
>>      UPDATE demo
>>      SET value = value
>>      WHERE id = 1;
>>
>>      -- ctid = (8,41)
>>      SELECT id, xmin, ctid, value
>>      FROM demo
>>      WHERE id = 1;
>>
>> I'm curious as to what would prevent keeping the row where it is and maybe
>> change xmin in place?
> 
> Because Postgres uses MVCC:
> 
> http://www.postgresql.org/docs/9.2/static/mvcc-intro.html
> 
> So an update is a delete and an insert and you are really seeing a new row.

You could use a BEFORE UPDATE trigger that returns
NULL if all fields are unchanged, but I'm not sure if
that is what the OP is looking for.

Yours,
Laurenz Albe

В списке pgsql-general по дате отправления:

Предыдущее
От: Adrian Klaver
Дата:
Сообщение: Re: Rewritten rows on unchanged values
Следующее
От: Ryan Kelly
Дата:
Сообщение: Re: Rewritten rows on unchanged values