Package org.openrdf.sail.nativerdf.btree

Examples of org.openrdf.sail.nativerdf.btree.RecordIterator


      iter.close();

      for (TripleIndex index : indexes) {
        BTree btree = index.getBTree();

        RecordIterator recIter = recordCache.getRecords();
        try {
          while ((data = recIter.next()) != null) {
            btree.remove(data);
          }
        }
        finally {
          recIter.close();
        }
      }
    }
    finally {
      recordCache.discard();
View Full Code Here


  public void commit()
    throws IOException
  {
    if (txnRemovedTriples) {
      RecordIterator iter = getTriples(-1, -1, -1, -1, REMOVED_FLAG, REMOVED_FLAG);
      try {
        discardTriples(iter);
      }
      finally {
        txnRemovedTriples = false;
        iter.close();
      }
    }

    boolean validCache = updatedTriplesCache.isValid();

    for (TripleIndex index : indexes) {
      BTree btree = index.getBTree();

      RecordIterator iter;
      if (validCache) {
        // Use the cached set of updated triples
        iter = updatedTriplesCache.getRecords();
      }
      else {
        // Cache is invalid; too much updates(?). Iterate over all triples
        iter = btree.iterateAll();
      }

      try {
        byte[] data = null;
        while ((data = iter.next()) != null) {
          byte flags = data[FLAG_IDX];
          boolean added = (flags & ADDED_FLAG) != 0;
          boolean removed = (flags & REMOVED_FLAG) != 0;
          boolean toggled = (flags & TOGGLE_EXPLICIT_FLAG) != 0;

          if (removed) {
            // Record has been discarded earlier, do not put it back in!
            continue;
          }

          if (added || toggled) {
            if (toggled) {
              data[FLAG_IDX] ^= EXPLICIT_FLAG;
            }
            if (added) {
              data[FLAG_IDX] ^= ADDED_FLAG;
            }

            if (validCache) {
              // We're iterating the cache
              btree.insert(data);
            }
            else {
              // We're iterating the BTree itself
              iter.set(data);
            }
          }
        }
      }
      finally {
        iter.close();
      }
    }

    updatedTriplesCache.discard();
    updatedTriplesCache = null;
View Full Code Here

  public void rollback()
    throws IOException
  {
    if (txnAddedTriples) {
      RecordIterator iter = getTriples(-1, -1, -1, -1, ADDED_FLAG, ADDED_FLAG);
      try {
        discardTriples(iter);
      }
      finally {
        txnAddedTriples = false;
        iter.close();
      }
    }

    boolean validCache = updatedTriplesCache.isValid();

    byte txnFlagsMask = ~(ADDED_FLAG | REMOVED_FLAG | TOGGLE_EXPLICIT_FLAG);

    for (TripleIndex index : indexes) {
      BTree btree = index.getBTree();

      RecordIterator iter;
      if (validCache) {
        // Use the cached set of updated triples
        iter = updatedTriplesCache.getRecords();
      }
      else {
        // Cache is invalid; too much updates(?). Iterate over all triples
        iter = btree.iterateAll();
      }

      try {
        byte[] data = null;
        while ((data = iter.next()) != null) {
          byte flags = data[FLAG_IDX];
          boolean removed = (flags & REMOVED_FLAG) != 0;
          boolean toggled = (flags & TOGGLE_EXPLICIT_FLAG) != 0;

          if (removed || toggled) {
            data[FLAG_IDX] &= txnFlagsMask;

            if (validCache) {
              // We're iterating the cache
              btree.insert(data);
            }
            else {
              // We're iterating the BTree itself
              iter.set(data);
            }
          }
        }
      }
      finally {
        iter.close();
      }
    }

    updatedTriplesCache.discard();
    updatedTriplesCache = null;
View Full Code Here

      long size = 0L;

      for (int contextID : contextIDs) {
        // Iterate over all explicit statements
        RecordIterator iter = nativeStore.getTripleStore().getTriples(-1, -1, -1, contextID, true,
            transactionActive());
        try {
          while (iter.next() != null) {
            size++;
          }
        }
        finally {
          iter.close();
        }
      }

      return size;
    }
View Full Code Here

        List<Statement> removedStatements = Collections.emptyList();

        if (hasConnectionListeners()) {
          // We need to iterate over all matching triples so that they can
          // be reported
          RecordIterator btreeIter = tripleStore.getTriples(subjID, predID, objID, contextID, explicit,
              true);

          NativeStatementIterator iter = new NativeStatementIterator(btreeIter, valueStore);

          removedStatements = Iterations.asList(iter);
View Full Code Here

TOP

Related Classes of org.openrdf.sail.nativerdf.btree.RecordIterator

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.