From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | henrik(dot)pauli(at)uhusystems(dot)com |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #13829: Exponentiation operator is left-associative |
Date: | 2015-12-22 16:00:47 |
Message-ID: | 14107.1450800047@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
henrik(dot)pauli(at)uhusystems(dot)com writes:
> The convention with exponentation is the following (according to Wikipedia):
> "Without parentheses to modify the order of calculation, by convention the
> order is top-down, not bottom-up" -- in programming terms, it means that
> exponentation is by default right-associative.
> ...
> However, PostgreSQL -- as indeed mentioned in the docs -- considers the
> paren-less version more like the one where the left side is parenthesised:
Yeah. I can't see us changing this. Aside from backwards-compatibility
considerations, "^" is not so thoroughly identified with exponentiation
that no-one would ever make a custom operator named "^" that did something
else. Since operator precedence and associativity are determined solely
by the operator name, right-to-left associativity would have to apply to
such custom operators too, which would be mighty surprising if their
semantics were something else.
However, pointing the issue out somewhere near Table 9-2. Mathematical
Operators seems reasonable. The minimum change would just be to call it
out in the table entry itself:
Operator Description Example Result
...
^ exponentiation (associates left to right) 2.0 ^ 3.0 8
Do you think that's sufficient?
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Kevin Grittner | 2015-12-22 16:31:56 | Re: Fwd: Cannot log in as newly created user EXTRA INFO |
Previous Message | Kevin Grittner | 2015-12-22 15:49:06 | Re: BUG #13824: EXISTS sometimes uses seq scan instead of index |