List<RelDataTypeField> fields2 = t2.getFieldList(); for (int i = 0; i < fields1.size(); ++i) { if (!sameNamedType( fields1.get(i).getType(), fields2.get(i).getType())) { return false; if (!sameNamedType(comp1, comp2)) { return false;
List<RelDataTypeField> fields2 = t2.getFieldList(); for (int i = 0; i < fields1.size(); ++i) { if (!sameNamedType( fields1.get(i).getType(), fields2.get(i).getType())) { return false; if (!sameNamedType(comp1, comp2)) { return false;
List<RelDataTypeField> fields2 = t2.getFieldList(); for (int i = 0; i < fields1.size(); ++i) { if (!sameNamedType( fields1.get(i).getType(), fields2.get(i).getType())) { return false; if (!sameNamedType(comp1, comp2)) { return false;
private boolean argTypesValid(SqlCallBinding callBinding) { if (callBinding.getOperandCount() < 2) { return true; // nothing to compare } RelDataType firstType = null; for (Ord<SqlNode> operand : Ord.zip(callBinding.operands())) { RelDataType type = callBinding.getValidator().deriveType( callBinding.getScope(), operand.e); if (operand.i == 0) { firstType = type; } else { if (!SqlTypeUtil.sameNamedType(firstType, type)) { return false; } } } return true; }
private boolean argTypesValid(SqlCallBinding callBinding) { if (callBinding.getOperandCount() < 2) { return true; // nothing to compare } RelDataType firstType = null; for (Ord<SqlNode> operand : Ord.zip(callBinding.operands())) { RelDataType type = callBinding.getValidator().deriveType( callBinding.getScope(), operand.e); if (operand.i == 0) { firstType = type; } else { if (!SqlTypeUtil.sameNamedType(firstType, type)) { return false; } } } return true; }
public boolean checkSingleOperandType(SqlCallBinding callBinding, SqlNode node, int iFormalOperand, boolean throwOnFailure) { assert 0 == iFormalOperand; RelDataType type = callBinding.getValidator().deriveType(callBinding.getScope(), node); boolean valid = false; if (type.isStruct() && type.getFieldList().size() == 2) { final RelDataType t0 = type.getFieldList().get(0).getType(); final RelDataType t1 = type.getFieldList().get(1).getType(); if (SqlTypeUtil.isDatetime(t0)) { if (SqlTypeUtil.isDatetime(t1)) { // t0 must be comparable with t1; (DATE, TIMESTAMP) is not valid if (SqlTypeUtil.sameNamedType(t0, t1)) { valid = true; } } else if (SqlTypeUtil.isInterval(t1)) { valid = true; } } } if (!valid && throwOnFailure) { throw callBinding.newValidationSignatureError(); } return valid; }
public boolean checkSingleOperandType(SqlCallBinding callBinding, SqlNode node, int iFormalOperand, boolean throwOnFailure) { assert 0 == iFormalOperand; RelDataType type = callBinding.getValidator().deriveType(callBinding.getScope(), node); boolean valid = false; if (type.isStruct() && type.getFieldList().size() == 2) { final RelDataType t0 = type.getFieldList().get(0).getType(); final RelDataType t1 = type.getFieldList().get(1).getType(); if (SqlTypeUtil.isDatetime(t0)) { if (SqlTypeUtil.isDatetime(t1)) { // t0 must be comparable with t1; (DATE, TIMESTAMP) is not valid if (SqlTypeUtil.sameNamedType(t0, t1)) { valid = true; } } else if (SqlTypeUtil.isInterval(t1)) { valid = true; } } } if (!valid && throwOnFailure) { throw callBinding.newValidationSignatureError(); } return valid; }
final RelDataType t00 = t0.getFieldList().get(0).getType(); final RelDataType t10 = t1.getFieldList().get(0).getType(); if (!SqlTypeUtil.sameNamedType(t00, t10)) { if (throwOnFailure) { throw callBinding.newValidationSignatureError();
final RelDataType t00 = t0.getFieldList().get(0).getType(); final RelDataType t10 = t1.getFieldList().get(0).getType(); if (!SqlTypeUtil.sameNamedType(t00, t10)) { if (throwOnFailure) { throw callBinding.newValidationSignatureError();