From: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
---|---|
To: | Jim Nasby <jim(at)nasby(dot)net> |
Cc: | Greg Stark <stark(at)mit(dot)edu>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: json/jsonb/hstore operator precedence |
Date: | 2014-04-01 22:07:42 |
Message-ID: | 533B38AE.80008@dunslane.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Merlin Moncure | 2014-04-01 23:28:43 | Re: using arrays within structure in ECPG |
Previous Message | Jim Nasby | 2014-04-01 21:42:18 | Re: json/jsonb/hstore operator precedence |