Make attstattarget nullable

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема Make attstattarget nullable
Дата
Msg-id 4da8d211-d54d-44b9-9847-f2a9f1184c76@eisentraut.org
обсуждение исходный текст
Ответы Re: Make attstattarget nullable  (Peter Eisentraut <peter@eisentraut.org>)
Список pgsql-hackers
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 по дате отправления:

Предыдущее
От: Amit Langote
Дата:
Сообщение: Re: remaining sql/json patches
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: table inheritance versus column compression and storage settings