本文整理了Java中org.apache.calcite.rel.type.RelDataTypeFactory.createTypeWithNullability
方法的一些代码示例,展示了RelDataTypeFactory.createTypeWithNullability
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RelDataTypeFactory.createTypeWithNullability
方法的具体详情如下:
包路径:org.apache.calcite.rel.type.RelDataTypeFactory
类名称:RelDataTypeFactory
方法名:createTypeWithNullability
[英]Creates a type that is the same as another type but with possibly different nullability. The output type may be identical to the input type. For type systems without a concept of nullability, the return value is always the same as the input.
[中]创建一个与另一个类型相同但可能具有不同的可空性的类型。输出类型可能与输入类型相同。对于没有可空性概念的类型系统,返回值始终与输入值相同。
代码示例来源:origin: apache/hive
public List<RelDataType> getParameterTypes(RelDataTypeFactory typeFactory) {
return ImmutableList.of(
typeFactory.createTypeWithNullability(
typeFactory.createSqlType(SqlTypeName.ANY), true));
}
代码示例来源:origin: apache/hive
public RelDataType getReturnType(RelDataTypeFactory typeFactory) {
return typeFactory.createTypeWithNullability(
typeFactory.createSqlType(SqlTypeName.ANY), true);
}
代码示例来源:origin: apache/drill
@Override
public RelDataType inferReturnType(SqlOperatorBinding opBinding) {
RelDataTypeFactory factory = opBinding.getTypeFactory();
return factory.createTypeWithNullability(factory.createSqlType(SqlTypeName.ANY), true);
}
}
代码示例来源:origin: apache/flink
private SqlNode maybeCast(SqlNode node, RelDataType currentType,
RelDataType desiredType) {
return currentType.equals(desiredType)
|| (currentType.isNullable() != desiredType.isNullable()
&& typeFactory.createTypeWithNullability(currentType,
desiredType.isNullable()).equals(desiredType))
? node
: SqlStdOperatorTable.CAST.createCall(SqlParserPos.ZERO,
node, SqlTypeUtil.convertTypeToSpec(desiredType));
}
代码示例来源:origin: apache/drill
@Override
public RelDataType deriveType(SqlValidator validator, SqlValidatorScope scope, SqlCall call) {
RelDataTypeFactory factory = validator.getTypeFactory();
return factory.createTypeWithNullability(factory.createSqlType(SqlTypeName.ANY), true);
}
代码示例来源:origin: apache/flink
maybeCast(selectItem1, type1, type2)),
new SqlIdentifier(name, SqlParserPos.ZERO));
type = typeFactory.createTypeWithNullability(type2, nullable);
代码示例来源:origin: apache/drill
private void convertToRelDataType(RelDataTypeFactory typeFactory, List<String> names, List<RelDataType> types) {
for (ColumnDTO column : schema.getColumns()) {
names.add(column.getColumnName());
RelDataType type = getSqlTypeFromOpenTSDBType(typeFactory, column.getColumnType());
type = typeFactory.createTypeWithNullability(type, column.isNullable());
types.add(type);
}
}
代码示例来源:origin: apache/drill
/**
* Performs conversion from Hive field to nullable RelDataType
*
* @param field - representation of data type in Hive Metastore
* @return appropriate nullable RelDataType for using with Calcite
* @throws RuntimeException for unsupported data types, check
* {@link HiveToRelDataTypeConverter#UNSUPPORTED_HIVE_DATA_TYPE_ERROR_MSG}
* for details about supported hive types
*/
public RelDataType convertToNullableRelDataType(FieldSchema field) {
TypeInfo fieldTypeInfo = TypeInfoUtils.getTypeInfoFromTypeString(field.getType());
RelDataType relDataType = convertToRelDataType(fieldTypeInfo);
return typeFactory.createTypeWithNullability(relDataType, true);
}
代码示例来源:origin: apache/hive
@Override
public AggregateCall other(RelDataTypeFactory typeFactory, AggregateCall e) {
return AggregateCall.create(
new HiveSqlCountAggFunction(isDistinct, returnTypeInference, operandTypeInference, operandTypeChecker),
false, ImmutableIntList.of(), -1,
typeFactory.createTypeWithNullability(typeFactory.createSqlType(SqlTypeName.BIGINT), true), "count");
}
代码示例来源:origin: apache/kylin
@Override
public RelDataType deriveSumType(RelDataTypeFactory typeFactory, RelDataType argumentType) {
if (argumentType instanceof BasicSqlType) {
switch (argumentType.getSqlTypeName()) {
case INTEGER:
case SMALLINT:
case TINYINT:
return typeFactory.createTypeWithNullability(typeFactory.createSqlType(SqlTypeName.BIGINT),
argumentType.isNullable());
case DECIMAL:
return typeFactory.createTypeWithNullability(
typeFactory.createSqlType(SqlTypeName.DECIMAL, 19, argumentType.getScale()),
argumentType.isNullable());
default:
break;
}
}
return argumentType;
}
代码示例来源:origin: apache/drill
@Override
public AggregateCall other(RelDataTypeFactory typeFactory, AggregateCall e) {
return AggregateCall.create(
new HiveSqlCountAggFunction(isDistinct, returnTypeInference, operandTypeInference, operandTypeChecker),
false, ImmutableIntList.of(), -1,
typeFactory.createTypeWithNullability(typeFactory.createSqlType(SqlTypeName.BIGINT), true), "count");
}
}
代码示例来源:origin: apache/hive
@Override
public AggregateCall other(RelDataTypeFactory typeFactory, AggregateCall e) {
RelDataType countRetType = typeFactory.createTypeWithNullability(typeFactory.createSqlType(SqlTypeName.BIGINT), true);
return AggregateCall.create(
new HiveSqlCountAggFunction(isDistinct, ReturnTypes.explicit(countRetType), operandTypeInference, operandTypeChecker),
false, ImmutableIntList.of(), -1, countRetType, "count");
}
代码示例来源:origin: apache/hive
private RexNode makeCast(SqlTypeName typeName, final RexNode child) {
RelDataType sqlType = cluster.getTypeFactory().createSqlType(typeName);
RelDataType nullableType = cluster.getTypeFactory().createTypeWithNullability(sqlType, true);
return cluster.getRexBuilder().makeCast(nullableType, child);
}
代码示例来源:origin: apache/drill
@Override
public RelDataType getRowType(RelDataTypeFactory typeFactory) {
List<String> names = Lists.newArrayList();
List<RelDataType> types = Lists.newArrayList();
for (ColumnSchema column : schema.getColumns()) {
names.add(column.getName());
RelDataType type = getSqlTypeFromKuduType(typeFactory, column.getType());
type = typeFactory.createTypeWithNullability(type, column.isNullable());
types.add(type);
}
return typeFactory.createStructType(types, names);
}
代码示例来源:origin: apache/flink
nodeType = typeFactory.createTypeWithNullability(nodeType, true);
fieldList.add(Pair.of(alias, nodeType));
代码示例来源:origin: apache/drill
@Override
public AggregateCall other(RelDataTypeFactory typeFactory, AggregateCall e) {
RelDataType countRetType = typeFactory.createTypeWithNullability(typeFactory.createSqlType(SqlTypeName.BIGINT), true);
return AggregateCall.create(
new HiveSqlCountAggFunction(isDistinct, ReturnTypes.explicit(countRetType), operandTypeInference, operandTypeChecker),
false, ImmutableIntList.of(), -1, countRetType, "count");
}
代码示例来源:origin: apache/incubator-druid
/**
* Like RelDataTypeFactory.createSqlTypeWithNullability, but creates types that align best with how Druid
* represents them.
*/
public static RelDataType createSqlTypeWithNullability(
final RelDataTypeFactory typeFactory,
final SqlTypeName typeName,
final boolean nullable
)
{
final RelDataType dataType;
switch (typeName) {
case TIMESTAMP:
// Our timestamps are down to the millisecond (precision = 3).
dataType = typeFactory.createSqlType(typeName, 3);
break;
case CHAR:
case VARCHAR:
dataType = typeFactory.createTypeWithCharsetAndCollation(
typeFactory.createSqlType(typeName),
Calcites.defaultCharset(),
SqlCollation.IMPLICIT
);
break;
default:
dataType = typeFactory.createSqlType(typeName);
}
return typeFactory.createTypeWithNullability(dataType, nullable);
}
代码示例来源:origin: apache/hive
RelNode newProject = RelOptUtil.createProject(aggregate,
ImmutableList.of(rexBuilder.makeCast(
cluster.getTypeFactory().createTypeWithNullability(projExprs.get(0).getType(), true),
projExprs.get(0))),
null, false, relBuilder);
代码示例来源:origin: apache/hive
@Override public RexNode visitInputRef(RexInputRef inputRef) {
if (currentRel instanceof LogicalCorrelate) {
// if this rel references corVar
// and now it needs to be rewritten
// it must have been pulled above the Correlator
// replace the input ref to account for the LHS of the
// Correlator
final int leftInputFieldCount =
((LogicalCorrelate) currentRel).getLeft().getRowType()
.getFieldCount();
RelDataType newType = inputRef.getType();
if (projectPulledAboveLeftCorrelator) {
newType =
typeFactory.createTypeWithNullability(newType, true);
}
int pos = inputRef.getIndex();
RexInputRef newInputRef =
new RexInputRef(leftInputFieldCount + pos, newType);
if ((isCount != null) && isCount.contains(pos)) {
return createCaseExpression(
newInputRef,
rexBuilder.makeExactLiteral(BigDecimal.ZERO),
newInputRef);
} else {
return newInputRef;
}
}
return inputRef;
}
代码示例来源:origin: apache/drill
@Override public RexNode visitInputRef(RexInputRef inputRef) {
if (currentRel instanceof LogicalCorrelate) {
// if this rel references corVar
// and now it needs to be rewritten
// it must have been pulled above the Correlator
// replace the input ref to account for the LHS of the
// Correlator
final int leftInputFieldCount =
((LogicalCorrelate) currentRel).getLeft().getRowType()
.getFieldCount();
RelDataType newType = inputRef.getType();
if (projectPulledAboveLeftCorrelator) {
newType =
typeFactory.createTypeWithNullability(newType, true);
}
int pos = inputRef.getIndex();
RexInputRef newInputRef =
new RexInputRef(leftInputFieldCount + pos, newType);
if ((isCount != null) && isCount.contains(pos)) {
return createCaseExpression(
newInputRef,
rexBuilder.makeExactLiteral(BigDecimal.ZERO),
newInputRef);
} else {
return newInputRef;
}
}
return inputRef;
}
内容来源于网络,如有侵权,请联系作者删除!