Re: Commit 86dc90056 - Rework planning and execution of UPDATE and DELETE

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Commit 86dc90056 - Rework planning and execution of UPDATE and DELETE
Дата
Msg-id 226895.1618848836@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Commit 86dc90056 - Rework planning and execution of UPDATE and DELETE  (Robert Haas <robertmhaas@gmail.com>)
Ответы Re: Commit 86dc90056 - Rework planning and execution of UPDATE and DELETE
Список pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes:
> On Mon, Apr 19, 2021 at 10:34 AM Amit Langote <amitlangote09@gmail.com> wrote:
>> After 86dc90056, the new tuple is computed with the target table's
>> actual TupleDesc, so the new value respects the column's attstorage,
>> which makes me think the new behavior is not wrong.

> I would not have expected SET STORAGE PLAIN to disable the use of
> short varlena headers.

Au contraire.  The reason that mode exists at all (for varlena types)
is to support data types that haven't been updated for TOAST.  Perhaps
that's now the empty set, but it's not really our job to take away the
capability.  If you really want MAIN you should say that, not quibble
that PLAIN doesn't mean what it's always been understood to mean.

I don't think that this behavior quite breaks such data types, because
if you actually have a type like that then you've set typstorage = PLAIN
and we will not allow there to be any tupdescs in the system that differ
from that.  The issue is just that if you set a particular column of
an otherwise-toastable type to be PLAIN then we're not terribly rigorous
about enforcing that, because values that have been toasted can get into
the column without being fully detoasted.  (I've not checked, but I
suspect that you could also get a compressed or toasted-out-of-line value
into such a column if you tried hard enough.)

Related to this is that when you update some other column(s) of the table,
we don't try to force detoasting of existing values in a column recently
set to PLAIN.  Personally I think that's fine, so it means that the
lack of rigor is inherent.

            regards, tom lane



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

Предыдущее
От: PegoraroF10
Дата:
Сообщение: Re: More info on pg_stat_activity Wait Event Name when is DataFileRead
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: Reduce the number of special cases to build contrib modules on windows