@Override protected Record internalMaxRecord(AccessPath path) { BPTreePage page = get(count) ; trackPath(path, this, count, page) ; Record r = page.internalMaxRecord(path) ; page.release() ; return r ; }
@Override final Record internalSearch(AccessPath path, Record rec) { if ( BPT.CheckingNode ) internalCheckNode() ; BPTreePage page = findHere(path, rec) ; Record r = page.internalSearch(path, rec) ; page.release() ; return r ; }
@Override final Record internalSearch(AccessPath path, Record rec) { if ( BPT.CheckingNode ) internalCheckNode() ; BPTreePage page = findHere(path, rec) ; Record r = page.internalSearch(path, rec) ; page.release() ; return r ; }
@Override protected Record internalMaxRecord(AccessPath path) { BPTreePage page = get(count) ; trackPath(path, this, count, page) ; Record r = page.internalMaxRecord(path) ; page.release() ; return r ; }
@Override protected Record internalMinRecord(AccessPath path) { BPTreePage page = get(0) ; trackPath(path, this, 0, page) ; Record r = page.internalMinRecord(path) ; page.release() ; return r ; }
/** Return true if there are no keys here or below this node */ @Override final boolean hasAnyKeys() { if ( this.count > 0 ) return true ; if ( !isRoot() ) return false ; // The root can be zero size and point to a single data block. BPTreePage page = get(0) ; boolean b = page.hasAnyKeys() ; page.release() ; return b ; }
@Override protected Record internalMinRecord(AccessPath path) { BPTreePage page = get(0) ; trackPath(path, this, 0, page) ; Record r = page.internalMinRecord(path) ; page.release() ; return r ; }
/** Return true if there are no keys here or below this node */ @Override final boolean hasAnyKeys() { if ( this.count > 0 ) return true ; if ( !isRoot() ) return false ; // The root can be zero size and point to a single data block. BPTreePage page = get(0) ; boolean b = page.hasAnyKeys() ; page.release() ; return b ; }
@Override public void output(IndentedWriter out) { out.print(toString()) ; out.incIndent() ; for ( int i = 0 ; i < count + 1 ; i++ ) { out.println() ; BPTreePage page = get(i) ; page.output(out) ; page.release() ; } out.decIndent() ; }
@Override public void output(IndentedWriter out) { out.print(toString()) ; out.incIndent() ; for ( int i = 0 ; i < count + 1 ; i++ ) { out.println() ; BPTreePage page = get(i) ; page.output(out) ; page.release() ; } out.decIndent() ; }
trackPath(path, root, 0, page) ; Record r = page.internalDelete(path, rec) ; page.release() ; if ( r != null ) root.write() ;
trackPath(path, root, 0, page) ; Record r = page.internalDelete(path, rec) ; page.release() ; if ( r != null ) root.write() ;
@Test public void bpt_records_2() { BPTreeRecords bpr = make() ; fill(bpr) ; int s = bpr.getCount() ; assertTrue(bpr.isFull()) ; BPTreePage z = bpr.split() ; assertTrue(z instanceof BPTreeRecords) ; assertEquals(s, z.getCount() + bpr.getCount()) ; check(bpr) ; check((BPTreeRecords)z) ; bpr.release() ; z.release() ; }
@Test public void bpt_records_2() { BPTreeRecords bpr = make() ; fill(bpr) ; int s = bpr.getCount() ; assertTrue(bpr.isFull()) ; BPTreePage z = bpr.split() ; assertTrue(z instanceof BPTreeRecords) ; assertEquals(s, z.getCount() + bpr.getCount()) ; check(bpr) ; check((BPTreeRecords)z) ; bpr.release() ; z.release() ; }
left.release() ; right.free() ;
left.release() ; right.free() ;