Class NestedJoinFactory

java.lang.Object
com.twilio.kudu.sql.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 Details

    • 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 Details

    • 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>>