• Tom Lane's avatar
    Fix problems with parentheses around sub-SELECT --- for the last time, · 3db4056e
    Tom Lane authored
    I hope.  I finally realized that we were going at it backwards: when
    there are excess parentheses, they need to be treated as part of the
    sub-SELECT, not as part of the surrounding expression.  Although either
    choice yields an unambiguous grammar, only this way produces a grammar
    that is LALR(1).  With the old approach we were guaranteed to fail on
    either 'SELECT (((SELECT 2)) + 3)' or
    'SELECT (((SELECT 2)) UNION SELECT 2)' depending on which way we
    resolve the initial shift/reduce conflict.  With the new way, the same
    reduction track can be followed in both cases until we have advanced
    far enough to know whether we are done with the sub-SELECT or not.
    3db4056e
gram.y 149 KB