>From Ali Alsuliman <[email protected]>: Attention is currently required from: Shahrzad Shirazi.
Ali Alsuliman has posted comments on this change by Shahrzad Shirazi. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20268?usp=email ) Change subject: [ASTERIXDB-3516][COMP] Adding UPDATE statement ...................................................................... Patch Set 46: (6 comments) File asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/RecordMergeTypeComputer.java: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20268/comment/4e323f9f_c40f349d?usp=email : PS46, Line 134: || (fieldTypes[i].getTypeTag() == ATypeTag.OBJECT && mergeOnTransformRecords && !isTransform)) { I don't see that this condition can ever be true (mergeOnTransformRecords && !isTransform). Based on the flags in the constructor, if mergeOnTransformRecords=true, then it must be the case that isTransform=true also which makes the condition always false File asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/RecordRemoveRecursiveTypeComputer.java: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20268/comment/ff03bcc8_07a3d6ae?usp=email : PS46, Line 37: public class RecordRemoveRecursiveTypeComputer implements IResultTypeComputer { Study/debug this type computer and the other one with different UPDATE examples, then let me know what they are supposed to do. I read the code multiple times, but I could not follow the behavior. File asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordMergeEvaluator.java: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20268/comment/7318f999_f6e3d5b6?usp=email : PS46, Line 65: public class RecordMergeEvaluator extends AbstractScalarEval { I could not follow the behavior change in this class. Study/debug with different UPDATE examples, then let me know what the behavior is and what the new code is doing (and also what it is doing for the normal record-merge if there is any change). https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20268/comment/18b67024_b94f9768?usp=email : PS46, Line 125: if (!isRecordPointablesSet) { Not sure what I am missing, but isn't 'isRecordPointablesSet' always false making this condition always true? https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20268/comment/60f85aab_e99c9f0f?usp=email : PS46, Line 157: leftRecordTypeInfo.reset(leftRecType); You have a single 'leftRecordTypeInfo'. The second time you come to this method via recursion through addFieldToSubRecord(), it is going to reset(leftRecType) and you will lose the information you set in the first call. You need to use a stack keeping multiple entires similar to rbStack. File hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/meta/SubplanRuntimeFactory.java: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20268/comment/5a84bb2f_6a6f4808?usp=email : PS46, Line 317: noTupleOnFailure = true; Remove extra line before -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20268?usp=email To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Change-Id: Ib2d531b7b172b75b9756c7cc9b15dc636641f827 Gerrit-Change-Number: 20268 Gerrit-PatchSet: 46 Gerrit-Owner: Shahrzad Shirazi <[email protected]> Gerrit-Reviewer: Ali Alsuliman <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Attention: Shahrzad Shirazi <[email protected]> Gerrit-Comment-Date: Sun, 23 Nov 2025 16:53:02 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No
