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),

Reply via email to