Package dovetaildb.bytes

Examples of dovetaildb.bytes.Bytes


      for(Iterator<TokenRec> i = table.getTokenRecs(); i.hasNext();) {
        TokenRec rec = i.next();
        buffer.add(FsTokenRec.write(data, rec));
      }
      long tblStart = data.getSize();
      Bytes prefix = table.getFixedPrefix();
      data.appendVLong(prefix.getLength());
      prefix.appendTo(data);
      int numRecs = buffer.size();
      data.appendVLong(numRecs);
      for(FsTokenRec rec : buffer) {
        data.appendByte(rec.getToken());
        FsTokenTable subTable = rec.getFsTokenTable();
View Full Code Here


            subTable = parent.getTokenTable();
            push = parent.getSegmentPush();
          }
          if (subTable == null) {
            if (termTableDepth > 0) {
              Bytes newPrefix = new CompoundBytes(table.getFixedPrefix(), ArrayBytes.SINGLE_BYTE_OBJECTS[editBufferByte & 0xff]);
              subTable = new MemoryTokenTable(newPrefix, new ArrayList<TokenRec>());
            }
          }
          if (subTable != null) {
            subTable = applyEditsToTokenTable(subTokenTableEdits, subTable, policy, termTableDepth-1);
View Full Code Here

  static boolean verifySegmentPush(SegmentPush push) {
    push = push.copy();
    TraversalStack stack = new TraversalStack(push.copy());
    long lastDocId = Long.MIN_VALUE;
    Bytes lastTerm = new ArrayBytes(new byte[]{});
    while(stack.nextOrDown()) {
      stack.printPosition();
      long docId = stack.getCurrent().getDocId();
      if (docId < lastDocId) {
        throw new RuntimeException("DOC ID ERROR: cur="+docId+" prev="+lastDocId);
View Full Code Here

    }
    for(Iterator<TokenRec> recItr = table.getTokenRecs(); recItr.hasNext();) {
      TokenRec rec = recItr.next();
      int tok = rec.token & 0xFF;
      if (top <= tok && tok <= bottom) {
        Bytes subPrefix = CompoundBytes.make(range.prefix, ArrayBytes.SINGLE_BYTE_OBJECTS[tok]);
        QueryNode n = new BlueSteelPostingListQuery(subPrefix, rec);
        if (top == tok || tok == bottom) {
          n = FilteredQueryNode.make(n, range);
        }
        if (n != null) nodes.add(n);
View Full Code Here

  @Override
  public QueryNode getTerms(List<Bytes> terms, long revNum) {
    if (terms.size() == 0) return null;
    Range range = new Range();
    Bytes minTerm = null;
    Bytes maxTerm = null;
    for(Bytes term : terms) {
      if (minTerm == null || minTerm.compareTo(term) > 0) {
        minTerm = term;
      }
      if (maxTerm == null || maxTerm.compareTo(term) < 0) {
        maxTerm = term;
      }
    }
    if (minTerm == maxTerm && minTerm != null) {
      maxTerm = minTerm.copy();
View Full Code Here

    public abstract Iterator<TokenRec> getTokenRecs();
    /** null return normally means that there are no results; but
     * a null return with a resulting empty SlicedBytes means
     * that all results apply. */
    public TokenRec descend(SlicedBytes bytes) {
      Bytes fixedPrefix = getFixedPrefix();
      int prefixLen = 0;
      if (fixedPrefix != null) {
        if (! fixedPrefix.isPrefixOf(bytes)) {
          return null;
        }
        prefixLen = fixedPrefix.getLength();
      }
      int bytesLen = bytes.getLength();
      if (prefixLen >= bytesLen) return null;
      int ch = bytes.get(prefixLen);
      for(Iterator<TokenRec> i=getTokenRecs(); i.hasNext(); ) {
View Full Code Here

    if (uncompressed == null) return null;
    int uncompressedLen = uncompressed.getLength();
    if (uncompressedLen == 0) return compressionLiterals[0];
    int pos = Arrays.binarySearch(mapping, uncompressed);
    if (pos < 0) pos = (-pos) - 2; // need one before the insertion point
    Bytes prefix = mapping[pos].getPrefix();
    assert prefix.isPrefixOf(uncompressed);
    int prefixLen = prefix.getLength();
    Bytes suffix = SlicedBytes.make(uncompressed, prefixLen,
        uncompressedLen - prefixLen);
    return CompoundBytes.make(compressionLiterals[pos], suffix);
  }
View Full Code Here

    if (pos < 0) pos = (-pos) - 2; // need one before the insertion point
    int startPos = pos;
    int endPos = pos;
    while (pos + 1 < mapping.length) {
      pos++;
      Bytes prefix = mapping[pos].getPrefix();
      if (! prefix.couldOverlapWith(uncompressed)) break;
      endPos = pos;
    }
    if (startPos != endPos) {
      Range range = new Range();
      range.setBoundsAndExtractPrefix(compressionLiterals[startPos], compressionLiterals[endPos]);
      return range.getPrefix();
    }
    Bytes prefix = mapping[startPos];
    assert prefix.isPrefixOf(uncompressed);
    int prefixLen = prefix.getLength();
    Bytes suffix = SlicedBytes.make(uncompressed, prefixLen, uncompressedLen - prefixLen);
    return CompoundBytes.make(compressionLiterals[pos], suffix);
  }
View Full Code Here

  }
 
  public PrefixCompressedBagIndex(BagIndex inner, Bytes[] prefixes) {
    super(inner);
    mapping = new CompoundBytes[prefixes.length];
    Bytes prev = ArrayBytes.EMPTY_BYTES;
    for(int i=0; i<prefixes.length; i++) {
      Bytes cur = prefixes[i].flatten();
      int curLen = cur.getLength();
      int prevLen = prev.getLength();
      while(prevLen > 0 && prev.get(prevLen-1) == 255) {
        prevLen -= 1;
      }
      if (curLen >= prevLen) {
View Full Code Here

  }
 
  @Override
  public QueryNode getRange(Range range, long revNum) {
    range.propagatePrefixIntoRange(0);
    Bytes minTerm = compress(range.getMinSuffix());
    Bytes maxTerm = compress(range.getMaxSuffix());
    range.setBoundsAndExtractPrefix(minTerm, maxTerm);
    return makeQueryNode(subBagIndex.getRange(range, revNum));
  }
View Full Code Here

TOP

Related Classes of dovetaildb.bytes.Bytes

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.