]> granicus.if.org Git - postgresql/commit
Fix problems with parentheses around sub-SELECT --- for the last time,
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 15 Jan 2001 20:36:36 +0000 (20:36 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 15 Jan 2001 20:36:36 +0000 (20:36 +0000)
commit3db4056e22b0c6b2adc92543baf8408d2894fe91
tree91dddf00fb651e6bf0edadacedc4c28d48564045
parentefd6cade8368a04c92a763e0024f147939f48e2d
Fix problems with parentheses around sub-SELECT --- for the last time,
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.
src/backend/parser/gram.y