Class RemoveRedundantCaseClauses

java.lang.Object
io.trino.sql.ir.optimizer.rule.RemoveRedundantCaseClauses
All Implemented Interfaces:
IrOptimizerRule

public class RemoveRedundantCaseClauses extends Object implements IrOptimizerRule
Remove duplicated and redundant clauses in Case. E.g.,
  • Case([When(a, r1), When(b, r2), When(a, r3)], d) -> Switch([When(a, r1), When(b, r2)], d)
  • Case([When(a, r1), When(true, r2), When(a, r3)], d) -> Switch([When(a, r1)], r2)
  • Case([When(a, r1), When(false, r2), When(a, r3)], d) -> Switch([When(a, r1)], d)
  • Case([When(true, r)], d) -> r
  • Case([When(false, r)], d) -> d