julianhyde commented on a change in pull request #2312:
URL: https://github.com/apache/calcite/pull/2312#discussion_r553507779
##########
File path: core/src/main/java/org/apache/calcite/sql/fun/SqlCastFunction.java
##########
@@ -93,6 +95,29 @@ public SqlCastFunction() {
//~ Methods ----------------------------------------------------------------
+ @Override public void validateCall(final SqlCall call, final SqlValidator
validator,
+ final SqlValidatorScope scope,
+ final SqlValidatorScope operandScope) {
+ try {
+ super.validateCall(call, validator, scope, operandScope);
+ } catch (UnsupportedOperationException ex) {
+ assert call.operandCount() == 2;
+ throw validator.newValidationError(call,
+ RESOURCE.cannotCastToType(call.operand(1).toString()));
Review comment:
As I said in the JIRA case, this is not an exceptional case, and
UnsupportedOperationException should not be thrown anywhere along this code
path.
Don't approach this task with the framing 'how do we handle this
exception?', but rather 'how do we make the validator do its job and clearly
identify to the user types that are invalid?'.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]