public static void OptimizeChilds(this ISqlConvertible expr) { expr.Expolore(e => { if (e != null && e is Expression) { Expression e2 = (Expression)e; return(e2.Optimize()); } return(e); }); }
public static ITableDesc[] ExtractTables(ISqlConvertible token) { List <ITableDesc> res = new List <ITableDesc>(); token.Expolore(a => { if ((a is ITableDesc) && !(a is ISelect)) { res.Add((ITableDesc)a); } return(a); }); return(res.ToArray()); }
public static ITableSource FindParentTableSource(this ISqlConvertible token) { var p = token.ParentToken; if (p == null) { return(null); } if (p is ITableSource) { return((ITableSource)p); } return(p.FindParentTableSource()); }