protected DiffRepository getDiffRepos() {
return DiffRepository.lookup(RelOptRulesTest.class);
}
@Test public void testReduceNestedCaseWhen() {
HepProgram preProgram = new HepProgramBuilder()
.build();
HepProgramBuilder builder = new HepProgramBuilder();
builder.addRuleClass(ReduceExpressionsRule.class);
HepPlanner hepPlanner = new HepPlanner(builder.build());
hepPlanner.addRule(ReduceExpressionsRule.FILTER_INSTANCE);
final String sql = "select sal
"
+ "from emp
"
+ "where case when (sal = 1000) then
"
+ "(case when sal = 1000 then null else 1 end is null) else
"
+ "(case when sal = 2000 then null else 1 end is null) end is true";
checkPlanning(tester, preProgram, hepPlanner, sql);
}
|