internal static IndexRowBookmark?New(IndexRowSet irs) { var k = irs._key; var b = (MTreeBookmark <Serialisable>?)((k.Length != 0) ? irs._ix.rows.PositionAt(k) : irs._ix.rows.First()); for (; b != null; b = b.Next() as MTreeBookmark <Serialisable> ) { var rc = irs._tr.Get(b.Value.Item2); var rb = new IndexRowBookmark(irs, new SRow(irs._tr, rc), b, 0); if (rc.Matches(rb, irs._wh)) { return(rb); } } return(null); }
public override Bookmark <Serialisable>?Next() { if (_irs._unique) { return(null); } for (var b = _mbm.Next(); b != null; b = b.Next()) { var rc = _irs._tr.Get(b.Value.Item2); var rb = new IndexRowBookmark(_irs, new SRow(_irs._tr, rc), (MTreeBookmark <Serialisable>)b, Position + 1); if (rc.Matches(rb, _irs._wh)) { return(rb); } } return(null); }
public override Bookmark <Serialisable>?First() { return(IndexRowBookmark.New(this)); }