本文整理汇总了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);
}
示例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());
}
示例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));
}
}
示例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);
}
示例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);
}
}
示例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);
}
示例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;
}
示例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);
}
示例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();
}
示例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;
}
示例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;
}
示例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);
}
示例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;
}
示例14: getJdbcTable
import org.apache.calcite.prepare.RelOptTableImpl; //导入依赖的package包/类
static JdbcTable getJdbcTable(RelNode originalRel) {
return (JdbcTable) get(RelOptTableImpl.class, originalRel.getTable(), "table");
}
示例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);
}