From bb8fec963b8feff9a1737a80eaa9140a951dd89d Mon Sep 17 00:00:00 2001 From: qmzhang <578967933@qq.com> Date: Thu, 5 Jul 2018 16:57:36 +0800 Subject: [PATCH] add create/drop databases event support --- .../parse/inbound/mysql/ddl/DruidDdlParser.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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 243a9c74..efb3870a 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 @@ -15,6 +15,7 @@ import com.alibaba.fastsql.sql.dialect.mysql.ast.statement.MySqlRenameTableState import com.alibaba.fastsql.sql.parser.ParserException; import com.alibaba.fastsql.util.JdbcConstants; import com.alibaba.otter.canal.protocol.CanalEntry.EventType; +import org.apache.commons.lang.StringUtils; /** * @author agapple 2017年7月27日 下午4:05:34 @@ -139,12 +140,16 @@ public class DruidDdlParser { ddlResult.setType(EventType.DELETE); ddlResults.add(ddlResult); } else if (statement instanceof SQLCreateDatabaseStatement){ - // add create database support DdlResult ddlResult = new DdlResult(); - SQLCreateDatabaseStatement createDatabase= (SQLCreateDatabaseStatement) statement; ddlResult.setType(EventType.QUERY); + //只设置schema processName(ddlResult,schmeaName,null,false); ddlResults.add(ddlResult); + } else if(statement instanceof SQLDropDatabaseStatement){ + DdlResult ddlResult = new DdlResult(); + ddlResult.setType(EventType.QUERY); + //只设置schema + processName(ddlResult,schmeaName,null,false); } } @@ -153,6 +158,9 @@ public class DruidDdlParser { private static void processName(DdlResult ddlResult, String schema, SQLExpr sqlName, boolean isOri) { if (sqlName == null) { + if (StringUtils.isNotBlank(schema)){ + ddlResult.setSchemaName(schema); + } return; }