if (strategies.contains(ColumnStrategy.VIRTUAL)) { final RelDataTypeFactory.Builder b = context.getCluster().getTypeFactory().builder(); for (RelDataTypeField field : rowType.getFieldList()) { if (strategies.get(field.getIndex()) != ColumnStrategy.VIRTUAL) { return ((TranslatableTable) table).toRel(context, this); final RelOptCluster cluster = context.getCluster(); if (Hook.ENABLE_BINDABLE.get(false)) { return LogicalTableScan.create(cluster, this);
private RelRoot expandView(RelOptTable.ToRelContext context, RelDataType rowType, String queryString) { try { final RelRoot root = context.expandView(rowType, queryString, schemaPath, viewPath); final RelNode rel = RelOptUtil.createCastRel(root.rel, rowType, true); // Expand any views final RelNode rel2 = rel.accept( new RelShuttleImpl() { @Override public RelNode visit(TableScan scan) { final RelOptTable table = scan.getTable(); final TranslatableTable translatableTable = table.unwrap(TranslatableTable.class); if (translatableTable != null) { return translatableTable.toRel(context, table); } return super.visit(scan); } }); return root.withRel(rel2); } catch (Exception e) { throw new RuntimeException("Error while parsing view definition: " + queryString, e); } } }
if (strategies.contains(ColumnStrategy.VIRTUAL)) { final RelDataTypeFactory.Builder b = context.getCluster().getTypeFactory().builder(); for (RelDataTypeField field : rowType.getFieldList()) { if (strategies.get(field.getIndex()) != ColumnStrategy.VIRTUAL) { return ((TranslatableTable) table).toRel(context, this); final RelOptCluster cluster = context.getCluster(); if (Hook.ENABLE_BINDABLE.get(false)) { return LogicalTableScan.create(cluster, this);
@Override public RelNode toRel(RelOptTable.ToRelContext context, RelOptTable relOptTable) { JdbcRelBuilder relBuilder = relBuilderFactory.create( context.getCluster(), relOptTable.getRelOptSchema() );
public RelNode toRel( RelOptTable.ToRelContext context, RelOptTable relOptTable) { // Request all fields. RelNode rel = new QuarkTileScan(context.getCluster(), this.relOptTable, this.quarkTile, this.backingTable); //Create a filter RexBuilder rexBuilder = rel.getCluster().getRexBuilder(); List<RexNode> filterArgs = Lists.newArrayList(); filterArgs.add(rexBuilder.makeInputRef(rel, this.quarkTile.groupingColumn)); filterArgs.add(rexBuilder.makeLiteral(bitSetToString(this.quarkTile.groupingValue))); rel = LogicalFilter.create(rel, rexBuilder.makeCall(SqlStdOperatorTable.EQUALS, filterArgs)); //Create a project list List<Integer> posList = Lists.newArrayList(); for (QuarkTile.Column quarkColumn : this.quarkTile.cubeColumns) { posList.add(quarkColumn.cubeOrdinal); } for (Lattice.Measure measure : this.quarkTile.measures) { posList.add(((QuarkTile.Measure) measure).ordinal); } return RelOptUtil.createProject(rel, posList); }
@Override public RelNode toRel(ToRelContext context, RelOptTable relOptTable) { ViewExpansionContext.ViewExpansionToken token = null; try { RelDataType rowType = relOptTable.getRowType(); RelNode rel; if (viewExpansionContext.isImpersonationEnabled()) { token = viewExpansionContext.reserveViewExpansionToken(viewOwner); rel = context.expandView(rowType, view.getSql(), token.getSchemaTree(), view.getWorkspaceSchemaPath()).rel; } else { rel = context.expandView(rowType, view.getSql(), view.getWorkspaceSchemaPath(), ImmutableList.<String>of()).rel; } // If the View's field list is not "*", create a cast. if (!view.isDynamic() && !view.hasStar()) { rel = RelOptUtil.createCastRel(rel, rowType, true); } return rel; } finally { if (token != null) { token.release(); } } }
@Override public RelNode toRel(ToRelContext context) { RelNode rel = LogicalTableScan.create(context.getCluster(), fromTable); final RexBuilder rexBuilder = context.getCluster().getRexBuilder(); rel = LogicalFilter.create( rel, getConstraint(rexBuilder, rel.getRowType())); final List<RelDataTypeField> fieldList = rel.getRowType().getFieldList(); final List<Pair<RexNode, String>> projects = new AbstractList<Pair<RexNode, String>>() { @Override public Pair<RexNode, String> get(int index) { return RexInputRef.of2(mapping.get(index), fieldList); } @Override public int size() { return mapping.size(); } }; return LogicalProject.create(rel, Pair.left(projects), Pair.right(projects)); }
@Override public RelNode toRel(ToRelContext context) { RelNode rel = LogicalTableScan.create(context.getCluster(), fromTable); final RexBuilder rexBuilder = context.getCluster().getRexBuilder(); rel = LogicalFilter.create( rel, getConstraint(rexBuilder, rel.getRowType())); final List<RelDataTypeField> fieldList = rel.getRowType().getFieldList(); final List<Pair<RexNode, String>> projects = new AbstractList<Pair<RexNode, String>>() { @Override public Pair<RexNode, String> get(int index) { return RexInputRef.of2(mapping.get(index), fieldList); } @Override public int size() { return mapping.size(); } }; return LogicalProject.create(rel, Pair.left(projects), Pair.right(projects)); }
public RelNode toRel(ToRelContext context) { return LogicalTableScan.create(context.getCluster(), this); }
public RelNode toRel(ToRelContext context) { return LogicalTableScan.create(context.getCluster(), this); }
public RelNode toRel(ToRelContext context) { return LogicalTableScan.create(context.getCluster(), this); }
public RelNode toRel(ToRelContext context) { return LogicalTableScan.create(context.getCluster(), this); }
public RelNode toRel(ToRelContext context) { return LogicalTableScan.create(context.getCluster(), this); }
public RelNode toRel( RelOptTable.ToRelContext context, RelOptTable relOptTable) { return new QuarkViewScan(context.getCluster(), this.backUpRelOptTable, this); }
public RelNode toRel(ToRelContext context) { return LogicalTableScan.create(context.getCluster(), this); }
public RelNode toRel(ToRelContext context) { return LogicalTableScan.create(context.getCluster(), this); }
public RelNode toRel(ToRelContext context) { return LogicalTableScan.create(context.getCluster(), this); }
@Override public RelNode toRel(ToRelContext context, RelOptTable relOptTable) { int fieldCount = relOptTable.getRowType().getFieldCount(); int[] fields = identityList(fieldCount); return new OLAPTableScan(context.getCluster(), relOptTable, this, fields); }
@Override public RelNode toRel(final RelOptTable.ToRelContext context, final RelOptTable relOptTable) { // Request all fields. final int fieldCount = relOptTable.getRowType().getFieldCount(); final int[] fields = new int[fieldCount]; for (int i = 0; i < fieldCount; i++) { fields[i] = i; } return new FlowFileTableScan(context.getCluster(), relOptTable, this, fields); }
public RelNode toRel(RelOptTable.ToRelContext context, RelOptTable relOptTable) { return new JdbcTableScan(context.getCluster(), relOptTable, this, jdbcSchema.convention); }