Change the way UESCAPE is lexed, to reduce the size of the flex tables.

Heikki Linnakangas <heikki.linnakangas@iki.fi>

Commit: a5ff502fceadc7c203b0d7a11b45c73f1b421f69
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: 2013-03-14T17:04:43Z
Releases: 9.3.0
Change the way UESCAPE is lexed, to reduce the size of the flex tables.

The error rule used to avoid backtracking with the U&'...' UESCAPE 'x'
syntax bloated the flex tables, so refactor that. This patch makes the error
rule shorter, by introducing a new exclusive flex state that's entered after
parsing U&'...'. This shrinks the postgres binary by about 220kB.

Files

PathChange+/−
src/backend/parser/scan.l modified +62 −19