ignite-sprint-3 - sql

Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/968a3ad3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/968a3ad3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/968a3ad3

Branch: refs/heads/gg-10046
Commit: 968a3ad35b98a6989f0f64003166f977564af713
Parents: 27b6b78
Author: S.Vladykin <[email protected]>
Authored: Thu Apr 9 18:05:57 2015 +0300
Committer: S.Vladykin <[email protected]>
Committed: Thu Apr 9 18:05:57 2015 +0300

----------------------------------------------------------------------
 .../query/h2/sql/GridSqlQueryParser.java        | 24 ++++++++++++++------
 1 file changed, 17 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/968a3ad3/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQueryParser.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQueryParser.java
 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQueryParser.java
index b174d71..3817c1a 100644
--- 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQueryParser.java
+++ 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQueryParser.java
@@ -199,9 +199,7 @@ public class GridSqlQueryParser {
             else if (tbl instanceof TableView) {
                 Query qry = VIEW_QUERY.get((TableView)tbl);
 
-                assert0(qry instanceof Select, qry);
-
-                res = new GridSqlSubquery(parse((Select)qry));
+                res = new GridSqlSubquery(parse(qry));
             }
             else if (tbl instanceof FunctionTable)
                 res = parseExpression(FUNC_EXPR.get((FunctionTable)tbl));
@@ -518,8 +516,18 @@ public class GridSqlQueryParser {
 
             GridSqlFunction res = new GridSqlFunction(null, f.getName());
 
-            for (Expression arg : f.getArgs())
-                res.addChild(parseExpression(arg));
+            if (f.getArgs() != null) {
+                for (Expression arg : f.getArgs()) {
+                    if (arg == null) {
+                        if (f.getFunctionType() != Function.CASE)
+                            throw new IllegalStateException("Function type 
with null arg: " + f.getFunctionType());
+
+                        continue;
+                    }
+
+                    res.addChild(parseExpression(arg));
+                }
+            }
 
             if (f.getFunctionType() == Function.CAST || f.getFunctionType() == 
Function.CONVERT)
                 res.setCastType(new Column(null, f.getType(), 
f.getPrecision(), f.getScale(), f.getDisplaySize())
@@ -535,8 +543,10 @@ public class GridSqlQueryParser {
 
             GridSqlFunction res = new 
GridSqlFunction(alias.getSchema().getName(), f.getName());
 
-            for (Expression arg : f.getArgs())
-                res.addChild(parseExpression(arg));
+            if (f.getArgs() != null) {
+                for (Expression arg : f.getArgs())
+                    res.addChild(parseExpression(arg));
+            }
 
             return res;
         }

Reply via email to