Re: Make attstattarget nullable - Mailing list pgsql-hackers

From Peter Eisentraut
Subject Re: Make attstattarget nullable
Date
Msg-id eaed0ccc-c122-4ca1-81df-a0b6b211687a@eisentraut.org
Whole thread Raw
In response to Make attstattarget nullable  (Peter Eisentraut <peter@eisentraut.org>)
Responses Re: Make attstattarget nullable
List 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

pgsql-hackers by date:

Previous
From: Pavel Stehule
Date:
Subject: Re: date_trunc function in interval version
Next
From: Andrew Dunstan
Date:
Subject: Re: authentication/t/001_password.pl trashes ~/.psql_history