improve ParameterizedOutputVisitor

This commit is contained in:
yakolee
2014-05-21 14:49:49 +08:00
parent 7bfdd1cfea
commit 52b66266d8
7 changed files with 23 additions and 1 deletions
@@ -105,6 +105,7 @@ public class MySqlLexer extends Lexer {
stringVal = subString(mark, bufPos);
token = Token.LINE_COMMENT;
hasComment = true;
if (commentHandler != null && commentHandler.handle(lastToken, stringVal)) {
return;
@@ -440,6 +441,7 @@ public class MySqlLexer extends Lexer {
} else {
stringVal = subString(mark, bufPos);
token = Token.MULTI_LINE_COMMENT;
hasComment = true;
}
if (commentHandler != null && commentHandler.handle(lastToken, stringVal)) {
@@ -481,6 +483,7 @@ public class MySqlLexer extends Lexer {
stringVal = subString(mark, bufPos + 1);
token = Token.LINE_COMMENT;
hasComment = true;
if (commentHandler != null && commentHandler.handle(lastToken, stringVal)) {
return;
@@ -92,6 +92,7 @@ public class OdpsLexer extends Lexer {
} else {
stringVal = subString(mark, bufPos);
token = Token.MULTI_LINE_COMMENT;
hasComment = true;
}
if (token != Token.HINT && !isAllowComment()) {
@@ -134,6 +135,7 @@ public class OdpsLexer extends Lexer {
stringVal = subString(mark + 1, bufPos);
token = Token.LINE_COMMENT;
hasComment = true;
return;
}
}
@@ -230,6 +230,7 @@ public class OracleLexer extends Lexer {
} else {
stringVal = subString(mark, bufPos);
token = Token.MULTI_LINE_COMMENT;
hasComment = true;
}
if (token != Token.HINT && !isAllowComment()) {
@@ -272,6 +273,7 @@ public class OracleLexer extends Lexer {
stringVal = subString(mark + 1, bufPos);
token = Token.LINE_COMMENT;
hasComment = true;
return;
}
}
@@ -100,6 +100,7 @@ public class SQLServerLexer extends Lexer {
} else {
stringVal = subString(mark, bufPos);
token = Token.MULTI_LINE_COMMENT;
hasComment = true;
}
if (token != Token.HINT && !isAllowComment()) {
@@ -142,6 +143,7 @@ public class SQLServerLexer extends Lexer {
stringVal = subString(mark + 1, bufPos);
token = Token.LINE_COMMENT;
hasComment = true;
return;
}
}
@@ -69,6 +69,8 @@ public class Lexer {
private int varIndex = -1;
protected CommentHandler commentHandler;
protected boolean hasComment = false;
public Lexer(String input){
this(input, true);
@@ -747,6 +749,7 @@ public class Lexer {
stringVal = subString(mark, bufPos);
token = Token.MULTI_LINE_COMMENT;
hasComment = true;
return;
}
@@ -777,6 +780,7 @@ public class Lexer {
stringVal = subString(mark + 1, bufPos);
token = Token.LINE_COMMENT;
hasComment = true;
return;
}
}
@@ -1045,4 +1049,8 @@ public class Lexer {
boolean handle(Token lastToken, String comment);
}
public boolean isHasComment() {
return hasComment;
}
}
@@ -67,7 +67,7 @@ public class ParameterizedOutputVisitorUtils {
stmt.accept(visitor);
}
if (visitor.getReplaceCount() == 0) {
if (visitor.getReplaceCount() == 0 && !parser.getLexer().isHasComment()) {
return sql;
}