Re: reducing the footprint of ScanKeyword (was Re: Large writable variables)

From: Andres Freund <andres(at)anarazel(dot)de>
To: Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk>
Cc: John Naylor <jcnaylor(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: reducing the footprint of ScanKeyword (was Re: Large writable variables)
Date: 2018-12-20 01:01:14
Message-ID: 20181220010114.k3wv6r25sc7sr7z5@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 2018-12-20 00:54:39 +0000, Andrew Gierth wrote:
> >>>>> "John" == John Naylor <jcnaylor(at)gmail(dot)com> writes:
>
> > On 12/18/18, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> >> I'd be kind of inclined to convert all uses of ScanKeyword to the
> >> new way, if only for consistency's sake. On the other hand, I'm not
> >> the one volunteering to do the work.
>
> John> That's reasonable, as long as the design is nailed down first.
> John> Along those lines, attached is a heavily WIP patch that only
> John> touches plpgsql unreserved keywords, to test out the new
> John> methodology in a limited area. After settling APIs and
> John> name/directory bikeshedding, I'll move on to the other four
> John> keyword types.
>
> Is there any particular reason not to go further and use a perfect hash
> function for the lookup, rather than binary search?

The last time I looked into perfect hash functions, it wasn't easy to
find a generator that competed with a decent normal hashtable (in
particular gperf's are very unconvincing). The added tooling is a
concern imo. OTOH, we're comparing not with a hashtable, but a binary
search, where the latter will usually loose. Wonder if we shouldn't
generate a serialized non-perfect hashtable instead. The lookup code for
a read-only hashtable without concern for adversarial input is pretty
trivial.

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2018-12-20 01:01:46 Re: reducing the footprint of ScanKeyword (was Re: Large writable variables)
Previous Message Andres Freund 2018-12-20 00:56:36 Re: Why are we PageInit'ing buffers in RelationAddExtraBlocks()?