List<RexNode> columnExprs) { final RelOptTable targetTable = getTargetTable(call); final RelDataType targetRowType = targetTable.getRowType(); SqlNodeList targetColumnList = call.getTargetColumnList(); if (targetColumnList == null) {
final RelDataType targetRowType = targetTable.getRowType(); final List<RelDataTypeField> targetFields = targetRowType.getFieldList();
public RelDataType deriveRowType() { return table.getRowType(); }
public RelDataType deriveRowType() { return table.getRowType(); }
public RelDataType getRowType() { return table.getRowType(); }
public RelDataType getRowType() { return parent.getRowType(); }
public RelNode toRel( RelOptTable.ToRelContext context, RelOptTable relOptTable) { return expandView(context, relOptTable.getRowType(), viewSql); }
public RelDataType getRowType() { return parent.getRowType(); }
public Set<RelColumnOrigin> getColumnOrigins( RelNode rel, int iOutputColumn) { // NOTE jvs 28-Mar-2006: We may get this wrong for a physical table // expression which supports projections. In that case, // it's up to the plugin writer to override with the // correct information. if (rel.getInputs().size() > 0) { // No generic logic available for non-leaf rels. return null; } Set<RelColumnOrigin> set = new HashSet<RelColumnOrigin>(); RelOptTable table = rel.getTable(); if (table == null) { // Somebody is making column values up out of thin air, like a // VALUES clause, so we return an empty set. return set; } // Detect the case where a physical table expression is performing // projection, and say we don't know instead of making any assumptions. // (Theoretically we could try to map the projection using column // names.) This detection assumes the table expression doesn't handle // rename as well. if (table.getRowType() != rel.getRowType()) { return null; } set.add(new RelColumnOrigin(table, iOutputColumn, false)); return set; }
@Override public RelNode visit(TableAccessRelBase scan) { RelOptTable relOptTable = scan.getTable(); final Table table = relOptTable.unwrap(Table.class); if (table.equals(starTable.tables.get(0))) { Mappings.TargetMapping mapping = Mappings.createShiftMapping( starRelOptTable.getRowType().getFieldCount(), 0, 0, relOptTable.getRowType().getFieldCount()); return CalcRel.createProject( new TableAccessRel(scan.getCluster(), starRelOptTable), Mappings.asList(mapping.inverse())); } return scan; }
List<RexNode> columnExprs) { final RelOptTable targetTable = getTargetTable(call); final RelDataType targetRowType = targetTable.getRowType(); SqlNodeList targetColumnList = call.getTargetColumnList(); if (targetColumnList == null) {
final RelDataType targetRowType = targetTable.getRowType(); SqlNodeList targetColumnList = call.getTargetColumnList(); if (targetColumnList == null) {
inputRowType = getCluster().getTypeFactory().createJoinType( table.getRowType(), getCatalogReader().createTypeFromProjection( table.getRowType(), updateColumnList)); } else if (isMerge()) { getCluster().getTypeFactory().createJoinType( getCluster().getTypeFactory().createJoinType( table.getRowType(), table.getRowType()), getCatalogReader().createTypeFromProjection( table.getRowType(), updateColumnList)); } else { inputRowType = table.getRowType();
getCluster().getTypeFactory().createJoinType( new RelDataType[] { table.getRowType(), RelOptUtil.createTypeFromProjection( table.getRowType(), getCluster().getTypeFactory(), updateColumnList) getCluster().getTypeFactory().createJoinType( new RelDataType[] { table.getRowType(), table.getRowType() }), RelOptUtil.createTypeFromProjection( table.getRowType(), getCluster().getTypeFactory(), updateColumnList) }); } else { inputRowType = table.getRowType();
@Override public Result implement( EnumerableRelImplementor implementor, Prefer pref ) { LOG.debug( "implementing enumerable" ); TableDef tableDef = getTapTable().getTableDef(); VolcanoPlanner planner = (VolcanoPlanner) getCluster().getPlanner(); if( pref == Prefer.CUSTOM ) throw new RuntimeException( "cannot return custom format" ); final PhysType physType = PhysTypeImpl.of( implementor.getTypeFactory(), table.getRowType(), JavaRowFormat.ARRAY ); TableHolder tableHolder = new TableHolder( physType, tableDef, getPlatformBroker(), planner ); long ordinal = CascadingTapEnumerable.addHolder( tableHolder ); Constructor<CascadingTapEnumerable> constructor = CascadingEnumerableRel.getConstructorFor( CascadingTapEnumerable.class ); BlockStatement block = new BlockBuilder().append( Expressions.new_( constructor, Expressions.constant( ordinal ) ) ).toBlock(); return implementor.result( physType, block ); }
public static void checkColumnOrigin( RelColumnOrigin rco, String expectedTableName, String expectedColumnName, boolean expectedDerived) { RelOptTable actualTable = rco.getOriginTable(); List<String> actualTableName = actualTable.getQualifiedName(); assertEquals( Iterables.getLast(actualTableName), expectedTableName); assertEquals( actualTable.getRowType() .getFieldList() .get(rco.getOriginColumnOrdinal()) .getName(), expectedColumnName); assertEquals( rco.isDerived(), expectedDerived); }
public static void checkColumnOrigin( RelColumnOrigin rco, String expectedTableName, String expectedColumnName, boolean expectedDerived) { RelOptTable actualTable = rco.getOriginTable(); List<String> actualTableName = actualTable.getQualifiedName(); assertEquals( Iterables.getLast(actualTableName), expectedTableName); assertEquals( actualTable.getRowType().getFieldList() .get(rco.getOriginColumnOrdinal()).getName(), expectedColumnName); assertEquals( rco.isDerived(), expectedDerived); }
Mappings.offset(rightMapping, ((StarTable) leftTable).columnOffset(rightTable), leftRelOptTable.getRowType().getFieldCount())); throw new Util.FoundOne( CalcRel.createProject(
PhysTypeImpl.of( typeFactory, table.getRowType(), JavaRowFormat.CUSTOM); List<Expression> expressionList = new ArrayList<Expression>();
PhysTypeImpl.of( typeFactory, table.getRowType(), JavaRowFormat.CUSTOM); List<Expression> expressionList = new ArrayList<Expression>();