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);
            }
 protected IndexRowBookmark(IndexRowSet irs, SRow ob, MTreeBookmark <Serialisable> mbm, int p) : base(irs, ob, p)
 {
     _irs = irs; _mbm = mbm;
 }