Skip to content

SQL: division by zero even if conditional function should have protected from this #49388

Closed
@astefan

Description

@astefan

SELECT CASE WHEN languages = 0 THEN NULL ELSE (salary / languages) END FROM test_emp

results in

java.lang.ArithmeticException: / by zero
        at org.elasticsearch.xpack.sql.expression.predicate.operator.arithmetic.Arithmetics.div(Arithmetics.java:113) ~[?:?]
        at org.elasticsearch.xpack.sql.expression.predicate.operator.arithmetic.BinaryArithmeticProcessor$NumericArithmetic.wrap(BinaryArithmeticProcessor.java:29) ~[?:?]
        at org.elasticsearch.xpack.sql.expression.predicate.operator.arithmetic.BinaryArithmeticProcessor$BinaryArithmeticOperation.doApply(BinaryArithmeticProcessor.java:131) ~[?:?]
        at org.elasticsearch.xpack.sql.expression.predicate.PredicateBiFunction.apply(PredicateBiFunction.java:24) ~[?:?]
        at org.elasticsearch.xpack.sql.expression.predicate.operator.arithmetic.BinaryArithmeticProcessor.doProcess(BinaryArithmeticProcessor.java:176) ~[?:?]
        at org.elasticsearch.xpack.sql.expression.gen.processor.BinaryProcessor.process(BinaryProcessor.java:50) ~[?:?]
        at org.elasticsearch.xpack.sql.expression.predicate.conditional.CaseProcessor.process(CaseProcessor.java:45) ~[?:?]
        at org.elasticsearch.xpack.sql.execution.search.extractor.ComputingExtractor.extract(ComputingExtractor.java:78) ~[?:?]
        at org.elasticsearch.xpack.sql.execution.search.SearchHitRowSet.extractValue(SearchHitRowSet.java:128) ~[?:?]
        at org.elasticsearch.xpack.sql.execution.search.SearchHitRowSet.extractValue(SearchHitRowSet.java:31) ~[?:?]
        at org.elasticsearch.xpack.sql.execution.search.ResultRowSet.getColumn(ResultRowSet.java:37) ~[?:?]

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions