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,