From: | "Andrew Dunstan" <andrew(at)dunslane(dot)net> |
---|---|
To: | <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | <peter_e(at)gmx(dot)net>, <kleptog(at)svana(dot)org>, <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Updatable views/with check option parsing |
Date: | 2006-05-26 23:02:31 |
Message-ID: | 1852.24.211.165.134.1148684551.squirrel@www.dunslane.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Tom Lane said:
> Peter Eisentraut <peter_e(at)gmx(dot)net> writes:
>> Andrew Dunstan wrote:
>>> "The GLR parsers require a compiler for ISO C89 or later. In
>>> addition, they use the inline keyword, which is not C89, but is C99
>>> and is a common extension in pre-C99 compilers. It is up to the user
>>> of these parsers to handle portability issues."
>
>> We already use inline, or handle its nonexistence, respectively.
>
> Yeah, I don't see anything in that statement that we don't assume
> already. The interesting question to me is how much different is
> GLR from garden-variety bison; in particular, what's the parser
> performance like?
>
As I understand it, it runs one parser pretty much like the standard LALR(1)
case, until it finds an ambiguity (shift/reduce or reduce/reduce) at which
stage it clones the parser to take parallel paths, working in lockstep, and
storing up semantic actions. When one of the clones encounters an error it
goes away, and the surviving clone takes its stored semantic actions. If
that's true, then probably the only significant performance hit is in cases
of ambiguity, and we would only have a handful of those, each lasting for
one token, so the performance hit should be very small. We'd have to test
it, of course ;-)
cheers
andrew
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2006-05-26 23:23:20 | Re: Question about "name" datatype |
Previous Message | Tom Lane | 2006-05-26 23:00:19 | Re: Inefficient bytea escaping? |