From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Rémi Cura <remi(dot)cura(at)gmail(dot)com> |
Cc: | PostgreSQL General <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: TOAST : partial detoasting : only a small part of a toasted value (for pgpointcloud) |
Date: | 2018-11-14 00:00:16 |
Message-ID: | 27283.1542153616@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
=?UTF-8?Q?R=C3=A9mi_Cura?= <remi(dot)cura(at)gmail(dot)com> writes:
> So the pgpointcloud store sometimes very large groups of points into one
> row (TOASTED), something along few kB to few MB. TOAST would be in EXTERNAL
> mode (no compression).
> Sometimes we only want to access a part of this data (one or several blocks
> within the full data).
>> From what I understand, for the moment it requires to fetch all the data
> from disk, then de-toast it, then select only the part of the data we are
> interested in.
> Yet I think it is possible to detoast only a subset of the data (and thus
> fetch only some part of the data), considering that the [doc on toast](
> https://www.postgresql.org/docs/11/storage-toast.html) says
>> " Use of EXTERNAL will make substring operations on wide text and bytea
> columns faster
>> (at the penalty of increased storage space) because these operations are
> optimized
>> to fetch only the required parts of the out-of-line value when it is not
> compressed. "
> So my question is how does it work, how easy would it be to implement for
> pgpointcloud?
See PG_DETOAST_DATUM_SLICE and users of that macro.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Rich Shepard | 2018-11-14 00:24:40 | Re: Move cluster to new host, upgraded version |
Previous Message | Adrian Klaver | 2018-11-13 23:55:01 | Re: Move cluster to new host, upgraded version |