You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2014/07/04 02:01:36 UTC

[6/8] git commit: [OPTIQ-322] Add support for SqlExplain, SqlOrderBy and SqlWith to support SqlShuttle use.

[OPTIQ-322] Add support for SqlExplain, SqlOrderBy and SqlWith to support SqlShuttle use.


Project: http://git-wip-us.apache.org/repos/asf/incubator-optiq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-optiq/commit/1df27611
Tree: http://git-wip-us.apache.org/repos/asf/incubator-optiq/tree/1df27611
Diff: http://git-wip-us.apache.org/repos/asf/incubator-optiq/diff/1df27611

Branch: refs/heads/master
Commit: 1df27611c610d409a596ff2041681aea260beb39
Parents: f82c9f5
Author: Jacques Nadeau <ja...@apache.org>
Authored: Wed Jul 2 10:29:07 2014 -0700
Committer: Jacques Nadeau <ja...@apache.org>
Committed: Thu Jul 3 12:21:29 2014 -0700

----------------------------------------------------------------------
 core/src/main/java/org/eigenbase/sql/SqlExplain.java | 10 +++++++++-
 core/src/main/java/org/eigenbase/sql/SqlOrderBy.java |  9 ++++++++-
 core/src/main/java/org/eigenbase/sql/SqlWith.java    |  7 +++++++
 3 files changed, 24 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/1df27611/core/src/main/java/org/eigenbase/sql/SqlExplain.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eigenbase/sql/SqlExplain.java b/core/src/main/java/org/eigenbase/sql/SqlExplain.java
index 8b8cbe4..871dddc 100644
--- a/core/src/main/java/org/eigenbase/sql/SqlExplain.java
+++ b/core/src/main/java/org/eigenbase/sql/SqlExplain.java
@@ -28,7 +28,15 @@ import org.eigenbase.util.ImmutableNullableList;
  */
 public class SqlExplain extends SqlCall {
   public static final SqlSpecialOperator OPERATOR =
-      new SqlSpecialOperator("EXPLAIN", SqlKind.EXPLAIN);
+      new SqlSpecialOperator("EXPLAIN", SqlKind.EXPLAIN) {
+        @Override
+        public SqlCall createCall(SqlLiteral functionQualifier,
+            SqlParserPos pos, SqlNode... operands) {
+          //explicandum, detailLevel, depth, asXml
+          return new SqlExplain(pos, operands[0], (SqlLiteral) operands[1],
+              (SqlLiteral) operands[2], (SqlLiteral) operands[3], 0);
+        }
+      };
   //~ Enums ------------------------------------------------------------------
 
   /**

http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/1df27611/core/src/main/java/org/eigenbase/sql/SqlOrderBy.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eigenbase/sql/SqlOrderBy.java b/core/src/main/java/org/eigenbase/sql/SqlOrderBy.java
index 995e912..9b2579f 100644
--- a/core/src/main/java/org/eigenbase/sql/SqlOrderBy.java
+++ b/core/src/main/java/org/eigenbase/sql/SqlOrderBy.java
@@ -31,7 +31,14 @@ import org.eigenbase.util.ImmutableNullableList;
  * and replaced with the ORDER_OPERAND of SqlSelect.</p>
  */
 public class SqlOrderBy extends SqlCall {
-  public static final SqlSpecialOperator OPERATOR = new Operator();
+  public static final SqlSpecialOperator OPERATOR = new Operator() {
+    @Override
+    public SqlCall createCall(SqlLiteral functionQualifier,
+        SqlParserPos pos, SqlNode... operands) {
+      return new SqlOrderBy(pos, operands[0], (SqlNodeList) operands[1],
+          operands[2], operands[3]);
+    }
+  };
 
   public final SqlNode query;
   public final SqlNodeList orderList;

http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/1df27611/core/src/main/java/org/eigenbase/sql/SqlWith.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eigenbase/sql/SqlWith.java b/core/src/main/java/org/eigenbase/sql/SqlWith.java
index a580274..9ff8c01 100644
--- a/core/src/main/java/org/eigenbase/sql/SqlWith.java
+++ b/core/src/main/java/org/eigenbase/sql/SqlWith.java
@@ -92,6 +92,13 @@ public class SqlWith extends SqlCall {
       writer.endList(frame);
     }
 
+
+    @Override
+    public SqlCall createCall(SqlLiteral functionQualifier, SqlParserPos pos,
+        SqlNode... operands) {
+      return new SqlWith(pos, (SqlNodeList) operands[0], operands[1]);
+    }
+
     @Override public void validateCall(SqlCall call,
         SqlValidator validator,
         SqlValidatorScope scope,