public static QsiTableNode VisitDmlStatement(DmlStatementContext context) { if (context.selectStatement() != null) { return(VisitSelectStatement(context.selectStatement())); } return(null); }
public List <Statement> ParseDmlStatement(DmlStatementContext node) { List <Statement> statements = new List <Statement>(); foreach (var child in node.children) { if (child is InsertStatementContext insert) { InsertStatement statement = this.ParseInsertStatement(insert); statements.Add(statement); } else if (child is DeleteStatementContext delete) { statements.AddRange(this.ParseDeleteStatement(delete)); } else if (child is UpdateStatementContext update) { statements.Add(this.ParseUpdateStatement(update)); } else if (child is SimpleSelectContext selectContext) { SelectStatement statement = this.ParseSelectStatement(selectContext); statements.Add(statement); } else if (child is CallStatementContext call) { statements.Add(this.ParseCallStatement(call)); } else if (child is UnionSelectContext union) { statements.Add(this.ParseUnionSelect(union)); } } return(statements); }
public static IQueryPlanner VisitDmlStatementContext(DmlStatementContext context) { if (context.children.Count == 0) { return(null); } switch (context.children[0]) { case SelectStatementContext selectStatementContext: return(new SelectPlanner(VisitSelectStatement(selectStatementContext))); case InsertStatementContext insertStatementContext: return(new InsertPlanner(VisitInsertStatement(insertStatementContext))); case UpdateStatementContext updateStatementContext: return(new UpdatePlanner(VisitUpdateStatement(updateStatementContext))); case DeleteStatementContext deleteStatementContext: return(new DeletePlanner(VisitDeleteStatement(deleteStatementContext))); } return(VisitorHelper.ThrowNotSupportedContext <IQueryPlanner>((ParserRuleContext)context.children[0])); }