private void method_1(ExpParse expParse_0) { Filters fs = expParse_0.getFilters(this); if (DataSet.DEBUG) { bool flag = fs.includeAllFilter(); CellExt1 cS = expParse_0.CS; if ((cS != null) && (cS.Current != null)) { if (cS.Current.Source == cS.Current) { if (flag) { Logger.info(cS.Current.SourceId.ToString().ToString() + "过滤完全使用索引"); } else { Logger.info(cS.Current.SourceId.ToString().ToString() + "过滤时使用索引中遍历"); } } } else if (flag) { Logger.info("过滤完全使用索引"); } else { Logger.info("过滤使用索引中遍历"); } } this.arrayList_0 = this.dataSet_0.Index.getRows(this.btree_0, fs); this.arrayList_0.TrimToSize(); }
public Group filter(ExpParse exp) { if (exp == null) { return(this); } if (exp.ConstantExpression) { object obj2 = exp.calculate(); if ((obj2 is bool) && (bool)(obj2)) { return(this); } } Group group = (Group)base.MemberwiseClone(); group.bool_0 = false; if (exp.getFilters(group) == null) { group.method_0(exp); } else { group.method_1(exp); } group.btree_0 = null; return(group); }
public Row select1(ExpParse filterExp) { if (filterExp == null) { if (this.arrayList_0.Count != 0) { return((Row)this.arrayList_0[0]); } return(this.dataSet_0.NullRow); } Filters fs = filterExp.getFilters(this); if (fs != null) { if (DataSet.DEBUG) { CellExt1 cS = filterExp.CS; if ((cS == null) || (cS.Current == null)) { Logger.info("单选完全使用索引"); } else if (cS.Current.Source == cS.Current) { Logger.info(cS.Current.SourceId.ToString().ToString() + "单选完全使用索引"); } } Row row2 = this.dataSet_0.Index.getRow(this.btree_0, fs); if (row2 != null) { return(row2); } } else { for (int i = 0; i < this.arrayList_0.Count; i++) { Row row3 = (Row)this.arrayList_0[i]; if (row3.test(filterExp)) { return(row3); } } } return(this.dataSet_0.NullRow); }