HIVE-17588: LlapRowRecordReader doing name-based field lookup for every column of every row (Jason Dere, reviewed by Prasanth Jayachandran)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/3cec82ea Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/3cec82ea Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/3cec82ea Branch: refs/heads/hive-14535 Commit: 3cec82eaa724df59df77c1bbed397395b3a99785 Parents: 1d23158 Author: Jason Dere <[email protected]> Authored: Wed Sep 27 16:14:47 2017 -0700 Committer: Jason Dere <[email protected]> Committed: Wed Sep 27 16:14:47 2017 -0700 ---------------------------------------------------------------------- .../java/org/apache/hadoop/hive/llap/LlapRowRecordReader.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/3cec82ea/llap-client/src/java/org/apache/hadoop/hive/llap/LlapRowRecordReader.java ---------------------------------------------------------------------- diff --git a/llap-client/src/java/org/apache/hadoop/hive/llap/LlapRowRecordReader.java b/llap-client/src/java/org/apache/hadoop/hive/llap/LlapRowRecordReader.java index 7e38356..6eb65ac 100644 --- a/llap-client/src/java/org/apache/hadoop/hive/llap/LlapRowRecordReader.java +++ b/llap-client/src/java/org/apache/hadoop/hive/llap/LlapRowRecordReader.java @@ -219,10 +219,9 @@ public class LlapRowRecordReader implements RecordReader<NullWritable, Row> { static void setRowFromStruct(Row row, Object structVal, StructObjectInspector soi) { Schema structSchema = row.getSchema(); // Add struct field data to the Row - List<FieldDesc> fieldDescs = structSchema.getColumns(); - for (int idx = 0; idx < fieldDescs.size(); ++idx) { - FieldDesc fieldDesc = fieldDescs.get(idx); - StructField structField = soi.getStructFieldRef(fieldDesc.getName()); + List<? extends StructField> structFields = soi.getAllStructFieldRefs(); + for (int idx = 0; idx < structFields.size(); ++idx) { + StructField structField = structFields.get(idx); Object convertedFieldValue = convertValue( soi.getStructFieldData(structVal, structField),
