public string NextKey(string AfterThisKey) { xBucket bucket; string prefix; string result = null; bool found = FindBucketForPrefix(AfterThisKey, out bucket, out prefix, false); if (found) { result = bucket.NextKey(AfterThisKey); if (result != null) { return(result); } } // otherwise look in the next bucket string nextprefix = this.tree.NextKey(prefix); if (nextprefix == null) { return(null); } byte[] databytes = this.tree[nextprefix]; bucket = new xBucket(this); bucket.Load(databytes); if (bucket.Count() < 1) { throw new BplusTreeException("empty bucket loaded"); } return(bucket.FirstKey()); }
public string NextKey(string AfterThisKey, bool caseSensitive) { xBucket bucket; string prefix; string result = null; bool found = FindBucketForPrefix(AfterThisKey, out bucket, out prefix, false, caseSensitive); if (found) { result = bucket.NextKey(AfterThisKey, caseSensitive); if (result!=null) { return result; } } // otherwise look in the next bucket string nextprefix = this.tree.NextKey(prefix, caseSensitive); if (nextprefix==null) { return null; } byte[] databytes = this.tree[nextprefix]; bucket = new xBucket(this); bucket.Load(databytes); if (bucket.Count()<1) { throw new BplusTreeException("empty bucket loaded"); } return bucket.FirstKey(); }