Re: The documentation for storage type 'plain' actually allows single byte header

From: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
To: suchithjn22(at)gmail(dot)com, pgsql-docs(at)lists(dot)postgresql(dot)org
Subject: Re: The documentation for storage type 'plain' actually allows single byte header
Date: 2023-01-12 14:43:57
Message-ID: d99b3e0beebdde0741d28035aaea7f4af56fa050.camel@cybertec.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs pgsql-hackers

On Tue, 2023-01-10 at 15:53 +0000, PG Doc comments form wrote:
> https://www.postgresql.org/docs/devel/storage-toast.html - This is the
> development version.
>
> > 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".
> Here the first byte 0x17 = 0001 0111 in binary.
> Length + 1 is stored in the length bits (1-7). So Len = 0001011-1 = (11-1)
> [base-10] = 10 [base-10]
> which exactly matches the expected length. Further the data "41" repeated 10
> times also indicates character A (65 or 0x41 in ASCII) repeated 10 times.
>
> So....This does **not** disable 1-B header. That sentence should be removed
> from the documentation unless this is a bug.

I think that the documentation is wrong. The attached patch removes the
offending half-sentence.

Yours,
Laurenz Albe

Attachment Content-Type Size
0001-Fix-documentation-for-STORAGE-PLAIN.patch text/x-patch 1.1 KB

In response to

Responses

Browse pgsql-docs by date

  From Date Subject
Next Message PG Doc comments form 2023-01-12 16:15:10 Background worker
Previous Message Magnus Hagander 2023-01-12 09:32:29 Tightening the trust auth advice

Browse pgsql-hackers by date

  From Date Subject
Next Message Masahiko Sawada 2023-01-12 14:50:32 Re: [PoC] Improve dead tuple storage for lazy vacuum
Previous Message Ashutosh Sharma 2023-01-12 14:38:55 Re: Minimal logical decoding on standbys