Package io.trino.operator
Class PagesRTreeIndex
java.lang.Object
io.trino.operator.PagesRTreeIndex
- All Implemented Interfaces:
PagesSpatialIndex
-
Nested Class Summary
Nested Classes -
Field Summary
Fields inherited from interface io.trino.operator.PagesSpatialIndex
EMPTY_INDEX -
Constructor Summary
ConstructorsConstructorDescriptionPagesRTreeIndex(Session session, it.unimi.dsi.fastutil.longs.LongArrayList addresses, List<Type> types, List<Integer> outputChannels, List<it.unimi.dsi.fastutil.objects.ObjectArrayList<Block>> channels, org.locationtech.jts.index.strtree.STRtree rtree, Optional<Integer> radiusChannel, SpatialIndexBuilderOperator.SpatialPredicate spatialRelationshipTest, Optional<JoinFilterFunctionCompiler.JoinFilterFunctionFactory> filterFunctionFactory, Map<Integer, Rectangle> partitions) -
Method Summary
Modifier and TypeMethodDescriptionvoidappendTo(int joinPosition, PageBuilder pageBuilder, int outputChannelOffset) int[]findJoinPositions(int position, Page probe, int probeGeometryChannel, Optional<Integer> probePartitionChannel) Returns an array of addresses fromPagesIndex.valueAddressescorresponding to rows with matching geometries.booleanisJoinPositionEligible(int joinPosition, int probePosition, Page probe)
-
Constructor Details
-
PagesRTreeIndex
public PagesRTreeIndex(Session session, it.unimi.dsi.fastutil.longs.LongArrayList addresses, List<Type> types, List<Integer> outputChannels, List<it.unimi.dsi.fastutil.objects.ObjectArrayList<Block>> channels, org.locationtech.jts.index.strtree.STRtree rtree, Optional<Integer> radiusChannel, SpatialIndexBuilderOperator.SpatialPredicate spatialRelationshipTest, Optional<JoinFilterFunctionCompiler.JoinFilterFunctionFactory> filterFunctionFactory, Map<Integer, Rectangle> partitions)
-
-
Method Details
-
findJoinPositions
public int[] findJoinPositions(int position, Page probe, int probeGeometryChannel, Optional<Integer> probePartitionChannel) Returns an array of addresses fromPagesIndex.valueAddressescorresponding to rows with matching geometries.The caller is responsible for calling
isJoinPositionEligible(int, int, Page)for each of these addresses to apply additional join filters.- Specified by:
findJoinPositionsin interfacePagesSpatialIndex
-
isJoinPositionEligible
- Specified by:
isJoinPositionEligiblein interfacePagesSpatialIndex
-
appendTo
- Specified by:
appendToin interfacePagesSpatialIndex
-