Class HashJoinSegment

    • Constructor Detail

      • HashJoinSegment

        public HashJoinSegment​(SegmentReference baseSegment,
                               @Nullable
                               Filter baseFilter,
                               List<JoinableClause> clauses,
                               JoinFilterPreAnalysis joinFilterPreAnalysis)
        Parameters:
        baseSegment - The left-hand side base segment
        clauses - The right-hand side clauses. The caller is responsible for ensuring that there are no duplicate prefixes or prefixes that shadow each other across the clauses
        joinFilterPreAnalysis - Pre-analysis for the query we expect to run on this segment
    • Method Detail

      • getDataInterval

        public org.joda.time.Interval getDataInterval()
        Specified by:
        getDataInterval in interface Segment
      • acquireReferences

        public Optional<Closeable> acquireReferences()
        Description copied from interface: ReferenceCountedObject
        This method is expected to increment a reference count and provide a Closeable that decrements the reference count when closed. This is likely just a wrapper around ReferenceCountingCloseableObject.incrementReferenceAndDecrementOnceCloseable(), but may also include any other associated references which should be incremented when this method is called, and decremented/released by the closeable. IMPORTANT NOTE: to fulfill the contract of this method, implementors must return a closeable to indicate that the reference can be acquired, even if there is nothing to close. Implementors should avoid allowing this method or the Closeable it creates to throw exceptions. For callers: if this method returns non-empty, IT MUST BE CLOSED, else reference counts can potentially leak.
        Specified by:
        acquireReferences in interface ReferenceCountedObject
      • as

        public <T> T as​(Class<T> clazz)
        Description copied from interface: Segment
        Request an implementation of a particular interface. If the passed-in interface is QueryableIndex or StorageAdapter, then this method behaves identically to Segment.asQueryableIndex() or Segment.asStorageAdapter(). Other interfaces are only expected to be requested by callers that have specific knowledge of extra features provided by specific segment types. For example, an extension might provide a custom Segment type that can offer both StorageAdapter and some new interface. That extension can also offer a Query that uses that new interface. Implementations which accept classes other than QueryableIndex or StorageAdapter are limited to using those classes within the extension. This means that one extension cannot rely on the `Segment.as` behavior of another extension.
        Specified by:
        as in interface Segment
        Type Parameters:
        T - desired interface
        Parameters:
        clazz - desired interface
        Returns:
        instance of clazz, or null if the interface is not supported by this segment