public Value getSinglePropertyValue() { return propertyValues.getOnlyValue(); }
private static AddedAndRemoved indexUpdatesForScanAndFilter( ReadableTransactionState txState, IndexDescriptor descriptor, IndexQuery filter, IndexOrder indexOrder ) { Map<ValueTuple,? extends LongDiffSets> updates = getUpdates( txState, descriptor, indexOrder ); if ( updates == null ) { return EMPTY_ADDED_AND_REMOVED; } MutableLongList added = LongLists.mutable.empty(); MutableLongSet removed = LongSets.mutable.empty(); for ( Map.Entry<ValueTuple,? extends LongDiffSets> entry : updates.entrySet() ) { ValueTuple key = entry.getKey(); if ( filter == null || filter.acceptsValue( key.getOnlyValue() ) ) { LongDiffSets diffSet = entry.getValue(); added.addAll( diffSet.getAdded() ); removed.addAll( diffSet.getRemoved() ); } } return new AddedAndRemoved( indexOrder == IndexOrder.DESCENDING ? added.asReversed() : added, removed ); }
private static AddedWithValuesAndRemoved indexUpdatesWithValuesScanAndFilter( ReadableTransactionState txState, IndexDescriptor descriptor, IndexQuery filter, IndexOrder indexOrder ) { Map<ValueTuple,? extends LongDiffSets> updates = getUpdates( txState, descriptor, indexOrder ); if ( updates == null ) { return EMPTY_ADDED_AND_REMOVED_WITH_VALUES; } MutableList<NodeWithPropertyValues> added = Lists.mutable.empty(); MutableLongSet removed = LongSets.mutable.empty(); for ( Map.Entry<ValueTuple,? extends LongDiffSets> entry : updates.entrySet() ) { ValueTuple key = entry.getKey(); if ( filter == null || filter.acceptsValue( key.getOnlyValue() ) ) { Value[] values = key.getValues(); LongDiffSets diffSet = entry.getValue(); diffSet.getAdded().each( nodeId -> added.add( new NodeWithPropertyValues( nodeId, values ) ) ); removed.addAll( diffSet.getRemoved() ); } } return new AddedWithValuesAndRemoved( indexOrder == IndexOrder.DESCENDING ? added.asReversed() : added, removed ); }
static AddedAndRemoved indexUpdatesForRangeSeekByPrefix( ReadableTransactionState txState, IndexDescriptor descriptor, TextValue prefix, IndexOrder indexOrder ) { NavigableMap<ValueTuple,? extends LongDiffSets> sortedUpdates = txState.getSortedIndexUpdates( descriptor.schema() ); if ( sortedUpdates == null ) { return EMPTY_ADDED_AND_REMOVED; } ValueTuple floor = ValueTuple.of( prefix ); MutableLongList added = LongLists.mutable.empty(); MutableLongSet removed = LongSets.mutable.empty(); for ( Map.Entry<ValueTuple,? extends LongDiffSets> entry : sortedUpdates.subMap( floor, MAX_STRING_TUPLE ).entrySet() ) { ValueTuple key = entry.getKey(); if ( ((TextValue) key.getOnlyValue()).startsWith( prefix ) ) { LongDiffSets diffSets = entry.getValue(); added.addAll( diffSets.getAdded() ); removed.addAll( diffSets.getRemoved() ); } else { break; } } return new AddedAndRemoved( indexOrder == IndexOrder.DESCENDING ? added.asReversed() : added, removed ); }
static AddedWithValuesAndRemoved indexUpdatesWithValuesForRangeSeekByPrefix( ReadableTransactionState txState, IndexDescriptor descriptor, TextValue prefix, IndexOrder indexOrder ) { NavigableMap<ValueTuple,? extends LongDiffSets> sortedUpdates = txState.getSortedIndexUpdates( descriptor.schema() ); if ( sortedUpdates == null ) { return EMPTY_ADDED_AND_REMOVED_WITH_VALUES; } ValueTuple floor = ValueTuple.of( prefix ); MutableList<NodeWithPropertyValues> added = Lists.mutable.empty(); MutableLongSet removed = LongSets.mutable.empty(); for ( Map.Entry<ValueTuple,? extends LongDiffSets> entry : sortedUpdates.tailMap( floor ).entrySet() ) { ValueTuple key = entry.getKey(); if ( ((TextValue) key.getOnlyValue()).startsWith( prefix ) ) { LongDiffSets diffSets = entry.getValue(); Value[] values = key.getValues(); diffSets.getAdded().each( nodeId -> added.add( new NodeWithPropertyValues( nodeId, values ) ) ); removed.addAll( diffSets.getRemoved() ); } else { break; } } return new AddedWithValuesAndRemoved( indexOrder == IndexOrder.DESCENDING ? added.asReversed() : added, removed ); }
if ( predicate.isRegularOrder() || predicate.acceptsValue( values.getOnlyValue() ) )
if ( predicate.isRegularOrder() || predicate.acceptsValue( values.getOnlyValue() ) )
public Value getSinglePropertyValue() { return propertyValues.getOnlyValue(); }
private static AddedAndRemoved indexUpdatesForScanAndFilter( ReadableTransactionState txState, IndexDescriptor descriptor, IndexQuery filter, IndexOrder indexOrder ) { Map<ValueTuple,? extends LongDiffSets> updates = getUpdates( txState, descriptor, indexOrder ); if ( updates == null ) { return EMPTY_ADDED_AND_REMOVED; } MutableLongList added = LongLists.mutable.empty(); MutableLongSet removed = LongSets.mutable.empty(); for ( Map.Entry<ValueTuple,? extends LongDiffSets> entry : updates.entrySet() ) { ValueTuple key = entry.getKey(); if ( filter == null || filter.acceptsValue( key.getOnlyValue() ) ) { LongDiffSets diffSet = entry.getValue(); added.addAll( diffSet.getAdded() ); removed.addAll( diffSet.getRemoved() ); } } return new AddedAndRemoved( indexOrder == IndexOrder.DESCENDING ? added.asReversed() : added, removed ); }
private static AddedWithValuesAndRemoved indexUpdatesWithValuesScanAndFilter( ReadableTransactionState txState, IndexDescriptor descriptor, IndexQuery filter, IndexOrder indexOrder ) { Map<ValueTuple,? extends LongDiffSets> updates = getUpdates( txState, descriptor, indexOrder ); if ( updates == null ) { return EMPTY_ADDED_AND_REMOVED_WITH_VALUES; } MutableList<NodeWithPropertyValues> added = Lists.mutable.empty(); MutableLongSet removed = LongSets.mutable.empty(); for ( Map.Entry<ValueTuple,? extends LongDiffSets> entry : updates.entrySet() ) { ValueTuple key = entry.getKey(); if ( filter == null || filter.acceptsValue( key.getOnlyValue() ) ) { Value[] values = key.getValues(); LongDiffSets diffSet = entry.getValue(); diffSet.getAdded().each( nodeId -> added.add( new NodeWithPropertyValues( nodeId, values ) ) ); removed.addAll( diffSet.getRemoved() ); } } return new AddedWithValuesAndRemoved( indexOrder == IndexOrder.DESCENDING ? added.asReversed() : added, removed ); }
static AddedAndRemoved indexUpdatesForRangeSeekByPrefix( ReadableTransactionState txState, IndexDescriptor descriptor, TextValue prefix, IndexOrder indexOrder ) { NavigableMap<ValueTuple,? extends LongDiffSets> sortedUpdates = txState.getSortedIndexUpdates( descriptor.schema() ); if ( sortedUpdates == null ) { return EMPTY_ADDED_AND_REMOVED; } ValueTuple floor = ValueTuple.of( prefix ); MutableLongList added = LongLists.mutable.empty(); MutableLongSet removed = LongSets.mutable.empty(); for ( Map.Entry<ValueTuple,? extends LongDiffSets> entry : sortedUpdates.subMap( floor, MAX_STRING_TUPLE ).entrySet() ) { ValueTuple key = entry.getKey(); if ( ((TextValue) key.getOnlyValue()).startsWith( prefix ) ) { LongDiffSets diffSets = entry.getValue(); added.addAll( diffSets.getAdded() ); removed.addAll( diffSets.getRemoved() ); } else { break; } } return new AddedAndRemoved( indexOrder == IndexOrder.DESCENDING ? added.asReversed() : added, removed ); }
static AddedWithValuesAndRemoved indexUpdatesWithValuesForRangeSeekByPrefix( ReadableTransactionState txState, IndexDescriptor descriptor, TextValue prefix, IndexOrder indexOrder ) { NavigableMap<ValueTuple,? extends LongDiffSets> sortedUpdates = txState.getSortedIndexUpdates( descriptor.schema() ); if ( sortedUpdates == null ) { return EMPTY_ADDED_AND_REMOVED_WITH_VALUES; } ValueTuple floor = ValueTuple.of( prefix ); MutableList<NodeWithPropertyValues> added = Lists.mutable.empty(); MutableLongSet removed = LongSets.mutable.empty(); for ( Map.Entry<ValueTuple,? extends LongDiffSets> entry : sortedUpdates.tailMap( floor ).entrySet() ) { ValueTuple key = entry.getKey(); if ( ((TextValue) key.getOnlyValue()).startsWith( prefix ) ) { LongDiffSets diffSets = entry.getValue(); Value[] values = key.getValues(); diffSets.getAdded().each( nodeId -> added.add( new NodeWithPropertyValues( nodeId, values ) ) ); removed.addAll( diffSets.getRemoved() ); } else { break; } } return new AddedWithValuesAndRemoved( indexOrder == IndexOrder.DESCENDING ? added.asReversed() : added, removed ); }
if ( predicate.isRegularOrder() || predicate.acceptsValue( values.getOnlyValue() ) )
if ( predicate.isRegularOrder() || predicate.acceptsValue( values.getOnlyValue() ) )