You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by go...@apache.org on 2014/08/20 07:16:58 UTC
svn commit: r1619032 - in /hive/trunk: itests/src/test/resources/
ql/src/test/queries/clientpositive/ ql/src/test/results/clientpositive/tez/
serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/
Author: gopalv
Date: Wed Aug 20 05:16:57 2014
New Revision: 1619032
URL: http://svn.apache.org/r1619032
Log:
HIVE-7738 : tez select sum(decimal) from union all of decimal and null throws NPE (Alexander Pivovarov, reviewed by Gopal V)
Added:
hive/trunk/ql/src/test/queries/clientpositive/tez_union_decimal.q
hive/trunk/ql/src/test/results/clientpositive/tez/tez_union_decimal.q.out
Modified:
hive/trunk/itests/src/test/resources/testconfiguration.properties
hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantByteObjectInspector.java
hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java
hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantIntObjectInspector.java
hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantLongObjectInspector.java
hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantShortObjectInspector.java
Modified: hive/trunk/itests/src/test/resources/testconfiguration.properties
URL: http://svn.apache.org/viewvc/hive/trunk/itests/src/test/resources/testconfiguration.properties?rev=1619032&r1=1619031&r2=1619032&view=diff
==============================================================================
--- hive/trunk/itests/src/test/resources/testconfiguration.properties (original)
+++ hive/trunk/itests/src/test/resources/testconfiguration.properties Wed Aug 20 05:16:57 2014
@@ -146,7 +146,8 @@ minitez.query.files=bucket_map_join_tez1
tez_join_tests.q,\
tez_joins_explain.q,\
tez_schema_evolution.q,\
- tez_union.q
+ tez_union.q,\
+ tez_union_decimal.q
beeline.positive.exclude=add_part_exist.q,\
alter1.q,\
Added: hive/trunk/ql/src/test/queries/clientpositive/tez_union_decimal.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/tez_union_decimal.q?rev=1619032&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/tez_union_decimal.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/tez_union_decimal.q Wed Aug 20 05:16:57 2014
@@ -0,0 +1,37 @@
+select sum(a) from (
+ select cast(1.1 as decimal) a from src tablesample (1 rows)
+ union all
+ select cast(null as decimal) a from src tablesample (1 rows)
+) t;
+
+select sum(a) from (
+ select cast(1 as tinyint) a from src tablesample (1 rows)
+ union all
+ select cast(null as tinyint) a from src tablesample (1 rows)
+ union all
+ select cast(1.1 as decimal) a from src tablesample (1 rows)
+) t;
+
+select sum(a) from (
+ select cast(1 as smallint) a from src tablesample (1 rows)
+ union all
+ select cast(null as smallint) a from src tablesample (1 rows)
+ union all
+ select cast(1.1 as decimal) a from src tablesample (1 rows)
+) t;
+
+select sum(a) from (
+ select cast(1 as int) a from src tablesample (1 rows)
+ union all
+ select cast(null as int) a from src tablesample (1 rows)
+ union all
+ select cast(1.1 as decimal) a from src tablesample (1 rows)
+) t;
+
+select sum(a) from (
+ select cast(1 as bigint) a from src tablesample (1 rows)
+ union all
+ select cast(null as bigint) a from src tablesample (1 rows)
+ union all
+ select cast(1.1 as decimal) a from src tablesample (1 rows)
+) t;
Added: hive/trunk/ql/src/test/results/clientpositive/tez/tez_union_decimal.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/tez/tez_union_decimal.q.out?rev=1619032&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/tez/tez_union_decimal.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/tez/tez_union_decimal.q.out Wed Aug 20 05:16:57 2014
@@ -0,0 +1,101 @@
+PREHOOK: query: select sum(a) from (
+ select cast(1.1 as decimal) a from src tablesample (1 rows)
+ union all
+ select cast(null as decimal) a from src tablesample (1 rows)
+) t
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select sum(a) from (
+ select cast(1.1 as decimal) a from src tablesample (1 rows)
+ union all
+ select cast(null as decimal) a from src tablesample (1 rows)
+) t
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+1
+PREHOOK: query: select sum(a) from (
+ select cast(1 as tinyint) a from src tablesample (1 rows)
+ union all
+ select cast(null as tinyint) a from src tablesample (1 rows)
+ union all
+ select cast(1.1 as decimal) a from src tablesample (1 rows)
+) t
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select sum(a) from (
+ select cast(1 as tinyint) a from src tablesample (1 rows)
+ union all
+ select cast(null as tinyint) a from src tablesample (1 rows)
+ union all
+ select cast(1.1 as decimal) a from src tablesample (1 rows)
+) t
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+2
+PREHOOK: query: select sum(a) from (
+ select cast(1 as smallint) a from src tablesample (1 rows)
+ union all
+ select cast(null as smallint) a from src tablesample (1 rows)
+ union all
+ select cast(1.1 as decimal) a from src tablesample (1 rows)
+) t
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select sum(a) from (
+ select cast(1 as smallint) a from src tablesample (1 rows)
+ union all
+ select cast(null as smallint) a from src tablesample (1 rows)
+ union all
+ select cast(1.1 as decimal) a from src tablesample (1 rows)
+) t
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+2
+PREHOOK: query: select sum(a) from (
+ select cast(1 as int) a from src tablesample (1 rows)
+ union all
+ select cast(null as int) a from src tablesample (1 rows)
+ union all
+ select cast(1.1 as decimal) a from src tablesample (1 rows)
+) t
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select sum(a) from (
+ select cast(1 as int) a from src tablesample (1 rows)
+ union all
+ select cast(null as int) a from src tablesample (1 rows)
+ union all
+ select cast(1.1 as decimal) a from src tablesample (1 rows)
+) t
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+2
+PREHOOK: query: select sum(a) from (
+ select cast(1 as bigint) a from src tablesample (1 rows)
+ union all
+ select cast(null as bigint) a from src tablesample (1 rows)
+ union all
+ select cast(1.1 as decimal) a from src tablesample (1 rows)
+) t
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select sum(a) from (
+ select cast(1 as bigint) a from src tablesample (1 rows)
+ union all
+ select cast(null as bigint) a from src tablesample (1 rows)
+ union all
+ select cast(1.1 as decimal) a from src tablesample (1 rows)
+) t
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+2
Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantByteObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantByteObjectInspector.java?rev=1619032&r1=1619031&r2=1619032&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantByteObjectInspector.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantByteObjectInspector.java Wed Aug 20 05:16:57 2014
@@ -48,6 +48,9 @@ public class WritableConstantByteObjectI
@Override
public int precision() {
+ if (value == null) {
+ return super.precision();
+ }
return BigDecimal.valueOf(value.get()).precision();
}
Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java?rev=1619032&r1=1619031&r2=1619032&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java Wed Aug 20 05:16:57 2014
@@ -58,11 +58,17 @@ implements ConstantObjectInspector {
@Override
public int precision() {
+ if (value == null) {
+ return super.precision();
+ }
return value.getHiveDecimal().precision();
}
@Override
public int scale() {
+ if (value == null) {
+ return super.scale();
+ }
return value.getHiveDecimal().scale();
}
Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantIntObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantIntObjectInspector.java?rev=1619032&r1=1619031&r2=1619032&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantIntObjectInspector.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantIntObjectInspector.java Wed Aug 20 05:16:57 2014
@@ -48,6 +48,9 @@ public class WritableConstantIntObjectIn
@Override
public int precision() {
+ if (value == null) {
+ return super.precision();
+ }
return BigDecimal.valueOf(value.get()).precision();
}
Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantLongObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantLongObjectInspector.java?rev=1619032&r1=1619031&r2=1619032&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantLongObjectInspector.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantLongObjectInspector.java Wed Aug 20 05:16:57 2014
@@ -48,6 +48,9 @@ public class WritableConstantLongObjectI
@Override
public int precision() {
+ if (value == null) {
+ return super.precision();
+ }
return BigDecimal.valueOf(value.get()).precision();
}
Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantShortObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantShortObjectInspector.java?rev=1619032&r1=1619031&r2=1619032&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantShortObjectInspector.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantShortObjectInspector.java Wed Aug 20 05:16:57 2014
@@ -48,6 +48,9 @@ public class WritableConstantShortObject
@Override
public int precision() {
+ if (value == null) {
+ return super.precision();
+ }
return BigDecimal.valueOf(value.get()).precision();
}