You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by sj...@apache.org on 2017/01/16 18:46:51 UTC

[7/7] asterixdb git commit: Change the compilation related Exception

Change the compilation related Exception

 - Change the compilation related Exception from AsterixException to CompilationException
   to meet requirement of the new exception handling proposal.
 - This is an 1:1 string conversion and no errorcode handling part is included.
   That needs to be done gradually when the related  part is changed.

Change-Id: I3ff2bc3b70ad78e53a19ad94d98d17a4469ca4e1
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1437
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Yingyi Bu <bu...@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/e65e6ca4
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/e65e6ca4
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/e65e6ca4

Branch: refs/heads/master
Commit: e65e6ca45d2aa9086712b8a1e08cf290f08209ba
Parents: b29bd73
Author: Taewoo Kim <wa...@yahoo.com>
Authored: Sat Jan 14 17:53:28 2017 -0800
Committer: Steven Jacobs <sj...@ucr.edu>
Committed: Mon Jan 16 10:46:06 2017 -0800

----------------------------------------------------------------------
 .../AqlExpressionToPlanTranslator.java          |  12 +-
 .../AqlPlusExpressionToPlanTranslator.java      | 130 +++++++++----------
 .../LangExpressionToPlanTranslator.java         |  62 ++++-----
 .../SqlppExpressionToPlanTranslator.java        |  40 +++---
 .../translator/TranslationException.java        |   4 +-
 .../asterix-algebra/src/main/javacc/AQLPlus.jj  |   8 +-
 .../apache/asterix/api/common/APIFramework.java |   9 +-
 .../asterix/app/translator/QueryTranslator.java |  73 +++++------
 .../src/test/resources/metadata/testsuite.xml   |   2 +-
 .../src/test/resources/runtimets/testsuite.xml  |  22 ++--
 .../common/exceptions/CompilationException.java |  32 +++++
 .../asterix/lang/aql/clause/DistinctClause.java |   4 +-
 .../asterix/lang/aql/clause/ForClause.java      |   4 +-
 .../asterix/lang/aql/clause/JoinClause.java     |   4 +-
 .../lang/aql/clause/MetaVariableClause.java     |   4 +-
 .../lang/aql/expression/FLWOGRExpression.java   |   4 +-
 .../lang/aql/expression/MetaVariableExpr.java   |   4 +-
 .../asterix/lang/aql/expression/UnionExpr.java  |   4 +-
 .../asterix/lang/aql/parser/FunctionParser.java |   4 +-
 .../lang/aql/rewrites/AqlQueryRewriter.java     |  28 ++--
 .../lang/aql/rewrites/AqlStatementRewriter.java |   6 +-
 .../AqlBuiltinFunctionRewriteVisitor.java       |   6 +-
 .../aql/statement/SubscribeFeedStatement.java   |   6 +-
 .../lang/aql/util/AQLFormatPrintUtil.java       |  14 +-
 .../aql/util/AQLVariableSubstitutionUtil.java   |   4 +-
 .../asterix/lang/aql/util/RangeMapBuilder.java  |  22 ++--
 .../lang/aql/visitor/AQLAstPrintVisitor.java    |  10 +-
 .../AQLCloneAndSubstituteVariablesVisitor.java  |  10 +-
 .../lang/aql/visitor/AQLFormatPrintVisitor.java |  10 +-
 .../lang/aql/visitor/AQLInlineUdfsVisitor.java  |  10 +-
 .../aql/visitor/AQLToSQLPPPrintVisitor.java     |  40 +++---
 .../aql/visitor/base/AbstractAqlAstVisitor.java |  10 +-
 .../AbstractAqlSimpleExpressionVisitor.java     |  54 ++++----
 .../lang/aql/visitor/base/IAQLPlusVisitor.java  |   8 +-
 .../lang/aql/visitor/base/IAQLVisitor.java      |  10 +-
 .../asterix-lang-aql/src/main/javacc/AQL.jj     |  28 ++--
 .../lang/common/base/ILangExpression.java       |   4 +-
 .../asterix/lang/common/base/IParser.java       |   4 +-
 .../lang/common/base/IQueryRewriter.java        |   4 +-
 .../lang/common/base/IStatementRewriter.java    |   4 +-
 .../lang/common/clause/GroupbyClause.java       |   4 +-
 .../asterix/lang/common/clause/LetClause.java   |   4 +-
 .../asterix/lang/common/clause/LimitClause.java |   4 +-
 .../lang/common/clause/OrderbyClause.java       |   4 +-
 .../lang/common/clause/UpdateClause.java        |   4 +-
 .../asterix/lang/common/clause/WhereClause.java |   4 +-
 .../lang/common/expression/CallExpr.java        |   4 +-
 .../lang/common/expression/FieldAccessor.java   |   4 +-
 .../asterix/lang/common/expression/IfExpr.java  |   4 +-
 .../lang/common/expression/IndexAccessor.java   |   4 +-
 .../lang/common/expression/ListConstructor.java |   4 +-
 .../lang/common/expression/LiteralExpr.java     |   4 +-
 .../lang/common/expression/OperatorExpr.java    |   8 +-
 .../expression/OrderedListTypeDefinition.java   |   4 +-
 .../common/expression/QuantifiedExpression.java |   4 +-
 .../common/expression/RecordConstructor.java    |   4 +-
 .../common/expression/RecordTypeDefinition.java |   4 +-
 .../expression/TypeReferenceExpression.java     |   4 +-
 .../lang/common/expression/UnaryExpr.java       |   8 +-
 .../expression/UnorderedListTypeDefinition.java |   4 +-
 .../lang/common/expression/VariableExpr.java    |   4 +-
 .../lang/common/statement/CompactStatement.java |   4 +-
 .../common/statement/ConnectFeedStatement.java  |   4 +-
 .../statement/CreateDataverseStatement.java     |   4 +-
 .../statement/CreateFeedPolicyStatement.java    |   4 +-
 .../common/statement/CreateFeedStatement.java   |   4 +-
 .../statement/CreateFunctionStatement.java      |   4 +-
 .../common/statement/CreateIndexStatement.java  |   4 +-
 .../statement/CreatePrimaryFeedStatement.java   |   4 +-
 .../statement/CreateSecondaryFeedStatement.java |   4 +-
 .../lang/common/statement/DatasetDecl.java      |   4 +-
 .../lang/common/statement/DataverseDecl.java    |   4 +-
 .../statement/DataverseDropStatement.java       |   4 +-
 .../lang/common/statement/DeleteStatement.java  |   4 +-
 .../statement/DisconnectFeedStatement.java      |   4 +-
 .../common/statement/DropDatasetStatement.java  |   4 +-
 .../common/statement/FeedDropStatement.java     |   4 +-
 .../statement/FeedPolicyDropStatement.java      |   4 +-
 .../lang/common/statement/FunctionDecl.java     |   4 +-
 .../common/statement/FunctionDropStatement.java |   4 +-
 .../common/statement/IndexDropStatement.java    |   4 +-
 .../lang/common/statement/InsertStatement.java  |   6 +-
 .../lang/common/statement/LoadStatement.java    |   4 +-
 .../statement/NodeGroupDropStatement.java       |   4 +-
 .../lang/common/statement/NodegroupDecl.java    |   4 +-
 .../asterix/lang/common/statement/Query.java    |   4 +-
 .../RefreshExternalDatasetStatement.java        |   4 +-
 .../lang/common/statement/RunStatement.java     |   4 +-
 .../lang/common/statement/SetStatement.java     |   4 +-
 .../asterix/lang/common/statement/TypeDecl.java |   4 +-
 .../common/statement/TypeDropStatement.java     |   4 +-
 .../lang/common/statement/UpdateStatement.java  |   4 +-
 .../lang/common/statement/WriteStatement.java   |   4 +-
 .../lang/common/util/CommonFunctionMapUtil.java |   5 +-
 .../asterix/lang/common/util/FunctionUtil.java  |  20 +--
 .../util/VariableCloneAndSubstitutionUtil.java  |   7 +-
 .../visitor/AbstractInlineUdfsVisitor.java      |  48 +++----
 .../CloneAndSubstituteVariablesVisitor.java     |  49 +++----
 .../lang/common/visitor/FormatPrintVisitor.java | 102 +++++++--------
 .../visitor/GatherFunctionCallsVisitor.java     |  44 +++----
 .../lang/common/visitor/QueryPrintVisitor.java  |  54 ++++----
 .../common/visitor/base/AbstractAstVisitor.java |  38 +++---
 .../base/AbstractQueryExpressionVisitor.java    |  66 +++++-----
 .../lang/common/visitor/base/ILangVisitor.java  | 102 +++++++--------
 .../asterix/lang/sqlpp/clause/FromClause.java   |   4 +-
 .../asterix/lang/sqlpp/clause/FromTerm.java     |   4 +-
 .../asterix/lang/sqlpp/clause/HavingClause.java |   4 +-
 .../asterix/lang/sqlpp/clause/JoinClause.java   |   4 +-
 .../asterix/lang/sqlpp/clause/NestClause.java   |   4 +-
 .../asterix/lang/sqlpp/clause/Projection.java   |   4 +-
 .../asterix/lang/sqlpp/clause/SelectBlock.java  |   4 +-
 .../asterix/lang/sqlpp/clause/SelectClause.java |   4 +-
 .../lang/sqlpp/clause/SelectElement.java        |   4 +-
 .../lang/sqlpp/clause/SelectRegular.java        |   4 +-
 .../lang/sqlpp/clause/SelectSetOperation.java   |   4 +-
 .../asterix/lang/sqlpp/clause/UnnestClause.java |   4 +-
 .../lang/sqlpp/expression/CaseExpression.java   |   4 +-
 .../sqlpp/expression/IndependentSubquery.java   |   4 +-
 .../lang/sqlpp/expression/SelectExpression.java |   4 +-
 .../lang/sqlpp/parser/FunctionParser.java       |   4 +-
 .../rewrites/SqlppFunctionBodyRewriter.java     |   4 +-
 .../lang/sqlpp/rewrites/SqlppQueryRewriter.java |  60 ++++-----
 .../sqlpp/rewrites/SqlppStatementRewriter.java  |   6 +-
 .../visitor/GenerateColumnNameVisitor.java      |   8 +-
 .../visitor/InlineColumnAliasVisitor.java       |   8 +-
 .../visitor/InlineWithExpressionVisitor.java    |   4 +-
 .../visitor/OperatorExpressionVisitor.java      |  13 +-
 .../rewrites/visitor/SetOperationVisitor.java   |   4 +-
 .../SqlppBuiltinFunctionRewriteVisitor.java     |   8 +-
 .../SqlppGlobalAggregationSugarVisitor.java     |   8 +-
 .../visitor/SqlppGroupBySugarVisitor.java       |   6 +-
 .../rewrites/visitor/SqlppGroupByVisitor.java   |   6 +-
 .../visitor/SqlppInlineUdfsVisitor.java         |  41 +++---
 .../SqlppListInputFunctionRewriteVisitor.java   |   4 +-
 ...uteGroupbyExpressionWithVariableVisitor.java |   8 +-
 .../visitor/VariableCheckAndRewriteVisitor.java |  30 ++---
 .../lang/sqlpp/struct/SetOperationInput.java    |   4 +-
 .../sqlpp/util/ExpressionToVariableUtil.java    |   4 +-
 .../lang/sqlpp/util/FunctionMapUtil.java        |  16 +--
 .../lang/sqlpp/util/SqlppAstPrintUtil.java      |  18 +--
 .../lang/sqlpp/util/SqlppFormatPrintUtil.java   |  18 +--
 .../lang/sqlpp/util/SqlppRewriteUtil.java       |  14 +-
 .../lang/sqlpp/util/SqlppVariableUtil.java      |   4 +-
 .../CheckDatasetOnlyResolutionVisitor.java      |  68 +++++-----
 .../visitor/CheckSql92AggregateVisitor.java     |  72 +++++-----
 .../sqlpp/visitor/CheckSubqueryVisitor.java     |  72 +++++-----
 .../lang/sqlpp/visitor/DeepCopyVisitor.java     |  70 +++++-----
 .../lang/sqlpp/visitor/FreeVariableVisitor.java |  77 +++++------
 .../sqlpp/visitor/SqlppAstPrintVisitor.java     |  36 ++---
 ...SqlppCloneAndSubstituteVariablesVisitor.java |  34 ++---
 .../sqlpp/visitor/SqlppFormatPrintVisitor.java  |  40 +++---
 .../SqlppSubstituteExpressionVisitor.java       |   4 +-
 .../visitor/base/AbstractSqlppAstVisitor.java   |  32 ++---
 .../AbstractSqlppExpressionScopingVisitor.java  |  51 ++++----
 .../AbstractSqlppSimpleExpressionVisitor.java   |  78 +++++------
 .../lang/sqlpp/visitor/base/ISqlppVisitor.java  |  32 ++---
 .../asterix-lang-sqlpp/src/main/javacc/SQLPP.jj |  18 +--
 .../asterix/lang/sqlpp/parser/ParserTest.java   |   4 +-
 .../asterix/lang/extension/EchoStatement.java   |   4 +-
 .../asterix/metadata/MetadataException.java     |   4 +-
 .../metadata/declared/MetadataProvider.java     |  13 +-
 .../metadata/feeds/FeedMetadataUtil.java        |  16 ++-
 162 files changed, 1301 insertions(+), 1259 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb/blob/e65e6ca4/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlExpressionToPlanTranslator.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlExpressionToPlanTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlExpressionToPlanTranslator.java
index 7d1ce7d..110c2b7 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlExpressionToPlanTranslator.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlExpressionToPlanTranslator.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.asterix.algebra.base.ILangExpressionToPlanTranslator;
-import org.apache.asterix.common.exceptions.AsterixException;
+import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.lang.aql.clause.DistinctClause;
 import org.apache.asterix.lang.aql.clause.ForClause;
 import org.apache.asterix.lang.aql.expression.FLWOGRExpression;
@@ -71,7 +71,7 @@ class AqlExpressionToPlanTranslator extends LangExpressionToPlanTranslator imple
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(ForClause fc, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         LogicalVariable v = context.newVar(fc.getVarExpr());
         Expression inExpr = fc.getInExpr();
         Pair<ILogicalExpression, Mutable<ILogicalOperator>> eo = langExprToAlgExpression(inExpr, tupSource);
@@ -91,7 +91,7 @@ class AqlExpressionToPlanTranslator extends LangExpressionToPlanTranslator imple
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(FLWOGRExpression flwor, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Mutable<ILogicalOperator> flworPlan = tupSource;
         boolean isTop = context.isTopFlwor();
         if (!isTop) {
@@ -139,13 +139,13 @@ class AqlExpressionToPlanTranslator extends LangExpressionToPlanTranslator imple
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(Query q, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         return q.getBody().accept(this, tupSource);
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(DistinctClause dc, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         List<Mutable<ILogicalExpression>> exprList = new ArrayList<>();
         Mutable<ILogicalOperator> input = null;
         for (Expression expr : dc.getDistinctByExpr()) {
@@ -160,7 +160,7 @@ class AqlExpressionToPlanTranslator extends LangExpressionToPlanTranslator imple
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(UnionExpr unionExpr, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         List<ILangExpression> inputExprs = new ArrayList<>();
         inputExprs.addAll(unionExpr.getExprs());
         Pair<ILogicalOperator, LogicalVariable> result = translateUnionAllFromInputExprs(inputExprs, tupSource);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/e65e6ca4/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlPlusExpressionToPlanTranslator.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlPlusExpressionToPlanTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlPlusExpressionToPlanTranslator.java
index d9136ac..09d8055 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlPlusExpressionToPlanTranslator.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlPlusExpressionToPlanTranslator.java
@@ -26,7 +26,7 @@ import java.util.Map.Entry;
 import java.util.logging.Logger;
 
 import org.apache.asterix.common.config.DatasetConfig.DatasetType;
-import org.apache.asterix.common.exceptions.AsterixException;
+import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.common.functions.FunctionConstants;
 import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.common.transactions.JobId;
@@ -180,11 +180,11 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
     private class MetaScopeLogicalVariable {
         private HashMap<Identifier, LogicalVariable> map = new HashMap<Identifier, LogicalVariable>();
 
-        public VariableReferenceExpression getVariableReferenceExpression(Identifier id) throws AsterixException {
+        public VariableReferenceExpression getVariableReferenceExpression(Identifier id) throws CompilationException {
             LogicalVariable var = map.get(id);
             LOGGER.fine("get:" + id + ":" + var);
             if (var == null) {
-                throw new AsterixException("Identifier " + id + " not found in AQL+ meta-scope.");
+                throw new CompilationException("Identifier " + id + " not found in AQL+ meta-scope.");
             }
             return new VariableReferenceExpression(var);
         }
@@ -198,10 +198,10 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
     private class MetaScopeILogicalOperator {
         private HashMap<Identifier, ILogicalOperator> map = new HashMap<Identifier, ILogicalOperator>();
 
-        public ILogicalOperator get(Identifier id) throws AsterixException {
+        public ILogicalOperator get(Identifier id) throws CompilationException {
             ILogicalOperator op = map.get(id);
             if (op == null) {
-                throw new AsterixException("Identifier " + id + " not found in AQL+ meta-scope.");
+                throw new CompilationException("Identifier " + id + " not found in AQL+ meta-scope.");
             }
             return op;
         }
@@ -234,12 +234,12 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
         return context.getVarCounter();
     }
 
-    public ILogicalPlan translate(Query expr) throws AlgebricksException, AsterixException {
+    public ILogicalPlan translate(Query expr) throws AlgebricksException, CompilationException {
         return translate(expr, null);
     }
 
     public ILogicalPlan translate(Query expr, MetadataProvider metadata)
-            throws AlgebricksException, AsterixException {
+            throws AlgebricksException, CompilationException {
         IDataFormat format = metadata.getFormat();
         if (format == null) {
             throw new AlgebricksException("Data format has not been set.");
@@ -294,7 +294,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
         return plan;
     }
 
-    public ILogicalPlan translate(List<Clause> clauses) throws AlgebricksException, AsterixException {
+    public ILogicalPlan translate(List<Clause> clauses) throws AlgebricksException, CompilationException {
 
         if (clauses == null) {
             return null;
@@ -318,7 +318,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(ForClause fc, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         LogicalVariable v = context.newVar(fc.getVarExpr());
 
         Expression inExpr = fc.getInExpr();
@@ -339,7 +339,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(LetClause lc, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         LogicalVariable v;
         ILogicalOperator returnedOp;
 
@@ -366,7 +366,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(FLWOGRExpression flwor, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Mutable<ILogicalOperator> flworPlan = tupSource;
         boolean isTop = context.isTopFlwor();
         if (isTop) {
@@ -407,7 +407,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(FieldAccessor fa, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Pair<ILogicalExpression, Mutable<ILogicalOperator>> p = aqlExprToAlgExpression(fa.getExpr(), tupSource);
         LogicalVariable v = context.newVar();
         AbstractFunctionCallExpression fldAccess = new ScalarFunctionCallExpression(
@@ -424,7 +424,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(IndexAccessor ia, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Pair<ILogicalExpression, Mutable<ILogicalOperator>> p = aqlExprToAlgExpression(ia.getExpr(), tupSource);
         LogicalVariable v = context.newVar();
         AbstractFunctionCallExpression f;
@@ -446,7 +446,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(CallExpr fcall, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         LogicalVariable v = context.newVar();
         FunctionSignature signature = fcall.getFunctionSignature();
         List<Mutable<ILogicalExpression>> args = new ArrayList<Mutable<ILogicalExpression>>();
@@ -517,7 +517,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(GroupbyClause gc, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         GroupByOperator gOp = new GroupByOperator();
         Mutable<ILogicalOperator> topOp = tupSource;
         for (GbyVariableExpressionPair ve : gc.getGbyPairList()) {
@@ -570,7 +570,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(IfExpr ifexpr, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         // In the most general case, IfThenElse is translated in the following
         // way.
         //
@@ -633,7 +633,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(OperatorExpr op, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         List<OperatorType> ops = op.getOpList();
         int nOps = ops.size();
 
@@ -711,7 +711,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(OrderbyClause oc, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
 
         OrderOperator ord = new OrderOperator();
         Iterator<OrderModifier> modifIter = oc.getModifierList().iterator();
@@ -736,7 +736,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(QuantifiedExpression qe, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Mutable<ILogicalOperator> topOp = tupSource;
 
         ILogicalOperator firstOp = null;
@@ -790,13 +790,13 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(Query q, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         return q.getBody().accept(this, tupSource);
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(RecordConstructor rc, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         AbstractFunctionCallExpression f = new ScalarFunctionCallExpression(
                 FunctionUtil.getFunctionInfo(BuiltinFunctions.OPEN_RECORD_CONSTRUCTOR));
         LogicalVariable v1 = context.newVar();
@@ -816,7 +816,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(ListConstructor lc, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         FunctionIdentifier fid = (lc.getType() == Type.ORDERED_LIST_CONSTRUCTOR)
                 ? BuiltinFunctions.ORDERED_LIST_CONSTRUCTOR : BuiltinFunctions.UNORDERED_LIST_CONSTRUCTOR;
         AbstractFunctionCallExpression f = new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(fid));
@@ -834,7 +834,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(UnaryExpr u, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Expression expr = u.getExpr();
         Pair<ILogicalExpression, Mutable<ILogicalOperator>> eo = aqlExprToAlgExpression(expr, tupSource);
         LogicalVariable v1 = context.newVar();
@@ -864,7 +864,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(WhereClause w, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Pair<ILogicalExpression, Mutable<ILogicalOperator>> p = aqlExprToAlgExpression(w.getWhereExpr(), tupSource);
         SelectOperator s = new SelectOperator(new MutableObject<ILogicalExpression>(p.first), false, null);
         s.getInputs().add(p.second);
@@ -874,7 +874,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(LimitClause lc, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Pair<ILogicalExpression, Mutable<ILogicalOperator>> p1 = aqlExprToAlgExpression(lc.getLimitExpr(), tupSource);
         LimitOperator opLim;
         Expression offset = lc.getOffset();
@@ -891,7 +891,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(DistinctClause dc, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         List<Mutable<ILogicalExpression>> exprList = new ArrayList<Mutable<ILogicalExpression>>();
         Mutable<ILogicalOperator> input = null;
         for (Expression expr : dc.getDistinctByExpr()) {
@@ -906,7 +906,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(UnionExpr unionExpr, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Mutable<ILogicalOperator> ts = tupSource;
         ILogicalOperator lastOp = null;
         LogicalVariable lastVar = null;
@@ -989,7 +989,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
     }
 
     private AbstractFunctionCallExpression createFunctionCallExpressionForBuiltinOperator(OperatorType t)
-            throws AsterixException {
+            throws CompilationException {
 
         FunctionIdentifier fid = null;
         switch (t) {
@@ -1050,7 +1050,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
     }
 
     private Pair<ILogicalExpression, Mutable<ILogicalOperator>> aqlExprToAlgExpression(Expression expr,
-            Mutable<ILogicalOperator> topOp) throws AsterixException {
+            Mutable<ILogicalOperator> topOp) throws CompilationException {
         switch (expr.getKind()) {
             case VARIABLE_EXPRESSION: {
                 VariableReferenceExpression ve =
@@ -1134,7 +1134,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
     }
 
     private Pair<ILogicalOperator, LogicalVariable> visitAndOrOperator(OperatorExpr op,
-            Mutable<ILogicalOperator> tupSource) throws AsterixException {
+            Mutable<ILogicalOperator> tupSource) throws CompilationException {
         List<OperatorType> ops = op.getOpList();
         int nOps = ops.size();
 
@@ -1182,76 +1182,76 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(TypeDecl td, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(RecordTypeDefinition tre, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(TypeReferenceExpression tre, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(NodegroupDecl ngd, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(LoadStatement stmtLoad, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(DropDatasetStatement del, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(CreateIndexStatement cis, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(OrderedListTypeDefinition olte, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(UnorderedListTypeDefinition ulte,
-            Mutable<ILogicalOperator> arg) throws AsterixException {
+            Mutable<ILogicalOperator> arg) throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visitMetaVariableClause(MetaVariableClause mc,
-            Mutable<ILogicalOperator> tupSource) throws AsterixException {
+            Mutable<ILogicalOperator> tupSource) throws CompilationException {
         return new Pair<ILogicalOperator, LogicalVariable>(metaScopeOp.get(mc.getVar()), null);
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visitJoinClause(JoinClause jc, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         // Pair<ILogicalOperator, LogicalVariable> leftSide =
         // jc.getLeftExpr().accept(this, tupSource);
         Mutable<ILogicalOperator> opRef = tupSource;
@@ -1294,7 +1294,7 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visitMetaVariableExpr(MetaVariableExpr me,
-            Mutable<ILogicalOperator> tupSource) throws AsterixException {
+            Mutable<ILogicalOperator> tupSource) throws CompilationException {
         LogicalVariable var = context.newVar();
         AssignOperator a = new AssignOperator(var,
                 new MutableObject<ILogicalExpression>(metaScopeExp.getVariableReferenceExpression(me.getVar())));
@@ -1335,161 +1335,161 @@ public class AqlPlusExpressionToPlanTranslator extends AbstractLangTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(InsertStatement insert, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(DeleteStatement del, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(UpdateStatement update, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(UpdateClause del, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(DataverseDecl dv, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(DatasetDecl dd, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(SetStatement ss, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(WriteStatement ws, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(CreateDataverseStatement del, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(IndexDropStatement del, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(NodeGroupDropStatement del, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(DataverseDropStatement del, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(TypeDropStatement del, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(DisconnectFeedStatement del, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(CreateFunctionStatement cfs, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(FunctionDropStatement del, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(ConnectFeedStatement del, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(FeedDropStatement del, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(CompactStatement del, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(CreatePrimaryFeedStatement del, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(CreateSecondaryFeedStatement del,
-            Mutable<ILogicalOperator> arg) throws AsterixException {
+            Mutable<ILogicalOperator> arg) throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(CreateFeedPolicyStatement cfps, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(FeedPolicyDropStatement dfs, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         // TODO Auto-generated method stub
         return null;
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/e65e6ca4/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java
index cf722cc..dc1cb65 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java
@@ -32,9 +32,9 @@ import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.asterix.algebra.base.ILangExpressionToPlanTranslator;
 import org.apache.asterix.algebra.operators.CommitOperator;
-import org.apache.asterix.common.config.MetadataProperties;
 import org.apache.asterix.common.config.DatasetConfig.DatasetType;
-import org.apache.asterix.common.exceptions.AsterixException;
+import org.apache.asterix.common.config.MetadataProperties;
+import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.common.functions.FunctionConstants;
 import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.external.util.ExternalDataUtils;
@@ -71,7 +71,6 @@ import org.apache.asterix.lang.common.struct.OperatorType;
 import org.apache.asterix.lang.common.struct.QuantifiedPair;
 import org.apache.asterix.lang.common.util.FunctionUtil;
 import org.apache.asterix.lang.common.visitor.base.AbstractQueryExpressionVisitor;
-import org.apache.asterix.lang.sqlpp.clause.Projection;
 import org.apache.asterix.metadata.MetadataException;
 import org.apache.asterix.metadata.MetadataManager;
 import org.apache.asterix.metadata.declared.DataSource;
@@ -732,7 +731,7 @@ class LangExpressionToPlanTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(LetClause lc, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         LogicalVariable v;
         ILogicalOperator returnedOp;
         if (lc.getBindingExpr().getKind() == Kind.VARIABLE_EXPRESSION) {
@@ -752,7 +751,7 @@ class LangExpressionToPlanTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(FieldAccessor fa, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Pair<ILogicalExpression, Mutable<ILogicalOperator>> p = langExprToAlgExpression(fa.getExpr(), tupSource);
         LogicalVariable v = context.newVar();
         AbstractFunctionCallExpression fldAccess = new ScalarFunctionCallExpression(
@@ -768,7 +767,7 @@ class LangExpressionToPlanTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(IndexAccessor ia, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Pair<ILogicalExpression, Mutable<ILogicalOperator>> p = langExprToAlgExpression(ia.getExpr(), tupSource);
         LogicalVariable v = context.newVar();
         AbstractFunctionCallExpression f;
@@ -790,7 +789,7 @@ class LangExpressionToPlanTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(CallExpr fcall, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         LogicalVariable v = context.newVar();
         FunctionSignature signature = fcall.getFunctionSignature();
         List<Mutable<ILogicalExpression>> args = new ArrayList<>();
@@ -824,7 +823,7 @@ class LangExpressionToPlanTranslator
         }
 
         if (f == null) {
-            throw new AsterixException(" Unknown function " + signature.getName() + "@" + signature.getArity());
+            throw new CompilationException(" Unknown function " + signature.getName() + "@" + signature.getArity());
         }
 
         // Put hints into function call expr.
@@ -902,7 +901,7 @@ class LangExpressionToPlanTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(GroupbyClause gc, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Mutable<ILogicalOperator> topOp = tupSource;
         if (gc.hasGroupVar()) {
             List<Pair<Expression, Identifier>> groupFieldList = gc.getGroupFieldList();
@@ -966,7 +965,7 @@ class LangExpressionToPlanTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(IfExpr ifexpr, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         // In the most general case, IfThenElse is translated in the following
         // way.
         //
@@ -1031,7 +1030,7 @@ class LangExpressionToPlanTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(OperatorExpr op, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         List<OperatorType> ops = op.getOpList();
         int nOps = ops.size();
 
@@ -1113,7 +1112,7 @@ class LangExpressionToPlanTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(OrderbyClause oc, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         OrderOperator ord = new OrderOperator();
         Iterator<OrderModifier> modifIter = oc.getModifierList().iterator();
         Mutable<ILogicalOperator> topOp = tupSource;
@@ -1142,7 +1141,7 @@ class LangExpressionToPlanTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(QuantifiedExpression qe, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Mutable<ILogicalOperator> topOp = tupSource;
 
         ILogicalOperator firstOp = null;
@@ -1195,13 +1194,13 @@ class LangExpressionToPlanTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(Query q, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         return q.getBody().accept(this, tupSource);
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(RecordConstructor rc, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         AbstractFunctionCallExpression f = new ScalarFunctionCallExpression(
                 FunctionUtil.getFunctionInfo(BuiltinFunctions.OPEN_RECORD_CONSTRUCTOR));
         LogicalVariable v1 = context.newVar();
@@ -1221,7 +1220,7 @@ class LangExpressionToPlanTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(ListConstructor lc, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         FunctionIdentifier fid = (lc.getType() == ListConstructor.Type.ORDERED_LIST_CONSTRUCTOR)
                 ? BuiltinFunctions.ORDERED_LIST_CONSTRUCTOR : BuiltinFunctions.UNORDERED_LIST_CONSTRUCTOR;
         AbstractFunctionCallExpression f = new ScalarFunctionCallExpression(FunctionUtil.getFunctionInfo(fid));
@@ -1239,7 +1238,7 @@ class LangExpressionToPlanTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(UnaryExpr u, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Expression expr = u.getExpr();
         Pair<ILogicalExpression, Mutable<ILogicalOperator>> eo = langExprToAlgExpression(expr, tupSource);
         LogicalVariable v1 = context.newVar();
@@ -1261,7 +1260,7 @@ class LangExpressionToPlanTranslator
                 a = processExists(eo.first, v1, true);
                 break;
             default:
-                throw new AsterixException("Unsupported operator: " + u);
+                throw new CompilationException("Unsupported operator: " + u);
         }
         a.getInputs().add(eo.second);
         return new Pair<>(a, v1);
@@ -1279,7 +1278,7 @@ class LangExpressionToPlanTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(WhereClause w, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Pair<ILogicalExpression, Mutable<ILogicalOperator>> p = langExprToAlgExpression(w.getWhereExpr(), tupSource);
         SelectOperator s = new SelectOperator(new MutableObject<>(p.first), false, null);
         s.getInputs().add(p.second);
@@ -1288,7 +1287,7 @@ class LangExpressionToPlanTranslator
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(LimitClause lc, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Pair<ILogicalExpression, Mutable<ILogicalOperator>> p1 = langExprToAlgExpression(lc.getLimitExpr(), tupSource);
         LimitOperator opLim;
         Expression offset = lc.getOffset();
@@ -1329,7 +1328,7 @@ class LangExpressionToPlanTranslator
     }
 
     protected AbstractFunctionCallExpression createFunctionCallExpressionForBuiltinOperator(OperatorType t)
-            throws AsterixException {
+            throws CompilationException {
         FunctionIdentifier fid;
         switch (t) {
             case PLUS:
@@ -1377,7 +1376,7 @@ class LangExpressionToPlanTranslator
     }
 
     protected Pair<ILogicalExpression, Mutable<ILogicalOperator>> langExprToAlgExpression(Expression expr,
-            Mutable<ILogicalOperator> topOpRef) throws AsterixException {
+            Mutable<ILogicalOperator> topOpRef) throws CompilationException {
         switch (expr.getKind()) {
             case VARIABLE_EXPRESSION:
                 VariableReferenceExpression ve = new VariableReferenceExpression(
@@ -1438,7 +1437,7 @@ class LangExpressionToPlanTranslator
     }
 
     protected Pair<ILogicalOperator, LogicalVariable> visitAndOrOperator(OperatorExpr op,
-            Mutable<ILogicalOperator> tupSource) throws AsterixException {
+            Mutable<ILogicalOperator> tupSource) throws CompilationException {
         List<OperatorType> ops = op.getOpList();
         int nOps = ops.size();
 
@@ -1527,9 +1526,9 @@ class LangExpressionToPlanTranslator
      *
      * @param plan,
      *            the query plan.
-     * @throws AsterixException
+     * @throws CompilationException
      */
-    private void eliminateSharedOperatorReferenceForPlan(ILogicalPlan plan) throws AsterixException {
+    private void eliminateSharedOperatorReferenceForPlan(ILogicalPlan plan) throws CompilationException {
         for (Mutable<ILogicalOperator> opRef : plan.getRoots()) {
             Set<Mutable<ILogicalOperator>> opRefSet = new HashSet<>();
             eliminateSharedOperatorReference(opRef, opRefSet);
@@ -1546,10 +1545,11 @@ class LangExpressionToPlanTranslator
      *            the set storing seen operator references so far.
      * @return a mapping that maps old variables to new variables, for the ancestors of
      *         <code>currentOpRef</code> to replace variables properly.
-     * @throws AsterixException
+     * @throws CompilationException
      */
     private LinkedHashMap<LogicalVariable, LogicalVariable> eliminateSharedOperatorReference(
-            Mutable<ILogicalOperator> currentOpRef, Set<Mutable<ILogicalOperator>> opRefSet) throws AsterixException {
+            Mutable<ILogicalOperator> currentOpRef, Set<Mutable<ILogicalOperator>> opRefSet)
+            throws CompilationException {
         try {
             opRefSet.add(currentOpRef);
             AbstractLogicalOperator currentOperator = (AbstractLogicalOperator) currentOpRef.getValue();
@@ -1614,7 +1614,7 @@ class LangExpressionToPlanTranslator
             varMap.values().retainAll(liveVars);
             return varMap;
         } catch (AlgebricksException e) {
-            throw new AsterixException(e);
+            throw new CompilationException(e);
         }
     }
 
@@ -1628,10 +1628,10 @@ class LangExpressionToPlanTranslator
      * @param branchExpression,
      *            the expression to be evaluated in this branch.
      * @return a pair of the constructed subplan operator and the output variable for the branch.
-     * @throws AsterixException
+     * @throws CompilationException
      */
     protected Pair<ILogicalOperator, LogicalVariable> constructSubplanOperatorForBranch(ILogicalOperator inputOp,
-            Mutable<ILogicalExpression> selectExpr, Expression branchExpression) throws AsterixException {
+            Mutable<ILogicalExpression> selectExpr, Expression branchExpression) throws CompilationException {
         context.enterSubplan();
         SubplanOperator subplanOp = new SubplanOperator();
         subplanOp.getInputs().add(new MutableObject<>(inputOp));
@@ -1699,7 +1699,7 @@ class LangExpressionToPlanTranslator
 
     // Generates the plan for "UNION ALL" or union expression from its input expressions.
     protected Pair<ILogicalOperator, LogicalVariable> translateUnionAllFromInputExprs(List<ILangExpression> inputExprs,
-            Mutable<ILogicalOperator> tupSource) throws AsterixException {
+            Mutable<ILogicalOperator> tupSource) throws CompilationException {
         List<Mutable<ILogicalOperator>> inputOpRefsToUnion = new ArrayList<>();
         List<LogicalVariable> vars = new ArrayList<>();
         for (ILangExpression expr : inputExprs) {

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/e65e6ca4/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java
index 5778369..f46613b 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java
@@ -25,7 +25,7 @@ import java.util.Deque;
 import java.util.List;
 
 import org.apache.asterix.algebra.base.ILangExpressionToPlanTranslator;
-import org.apache.asterix.common.exceptions.AsterixException;
+import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.lang.common.base.Clause.ClauseType;
 import org.apache.asterix.lang.common.base.Expression;
 import org.apache.asterix.lang.common.base.Expression.Kind;
@@ -120,7 +120,7 @@ class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTranslator imp
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(Query q, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Expression queryBody = q.getBody();
         if (queryBody.getKind() == Kind.SELECT_EXPRESSION) {
             SelectExpression selectExpr = (SelectExpression) queryBody;
@@ -141,7 +141,7 @@ class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTranslator imp
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(SelectExpression selectExpression,
-            Mutable<ILogicalOperator> tupSource) throws AsterixException {
+            Mutable<ILogicalOperator> tupSource) throws CompilationException {
         if (selectExpression.isSubquery()) {
             context.enterSubplan();
         }
@@ -170,7 +170,7 @@ class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTranslator imp
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(IndependentSubquery independentSubquery,
-            Mutable<ILogicalOperator> tupleSource) throws AsterixException {
+            Mutable<ILogicalOperator> tupleSource) throws CompilationException {
         Pair<ILogicalExpression, Mutable<ILogicalOperator>> eo =
                 langExprToAlgExpression(independentSubquery.getExpr(), tupleSource);
         LogicalVariable var = context.newVar();
@@ -181,7 +181,7 @@ class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTranslator imp
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(SelectSetOperation selectSetOperation,
-            Mutable<ILogicalOperator> tupSource) throws AsterixException {
+            Mutable<ILogicalOperator> tupSource) throws CompilationException {
         SetOperationInput leftInput = selectSetOperation.getLeftInput();
         if (!selectSetOperation.hasRightInputs()) {
             return leftInput.accept(this, tupSource);
@@ -193,7 +193,7 @@ class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTranslator imp
         for (SetOperationRight setOperationRight : selectSetOperation.getRightInputs()) {
             SetOpType setOpType = setOperationRight.getSetOpType();
             if (setOpType != SetOpType.UNION || setOperationRight.isSetSemantics()) {
-                throw new AsterixException("Operation " + setOpType
+                throw new CompilationException("Operation " + setOpType
                         + (setOperationRight.isSetSemantics() ? " with set semantics" : "ALL") + " is not supported.");
             }
             SetOperationInput rightInput = setOperationRight.getSetOperationRightInput();
@@ -206,7 +206,7 @@ class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTranslator imp
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(SelectBlock selectBlock, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Mutable<ILogicalOperator> currentOpRef = tupSource;
         if (selectBlock.hasFromClause()) {
             currentOpRef = new MutableObject<>(selectBlock.getFromClause().accept(this, currentOpRef).first);
@@ -235,7 +235,7 @@ class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTranslator imp
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(FromClause fromClause, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         Mutable<ILogicalOperator> inputSrc = arg;
         Pair<ILogicalOperator, LogicalVariable> topUnnest = null;
         for (FromTerm fromTerm : fromClause.getFromTerms()) {
@@ -247,7 +247,7 @@ class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTranslator imp
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(FromTerm fromTerm, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         LogicalVariable fromVar = context.newVar(fromTerm.getLeftVariable());
         Expression fromExpr = fromTerm.getLeftExpression();
         Pair<ILogicalExpression, Mutable<ILogicalOperator>> eo = langExprToAlgExpression(fromExpr, tupSource);
@@ -283,7 +283,7 @@ class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTranslator imp
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(JoinClause joinClause, Mutable<ILogicalOperator> inputRef)
-            throws AsterixException {
+            throws CompilationException {
         Mutable<ILogicalOperator> leftInputRef = uncorrelatedLeftBranchStack.pop();
         if (joinClause.getJoinType() == JoinType.INNER) {
             Pair<ILogicalOperator, LogicalVariable> rightBranch =
@@ -424,20 +424,20 @@ class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTranslator imp
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(NestClause nestClause, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         throw new NotImplementedException("Nest clause has not been implemented");
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(UnnestClause unnestClause,
-            Mutable<ILogicalOperator> inputOpRef) throws AsterixException {
+            Mutable<ILogicalOperator> inputOpRef) throws CompilationException {
         return generateUnnestForBinaryCorrelateRightBranch(unnestClause, inputOpRef,
                 unnestClause.getJoinType() == JoinType.INNER);
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(HavingClause havingClause, Mutable<ILogicalOperator> tupSource)
-            throws AsterixException {
+            throws CompilationException {
         Pair<ILogicalExpression, Mutable<ILogicalOperator>> p =
                 langExprToAlgExpression(havingClause.getFilterExpression(), tupSource);
         SelectOperator s = new SelectOperator(new MutableObject<ILogicalExpression>(p.first), false, null);
@@ -447,7 +447,7 @@ class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTranslator imp
 
     private Pair<ILogicalOperator, LogicalVariable> generateUnnestForBinaryCorrelateRightBranch(
             AbstractBinaryCorrelateClause binaryCorrelate, Mutable<ILogicalOperator> inputOpRef, boolean innerUnnest)
-            throws AsterixException {
+            throws CompilationException {
         LogicalVariable rightVar = context.newVar(binaryCorrelate.getRightVariable());
         Expression rightExpr = binaryCorrelate.getRightExpression();
         Pair<ILogicalExpression, Mutable<ILogicalOperator>> eo = langExprToAlgExpression(rightExpr, inputOpRef);
@@ -470,31 +470,31 @@ class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTranslator imp
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(SelectClause selectClause, Mutable<ILogicalOperator> tupSrc)
-            throws AsterixException {
+            throws CompilationException {
         throw new UnsupportedOperationException(ERR_MSG);
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(SelectElement selectElement, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         throw new UnsupportedOperationException(ERR_MSG);
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(SelectRegular selectRegular, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         throw new UnsupportedOperationException(ERR_MSG);
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(Projection projection, Mutable<ILogicalOperator> arg)
-            throws AsterixException {
+            throws CompilationException {
         throw new UnsupportedOperationException(ERR_MSG);
     }
 
     @Override
     public Pair<ILogicalOperator, LogicalVariable> visit(CaseExpression caseExpression,
-            Mutable<ILogicalOperator> tupSource) throws AsterixException {
+            Mutable<ILogicalOperator> tupSource) throws CompilationException {
         //Creates a series of subplan operators, one for each branch.
         Mutable<ILogicalOperator> currentOpRef = tupSource;
         ILogicalOperator currentOperator = null;
@@ -597,7 +597,7 @@ class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTranslator imp
 
     // Generates the return expression for a select clause.
     private Pair<ILogicalOperator, LogicalVariable> processSelectClause(SelectBlock selectBlock,
-            Mutable<ILogicalOperator> tupSrc) throws AsterixException {
+            Mutable<ILogicalOperator> tupSrc) throws CompilationException {
         SelectClause selectClause = selectBlock.getSelectClause();
         Expression returnExpr;
         if (selectClause.selectElement()) {

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/e65e6ca4/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TranslationException.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TranslationException.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TranslationException.java
index 53b78bb..0660f23 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TranslationException.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TranslationException.java
@@ -18,9 +18,9 @@
  */
 package org.apache.asterix.translator;
 
-import org.apache.asterix.common.exceptions.AsterixException;
+import org.apache.asterix.common.exceptions.CompilationException;
 
-public class TranslationException extends AsterixException {
+public class TranslationException extends CompilationException {
     private static final long serialVersionUID = 685960054131778068L;
 
     public TranslationException(String msg) {

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/e65e6ca4/asterixdb/asterix-algebra/src/main/javacc/AQLPlus.jj
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-algebra/src/main/javacc/AQLPlus.jj b/asterixdb/asterix-algebra/src/main/javacc/AQLPlus.jj
index 2c991cb..b44e1bc 100644
--- a/asterixdb/asterix-algebra/src/main/javacc/AQLPlus.jj
+++ b/asterixdb/asterix-algebra/src/main/javacc/AQLPlus.jj
@@ -41,7 +41,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.asterix.common.exceptions.AsterixException;
+import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.lang.aql.clause.DistinctClause;
 import org.apache.asterix.lang.aql.clause.ForClause;
@@ -138,7 +138,7 @@ public class AQLPlusParser extends ScopeChecker {
        return s.substring(1).trim();
     }
 
-    public static void main(String args[]) throws ParseException, TokenMgrError, IOException, FileNotFoundException, AsterixException {
+    public static void main(String args[]) throws ParseException, TokenMgrError, IOException, FileNotFoundException, CompilationException {
             File file = new File(args[0]);
             Reader fis = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
             AQLPlusParser parser = new AQLPlusParser(fis);
@@ -703,7 +703,7 @@ Expression MultExpr()throws ParseException:
         Token t = getToken(0);
         try{
           op.addOperator(t.toString());
-        } catch (AsterixException e){
+        } catch (CompilationException e){
           throw new ParseException(e.getMessage());
         }
     }
@@ -750,7 +750,7 @@ Expression UnaryExpr() throws ParseException:
           uexpr = new UnaryExpr();
           try{
             uexpr.setExprType(token.image);
-          } catch (AsterixException e){
+          } catch (CompilationException e){
             throw new ParseException(e.getMessage());
           }
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/e65e6ca4/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java
index 754b7f9..4140f9a 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java
@@ -29,7 +29,6 @@ import java.util.Map;
 import java.util.Random;
 import java.util.Set;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.asterix.algebra.base.ILangExpressionToPlanTranslator;
 import org.apache.asterix.algebra.base.ILangExpressionToPlanTranslatorFactory;
 import org.apache.asterix.api.common.Job.SubmissionMode;
@@ -38,7 +37,7 @@ import org.apache.asterix.common.config.CompilerProperties;
 import org.apache.asterix.common.config.ExternalProperties;
 import org.apache.asterix.common.config.OptimizationConfUtil;
 import org.apache.asterix.common.exceptions.ACIDException;
-import org.apache.asterix.common.exceptions.AsterixException;
+import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.compiler.provider.ILangCompilationProvider;
 import org.apache.asterix.compiler.provider.IRuleSetFactory;
 import org.apache.asterix.dataflow.data.common.ConflictingTypeResolver;
@@ -50,9 +49,9 @@ import org.apache.asterix.formats.base.IDataFormat;
 import org.apache.asterix.jobgen.QueryLogicalExpressionJobGen;
 import org.apache.asterix.lang.common.base.IAstPrintVisitorFactory;
 import org.apache.asterix.lang.common.base.IQueryRewriter;
+import org.apache.asterix.lang.common.base.IReturningStatement;
 import org.apache.asterix.lang.common.base.IRewriterFactory;
 import org.apache.asterix.lang.common.base.Statement;
-import org.apache.asterix.lang.common.base.IReturningStatement;
 import org.apache.asterix.lang.common.rewrites.LangRewritingContext;
 import org.apache.asterix.lang.common.statement.FunctionDecl;
 import org.apache.asterix.lang.common.statement.Query;
@@ -91,6 +90,8 @@ import org.apache.hyracks.api.client.NodeControllerInfo;
 import org.apache.hyracks.api.job.JobId;
 import org.apache.hyracks.api.job.JobSpecification;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+
 /**
  * Provides helper methods for compilation of a query into a JobSpec and submission
  * to Hyracks through the Hyracks client interface.
@@ -145,7 +146,7 @@ public class APIFramework {
     }
 
     public Pair<IReturningStatement, Integer> reWriteQuery(List<FunctionDecl> declaredFunctions,
-            MetadataProvider metadataProvider, IReturningStatement q, SessionConfig conf) throws AsterixException {
+            MetadataProvider metadataProvider, IReturningStatement q, SessionConfig conf) throws CompilationException {
         if (q == null) {
             return null;
         }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/e65e6ca4/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
index 593adb2..f039271 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
@@ -40,7 +40,6 @@ import java.util.Random;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.asterix.active.ActiveJobNotificationHandler;
 import org.apache.asterix.active.ActivityState;
 import org.apache.asterix.active.EntityId;
@@ -55,22 +54,22 @@ import org.apache.asterix.app.result.ResultHandle;
 import org.apache.asterix.app.result.ResultReader;
 import org.apache.asterix.app.result.ResultUtil;
 import org.apache.asterix.common.config.ClusterProperties;
-import org.apache.asterix.common.config.ExternalProperties;
-import org.apache.asterix.common.config.GlobalConfig;
 import org.apache.asterix.common.config.DatasetConfig.DatasetType;
 import org.apache.asterix.common.config.DatasetConfig.ExternalDatasetTransactionState;
 import org.apache.asterix.common.config.DatasetConfig.ExternalFilePendingOp;
 import org.apache.asterix.common.config.DatasetConfig.IndexType;
+import org.apache.asterix.common.config.ExternalProperties;
+import org.apache.asterix.common.config.GlobalConfig;
 import org.apache.asterix.common.exceptions.ACIDException;
-import org.apache.asterix.common.exceptions.AsterixException;
+import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.compiler.provider.ILangCompilationProvider;
 import org.apache.asterix.external.api.IAdapterFactory;
 import org.apache.asterix.external.feed.api.IActiveLifecycleEventSubscriber;
 import org.apache.asterix.external.feed.api.IActiveLifecycleEventSubscriber.ActiveLifecycleEvent;
 import org.apache.asterix.external.feed.api.IFeed;
-import org.apache.asterix.external.feed.api.IFeedJoint;
 import org.apache.asterix.external.feed.api.IFeed.FeedType;
+import org.apache.asterix.external.feed.api.IFeedJoint;
 import org.apache.asterix.external.feed.api.IFeedJoint.FeedJointType;
 import org.apache.asterix.external.feed.management.ActiveLifecycleEventSubscriber;
 import org.apache.asterix.external.feed.management.FeedConnectionId;
@@ -88,10 +87,10 @@ import org.apache.asterix.file.DataverseOperations;
 import org.apache.asterix.file.IndexOperations;
 import org.apache.asterix.formats.nontagged.TypeTraitProvider;
 import org.apache.asterix.lang.aql.statement.SubscribeFeedStatement;
+import org.apache.asterix.lang.common.base.IReturningStatement;
 import org.apache.asterix.lang.common.base.IRewriterFactory;
 import org.apache.asterix.lang.common.base.IStatementRewriter;
 import org.apache.asterix.lang.common.base.Statement;
-import org.apache.asterix.lang.common.base.IReturningStatement;
 import org.apache.asterix.lang.common.expression.TypeExpression;
 import org.apache.asterix.lang.common.statement.CompactStatement;
 import org.apache.asterix.lang.common.statement.ConnectFeedStatement;
@@ -206,9 +205,6 @@ import org.apache.hyracks.api.io.UnmanagedFileSplit;
 import org.apache.hyracks.api.job.JobId;
 import org.apache.hyracks.api.job.JobSpecification;
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory;
-import com.fasterxml.jackson.databind.node.ArrayNode;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
 
 import com.google.common.collect.Lists;
 
@@ -405,7 +401,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
                                 resultSetIdCounter);
                         break;
                     default:
-                        throw new AsterixException("Unknown function");
+                        throw new CompilationException("Unknown function");
                 }
             }
         } finally {
@@ -485,38 +481,38 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
     }
 
     protected void validateCompactionPolicy(String compactionPolicy, Map<String, String> compactionPolicyProperties,
-            MetadataTransactionContext mdTxnCtx, boolean isExternalDataset) throws AsterixException, Exception {
+            MetadataTransactionContext mdTxnCtx, boolean isExternalDataset) throws CompilationException, Exception {
         CompactionPolicy compactionPolicyEntity = MetadataManager.INSTANCE.getCompactionPolicy(mdTxnCtx,
                 MetadataConstants.METADATA_DATAVERSE_NAME, compactionPolicy);
         if (compactionPolicyEntity == null) {
-            throw new AsterixException("Unknown compaction policy: " + compactionPolicy);
+            throw new CompilationException("Unknown compaction policy: " + compactionPolicy);
         }
         String compactionPolicyFactoryClassName = compactionPolicyEntity.getClassName();
         ILSMMergePolicyFactory mergePolicyFactory = (ILSMMergePolicyFactory) Class
                 .forName(compactionPolicyFactoryClassName).newInstance();
         if (isExternalDataset && mergePolicyFactory.getName().compareTo("correlated-prefix") == 0) {
-            throw new AsterixException("The correlated-prefix merge policy cannot be used with external dataset.");
+            throw new CompilationException("The correlated-prefix merge policy cannot be used with external dataset.");
         }
         if (compactionPolicyProperties == null) {
             if (mergePolicyFactory.getName().compareTo("no-merge") != 0) {
-                throw new AsterixException("Compaction policy properties are missing.");
+                throw new CompilationException("Compaction policy properties are missing.");
             }
         } else {
             for (Map.Entry<String, String> entry : compactionPolicyProperties.entrySet()) {
                 if (!mergePolicyFactory.getPropertiesNames().contains(entry.getKey())) {
-                    throw new AsterixException("Invalid compaction policy property: " + entry.getKey());
+                    throw new CompilationException("Invalid compaction policy property: " + entry.getKey());
                 }
             }
             for (String p : mergePolicyFactory.getPropertiesNames()) {
                 if (!compactionPolicyProperties.containsKey(p)) {
-                    throw new AsterixException("Missing compaction policy property: " + p);
+                    throw new CompilationException("Missing compaction policy property: " + p);
                 }
             }
         }
     }
 
     public void handleCreateDatasetStatement(MetadataProvider metadataProvider, Statement stmt,
-            IHyracksClientConnection hcc) throws AsterixException, Exception {
+            IHyracksClientConnection hcc) throws CompilationException, Exception {
         MutableObject<ProgressState> progress = new MutableObject<>(ProgressState.NO_PROGRESS);
         DatasetDecl dd = (DatasetDecl) stmt;
         String dataverseName = getActiveDataverse(dd.getDataverse());
@@ -617,7 +613,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
                             ExternalDatasetTransactionState.COMMIT);
                     break;
                 default:
-                    throw new AsterixException("Unknown datatype " + dd.getDatasetType());
+                    throw new CompilationException("Unknown datatype " + dd.getDatasetType());
             }
 
             // #. initialize DatasetIdFactory if it is not initialized.
@@ -709,7 +705,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
         }
     }
 
-    protected void validateIfResourceIsActiveInFeed(String dataverseName, String datasetName) throws AsterixException {
+    protected void validateIfResourceIsActiveInFeed(String dataverseName, String datasetName)
+            throws CompilationException {
         StringBuilder builder = null;
         IActiveEntityEventsListener[] listeners = ActiveJobNotificationHandler.INSTANCE.getEventListeners();
         for (IActiveEntityEventsListener listener : listeners) {
@@ -721,7 +718,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
             }
         }
         if (builder != null) {
-            throw new AsterixException("Dataset " + dataverseName + "." + datasetName + " is currently being "
+            throw new CompilationException("Dataset " + dataverseName + "." + datasetName + " is currently being "
                     + "fed into by the following active entities.\n" + builder.toString());
         }
     }
@@ -739,7 +736,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
     }
 
     protected String configureNodegroupForDataset(DatasetDecl dd, String dataverse, MetadataTransactionContext mdTxnCtx)
-            throws AsterixException {
+            throws CompilationException {
         int nodegroupCardinality;
         String nodegroupName;
         String hintValue = dd.getHints().get(DatasetNodegroupCardinalityHint.NAME);
@@ -751,7 +748,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
             boolean valid = DatasetHints.validate(DatasetNodegroupCardinalityHint.NAME,
                     dd.getHints().get(DatasetNodegroupCardinalityHint.NAME)).first;
             if (!valid) {
-                throw new AsterixException("Incorrect use of hint:" + DatasetNodegroupCardinalityHint.NAME);
+                throw new CompilationException("Incorrect use of hint:" + DatasetNodegroupCardinalityHint.NAME);
             } else {
                 nodegroupCardinality = Integer.parseInt(dd.getHints().get(DatasetNodegroupCardinalityHint.NAME));
             }
@@ -961,7 +958,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
                     spec = ExternalIndexingOperations.buildFilesIndexReplicationJobSpec(ds, externalFilesSnapshot,
                             metadataProvider, true);
                     if (spec == null) {
-                        throw new AsterixException(
+                        throw new CompilationException(
                                 "Failed to create job spec for replicating Files Index For external dataset");
                     }
                     filesIndexReplicated = true;
@@ -976,7 +973,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
                 for (Index index : indexes) {
                     if (index.getKeyFieldNames().equals(indexFields)
                             && !index.getKeyFieldTypes().equals(indexFieldTypes) && index.isEnforcingKeyFileds()) {
-                        throw new AsterixException("Cannot create index " + indexName + " , enforced index "
+                        throw new CompilationException("Cannot create index " + indexName + " , enforced index "
                                 + index.getIndexName() + " on field \"" + StringUtils.join(indexFields, ',')
                                 + "\" is already defined with type \"" + index.getKeyFieldTypes() + "\"");
                     }
@@ -1001,7 +998,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
             spec = IndexOperations.buildSecondaryIndexCreationJobSpec(cis, aRecordType, metaRecordType,
                     keySourceIndicators, enforcedType, metadataProvider);
             if (spec == null) {
-                throw new AsterixException("Failed to create job spec for creating index '"
+                throw new CompilationException("Failed to create job spec for creating index '"
                         + stmtCreateIndex.getDatasetName() + "." + stmtCreateIndex.getIndexName() + "'");
             }
             MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
@@ -1431,7 +1428,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
             IActiveEntityEventsListener[] activeListeners = ActiveJobNotificationHandler.INSTANCE.getEventListeners();
             for (IActiveEntityEventsListener listener : activeListeners) {
                 if (listener.isEntityUsingDataset(dataverseName, datasetName)) {
-                    throw new AsterixException(
+                    throw new CompilationException(
                             "Can't drop dataset since it is connected to active entity: " + listener.getEntityId());
                 }
             }
@@ -1560,7 +1557,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
                 }
             }
             if (builder != null) {
-                throw new AsterixException("Dataset" + datasetName
+                throw new CompilationException("Dataset" + datasetName
                         + " is currently being fed into by the following active entities: " + builder.toString());
             }
 
@@ -2195,7 +2192,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
                 subscriberRegistered = listener.isFeedConnectionActive(feedConnId, eventSubscriber);
             }
             if (subscriberRegistered) {
-                throw new AsterixException("Feed " + cfs.getFeedName() + " is already connected to dataset "
+                throw new CompilationException("Feed " + cfs.getFeedName() + " is already connected to dataset "
                         + cfs.getDatasetName().getValue());
             }
             FeedPolicyEntity feedPolicy = FeedMetadataUtil.validateIfPolicyExists(dataverseName, cbfs.getPolicyName(),
@@ -2264,11 +2261,11 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
      * @param feedPolicy
      * @param mdTxnCtx
      * @return
-     * @throws AsterixException
+     * @throws CompilationException
      */
     protected Triple<FeedConnectionRequest, Boolean, List<IFeedJoint>> getFeedConnectionRequest(String dataverse,
             Feed feed, String dataset, FeedPolicyEntity feedPolicy, MetadataTransactionContext mdTxnCtx)
-            throws AsterixException {
+            throws CompilationException {
         IFeedJoint sourceFeedJoint;
         FeedConnectionRequest request;
         List<String> functionsToApply = new ArrayList<>();
@@ -2281,7 +2278,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
         FeedEventsListener listener = (FeedEventsListener) ActiveJobNotificationHandler.INSTANCE
                 .getActiveEntityListener(entityId);
         if (listener == null) {
-            throw new AsterixException("Feed Listener is not registered");
+            throw new CompilationException("Feed Listener is not registered");
         }
 
         boolean isFeedJointAvailable = listener.isFeedJointAvailable(feedJointKey);
@@ -2370,7 +2367,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
         FeedEventsListener listener = (FeedEventsListener) ActiveJobNotificationHandler.INSTANCE
                 .getActiveEntityListener(entityId);
         if (listener == null || !listener.isEntityUsingDataset(dataverseName, datasetName)) {
-            throw new AsterixException("Feed " + feed.getFeedId().getEntityName() + " is currently not connected to "
+            throw new CompilationException(
+                    "Feed " + feed.getFeedId().getEntityName() + " is currently not connected to "
                     + cfs.getDatasetName().getValue() + ". Invalid operation!");
         }
         listener.registerFeedEventSubscriber(eventSubscriber);
@@ -2380,7 +2378,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
             Dataset dataset = MetadataManager.INSTANCE.getDataset(metadataProvider.getMetadataTxnContext(),
                     dataverseName, cfs.getDatasetName().getValue());
             if (dataset == null) {
-                throw new AsterixException(
+                throw new CompilationException(
                         "Unknown dataset :" + cfs.getDatasetName().getValue() + " in dataverse " + dataverseName);
             }
             Pair<JobSpecification, Boolean> specDisconnectType = FeedOperations
@@ -2879,7 +2877,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
     }
 
     protected void handleRunStatement(MetadataProvider metadataProvider, Statement stmt,
-            IHyracksClientConnection hcc) throws AsterixException, Exception {
+            IHyracksClientConnection hcc) throws CompilationException, Exception {
         RunStatement runStmt = (RunStatement) stmt;
         switch (runStmt.getSystem()) {
             case "pregel":
@@ -2966,12 +2964,13 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
         // Validates the source/sink dataverses and datasets.
         Dataset fromDataset = metadataProvider.findDataset(dataverseNameFrom, datasetNameFrom);
         if (fromDataset == null) {
-            throw new AsterixException("The source dataset " + datasetNameFrom + " in dataverse " + dataverseNameFrom
+            throw new CompilationException(
+                    "The source dataset " + datasetNameFrom + " in dataverse " + dataverseNameFrom
                     + " could not be found for the Run command");
         }
         Dataset toDataset = metadataProvider.findDataset(dataverseNameTo, datasetNameTo);
         if (toDataset == null) {
-            throw new AsterixException("The sink dataset " + datasetNameTo + " in dataverse " + dataverseNameTo
+            throw new CompilationException("The sink dataset " + datasetNameTo + " in dataverse " + dataverseNameTo
                     + " could not be found for the Run command");
         }
 
@@ -3137,7 +3136,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
         }
     }
 
-    protected void rewriteStatement(Statement stmt) throws AsterixException {
+    protected void rewriteStatement(Statement stmt) throws CompilationException {
         IStatementRewriter rewriter = rewriterFactory.createStatementRewriter();
         rewriter.rewrite(stmt);
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/e65e6ca4/asterixdb/asterix-app/src/test/resources/metadata/testsuite.xml
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/metadata/testsuite.xml b/asterixdb/asterix-app/src/test/resources/metadata/testsuite.xml
index 298c458..a3864e4 100644
--- a/asterixdb/asterix-app/src/test/resources/metadata/testsuite.xml
+++ b/asterixdb/asterix-app/src/test/resources/metadata/testsuite.xml
@@ -336,7 +336,7 @@
     <test-case FilePath="basic">
       <compilation-unit name="issue_1419_drop_type_with_collection_2">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Error: Cannot drop type test.subType being used by type test.superType_superlist</expected-error>
+        <expected-error>Cannot drop type test.subType being used by type test.superType_superlist</expected-error>
       </compilation-unit>
     </test-case>
   </test-group>