You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by dl...@apache.org on 2020/10/21 15:33:45 UTC

[asterixdb] branch master updated: [NO ISSUE][COMP] Add error codes and source locations

This is an automated email from the ASF dual-hosted git repository.

dlych pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git


The following commit(s) were added to refs/heads/master by this push:
     new a2827d7  [NO ISSUE][COMP] Add error codes and source locations
a2827d7 is described below

commit a2827d730f43156515252061f21d2bd7626a2b8a
Author: Dmitry Lychagin <dm...@couchbase.com>
AuthorDate: Tue Oct 20 14:32:43 2020 -0700

    [NO ISSUE][COMP] Add error codes and source locations
    
    - user model changes: no
    - storage format changes: no
    - interface changes: no
    
    Details:
    - Add error codes and source locations to some compilation errors
    - Add negative testcase for dropping Metadata dataverse
    
    Change-Id: I4d0e7be9df47444a0041245d0726327fbae00e7f
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/8503
    Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Reviewed-by: Dmitry Lychagin <dm...@couchbase.com>
    Reviewed-by: Ali Alsuliman <al...@gmail.com>
    Tested-by: Dmitry Lychagin <dm...@couchbase.com>
---
 .../asterix/translator/AbstractLangTranslator.java | 10 +--
 .../asterix/translator/util/ValidateUtil.java      | 41 ++++++-----
 .../asterix/app/translator/QueryTranslator.java    |  2 +-
 .../exception_drop_dataset.1.ddl.sqlpp             |  2 +-
 .../exception_drop_dataverse.1.ddl.sqlpp           |  2 +-
 .../exception_drop_index.1.ddl.sqlpp               |  6 +-
 .../exception_drop_nodegroup.1.ddl.sqlpp           |  2 +-
 .../exception_drop_system_dataverse.1.ddl.sqlpp}   |  2 +-
 .../exception_drop_type1.1.ddl.sqlpp               |  2 +-
 .../exception_drop_type2.1.ddl.sqlpp               | 19 -----
 .../exception_drop_type3.1.ddl.sqlpp               | 19 -----
 .../src/test/resources/metadata/testsuite.xml      | 80 ++++++++++++++++------
 12 files changed, 98 insertions(+), 89 deletions(-)

diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AbstractLangTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AbstractLangTranslator.java
index b7b464d..cc63560 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AbstractLangTranslator.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AbstractLangTranslator.java
@@ -31,6 +31,7 @@ import org.apache.asterix.common.cluster.IClusterStateManager;
 import org.apache.asterix.common.cluster.IGlobalRecoveryManager;
 import org.apache.asterix.common.dataflow.ICcApplicationContext;
 import org.apache.asterix.common.exceptions.AsterixException;
+import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.common.metadata.DataverseName;
 import org.apache.asterix.lang.common.base.Statement;
@@ -146,7 +147,7 @@ public abstract class AbstractLangTranslator {
                 dataverseName = dvDropStmt.getDataverseName();
                 invalidOperation = MetadataConstants.METADATA_DATAVERSE_NAME.equals(dataverseName);
                 if (invalidOperation) {
-                    message = "Cannot drop dataverse:" + dataverseName;
+                    message = "Cannot drop dataverse: " + dataverseName;
                 }
                 break;
 
@@ -157,7 +158,7 @@ public abstract class AbstractLangTranslator {
                 }
                 invalidOperation = MetadataConstants.METADATA_DATAVERSE_NAME.equals(dataverseName);
                 if (invalidOperation) {
-                    message = "Cannot drop a dataset belonging to the dataverse:"
+                    message = "Cannot drop a dataset belonging to the dataverse: "
                             + MetadataConstants.METADATA_DATAVERSE_NAME;
                 }
                 break;
@@ -182,12 +183,11 @@ public abstract class AbstractLangTranslator {
                     }
                 }
                 break;
-            default:
-                break;
         }
 
         if (invalidOperation) {
-            throw new AsterixException("Invalid operation - " + message);
+            throw new CompilationException(ErrorCode.COMPILATION_ERROR, stmt.getSourceLocation(),
+                    "Invalid operation - " + message);
         }
     }
 }
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java
index 2869313..b32b05e 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java
@@ -22,7 +22,6 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.asterix.common.config.DatasetConfig.IndexType;
-import org.apache.asterix.common.exceptions.AsterixException;
 import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.metadata.utils.KeyFieldTypeUtil;
