Till Westmann has submitted this change and it was merged. Change subject: ASTERIXDB-1187, ASTERIXDB-1162 and ASTERIXDB-1252 fixes, plus new internal functions ......................................................................
ASTERIXDB-1187, ASTERIXDB-1162 and ASTERIXDB-1252 fixes, plus new internal functions This change contains the following updates and fixes: - New deep-equality function which also handles numeric equality, e.g., [2.0, 2, 1.0] == [2, 2, 1]. - New internal functions for record manipulation, including add and remove fields from records - Fixes for ASTERIXDB-1187: The RecordMergeDescriptor does not fully support open record merge. Merging records with open fields results in "NullPointerException". - Fixes to address issue ASTERIXDB-1162: dealing with closed or partly closed record added to an open record field. - Fixes issue ASTERIXDB-1252: Problems with Autogenerated Key Change-Id: I3621ebdd71c7cd91b50d77a972ad863cea7fcbc2 Reviewed-on: https://asterix-gerrit.ics.uci.edu/298 Tested-by: Jenkins <[email protected]> Reviewed-by: Till Westmann <[email protected]> --- A asterix-app/src/test/resources/runtimets/queries/comparison/deep_equal/DeepEqualQueries.xml A asterix-app/src/test/resources/runtimets/queries/comparison/deep_equal/documentation-example/deep-equal.1.query.aql A asterix-app/src/test/resources/runtimets/queries/comparison/deep_equal/documentation-example/deep-equal.2.query.aql A asterix-app/src/test/resources/runtimets/queries/comparison/deep_equal/documentation-example/deep-equal.3.query.aql A asterix-app/src/test/resources/runtimets/queries/comparison/deep_equal/documentation-example/deep-equal.4.query.aql A asterix-app/src/test/resources/runtimets/queries/comparison/deep_equal/documentation-example/deep-equal.5.query.aql A asterix-app/src/test/resources/runtimets/queries/comparison/deep_equal/open-records-example/deep-equal.1.ddl.aql A asterix-app/src/test/resources/runtimets/queries/comparison/deep_equal/open-records-example/deep-equal.2.update.aql A asterix-app/src/test/resources/runtimets/queries/comparison/deep_equal/open-records-example/deep-equal.3.query.aql M asterix-app/src/test/resources/runtimets/queries/records/RecordsQueries.xml A asterix-app/src/test/resources/runtimets/queries/records/record-add-fields/documentation-example/documentation-example.1.query.aql A asterix-app/src/test/resources/runtimets/queries/records/record-add-fields/documentation-example/documentation-example.2.query.aql A asterix-app/src/test/resources/runtimets/queries/records/record-add-fields/documentation-example/documentation-example.3.query.aql A asterix-app/src/test/resources/runtimets/queries/records/record-add-fields/highly-nested-open/highly-nested-open.1.ddl.aql A asterix-app/src/test/resources/runtimets/queries/records/record-add-fields/highly-nested-open/highly-nested-open.2.update.aql A asterix-app/src/test/resources/runtimets/queries/records/record-add-fields/highly-nested-open/highly-nested-open.3.query.aql A asterix-app/src/test/resources/runtimets/queries/records/record-add-fields/tiny-social-example/tiny-social-example.1.ddl.aql A asterix-app/src/test/resources/runtimets/queries/records/record-add-fields/tiny-social-example/tiny-social-example.2.ddl.aql A asterix-app/src/test/resources/runtimets/queries/records/record-add-fields/tiny-social-example/tiny-social-example.3.update.aql A asterix-app/src/test/resources/runtimets/queries/records/record-add-fields/tiny-social-example/tiny-social-example.4.query.aql A asterix-app/src/test/resources/runtimets/queries/records/record-merge/documentation-example/documentation-example.1.query.aql A asterix-app/src/test/resources/runtimets/queries/records/record-merge/documentation-example/documentation-example.2.query.aql A asterix-app/src/test/resources/runtimets/queries/records/record-merge/documentation-example/documentation-example.3.query.aql A asterix-app/src/test/resources/runtimets/queries/records/record-merge/highly-nested-open/highly-nested-open.1.ddl.aql A asterix-app/src/test/resources/runtimets/queries/records/record-merge/highly-nested-open/highly-nested-open.2.update.aql A asterix-app/src/test/resources/runtimets/queries/records/record-merge/highly-nested-open/highly-nested-open.3.query.aql A asterix-app/src/test/resources/runtimets/queries/records/record-merge/tiny-social-example/tiny-social-example.1.ddl.aql A asterix-app/src/test/resources/runtimets/queries/records/record-merge/tiny-social-example/tiny-social-example.2.ddl.aql A asterix-app/src/test/resources/runtimets/queries/records/record-merge/tiny-social-example/tiny-social-example.3.update.aql A asterix-app/src/test/resources/runtimets/queries/records/record-merge/tiny-social-example/tiny-social-example.4.query.aql A asterix-app/src/test/resources/runtimets/queries/records/record-remove-fields/documentation-example/documentation-example.1.query.aql A asterix-app/src/test/resources/runtimets/queries/records/record-remove-fields/documentation-example/documentation-example.2.query.aql A asterix-app/src/test/resources/runtimets/queries/records/record-remove-fields/documentation-example/documentation-example.3.query.aql A asterix-app/src/test/resources/runtimets/queries/records/record-remove-fields/highly-nested-open/highly-nested-open.1.ddl.aql A asterix-app/src/test/resources/runtimets/queries/records/record-remove-fields/highly-nested-open/highly-nested-open.2.update.aql A asterix-app/src/test/resources/runtimets/queries/records/record-remove-fields/highly-nested-open/highly-nested-open.3.query.aql A asterix-app/src/test/resources/runtimets/queries/records/record-remove-fields/tiny-social-example/tiny-social-example.1.ddl.aql A asterix-app/src/test/resources/runtimets/queries/records/record-remove-fields/tiny-social-example/tiny-social-example.2.ddl.aql A asterix-app/src/test/resources/runtimets/queries/records/record-remove-fields/tiny-social-example/tiny-social-example.3.update.aql A asterix-app/src/test/resources/runtimets/queries/records/record-remove-fields/tiny-social-example/tiny-social-example.4.query.aql A asterix-app/src/test/resources/runtimets/results/comparison/deep_equal/documentation-example/documentation-example.1.adm A asterix-app/src/test/resources/runtimets/results/comparison/deep_equal/documentation-example/documentation-example.2.adm A asterix-app/src/test/resources/runtimets/results/comparison/deep_equal/documentation-example/documentation-example.3.adm A asterix-app/src/test/resources/runtimets/results/comparison/deep_equal/documentation-example/documentation-example.4.adm A asterix-app/src/test/resources/runtimets/results/comparison/deep_equal/documentation-example/documentation-example.5.adm A asterix-app/src/test/resources/runtimets/results/comparison/deep_equal/open-records-example/open-records-example.3.adm A asterix-app/src/test/resources/runtimets/results/records/record-add-fields/documentation-example/documentation-example.1.adm A asterix-app/src/test/resources/runtimets/results/records/record-add-fields/documentation-example/documentation-example.2.adm A asterix-app/src/test/resources/runtimets/results/records/record-add-fields/documentation-example/documentation-example.3.adm A asterix-app/src/test/resources/runtimets/results/records/record-add-fields/highly-nested-open/highly-nested-open.3.adm A asterix-app/src/test/resources/runtimets/results/records/record-add-fields/tiny-social-example/tiny-social-example.4.adm A asterix-app/src/test/resources/runtimets/results/records/record-merge/documentation-example/documentation-example.1.adm A asterix-app/src/test/resources/runtimets/results/records/record-merge/documentation-example/documentation-example.2.adm A asterix-app/src/test/resources/runtimets/results/records/record-merge/documentation-example/documentation-example.3.adm A asterix-app/src/test/resources/runtimets/results/records/record-merge/highly-nested-open/highly-nested-open.3.adm A asterix-app/src/test/resources/runtimets/results/records/record-merge/tiny-social-example/tiny-social-example.4.adm A asterix-app/src/test/resources/runtimets/results/records/record-remove-fields/documentation-example/documentation-example.1.adm A asterix-app/src/test/resources/runtimets/results/records/record-remove-fields/documentation-example/documentation-example.2.adm A asterix-app/src/test/resources/runtimets/results/records/record-remove-fields/documentation-example/documentation-example.3.adm A asterix-app/src/test/resources/runtimets/results/records/record-remove-fields/highly-nested-open/highly-nested-open.3.adm A asterix-app/src/test/resources/runtimets/results/records/record-remove-fields/tiny-social-example/tiny-social-example.4.adm M asterix-app/src/test/resources/runtimets/testsuite.xml M asterix-doc/src/site/markdown/aql/functions.md M asterix-om/src/main/java/org/apache/asterix/builders/IARecordBuilder.java M asterix-om/src/main/java/org/apache/asterix/formats/nontagged/AqlSerializerDeserializerProvider.java M asterix-om/src/main/java/org/apache/asterix/om/functions/AsterixBuiltinFunctions.java M asterix-om/src/main/java/org/apache/asterix/om/pointables/ARecordVisitablePointable.java M asterix-om/src/main/java/org/apache/asterix/om/pointables/cast/ARecordCaster.java A asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/RecordAddFieldsTypeComputer.java M asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/RecordMergeTypeComputer.java A asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/RecordRemoveFieldsTypeComputer.java A asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/TypeComputerUtils.java M asterix-om/src/main/java/org/apache/asterix/om/types/hierachy/ATypeHierarchy.java A asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/comparisons/DeepEqualAssessor.java A asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/DeepEqualityDescriptor.java A asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/PointableHelper.java A asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordAddFieldsDescriptor.java M asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordMergeDescriptor.java A asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordRemoveFieldsDescriptor.java A asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordRemoveFieldsEvalFactory.java A asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/visitors/DeepEqualityVisitor.java A asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/visitors/DeepEqualityVisitorHelper.java A asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/visitors/ListDeepEqualityChecker.java A asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/visitors/RecordDeepEqualityChecker.java M asterix-runtime/src/main/java/org/apache/asterix/runtime/formats/NonTaggedDataFormat.java 85 files changed, 4,219 insertions(+), 517 deletions(-) Approvals: Till Westmann: Looks good to me, approved Jenkins: Verified -- To view, visit https://asterix-gerrit.ics.uci.edu/298 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: merged Gerrit-Change-Id: I3621ebdd71c7cd91b50d77a972ad863cea7fcbc2 Gerrit-PatchSet: 21 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Heri Ramampiaro <[email protected]> Gerrit-Reviewer: Heri Ramampiaro <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Preston Carman <[email protected]> Gerrit-Reviewer: Steven Jacobs <[email protected]> Gerrit-Reviewer: Till Westmann <[email protected]> Gerrit-Reviewer: Yingyi Bu <[email protected]>
