From 693f8d501a10968545e20f1b248306cab2fa9fcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=A9=E7=BB=8D=E9=94=A6?= Date: Sat, 31 Oct 2020 13:19:03 +0800 Subject: [PATCH] replace fastsql with druid (#3132) --- client-adapter/escore/pom.xml | 4 +- .../adapter/es/core/config/SqlParser.java | 42 ++++++------- .../es/core/service/ESSyncService.java | 2 +- .../adapter/rdb/test/SqlParserTest.java | 18 +++--- parse/pom.xml | 4 -- .../inbound/mysql/ddl/DruidDdlParser.java | 62 +++++++++---------- .../inbound/mysql/tsdb/DatabaseTableMeta.java | 2 +- .../inbound/mysql/tsdb/MemoryTableMeta.java | 50 +++++++-------- .../inbound/mysql/tsdb/FastsqlSchemaTest.java | 6 +- .../mysql/tsdb/MemoryTableMeta_DDL_Test.java | 2 +- .../tsdb/MemoryTableMeta_Random_DDL_Test.java | 2 +- pom.xml | 7 +-- 12 files changed, 96 insertions(+), 105 deletions(-) diff --git a/client-adapter/escore/pom.xml b/client-adapter/escore/pom.xml index 6b4915eb..4b71761d 100644 --- a/client-adapter/escore/pom.xml +++ b/client-adapter/escore/pom.xml @@ -22,8 +22,8 @@ provided - com.alibaba.fastsql - fastsql + com.alibaba + druid diff --git a/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/config/SqlParser.java b/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/config/SqlParser.java index 20f445ea..ed583971 100644 --- a/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/config/SqlParser.java +++ b/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/config/SqlParser.java @@ -1,31 +1,31 @@ package com.alibaba.otter.canal.client.adapter.es.core.config; -import static com.alibaba.fastsql.sql.ast.expr.SQLBinaryOperator.BooleanAnd; -import static com.alibaba.fastsql.sql.ast.expr.SQLBinaryOperator.Equality; +import static com.alibaba.druid.sql.ast.expr.SQLBinaryOperator.BooleanAnd; +import static com.alibaba.druid.sql.ast.expr.SQLBinaryOperator.Equality; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; -import com.alibaba.fastsql.sql.SQLUtils; -import com.alibaba.fastsql.sql.ast.SQLExpr; -import com.alibaba.fastsql.sql.ast.expr.SQLBinaryOpExpr; -import com.alibaba.fastsql.sql.ast.expr.SQLCaseExpr; -import com.alibaba.fastsql.sql.ast.expr.SQLCharExpr; -import com.alibaba.fastsql.sql.ast.expr.SQLIdentifierExpr; -import com.alibaba.fastsql.sql.ast.expr.SQLMethodInvokeExpr; -import com.alibaba.fastsql.sql.ast.expr.SQLPropertyExpr; -import com.alibaba.fastsql.sql.ast.statement.SQLExprTableSource; -import com.alibaba.fastsql.sql.ast.statement.SQLJoinTableSource; -import com.alibaba.fastsql.sql.ast.statement.SQLSelectGroupByClause; -import com.alibaba.fastsql.sql.ast.statement.SQLSelectItem; -import com.alibaba.fastsql.sql.ast.statement.SQLSelectStatement; -import com.alibaba.fastsql.sql.ast.statement.SQLSubqueryTableSource; -import com.alibaba.fastsql.sql.ast.statement.SQLTableSource; -import com.alibaba.fastsql.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock; -import com.alibaba.fastsql.sql.dialect.mysql.parser.MySqlStatementParser; -import com.alibaba.fastsql.sql.parser.ParserException; -import com.alibaba.fastsql.sql.parser.SQLStatementParser; +import com.alibaba.druid.sql.SQLUtils; +import com.alibaba.druid.sql.ast.SQLExpr; +import com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr; +import com.alibaba.druid.sql.ast.expr.SQLCaseExpr; +import com.alibaba.druid.sql.ast.expr.SQLCharExpr; +import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr; +import com.alibaba.druid.sql.ast.expr.SQLMethodInvokeExpr; +import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr; +import com.alibaba.druid.sql.ast.statement.SQLExprTableSource; +import com.alibaba.druid.sql.ast.statement.SQLJoinTableSource; +import com.alibaba.druid.sql.ast.statement.SQLSelectGroupByClause; +import com.alibaba.druid.sql.ast.statement.SQLSelectItem; +import com.alibaba.druid.sql.ast.statement.SQLSelectStatement; +import com.alibaba.druid.sql.ast.statement.SQLSubqueryTableSource; +import com.alibaba.druid.sql.ast.statement.SQLTableSource; +import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock; +import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser; +import com.alibaba.druid.sql.parser.ParserException; +import com.alibaba.druid.sql.parser.SQLStatementParser; import com.alibaba.otter.canal.client.adapter.es.core.config.SchemaItem.ColumnItem; import com.alibaba.otter.canal.client.adapter.es.core.config.SchemaItem.FieldItem; import com.alibaba.otter.canal.client.adapter.es.core.config.SchemaItem.RelationFieldsPair; diff --git a/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/service/ESSyncService.java b/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/service/ESSyncService.java index 4ca23af2..31e22eb6 100644 --- a/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/service/ESSyncService.java +++ b/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/service/ESSyncService.java @@ -13,7 +13,7 @@ import org.slf4j.LoggerFactory; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; -import com.alibaba.fastsql.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock; +import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock; import com.alibaba.otter.canal.client.adapter.es.core.config.ESSyncConfig; import com.alibaba.otter.canal.client.adapter.es.core.config.ESSyncConfig.ESMapping; import com.alibaba.otter.canal.client.adapter.es.core.config.SchemaItem; diff --git a/client-adapter/rdb/src/test/java/com/alibaba/otter/canal/client/adapter/rdb/test/SqlParserTest.java b/client-adapter/rdb/src/test/java/com/alibaba/otter/canal/client/adapter/rdb/test/SqlParserTest.java index 698f5059..6fe0d40f 100644 --- a/client-adapter/rdb/src/test/java/com/alibaba/otter/canal/client/adapter/rdb/test/SqlParserTest.java +++ b/client-adapter/rdb/src/test/java/com/alibaba/otter/canal/client/adapter/rdb/test/SqlParserTest.java @@ -1,14 +1,14 @@ //wpackage com.alibaba.otter.canal.client.adapter.rdb.test; // -//import com.alibaba.fastsql.sql.ast.SQLName; -//import com.alibaba.fastsql.sql.ast.SQLStatement; -//import com.alibaba.fastsql.sql.ast.statement.SQLCreateTableStatement; -//import com.alibaba.fastsql.sql.ast.statement.SQLExprTableSource; -//import com.alibaba.fastsql.sql.dialect.mysql.parser.MySqlCreateTableParser; -//import com.alibaba.fastsql.sql.dialect.mysql.parser.MySqlStatementParser; -//import com.alibaba.fastsql.sql.dialect.mysql.visitor.MySqlOutputVisitor; -//import com.alibaba.fastsql.sql.dialect.mysql.visitor.MySqlSchemaStatVisitor; -//import com.alibaba.fastsql.sql.parser.SQLStatementParser; +//import com.alibaba.druid.sql.ast.SQLName; +//import com.alibaba.druid.sql.ast.SQLStatement; +//import com.alibaba.druid.sql.ast.statement.SQLCreateTableStatement; +//import com.alibaba.druid.sql.ast.statement.SQLExprTableSource; +//import com.alibaba.druid.sql.dialect.mysql.parser.MySqlCreateTableParser; +//import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser; +//import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlOutputVisitor; +//import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlSchemaStatVisitor; +//import com.alibaba.druid.sql.parser.SQLStatementParser; // //import java.io.StringWriter; // diff --git a/parse/pom.xml b/parse/pom.xml index 60c2ea93..437f703b 100644 --- a/parse/pom.xml +++ b/parse/pom.xml @@ -49,10 +49,6 @@ com.alibaba druid - - com.alibaba.fastsql - fastsql - mysql mysql-connector-java diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/ddl/DruidDdlParser.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/ddl/DruidDdlParser.java index 197f6252..a65a7fb5 100644 --- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/ddl/DruidDdlParser.java +++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/ddl/DruidDdlParser.java @@ -6,37 +6,37 @@ import java.util.List; import org.apache.commons.lang.StringUtils; -import com.alibaba.fastsql.sql.SQLUtils; -import com.alibaba.fastsql.sql.ast.SQLExpr; -import com.alibaba.fastsql.sql.ast.SQLStatement; -import com.alibaba.fastsql.sql.ast.expr.SQLIdentifierExpr; -import com.alibaba.fastsql.sql.ast.expr.SQLPropertyExpr; -import com.alibaba.fastsql.sql.ast.statement.SQLAlterTableAddConstraint; -import com.alibaba.fastsql.sql.ast.statement.SQLAlterTableAddIndex; -import com.alibaba.fastsql.sql.ast.statement.SQLAlterTableDropConstraint; -import com.alibaba.fastsql.sql.ast.statement.SQLAlterTableDropIndex; -import com.alibaba.fastsql.sql.ast.statement.SQLAlterTableDropKey; -import com.alibaba.fastsql.sql.ast.statement.SQLAlterTableItem; -import com.alibaba.fastsql.sql.ast.statement.SQLAlterTableRename; -import com.alibaba.fastsql.sql.ast.statement.SQLAlterTableStatement; -import com.alibaba.fastsql.sql.ast.statement.SQLConstraint; -import com.alibaba.fastsql.sql.ast.statement.SQLCreateDatabaseStatement; -import com.alibaba.fastsql.sql.ast.statement.SQLCreateIndexStatement; -import com.alibaba.fastsql.sql.ast.statement.SQLCreateTableStatement; -import com.alibaba.fastsql.sql.ast.statement.SQLDeleteStatement; -import com.alibaba.fastsql.sql.ast.statement.SQLDropDatabaseStatement; -import com.alibaba.fastsql.sql.ast.statement.SQLDropIndexStatement; -import com.alibaba.fastsql.sql.ast.statement.SQLDropTableStatement; -import com.alibaba.fastsql.sql.ast.statement.SQLExprTableSource; -import com.alibaba.fastsql.sql.ast.statement.SQLInsertStatement; -import com.alibaba.fastsql.sql.ast.statement.SQLTableSource; -import com.alibaba.fastsql.sql.ast.statement.SQLTruncateStatement; -import com.alibaba.fastsql.sql.ast.statement.SQLUnique; -import com.alibaba.fastsql.sql.ast.statement.SQLUpdateStatement; -import com.alibaba.fastsql.sql.dialect.mysql.ast.statement.MySqlRenameTableStatement; -import com.alibaba.fastsql.sql.dialect.mysql.ast.statement.MySqlRenameTableStatement.Item; -import com.alibaba.fastsql.sql.parser.ParserException; -import com.alibaba.fastsql.util.JdbcConstants; +import com.alibaba.druid.sql.SQLUtils; +import com.alibaba.druid.sql.ast.SQLExpr; +import com.alibaba.druid.sql.ast.SQLStatement; +import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr; +import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr; +import com.alibaba.druid.sql.ast.statement.SQLAlterTableAddConstraint; +import com.alibaba.druid.sql.ast.statement.SQLAlterTableAddIndex; +import com.alibaba.druid.sql.ast.statement.SQLAlterTableDropConstraint; +import com.alibaba.druid.sql.ast.statement.SQLAlterTableDropIndex; +import com.alibaba.druid.sql.ast.statement.SQLAlterTableDropKey; +import com.alibaba.druid.sql.ast.statement.SQLAlterTableItem; +import com.alibaba.druid.sql.ast.statement.SQLAlterTableRename; +import com.alibaba.druid.sql.ast.statement.SQLAlterTableStatement; +import com.alibaba.druid.sql.ast.statement.SQLConstraint; +import com.alibaba.druid.sql.ast.statement.SQLCreateDatabaseStatement; +import com.alibaba.druid.sql.ast.statement.SQLCreateIndexStatement; +import com.alibaba.druid.sql.ast.statement.SQLCreateTableStatement; +import com.alibaba.druid.sql.ast.statement.SQLDeleteStatement; +import com.alibaba.druid.sql.ast.statement.SQLDropDatabaseStatement; +import com.alibaba.druid.sql.ast.statement.SQLDropIndexStatement; +import com.alibaba.druid.sql.ast.statement.SQLDropTableStatement; +import com.alibaba.druid.sql.ast.statement.SQLExprTableSource; +import com.alibaba.druid.sql.ast.statement.SQLInsertStatement; +import com.alibaba.druid.sql.ast.statement.SQLTableSource; +import com.alibaba.druid.sql.ast.statement.SQLTruncateStatement; +import com.alibaba.druid.sql.ast.statement.SQLUnique; +import com.alibaba.druid.sql.ast.statement.SQLUpdateStatement; +import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlRenameTableStatement; +import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlRenameTableStatement.Item; +import com.alibaba.druid.sql.parser.ParserException; +import com.alibaba.druid.util.JdbcConstants; import com.alibaba.otter.canal.protocol.CanalEntry.EventType; /** diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java index bc910d09..976ceb87 100644 --- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java +++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java @@ -23,7 +23,7 @@ import org.slf4j.MDC; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastsql.sql.repository.Schema; +import com.alibaba.druid.sql.repository.Schema; import com.alibaba.otter.canal.filter.CanalEventFilter; import com.alibaba.otter.canal.parse.driver.mysql.packets.server.ResultSetPacket; import com.alibaba.otter.canal.parse.exception.CanalParseException; diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta.java index 4111049b..ca250f13 100644 --- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta.java +++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta.java @@ -10,31 +10,31 @@ import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastsql.sql.ast.SQLDataType; -import com.alibaba.fastsql.sql.ast.SQLDataTypeImpl; -import com.alibaba.fastsql.sql.ast.SQLExpr; -import com.alibaba.fastsql.sql.ast.SQLStatement; -import com.alibaba.fastsql.sql.ast.expr.SQLCharExpr; -import com.alibaba.fastsql.sql.ast.expr.SQLIdentifierExpr; -import com.alibaba.fastsql.sql.ast.expr.SQLMethodInvokeExpr; -import com.alibaba.fastsql.sql.ast.expr.SQLNullExpr; -import com.alibaba.fastsql.sql.ast.expr.SQLPropertyExpr; -import com.alibaba.fastsql.sql.ast.statement.SQLColumnConstraint; -import com.alibaba.fastsql.sql.ast.statement.SQLColumnDefinition; -import com.alibaba.fastsql.sql.ast.statement.SQLColumnPrimaryKey; -import com.alibaba.fastsql.sql.ast.statement.SQLColumnUniqueKey; -import com.alibaba.fastsql.sql.ast.statement.SQLCreateTableStatement; -import com.alibaba.fastsql.sql.ast.statement.SQLNotNullConstraint; -import com.alibaba.fastsql.sql.ast.statement.SQLNullConstraint; -import com.alibaba.fastsql.sql.ast.statement.SQLSelectOrderByItem; -import com.alibaba.fastsql.sql.ast.statement.SQLTableElement; -import com.alibaba.fastsql.sql.dialect.mysql.ast.MySqlPrimaryKey; -import com.alibaba.fastsql.sql.dialect.mysql.ast.MySqlUnique; -import com.alibaba.fastsql.sql.dialect.mysql.ast.expr.MySqlOrderingExpr; -import com.alibaba.fastsql.sql.repository.Schema; -import com.alibaba.fastsql.sql.repository.SchemaObject; -import com.alibaba.fastsql.sql.repository.SchemaRepository; -import com.alibaba.fastsql.util.JdbcConstants; +import com.alibaba.druid.sql.ast.SQLDataType; +import com.alibaba.druid.sql.ast.SQLDataTypeImpl; +import com.alibaba.druid.sql.ast.SQLExpr; +import com.alibaba.druid.sql.ast.SQLStatement; +import com.alibaba.druid.sql.ast.expr.SQLCharExpr; +import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr; +import com.alibaba.druid.sql.ast.expr.SQLMethodInvokeExpr; +import com.alibaba.druid.sql.ast.expr.SQLNullExpr; +import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr; +import com.alibaba.druid.sql.ast.statement.SQLColumnConstraint; +import com.alibaba.druid.sql.ast.statement.SQLColumnDefinition; +import com.alibaba.druid.sql.ast.statement.SQLColumnPrimaryKey; +import com.alibaba.druid.sql.ast.statement.SQLColumnUniqueKey; +import com.alibaba.druid.sql.ast.statement.SQLCreateTableStatement; +import com.alibaba.druid.sql.ast.statement.SQLNotNullConstraint; +import com.alibaba.druid.sql.ast.statement.SQLNullConstraint; +import com.alibaba.druid.sql.ast.statement.SQLSelectOrderByItem; +import com.alibaba.druid.sql.ast.statement.SQLTableElement; +import com.alibaba.druid.sql.dialect.mysql.ast.MySqlPrimaryKey; +import com.alibaba.druid.sql.dialect.mysql.ast.MySqlUnique; +import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlOrderingExpr; +import com.alibaba.druid.sql.repository.Schema; +import com.alibaba.druid.sql.repository.SchemaObject; +import com.alibaba.druid.sql.repository.SchemaRepository; +import com.alibaba.druid.util.JdbcConstants; import com.alibaba.otter.canal.parse.inbound.TableMeta; import com.alibaba.otter.canal.parse.inbound.TableMeta.FieldMeta; import com.alibaba.otter.canal.parse.inbound.mysql.ddl.DruidDdlParser; diff --git a/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/FastsqlSchemaTest.java b/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/FastsqlSchemaTest.java index 52aa7f34..c0913554 100644 --- a/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/FastsqlSchemaTest.java +++ b/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/FastsqlSchemaTest.java @@ -5,9 +5,9 @@ import java.io.IOException; import org.junit.Test; -import com.alibaba.fastsql.sql.repository.SchemaObject; -import com.alibaba.fastsql.sql.repository.SchemaRepository; -import com.alibaba.fastsql.util.JdbcConstants; +import com.alibaba.druid.sql.repository.SchemaObject; +import com.alibaba.druid.sql.repository.SchemaRepository; +import com.alibaba.druid.util.JdbcConstants; /** * @author agapple 2018年6月7日 下午5:36:13 diff --git a/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta_DDL_Test.java b/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta_DDL_Test.java index 60c4bcd7..8c2c6e8e 100644 --- a/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta_DDL_Test.java +++ b/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta_DDL_Test.java @@ -13,7 +13,7 @@ import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import com.alibaba.fastsql.sql.repository.Schema; +import com.alibaba.druid.sql.repository.Schema; import com.alibaba.otter.canal.parse.inbound.TableMeta; import com.google.common.collect.Lists; diff --git a/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta_Random_DDL_Test.java b/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta_Random_DDL_Test.java index 216f41d7..bd2cf95c 100644 --- a/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta_Random_DDL_Test.java +++ b/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta_Random_DDL_Test.java @@ -13,7 +13,7 @@ import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import com.alibaba.fastsql.sql.repository.Schema; +import com.alibaba.druid.sql.repository.Schema; import com.alibaba.otter.canal.parse.inbound.TableMeta; import com.google.common.collect.Lists; diff --git a/pom.xml b/pom.xml index 3ca37ebb..b06b033f 100644 --- a/pom.xml +++ b/pom.xml @@ -257,15 +257,10 @@ ibatis-sqlmap 2.3.4.726 - - com.alibaba.fastsql - fastsql - 2.0.0_preview_973 - com.alibaba druid - 1.1.9 + 1.2.1 com.lmax