File tree 2 files changed +31
-1
lines changed
src/main/java/com/alibaba/druid/sql/dialect/mysql
2 files changed +31
-1
lines changed Original file line number Diff line number Diff line change 87
87
import com .alibaba .druid .sql .ast .statement .SQLCreateTableStatement ;
88
88
import com .alibaba .druid .sql .ast .statement .SQLExprStatement ;
89
89
import com .alibaba .druid .sql .ast .statement .SQLExprTableSource ;
90
+ import com .alibaba .druid .sql .ast .statement .SQLFetchStatement ;
90
91
import com .alibaba .druid .sql .ast .statement .SQLIfStatement ;
91
92
import com .alibaba .druid .sql .ast .statement .SQLInsertStatement ;
92
93
import com .alibaba .druid .sql .ast .statement .SQLLoopStatement ;
@@ -5542,4 +5543,33 @@ public MySqlDeclareConditionStatement parseDeclareCondition() {
5542
5543
5543
5544
return stmt ;
5544
5545
}
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
+ }
5545
5575
}
Original file line number Diff line number Diff line change @@ -4412,7 +4412,7 @@ public void endVisit(MySqlChecksumTableStatement x) {
4412
4412
@ Override
4413
4413
public boolean visit (MySqlChecksumTableStatement x ) {
4414
4414
print0 (ucase ? "CHECKSUM TABLE " : "checksum table " );
4415
- printAndAccept (x .getTables (), ", " );
4415
+ printAndAccept (x .getTables (), ", " );
4416
4416
return false ;
4417
4417
}
4418
4418
} //
You can’t perform that action at this time.
0 commit comments