>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