From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Christopher Kings-Lynne" <chriskl(at)familyhealth(dot)com(dot)au> |
Cc: | "Gavin Sherry" <swm(at)linuxworld(dot)com(dot)au>, "Hackers" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: BETWEEN SYMMETRIC/ASYMMETRIC |
Date: | 2002-04-11 03:09:20 |
Message-ID: | 26593.1018494560@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
"Christopher Kings-Lynne" <chriskl(at)familyhealth(dot)com(dot)au> writes:
> Since it's really just two ways of writing the same thing, wouldn't bison
> just produce the exact same C code? I'll rewrite it anyway for elegance,
> but just wondering...
The emitted code might or might not be the same --- but duplicate or
near-duplicate chunks of source code are always best avoided, if only
from a maintenance perspective.
>> BTW, I've forgotten whether your patch is purely syntactic or not,
>> but I'd really like to see someone fix things so that BETWEEN has its
>> own expression node tree type and is not expanded into some ugly
>> "A>=B and A<=C" equivalent. This would (a) allow it to be
>> reverse-listed reasonably, and (b) eliminate redundant evaluations of
>> the subexpressions.
> It is purely syntactic. Anyone want to give me a quick hint on how to make
> a new node tree type for BETWEEN?
Try chasing the references to another extant expression node type,
perhaps NullTest. It's fairly straightforward, but tedious to teach
all the relevant places about it.
> What does reverse-listing mean as well?
reverse-listing is what src/backend/utils/adt/ruleutils.c does: produce
something readable from an internal node tree. \d for a view, pg_dump,
and other useful things depend on this.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Christopher Kings-Lynne | 2002-04-11 03:21:50 | Re: help with bison |
Previous Message | Neil Conway | 2002-04-11 03:03:09 | Re: help with bison |