You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2016/05/31 18:41:19 UTC

hive git commit: HIVE-13859: mask() UDF not retaining day and month field values (Madhan Neethiraj via Ashutosh Chauhan)

Repository: hive
Updated Branches:
  refs/heads/master ac9405004 -> a354507cc


HIVE-13859: mask() UDF not retaining day and month field values (Madhan Neethiraj via Ashutosh Chauhan)

Signed-off-by: Ashutosh Chauhan <ha...@apache.org>


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

Branch: refs/heads/master
Commit: a354507ccf650a2b304a2ea76797e7846564e620
Parents: ac94050
Author: Madhan Neethiraj <ma...@apache.org>
Authored: Sat May 28 03:16:38 2016 -0700
Committer: Ashutosh Chauhan <ha...@apache.org>
Committed: Tue May 31 11:40:59 2016 -0700

----------------------------------------------------------------------
 .../hive/ql/udf/generic/GenericUDFMask.java     | 12 ++++++++----
 ql/src/test/queries/clientpositive/udf_mask.q   |  9 ++++++++-
 .../test/results/clientpositive/udf_mask.q.out  | 20 +++++++++++++++++---
 3 files changed, 33 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/a354507c/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMask.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMask.java
index cd35142..b815aae 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMask.java
@@ -96,12 +96,16 @@ class MaskTransformer extends AbstractTransformer {
       maskedNumber = MASKED_NUMBER;
     }
 
-    if(maskedDayValue < 1 || maskedDayValue > 31) {
-      maskedDayValue = MASKED_DAY_COMPONENT_VAL;
+    if(maskedDayValue != UNMASKED_VAL) {
+      if(maskedDayValue < 1 || maskedDayValue > 31) {
+        maskedDayValue = MASKED_DAY_COMPONENT_VAL;
+      }
     }
 
-    if(maskedMonthValue < 0 || maskedMonthValue > 11) {
-      maskedMonthValue = MASKED_MONTH_COMPONENT_VAL;
+    if(maskedMonthValue != UNMASKED_VAL) {
+      if(maskedMonthValue < 0 || maskedMonthValue > 11) {
+        maskedMonthValue = MASKED_MONTH_COMPONENT_VAL;
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/a354507c/ql/src/test/queries/clientpositive/udf_mask.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/udf_mask.q b/ql/src/test/queries/clientpositive/udf_mask.q
index 82b8ee7..15f7d27 100644
--- a/ql/src/test/queries/clientpositive/udf_mask.q
+++ b/ql/src/test/queries/clientpositive/udf_mask.q
@@ -10,4 +10,11 @@ select mask('TestString-123', 'X', 'x', '0', ':'),
        mask(cast(12345 as smallint), -1, -1, -1, -1, '5'),
        mask(cast(12345 as int), -1, -1, -1, -1, '5'),
        mask(cast(12345 as bigint), -1, -1, -1, -1, '5'),
-       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 0, 0, 0);
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 0, 0, 0),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, -1, 0, 0),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 1, -1, 0),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 1, 0, -1),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 1, -1, -1),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, -1, 0, -1),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, -1, -1, 0),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, -1, -1, -1);

http://git-wip-us.apache.org/repos/asf/hive/blob/a354507c/ql/src/test/results/clientpositive/udf_mask.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/udf_mask.q.out b/ql/src/test/results/clientpositive/udf_mask.q.out
index cbafaee..ac0e273 100644
--- a/ql/src/test/results/clientpositive/udf_mask.q.out
+++ b/ql/src/test/results/clientpositive/udf_mask.q.out
@@ -53,7 +53,14 @@ PREHOOK: query: select mask('TestString-123', 'X', 'x', '0', ':'),
        mask(cast(12345 as smallint), -1, -1, -1, -1, '5'),
        mask(cast(12345 as int), -1, -1, -1, -1, '5'),
        mask(cast(12345 as bigint), -1, -1, -1, -1, '5'),
-       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 0, 0, 0)
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 0, 0, 0),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, -1, 0, 0),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 1, -1, 0),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 1, 0, -1),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 1, -1, -1),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, -1, 0, -1),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, -1, -1, 0),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, -1, -1, -1)
 PREHOOK: type: QUERY
 PREHOOK: Input: _dummy_database@_dummy_table
 #### A masked pattern was here ####
@@ -64,8 +71,15 @@ POSTHOOK: query: select mask('TestString-123', 'X', 'x', '0', ':'),
        mask(cast(12345 as smallint), -1, -1, -1, -1, '5'),
        mask(cast(12345 as int), -1, -1, -1, -1, '5'),
        mask(cast(12345 as bigint), -1, -1, -1, -1, '5'),
-       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 0, 0, 0)
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 0, 0, 0),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, -1, 0, 0),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 1, -1, 0),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 1, 0, -1),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 1, -1, -1),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, -1, 0, -1),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, -1, -1, 0),
+       mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, -1, -1, -1)
 POSTHOOK: type: QUERY
 POSTHOOK: Input: _dummy_database@_dummy_table
 #### A masked pattern was here ####
-XxxxXxxxxx:000	XxxxXxxxxx:000	XxxxXxxxxx:000::::::::::                                                                                                                                                                                                                                       	43	-9981	55555	55555	1900-01-01
+XxxxXxxxxx:000	XxxxXxxxxx:000	XxxxXxxxxx:000::::::::::                                                                                                                                                                                                                                       	43	-9981	55555	55555	1900-01-01	1900-01-20	1900-04-01	2016-01-01	2016-04-01	2016-01-20	1900-04-20	2016-04-20