diff --git a/src/test/java/com/alibaba/druid/bvt/sql/teradata/TeradataInsertTest_1.java b/src/test/java/com/alibaba/druid/bvt/sql/teradata/TeradataInsertTest_1.java deleted file mode 100644 index b10191d9a5..0000000000 --- a/src/test/java/com/alibaba/druid/bvt/sql/teradata/TeradataInsertTest_1.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.alibaba.druid.bvt.sql.teradata; - -import java.util.List; - -import org.junit.Assert; - -import com.alibaba.druid.sql.TeradataTest; -import com.alibaba.druid.sql.ast.SQLStatement; -import com.alibaba.druid.sql.ast.statement.SQLInsertStatement; -import com.alibaba.druid.sql.ast.statement.SQLSelect; -import com.alibaba.druid.sql.dialect.teradata.ast.stmt.TeradataInsertStatement; -import com.alibaba.druid.sql.dialect.teradata.ast.stmt.TeradataSelectQueryBlock; -import com.alibaba.druid.sql.dialect.teradata.parser.TeradataStatementParser; -import com.alibaba.druid.sql.dialect.teradata.visitor.TeradataSchemaStatVisitor; -import com.alibaba.druid.stat.TableStat.Column; - - -public class TeradataInsertTest_1 extends TeradataTest { - public void test_values() throws Exception { - String ins_sql = "INSERT INTO t1(c1, c2) VALUES " - + "('a', 'b')," - + "('c', 'd')," - + "('e', 'f')"; - - TeradataStatementParser parser = new TeradataStatementParser(ins_sql); - List statementList = parser.parseStatementList(); - SQLStatement stmt = statementList.get(0); - - Assert.assertTrue(stmt instanceof SQLInsertStatement); - - TeradataInsertStatement insertStmt = (TeradataInsertStatement) stmt; - Assert.assertEquals("t1", insertStmt.getTableSource().toString()); - Assert.assertEquals("c1", insertStmt.getColumns().get(0).toString()); - Assert.assertEquals("c2", insertStmt.getColumns().get(1).toString()); - Assert.assertEquals(3, insertStmt.getValuesList().size()); - Assert.assertEquals(2, insertStmt.getValuesList().get(0).getValues().size()); - - SQLSelect insertQuery = insertStmt.getQuery(); - Assert.assertNull(insertQuery); - - TeradataSchemaStatVisitor visitor = new TeradataSchemaStatVisitor(); - insertStmt.accept(visitor); -// System.out.println(visitor.getColumns()); -// System.out.println(visitor.getTables()); -// System.out.println("------ end of " + new Object(){}.getClass().getEnclosingMethod().getName() + " ------"); - } - - public void test_select() throws Exception { - String ins_sql = "INSERT INTO d1.t1(col1, col2) " - + "SELECT c1, c2 " - + "FROM d2.t2 " - + "WHERE c1=0;"; - TeradataStatementParser parser = new TeradataStatementParser(ins_sql); - List statementList = parser.parseStatementList(); - SQLStatement stmt = statementList.get(0); - - Assert.assertTrue(stmt instanceof SQLInsertStatement); - - TeradataInsertStatement insertStmt = (TeradataInsertStatement) stmt; - SQLSelect insertQuery = insertStmt.getQuery(); - Assert.assertNotNull(insertQuery); - - // retrieve SELECT sub-clause from INSERT query - TeradataSelectQueryBlock insertBlock = (TeradataSelectQueryBlock) insertQuery.getQuery(); - Assert.assertNotNull(insertBlock); - - // target table - Assert.assertEquals("d1.t1", insertStmt.getTableSource().toString()); - Assert.assertEquals(2, insertStmt.getColumns().size()); - Assert.assertEquals("col1", insertStmt.getColumns().get(0).toString()); - Assert.assertEquals("col2", insertStmt.getColumns().get(1).toString()); - // source table - Assert.assertEquals("d2.t2", insertBlock.getFrom().toString()); - Assert.assertEquals(2, insertBlock.getSelectList().size()); - Assert.assertEquals("c1", insertBlock.getSelectList().get(0).toString()); - Assert.assertEquals("c2", insertBlock.getSelectList().get(1).toString()); - -// System.out.println("***********below is useful info **********"); -// System.out.println("target table: " + insertStmt.getTableSource()); -// System.out.println("target columns: " + insertStmt.getColumns()); -// System.out.println("source from: " + insertBlock.getFrom()); -// System.out.println("source columns : " + insertBlock.getSelectList()); -// System.out.println("source condition: " + insertBlock.getWhere()); -// System.out.println("********"); - - TeradataSchemaStatVisitor visitor = new TeradataSchemaStatVisitor(); - stmt.accept(visitor); -// System.out.println("Tables : " + visitor.getTables()); -// System.out.println("fields : " + visitor.getColumns()); -// System.out.println("coditions : " + visitor.getConditions()); -// System.out.println("orderBy : " + visitor.getOrderByColumns()); -// -// System.out.println("------ end of " + new Object(){}.getClass().getEnclosingMethod().getName() + " ------"); - } -} diff --git a/src/test/java/com/alibaba/druid/bvt/sql/teradata/TeradataSelectTest_1.java b/src/test/java/com/alibaba/druid/bvt/sql/teradata/TeradataSelectTest_1.java deleted file mode 100644 index 5bb3f615c5..0000000000 --- a/src/test/java/com/alibaba/druid/bvt/sql/teradata/TeradataSelectTest_1.java +++ /dev/null @@ -1,294 +0,0 @@ -package com.alibaba.druid.bvt.sql.teradata; - -import java.util.List; - -import org.junit.Assert; - -import com.alibaba.druid.sql.TeradataTest; -import com.alibaba.druid.sql.ast.SQLExpr; -import com.alibaba.druid.sql.ast.SQLStatement; -import com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr; -import com.alibaba.druid.sql.ast.expr.SQLBinaryOperator; -import com.alibaba.druid.sql.ast.expr.SQLNotExpr; -import com.alibaba.druid.sql.ast.statement.SQLSelect; -import com.alibaba.druid.sql.ast.statement.SQLSelectStatement; -import com.alibaba.druid.sql.ast.statement.SQLSubqueryTableSource; -import com.alibaba.druid.sql.dialect.teradata.ast.stmt.TeradataSelectQueryBlock; -import com.alibaba.druid.sql.dialect.teradata.parser.TeradataStatementParser; -import com.alibaba.druid.sql.dialect.teradata.visitor.TeradataSchemaStatVisitor; -import com.alibaba.druid.stat.TableStat; -import com.alibaba.druid.stat.TableStat.Column; - -public class TeradataSelectTest_1 extends TeradataTest{ - // case #1: general SELECT...FROM...WHERE - public void test_select() throws Exception { - String sql = "SELECT t1.name, t2.salary FROM employee t1, info t2 WHERE t1.name = t2.name;"; - TeradataStatementParser parser = new TeradataStatementParser(sql); - List statementList = parser.parseStatementList(); - SQLStatement statemen = statementList.get(0); -// print(statementList); - - Assert.assertEquals(1, statementList.size()); - - TeradataSchemaStatVisitor visitor = new TeradataSchemaStatVisitor(); - statemen.accept(visitor); - -// System.out.println("Tables : " + visitor.getTables()); -// System.out.println("fields : " + visitor.getColumns()); -// System.out.println("coditions : " + visitor.getConditions()); -// System.out.println("orderBy : " + visitor.getOrderByColumns()); - - Assert.assertEquals(2, visitor.getTables().size()); - Assert.assertEquals(3, visitor.getColumns().size()); - Assert.assertEquals(2, visitor.getConditions().size()); - - Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("employee"))); - Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("info"))); - - Assert.assertTrue(visitor.getColumns().contains(new Column("employee", "name"))); - Assert.assertTrue(visitor.getColumns().contains(new Column("info", "name"))); - Assert.assertTrue(visitor.getColumns().contains(new Column("info", "salary"))); -// System.out.println("------ end of " + new Object(){}.getClass().getEnclosingMethod().getName() + " ------"); - } - - // case #2: test ORDER BY...ASC/DESC - public void test_orderBy() throws Exception { - String sql = "select * from tb order by id asc,name desc"; - - TeradataStatementParser parser = new TeradataStatementParser(sql); - List statementList = parser.parseStatementList(); - SQLStatement stmt = statementList.get(0); - - SQLSelectStatement selectStmt = (SQLSelectStatement) stmt; - - SQLSelect select = selectStmt.getSelect(); - Assert.assertNotNull(select.getQuery()); - TeradataSelectQueryBlock queryBlock = (TeradataSelectQueryBlock) select.getQuery(); - - Assert.assertNotNull(queryBlock.getOrderBy()); -// System.out.println("select order by: " + queryBlock.getOrderBy().getItems().get(0).getExpr()); - -// print(statementList); - - Assert.assertEquals(1, statementList.size()); - - TeradataSchemaStatVisitor visitor = new TeradataSchemaStatVisitor(); - - stmt.accept(visitor); - -// System.out.println("Tables : " + visitor.getTables()); -// System.out.println("fields : " + visitor.getColumns()); -// System.out.println("coditions : " + visitor.getConditions()); -// System.out.println("orderBy : " + visitor.getOrderByColumns()); - - Assert.assertEquals(1, visitor.getTables().size()); - Assert.assertEquals(3, visitor.getColumns().size()); - Assert.assertEquals(0, visitor.getConditions().size()); - Assert.assertEquals(2, visitor.getOrderByColumns().size()); -// System.out.println("------ end of " + new Object(){}.getClass().getEnclosingMethod().getName() + " ------"); - } - // case #3: test SELECT CONCAT... - public void test_concat() throws Exception { - String sql = "SELECT CONCAT(last_name,', ',first_name) AS full_name FROM mytable ORDER BY full_name;"; - - TeradataStatementParser parser = new TeradataStatementParser(sql); - List statementList = parser.parseStatementList(); - SQLStatement statemen = statementList.get(0); - -// print(statementList); - Assert.assertEquals(1, statementList.size()); - - SQLSelectStatement selectStmt = (SQLSelectStatement) statemen; - SQLSelect select = selectStmt.getSelect(); - Assert.assertNotNull(select.getQuery()); - TeradataSelectQueryBlock queryBlock = (TeradataSelectQueryBlock) select.getQuery(); - - Assert.assertNotNull(queryBlock.getOrderBy()); -// System.out.println("select order by: " + queryBlock.getOrderBy().getItems().get(0).getExpr()); - - - TeradataSchemaStatVisitor visitor = new TeradataSchemaStatVisitor(); - statemen.accept(visitor); - -// System.out.println("Tables : " + visitor.getTables()); -// System.out.println("fields : " + visitor.getColumns()); -// System.out.println("coditions : " + visitor.getConditions()); -// System.out.println("orderBy : " + visitor.getOrderByColumns()); - - Assert.assertEquals(1, visitor.getTables().size()); - Assert.assertEquals(2, visitor.getColumns().size()); - Assert.assertEquals(0, visitor.getConditions().size()); - - Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("mytable"))); - - Assert.assertTrue(visitor.getColumns().contains(new Column("mytable", "last_name"))); - Assert.assertTrue(visitor.getColumns().contains(new Column("mytable", "first_name"))); -// System.out.println("------ end of " + new Object(){}.getClass().getEnclosingMethod().getName() + " ------"); - } - // case #4: test constant - public void test_constant() throws Exception { - String sql = "select 1"; - - TeradataStatementParser parser = new TeradataStatementParser(sql); - List statementList = parser.parseStatementList(); - SQLStatement stmt = statementList.get(0); - - SQLSelectStatement selectStmt = (SQLSelectStatement) stmt; - - SQLSelect select = selectStmt.getSelect(); - Assert.assertNotNull(select.getQuery()); - TeradataSelectQueryBlock queryBlock = (TeradataSelectQueryBlock) select.getQuery(); - Assert.assertNull(queryBlock.getOrderBy()); - -// print(statementList); - - Assert.assertEquals(1, statementList.size()); - - TeradataSchemaStatVisitor visitor = new TeradataSchemaStatVisitor(); - stmt.accept(visitor); - - Assert.assertEquals(0, visitor.getTables().size()); - Assert.assertEquals(0, visitor.getColumns().size()); - Assert.assertEquals(0, visitor.getConditions().size()); - Assert.assertEquals(0, visitor.getOrderByColumns().size()); -// System.out.println("------ end of " + new Object(){}.getClass().getEnclosingMethod().getName() + " ------"); - } - // case #5: test sub-query - public void test_subQuery() throws Exception { - String sql = "SELECT COUNT(*) a FROM (select nickname,mobile,comment,createdate from ub_userdiscuss order by discuss_id desc) b "; - - TeradataStatementParser parser = new TeradataStatementParser(sql); - List statementList = parser.parseStatementList(); - SQLStatement stmt = statementList.get(0); - - SQLSelectStatement selectStmt = (SQLSelectStatement) stmt; - - SQLSelect select = selectStmt.getSelect(); - Assert.assertNotNull(select.getQuery()); - TeradataSelectQueryBlock queryBlock = (TeradataSelectQueryBlock) select.getQuery(); - Assert.assertNull(queryBlock.getOrderBy()); - - // test for sub-query - { - Assert.assertTrue(queryBlock.getFrom() instanceof SQLSubqueryTableSource); - TeradataSelectQueryBlock subBlock = (TeradataSelectQueryBlock)((SQLSubqueryTableSource)queryBlock.getFrom()).getSelect().getQuery(); - Assert.assertNotNull(subBlock.getOrderBy()); - } - -// print(statementList); - - Assert.assertEquals(1, statementList.size()); - - TeradataSchemaStatVisitor visitor = new TeradataSchemaStatVisitor(); - stmt.accept(visitor); - - Assert.assertEquals(1, visitor.getTables().size()); - Assert.assertEquals(5, visitor.getColumns().size()); - Assert.assertEquals(0, visitor.getConditions().size()); - Assert.assertEquals(1, visitor.getOrderByColumns().size()); - - Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("ub_userdiscuss"))); -// System.out.println("------ end of " + new Object(){}.getClass().getEnclosingMethod().getName() + " ------"); - } - - public void test_comment() throws Exception { - String sql = "select * from test /*!40101fff*/"; - - TeradataStatementParser parser = new TeradataStatementParser(sql); - List statementList = parser.parseStatementList(); - SQLStatement stmt = statementList.get(0); - - SQLSelectStatement selectStmt = (SQLSelectStatement) stmt; - - SQLSelect select = selectStmt.getSelect(); - Assert.assertNotNull(select.getQuery()); - TeradataSelectQueryBlock queryBlock = (TeradataSelectQueryBlock) select.getQuery(); - Assert.assertNull(queryBlock.getOrderBy()); - -// print(statementList); - - Assert.assertEquals(1, statementList.size()); - - TeradataSchemaStatVisitor visitor = new TeradataSchemaStatVisitor(); - stmt.accept(visitor); - - Assert.assertEquals(1, visitor.getTables().size()); - Assert.assertEquals(1, visitor.getColumns().size()); - Assert.assertEquals(0, visitor.getConditions().size()); - Assert.assertEquals(0, visitor.getOrderByColumns().size()); - - Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("test"))); -// System.out.println("------ end of " + new Object(){}.getClass().getEnclosingMethod().getName() + " ------"); - } - - public void test_not() throws Exception { - String sql = "select a from t where not a<1 and not b>1"; - - TeradataStatementParser parser = new TeradataStatementParser(sql); - List statementList = parser.parseStatementList(); - SQLStatement stmt = statementList.get(0); - - SQLSelectStatement selectStmt = (SQLSelectStatement) stmt; - - SQLSelect select = selectStmt.getSelect(); - Assert.assertNotNull(select.getQuery()); - TeradataSelectQueryBlock queryBlock = (TeradataSelectQueryBlock) select.getQuery(); - Assert.assertNull(queryBlock.getOrderBy()); - - { - SQLExpr where = queryBlock.getWhere(); - Assert.assertTrue(where instanceof SQLBinaryOpExpr); - SQLBinaryOpExpr binaryWhere = (SQLBinaryOpExpr) where; - Assert.assertEquals(binaryWhere.getOperator(), SQLBinaryOperator.BooleanAnd); - - Assert.assertTrue(binaryWhere.getLeft() instanceof SQLNotExpr); - Assert.assertTrue(binaryWhere.getRight() instanceof SQLNotExpr); -// System.out.println("left expr: " + ((SQLNotExpr)binaryWhere.getLeft()).getExpr()); - } - -// print(statementList); - - Assert.assertEquals(1, statementList.size()); - - TeradataSchemaStatVisitor visitor = new TeradataSchemaStatVisitor(); - stmt.accept(visitor); - - Assert.assertEquals(1, visitor.getTables().size()); - Assert.assertEquals(2, visitor.getColumns().size()); - Assert.assertEquals(2, visitor.getConditions().size()); - Assert.assertEquals(0, visitor.getOrderByColumns().size()); - - Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("t"))); -// System.out.println("------ end of " + new Object(){}.getClass().getEnclosingMethod().getName() + " ------"); - } - - public void test_interval() throws Exception { - String sql = "select bsvariety, max(bsh) as bsh, min(bsl) as bsl " - + " from exchange_market_info " - + " where bsdate>(current_date - interval '1' DAY)" - + " group by bsvariety;"; - - TeradataStatementParser parser = new TeradataStatementParser(sql); - List statementList = parser.parseStatementList(); - SQLStatement stmt = statementList.get(0); -// print(statementList); - - Assert.assertEquals(1, statementList.size()); - - TeradataSchemaStatVisitor visitor = new TeradataSchemaStatVisitor(); - stmt.accept(visitor); - - Assert.assertTrue(visitor.getColumns().contains(new Column("exchange_market_info", "bsvariety"))); - Assert.assertTrue(visitor.getColumns().contains(new Column("exchange_market_info", "bsh"))); - Assert.assertTrue(visitor.getColumns().contains(new Column("exchange_market_info", "bsl"))); - Assert.assertTrue(visitor.getColumns().contains(new Column("exchange_market_info", "bsdate"))); - - Assert.assertEquals(1, visitor.getTables().size()); - Assert.assertEquals(5, visitor.getColumns().size()); - Assert.assertEquals(1, visitor.getConditions().size()); - Assert.assertEquals(0, visitor.getOrderByColumns().size()); -// System.out.println("------ end of " + new Object(){}.getClass().getEnclosingMethod().getName() + " ------"); - - } - -} diff --git a/src/test/java/com/alibaba/druid/bvt/sql/teradata/TeradataSelectTest_2.java b/src/test/java/com/alibaba/druid/bvt/sql/teradata/TeradataSelectTest_2.java deleted file mode 100644 index d7050e7c4d..0000000000 --- a/src/test/java/com/alibaba/druid/bvt/sql/teradata/TeradataSelectTest_2.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.alibaba.druid.bvt.sql.teradata; - -import java.util.List; - -import org.junit.Assert; - -import com.alibaba.druid.sql.TeradataTest; -import com.alibaba.druid.sql.ast.SQLStatement; -import com.alibaba.druid.sql.ast.statement.SQLJoinTableSource; -import com.alibaba.druid.sql.ast.statement.SQLSelect; -import com.alibaba.druid.sql.ast.statement.SQLSelectStatement; -import com.alibaba.druid.sql.dialect.teradata.ast.stmt.TeradataSelectQueryBlock; -import com.alibaba.druid.sql.dialect.teradata.parser.TeradataStatementParser; -import com.alibaba.druid.sql.dialect.teradata.visitor.TeradataSchemaStatVisitor; -import com.alibaba.druid.stat.TableStat.Column; - -public class TeradataSelectTest_2 extends TeradataTest{ - public void test_crossJoin() throws Exception { - String sql = "SELECT * FROM t1 CROSS JOIN t2 ON t1.id = t2.id;"; - - TeradataStatementParser parser = new TeradataStatementParser(sql); - List statementList = parser.parseStatementList(); - SQLStatement statement = statementList.get(0); - print(statementList); - - Assert.assertEquals(1, statementList.size()); - { - SQLSelectStatement selectStmt = (SQLSelectStatement) statement; - SQLSelect selectSQL = selectStmt.getSelect(); - TeradataSelectQueryBlock queryBlock = (TeradataSelectQueryBlock) selectSQL.getQuery(); - - Assert.assertTrue(queryBlock.getFrom() instanceof SQLJoinTableSource); - - SQLJoinTableSource joinSource = (SQLJoinTableSource) queryBlock.getFrom(); - - Assert.assertEquals(joinSource.getJoinType().toString(), "CROSS_JOIN"); - Assert.assertEquals(joinSource.getLeft().toString(), "t1"); - Assert.assertEquals(joinSource.getRight().toString(), "t2"); - Assert.assertNotNull(joinSource.getCondition()); - } - - TeradataSchemaStatVisitor visitor = new TeradataSchemaStatVisitor(); - statement.accept(visitor); - - System.out.println("Tables : " + visitor.getTables()); - System.out.println("fields : " + visitor.getColumns()); - System.out.println("coditions : " + visitor.getConditions()); - System.out.println("orderBy : " + visitor.getOrderByColumns()); - - Assert.assertEquals(2, visitor.getTables().size()); - System.out.println("------ end of " + new Object(){}.getClass().getEnclosingMethod().getName() + " ------"); - } - - public void test_leftJoin() throws Exception { - String sql = "SELECT host.id as id" // - + ", host.item_id as itemId" // - + ", host.node_id as nodeId" // - + ", host.node_type as nodeType" // - + ", host.begin_time as beginTime" // - + ", host.end_time as endTime" // - + ", host.gmt_create as gmtCreate" // - + ", host.gmt_modify as gmtModify" // - + ", host.reason as reason" // - + ", host.creator_id as creatorId" // - + ", host.modifier_id as modifierId" // - + ", user.name as creator" // - + ", user.name as modifier" // - + ", user.nick_name as nickName " // - + " FROM notice_close_node host left join sys_user user on user.id = host.modifier_id"; - - TeradataStatementParser parser = new TeradataStatementParser(sql); - List statementList = parser.parseStatementList(); - SQLStatement statemen = statementList.get(0); - print(statementList); - - Assert.assertEquals(1, statementList.size()); - - { - SQLSelectStatement selectStmt = (SQLSelectStatement) statemen; - SQLSelect selectSQL = selectStmt.getSelect(); - TeradataSelectQueryBlock queryBlock = (TeradataSelectQueryBlock) selectSQL.getQuery(); - - Assert.assertTrue(queryBlock.getFrom() instanceof SQLJoinTableSource); - - SQLJoinTableSource joinSource = (SQLJoinTableSource) queryBlock.getFrom(); - - Assert.assertEquals(joinSource.getJoinType().toString(), "LEFT_OUTER_JOIN"); - Assert.assertEquals(joinSource.getLeft().toString(), "notice_close_node"); - Assert.assertEquals(joinSource.getRight().toString(), "sys_user"); - Assert.assertNotNull(joinSource.getCondition()); - } - - TeradataSchemaStatVisitor visitor = new TeradataSchemaStatVisitor(); - statemen.accept(visitor); - - System.out.println("Tables : " + visitor.getTables()); - System.out.println("fields : " + visitor.getColumns()); - System.out.println("coditions : " + visitor.getConditions()); - System.out.println("orderBy : " + visitor.getOrderByColumns()); - - Assert.assertEquals(2, visitor.getTables().size()); - Assert.assertEquals(15, visitor.getColumns().size()); - Assert.assertEquals(2, visitor.getConditions().size()); - - Assert.assertTrue(visitor.getColumns().contains(new Column("sys_user", "id"))); - Assert.assertTrue(visitor.getColumns().contains(new Column("notice_close_node", "modifier_id"))); - System.out.println("------ end of " + new Object(){}.getClass().getEnclosingMethod().getName() + " ------"); - } -} diff --git a/src/test/java/com/alibaba/druid/bvt/sql/teradata/TeradataSelectTest_3.java b/src/test/java/com/alibaba/druid/bvt/sql/teradata/TeradataSelectTest_3.java deleted file mode 100644 index a962062a17..0000000000 --- a/src/test/java/com/alibaba/druid/bvt/sql/teradata/TeradataSelectTest_3.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.alibaba.druid.bvt.sql.teradata; - -import java.util.List; - -import org.junit.Assert; - -import com.alibaba.druid.sql.TeradataTest; -import com.alibaba.druid.sql.ast.SQLStatement; -import com.alibaba.druid.sql.ast.statement.SQLSelectStatement; -import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser; -import com.alibaba.druid.sql.dialect.teradata.parser.TeradataStatementParser; -import com.alibaba.druid.sql.dialect.teradata.visitor.TeradataSchemaStatVisitor; -import com.alibaba.druid.stat.TableStat; -import com.alibaba.druid.stat.TableStat.Column; - -public class TeradataSelectTest_3 extends TeradataTest { - public void test_trim() throws Exception { - String sql = "select trim(trailing from columnname) from dbc.columnsv;"; - - TeradataStatementParser parser = new TeradataStatementParser(sql); - List statementList = parser.parseStatementList(); - SQLStatement stmt = statementList.get(0); - - Assert.assertTrue(stmt instanceof SQLSelectStatement); - print(statementList); - - TeradataSchemaStatVisitor visitor = new TeradataSchemaStatVisitor(); - stmt.accept(visitor); - - System.out.println("Tables : " + visitor.getTables()); - System.out.println("fields : " + visitor.getColumns()); - System.out.println("coditions : " + visitor.getConditions()); - System.out.println("orderBy : " + visitor.getOrderByColumns()); - - Assert.assertEquals(1, visitor.getTables().size()); - Assert.assertEquals(1, visitor.getColumns().size()); - Assert.assertEquals(0, visitor.getConditions().size()); - - Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("dbc.columnsv"))); - - Assert.assertTrue(visitor.getColumns().contains(new Column("dbc.columnsv", "columnname"))); - System.out.println("------ end of " + new Object(){}.getClass().getEnclosingMethod().getName() + " ------"); - - } -} diff --git a/src/test/java/com/alibaba/druid/bvt/sql/teradata/parser/TeradataLexerTest.java b/src/test/java/com/alibaba/druid/bvt/sql/teradata/parser/TeradataLexerTest.java deleted file mode 100644 index 1f5748e796..0000000000 --- a/src/test/java/com/alibaba/druid/bvt/sql/teradata/parser/TeradataLexerTest.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.alibaba.druid.bvt.sql.teradata.parser; - -import junit.framework.TestCase; - -import com.alibaba.druid.sql.dialect.teradata.parser.TeradataLexer; -import com.alibaba.druid.sql.parser.Token; - -public class TeradataLexerTest extends TestCase{ - - public void test_0() throws Exception { - String sql = "SELECT a.user_id , " - + "SUM(CASE WHEN comment_score=2 THEN 1 ELSE 0 END) AS posfb ," - + "SUM(CASE WHEN comment_score=-1 THEN 1 ELSE 0 END) AS negfb ," - + "SUM(CASE WHEN comment_score=0 THEN 1 ELSE 0 END) AS neutfb " - + "FROM dw_feedback_detail a " - + "WHERE a.creation_dt >= '2012-11-13' " - + "AND a.ID_TYPE = 'S' " - + "AND a.TRX_TYPE <> 1 " - + "AND a.user_id IN ( SELECT DISTINCT aa.user_id " - + "FROM DW_TNS_RCNT_SLR_ACTVTY_SL aa " - + "INNER JOIN DW_CATEGORY_GROUPINGS b " - + "ON aa.site_id=b.site_id AND aa.LEAF_CATEG_ID=b.LEAF_CATEG_ID " - + "WHERE aa.leaf_categ_id NOT IN (100843,100844,100845,100846,100847,100848,100849,100850) " - + "AND b.META_CATEG_ID NOT IN (2038,6000,9800,10542,60089) " - + "GROUP BY aa.user_id " - + "HAVING SUM(LIVE_GMV_USD) + SUM(END_GMV_USD) > 10000 " - + "AND SUM(END_GMV_USD) > 50 " - + "AND SUM(live_lstg_count) + SUM(SUCC_LSTG_COUNT) > 5 " - + "AND SUM(live_lstg_count) + SUM(SUCC_LSTG_COUNT) <> 99999 " - + "AND " - + "CASE WHEN (SUM(LIVE_GMV_USD)/(SUM(LIVE_LSTG_QTY) + 0.0001)>=SUM(END_GMV_USD)/(SUM(END_QTY_SOLD)+0.0001)) " - + "THEN (SUM(LIVE_GMV_USD)/(SUM(LIVE_LSTG_QTY) + 0.0001)) " - + "ELSE (SUM(END_GMV_USD)/(SUM(END_QTY_SOLD)+0.0001)) END > 50 " - + "AND " - + "CASE WHEN (SUM(LIVE_GMV_USD)/(SUM(LIVE_LSTG_QTY) + 0.0001)>=SUM(END_GMV_USD)/(SUM(END_QTY_SOLD)+0.0001)) " - + "THEN (SUM(LIVE_GMV_USD)/(SUM(LIVE_LSTG_QTY) + 0.0001)) " - + "ELSE (SUM(END_GMV_USD)/(SUM(END_QTY_SOLD)+0.0001)) END < 100000 ) " - + "GROUP BY a.user_id ORDER BY a.user_id;"; - TeradataLexer lexer = new TeradataLexer(sql); - - for(;;) { - lexer.nextToken(); - Token tok = lexer.token(); - switch (tok) { - case IDENTIFIER: -// System.out.println(tok.name() + "\t\t" + lexer.stringVal()); - break; - case HINT: -// System.out.println(tok.name() + "\t\t\t\t" + lexer.stringVal()); - break; - case LITERAL_INT: -// System.out.println(tok.name() + "\t\t" + lexer.numberString()); - break; - case LITERAL_CHARS: -// System.out.println(tok.name() + "\t\t" + lexer.stringVal()); - break; - case LITERAL_FLOAT: -// System.out.println(tok.name() + "\t\t" + lexer.numberString()); - break; - default: -// System.out.println(tok.name() + "\t\t\t" + tok.name); - break; - } - - if (tok == Token.EOF) { - break; - } - } - } -} diff --git a/src/test/java/com/alibaba/druid/bvt/sql/teradata/parser/TeradataLexerTest1.java b/src/test/java/com/alibaba/druid/bvt/sql/teradata/parser/TeradataLexerTest1.java deleted file mode 100644 index 0d67ea8830..0000000000 --- a/src/test/java/com/alibaba/druid/bvt/sql/teradata/parser/TeradataLexerTest1.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.alibaba.druid.bvt.sql.teradata.parser; - -import com.alibaba.druid.sql.dialect.teradata.parser.TeradataLexer; -import com.alibaba.druid.sql.parser.Token; - -import junit.framework.TestCase; - -public class TeradataLexerTest1 extends TestCase{ - - public void test_0() throws Exception { - String sql = "LOCKING TABLE TEST1 FOR ACCESS;" - + "CREATE MULTISET TABLE TEST(" - + "ITEM_ID DECIMAL(18,0) NOT NULL," - + "AUCT_START_DT DATE NOT NULL," - + "AUCT_END_DT DATE NOT NULL," - + "PRIMARY INDEX(ITEM_ID)" - + "PARTITION BY RANGE_N(AUCT_END_DT BETWEEN " - + "DATE '2010-01-01' AND DATE '2012-12-31'));"; - TeradataLexer lexer = new TeradataLexer(sql); - - for(;;) { - lexer.nextToken(); - Token tok = lexer.token(); - switch (tok) { - case IDENTIFIER: -// System.out.println(tok.name() + "\t\t" + lexer.stringVal()); - break; - case HINT: -// System.out.println(tok.name() + "\t\t\t\t" + lexer.stringVal()); - break; - case LITERAL_INT: -// System.out.println(tok.name() + "\t\t" + lexer.numberString()); - break; - case LITERAL_CHARS: -// System.out.println(tok.name() + "\t\t" + lexer.stringVal()); - break; - case LITERAL_FLOAT: -// System.out.println(tok.name() + "\t\t" + lexer.numberString()); - break; - default: -// System.out.println(tok.name() + "\t\t\t" + tok.name); - break; - } - - if (tok == Token.EOF) { - break; - } - } - } -} diff --git a/src/test/java/com/alibaba/druid/bvt/sql/teradata/parser/TeradataLexerTest2.java b/src/test/java/com/alibaba/druid/bvt/sql/teradata/parser/TeradataLexerTest2.java deleted file mode 100644 index c24606383b..0000000000 --- a/src/test/java/com/alibaba/druid/bvt/sql/teradata/parser/TeradataLexerTest2.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.alibaba.druid.bvt.sql.teradata.parser; - -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; - -import junit.framework.TestCase; - -import com.alibaba.druid.sql.dialect.teradata.parser.TeradataLexer; -import com.alibaba.druid.sql.parser.Token; -import com.alibaba.druid.util.Utils; - -public class TeradataLexerTest2 extends TestCase{ - - public void test_0() throws Exception { - InputStream is = null; - // mainly test SEL keyword - is = Thread.currentThread().getContextClassLoader().getResourceAsStream("bvt/parser/teradata-1.txt"); - Reader reader = new InputStreamReader(is, "UTF-8"); - String input = Utils.read(reader); - String sql = input.trim(); - - TeradataLexer lexer = new TeradataLexer(sql); - - for(;;) { - lexer.nextToken(); - Token tok = lexer.token(); - switch (tok) { - case IDENTIFIER: -// System.out.println(tok.name() + "\t\t" + lexer.stringVal()); - break; - case HINT: -// System.out.println(tok.name() + "\t\t\t\t" + lexer.stringVal()); - break; - case LITERAL_INT: -// System.out.println(tok.name() + "\t\t" + lexer.numberString()); - break; - case LITERAL_CHARS: -// System.out.println(tok.name() + "\t\t" + lexer.stringVal()); - break; - case LITERAL_FLOAT: -// System.out.println(tok.name() + "\t\t" + lexer.numberString()); - break; - default: -// System.out.println(tok.name() + "\t\t\t" + tok.name); - break; - } - - if (tok == Token.EOF) { - break; - } - } - } -} diff --git a/src/test/java/com/alibaba/druid/bvt/sql/teradata/parser/TeradataLexerTest3.java b/src/test/java/com/alibaba/druid/bvt/sql/teradata/parser/TeradataLexerTest3.java deleted file mode 100644 index 520e91a9de..0000000000 --- a/src/test/java/com/alibaba/druid/bvt/sql/teradata/parser/TeradataLexerTest3.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.alibaba.druid.bvt.sql.teradata.parser; - -import junit.framework.TestCase; - -import com.alibaba.druid.sql.dialect.teradata.parser.TeradataLexer; -import com.alibaba.druid.sql.parser.Token; - -public class TeradataLexerTest3 extends TestCase{ - // test COMMENT - public void test_0() throws Exception { - String sql = "/*SUM(CASE WHEN comment_score=2 THEN 1 ELSE 0 END) AS posfb ," - + "SUM(CASE WHEN comment_score=-1 THEN 1 ELSE 0 END) AS negfb ,*/"; - TeradataLexer lexer = new TeradataLexer(sql); - - lexer.scanComment(); - for(;;) { - lexer.nextToken(); - Token tok = lexer.token(); - switch (tok) { - case IDENTIFIER: -// System.out.println(tok.name() + "\t\t" + lexer.stringVal()); - break; - case HINT: -// System.out.println(tok.name() + "\t\t\t\t" + lexer.stringVal()); - break; - case LITERAL_INT: -// System.out.println(tok.name() + "\t\t" + lexer.numberString()); - break; - case LITERAL_CHARS: -// System.out.println(tok.name() + "\t\t" + lexer.stringVal()); - break; - case LITERAL_FLOAT: -// System.out.println(tok.name() + "\t\t" + lexer.numberString()); - break; - default: -// System.out.println(tok.name() + "\t\t\t" + tok.name); - break; - } - - if (tok == Token.EOF) { - break; - } - } - } -}