Hi,
On 2014-04-22 20:22:23 -0400, Tom Lane wrote:
> And for that matter, it's a bit silly to be testing make_tuple_indirect
> in a BEFORE INSERT/UPDATE trigger, because even if the tuple gets out
> of the trigger without being flattened, it will certainly get flattened
> mere nanoseconds later before it gets written out to disk. (If it did
> not, the test case would fail altogether, since the indirect values
> in memory only survive for the length of the current transaction.)
Well, that's part of what it's essentially testing. We better not end up
with a indirect datum, pointing to memory after all, ending up in a disk
tuple.
> So I'm wondering exactly what use-case this test is supposed to represent.
Testing stuff I was concerned could break without tests. Especially as
this was committed before the rest of the decoding stuff was.
> Or is the whole thing just a toy anyway? Because the more I look at that
> patch, the less it looks like it could do anything useful, short of adding
> a ton of infrastructure that's not there now.
Indirect toast tuples are actively used in logical decoding. So there is
a usecase.
I think there's further potential uses for both the infrastructure for
further toast types in general and specifically indirect toast
tuples. But we'll see.
Greetings,
Andres Freund
-- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services