@@ -193,11 +192,13 @@ public class ValidateUtil {
      *            a map of key types (if provided) that will be validated
      * @param indexType
      *            the type of the index that its key fields is being validated
+     * @param sourceLoc
+     *            the source location
      * @throws AlgebricksException
      */
     public static void validateKeyFields(ARecordType recType, ARecordType metaRecType, List<List<String>> keyFieldNames,
-            List<Integer> keySourceIndicators, List<IAType> keyFieldTypes, IndexType indexType)
-            throws AlgebricksException {
+            List<Integer> keySourceIndicators, List<IAType> keyFieldTypes, IndexType indexType,
+            SourceLocation sourceLoc) throws AlgebricksException {
         List<IAType> fieldTypes =
                 KeyFieldTypeUtil.getKeyTypes(recType, metaRecType, keyFieldNames, keySourceIndicators);
         int pos = 0;
@@ -207,15 +208,16 @@ public class ValidateUtil {
             if (fieldType == null) {
                 fieldType = keyFieldTypes.get(pos);
                 if (keyFieldTypes.get(pos) == BuiltinType.AMISSING) {
-                    throw new AsterixException("A field with this name  \"" + fieldName + "\" could not be found.");
+                    throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc,
+                            "A field with this name  \"" + fieldName + "\" could not be found.");
                 }
             } else if (openFieldCompositeIdx) {
-                throw new AsterixException("A closed field \"" + fieldName
+                throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc, "A closed field \"" + fieldName
                         + "\" could be only in a prefix part of the composite index, containing opened field.");
             }
             if (keyFieldTypes.get(pos) != BuiltinType.AMISSING
                     && fieldType.getTypeTag() != keyFieldTypes.get(pos).getTypeTag()) {
-                throw new AsterixException(
+                throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc,
                         "A field \"" + fieldName + "\" is already defined with the type \"" + fieldType + "\"");
             }
             switch (indexType) {
@@ -238,8 +240,9 @@ public class ValidateUtil {
                         case DAYTIMEDURATION:
                             break;
                         default:
-                            throw new AsterixException("The field \"" + fieldName + "\" which is of type "
-                                    + fieldType.getTypeTag() + " cannot be indexed using the BTree index.");
+                            throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc,
+                                    "The field \"" + fieldName + "\" which is of type " + fieldType.getTypeTag()
+                                            + " cannot be indexed using the BTree index.");
                     }
                     break;
                 case RTREE:
@@ -253,8 +256,9 @@ public class ValidateUtil {
                         case UNION:
                             break;
                         default:
-                            throw new AsterixException("The field \"" + fieldName + "\" which is of type "
-                                    + fieldType.getTypeTag() + " cannot be indexed using the RTree index.");
+                            throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc,
+                                    "The field \"" + fieldName + "\" which is of type " + fieldType.getTypeTag()
+                                            + " cannot be indexed using the RTree index.");
                     }
                     break;
                 case LENGTH_PARTITIONED_NGRAM_INVIX:
@@ -263,7 +267,7 @@ public class ValidateUtil {
                         case UNION:
                             break;
                         default:
-                            throw new AsterixException(
+                            throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc,
                                     "The field \"" + fieldName + "\" which is of type " + fieldType.getTypeTag()
                                             + " cannot be indexed using the Length Partitioned N-Gram index.");
                     }
@@ -276,7 +280,7 @@ public class ValidateUtil {
                         case UNION:
                             break;
                         default:
-                            throw new AsterixException(
+                            throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc,
                                     "The field \"" + fieldName + "\" which is of type " + fieldType.getTypeTag()
                                             + " cannot be indexed using the Length Partitioned Keyword index.");
                     }
@@ -287,8 +291,9 @@ public class ValidateUtil {
                         case UNION:
                             break;
                         default:
-                            throw new AsterixException("The field \"" + fieldName + "\" which is of type "
-                                    + fieldType.getTypeTag() + " cannot be indexed using the N-Gram index.");
+                            throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc,
+                                    "The field \"" + fieldName + "\" which is of type " + fieldType.getTypeTag()
+                                            + " cannot be indexed using the N-Gram index.");
                     }
                     break;
                 case SINGLE_PARTITION_WORD_INVIX:
