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

peeyush 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 11bd6f6430 [ASTERIXDB-3302][COMP] Compilation error when creating index
11bd6f6430 is described below

commit 11bd6f64300c2fa9a710ce2beb74a4695b98e2c7
Author: Peeyush Gupta <peeyush.gu...@couchbase.com>
AuthorDate: Tue Nov 7 13:50:48 2023 -0800

    [ASTERIXDB-3302][COMP] Compilation error when creating index
    
    - user model changes: no
    - storage format changes: no
    - interface changes: no
    
    Details:
    Allow index creation on a field having a closed-type when there
    type is provided in the index creation statement as long as
    the type provided is same as their closed-type.
    
    Change-Id: Ie662ce1276fa60493cf0a7623306cb19448a2133
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17930
    Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
    Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
    Reviewed-by: Peeyush Gupta <peeyush.gu...@couchbase.com>
    Reviewed-by: Ali Alsuliman <ali.al.solai...@gmail.com>
---
 .../asterix/app/translator/QueryTranslator.java    | 43 ++++++++++++----------
 .../index-closed-type.000.ddl.sqlpp                | 36 ++++++++++++++++++
 .../index-closed-type.001.update.sqlpp             | 22 +++++++++++
 .../index-closed-type.002.ddl.sqlpp                | 26 +++++++++++++
 .../index-closed-type.003.ddl.sqlpp                | 26 +++++++++++++
 .../index-closed-type.004.ddl.sqlpp                | 26 +++++++++++++
 .../index-closed-type.005.query.sqlpp              | 25 +++++++++++++
 .../index-closed-type.006.query.sqlpp              | 22 +++++++++++
 .../index-closed-type.007.query.sqlpp              | 25 +++++++++++++
 .../index-closed-type.999.ddl.sqlpp                | 20 ++++++++++
 .../index-closed-type/index-closed-type.005.adm    |  2 +
 .../index-closed-type/index-closed-type.006.adm    |  1 +
 .../index-closed-type/index-closed-type.007.adm    |  2 +
 .../src/test/resources/runtimets/sqlpp_queries.xml | 14 +++++--
 14 files changed, 267 insertions(+), 23 deletions(-)

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 f0cc75b210..c2be64f4e3 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
@@ -1409,18 +1409,30 @@ public class QueryTranslator extends 
AbstractLangTranslator implements IStatemen
                         fieldTypeMissable = projectTypeMissable;
                     } else {
                         // the type of the indexed field is explicitly 
specified in the DDL
+                        Map<TypeSignature, IAType> typeMap = 
TypeTranslator.computeTypes(databaseName, dataverseName,
+                                indexName, projectTypeExpr.getType(), 
databaseName, dataverseName, mdTxnCtx);
+                        TypeSignature typeSignature = new 
TypeSignature(databaseName, dataverseName, indexName);
+                        fieldTypePrime = typeMap.get(typeSignature);
+                        // BACK-COMPAT: keep prime type only if we're 
overriding field types
+                        fieldTypeNullable = fieldTypeMissable = false;
+                        overridesFieldTypes = true;
+
                         if (stmtCreateIndex.isEnforced()) {
                             if (!projectTypeExpr.isUnknownable()) {
                                 throw new 
CompilationException(ErrorCode.INDEX_ILLEGAL_ENFORCED_NON_OPTIONAL,
                                         indexedElement.getSourceLocation(),
                                         
LogRedactionUtil.userData(String.valueOf(projectPath)));
                             }
-                            // don't allow creating an enforced index on a 
closed-type field, fields that
-                            // are part of schema get the field type, if it's 
not null, then the field is closed-type
+                            // don't allow creating an enforced index on a 
closed-type field having field type different
+                            // from the closed-type
                             if (isFieldFromSchema) {
-                                throw new 
CompilationException(ErrorCode.INDEX_ILLEGAL_ENFORCED_ON_CLOSED_FIELD,
-                                        indexedElement.getSourceLocation(),
-                                        
LogRedactionUtil.userData(String.valueOf(projectPath)));
+                                if (fieldTypePrime == null) {
+                                    throw new 
CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE,
+                                            
indexedElement.getSourceLocation(), "cannot find type of field");
+                                } else if 
(!projectTypePrime.deepEqual(fieldTypePrime)) {
+                                    throw new 
CompilationException(ErrorCode.TYPE_MISMATCH_GENERIC, sourceLoc,
+                                            projectTypePrime.getTypeTag(), 
fieldTypePrime.getTypeTag());
+                                }
                             }
                         } else {
                             if (indexType != IndexType.BTREE && indexType != 
IndexType.ARRAY) {
@@ -1430,23 +1442,16 @@ public class QueryTranslator extends 
AbstractLangTranslator implements IStatemen
                             if (isFieldFromSchema) {
                                 // allow overriding the type of the 
closed-field only if CAST modifier is used
                                 if (!stmtCreateIndex.hasCastDefaultNull()) {
-                                    throw new 
CompilationException(ErrorCode.COMPILATION_ERROR,
-                                            indexedElement.getSourceLocation(),
-                                            "Typed index on '"
-                                                    + LogRedactionUtil
-                                                            
.userData(RecordUtil.toFullyQualifiedName(projectPath))
-                                                    + "' field could be 
created only for open datatype");
+                                    if (fieldTypePrime == null) {
+                                        throw new 
CompilationException(ErrorCode.COMPILATION_ILLEGAL_STATE,
+                                                
indexedElement.getSourceLocation(), "cannot find type of field");
+                                    } else if 
(!projectTypePrime.deepEqual(fieldTypePrime)) {
+                                        throw new 
CompilationException(ErrorCode.TYPE_MISMATCH_GENERIC, sourceLoc,
+                                                projectTypePrime.getTypeTag(), 
fieldTypePrime.getTypeTag());
+                                    }
                                 }
                             }
                         }
-
-                        Map<TypeSignature, IAType> typeMap = 
TypeTranslator.computeTypes(databaseName, dataverseName,
-                                indexName, projectTypeExpr.getType(), 
databaseName, dataverseName, mdTxnCtx);
-                        TypeSignature typeSignature = new 
TypeSignature(databaseName, dataverseName, indexName);
-                        fieldTypePrime = typeMap.get(typeSignature);
-                        // BACK-COMPAT: keep prime type only if we're 
overriding field types
-                        fieldTypeNullable = fieldTypeMissable = false;
-                        overridesFieldTypes = true;
                     }
 
                     if (fieldTypePrime == null) {
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.000.ddl.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.000.ddl.sqlpp
new file mode 100644
index 0000000000..524db48dcd
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.000.ddl.sqlpp
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+CREATE DATAVERSE test;
+USE test;
+CREATE TYPE t1 AS { id: int, name: string, phone:string };
+
+CREATE DATASET ds1(t1) primary key id;
+CREATE DATASET ds2 primary key (id:int, name:string);
+
+CREATE INDEX idx0 ON ds1(name);
+CREATE INDEX idx1 ON ds1(name: string);
+CREATE INDEX idx2 ON ds1(name: string, id:int);
+CREATE INDEX idx3 ON ds2(name: string);
+CREATE INDEX idx4 ON ds2(phone: string, id:int);
+CREATE INDEX idx5 ON ds2(name);
+CREATE INDEX idx6 ON ds2(phone:string, id);
+CREATE INDEX idx7 ON ds2(name:string?) ENFORCED;
+CREATE INDEX idx8 ON ds1(name:int) CAST (DEFAULT NULL);
+CREATE INDEX idx9 ON ds2(name:int) CAST (DEFAULT NULL);
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.001.update.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.001.update.sqlpp
new file mode 100644
index 0000000000..504477e549
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.001.update.sqlpp
@@ -0,0 +1,22 @@
+/*
+ * 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.
+ */
+
+USE test;
+INSERT INTO ds1 [{"id": 1, "name": "John", "phone":"982819"}, {"id": 2, 
"name": "Jason", "phone":"982819"}];
+INSERT INTO ds2 [{"id": 1, "name": "John", "phone":982819}, {"id": 2, "name": 
"Jason", "phone":"982819"}];
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.002.ddl.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.002.ddl.sqlpp
new file mode 100644
index 0000000000..67d4208174
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.002.ddl.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+/*
+ * Description  : Test secondary indexes bulk load where some tuples have 
malformed values in indexed fields
+ * Expected Res : Said tuples are not indexed
+ */
+
+USE test;
+
+CREATE INDEX idxf1 ON ds1(name: int);
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.003.ddl.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.003.ddl.sqlpp
new file mode 100644
index 0000000000..cc0ae73076
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.003.ddl.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+/*
+ * Description  : Test secondary indexes bulk load where some tuples have 
malformed values in indexed fields
+ * Expected Res : Said tuples are not indexed
+ */
+
+USE test;
+
+CREATE INDEX idxf2 ON ds2(name: int);
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.004.ddl.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.004.ddl.sqlpp
new file mode 100644
index 0000000000..508ec76d52
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.004.ddl.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+/*
+ * Description  : Test secondary indexes bulk load where some tuples have 
malformed values in indexed fields
+ * Expected Res : Said tuples are not indexed
+ */
+
+USE test;
+
+CREATE INDEX idxf2 ON ds1(name: int?) ENFORCED;
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.005.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.005.query.sqlpp
new file mode 100644
index 0000000000..c1a403fc8f
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.005.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * 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.
+ */
+
+USE test;
+
+SET `import-private-functions` `true`;
+FROM DUMP_INDEX("test", "ds2", "idx4") AS v
+SELECT VALUE v
+ORDER BY v.values;
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.006.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.006.query.sqlpp
new file mode 100644
index 0000000000..aad3a3ef2b
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.006.query.sqlpp
@@ -0,0 +1,22 @@
+/*
+ * 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.
+ */
+
+USE test;
+
+SELECT (FROM ds1 SELECT VALUE ds1 ORDER BY id) AS r1, (FROM ds2 SELECT VALUE 
ds2 ORDER BY id) AS r2;
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.007.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.007.query.sqlpp
new file mode 100644
index 0000000000..14f2ebd623
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.007.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * 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.
+ */
+
+USE test;
+
+SET `import-private-functions` `true`;
+FROM DUMP_INDEX("test", "ds1", "idx1") AS v
+SELECT VALUE v
+ORDER BY v.values;
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.999.ddl.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.999.ddl.sqlpp
new file mode 100644
index 0000000000..86a1b59399
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/index-closed-type/index-closed-type.999.ddl.sqlpp
@@ -0,0 +1,20 @@
+/*
+ * 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 DATAVERSE test;
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/index-closed-type/index-closed-type.005.adm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/index-closed-type/index-closed-type.005.adm
new file mode 100644
index 0000000000..cc4f89259b
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/index-closed-type/index-closed-type.005.adm
@@ -0,0 +1,2 @@
+{ "values": [ 1, 1, "John" ] }
+{ "values": [ "982819", 2, 2, "Jason" ] }
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/index-closed-type/index-closed-type.006.adm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/index-closed-type/index-closed-type.006.adm
new file mode 100644
index 0000000000..9a5030412a
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/index-closed-type/index-closed-type.006.adm
@@ -0,0 +1 @@
+{ "r1": [ { "id": 1, "name": "John", "phone": "982819" }, { "id": 2, "name": 
"Jason", "phone": "982819" } ], "r2": [ { "id": 1, "name": "John", "phone": 
982819 }, { "id": 2, "name": "Jason", "phone": "982819" } ] }
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/index-closed-type/index-closed-type.007.adm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/index-closed-type/index-closed-type.007.adm
new file mode 100644
index 0000000000..45fbd093dc
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/index-closed-type/index-closed-type.007.adm
@@ -0,0 +1,2 @@
+{ "values": [ "Jason", 2 ] }
+{ "values": [ "John", 1 ] }
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/sqlpp_queries.xml 
b/asterixdb/asterix-app/src/test/resources/runtimets/sqlpp_queries.xml
index 66286b04cc..c18075d75a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/sqlpp_queries.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/sqlpp_queries.xml
@@ -4402,7 +4402,6 @@
         <expected-error>CAST modifier is only allowed for B-Tree 
indexes</expected-error>
         <expected-error>CAST modifier cannot be specified together with 
ENFORCED</expected-error>
         <expected-error>CAST modifier is used without specifying the type of 
the indexed field</expected-error>
-        <expected-error>Typed index on 'typed_f2' field could be created only 
for open datatype</expected-error>
         <expected-error>Parameter invalid_date cannot be set</expected-error>
       </compilation-unit>
     </test-case>
@@ -4411,6 +4410,14 @@
         <output-dir compare="Text">drop-anonymous-nested-types</output-dir>
       </compilation-unit>
     </test-case>
+    <test-case FilePath="ddl">
+      <compilation-unit name="index-closed-type">
+        <output-dir compare="Text">index-closed-type</output-dir>
+        <expected-error>ASX0037: Type mismatch: expected value of type string, 
but got the value of type bigint</expected-error>
+        <expected-error>ASX0037: Type mismatch: expected value of type string, 
but got the value of type bigint</expected-error>
+        <expected-error>ASX0037: Type mismatch: expected value of type string, 
but got the value of type bigint</expected-error>
+      </compilation-unit>
+    </test-case>
   </test-group>
   <test-group name="dml">
     <test-case FilePath="dml">
@@ -7410,13 +7417,12 @@
       <test-case FilePath="open-index-enforced/error-checking">
         <compilation-unit name="enforced-field-name-collision">
           <output-dir compare="Text">enforced-field-name-collision</output-dir>
-          <expected-error>Cannot create enforced index on '[value]' field. The 
field is closed type.</expected-error>
         </compilation-unit>
       </test-case>
       <test-case FilePath="open-index-enforced/error-checking">
         <compilation-unit name="enforced-field-type-collision">
           <output-dir compare="Text">enforced-field-type-collision</output-dir>
-          <expected-error>Cannot create enforced index on '[value]' field. The 
field is closed type.</expected-error>
+          <expected-error>ASX0037: Type mismatch: expected value of type 
string, but got the value of type integer</expected-error>
         </compilation-unit>
       </test-case>
       <test-case FilePath="open-index-enforced/error-checking">
@@ -7452,7 +7458,7 @@
       <test-case FilePath="open-index-enforced/error-checking">
         <compilation-unit name="object-type-collision">
           <output-dir compare="Text">object-type-collision</output-dir>
-          <expected-error>ASX1051: Cannot create enforced index on '[value]' 
field. The field is closed type.</expected-error>
+          <expected-error>ASX0037: Type mismatch: expected value of type 
string, but got the value of type integer</expected-error>
         </compilation-unit>
       </test-case>
     </test-group>

Reply via email to