public void inferOperandTypes( SqlCallBinding callBinding, RelDataType returnType, RelDataType[] operandTypes) { final RelDataType unknownType = callBinding.getValidator().getUnknownType(); RelDataType knownType = unknownType; for (int i = 1; i < callBinding.getCall().getOperandList().size(); i++) { SqlNode operand = callBinding.getCall().getOperandList().get(i); knownType = callBinding.getValidator().deriveType( callBinding.getScope(), operand); if (!knownType.equals(unknownType)) { break; } } RelDataTypeFactory typeFactory = callBinding.getTypeFactory(); operandTypes[0] = typeFactory.createSqlType(SqlTypeName.BOOLEAN); for (int i = 1; i < operandTypes.length; ++i) { operandTypes[i] = knownType; } } };
public void inferOperandTypes( SqlCallBinding callBinding, RelDataType returnType, RelDataType[] operandTypes) { final RelDataType unknownType = callBinding.getValidator().getUnknownType(); RelDataType knownType = unknownType; for (int i = 1; i < callBinding.getCall().getOperandList().size(); i++) { SqlNode operand = callBinding.getCall().getOperandList().get(i); knownType = callBinding.getValidator().deriveType( callBinding.getScope(), operand); if (!knownType.equals(unknownType)) { break; } } RelDataTypeFactory typeFactory = callBinding.getTypeFactory(); operandTypes[0] = typeFactory.createSqlType(SqlTypeName.BOOLEAN); for (int i = 1; i < operandTypes.length; ++i) { operandTypes[i] = knownType; } } };
public void validateCall( SqlCall call, SqlValidator validator, SqlValidatorScope scope, SqlValidatorScope operandScope) { validator.validateQuery(call, operandScope, validator.getUnknownType()); } }
public void validateCall( SqlCall call, SqlValidator validator, SqlValidatorScope scope, SqlValidatorScope operandScope) { validator.validateQuery(call, operandScope, validator.getUnknownType()); } }
public void validate(SqlValidator validator, SqlValidatorScope scope) { validator.validateQuery(this, scope, validator.getUnknownType()); }
public void validate(SqlValidator validator, SqlValidatorScope scope) { validator.validateQuery(this, scope, validator.getUnknownType()); }
@Override public RexNode visit(SqlCall call) { List<SqlNode> operands = call.getOperandList(); List<RexNode> newOperands = new ArrayList<>(); for (SqlNode node : operands) { newOperands.add(node.accept(this)); } return rexBuilder.makeCall( validator.getUnknownType(), call.getOperator(), newOperands); }
@Override public RexNode visit(SqlCall call) { List<SqlNode> operands = call.getOperandList(); List<RexNode> newOperands = Lists.newArrayList(); for (SqlNode node : operands) { newOperands.add(node.accept(this)); } return rexBuilder.makeCall( validator.getUnknownType(), call.getOperator(), newOperands); }
@Override public RexNode visit(SqlCall call) { List<SqlNode> operands = call.getOperandList(); List<RexNode> newOperands = new ArrayList<>(); for (SqlNode node : operands) { newOperands.add(node.accept(this)); } return rexBuilder.makeCall( validator.getUnknownType(), call.getOperator(), newOperands); }
@Override public RexNode visit(SqlCall call) { List<SqlNode> operands = call.getOperandList(); List<RexNode> newOperands = Lists.newArrayList(); for (SqlNode node : operands) { newOperands.add(node.accept(this)); } return rexBuilder.makeCall( validator.getUnknownType(), call.getOperator(), newOperands); }
RexNode rex = rexBuilder.makeLiteral(id.getSimple()); after = rexBuilder.makeCall(validator.getUnknownType(), operator, ImmutableList.of(rex)); } else {
RexNode rex = rexBuilder.makeLiteral(id.getSimple()); after = rexBuilder.makeCall(validator.getUnknownType(), operator, ImmutableList.of(rex)); } else {
RexNode rex = rexBuilder.makeLiteral(id.getSimple()); after = rexBuilder.makeCall(validator.getUnknownType(), operator, ImmutableList.of(rex)); } else {