pgsql: Make attstattarget nullable

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема pgsql: Make attstattarget nullable
Дата
Msg-id E1rOhjw-001GhF-BW@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Make attstattarget nullable

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 the ANALYZE code.
Only the DDL code deals with attstattarget possibly null.

For system columns, the field is now always null.  The ANALYZE code
skips system columns anyway.

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.)

Reviewed-by: Alvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://www.postgresql.org/message-id/flat/4da8d211-d54d-44b9-9847-f2a9f1184c76@eisentraut.org

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/4f622503d6de975ac87448aea5cea7de4bc140d5

Modified Files
--------------
doc/src/sgml/ref/alter_table.sgml          | 10 ++++---
src/backend/access/common/tupdesc.c        |  4 ---
src/backend/bootstrap/bootstrap.c          |  1 -
src/backend/catalog/genbki.pl              |  1 -
src/backend/catalog/heap.c                 | 18 ++++++-------
src/backend/catalog/index.c                | 21 ++++++++++-----
src/backend/commands/analyze.c             | 21 +++++++++++++--
src/backend/commands/tablecmds.c           | 43 +++++++++++++++++++++++-------
src/backend/parser/gram.y                  | 18 ++++++++-----
src/backend/utils/cache/lsyscache.c        | 27 -------------------
src/bin/pg_dump/pg_dump.c                  |  7 +++--
src/include/catalog/catversion.h           |  2 +-
src/include/catalog/pg_attribute.h         | 20 +++++++-------
src/include/commands/vacuum.h              |  2 +-
src/include/utils/lsyscache.h              |  1 -
src/test/regress/expected/create_index.out |  4 +--
16 files changed, 113 insertions(+), 87 deletions(-)


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

Предыдущее
От: Jeff Davis
Дата:
Сообщение: Re: pgsql: Re-validate connection string in libpqrcv_connect().
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Cope with catcache entries becoming stale during detoasting.