JSqlParser icon indicating copy to clipboard operation
JSqlParser copied to clipboard

Failed to parse MySQL statement and add common index statement with alter

Open t291436520 opened this issue 4 years ago • 2 comments

Failed to parse MySQL statement and add common index statement with alter

Version: <groupId>com.github.jsqlparser</groupId> <artifactId>jsqlparser</artifactId> 4.1 Parsed statement : ALTER TABLE table_name8 ADD index (column_1) This statement can be executed normally in the database。

Error info : ` net.sf.jsqlparser.JSQLParserException: Encountered unexpected token: "(" "(" at line 1, column 35.

Was expecting one of:

"COMMENT"

at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatements(CCJSqlParserUtil.java:215)
at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatements(CCJSqlParserUtil.java:203)
at com.holder.cdc.database.dynamicSql.utils.MysqlDdl2PgDdlUtils.convert(MysqlDdl2PgDdlUtils.java:24)
at com.holder.cdc.database.dynamicSql.utils.MysqlDdl2PgDdlUtils.lambda$main$5(MysqlDdl2PgDdlUtils.java:195)
at java.util.ArrayList.forEach(ArrayList.java:1259)
at com.holder.cdc.database.dynamicSql.utils.MysqlDdl2PgDdlUtils.main(MysqlDdl2PgDdlUtils.java:192)

Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "(" "(" at line 1, column 35.

Was expecting one of:

"COMMENT"

at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:26917)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:26753)
at net.sf.jsqlparser.parser.CCJSqlParser.AlterExpression(CCJSqlParser.java:15418)
at net.sf.jsqlparser.parser.CCJSqlParser.AlterTable(CCJSqlParser.java:15646)
at net.sf.jsqlparser.parser.CCJSqlParser.SingleStatement(CCJSqlParser.java:190)
at net.sf.jsqlparser.parser.CCJSqlParser.Statements(CCJSqlParser.java:547)
at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatements(CCJSqlParserUtil.java:213)
... 5 more

`

Excuse me, is this the problem I use?

t291436520 avatar Jul 30 '21 04:07 t291436520

Greetings.

This particular syntax

ALTER TABLE table_name8 ADD index (column_1)

is unsupported.

Standard compliant syntax

ALTER TABLE table_name8 ADD PRIMARY KEY (column_1)

will work.

manticore-projects avatar Jul 30 '21 06:07 manticore-projects

Unnamed indexes are not allowed but named are:

ALTER TABLE table_name8 ADD index myidx (column_1)

wumpz avatar Aug 02 '21 20:08 wumpz