Cascading/lingual — pull request #2 by rdelbru (2013-05-16 10:58:25+00:00)
Title: Planner throws exception about Node ARRAY that could not be implemented

A second issue I have encountered. This one seems to come from the eigenbase RelOptPlanner (see part of the stack trace below).
Attached a unit test that exposes the problem (the SQL query in the test does not have much sense per se, but it demonstrates the problem).

```
org.eigenbase.relopt.RelOptPlanner$CannotPlanException: Node [rel#54:Subset#4.ARRAY] could not be implemented; planner state:

Root: rel#54:Subset#4.ARRAY
Original rel:
AbstractConverter(subset=[rel#54:Subset#4.ARRAY], convention=[ARRAY])
ProjectRel(subset=[rel#49:Subset#4.NONE], CITY=[$4], CITY0=[$14], EMPNO=[$10], EMPNO0=[$0])
FilterRel(subset=[rel#47:Subset#3.NONE], condition=[AND(=($3, CAST('M'):JavaType(class java.lang.String) NOT NULL), IS NULL($24))])
JoinRel(subset=[rel#45:Subset#2.NONE], condition=[AND(AND(=($23, CAST('M'):JavaType(class java.lang.String) NOT NULL), =($20, $10)), NOT(CASE(OR(IS NOT NULL($6), IS NOT NULL($26)), AND(AND(AND(IS NOT NULL($6), IS NOT NULL($26)), =($6, $26)), =($4, $24)), AND(OR(IS NULL($1), =($1, CAST('Bob'):JavaType(class java.lang.String) NOT NULL)), OR(IS NULL($21), =($21, CAST('Bob'):JavaType(class java.lang.String) NOT NULL))), =($4, $24), AND(=($1, $21), =($4, $24)), CAST(=(1, 1)):BOOLEAN, null)))], joinType=[left])
JoinRel(subset=[rel#43:Subset#1.NONE], condition=[=($13, CAST('M'):JavaType(class java.lang.String) NOT NULL)], joinType=[inner])
CascadingTableAccessRel(subset=[rel#41:Subset#0.CASCADING], table=[[SALES, EMPS]])
CascadingTableAccessRel(subset=[rel#41:Subset#0.CASCADING], table=[[SALES, EMPS]])
CascadingTableAccessRel(subset=[rel#41:Subset#0.CASCADING], table=[[SALES, EMPS]])
```