CURRENT_TIMESTAMP is detected as a reserved word an generate errors when used in JOIN clause
Opened this issue · 0 comments
mvachette commented
The following code will produce an error
$sql = "SELECT foo FROM barTable LEFT JOIN bazTable ON barTable.a = bazTable.a AND bazTable.d <= CURRENT_TIMESTAMP";
$parser = new PHPSQLParser();
$creator = new PHPSQLCreator();
$parser->parse($sql);
$creator->create($parser->parsed);
Error : PHPSQLParser\exceptions\UnableToCreateSQLException : unknown [expr_type] = reserved in "expression ref_clause" [6]
This is due to the fact that "CURRENT_TIMESTAMP" is not detected as a function.
I managed to solve this by adding "CURRENT_TIMESTAMP" to the list of functions in the PHPSQLParserConstants
class. I will propose a PR with this fix.