@@ -299,12 +304,14 @@ public class ValidateUtil {
                         case UNION:
                             break;
                         default:
-                            throw new AsterixException("The field \"" + fieldName + "\" which is of type "
-                                    + fieldType.getTypeTag() + " cannot be indexed using the Keyword index.");
+                            throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc,
+                                    "The field \"" + fieldName + "\" which is of type " + fieldType.getTypeTag()
+                                            + " cannot be indexed using the Keyword index.");
                     }
                     break;
                 default:
-                    throw new AsterixException("Invalid index type: " + indexType + ".");
+                    throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc,
+                            "Invalid index type: " + indexType + ".");
             }
             pos++;
         }
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 256ba2c..5339d94 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
@@ -1380,7 +1380,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
             ARecordType aRecordType, ARecordType metaRecordType, List<List<String>> indexFields,
             List<IAType> indexFieldTypes) throws AlgebricksException {
         ValidateUtil.validateKeyFields(aRecordType, metaRecordType, indexFields, keySourceIndicators, indexFieldTypes,
-                stmtCreateIndex.getIndexType());
+                stmtCreateIndex.getIndexType(), stmtCreateIndex.getSourceLocation());
     }
 
     protected void handleCreateTypeStatement(MetadataProvider metadataProvider, Statement stmt) throws Exception {
diff --git a/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_dataset/exception_drop_dataset.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_dataset/exception_drop_dataset.1.ddl.sqlpp
index 845e6c5..77dfd7d 100644
--- a/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_dataset/exception_drop_dataset.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_dataset/exception_drop_dataset.1.ddl.sqlpp
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-drop dataset DBLP;
+drop dataset UnknownDataset;
diff --git a/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_dataverse/exception_drop_dataverse.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_dataverse/exception_drop_dataverse.1.ddl.sqlpp
index c52588b..6589b66 100644
--- a/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_dataverse/exception_drop_dataverse.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_dataverse/exception_drop_dataverse.1.ddl.sqlpp
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-drop dataverse fuzzyjoin;
+drop dataverse UnknownDataverse;
diff --git a/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_index/exception_drop_index.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_index/exception_drop_index.1.ddl.sqlpp
index 921b7b1..2620bf2 100644
--- a/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_index/exception_drop_index.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_index/exception_drop_index.1.ddl.sqlpp
@@ -16,4 +16,8 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-drop index Cust.ord;
+drop dataverse test if exists;
+create dataverse test;
+use test;
+create dataset t1(id int not unknown) primary key id;
+drop index t1.UnknownIdx;
diff --git a/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_nodegroup/exception_drop_nodegroup.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_nodegroup/exception_drop_nodegroup.1.ddl.sqlpp
index 7404b60..7d7b032 100644
--- a/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_nodegroup/exception_drop_nodegroup.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_nodegroup/exception_drop_nodegroup.1.ddl.sqlpp
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-drop nodegroup group1;
+drop nodegroup UnknownNodeGroup;
diff --git a/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_type1/exception_drop_type1.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_system_dataverse/exception_drop_system_dataverse.1.ddl.sqlpp
similarity index 96%
copy from asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_type1/exception_drop_type1.1.ddl.sqlpp
copy to asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_system_dataverse/exception_drop_system_dataverse.1.ddl.sqlpp
index e4f386b..32b7590 100644
--- a/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_type1/exception_drop_type1.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_system_dataverse/exception_drop_system_dataverse.1.ddl.sqlpp
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-drop type AddressType;
+drop dataverse Metadata;
diff --git a/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_type1/exception_drop_type1.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_type1/exception_drop_type1.1.ddl.sqlpp
index e4f386b..9b8d155 100644
--- a/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_type1/exception_drop_type1.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_type1/exception_drop_type1.1.ddl.sqlpp
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-drop type AddressType;
+drop type UnknownType;
diff --git a/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_type2/exception_drop_type2.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_type2/exception_drop_type2.1.ddl.sqlpp
deleted file mode 100644
index a67cbab..0000000
--- a/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_type2/exception_drop_type2.1.ddl.sqlpp
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-drop type CustomerType;
diff --git a/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_type3/exception_drop_type3.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_type3/exception_drop_type3.1.ddl.sqlpp
deleted file mode 100644
index 21cdbb1..0000000
--- a/asterixdb/asterix-app/src/test/resources/metadata/queries/exception/exception_drop_type3/exception_drop_type3.1.ddl.sqlpp
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-drop type StreetType;
diff --git a/asterixdb/asterix-app/src/test/resources/metadata/testsuite.xml b/asterixdb/asterix-app/src/test/resources/metadata/testsuite.xml
index 616691f..62db526 100644
--- a/asterixdb/asterix-app/src/test/resources/metadata/testsuite.xml
+++ b/asterixdb/asterix-app/src/test/resources/metadata/testsuite.xml
@@ -327,88 +327,124 @@
   </test-group>
   <test-group name="exception">
     <test-case FilePath="exception">
+      <compilation-unit name="exception_drop_dataset">
+        <output-dir compare="Text">none</output-dir>
+        <expected-error>ASX1050: Cannot find dataset with name UnknownDataset in dataverse Default (in line 19, at column 1)</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="exception">
+      <compilation-unit name="exception_drop_dataverse">
+        <output-dir compare="Text">none</output-dir>
+        <expected-error>ASX1063: Cannot find dataverse with name UnknownDataverse (in line 19, at column 1)</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="exception">
+      <compilation-unit name="exception_drop_system_dataverse">
+        <output-dir compare="Text">none</output-dir>
+        <expected-error>ASX1079: Compilation error: Invalid operation - Cannot drop dataverse: Metadata (in line 19, at column 1)</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="exception">
+      <compilation-unit name="exception_drop_index">
+        <output-dir compare="Text">none</output-dir>
+        <expected-error>ASX1083: Cannot find index with name UnknownIdx (in line 23, at column 1)</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="exception">
+      <compilation-unit name="exception_drop_nodegroup">
+        <output-dir compare="Text">none</output-dir>
+        <expected-error>ASX1080: Cannot find node group with name UnknownNodeGroup (in line 19, at column 1)</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="exception">
+      <compilation-unit name="exception_drop_type1">
+        <output-dir compare="Text">none</output-dir>
+        <expected-error>ASX1082: Cannot find datatype with name UnknownType (in line 19, at column 1)</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="exception">
       <compilation-unit name="issue_239_drop_system_dataset_1">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Invalid operation - Cannot drop a dataset belonging to the dataverse:Metadata</expected-error>
+        <expected-error>ASX1079: Compilation error: Invalid operation - Cannot drop a dataset belonging to the dataverse: Metadata (in line 26, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_239_drop_system_dataset_2">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Invalid operation - Cannot drop a dataset belonging to the dataverse:Metadata</expected-error>
+        <expected-error>ASX1079: Compilation error: Invalid operation - Cannot drop a dataset belonging to the dataverse: Metadata (in line 26, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_239_drop_system_dataset_3">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Invalid operation - Cannot drop a dataset belonging to the dataverse:Metadata</expected-error>
+        <expected-error>ASX1079: Compilation error: Invalid operation - Cannot drop a dataset belonging to the dataverse: Metadata (in line 26, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_239_drop_system_dataset_4">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Invalid operation - Cannot drop a dataset belonging to the dataverse:Metadata</expected-error>
+        <expected-error>ASX1079: Compilation error: Invalid operation - Cannot drop a dataset belonging to the dataverse: Metadata (in line 26, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_239_drop_system_dataset_5">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Invalid operation - Cannot drop a dataset belonging to the dataverse:Metadata</expected-error>
+        <expected-error>ASX1079: Compilation error: Invalid operation - Cannot drop a dataset belonging to the dataverse: Metadata (in line 26, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_239_drop_system_dataset_6">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Invalid operation - Cannot drop a dataset belonging to the dataverse:Metadata</expected-error>
+        <expected-error>ASX1079: Compilation error: Invalid operation - Cannot drop a dataset belonging to the dataverse: Metadata (in line 26, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_239_drop_system_dataset_7">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Invalid operation - Cannot drop a dataset belonging to the dataverse:Metadata</expected-error>
+        <expected-error>ASX1079: Compilation error: Invalid operation - Cannot drop a dataset belonging to the dataverse: Metadata (in line 26, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_239_drop_system_dataset_8">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Invalid operation - Cannot drop a dataset belonging to the dataverse:Metadata</expected-error>
+        <expected-error>ASX1079: Compilation error: Invalid operation - Cannot drop a dataset belonging to the dataverse: Metadata (in line 26, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_251_dataset_hint_error_1">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Invalid operation - Dataset: Book error in processing hint: TUPLE_SIZE Unknown hint</expected-error>
+        <expected-error>ASX1079: Compilation error: Invalid operation - Dataset: Book error in processing hint: TUPLE_SIZE Unknown hint</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_251_dataset_hint_error_2">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Invalid operation - Dataset: Book error in processing hint: SIZE Unknown hint</expected-error>
+        <expected-error>ASX1079: Compilation error: Invalid operation - Dataset: Book error in processing hint: SIZE Unknown hint</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_272_create_index_error_1">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Cannot find dataset with name Foo in dataverse test</expected-error>
+        <expected-error>ASX1050: Cannot find dataset with name Foo in dataverse test (in line 30, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_272_create_index_error_2">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Cannot find dataset with name Foo in dataverse test</expected-error>
+        <expected-error> ASX1050: Cannot find dataset with name Foo in dataverse test (in line 31, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <!-- This case should be fixed to return a proper message rather than NPE -->
     <test-case FilePath="exception">
       <compilation-unit name="issue_255_create_dataset_error_1">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Field "name" is not found</expected-error>
+        <expected-error>ASX1014: Field "name" is not found (in line 34, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_255_create_dataset_error_2">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Field of type object cannot be used as a primary key field</expected-error>
+        <expected-error>ASX1022: Field of type object cannot be used as a primary key field (in line 39, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <!-- Feed datasets are not supported anymore
@@ -422,49 +458,49 @@
     <test-case FilePath="exception">
       <compilation-unit name="issue_266_create_dataset_error_1">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Field "point" is not found</expected-error>
+        <expected-error>ASX1014: Field "point" is not found (in line 34, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_266_create_dataset_error_2">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>The primary key field "id" cannot be nullable</expected-error>
+        <expected-error>ASX1021: The primary key field "id" cannot be nullable (in line 34, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_384_create_index_error_1">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>The field "[loc]" which is of type point cannot be indexed using the BTree index.</expected-error>
+        <expected-error>ASX1079: Compilation error: The field "[loc]" which is of type point cannot be indexed using the BTree index. (in line 37, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_384_create_index_error_2">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>The field "[age]" which is of type integer cannot be indexed using the RTree index.</expected-error>
+        <expected-error>ASX1079: Compilation error: The field "[age]" which is of type integer cannot be indexed using the RTree index. (in line 37, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_384_create_index_error_3">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>The field "[loc]" which is of type point cannot be indexed using the Length Partitioned Keyword index.</expected-error>
+        <expected-error>ASX1079: Compilation error: The field "[loc]" which is of type point cannot be indexed using the Length Partitioned Keyword index. (in line 37, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_384_create_index_error_4">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>The field "[loc]" which is of type point cannot be indexed using the Length Partitioned Keyword index.</expected-error>
+        <expected-error>ASX1079: Compilation error: The field "[loc]" which is of type point cannot be indexed using the Length Partitioned Keyword index. (in line 37, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_384_create_index_error_5">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>The field "[loc]" which is of type point cannot be indexed using the Length Partitioned N-Gram index.</expected-error>
+        <expected-error>ASX1079: Compilation error: The field "[loc]" which is of type point cannot be indexed using the Length Partitioned N-Gram index. (in line 37, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_384_create_index_error_6">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>The field "[loc]" which is of type point cannot be indexed using the Length Partitioned N-Gram index.</expected-error>
+        <expected-error>ASX1079: Compilation error: The field "[loc]" which is of type point cannot be indexed using the Length Partitioned N-Gram index. (in line 37, at column 1)</expected-error>
       </compilation-unit>
     </test-case>
   </test-group>