Re: Make attstattarget nullable
От
Peter Eisentraut
Тема
Re: Make attstattarget nullable
Дата
Msg-id
eaed0ccc-c122-4ca1-81df-a0b6b211687a@eisentraut.org
Ответ на
Make attstattarget nullable (Peter Eisentraut)
Список
Дерево обсуждения
Make attstattarget nullable Peter Eisentraut <peter@eisentraut.org>
Re: Make attstattarget nullable Peter Eisentraut <peter@eisentraut.org>
Re: Make attstattarget nullable Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: Make attstattarget nullable Peter Eisentraut <peter@eisentraut.org>
Re: Make attstattarget nullable Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: Make attstattarget nullable Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: Make attstattarget nullable Peter Eisentraut <peter@eisentraut.org>
Re: Make attstattarget nullable Tomas Vondra <tomas.vondra@enterprisedb.com>
Re: Make attstattarget nullable Peter Eisentraut <peter@eisentraut.org>
Re: Make attstattarget nullable Tomas Vondra <tomas.vondra@enterprisedb.com>
Re: Make attstattarget nullable Peter Eisentraut <peter@eisentraut.org>
Re: Make attstattarget nullable Tomas Vondra <tomas.vondra@enterprisedb.com>
Re: Make attstattarget nullable Peter Eisentraut <peter@eisentraut.org>
Re: Make attstattarget nullable Nathan Bossart <nathandbossart@gmail.com>
Here is an updated patch rebased over 3e2e0d5ad7. The 0001 patch stands on its own, but I also tacked on two additional WIP patches that simplify some pg_attribute handling and make these kinds of refactorings simpler in the future. See description in the patches. On 05.12.23 13:52, Peter Eisentraut wrote: > In [0] it was discussed that we could make attstattarget a nullable > column, instead of always storing an explicit -1 default value for most > columns. This patch implements this. > > This changes the pg_attribute field attstattarget into a nullable field > in the variable-length part of the row. If no value is set by the user > for attstattarget, it is now null instead of previously -1. This saves > space in pg_attribute and tuple descriptors for most practical > scenarios. (ATTRIBUTE_FIXED_PART_SIZE is reduced from 108 to 104.) > Also, null is the semantically more correct value. > > The ANALYZE code internally continues to represent the default > statistics target by -1, so that that code can avoid having to deal with > null values. But that is now contained to ANALYZE code. The DDL code > deals with attstattarget possibly null. > > For system columns, the field is now always null but the effective value > 0 (don't analyze) is assumed. > > To set a column's statistics target to the default value, the new > command form ALTER TABLE ... SET STATISTICS DEFAULT can be used. (SET > STATISTICS -1 still works.) > > > [0]: > https://www.postgresql.org/message-id/flat/d07ffc2b-e0e8-77f7-38fb-be921dff71af%40enterprisedb.com
В списке pgsql-hackers по дате отправления
От: Andrew Dunstan
Дата: