protected DataTable FilterTableColumns(string ns, DataTable allcols, NameWithSchema table) { var index = (DataTableIndex)AnalyserCache.Get(ns, "colscache"); if (index == null) { int schemai = allcols.SafeOrdinal(AnalysingExtensions.SCHEMACOL); int tablei = allcols.SafeOrdinal(AnalysingExtensions.TABLECOL); index = new DataTableIndex(allcols, schemai, tablei); AnalyserCache.Put(ns, "colscache", index); } return(index.Query(v => v == null || table.Schema == null || String.Compare(v, table.Schema, true) == 0, v => v == null || table.Name == null || String.Compare(v, table.Name, true) == 0)); //var res = allcols.Clone(); //foreach (DataRow row in allcols.Rows) //{ // if (table.Schema != null && String.Compare(row.SafeString(AnalysingExtensions.SCHEMACOL), table.Schema, true) != 0) continue; // if (table.Name != null && String.Compare(row.SafeString(AnalysingExtensions.TABLECOL), table.Name, true) != 0) continue; // res.ImportRow(row); //} //return res; }
public static DataTable GetTableColumns(this DatabaseCache cache, string ns, NameWithSchema table) { string key = table != null?table.ToString() : "@#all"; return((DataTable)cache.Get(ns, key)); }
public static TableAnalyser GetTableAnalyser(this DatabaseCache cache, string key) { return((TableAnalyser)cache.Get("analyser.tableanal", key)); }
public static TableStructure GetQueryStructure(this DatabaseCache cache, string sql) { return((TableStructure)cache.Get("analyser.querystructure", sql)); }
public static DataTable GetSqlData(this DatabaseCache cache, string sql) { return((DataTable)cache.Get("analyser.sqldata", sql)); }