@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); }
@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 RelDataType deriveRowType() { final List<RelDataTypeField> fieldList = table.getRowType().getFieldList(); final RelDataTypeFactory.FieldInfoBuilder builder = getCluster().getTypeFactory().builder(); for (int field : fields) { builder.add(fieldList.get(field)); } return builder.build(); }
@Override public RelDataType deriveRowType() { final List<RelDataTypeField> fieldList = table.getRowType().getFieldList(); final RelDataTypeFactory.FieldInfoBuilder builder = getCluster().getTypeFactory().builder(); for (int field : fields) { builder.add(fieldList.get(field)); } return getCluster().getTypeFactory().createStructType(builder); }
int rowIDPos = tableScan.getTable().getRowType().getField( VirtualColumn.ROWID.getName(), false, false).getIndex(); RexNode rowIDFieldAccess = rexBuilder.makeFieldAccess( rexBuilder.makeInputRef(tableScan.getTable().getRowType().getFieldList().get(rowIDPos).getType(), rowIDPos), 0);
int foreignKeyPos = constraint.getColumnPairs().get(pos).source; RelDataType foreignKeyColumnType = tRef.getTable().getRowType().getFieldList().get(foreignKeyPos).getType(); RexTableInputRef foreignKeyColumnRef = RexTableInputRef.of(tRef, foreignKeyPos, foreignKeyColumnType); int uniqueKeyPos = constraint.getColumnPairs().get(pos).target; RexTableInputRef uniqueKeyColumnRef = RexTableInputRef.of(nonFkTable, uniqueKeyPos, nonFkTable.getTable().getRowType().getFieldList().get(uniqueKeyPos).getType()); if (ecT.getEquivalenceClassesMap().containsKey(uniqueKeyColumnRef) && ecT.getEquivalenceClassesMap().get(uniqueKeyColumnRef).contains(foreignKeyColumnRef)) {
int foreignKeyPos = constraint.getColumnPairs().get(pos).source; RelDataType foreignKeyColumnType = tRef.getTable().getRowType().getFieldList().get(foreignKeyPos).getType(); RexTableInputRef foreignKeyColumnRef = RexTableInputRef.of(tRef, foreignKeyPos, foreignKeyColumnType); int uniqueKeyPos = constraint.getColumnPairs().get(pos).target; RexTableInputRef uniqueKeyColumnRef = RexTableInputRef.of(nonFkTable, uniqueKeyPos, nonFkTable.getTable().getRowType().getFieldList().get(uniqueKeyPos).getType()); if (ecT.getEquivalenceClassesMap().containsKey(uniqueKeyColumnRef) && ecT.getEquivalenceClassesMap().get(uniqueKeyColumnRef).contains(foreignKeyColumnRef)) {
@Override public RelDataType getRowType() { return relOptTable.getRowType(); }
public RelNode toRel( RelOptTable.ToRelContext context, RelOptTable relOptTable) { return expandView(context, relOptTable.getRowType(), viewSql).rel; }
public RelNode toRel( RelOptTable.ToRelContext context, RelOptTable relOptTable) { return expandView(context, relOptTable.getRowType(), viewSql).rel; }
private static ImmutableList<SchemaPath> getAllColumns(RelOptTable table){ return FluentIterable.from(table.getRowType().getFieldNames()).transform(new Function<String, SchemaPath>(){ @Override public SchemaPath apply(String input) { return SchemaPath.getSimplePath(input); }}).toList(); }
ColRef column(int offset) { if (offset >= scan.getTable().getRowType().getFieldCount()) { throw new IndexOutOfBoundsException("field " + offset + " out of range in " + scan.getTable().getRowType()); } return new BaseColRef(tableRef, offset); } };
/** * @param origin * @return the column name */ public static String getColName(RelColumnOrigin origin) { return origin.getOriginTable().getRowType().getFieldNames().get(origin.getOriginColumnOrdinal()); } }
public ColumnStrategy generationStrategy(RelOptTable table, int iColumn) { return table.getRowType().getFieldList().get(iColumn).getType().isNullable() ? ColumnStrategy.NULLABLE : ColumnStrategy.NOT_NULLABLE; }
public ColumnStrategy generationStrategy(RelOptTable table, int iColumn) { return table.getRowType().getFieldList().get(iColumn).getType().isNullable() ? ColumnStrategy.NULLABLE : ColumnStrategy.NOT_NULLABLE; }
public RelNode toRel( RelOptTable.ToRelContext context, RelOptTable relOptTable) { // Request all fields. final int fieldCount = relOptTable.getRowType().getFieldCount(); final int[] fields = CsvEnumerator.identityList(fieldCount); return new CsvTableScan(context.getCluster(), relOptTable, this, fields); }
@Override public RelDataType deriveRowType() { final List<RelDataTypeField> fieldList = table.getRowType().getFieldList(); final RelDataTypeFactory.Builder builder = getCluster().getTypeFactory().builder(); for (int field : fields) { builder.add(fieldList.get(field)); } return builder.build(); }
@Override public RelDataType deriveRowType() { final List<RelDataTypeField> fieldList = table.getRowType().getFieldList(); final RelDataTypeFactory.Builder builder = getCluster().getTypeFactory().builder(); for (int field : fields) { builder.add(fieldList.get(field)); } return builder.build(); }
public boolean isSelectStar() { RelOptTable inputTable = getInput().getTable(); if (inputTable == null) { return false; } return MoreRelOptUtil.containIdentity(getProjects(), getRowType(), inputTable.getRowType()); }
@Override public RexNode newColumnDefaultValue(RelOptTable table, int iColumn, InitializerContext context) { THREAD_CALL_COUNT.get().incrementAndGet(); final RelDataTypeField field = table.getRowType().getFieldList().get(iColumn); if (defaultColumns.contains(field.getName())) { final RexBuilder rexBuilder = context.getRexBuilder(); return rexBuilder.makeExactLiteral(BigDecimal.ONE); } return super.newColumnDefaultValue(table, iColumn, context); }