diff --git a/core/src/main/java/org/eigenbase/sql/SqlExplain.java b/core/src/main/java/org/eigenbase/sql/SqlExplain.java index 8b8cbe4aa22..871dddc02be 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 @@ */ 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 ------------------------------------------------------------------ /** diff --git a/core/src/main/java/org/eigenbase/sql/SqlOrderBy.java b/core/src/main/java/org/eigenbase/sql/SqlOrderBy.java index 995e9121e2f..9b2579f134c 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 @@ * and replaced with the ORDER_OPERAND of SqlSelect.

*/ 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; diff --git a/core/src/main/java/org/eigenbase/sql/SqlWith.java b/core/src/main/java/org/eigenbase/sql/SqlWith.java index a580274858c..9ff8c016220 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 void unparse( 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,