[ 
https://issues.apache.org/jira/browse/CASSANDRA-15269?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sam Tunnicliffe updated CASSANDRA-15269:
----------------------------------------
    Reviewers: Sam Tunnicliffe, Sam Tunnicliffe  (was: Sam Tunnicliffe)
               Sam Tunnicliffe, Sam Tunnicliffe
       Status: Review In Progress  (was: Patch Available)

Sorry for the extremely late feedback on this, I was completely unaware of the 
ticket. Unfortunately, protocol v5 has been finalised so a change like this one 
would need to target v6. 

That said, I'm not really sure that a new exception code is necessary here. 
Technically, what is occurring _is_ a problem with function execution, that 
function being a {{NumericOperationFunction}}, which is a subclass of 
{{OperationFunction}} and ultimately {{AbstractFunction}}. So I don't think the 
{{FUNCTION_FAILURE}} response is actually incorrect. My suggestion would be 
that we fix the class cast exception, perhaps by having {{OEE}} extend {{FEE}, 
{{OperationFcts::getFunctionNameFromOperator}} can be used to obtain a 
{{FunctionName}} for the operation.


> Cassandra fails to process OperationExecutionException which causes 
> ClassCastException
> --------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-15269
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15269
>             Project: Cassandra
>          Issue Type: Bug
>          Components: CQL/Interpreter
>            Reporter: Liudmila Kornilova
>            Assignee: Liudmila Kornilova
>            Priority: Normal
>
> While working on CASSANDRA-15232 I noticed that OperationExecutionException 
> is not processed correctly.
> How to reproduce the issue:
>  1. {{create table d (numerator decimal primary key, denominator decimal);}}
>  2. {{insert into d (numerator, denominator) values 
> (123456789112345678921234567893123456, 2);}}
>  3. {{select numerator % denominator from d;}}
> What happens:
>  1. remainder operation throws ArithmeticException (BigDecimal:1854)
>  2. The exception is wrapped in OperationExecutionException
>  3. ClassCastException appears (OperationExecutionException cannot be cast to 
> FunctionExecutionException at ErrorMessage.java:280)
> What should happen:
> OperationExecutionException with message "the operation 'decimal % decimal' 
> failed: Division impossible" should be delivered to user 
> Note that after fixing CASSANDRA-15232 {{select numerator % denominator from 
> d;}} will produce correct result of remainder operation.
>  Currently I am not aware of other cases when OperationExecutionException may 
> be treated as FunctionExecutionException



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to