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]


Reply via email to