Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

‘FULLTEXT KEY’ and ‘ADD INDEX USING BTREE’ cause parse error #570

Closed
liangcz opened this issue Mar 30, 2018 · 7 comments
Closed
Assignees
Labels
Milestone

Comments

@liangcz
Copy link

liangcz commented Mar 30, 2018

v1.0.25
parse faield : ALTER TABLE xxxxxADD INDEXidx_order_id (order_id) USING BTREE com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'SING BTREE', expect IDENTIFIER, actual IDENTIFIER pos 132, line 4, column 45, token IDENTIFIER BTREE at com.alibaba.druid.sql.parser.SQLParser.printError(SQLParser.java:284) ~[druid-1.1.6.jar:1.1.6] at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:421) ~[druid-1.1.6.jar:1.1.6]

2018-03-26 09:11:52.244 [destination = kd_caesar_yf , address = test.kuaihuoyun.com/118.178.142.131:3306 , EventParser] WARN c.a.otter.canal.parse.inbound.mysql.tsdb.MemoryTableMeta - parse faield : CREATE TABLE xxxx(idint(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '', ... FULLTEXT KEYft_query_oid (query_oid) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='' com.alibaba.druid.sql.parser.ParserException: syntax error, error in :' KEY ft_query_oid (query_oid) )', expect RPAREN, actual IDENTIFIER pos 2255, line 37, column 16, token IDENTIFIER ft_query_oidat com.alibaba.druid.sql.parser.SQLParser.printError(SQLParser.java:284) ~[druid-1.1.6.jar:1.1.6] at com.alibaba.druid.sql.parser.SQLParser.accept(SQLParser.java:292) ~[druid-1.1.6.jar:1.1.6] at com.alibaba.druid.sql.dialect.mysql.parser.MySqlCreateTableParser.parseCreateTable(MySqlCreateTableParser.java:191) ~[druid-1.1.6.jar:1.1.6] at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseCreate(MySqlStatementParser.java:244) ~[druid-1.1.6.jar:1.1.6] at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:159) ~[druid-1.1.6.jar:1.1.6] at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:70) ~[druid-1.1.6.jar:1.1.6] at com.alibaba.druid.sql.SQLUtils.parseStatements(SQLUtils.java:464) ~[druid-1.1.6.jar:1.1.6] at com.alibaba.druid.sql.repository.SchemaRepository.console(SchemaRepository.java:295) ~[druid-1.1.6.jar:1.1.6] at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.MemoryTableMeta.apply(MemoryTableMeta.java:69) ~[canal.parse-1.0.25.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.DatabaseTableMeta.apply(DatabaseTableMeta.java:104) [canal.parse-1.0.25.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.TableMetaCache.apply(TableMetaCache.java:203) [canal.parse-1.0.25.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.parseQueryEvent(LogEventConvert.java:194) [canal.parse-1.0.25.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.parse(LogEventConvert.java:107) [canal.parse-1.0.25.jar:na]

@agapple
Copy link
Member

agapple commented Mar 30, 2018

能提供一下完整的SQL?或者试试1.0.26的版本?

@liangcz
Copy link
Author

liangcz commented Apr 1, 2018

@agapple sql 如下
ALTER TABLE xxxxx ADD INDEX idx_order_id(order_id) USING BTREE;

CREATE TABLE xxxx (
id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '',
ft_query_oid varchar(32) NOT NULL default '',
FULLTEXT KEY ft_query_oid(query_oid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='' ;

@hnwkz
Copy link

hnwkz commented Apr 3, 2018

我这边也出现这个问题:具体代码如下:
2018-04-03 11:39:30.726 [destination = eam , address = /172.16.XX.XX:XXXX , EventParser] WARN c.a.otter.canal.parse.inbound.mysql.tsdb.MemoryTableMeta - parse faield : ALTER TABLE TB_AT_CREDITCARD_WITHHOLD_INFO
ADD UNIQUE INDEX IDX_UNIQ_IDCARD_ACCOUNT (CUSTOMER_ID_CARD, CUSTOMER_BANK_ACCOUNT) USING BTREE
com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'SING BTREE', expect IDENTIFIER, actual IDENTIFIER pos 139, line 2, column 96, token IDENTIFIER BTREE
at com.alibaba.druid.sql.parser.SQLParser.printError(SQLParser.java:284) ~[druid-1.1.6.jar:1.1.6]
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:421) ~[druid-1.1.6.jar:1.1.6]
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:70) ~[druid-1.1.6.jar:1.1.6]
at com.alibaba.druid.sql.SQLUtils.parseStatements(SQLUtils.java:464) ~[druid-1.1.6.jar:1.1.6]
at com.alibaba.druid.sql.repository.SchemaRepository.console(SchemaRepository.java:295) ~[druid-1.1.6.jar:1.1.6]
at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.MemoryTableMeta.apply(MemoryTableMeta.java:69) ~[canal.parse-1.0.25.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.DatabaseTableMeta.applyHistoryOnMemory(DatabaseTableMeta.java:387) [canal.parse-1.0.25.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.DatabaseTableMeta.rollback(DatabaseTableMeta.java:121) [canal.parse-1.0.25.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.AbstractMysqlEventParser.processTableMeta(AbstractMysqlEventParser.java:72) [canal.parse-1.0.25.jar:na]
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:170) [canal.parse-1.0.25.jar:na]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_161]

@agapple
Copy link
Member

agapple commented Apr 17, 2018

确认为DDL解析bug,26版本里近期会修复

@agapple agapple self-assigned this Apr 17, 2018
@agapple agapple added this to the v1.0.26 milestone Apr 17, 2018
@agapple agapple added the bug label Apr 17, 2018
@agapple agapple closed this as completed Jun 12, 2018
@agapple
Copy link
Member

agapple commented Jun 12, 2018

升级fastsql后已修复

@hyy613
Copy link

hyy613 commented Jun 29, 2018

您好。fastsql只能找到2.0.0_preview_186和2.0.0_preview_151版本。
麻烦请问371的版本地址
http://mvnrepository.com/artifact/com.alibaba.fastsql/fastsql

@agapple
Copy link
Member

agapple commented Jun 30, 2018

可以从我的二进制包里下载一份

LieLieLiekey pushed a commit to LieLieLiekey/canal that referenced this issue May 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants