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 2018/07/28 15:48:51 UTC

[8/8] hive git commit: HIVE-20035: write booleans as long when serializing to druid (Nishant Bangarwa, reviewed by Jesus Camacho Rodriguez)

HIVE-20035: write booleans as long when serializing to druid (Nishant Bangarwa, reviewed by Jesus Camacho Rodriguez)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/c191ea5e
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/c191ea5e
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/c191ea5e

Branch: refs/heads/branch-3
Commit: c191ea5e94e5e54f3191bdaf4c2a549665d94230
Parents: c3bdc8b
Author: Nishant Bangarwa <ni...@gmail.com>
Authored: Mon Jul 23 22:50:46 2018 -0700
Committer: Jesus Camacho Rodriguez <jc...@apache.org>
Committed: Sat Jul 28 08:48:35 2018 -0700

----------------------------------------------------------------------
 .../hadoop/hive/druid/serde/DruidSerDe.java     |  2 +-
 .../clientpositive/druidmini_expressions.q      |  7 ++--
 .../druid/druidmini_expressions.q.out           | 37 +++++++++++++++++---
 3 files changed, 39 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/c191ea5e/druid-handler/src/java/org/apache/hadoop/hive/druid/serde/DruidSerDe.java
----------------------------------------------------------------------
diff --git a/druid-handler/src/java/org/apache/hadoop/hive/druid/serde/DruidSerDe.java b/druid-handler/src/java/org/apache/hadoop/hive/druid/serde/DruidSerDe.java
index fcde538..47924a6 100644
--- a/druid-handler/src/java/org/apache/hadoop/hive/druid/serde/DruidSerDe.java
+++ b/druid-handler/src/java/org/apache/hadoop/hive/druid/serde/DruidSerDe.java
@@ -346,7 +346,7 @@ import static org.joda.time.format.ISODateTimeFormat.dateOptionalTimeParser;
         break;
       case BOOLEAN:
         res = ((BooleanObjectInspector) fields.get(i).getFieldObjectInspector())
-            .get(values.get(i));
+            .get(values.get(i)) ? 1L : 0L;
         break;
       default:
         throw new SerDeException("Unsupported type: " + types[i].getPrimitiveCategory());

http://git-wip-us.apache.org/repos/asf/hive/blob/c191ea5e/ql/src/test/queries/clientpositive/druidmini_expressions.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/druidmini_expressions.q b/ql/src/test/queries/clientpositive/druidmini_expressions.q
index 7857973..273c803 100644
--- a/ql/src/test/queries/clientpositive/druidmini_expressions.q
+++ b/ql/src/test/queries/clientpositive/druidmini_expressions.q
@@ -127,12 +127,15 @@ explain SELECT DATE_ADD(cast(`__time` as date), CAST((cdouble / 1000) AS INT)) a
 SELECT DATE_ADD(cast(`__time` as date), CAST((cdouble / 1000) AS INT)) as date_1,  DATE_SUB(cast(`__time` as date), CAST((cdouble / 1000) AS INT)) as date_2 from druid_table_n0  order by date_1, date_2 limit 3;
 
   -- Boolean Values
+-- Expected results of this query are wrong due to https://issues.apache.org/jira/browse/CALCITE-2319
+-- It should get fixed once we upgrade calcite
+ EXPLAIN SELECT cboolean2, count(*) from druid_table_n0 GROUP BY cboolean2;
  SELECT cboolean2, count(*) from druid_table_n0 GROUP BY cboolean2;
-  
+
   -- Expected results of this query are wrong due to https://issues.apache.org/jira/browse/CALCITE-2319
   -- It should get fixed once we upgrade calcite
  SELECT ctinyint > 2, count(*) from druid_table_n0 GROUP BY ctinyint > 2;
-  
+
  EXPLAIN SELECT ctinyint > 2, count(*) from druid_table_n0 GROUP BY ctinyint > 2;
 
 DROP TABLE druid_table_n0;

http://git-wip-us.apache.org/repos/asf/hive/blob/c191ea5e/ql/src/test/results/clientpositive/druid/druidmini_expressions.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/druid/druidmini_expressions.q.out b/ql/src/test/results/clientpositive/druid/druidmini_expressions.q.out
index d6ea990..51470a4 100644
--- a/ql/src/test/results/clientpositive/druid/druidmini_expressions.q.out
+++ b/ql/src/test/results/clientpositive/druid/druidmini_expressions.q.out
@@ -1292,16 +1292,45 @@ POSTHOOK: Output: hdfs://### HDFS PATH ###
 1969-03-19	1970-10-14
 1969-11-13	1970-02-17
 PREHOOK: query: -- Boolean Values
- SELECT cboolean2, count(*) from druid_table_n0 GROUP BY cboolean2
+
+
+ EXPLAIN SELECT cboolean2, count(*) from druid_table_n0 GROUP BY cboolean2
+PREHOOK: type: QUERY
+POSTHOOK: query: -- Boolean Values
+
+
+ EXPLAIN SELECT cboolean2, count(*) from druid_table_n0 GROUP BY cboolean2
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_table_n0
+          properties:
+            druid.fieldNames cboolean2,$f1
+            druid.fieldTypes boolean,bigint
+            druid.query.json {"queryType":"groupBy","dataSource":"default.druid_table_n0","granularity":"all","dimensions":[{"type":"default","dimension":"cboolean2","outputName":"cboolean2","outputType":"LONG"}],"limitSpec":{"type":"default"},"aggregations":[{"type":"count","name":"$f1"}],"intervals":["1900-01-01T00:00:00.000Z/3000-01-01T00:00:00.000Z"]}
+            druid.query.type groupBy
+          Select Operator
+            expressions: cboolean2 (type: boolean), $f1 (type: bigint)
+            outputColumnNames: _col0, _col1
+            ListSink
+
+PREHOOK: query: SELECT cboolean2, count(*) from druid_table_n0 GROUP BY cboolean2
 PREHOOK: type: QUERY
 PREHOOK: Input: default@druid_table_n0
 PREHOOK: Output: hdfs://### HDFS PATH ###
-POSTHOOK: query: -- Boolean Values
- SELECT cboolean2, count(*) from druid_table_n0 GROUP BY cboolean2
+POSTHOOK: query: SELECT cboolean2, count(*) from druid_table_n0 GROUP BY cboolean2
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@druid_table_n0
 POSTHOOK: Output: hdfs://### HDFS PATH ###
-false	6105
+false	3148
+true	2957
 PREHOOK: query: -- Expected results of this query are wrong due to https://issues.apache.org/jira/browse/CALCITE-2319
   -- It should get fixed once we upgrade calcite
  SELECT ctinyint > 2, count(*) from druid_table_n0 GROUP BY ctinyint > 2