当前位置: 首页>>代码示例>>Java>>正文


Java ScannableTable类代码示例

本文整理汇总了Java中org.apache.calcite.schema.ScannableTable的典型用法代码示例。如果您正苦于以下问题:Java ScannableTable类的具体用法?Java ScannableTable怎么用?Java ScannableTable使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


ScannableTable类属于org.apache.calcite.schema包,在下文中一共展示了ScannableTable类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: get

import org.apache.calcite.schema.ScannableTable; //导入依赖的package包/类
public Profiler.Profile get() {
  final ProfilerImpl profiler =
      ProfilerImpl.builder()
          .withPassSize(200)
          .withMinimumSurprise(0.3D)
          .build();
  final List<Profiler.Column> columns = new ArrayList<>();
  for (Lattice.Column column : lattice.columns) {
    columns.add(new Profiler.Column(column.ordinal, column.alias));
  }
  final String sql =
      lattice.sql(ImmutableBitSet.range(lattice.columns.size()),
          false, ImmutableList.<Lattice.Measure>of());
  final Table table =
      new MaterializationService.DefaultTableFactory()
          .createTable(lattice.rootSchema, sql,
              ImmutableList.<String>of());
  final ImmutableList<ImmutableBitSet> initialGroups =
      ImmutableList.of();
  final Enumerable<List<Comparable>> rows =
      ((ScannableTable) table).scan(null).select(TO_LIST);
  return profiler.profile(rows, columns, initialGroups);
}
 
开发者ID:apache,项目名称:calcite,代码行数:24,代码来源:ProfilerLatticeStatisticProvider.java

示例2: deduceElementType

import org.apache.calcite.schema.ScannableTable; //导入依赖的package包/类
public static Class deduceElementType(Table table) {
  if (table instanceof QueryableTable) {
    final QueryableTable queryableTable = (QueryableTable) table;
    final Type type = queryableTable.getElementType();
    if (type instanceof Class) {
      return (Class) type;
    } else {
      return Object[].class;
    }
  } else if (table instanceof ScannableTable
      || table instanceof FilterableTable
      || table instanceof ProjectableFilterableTable
      || table instanceof StreamableTable) {
    return Object[].class;
  } else {
    return Object.class;
  }
}
 
开发者ID:apache,项目名称:calcite,代码行数:19,代码来源:EnumerableTableScan.java

示例3: toRows

import org.apache.calcite.schema.ScannableTable; //导入依赖的package包/类
private Expression toRows(PhysType physType, Expression expression) {
  if (physType.getFormat() == JavaRowFormat.SCALAR
      && Object[].class.isAssignableFrom(elementType)
      && getRowType().getFieldCount() == 1
      && (table.unwrap(ScannableTable.class) != null
          || table.unwrap(FilterableTable.class) != null
          || table.unwrap(ProjectableFilterableTable.class) != null)) {
    return Expressions.call(BuiltInMethod.SLICE0.method, expression);
  }
  JavaRowFormat oldFormat = format();
  if (physType.getFormat() == oldFormat && !hasCollectionField(rowType)) {
    return expression;
  }
  final ParameterExpression row_ =
      Expressions.parameter(elementType, "row");
  final int fieldCount = table.getRowType().getFieldCount();
  List<Expression> expressionList = new ArrayList<>(fieldCount);
  for (int i = 0; i < fieldCount; i++) {
    expressionList.add(fieldExpression(row_, i, physType, oldFormat));
  }
  return Expressions.call(expression,
      BuiltInMethod.SELECT.method,
      Expressions.lambda(Function1.class, physType.record(expressionList),
          row_));
}
 
开发者ID:apache,项目名称:calcite,代码行数:26,代码来源:EnumerableTableScan.java

示例4: create

import org.apache.calcite.schema.ScannableTable; //导入依赖的package包/类
/** Creates a {@link TableFunctionImpl} from a method. */
public static TableFunction create(final Method method) {
  if (!Modifier.isStatic(method.getModifiers())) {
    Class clazz = method.getDeclaringClass();
    if (!classHasPublicZeroArgsConstructor(clazz)) {
      throw RESOURCE.requireDefaultConstructor(clazz.getName()).ex();
    }
  }
  final Class<?> returnType = method.getReturnType();
  if (!QueryableTable.class.isAssignableFrom(returnType)
      && !ScannableTable.class.isAssignableFrom(returnType)) {
    return null;
  }
  CallImplementor implementor = createImplementor(method);
  return new TableFunctionImpl(method, implementor);
}
 
开发者ID:apache,项目名称:calcite,代码行数:17,代码来源:TableFunctionImpl.java

示例5: cardinality

import org.apache.calcite.schema.ScannableTable; //导入依赖的package包/类
private double cardinality(Lattice lattice, Lattice.Column column) {
  final String sql = lattice.countSql(ImmutableBitSet.of(column.ordinal));
  final Table table =
      new MaterializationService.DefaultTableFactory()
          .createTable(lattice.rootSchema, sql, ImmutableList.<String>of());
  final Object[] values =
      Iterables.getOnlyElement(((ScannableTable) table).scan(null));
  return ((Number) values[0]).doubleValue();
}
 
开发者ID:apache,项目名称:calcite,代码行数:10,代码来源:SqlLatticeStatisticProvider.java

示例6: canHandle

import org.apache.calcite.schema.ScannableTable; //导入依赖的package包/类
/** Returns whether EnumerableTableScan can generate code to handle a
 * particular variant of the Table SPI. */
public static boolean canHandle(Table table) {
  // FilterableTable and ProjectableFilterableTable cannot be handled in
  // enumerable convention because they might reject filters and those filters
  // would need to be handled dynamically.
  return table instanceof QueryableTable
      || table instanceof ScannableTable;
}
 
开发者ID:apache,项目名称:calcite,代码行数:10,代码来源:EnumerableTableScan.java

示例7: getElementType

import org.apache.calcite.schema.ScannableTable; //导入依赖的package包/类
public Type getElementType(List<Object> arguments) {
  final Table table = apply(arguments);
  if (table instanceof QueryableTable) {
    QueryableTable queryableTable = (QueryableTable) table;
    return queryableTable.getElementType();
  } else if (table instanceof ScannableTable) {
    return Object[].class;
  }
  throw new AssertionError("Invalid table class: " + table + " "
      + table.getClass());
}
 
开发者ID:apache,项目名称:calcite,代码行数:12,代码来源:TableFunctionImpl.java

示例8: create

import org.apache.calcite.schema.ScannableTable; //导入依赖的package包/类
/** Creates a TableScanNode.
 *
 * <p>Tries various table SPIs, and negotiates with the table which filters
 * and projects it can implement. Adds to the Enumerable implementations of
 * any filters and projects that cannot be implemented by the table. */
static TableScanNode create(Compiler compiler, TableScan rel,
    ImmutableList<RexNode> filters, ImmutableIntList projects) {
  final RelOptTable relOptTable = rel.getTable();
  final ProjectableFilterableTable pfTable =
      relOptTable.unwrap(ProjectableFilterableTable.class);
  if (pfTable != null) {
    return createProjectableFilterable(compiler, rel, filters, projects,
        pfTable);
  }
  final FilterableTable filterableTable =
      relOptTable.unwrap(FilterableTable.class);
  if (filterableTable != null) {
    return createFilterable(compiler, rel, filters, projects,
        filterableTable);
  }
  final ScannableTable scannableTable =
      relOptTable.unwrap(ScannableTable.class);
  if (scannableTable != null) {
    return createScannable(compiler, rel, filters, projects,
        scannableTable);
  }
  //noinspection unchecked
  final Enumerable<Row> enumerable = relOptTable.unwrap(Enumerable.class);
  if (enumerable != null) {
    return createEnumerable(compiler, rel, enumerable, null, filters,
        projects);
  }
  final QueryableTable queryableTable =
      relOptTable.unwrap(QueryableTable.class);
  if (queryableTable != null) {
    return createQueryable(compiler, rel, filters, projects,
        queryableTable);
  }
  throw new AssertionError("cannot convert table " + relOptTable
      + " to enumerable");
}
 
开发者ID:apache,项目名称:calcite,代码行数:42,代码来源:TableScanNode.java

示例9: createScannable

import org.apache.calcite.schema.ScannableTable; //导入依赖的package包/类
private static TableScanNode createScannable(Compiler compiler, TableScan rel,
    ImmutableList<RexNode> filters, ImmutableIntList projects,
    ScannableTable scannableTable) {
  final Enumerable<Row> rowEnumerable =
      Enumerables.toRow(scannableTable.scan(compiler.getDataContext()));
  return createEnumerable(compiler, rel, rowEnumerable, null, filters,
      projects);
}
 
开发者ID:apache,项目名称:calcite,代码行数:9,代码来源:TableScanNode.java

示例10: generate2

import org.apache.calcite.schema.ScannableTable; //导入依赖的package包/类
public static ScannableTable generate2(
    @Parameter(name = "WIDTH") int width,
    @Parameter(name = "HEIGHT") int height,
    @Parameter(name = "SEED", optional = true) Integer seed) {
  return new MazeTable(
      String.format(Locale.ROOT, "generate2(w=%d, h=%d, s=%d)", width,
          height, seed));
}
 
开发者ID:apache,项目名称:calcite,代码行数:9,代码来源:Smalls.java

示例11: bind

import org.apache.calcite.schema.ScannableTable; //导入依赖的package包/类
@Override public Enumerable<Object[]> bind(DataContext dataContext) {
  return table.unwrap(ScannableTable.class).scan(dataContext);
}
 
开发者ID:apache,项目名称:calcite,代码行数:4,代码来源:DruidQuery.java

示例12: canHandle

import org.apache.calcite.schema.ScannableTable; //导入依赖的package包/类
public static boolean canHandle(RelOptTable table) {
  return table.unwrap(ScannableTable.class) != null
      || table.unwrap(FilterableTable.class) != null
      || table.unwrap(ProjectableFilterableTable.class) != null;
}
 
开发者ID:apache,项目名称:calcite,代码行数:6,代码来源:Bindables.java

示例13: bind

import org.apache.calcite.schema.ScannableTable; //导入依赖的package包/类
public Enumerable<Object[]> bind(DataContext dataContext) {
  // TODO: filterable and projectable
  return table.unwrap(ScannableTable.class).scan(dataContext);
}
 
开发者ID:apache,项目名称:calcite,代码行数:5,代码来源:Bindables.java

示例14: fibonacciTable

import org.apache.calcite.schema.ScannableTable; //导入依赖的package包/类
/** A function that generates the Fibonacci sequence.
 * Interesting because it has one column and no arguments. */
public static ScannableTable fibonacciTable() {
  return fibonacciTableWithLimit(-1L);
}
 
开发者ID:apache,项目名称:calcite,代码行数:6,代码来源:Smalls.java

示例15: generate

import org.apache.calcite.schema.ScannableTable; //导入依赖的package包/类
public static ScannableTable generate(int width, int height, int seed) {
  return new MazeTable(
      String.format(Locale.ROOT, "generate(w=%d, h=%d, s=%d)", width,
          height, seed));
}
 
开发者ID:apache,项目名称:calcite,代码行数:6,代码来源:Smalls.java


注:本文中的org.apache.calcite.schema.ScannableTable类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。