From: Laurenz Albe <laurenz.albe@cybertec.at>
To: suchithjn22@gmail.com
To: pgsql-docs@lists.postgresql.org
Subject: Re: The documentation for storage type 'plain' actually allows single byte header
Date: Thu, 12 Jan 2023 15:43:57 +0100
Message-ID: <d99b3e0beebdde0741d28035aaea7f4af56fa050.camel@cybertec.at> (raw)
In-Reply-To: <167336599095.2667301.15497893107226841625@wrigleys.postgresql.org>
References: <167336599095.2667301.15497893107226841625@wrigleys.postgresql.org>
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
Attachments:
[text/x-patch] 0001-Fix-documentation-for-STORAGE-PLAIN.patch (1.1K, ../d99b3e0beebdde0741d28035aaea7f4af56fa050.camel@cybertec.at/2-0001-Fix-documentation-for-STORAGE-PLAIN.patch)
download | inline diff:
From 5bf0b43fe73384a21f59d9ad1f7a8d7cbc81f8c4 Mon Sep 17 00:00:00 2001
From: Laurenz Albe <laurenz.albe@cybertec.at>
Date: Thu, 12 Jan 2023 15:41:56 +0100
Subject: [PATCH] Fix documentation for STORAGE PLAIN
Commit 3e23b68dac0, which introduced single-byte varlena headers,
added documentation that STORAGE PLAIN would prevent such single-byte
headers. This has never been true.
---
doc/src/sgml/storage.sgml | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/doc/src/sgml/storage.sgml b/doc/src/sgml/storage.sgmlindex e5b9f3f1ff..4795a485d0 100644--- a/doc/src/sgml/storage.sgml+++ b/doc/src/sgml/storage.sgml@@ -456,9 +456,7 @@ for storing <acronym>TOAST</acronym>-able columns on disk:
<listitem>
<para>
<literal>PLAIN</literal> 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+ out-of-line storage. This is the only possible strategy for
columns of non-<acronym>TOAST</acronym>-able data types.
</para>
</listitem>
--
2.39.0
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-docs@postgresql.org
Cc: laurenz.albe@cybertec.at, suchithjn22@gmail.com, pgsql-docs@lists.postgresql.org
Subject: Re: The documentation for storage type 'plain' actually allows single byte header
In-Reply-To: <d99b3e0beebdde0741d28035aaea7f4af56fa050.camel@cybertec.at>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox