From: | Peter Eisentraut <peter(at)eisentraut(dot)org> |
---|---|
To: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Make attstattarget nullable |
Date: | 2023-12-23 12:56:29 |
Message-ID: | eaed0ccc-c122-4ca1-81df-a0b6b211687a@eisentraut.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
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
Attachment | Content-Type | Size |
---|---|---|
v2-0001-Make-attstattarget-nullable.patch | text/plain | 22.7 KB |
v2-0002-WIP-Generalize-handling-of-nullable-pg_attribute-.patch | text/plain | 5.4 KB |
v2-0003-WIP-Add-attstattarget-to-Form_pg_attribute_extra.patch | text/plain | 9.7 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Dunstan | 2023-12-23 13:20:07 | Re: authentication/t/001_password.pl trashes ~/.psql_history |
Previous Message | Pavel Stehule | 2023-12-23 12:36:10 | Re: date_trunc function in interval version |