Skip to content

Commit 1d784d1

Browse files
committed
Merge branch 'master' of https://github.com/alibaba/druid
2 parents 0419a4e + 6df3c39 commit 1d784d1

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java

+30
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@
8787
import com.alibaba.druid.sql.ast.statement.SQLCreateTableStatement;
8888
import com.alibaba.druid.sql.ast.statement.SQLExprStatement;
8989
import com.alibaba.druid.sql.ast.statement.SQLExprTableSource;
90+
import com.alibaba.druid.sql.ast.statement.SQLFetchStatement;
9091
import com.alibaba.druid.sql.ast.statement.SQLIfStatement;
9192
import com.alibaba.druid.sql.ast.statement.SQLInsertStatement;
9293
import com.alibaba.druid.sql.ast.statement.SQLLoopStatement;
@@ -5542,4 +5543,33 @@ public MySqlDeclareConditionStatement parseDeclareCondition() {
55425543

55435544
return stmt;
55445545
}
5546+
5547+
/**
5548+
* FETCH [[NEXT] FROM] cursor_name INTO var_name [, var_name] ...
5549+
*/
5550+
public SQLFetchStatement parseFetch() {
5551+
accept(Token.FETCH);
5552+
5553+
if (lexer.identifierEquals("NEXT")) {
5554+
lexer.nextToken();
5555+
accept(Token.FROM);
5556+
} else if (Token.FROM == lexer.token()) {
5557+
lexer.nextToken();
5558+
}
5559+
5560+
SQLFetchStatement stmt = new SQLFetchStatement();
5561+
stmt.setCursorName(this.exprParser.name());
5562+
5563+
accept(Token.INTO);
5564+
for (;;) {
5565+
stmt.getInto().add(this.exprParser.name());
5566+
if (lexer.token() == Token.COMMA) {
5567+
lexer.nextToken();
5568+
continue;
5569+
}
5570+
break;
5571+
}
5572+
5573+
return stmt;
5574+
}
55455575
}

src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlOutputVisitor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -4412,7 +4412,7 @@ public void endVisit(MySqlChecksumTableStatement x) {
44124412
@Override
44134413
public boolean visit(MySqlChecksumTableStatement x) {
44144414
print0(ucase ? "CHECKSUM TABLE " : "checksum table ");
4415-
printAndAccept(x.getTables(), "");
4415+
printAndAccept(x.getTables(), ", ");
44164416
return false;
44174417
}
44184418
} //

0 commit comments

Comments
 (0)