private RelDataType copyIntervalType(RelDataType type, boolean nullable) { return new IntervalSqlType(typeSystem, type.getIntervalQualifier(), nullable); }
private RelDataType copyIntervalType(RelDataType type, boolean nullable) { return new IntervalSqlType(typeSystem, type.getIntervalQualifier(), nullable); }
public SqlIntervalQualifier getIntervalQualifier() { return delegate.getIntervalQualifier(); }
public SqlIntervalQualifier getIntervalQualifier() { return delegate.getIntervalQualifier(); }
private static String getTypeName(RelDataType type) { SqlTypeName sqlTypeName = type.getSqlTypeName(); if (type instanceof RelDataTypeFactoryImpl.JavaType) { // We'd rather print "INTEGER" than "JavaType(int)". return sqlTypeName.getName(); } switch (sqlTypeName) { case INTERVAL_YEAR_MONTH: // e.g. "INTERVAL_MONTH" or "INTERVAL_YEAR_MONTH" return "INTERVAL_" + type.getIntervalQualifier().toString().replace(' ', '_'); default: return type.toString(); // e.g. "VARCHAR(10)", "INTEGER ARRAY" } }
case INTERVAL_MINUTE_SECOND: case INTERVAL_SECOND: p = dataType.getIntervalQualifier().getStartPrecisionPreservingDefault(); default: break; this.intervalQualifier = dataType.getIntervalQualifier(); this.isNullable = dataType.isNullable();
this.DATETIME_PRECISION = relDataType .getIntervalQualifier() .getFractionalSecondPrecision( RelDataTypeSystemImpl.REL_DATA_TYPE_SYSTEM); .getIntervalQualifier() .getStartPrecision(RelDataTypeSystemImpl.REL_DATA_TYPE_SYSTEM); final TimeUnit start = relDataType.getIntervalQualifier().getStartUnit(); final TimeUnit end = MoreObjects.firstNonNull(relDataType.getIntervalQualifier().getEndUnit(), start); if ( start == end ) { this.INTERVAL_TYPE = start.name();
case INTERVAL_MINUTE_SECOND: case INTERVAL_SECOND: p = dataType.getIntervalQualifier().getStartPrecisionPreservingDefault(); default: break; this.intervalQualifier = dataType.getIntervalQualifier(); this.isNullable = dataType.isNullable();
this.DATETIME_PRECISION = relDataType .getIntervalQualifier() .getFractionalSecondPrecision( DrillRelDataTypeSystem.DRILL_REL_DATATYPE_SYSTEM ); .getIntervalQualifier() .getStartPrecision(DrillRelDataTypeSystem.DRILL_REL_DATATYPE_SYSTEM); final TimeUnit start = relDataType.getIntervalQualifier().getStartUnit(); final TimeUnit end = MoreObjects.firstNonNull(relDataType.getIntervalQualifier().getEndUnit(), start); if ( start == end ) { this.INTERVAL_TYPE = start.name();
@Override public RelDataType inferReturnType(SqlOperatorBinding opBinding) { final RelDataTypeFactory factory = opBinding.getTypeFactory(); final TimeUnit timeUnit = opBinding.getOperandType(0).getIntervalQualifier().getStartUnit(); final boolean isNullable = opBinding.getOperandType(1).isNullable(); final SqlTypeName sqlTypeName = getSqlTypeNameForTimeUnit(timeUnit.name()); return createCalciteTypeWithNullability( factory, sqlTypeName, isNullable); } }
SqlParserUtil.intervalToMillis( literal, type.getIntervalQualifier()); return new RexLiteral(BigDecimal.valueOf(millis), type, typeName); case INTERVAL_YEAR: SqlParserUtil.intervalToMonths( literal, type.getIntervalQualifier()); return new RexLiteral(BigDecimal.valueOf(months), type, typeName); case DATE:
SqlParserUtil.intervalToMillis( literal, type.getIntervalQualifier()); return new RexLiteral(BigDecimal.valueOf(millis), type, typeName); case INTERVAL_YEAR: SqlParserUtil.intervalToMonths( literal, type.getIntervalQualifier()); return new RexLiteral(BigDecimal.valueOf(months), type, typeName); case DATE:
return SqlLiteral.createInterval(negative ? -1 : 1, literal.getValueAs(String.class), literal.getType().getIntervalQualifier(), POS); case DATE: return SqlLiteral.createDate(literal.getValueAs(DateString.class),
return SqlLiteral.createInterval(negative ? -1 : 1, literal.getValueAs(String.class), literal.getType().getIntervalQualifier(), POS); case DATE: return SqlLiteral.createDate(literal.getValueAs(DateString.class),
case INTERVAL_SECOND: return makeIntervalLiteral((BigDecimal) value, type.getIntervalQualifier()); case MAP: final MapSqlType mapType = (MapSqlType) type;
case INTERVAL_SECOND: return makeIntervalLiteral((BigDecimal) value, type.getIntervalQualifier()); case MAP: final MapSqlType mapType = (MapSqlType) type;
case VARCHAR: final SqlIntervalQualifier interval = sourceType.getIntervalQualifier(); switch (sourceType.getSqlTypeName()) { case DATE:
case VARCHAR: final SqlIntervalQualifier interval = sourceType.getIntervalQualifier(); switch (sourceType.getSqlTypeName()) { case DATE: