JSqlParser icon indicating copy to clipboard operation
JSqlParser copied to clipboard

4.3Release:Error SQL:select database() from dual

Open ahgaoyong opened this issue 3 years ago • 2 comments

DB : mysql5.7 JSqlParser : 4.3

public static void main(String[] args) {
        String sql = "select database() from dual";
        try {
            Statement statement = CCJSqlParserUtil.parse(sql);
            System.out.println(statement.toString());
        } catch (JSQLParserException e) {
            throw new RuntimeException(e.getCause() + "Failed to process, Error SQL:" + sql);
        }
    }

run result:

Exception in thread "main" java.lang.RuntimeException: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "database" "DATABASE"
    at line 1, column 8.

Was expecting one of:

    "*"
    "STRAIGHT_JOIN"
Failed to process, Error SQL:select database() from dual
	at com.ruoyi.common.Test.main(Test.java:15)

Greetings.

this bug not fixed on release-4.3, but Why does it work normally with 4.3-Snapshot ?


ahgaoyong avatar Dec 13 '21 02:12 ahgaoyong

In one of PRs that were never deployed to 4.3-SNAPSHOT there was a construct included using a new keyword "database". That's why in the release this does not work anymore.

select database2() from dual

works.

wumpz avatar Dec 20 '21 22:12 wumpz

Solved by PR #1382 (which properly allows token for certain use.)

manticore-projects avatar Dec 30 '21 08:12 manticore-projects