diff --git a/src/test/java/com/alibaba/druid/sql/oracle/bvt/OracleLexerTest.java b/src/test/java/com/alibaba/druid/sql/oracle/bvt/OracleLexerTest.java new file mode 100644 index 0000000000..5d5cf04630 --- /dev/null +++ b/src/test/java/com/alibaba/druid/sql/oracle/bvt/OracleLexerTest.java @@ -0,0 +1,34 @@ +package com.alibaba.druid.sql.oracle.bvt; + +import junit.framework.TestCase; + +import com.alibaba.druid.sql.dialect.oracle.parser.OracleLexer; +import com.alibaba.druid.sql.parser.Token; + +public class OracleLexerTest extends TestCase { + + public void test_hint() throws Exception { +String sql = "SELECT /*+FIRST_ROWS*/ * FROM T WHERE F1 = ? ORDER BY F2"; +OracleLexer lexer = new OracleLexer(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" + lexer.stringVal()); + 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/sql/parser/CommentTest.java b/src/test/java/com/alibaba/druid/sql/parser/CommentTest.java index 35efde7f51..0aeaaf1860 100644 --- a/src/test/java/com/alibaba/druid/sql/parser/CommentTest.java +++ b/src/test/java/com/alibaba/druid/sql/parser/CommentTest.java @@ -18,9 +18,9 @@ public class CommentTest extends TestCase { Token tok = lexer.token(); if (tok == Token.IDENTIFIER) { - System.out.println(tok.name() + "\t\t" + lexer.stringVal); + System.out.println(tok.name() + "\t\t" + lexer.stringVal()); } else if (tok == Token.MULTI_LINE_COMMENT) { - System.out.println(tok.name() + "\t\t" + lexer.stringVal); + System.out.println(tok.name() + "\t\t" + lexer.stringVal()); } else { System.out.println(tok.name() + "\t\t\t" + tok.name); } diff --git a/src/test/java/com/alibaba/druid/sql/parser/SQLLexerTest2.java b/src/test/java/com/alibaba/druid/sql/parser/SQLLexerTest2.java index b25c1c3947..28e54e3b8d 100644 --- a/src/test/java/com/alibaba/druid/sql/parser/SQLLexerTest2.java +++ b/src/test/java/com/alibaba/druid/sql/parser/SQLLexerTest2.java @@ -12,7 +12,7 @@ public class SQLLexerTest2 extends TestCase { Token tok = lexer.token(); if (tok == Token.IDENTIFIER) { - System.out.println(tok.name() + "\t\t" + lexer.stringVal); + System.out.println(tok.name() + "\t\t" + lexer.stringVal()); } else { System.out.println(tok.name() + "\t\t\t" + tok.name); } diff --git a/src/test/java/com/alibaba/druid/sql/parser/SQLMergeTest.java b/src/test/java/com/alibaba/druid/sql/parser/SQLMergeTest.java index 7d56c2d04e..c535fd1633 100644 --- a/src/test/java/com/alibaba/druid/sql/parser/SQLMergeTest.java +++ b/src/test/java/com/alibaba/druid/sql/parser/SQLMergeTest.java @@ -18,7 +18,7 @@ public class SQLMergeTest extends TestCase { String result = merge(); System.out.println(result); } - + public void test_merge_2() throws Exception { String result = merge2(); System.out.println(result); @@ -38,6 +38,7 @@ public class SQLMergeTest extends TestCase { StringBuilder out = new StringBuilder(); OracleOutputVisitor visitor = new OracleOutputVisitor(out) { + public boolean visit(SQLInListExpr x) { x.getExpr().accept(this); @@ -49,7 +50,7 @@ public class SQLMergeTest extends TestCase { return false; } }; - + OracleStatementParser parser = new OracleStatementParser(sql); List statementList = parser.parseStatementList(); for (SQLStatement statement : statementList) { @@ -59,12 +60,13 @@ public class SQLMergeTest extends TestCase { return out.toString(); } - + private String merge2() { String sql = "INSERT INTO T (F1, F2, F3, F4, F5) VALUES (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?)"; StringBuilder out = new StringBuilder(); MySqlOutputVisitor visitor = new MySqlOutputVisitor(out) { + public boolean visit(SQLInListExpr x) { x.getExpr().accept(this); @@ -75,7 +77,7 @@ public class SQLMergeTest extends TestCase { } return false; } - + @Override public boolean visit(MySqlInsertStatement x) { print("INSERT "); @@ -138,14 +140,14 @@ public class SQLMergeTest extends TestCase { return false; } }; - + MySqlStatementParser parser = new MySqlStatementParser(sql); List statementList = parser.parseStatementList(); for (SQLStatement statement : statementList) { statement.accept(visitor); visitor.println(); } - + return out.toString(); } }