Re: Manipulating complex types as non-contiguous structures in-memory

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: Pavel Stehule <pavel.stehule@gmail.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2015-05-14T01:01:43Z
Lists: pgsql-hackers
Andres Freund <andres@anarazel.de> writes:
> On 2015-05-13 20:48:51 -0400, Tom Lane wrote:
>> I still think that going back to defining the second byte as the size
>> would be better.  Fortunately, since this is only a matter of in-memory
>> representations, we aren't committed to any particular answer.

> Requiring sizes to be different still strikes me as a disaster. Or is
> that not what you're proposing?

It is, but why would it be a disaster?  We could add StaticAsserts
verifying that the sizes actually are different.  I doubt that the pad
space itself could amount to any issue performance-wise, since it would
only ever exist in transient in-memory tuples, and even that only seldom.

			regards, tom lane


Commits

  1. Use fast path in plpgsql's RETURN/RETURN NEXT in more cases.

  2. Add support for multiple kinds of external toast datums.