You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jc...@apache.org on 2019/04/08 15:37:26 UTC
[hive] branch master updated: HIVE-21587: Explain formatted CBO
should write row type in JSON (Jesus Camacho Rodriguez,
reviewed by Zoltan Haindrich)
This is an automated email from the ASF dual-hosted git repository.
jcamacho pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new 12f4084 HIVE-21587: Explain formatted CBO should write row type in JSON (Jesus Camacho Rodriguez, reviewed by Zoltan Haindrich)
12f4084 is described below
commit 12f40848646d58827648ba99d2a653c6c567d2b6
Author: Jesus Camacho Rodriguez <jc...@apache.org>
AuthorDate: Fri Apr 5 18:06:38 2019 -0700
HIVE-21587: Explain formatted CBO should write row type in JSON (Jesus Camacho Rodriguez, reviewed by Zoltan Haindrich)
---
.../ql/optimizer/calcite/HiveRelWriterImpl.java | 26 +++++++---------------
1 file changed, 8 insertions(+), 18 deletions(-)
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveRelWriterImpl.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveRelWriterImpl.java
index d4e6c25..19429e6 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveRelWriterImpl.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveRelWriterImpl.java
@@ -43,26 +43,16 @@ public class HiveRelWriterImpl extends RelJsonWriter {
//~ Methods ------------------------------------------------------------------
+ @Override
protected void explain_(RelNode rel, List<Pair<String, Object>> values) {
super.explain_(rel, values);
- // TODO: The following is hackish since we do not have visibility over relList
- // and we do not want to bring all the writer utilities from Calcite. It should
- // be changed once we move to new Calcite version and relList is visible for
- // subclasses.
- try {
- final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
- Field fs = RelJsonWriter.class.getDeclaredField("relList");
- fs.setAccessible(true);
- List<Object> relList = (List<Object>) fs.get(this);
- Map<String, Object> map = (Map<String, Object>) relList.get(relList.size() - 1);
- map.put("rowCount", mq.getRowCount(rel));
- if (rel.getInputs().size() == 0) {
- // This is a leaf, we will print the average row size and schema
- map.put("avgRowSize", mq.getAverageRowSize(rel));
- map.put("rowType", rel.getRowType().toString());
- }
- } catch (Exception e) {
- LOG.warn("Failed to add additional fields in json writer", e);
+ RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
+ Map<String, Object> map = (Map<String, Object>) relList.get(relList.size() - 1);
+ map.put("rowCount", mq.getRowCount(rel));
+ if (rel.getInputs().size() == 0) {
+ // This is a leaf, we will print the average row size and schema
+ map.put("avgRowSize", mq.getAverageRowSize(rel));
+ map.put("rowType", relJson.toJson(rel.getRowType()));
}
}