Open AnyhowStep opened 3 years ago
I'm so sick of these bugs and inconsistencies -___-
/**
* See https://github.com/AnyhowStep/sql-compiler/issues/30
* In general, INTERVAL is supposed has the highest precedence...
* According to the documentation, https://dev.mysql.com/doc/refman/5.7/en/operator-precedence.html
*
* However, there are cases where that is not true.
* For some reason IS NULL > INTERVAL
*
* Unsure if COLLATE > INTERVAL or COLLATE < INTERVAL.
* Going to assume COLLATE > INTERVAL.
*
* + INTERVAL > AND
* + INTERVAL > XOR
* + INTERVAL > OR
* + ^ > INTERVAL
* + * > INTERVAL
* + + > INTERVAL
* + << > INTERVAL
* + & > INTERVAL
* + | > INTERVAL
* + = > INTERVAL
* + IS NULL > INTERVAL
* + IS UNKNOWN > INTERVAL
* + LIKE > INTERVAL
* + REGEXP > INTERVAL
* + IN(,) > INTERVAL
* + IN(SELECT) > INTERVAL
* + BETWEEN > INTERVAL
*/
The "real" precedence of INTERVAL+
is somewhere between AND/NOT
and BETWEEN
So, it turns out that I just don't know how Bison works...
And neither do MySQL devs?
https://lists.gnu.org/archive/html/help-bison/2021-06/msg00003.html
https://www.db-fiddle.com/f/gY7xnf8emdtnkg2zZ83ERA/0