org.apache.calcite.rel.type.RelDataTypeFactory.createTypeWithNullability()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(8.8k)|赞(0)|评价(0)|浏览(86)

本文整理了Java中org.apache.calcite.rel.type.RelDataTypeFactory.createTypeWithNullability方法的一些代码示例,展示了RelDataTypeFactory.createTypeWithNullability的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RelDataTypeFactory.createTypeWithNullability方法的具体详情如下:
包路径:org.apache.calcite.rel.type.RelDataTypeFactory
类名称:RelDataTypeFactory
方法名:createTypeWithNullability

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;
}

相关文章