fix split bug
This commit is contained in:
@ -25,6 +25,16 @@ function splitSql(sql) {
|
||||
sql += ';';
|
||||
haveEnd = false;
|
||||
}
|
||||
function pushSql(parser, sql) {
|
||||
if (!haveEnd && parser.index == sql.length - 1) {
|
||||
parser.sqls.push(parser.index - 1);
|
||||
parser.queue = '';
|
||||
}
|
||||
else {
|
||||
parser.sqls.push(parser.index);
|
||||
parser.queue = '';
|
||||
}
|
||||
}
|
||||
// 处理引号
|
||||
function quoteToken(parser, sql) {
|
||||
let queue = parser.queue;
|
||||
@ -81,14 +91,7 @@ function splitSql(sql) {
|
||||
function splitToken(parser, sql) {
|
||||
let queue = parser.queue;
|
||||
if (queue.endsWith(';')) {
|
||||
if (!haveEnd && parser.index == sql.length - 1) {
|
||||
parser.sqls.push(parser.index - 1);
|
||||
queue = '';
|
||||
}
|
||||
else {
|
||||
parser.sqls.push(parser.index);
|
||||
queue = '';
|
||||
}
|
||||
pushSql(parser, sql);
|
||||
}
|
||||
else {
|
||||
return null;
|
||||
@ -106,6 +109,9 @@ function splitSql(sql) {
|
||||
for (let i = 0; i < tokenFuncs.length; i++) {
|
||||
tokenFuncs[i](parser, sql);
|
||||
}
|
||||
if (parser.index == sql.length - 1 && parser.queue) {
|
||||
pushSql(parser, sql);
|
||||
}
|
||||
}
|
||||
return parser.sqls;
|
||||
}
|
||||
|
Reference in New Issue
Block a user