>From Wail Alkowaileet <[email protected]>: Wail Alkowaileet has submitted this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17692 )
Change subject: [NO ISSUE][OM] Add path creator from a list of field names ...................................................................... [NO ISSUE][OM] Add path creator from a list of field names - user model changes: no - storage format changes: no - interface changes: no Details: Allow to create ARecordType from a list of field names Change-Id: I8d4c29a55e6e89ecbfa3fc6d521a4fb06e866baa Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17692 Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Reviewed-by: Hussain Towaileb <[email protected]> --- M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/utils/ProjectionFiltrationTypeUtil.java 1 file changed, 30 insertions(+), 2 deletions(-) Approvals: Hussain Towaileb: Looks good to me, approved Jenkins: Verified; Verified Objections: Anon. E. Moose #1000171: Violations found diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/utils/ProjectionFiltrationTypeUtil.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/utils/ProjectionFiltrationTypeUtil.java index ab837b8..41c990b 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/utils/ProjectionFiltrationTypeUtil.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/utils/ProjectionFiltrationTypeUtil.java @@ -45,7 +45,7 @@ public static ARecordType getRecordType(List<List<String>> paths) throws AlgebricksException { ARecordType result = EMPTY_TYPE; for (List<String> path : paths) { - ARecordType type = getRecordType(path, "root", 0, BuiltinType.ANY); + ARecordType type = getPathRecordType(path); result = (ARecordType) RecordMergeTypeComputer.merge(result, type); } @@ -58,13 +58,17 @@ ARecordType result = EMPTY_TYPE; for (int i = 0; i < paths.size(); i++) { List<String> path = paths.get(i); - ARecordType type = getRecordType(path, "root", 0, types.get(i)); + ARecordType type = getPathRecordType(path, types.get(i)); result = (ARecordType) RecordMergeTypeComputer.merge(result, type); } return new ARecordType("root", result.getFieldNames(), result.getFieldTypes(), true); } + public static ARecordType getPathRecordType(List<String> path) { + return getRecordType(path, "root", 0, BuiltinType.ANY); + } + /** * Get the expected type for an array index * @@ -98,6 +102,10 @@ return new ARecordType("root", result.getFieldNames(), result.getFieldTypes(), true); } + private static ARecordType getPathRecordType(List<String> path, IAType type) { + return getRecordType(path, "root", 0, type); + } + private static IAType getType(String typeName, List<String> path, int fieldIndex, IAType leafType) { if (fieldIndex == path.size()) { return leafType; -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17692 To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Change-Id: I8d4c29a55e6e89ecbfa3fc6d521a4fb06e866baa Gerrit-Change-Number: 17692 Gerrit-PatchSet: 2 Gerrit-Owner: Wail Alkowaileet <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Hussain Towaileb <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Wail Alkowaileet <[email protected]> Gerrit-MessageType: merged
