Class NestedJoinFactory

  • All Implemented Interfaces:
    org.apache.calcite.linq4j.function.Function<org.apache.calcite.linq4j.Enumerable<Object>>, org.apache.calcite.linq4j.function.Function1<List<Object>,​org.apache.calcite.linq4j.Enumerable<Object>>

    public final class NestedJoinFactory
    extends Object
    implements org.apache.calcite.linq4j.function.Function1<List<Object>,​org.apache.calcite.linq4j.Enumerable<Object>>
    NestedJoinFactory is an implementation of Function1 that returns an Enumerable for the Right hand side of a nested join.

    This implementation uses a cache to hold objects from the scan to prevent going creating AsyncKuduScanner for repeated rows

    • Constructor Detail

      • NestedJoinFactory

        public NestedJoinFactory​(int capacity,
                                 List<TranslationPredicate> rowTranslators,
                                 CloneableEnumerable<Object> rootEnumerable)
        Create a Factory that produces Enumerable that can cache results from previous calls
        Parameters:
        capacity - size of the RPC cache
        rowTranslators - bindable predicates that depend on the row from the left side of the join
        rootEnumerable - base enumerable that will be CloneableEnumerable.clone(List)
    • Method Detail

      • apply

        public org.apache.calcite.linq4j.Enumerable<Object> apply​(List<Object> batchFromLeftTable)
        Specified by:
        apply in interface org.apache.calcite.linq4j.function.Function1<List<Object>,​org.apache.calcite.linq4j.Enumerable<Object>>