mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improved sql parser
This commit is contained in:
@@ -2272,7 +2272,7 @@ public class Lexer {
|
||||
boolean ident = false;
|
||||
for (; ; ) {
|
||||
ch = charAt(++pos);
|
||||
if (isEOF() || ch == ';' || ch == ';') {
|
||||
if (isEOF() || ch == ';' || ch == ';' || ch == '\r' || ch == '\n') {
|
||||
pos--;
|
||||
bufPos--;
|
||||
break;
|
||||
@@ -2318,7 +2318,7 @@ public class Lexer {
|
||||
this.ch = charAt(pos);
|
||||
|
||||
if (dbType == DbType.odps && !isWhitespace(endChar)) {
|
||||
while (isIdentifierChar(this.ch) && ch != ';') {
|
||||
while (isIdentifierChar(this.ch) && ch != ';' && ch != ';') {
|
||||
++pos;
|
||||
bufPos++;
|
||||
this.ch = charAt(pos);
|
||||
|
||||
@@ -46,7 +46,7 @@ public class OdpsLexerTest extends TestCase {
|
||||
lexer.nextToken();
|
||||
assertEquals(Token.IDENTIFIER, lexer.token());
|
||||
lexer.nextToken();
|
||||
assertEquals(Token.IDENTIFIER, lexer.token());
|
||||
assertEquals(Token.VARIANT, lexer.token());
|
||||
assertEquals("@{yyyyMMdd}_${rundt}", lexer.stringVal());
|
||||
}
|
||||
|
||||
|
||||
@@ -29,11 +29,11 @@ public class OdpsSelectTest37 extends TestCase {
|
||||
String sql = "-- abc\u001A" +
|
||||
"\nselect * from t";
|
||||
|
||||
assertEquals("-- abc\n" +
|
||||
assertEquals("-- abc\u001A\n" +
|
||||
"SELECT *\n" +
|
||||
"FROM t", SQLUtils.formatOdps(sql));
|
||||
|
||||
assertEquals("-- abc\n" +
|
||||
assertEquals("-- abc\u001A\n" +
|
||||
"select *\n" +
|
||||
"from t", SQLUtils.formatOdps(sql, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user