Обсуждение: CREATE OPERATOR and precedence

Поиск
Список
Период
Сортировка

CREATE OPERATOR and precedence

От
Marc Cousin
Дата:
Hi,

I just got caught by a precedence problem with CREATE OPERATOR.

Obviously, it was mostly my fault (I didn't think of the precedence of my
operator at all), but I didn't find anything in the CREATE OPERATOR
documentation about it either.

From looking at the code, I think I understood that it has a very low
precedence, but shouldn't it be specified in the documentation (so that at
least distracted people like me think of precedence next time they create an
operator :) ) ?

Cheers

Marc


Re: CREATE OPERATOR and precedence

От
Tom Lane
Дата:
Marc Cousin <cousinmarc@gmail.com> writes:
> I just got caught by a precedence problem with CREATE OPERATOR.

> Obviously, it was mostly my fault (I didn't think of the precedence of my
> operator at all), but I didn't find anything in the CREATE OPERATOR
> documentation about it either.

CREATE OPERATOR has nothing to say on the subject because operator
precedences are hard-wired into the parser and can't be changed by
CREATE OPERATOR.  See

http://www.postgresql.org/docs/8.4/static/sql-syntax-lexical.html#SQL-PRECEDENCE

            regards, tom lane


Re: CREATE OPERATOR and precedence

От
Marc Cousin
Дата:
The Thursday 08 July 2010 16:31:41, Tom Lane wrote :
> Marc Cousin <cousinmarc@gmail.com> writes:
> > I just got caught by a precedence problem with CREATE OPERATOR.
> >
> > Obviously, it was mostly my fault (I didn't think of the precedence of my
> > operator at all), but I didn't find anything in the CREATE OPERATOR
> > documentation about it either.
>
> CREATE OPERATOR has nothing to say on the subject because operator
> precedences are hard-wired into the parser and can't be changed by
> CREATE OPERATOR.  See
>
> http://www.postgresql.org/docs/8.4/static/sql-syntax-lexical.html#SQL-PRECE
> DENCE
>
>             regards, tom lane

Yes, that's what I found out, afterwards.

>From a technical point of view, I obviously totally agree, operators have no
control over precedence, but I was only reporting this because I thought that
it might be helpful to put something like a pointer to this table in the
CREATE OPERATOR doc.

>From the user's point of view, even if precedence is hard-wired in the parser,
a note about it could help here, if only as a reminder. The first thing I
thought when facing the problem was : "how do I specify the precedence ?". I
found out I couldn't, but a pointer or a note would have been even easier.



Re: CREATE OPERATOR and precedence

От
Tom Lane
Дата:
Marc Cousin <cousinmarc@gmail.com> writes:
> From a technical point of view, I obviously totally agree, operators
> have no control over precedence, but I was only reporting this because
> I thought that it might be helpful to put something like a pointer to
> this table in the CREATE OPERATOR doc.

Oh, that's a reasonable idea.  Done in HEAD.

            regards, tom lane