Re: reducing the footprint of ScanKeyword (was Re: Large writable variables)
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: John Naylor <jcnaylor@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Robert Haas <robertmhaas@gmail.com>, Andrew Gierth <andrew@tao11.riddles.org.uk>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2018-12-31T01:48:01Z
Lists: pgsql-hackers
Hi, On 2018-12-29 16:59:52 -0500, John Naylor wrote: > I think 0001 with complete keyword lookup replacement is in decent > enough shape to post. Make check-world passes. A few notes and > caveats: I tried to take this for a spin, an for me the build fails because various frontend programs don't have KeywordOffsets/Strings defined, but reference it through various functions exposed to the frontend (like fmtId()). That I see that error but you don't is probably related to me using -fuse-ld=gold in CFLAGS. I can "fix" this by including kwlist_d.h in common/keywords.c regardless of FRONTEND. That also lead me to discover that the build dependencies somewhere aren't correctly set-up, because I need to force a clean rebuild to trigger the problem again, just changing keywords.c back doesn't trigger the problem. Greetings, Andres Freund
Commits
-
Use perfect hashing, instead of binary search, for keyword lookup.
- c64d0cd5ce24 12.0 landed
-
Reduce the size of the fmgr_builtin_oid_index[] array.
- 8ff5f824dca7 12.0 landed
-
Replace the data structure used for keyword lookup.
- afb0d0712f1a 12.0 landed