Package io.trino.operator
Class PagesRTreeIndex
- java.lang.Object
-
- io.trino.operator.PagesRTreeIndex
-
- All Implemented Interfaces:
PagesSpatialIndex
public class PagesRTreeIndex extends Object implements PagesSpatialIndex
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classPagesRTreeIndex.GeometryWithPosition
-
Field Summary
-
Fields inherited from interface io.trino.operator.PagesSpatialIndex
EMPTY_INDEX
-
-
Constructor Summary
Constructors Constructor Description PagesRTreeIndex(Session session, it.unimi.dsi.fastutil.longs.LongArrayList addresses, List<Type> types, List<Integer> outputChannels, List<List<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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidappendTo(int joinPosition, PageBuilder pageBuilder, int outputChannelOffset)int[]findJoinPositions(int probePosition, 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 Detail
-
PagesRTreeIndex
public PagesRTreeIndex(Session session, it.unimi.dsi.fastutil.longs.LongArrayList addresses, List<Type> types, List<Integer> outputChannels, List<List<Block>> channels, org.locationtech.jts.index.strtree.STRtree rtree, Optional<Integer> radiusChannel, SpatialIndexBuilderOperator.SpatialPredicate spatialRelationshipTest, Optional<JoinFilterFunctionCompiler.JoinFilterFunctionFactory> filterFunctionFactory, Map<Integer,Rectangle> partitions)
-
-
Method Detail
-
findJoinPositions
public int[] findJoinPositions(int probePosition, 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
public boolean isJoinPositionEligible(int joinPosition, int probePosition, Page probe)- Specified by:
isJoinPositionEligiblein interfacePagesSpatialIndex
-
appendTo
public void appendTo(int joinPosition, PageBuilder pageBuilder, int outputChannelOffset)- Specified by:
appendToin interfacePagesSpatialIndex
-
-