本文整理了Java中org.apache.calcite.rex.RexBuilder.decodeIntervalOrDecimal
方法的一些代码示例,展示了RexBuilder.decodeIntervalOrDecimal
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RexBuilder.decodeIntervalOrDecimal
方法的具体详情如下:
包路径:org.apache.calcite.rex.RexBuilder
类名称:RexBuilder
方法名:decodeIntervalOrDecimal
[英]Retrieves an interval or decimal node's integer representation
[中]检索间隔或十进制节点的整数表示形式
代码示例来源:origin: Qihoo360/Quicksql
/**
* Retrieves a decimal node's integer representation
*
* @param decimalNode the decimal value as an opaque type
* @return an integer representation of the decimal value
*/
protected RexNode decodeValue(RexNode decimalNode) {
assert SqlTypeUtil.isDecimal(decimalNode.getType());
return builder.decodeIntervalOrDecimal(decimalNode);
}
代码示例来源:origin: org.apache.calcite/calcite-core
/**
* Retrieves a decimal node's integer representation
*
* @param decimalNode the decimal value as an opaque type
* @return an integer representation of the decimal value
*/
protected RexNode decodeValue(RexNode decimalNode) {
assert SqlTypeUtil.isDecimal(decimalNode.getType());
return builder.decodeIntervalOrDecimal(decimalNode);
}
代码示例来源:origin: org.apache.calcite/calcite-core
private RexNode makeCastIntervalToExact(RelDataType toType, RexNode exp) {
final TimeUnit endUnit = exp.getType().getSqlTypeName().getEndUnit();
final TimeUnit baseUnit = baseUnit(exp.getType().getSqlTypeName());
final BigDecimal multiplier = baseUnit.multiplier;
final int scale = 0;
BigDecimal divider = endUnit.multiplier.scaleByPowerOfTen(-scale);
RexNode value = multiplyDivide(decodeIntervalOrDecimal(exp),
multiplier, divider);
if (scale > 0) {
RelDataType decimalType =
getTypeFactory().createSqlType(
SqlTypeName.DECIMAL,
scale + exp.getType().getPrecision(),
scale);
value = encodeIntervalOrDecimal(value, decimalType, false);
}
return ensureType(toType, value, false);
}
代码示例来源:origin: Qihoo360/Quicksql
private RexNode makeCastIntervalToExact(RelDataType toType, RexNode exp) {
final TimeUnit endUnit = exp.getType().getSqlTypeName().getEndUnit();
final TimeUnit baseUnit = baseUnit(exp.getType().getSqlTypeName());
final BigDecimal multiplier = baseUnit.multiplier;
final int scale = 0;
BigDecimal divider = endUnit.multiplier.scaleByPowerOfTen(-scale);
RexNode value = multiplyDivide(decodeIntervalOrDecimal(exp),
multiplier, divider);
if (scale > 0) {
RelDataType decimalType =
getTypeFactory().createSqlType(
SqlTypeName.DECIMAL,
scale + exp.getType().getPrecision(),
scale);
value = encodeIntervalOrDecimal(value, decimalType, false);
}
return ensureType(toType, value, false);
}
内容来源于网络,如有侵权,请联系作者删除!