From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> |
Cc: | pgsql-hackers(at)postgreSQL(dot)org |
Subject: | Re: [HACKERS] Unary % operator is broken in current sources |
Date: | 1999-03-21 15:55:11 |
Message-ID: | 7395.922031711@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> writes:
> Not sure. I know I only changed % to have precedence like /. No one is
> complaining, and I think the problems are restricted to +,-,*,/, and %.
> Should I fix any of these other ones?
Right now I think % is the only problem, since it's the only operator
that has all three syntaxes (infix, prefix, postfix):
regression=> select distinct p1.oprname, p1.oprkind, p2.oprkind from
regression-> pg_operator as p1, pg_operator as p2
regression-> where p1.oprname = p2.oprname and p1.oprkind < p2.oprkind;
oprname|oprkind|oprkind
-------+-------+-------
# |b |l
% |b |l
% |b |r
% |l |r
- |b |l
?- |b |l
?| |b |l
@ |b |l
(8 rows)
Having both infix and prefix syntaxes doesn't seem to confuse the
parser --- at least, we have regress tests of both prefix @ and
infix @ (likewise #) and they're not complaining. Probably you need
a postfix syntax plus one or both of the other syntaxes to yield an
ambiguity that will confuse the parser. I haven't tried to track it
down in the grammar, however.
My concern with hacking in a special case for '%' in the grammar
is that we'll need to do it again anytime someone adds an operator
with the right set of syntaxes. It'd be better to understand *why*
the parser is having a hard time with this all of a sudden, and fix it
without reference to any particular operator. Postgres is supposed to
be extensible after all...
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 1999-03-21 17:00:13 | Re: [HACKERS] min() and max() causing aborts |
Previous Message | Thomas Lockhart | 1999-03-21 15:53:55 | Re: [HACKERS] non existing table error message changed? |