Re: The documentation for storage type 'plain' actually allows single byte header - Mailing list pgsql-docs

From Laurenz Albe
Subject Re: The documentation for storage type 'plain' actually allows single byte header
Date
Msg-id 245d0f085c68fe0b877235d76a7c32a71454f39b.camel@cybertec.at
Whole thread Raw
In response to Re: The documentation for storage type 'plain' actually allows single byte header  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: The documentation for storage type 'plain' actually allows single byte header  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-docs
On Sun, 2023-01-15 at 16:40 -0500, Tom Lane wrote:
> Laurenz Albe <laurenz.albe@cybertec.at> writes:
> > On Tue, 2023-01-10 at 15:53 +0000, PG Doc comments form wrote:
> > > > PLAIN prevents either compression or out-of-line storage; furthermore it
> > > > disables use of single-byte headers for varlena types. This is the only
> > > > possible strategy for columns of non-TOAST-able data types.
>
> > > However, it does allow "single byte" headers. How to verify this?
> > > CREATE EXTENSION pageinspect;
> > > CREATE TABLE test(a VARCHAR(10000) STORAGE PLAIN);
> > > INSERT INTO test VALUES (repeat('A',10));
> > >
> > > Now peek into the page with pageinspect functions
> > >
> > > SELECT left(encode(t_data, 'hex'), 40) FROM
> > > heap_page_items(get_raw_page('test', 0));
> > >
> > > This returned value of "1741414141414141414141".
>
> > I think that the documentation is wrong.  The attached patch removes the
> > offending half-sentence.
>
> The documentation is correct, what is broken is the code.

I see.  But what is the reason for that anyway?  Why not allow short varlena
headers if TOAST storage is set to PLAIN?

Yours,
Laurenz Albe



pgsql-docs by date:

Previous
From: Andres Freund
Date:
Subject: Re: The documentation for storage type 'plain' actually allows single byte header
Next
From: PG Doc comments form
Date:
Subject: Typo in 2.7 Aggregate Functions