From 75f1ac90e60f55d7e0c2971cb4cf3d4c34a434d2 Mon Sep 17 00:00:00 2001 From: magicdoom Date: Fri, 5 Jun 2015 19:56:39 +0800 Subject: [PATCH] add testcase for parse mysql load data infile --- .../sql/parser/LoadDataSQLParserTest.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/test/java/com/alibaba/druid/sql/parser/LoadDataSQLParserTest.java diff --git a/src/test/java/com/alibaba/druid/sql/parser/LoadDataSQLParserTest.java b/src/test/java/com/alibaba/druid/sql/parser/LoadDataSQLParserTest.java new file mode 100644 index 0000000000..d3b8c9764b --- /dev/null +++ b/src/test/java/com/alibaba/druid/sql/parser/LoadDataSQLParserTest.java @@ -0,0 +1,26 @@ +package com.alibaba.druid.sql.parser; + +import com.alibaba.druid.sql.ast.expr.SQLCharExpr; +import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlLoadDataInFileStatement; +import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser; +import junit.framework.TestCase; +import org.junit.Assert; + + +/** + * Created by magicdoom on 2015/6/5. + */ +public class LoadDataSQLParserTest extends TestCase +{ + public void test_load_data() throws Exception { + String sql = "load DATA local INFILE '/opt/test.txt' IGNORE INTO TABLE test CHARACTER SET 'utf8' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\\\\' LINES TERMINATED BY '\r\n' (id,sid,asf) "; + SQLStatementParser parser = new MySqlStatementParser(sql); + MySqlLoadDataInFileStatement stmt = (MySqlLoadDataInFileStatement) parser.parseStatement(); // + Assert.assertEquals("utf8",stmt.getCharset()) ; + Assert.assertEquals(",",((SQLCharExpr)stmt.getColumnsTerminatedBy()).getText()) ; + Assert.assertEquals("\"",((SQLCharExpr)stmt.getColumnsEnclosedBy()).getText()) ; + Assert.assertEquals("\r\n",((SQLCharExpr)stmt.getLinesTerminatedBy()).getText()) ; + Assert.assertEquals("\\",((SQLCharExpr)stmt.getColumnsEscaped()).getText()) ; + + } +}