private boolean areTypesCompatible(RelDataType type1, RelDataType type2) { if (type1.equals(type2)) { return true; } SqlTypeName sqlType1 = type1.getSqlTypeName(); if (sqlType1 != null) { return sqlType1.equals(type2.getSqlTypeName()); } return false; } }
@Override public boolean isValidSqlType(SqlTypeName sqlTypeName) { return SqlTypeName.TIMESTAMP.equals(sqlTypeName); } },
if (SqlTypeName.CHAR.equals(rexLiteral.getType().getSqlTypeName())) { return RexLiteral.stringValue(rexLiteral);
final boolean isLastNullLiteral = start == 0 && (lastNode instanceof RexLiteral) && ((RexLiteral) lastNode).getTypeName().equals(SqlTypeName.NULL);
public RelDataType getRowType(RelDataTypeFactory factory) { List<RelDataType> types = Lists.newArrayList(); List<String> names = Lists.newArrayList(); for (FieldType field : fields) { names.add(field.getName()); RelDataType type; if ( SqlTypeFamily.INTERVAL_YEAR_MONTH == field.getType().getFamily() || SqlTypeFamily.INTERVAL_DAY_TIME == field.getType().getFamily() ) { type = factory.createSqlIntervalType( field.getIntervalQualifier() ); } else if (field.getType().equals(SqlTypeName.ARRAY) || field.getType().equals(SqlTypeName.MAP)) { type = factory.createSqlType(SqlTypeName.ANY); } else if (field.getPrecision() == null && field.getScale() == null) { type = factory.createSqlType(field.getType()); } else if (field.getPrecision() != null && field.getScale() == null) { type = factory.createSqlType(field.getType(), field.getPrecision()); } else { type = factory.createSqlType(field.getType(), field.getPrecision(), field.getScale()); } if (field.getIsNullable()) { types.add(factory.createTypeWithNullability(type, true)); } else { types.add(type); } } return factory.createStructType(types, names); }
if (!type1.getSqlTypeName().equals(type2.getSqlTypeName())) { return false;
for (int i : operandList) { if (prev >= 1) { if (!types[i].getSqlTypeName().equals(types[prev].getSqlTypeName())) { if (!throwOnFailure) { return false;