>From Peeyush Gupta <peeyush.gu...@couchbase.com>:

Peeyush Gupta has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20010 )


Change subject: [NO ISSUE][COMP] Remove check-unknown for Insert/Upsert on 
datasets with meta part
......................................................................

[NO ISSUE][COMP] Remove check-unknown for Insert/Upsert on datasets with meta 
part

- user model changes: no
- storage format changes: no
- interface changes: no

Ext-ref: MB-67221
Change-Id: I55766c9a334f40efd996e2b453f7237aec739966
---
M 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceDynamicTypeCastRule.java
1 file changed, 25 insertions(+), 1 deletion(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/10/20010/1

diff --git 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceDynamicTypeCastRule.java
 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceDynamicTypeCastRule.java
index a9ad7ce..7ee2636 100644
--- 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceDynamicTypeCastRule.java
+++ 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceDynamicTypeCastRule.java
@@ -27,6 +27,7 @@
 import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.lang.common.util.FunctionUtil;
 import org.apache.asterix.metadata.declared.DataSource;
+import org.apache.asterix.metadata.declared.DatasetDataSource;
 import org.apache.asterix.om.functions.BuiltinFunctions;
 import org.apache.asterix.om.typecomputer.base.TypeCastUtils;
 import org.apache.asterix.om.types.ARecordType;
@@ -165,6 +166,11 @@
             inputRecordType = ((AUnionType) inputRecordType).getActualType();
             checkUnknown = true;
         }
+        boolean hasMetaPart = op instanceof InsertDeleteUpsertOperator
+                && ((DatasetDataSource) ((InsertDeleteUpsertOperator) 
op).getDataSource()).getDataset().hasMetaPart();
+        if (hasMetaPart) {
+            checkUnknown = false;
+        }

         /** see whether the input record type needs to be casted */
         boolean cast = !compatible(requiredRecordType, inputRecordType, op);
@@ -173,7 +179,11 @@
             recordVar = addWrapperFunction(requiredRecordType, recordVar, op, 
context, BuiltinFunctions.CHECK_UNKNOWN);
         }
         if (cast) {
-            addWrapperFunction(requiredRecordType, recordVar, op, context, 
BuiltinFunctions.CAST_TYPE);
+            if (hasMetaPart) {
+                addWrapperFunction(requiredRecordType, recordVar, op, context, 
BuiltinFunctions.CAST_TYPE_LAX);
+            } else {
+                addWrapperFunction(requiredRecordType, recordVar, op, context, 
BuiltinFunctions.CAST_TYPE);
+            }
         }
         return cast || checkUnknown;
     }

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20010
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: ionic
Gerrit-Change-Id: I55766c9a334f40efd996e2b453f7237aec739966
Gerrit-Change-Number: 20010
Gerrit-PatchSet: 1
Gerrit-Owner: Peeyush Gupta <peeyush.gu...@couchbase.com>
Gerrit-MessageType: newchange

Reply via email to