/** * Creates a <code>RexLiteral</code>. */ RexLiteral( Comparable value, RelDataType type, SqlTypeName typeName) { this.value = value; this.type = Objects.requireNonNull(type); this.typeName = Objects.requireNonNull(typeName); Preconditions.checkArgument(valueMatchesType(value, typeName, true)); Preconditions.checkArgument((value == null) == type.isNullable()); Preconditions.checkArgument(typeName != SqlTypeName.ANY); this.digest = toJavaString(value, typeName); }
/** * Returns the value of this literal. * * <p>For backwards compatibility, returns DATE. TIME and TIMESTAMP as a * {@link Calendar} value in UTC time zone. */ public Comparable getValue() { assert valueMatchesType(value, typeName, true) : value; if (value == null) { return null; } switch (typeName) { case TIME: case DATE: case TIMESTAMP: return getValueAs(Calendar.class); default: return value; } }
/** * Returns the value of this literal. * * <p>For backwards compatibility, returns DATE. TIME and TIMESTAMP as a * {@link Calendar} value in UTC time zone. */ public Comparable getValue() { assert valueMatchesType(value, typeName, true) : value; if (value == null) { return null; } switch (typeName) { case TIME: case DATE: case TIMESTAMP: return getValueAs(Calendar.class); default: return value; } }
/** * Creates a <code>RexLiteral</code>. */ RexLiteral( Comparable value, RelDataType type, SqlTypeName typeName) { this.value = value; this.type = Objects.requireNonNull(type); this.typeName = Objects.requireNonNull(typeName); Preconditions.checkArgument(valueMatchesType(value, typeName, true)); Preconditions.checkArgument((value == null) == type.isNullable()); Preconditions.checkArgument(typeName != SqlTypeName.ANY); this.digest = toJavaString(value, typeName); }
break; default: assert valueMatchesType(value, typeName, true); throw Util.needToImplement(typeName);
break; default: assert valueMatchesType(value, typeName, true); throw Util.needToImplement(typeName);
boolean canRemoveCastFromLiteral(RelDataType toType, Comparable value, SqlTypeName fromTypeName) { final SqlTypeName sqlType = toType.getSqlTypeName(); if (!RexLiteral.valueMatchesType(value, sqlType, false)) { return false;
boolean canRemoveCastFromLiteral(RelDataType toType, Comparable value, SqlTypeName fromTypeName) { final SqlTypeName sqlType = toType.getSqlTypeName(); if (!RexLiteral.valueMatchesType(value, sqlType, false)) { return false;