提交 f89763c5 编写于 作者: S serge-rider

#3228 Delimiter redefine fix


Former-commit-id: 5a8d071e
上级 9c40cb73
...@@ -61,6 +61,7 @@ public class SQLDelimiterSetRule implements IRule { ...@@ -61,6 +61,7 @@ public class SQLDelimiterSetRule implements IRule {
} }
} }
StringBuilder delimBuffer = new StringBuilder(); StringBuilder delimBuffer = new StringBuilder();
int delimLength = 0;
int next = scanner.read(); int next = scanner.read();
if (next == ICharacterScanner.EOF || next == '\n' || next == '\r') { if (next == ICharacterScanner.EOF || next == '\n' || next == '\r') {
...@@ -78,13 +79,16 @@ public class SQLDelimiterSetRule implements IRule { ...@@ -78,13 +79,16 @@ public class SQLDelimiterSetRule implements IRule {
next = scanner.read(); next = scanner.read();
if (next == ICharacterScanner.EOF || next == '\n' || next == '\r') { if (next == ICharacterScanner.EOF || next == '\n' || next == '\r') {
break; break;
} else if (delimLength == 0 && delimBuffer.length() > 0 && Character.isWhitespace(next)) {
delimLength = delimBuffer.length();
} }
delimBuffer.append((char) next); delimBuffer.append((char) next);
} }
scanner.unread(); scanner.unread();
} }
if (scanner instanceof SQLRuleManager && ((SQLRuleManager) scanner).isEvalMode()) { if (scanner instanceof SQLRuleManager && ((SQLRuleManager) scanner).isEvalMode()) {
final String newDelimiter = delimBuffer.toString().trim(); final String newDelimiter = delimLength <= 0 ?
delimBuffer.toString().trim() : delimBuffer.substring(0, delimLength).trim();
delimiterRule.changeDelimiter(newDelimiter); delimiterRule.changeDelimiter(newDelimiter);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册