public RelDataType visit(SqlIntervalQualifier intervalQualifier) { return typeFactory.createSqlIntervalType(intervalQualifier); } }
break; case INTERVAL_YEAR_MONTH: convertedType = dtFactory.createSqlIntervalType( new SqlIntervalQualifier(TimeUnit.YEAR, TimeUnit.MONTH, new SqlParserPos(1,1))); break; case INTERVAL_DAY_TIME: convertedType = dtFactory.createSqlIntervalType( new SqlIntervalQualifier(TimeUnit.DAY, TimeUnit.SECOND, new SqlParserPos(1,1))); break;
break; case INTERVAL_YEAR_MONTH: convertedType = dtFactory.createSqlIntervalType( new SqlIntervalQualifier(TimeUnit.YEAR, TimeUnit.MONTH, new SqlParserPos(1,1))); break; case INTERVAL_DAY_TIME: convertedType = dtFactory.createSqlIntervalType( new SqlIntervalQualifier(TimeUnit.DAY, TimeUnit.SECOND, new SqlParserPos(1,1))); break;
public RelDataType visit(SqlIntervalQualifier intervalQualifier) { return typeFactory.createSqlIntervalType(intervalQualifier); } }
public RelDataType visit(SqlIntervalQualifier intervalQualifier) { return typeFactory.createSqlIntervalType(intervalQualifier); } }
/** * Adds a field with an interval type. */ public Builder add(String name, TimeUnit startUnit, int startPrecision, TimeUnit endUnit, int fractionalSecondPrecision) { final SqlIntervalQualifier q = new SqlIntervalQualifier(startUnit, startPrecision, endUnit, fractionalSecondPrecision, SqlParserPos.ZERO); add(name, typeFactory.createSqlIntervalType(q)); return this; }
/** * Creates a literal representing an interval value, for example * {@code INTERVAL '3-7' YEAR TO MONTH}. */ public RexLiteral makeIntervalLiteral( BigDecimal v, SqlIntervalQualifier intervalQualifier) { return makeLiteral( v, typeFactory.createSqlIntervalType(intervalQualifier), intervalQualifier.typeName()); }
/** * Creates a literal representing an interval value, for example * {@code INTERVAL '3-7' YEAR TO MONTH}. */ public RexLiteral makeIntervalLiteral( BigDecimal v, SqlIntervalQualifier intervalQualifier) { return makeLiteral( v, typeFactory.createSqlIntervalType(intervalQualifier), intervalQualifier.typeName()); }
/** * Adds a field with an interval type. */ public Builder add(String name, TimeUnit startUnit, int startPrecision, TimeUnit endUnit, int fractionalSecondPrecision) { final SqlIntervalQualifier q = new SqlIntervalQualifier(startUnit, startPrecision, endUnit, fractionalSecondPrecision, SqlParserPos.ZERO); add(name, typeFactory.createSqlIntervalType(q)); return this; }
RelDataType type; if (sqlTypeName.getFamily() == SqlTypeFamily.INTERVAL_DAY_TIME) { type = typeFactory.createSqlIntervalType( new SqlIntervalQualifier( TimeUnit.DAY, SqlParserPos.ZERO)); } else if (sqlTypeName.getFamily() == SqlTypeFamily.INTERVAL_YEAR_MONTH) { type = typeFactory.createSqlIntervalType( new SqlIntervalQualifier( TimeUnit.YEAR,
case INTERVAL_YEAR_MONTH: case INTERVAL_MONTH: type = typeFactory.createSqlIntervalType( new SqlIntervalQualifier( TimeUnit.YEAR, case INTERVAL_MINUTE_SECOND: case INTERVAL_SECOND: type = typeFactory.createSqlIntervalType( new SqlIntervalQualifier( TimeUnit.DAY,
case INTERVAL_SECOND: SqlIntervalQualifier dayTime = new SqlIntervalQualifier(TimeUnit.DAY, TimeUnit.SECOND, SqlParserPos.ZERO); nullLiteral = rexBuilder.makeCast(typeFactory.createSqlIntervalType(dayTime), rexBuilder.constantNull()); break; case INTERVAL_YEAR: case INTERVAL_MONTH: SqlIntervalQualifier yearMonth = new SqlIntervalQualifier(TimeUnit.YEAR, TimeUnit.MONTH, SqlParserPos.ZERO); nullLiteral = rexBuilder.makeCast(typeFactory.createSqlIntervalType(yearMonth), rexBuilder.constantNull()); break; case MULTISET:
public RelDataType getRowType(RelDataTypeFactory factory) { List<RelDataType> types = Lists.newArrayList(); List<String> names = Lists.newArrayList(); for (FieldType field : fields) { names.add(field.getName()); RelDataType type; if ( SqlTypeFamily.INTERVAL_YEAR_MONTH == field.getType().getFamily() || SqlTypeFamily.INTERVAL_DAY_TIME == field.getType().getFamily() ) { type = factory.createSqlIntervalType( field.getIntervalQualifier() ); } else if (field.getType().equals(SqlTypeName.ARRAY) || field.getType().equals(SqlTypeName.MAP)) { type = factory.createSqlType(SqlTypeName.ANY); } else if (field.getPrecision() == null && field.getScale() == null) { type = factory.createSqlType(field.getType()); } else if (field.getPrecision() != null && field.getScale() == null) { type = factory.createSqlType(field.getType(), field.getPrecision()); } else { type = factory.createSqlType(field.getType(), field.getPrecision(), field.getScale()); } if (field.getIsNullable()) { types.add(factory.createTypeWithNullability(type, true)); } else { types.add(type); } } return factory.createStructType(types, names); }
public RelDataType getRowType(RelDataTypeFactory factory) { // if there are no fields defined, this is a dynamic view. if (isDynamic()) { return new RelDataTypeDrillImpl(new RelDataTypeHolder(), factory); } List<RelDataType> types = Lists.newArrayList(); List<String> names = Lists.newArrayList(); for (FieldType field : fields) { names.add(field.getName()); RelDataType type; if ( SqlTypeFamily.INTERVAL_YEAR_MONTH == field.getType().getFamily() || SqlTypeFamily.INTERVAL_DAY_TIME == field.getType().getFamily() ) { type = factory.createSqlIntervalType( field.getIntervalQualifier() ); } else if (field.getPrecision() == null && field.getScale() == null) { type = factory.createSqlType(field.getType()); } else if (field.getPrecision() != null && field.getScale() == null) { type = factory.createSqlType(field.getType(), field.getPrecision()); } else { type = factory.createSqlType(field.getType(), field.getPrecision(), field.getScale()); } if (field.getIsNullable()) { types.add(factory.createTypeWithNullability(type, true)); } else { types.add(type); } } return factory.createStructType(types, names); }
SqlIntervalLiteral.IntervalValue intervalValue = (SqlIntervalLiteral.IntervalValue) value; return typeFactory.createSqlIntervalType( intervalValue.getIntervalQualifier());
SqlIntervalLiteral.IntervalValue intervalValue = (SqlIntervalLiteral.IntervalValue) value; return typeFactory.createSqlIntervalType( intervalValue.getIntervalQualifier());
final RelDataType intervalType = cx.getTypeFactory().createTypeWithNullability( cx.getTypeFactory().createSqlIntervalType(qualifier), op1.getType().isNullable() || op2.getType().isNullable()); final RexCall rexCall = (RexCall) rexBuilder.makeCall(
final RelDataType intervalType = cx.getTypeFactory().createTypeWithNullability( cx.getTypeFactory().createSqlIntervalType(qualifier), op1.getType().isNullable() || op2.getType().isNullable()); final RexCall rexCall = (RexCall) rexBuilder.makeCall(
break; case INTERVAL_YEAR_MONTH: convertedType = dtFactory.createSqlIntervalType( new SqlIntervalQualifier(TimeUnit.YEAR, TimeUnit.MONTH, new SqlParserPos(1,1))); break; case INTERVAL_DAY_TIME: convertedType = dtFactory.createSqlIntervalType( new SqlIntervalQualifier(TimeUnit.DAY, TimeUnit.SECOND, new SqlParserPos(1,1))); break;