public void PreprocessStmt(Ast.SqlStmt input) { foreach (var macro in _macros) { while (macro.Apply(input)) { } } }
private void ExecuteSqlStmt(Ast.SqlStmt stmt, ScriptEnv env) { foreach (var beforeStmt in stmt.RunBefore) { ExecuteStmt(beforeStmt, env); } try { var dt = _notebook.Query(stmt.Sql, env.Vars, env.OnRow); if (dt.Columns.Any()) { env.Output.DataTables.Add(dt); } else { dt.Dispose(); } } finally { foreach (var afterStmt in stmt.RunAfter) { ExecuteStmt(afterStmt, env); } } }