mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
bug fixed for sql parser.
This commit is contained in:
+3
-1
@@ -42,12 +42,14 @@ public class MySqlCursorDeclareStatement extends MySqlStatementImpl{
|
||||
}
|
||||
|
||||
public void setSelect(SQLSelectStatement select) {
|
||||
if (select != null) {
|
||||
select.setParent(this);
|
||||
}
|
||||
this.select = select;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept0(MySqlASTVisitor visitor) {
|
||||
// TODO Auto-generated method stub
|
||||
if (visitor.visit(this)) {
|
||||
acceptChild(visitor, select);
|
||||
}
|
||||
|
||||
@@ -3619,6 +3619,7 @@ public class MySqlStatementParser extends SQLStatementParser {
|
||||
SQLIfStatement.ElseIf elseIf = new SQLIfStatement.ElseIf();
|
||||
|
||||
elseIf.setCondition(this.exprParser.expr());
|
||||
elseIf.setParent(stmt);
|
||||
|
||||
accept(Token.THEN);
|
||||
this.parseStatementList(elseIf.getStatements(), -1, elseIf);
|
||||
|
||||
@@ -178,7 +178,9 @@ public class OdpsSelectParser extends SQLSelectParser {
|
||||
|
||||
protected SQLTableSource parseLateralView(SQLTableSource tableSource) {
|
||||
accept(Token.VIEW);
|
||||
tableSource.setAlias(null);
|
||||
if ("LATERAL".equalsIgnoreCase(tableSource.getAlias())) {
|
||||
tableSource.setAlias(null);
|
||||
}
|
||||
OdpsLateralViewTableSource lateralViewTabSrc = new OdpsLateralViewTableSource();
|
||||
lateralViewTabSrc.setTableSource(tableSource);
|
||||
|
||||
|
||||
@@ -58,6 +58,9 @@ public class OracleForStatement extends OracleStatementImpl {
|
||||
}
|
||||
|
||||
public void setRange(SQLExpr range) {
|
||||
if (range != null) {
|
||||
range.setParent(this);
|
||||
}
|
||||
this.range = range;
|
||||
}
|
||||
|
||||
|
||||
@@ -740,6 +740,13 @@ public class OracleStatementParser extends SQLStatementParser {
|
||||
return stmt;
|
||||
}
|
||||
|
||||
public SQLCreateFunctionStatement parseCreateFunction() {
|
||||
accept(Token.CREATE);
|
||||
SQLCreateFunctionStatement stmt = (SQLCreateFunctionStatement) parseFunction();
|
||||
stmt.setCreate(true);
|
||||
return stmt;
|
||||
}
|
||||
|
||||
public SQLStatement parseFunction() {
|
||||
SQLCreateFunctionStatement stmt = new SQLCreateFunctionStatement();
|
||||
stmt.setDbType(dbType);
|
||||
@@ -893,6 +900,7 @@ public class OracleStatementParser extends SQLStatementParser {
|
||||
SQLIfStatement.ElseIf elseIf = new SQLIfStatement.ElseIf();
|
||||
|
||||
elseIf.setCondition(this.exprParser.expr());
|
||||
elseIf.setParent(stmt);
|
||||
|
||||
accept(Token.THEN);
|
||||
this.parseStatementList(elseIf.getStatements(), -1, stmt);
|
||||
@@ -903,6 +911,8 @@ public class OracleStatementParser extends SQLStatementParser {
|
||||
if (lexer.token() == Token.ELSE) {
|
||||
lexer.nextToken();
|
||||
|
||||
|
||||
|
||||
SQLIfStatement.Else elseItem = new SQLIfStatement.Else();
|
||||
this.parseStatementList(elseItem.getStatements(), -1, elseItem);
|
||||
stmt.setElseItem(elseItem);
|
||||
|
||||
@@ -1865,7 +1865,10 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS
|
||||
}
|
||||
x.getIndex().accept(this);
|
||||
print0(ucase ? " IN " : " in ");
|
||||
x.getRange().accept(this);
|
||||
|
||||
SQLExpr range = x.getRange();
|
||||
range.accept(this);
|
||||
|
||||
if (!all) {
|
||||
println();
|
||||
print0(ucase ? "LOOP" : "loop");
|
||||
|
||||
Reference in New Issue
Block a user