Re: TupleTableSlot abstraction

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp>
Cc: andres(at)anarazel(dot)de, amitdkhan(dot)pg(at)gmail(dot)com, ashutosh(dot)bapat(at)enterprisedb(dot)com, pgsql-hackers(at)postgresql(dot)org, robertmhaas(at)gmail(dot)com, kommi(dot)haribabu(at)gmail(dot)com, alvherre(at)2ndquadrant(dot)com, amit(dot)kapila16(at)gmail(dot)com
Subject: Re: TupleTableSlot abstraction
Date: 2018-10-02 02:21:58
Message-ID: 9677.1538446918@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp> writes:
> At Tue, 25 Sep 2018 16:45:09 -0700, Andres Freund <andres(at)anarazel(dot)de> wrote in <20180925234509(dot)3hrrf6tmvy5tfith(at)alap3(dot)anarazel(dot)de>
>> On 2018-09-04 18:35:34 +0530, Amit Khandekar wrote:
>>> Pack the boolean members in TupleTableSlot into a 16 bit tts_flags.
>>> This reduces the size of TupleTableSlot since each bool member takes
>>> at least a byte on the platforms where bool is defined as a char.

> About bitfields, an advantage of it is debugger awareness. We
> don't need to look aside to the definitions of bitwise macros
> while using debugger. And the current code is preserved in
> appearance by using it.

FWIW, I would expect a change like this to be a net loss performance-wise
on most platforms. Testing the contents of a byte-wide variable is pretty
cheap on any architecture invented later than ~ 1970. Testing a bit,
though, requires a masking operation that is not free. I am not seeing
how making TupleTableSlot a little smaller buys that back ... we don't
normally have that many active slots in a plan.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bossart, Nathan 2018-10-02 02:22:42 Re: Add SKIP LOCKED to VACUUM and ANALYZE
Previous Message David Rowley 2018-10-02 02:21:06 Re: Subplan result caching