JSqlParser icon indicating copy to clipboard operation
JSqlParser copied to clipboard

Failed to Parse Alter table XXX add colum(MySQL:GENERATED ALWAYS AS)

Open tjw8803 opened this issue 7 years ago • 0 comments

Actual Behavior

the sql is as follow:

alter table tbl_demo add column demo_url varchar(128) GENERATED ALWAYS AS (JSON_UNQUOTE(detail->'$.myurl'));

Expected Behavior

parse normally for [GENERATED ALWAYS AS] of MySQL.

Steps to Reproduce the Problem

CCJSqlParserManager pm = new CCJSqlParserManager();
net.sf.jsqlparser.statement.Statement statement = pm.parse(new StringReader(ddl));

Exception

Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "AS" "AS"
    at line 3, column 80.

Was expecting one of:

    "("
    "+"
    ","
    "-"
    "."
    ";"
    "="
    "CASCADE"
    "CHECK"
    "COMMIT"
    "CONSTRAINT"
    "DELETE"
    "EXCLUDE"
    "FOREIGN"
    "KEY"
    "NOT"
    "NULL"
    "ON"
    "PRIMARY"
    "REFERENCES"
    "ROWS"
    "TABLESPACE"
    "TEMP"
    "TEMPORARY"
    "UNIQUE"
    "UNSIGNED"
    "UPDATE"
    "USING"
    "WHERE"
    "WITH"
    <EOF>
    <K_TIME_KEY_EXPR>
    <S_CHAR_LITERAL>
    <S_DOUBLE>
    <S_IDENTIFIER>
    <S_LONG>
    <S_QUOTED_IDENTIFIER>

	at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:18047)
	at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:17900)
	at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:91)
	at net.sf.jsqlparser.parser.CCJSqlParserManager.parse(CCJSqlParserManager.java:38)
	... 4 more
Caused by:
net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "AS" "AS"
    at line 3, column 80.

Was expecting one of:

    "("
    "+"
    ","
    "-"
    "."
    ";"
    "="
    "CASCADE"
    "CHECK"
    "COMMIT"
    "CONSTRAINT"
    "DELETE"
    "EXCLUDE"
    "FOREIGN"
    "KEY"
    "NOT"
    "NULL"
    "ON"
    "PRIMARY"
    "REFERENCES"
    "ROWS"
    "TABLESPACE"
    "TEMP"
    "TEMPORARY"
    "UNIQUE"
    "UNSIGNED"
    "UPDATE"
    "USING"
    "WHERE"
    "WITH"
    <EOF>
    <K_TIME_KEY_EXPR>
    <S_CHAR_LITERAL>
    <S_DOUBLE>
    <S_IDENTIFIER>
    <S_LONG>
    <S_QUOTED_IDENTIFIER>

Specifications

  • Version:1.2
  • Platform:Win10
  • Subsystem:

tjw8803 avatar Jul 02 '18 03:07 tjw8803