On 04/01/2014 05:42 PM, Jim Nasby wrote:
On 4/1/14, 3:07 PM, Andrew Dunstan wrote:
What are cases where things would break if we changed the precedence
of -> and ->>? ISTM that's what we really should do if there's some
way to manage the backwards compatibility...
There is no provision for setting the precedence of any operators.
The precedence is set in the grammar, and these all have the same
precedence. What you're suggesting would a cure far worse than the
disease, I strongly suspect. You just need to learn to live with this.
What really bugs me about the example is that <> has a different
precedence from =, which seems more than odd. The example works just
fine if you use = instead of <>. But I guess it's been that way for a
very long time and there's not much to be done about it.
I'm confused... first you say there's no precedence and then you're
saying that there is? Which is it?
No I didn't say there was no precedence. Please reread what I said. I
said there was no provision for setting the precedence. There is
precedence of course, but it's hardcoded.
ISTM that most languages set the priority of de-referencing operators
to be quite high, so I don't see how that would be a disaster?
The way the grammar works ALL the composite operators have the same
precedence. It has no notion that -> is a dereference operator. You're
suggesting something without actually looking at the code. Look at
gram.y and scan.l and you might understand.
Of course, changing the precedence of = and <> certainly would be a
disaster; I'm not suggesting that.
There is arguably nothing wrong with the precedence of -> and ->>. The
reason for the problem Greg reported is that <> probably has its
precedence set too low. And no, we can't change it.
cheers
andrew
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers