How to read a value when it is VARATT EXTERNAL ONDISK from logical replication decoder

Started by Adam Dratwińskiabout 9 years ago2 messageshackers
Jump to latest
#1Adam Dratwiński
adam.dratwinski@gmail.com

Hello everyone,

I am writing a custom logical replication decoder, and I took test decoder
from Postgres sources as an example.

Could anyone tell me how to read "unchanged toast datum" in case it is
VARTT_IS_EXTERNAL_ONDISK.

In the test decoder it is ignored:

https://github.com/postgres/postgres/blob/master/contrib/test_decoding/test_decoding.c#L377

Cheers
Adam

#2Andres Freund
andres@anarazel.de
In reply to: Adam Dratwiński (#1)
Re: How to read a value when it is VARATT EXTERNAL ONDISK from logical replication decoder

Hi,

On 2017-02-20 11:44:58 +0100, Adam Dratwiński wrote:

Hello everyone,

I am writing a custom logical replication decoder, and I took test decoder
from Postgres sources as an example.

Could anyone tell me how to read "unchanged toast datum" in case it is
VARTT_IS_EXTERNAL_ONDISK.

You can't by default. It's simply not available data - we'd have to log
a lot more data to make that fully available. If you change the replica
identity settings to FULL, the full old data (including toasted data)
will be logged.

Regards,

Andres

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers