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


Java RelOptTableImpl类代码示例

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


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

示例1: createModify

import org.apache.calcite.prepare.RelOptTableImpl; //导入依赖的package包/类
/** Creates a relational expression to modify a table or modifiable view. */
private RelNode createModify(RelOptTable targetTable, RelNode source) {
	final ModifiableTable modifiableTable =
		targetTable.unwrap(ModifiableTable.class);
	if (modifiableTable != null) {
		return modifiableTable.toModificationRel(cluster, targetTable,
			catalogReader, source, LogicalTableModify.Operation.INSERT, null,
			null, false);
	}
	final ModifiableView modifiableView =
		targetTable.unwrap(ModifiableView.class);
	if (modifiableView != null) {
		final Table delegateTable = modifiableView.getTable();
		final RelDataType delegateRowType = delegateTable.getRowType(typeFactory);
		final RelOptTable delegateRelOptTable =
			RelOptTableImpl.create(null, delegateRowType, delegateTable,
				modifiableView.getTablePath());
		final RelNode newSource =
			createSource(targetTable, source, modifiableView, delegateRowType);
		return createModify(delegateRelOptTable, newSource);
	}
	return LogicalTableModify.create(targetTable, catalogReader, source,
		LogicalTableModify.Operation.INSERT, null, null, false);
}
 
开发者ID:axbaretto,项目名称:flink,代码行数:25,代码来源:SqlToRelConverter.java

示例2: createNewTableScanFromSelection

import org.apache.calcite.prepare.RelOptTableImpl; //导入依赖的package包/类
private TableScan createNewTableScanFromSelection(EnumerableTableScan oldScan, List<String> newFiles, String cacheFileRoot,
    boolean wasAllPartitionsPruned, MetadataContext metaContext) {
  final RelOptTableImpl t = (RelOptTableImpl) oldScan.getTable();
  final FormatSelection formatSelection = (FormatSelection) table.getSelection();
  final FileSelection newFileSelection = new FileSelection(null, newFiles, getBaseTableLocation(),
          cacheFileRoot, wasAllPartitionsPruned, formatSelection.getSelection().getDirStatus());
  newFileSelection.setMetaContext(metaContext);
  final FormatSelection newFormatSelection = new FormatSelection(formatSelection.getFormat(), newFileSelection);
  final DrillTranslatableTable newTable = new DrillTranslatableTable(
          new DynamicDrillTable(table.getPlugin(), table.getStorageEngineName(),
          table.getUserName(),
          newFormatSelection));
  final RelOptTableImpl newOptTableImpl = RelOptTableImpl.create(t.getRelOptSchema(), t.getRowType(), newTable);

  // return an EnumerableTableScan with fileSelection being part of digest of TableScan node.
  return DirPrunedEnumerableTableScan.create(oldScan.getCluster(), newOptTableImpl, newFileSelection.toString());
}
 
开发者ID:axbaretto,项目名称:drill,代码行数:18,代码来源:FileSystemPartitionDescriptor.java

示例3: populateMaterializationsAndLattice

import org.apache.calcite.prepare.RelOptTableImpl; //导入依赖的package包/类
private void populateMaterializationsAndLattice(
    QuarkMaterializeCluster.RelOptPlannerHolder plannerHolder,
    CalciteSchema rootSchema) {
  if (materializations == null) {
    materializations =
        MaterializationService.instance().query(rootSchema);
  }
  Materializer materializer = new Materializer(materializations);

  materializer.populateMaterializations(context.getPrepareContext(), plannerHolder);

  List<CalciteSchema.LatticeEntry> lattices = Schemas.getLatticeEntries(rootSchema);

  for (CalciteSchema.LatticeEntry lattice : lattices) {
    final CalciteSchema.TableEntry starTable = lattice.getStarTable();
    final JavaTypeFactory typeFactory = context.getTypeFactory();
    final RelOptTableImpl starRelOptTable =
        RelOptTableImpl.create(catalogReader,
            starTable.getTable().getRowType(typeFactory), starTable, null);
    plannerHolder.getPlanner().addLattice(
        new RelOptLattice(lattice.getLattice(), starRelOptTable));
  }
}
 
开发者ID:qubole,项目名称:quark,代码行数:24,代码来源:SqlWorker.java

示例4: createModify

import org.apache.calcite.prepare.RelOptTableImpl; //导入依赖的package包/类
/** Creates a relational expression to modify a table or modifiable view. */
private RelNode createModify(RelOptTable targetTable, RelNode source) {
  final ModifiableTable modifiableTable =
      targetTable.unwrap(ModifiableTable.class);
  if (modifiableTable != null) {
    return modifiableTable.toModificationRel(cluster, targetTable,
        catalogReader, source, LogicalTableModify.Operation.INSERT, null,
        null, false);
  }
  final ModifiableView modifiableView =
      targetTable.unwrap(ModifiableView.class);
  if (modifiableView != null) {
    final Table delegateTable = modifiableView.getTable();
    final RelDataType delegateRowType = delegateTable.getRowType(typeFactory);
    final RelOptTable delegateRelOptTable =
        RelOptTableImpl.create(null, delegateRowType, delegateTable,
            modifiableView.getTablePath());
    final RelNode newSource =
        createSource(targetTable, source, modifiableView, delegateRowType);
    return createModify(delegateRelOptTable, newSource);
  }
  return LogicalTableModify.create(targetTable, catalogReader, source,
      LogicalTableModify.Operation.INSERT, null, null, false);
}
 
开发者ID:apache,项目名称:kylin,代码行数:25,代码来源:SqlToRelConverter.java

示例5: onMatch

import org.apache.calcite.prepare.RelOptTableImpl; //导入依赖的package包/类
@Override public void onMatch(RelOptRuleCall call) {
  final Delta delta = call.rel(0);
  final TableScan scan = call.rel(1);
  final RelOptCluster cluster = delta.getCluster();
  final RelOptTable relOptTable = scan.getTable();
  final StreamableTable streamableTable =
      relOptTable.unwrap(StreamableTable.class);
  if (streamableTable != null) {
    final Table table1 = streamableTable.stream();
    final RelOptTable relOptTable2 =
        RelOptTableImpl.create(relOptTable.getRelOptSchema(),
            relOptTable.getRowType(), table1,
            ImmutableList.<String>builder()
                .addAll(relOptTable.getQualifiedName())
                .add("(STREAM)").build());
    final LogicalTableScan newScan =
        LogicalTableScan.create(cluster, relOptTable2);
    call.transformTo(newScan);
  }
}
 
开发者ID:apache,项目名称:calcite,代码行数:21,代码来源:StreamRules.java

示例6: createModify

import org.apache.calcite.prepare.RelOptTableImpl; //导入依赖的package包/类
/** Creates a relational expression to modify a table or modifiable view. */
private RelNode createModify(RelOptTable targetTable, RelNode source) {
  final ModifiableTable modifiableTable =
      targetTable.unwrap(ModifiableTable.class);
  if (modifiableTable != null
      && modifiableTable == targetTable.unwrap(Table.class)) {
    return modifiableTable.toModificationRel(cluster, targetTable,
        catalogReader, source, LogicalTableModify.Operation.INSERT, null,
        null, false);
  }
  final ModifiableView modifiableView =
      targetTable.unwrap(ModifiableView.class);
  if (modifiableView != null) {
    final Table delegateTable = modifiableView.getTable();
    final RelDataType delegateRowType = delegateTable.getRowType(typeFactory);
    final RelOptTable delegateRelOptTable =
        RelOptTableImpl.create(null, delegateRowType, delegateTable,
            modifiableView.getTablePath());
    final RelNode newSource =
        createSource(targetTable, source, modifiableView, delegateRowType);
    return createModify(delegateRelOptTable, newSource);
  }
  return LogicalTableModify.create(targetTable, catalogReader, source,
      LogicalTableModify.Operation.INSERT, null, null, false);
}
 
开发者ID:apache,项目名称:calcite,代码行数:26,代码来源:SqlToRelConverter.java

示例7: copyOf

import org.apache.calcite.prepare.RelOptTableImpl; //导入依赖的package包/类
public RelOptTable copyOf(RelOptTable table) {
  if (table instanceof RelOptTableWrapper) {
    final RelOptTableWrapper wrapper = (RelOptTableWrapper) table;
    return new RelOptTableWrapper(
      wrapper.getQualifiedName(),
      copyOf(wrapper.getRelOptTable())
    );
  } else if (table instanceof RelOptTableImpl) {
    final RelOptTableImpl impl = (RelOptTableImpl) table;
    return impl.copy(copyOf(impl.getRowType())); // this won't copy the RelOptSchema
  }
  notSupported(table);
  return table;
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:15,代码来源:CopyWithCluster.java

示例8: read

import org.apache.calcite.prepare.RelOptTableImpl; //导入依赖的package包/类
@Override
public RelOptNamespaceTable read(final Kryo kryo, final Input input, final Class<RelOptNamespaceTable> type) {
  final List<String> path = kryo.readObject(input, ArrayList.class);
  final RelOptTableImpl relOptTable = catalog.getTable(path);
  if(relOptTable == null){
    throw new IllegalStateException("Unable to retrieve table: " + new NamespaceKey(path));
  }
  NamespaceTable namespace = relOptTable.unwrap(NamespaceTable.class);
  return new RelOptNamespaceTable(namespace, cluster);
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:11,代码来源:RelOptNamespaceTableSerializer.java

示例9: read

import org.apache.calcite.prepare.RelOptTableImpl; //导入依赖的package包/类
@Override
public TableMetadata read(final Kryo kryo, final Input input, final Class<TableMetadata> type) {
  final List<String> path = kryo.readObject(input, ArrayList.class);
  final RelOptTableImpl relOptTable = catalog.getTable(path);
  NamespaceTable namespace = relOptTable.unwrap(NamespaceTable.class);
  return namespace.getDataset();
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:8,代码来源:TableMetadataSerializer.java

示例10: getTable

import org.apache.calcite.prepare.RelOptTableImpl; //导入依赖的package包/类
/**
 * If schema is not indicated (only one element in the list) or schema is default temporary workspace,
 * we need to check among session temporary tables in default temporary workspace first.
 * If temporary table is found and temporary tables usage is allowed, its table instance will be returned,
 * otherwise search will be conducted in original workspace.
 *
 * @param names list of schema and table names, table name is always the last element
 * @return table instance, null otherwise
 * @throws UserException if temporary tables usage is disallowed
 */
@Override
public RelOptTableImpl getTable(final List<String> names) {
  RelOptTableImpl temporaryTable = null;

  if (mightBeTemporaryTable(names, session.getDefaultSchemaPath(), drillConfig)) {
    String temporaryTableName = session.resolveTemporaryTableName(names.get(names.size() - 1));
    if (temporaryTableName != null) {
      List<String> temporaryNames = Lists.newArrayList(temporarySchema, temporaryTableName);
      temporaryTable = super.getTable(temporaryNames);
    }
  }
  if (temporaryTable != null) {
    if (allowTemporaryTables) {
      return temporaryTable;
    }
    throw UserException
        .validationError()
        .message("Temporary tables usage is disallowed. Used temporary table name: %s.", names)
        .build(logger);
  }

  RelOptTableImpl table = super.getTable(names);

  // Check the schema and throw a valid SchemaNotFound exception instead of TableNotFound exception.
  if (table == null) {
    isValidSchema(names);
  }

  return table;
}
 
开发者ID:axbaretto,项目名称:drill,代码行数:41,代码来源:SqlConverter.java

示例11: QuarkViewTable

import org.apache.calcite.prepare.RelOptTableImpl; //导入依赖的package包/类
public QuarkViewTable(QuarkSchema schema,
                      String name,
                      RelOptTableImpl relOptTable,
                      QuarkTable backupTable,
                      CalciteSchema tableSchema) {
  super(schema, name, backupTable.getColumns());
  this.backUpRelOptTable = relOptTable;
  this.backupTable = backupTable;
  this.backupTableSchema = tableSchema;
}
 
开发者ID:qubole,项目名称:quark,代码行数:11,代码来源:QuarkViewTable.java

示例12: QuarkTileTable

import org.apache.calcite.prepare.RelOptTableImpl; //导入依赖的package包/类
public QuarkTileTable(QuarkTile quarkTile, CalciteCatalogReader calciteCatalogReader,
                      RelDataType relDataType, Path path, QuarkTable backingTable) {
  this.quarkTile = quarkTile;
  this.backingTable = backingTable;
  this.relOptTable = RelOptTableImpl.create(
      calciteCatalogReader,
      relDataType,
      this,
      path);
}
 
开发者ID:qubole,项目名称:quark,代码行数:11,代码来源:QuarkTileTable.java

示例13: toRel

import org.apache.calcite.prepare.RelOptTableImpl; //导入依赖的package包/类
public RelNode toRel(final RelOptTable table) {
  final RelNode scan = table.toRel(createToRelContext());

  final InitializerExpressionFactory ief =
      Util.first(table.unwrap(InitializerExpressionFactory.class),
          NullInitializerExpressionFactory.INSTANCE);

  // Lazily create a blackboard that contains all non-generated columns.
  final Supplier<Blackboard> bb = new Supplier<Blackboard>() {
    public Blackboard get() {
      RexNode sourceRef = rexBuilder.makeRangeReference(scan);
      return createInsertBlackboard(table, sourceRef,
          table.getRowType().getFieldNames());
    }
  };

  int virtualCount = 0;
  final List<RexNode> list = new ArrayList<>();
  for (RelDataTypeField f : table.getRowType().getFieldList()) {
    final ColumnStrategy strategy =
        ief.generationStrategy(table, f.getIndex());
    switch (strategy) {
    case VIRTUAL:
      list.add(ief.newColumnDefaultValue(table, f.getIndex(), bb.get()));
      ++virtualCount;
      break;
    default:
      list.add(
          rexBuilder.makeInputRef(scan,
              RelOptTableImpl.realOrdinal(table, f.getIndex())));
    }
  }
  if (virtualCount > 0) {
    relBuilder.push(scan);
    relBuilder.project(list);
    return relBuilder.build();
  }
  return scan;
}
 
开发者ID:apache,项目名称:calcite,代码行数:40,代码来源:SqlToRelConverter.java

示例14: getJdbcTable

import org.apache.calcite.prepare.RelOptTableImpl; //导入依赖的package包/类
static JdbcTable getJdbcTable(RelNode originalRel) {
	return (JdbcTable) get(RelOptTableImpl.class, originalRel.getTable(), "table");
}
 
开发者ID:tzolov,项目名称:calcite-sql-rewriter,代码行数:4,代码来源:JdbcTableUtils.java

示例15: write

import org.apache.calcite.prepare.RelOptTableImpl; //导入依赖的package包/类
@Override
public void write(final Kryo kryo, final Output output, final RelOptTableImpl relOptTable) {
  final List<String> path = relOptTable.getQualifiedName();
  kryo.writeObject(output, path);
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:6,代码来源:RelOptTableImplSerializer.java


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