private static Destination<Tuple<NodeId>> loadTuples(TupleIndex index) { return (List<Tuple<NodeId>> tuples) -> { for(Tuple<NodeId> tuple : tuples) index.add(tuple); }; } }
public void load(Tuple<NodeId> tuple) { for ( TupleIndex idx : indexes ) idx.add(tuple); } }
@Override public void add(Tuple<NodeId> tuple) { index.add(tuple) ; }
/** Copy a stream to several indexes (sequential version) */ public static void copyIndex(Iterator<Tuple<NodeId>> srcIter, TupleIndex[] destIndexes, ProgressMonitor monitor) { long counter = 0; for ( ; srcIter.hasNext() ; ) { counter++; Tuple<NodeId> tuple = srcIter.next(); monitor.tick(); for ( TupleIndex destIdx : destIndexes ) { if ( destIdx != null ) destIdx.add(tuple); } } }
/** Insert a tuple */ public void add(Tuple<NodeId> t) { // A "contains test" could be used to avoid needing to hit all // the indexes when the triple is already present. if ( tupleLen != t.len() ) throw new TDBException(format("Mismatch: inserting tuple of length %d into a table of tuples of length %d", t.len(), tupleLen)) ; for ( int i = 0 ; i < indexes.length ; i++ ) { if ( indexes[i] == null ) continue ; indexes[i].add(t) ; syncNeeded = true ; } }
protected static void add(TupleIndex index, NodeId x1, NodeId x2, NodeId x3) { Tuple<NodeId> tuple = tuple(x1, x2, x3) ; index.add(tuple) ; }
protected static void add(TupleIndex index, NodeId x1, NodeId x2, NodeId x3) { Tuple<NodeId> tuple = tuple(x1, x2, x3) ; index.add(tuple) ; }