You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ro...@apache.org on 2013/06/05 19:12:39 UTC

svn commit: r1489967 - in /pig/branches/branch-0.11: ./ src/org/apache/pig/builtin/ test/org/apache/pig/test/

Author: rohini
Date: Wed Jun  5 17:12:38 2013
New Revision: 1489967

URL: http://svn.apache.org/r1489967
Log:
PIG-3345: Handle null in DateTime functions (rohini)

Modified:
    pig/branches/branch-0.11/CHANGES.txt
    pig/branches/branch-0.11/src/org/apache/pig/builtin/GetDay.java
    pig/branches/branch-0.11/src/org/apache/pig/builtin/GetHour.java
    pig/branches/branch-0.11/src/org/apache/pig/builtin/GetMilliSecond.java
    pig/branches/branch-0.11/src/org/apache/pig/builtin/GetMinute.java
    pig/branches/branch-0.11/src/org/apache/pig/builtin/GetMonth.java
    pig/branches/branch-0.11/src/org/apache/pig/builtin/GetSecond.java
    pig/branches/branch-0.11/src/org/apache/pig/builtin/GetWeek.java
    pig/branches/branch-0.11/src/org/apache/pig/builtin/GetWeekYear.java
    pig/branches/branch-0.11/src/org/apache/pig/builtin/GetYear.java
    pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDate.java
    pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDate2ARGS.java
    pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDate3ARGS.java
    pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDateISO.java
    pig/branches/branch-0.11/src/org/apache/pig/builtin/ToMilliSeconds.java
    pig/branches/branch-0.11/src/org/apache/pig/builtin/ToString.java
    pig/branches/branch-0.11/src/org/apache/pig/builtin/ToUnixTime.java
    pig/branches/branch-0.11/test/org/apache/pig/test/TestBuiltin.java

Modified: pig/branches/branch-0.11/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/CHANGES.txt?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/CHANGES.txt (original)
+++ pig/branches/branch-0.11/CHANGES.txt Wed Jun  5 17:12:38 2013
@@ -30,6 +30,8 @@ PIG-2769: a simple logic causes very lon
 
 BUG FIXES
 
+PIG-3345: Handle null in DateTime functions (rohini)
+
 PIG-3315: Automaton dependency missing from Pig 11.1-h2 POM. (stevel@apache.org via daijy)
 
 PIG-3223: AvroStorage does not handle comma separated input paths (dreambird via rohini)

Modified: pig/branches/branch-0.11/src/org/apache/pig/builtin/GetDay.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/src/org/apache/pig/builtin/GetDay.java?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/src/org/apache/pig/builtin/GetDay.java (original)
+++ pig/branches/branch-0.11/src/org/apache/pig/builtin/GetDay.java Wed Jun  5 17:12:38 2013
@@ -74,7 +74,7 @@ public class GetDay extends EvalFunc<Int
     
     @Override
     public Integer exec(Tuple input) throws IOException {
-        if (input == null || input.size() < 1) {
+        if (input == null || input.size() < 1 || input.get(0) == null) {
             return null;
         }
         

Modified: pig/branches/branch-0.11/src/org/apache/pig/builtin/GetHour.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/src/org/apache/pig/builtin/GetHour.java?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/src/org/apache/pig/builtin/GetHour.java (original)
+++ pig/branches/branch-0.11/src/org/apache/pig/builtin/GetHour.java Wed Jun  5 17:12:38 2013
@@ -74,7 +74,7 @@ public class GetHour extends EvalFunc<In
 
     @Override
     public Integer exec(Tuple input) throws IOException {
-        if (input == null || input.size() < 1) {
+        if (input == null || input.size() < 1 || input.get(0) == null) {
             return null;
         }        
 

Modified: pig/branches/branch-0.11/src/org/apache/pig/builtin/GetMilliSecond.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/src/org/apache/pig/builtin/GetMilliSecond.java?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/src/org/apache/pig/builtin/GetMilliSecond.java (original)
+++ pig/branches/branch-0.11/src/org/apache/pig/builtin/GetMilliSecond.java Wed Jun  5 17:12:38 2013
@@ -74,7 +74,7 @@ public class GetMilliSecond extends Eval
 
     @Override
     public Integer exec(Tuple input) throws IOException {
-        if (input == null || input.size() < 1) {
+        if (input == null || input.size() < 1 || input.get(0) == null) {
             return null;
         }
 

Modified: pig/branches/branch-0.11/src/org/apache/pig/builtin/GetMinute.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/src/org/apache/pig/builtin/GetMinute.java?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/src/org/apache/pig/builtin/GetMinute.java (original)
+++ pig/branches/branch-0.11/src/org/apache/pig/builtin/GetMinute.java Wed Jun  5 17:12:38 2013
@@ -74,7 +74,7 @@ public class GetMinute extends EvalFunc<
 
     @Override
     public Integer exec(Tuple input) throws IOException {
-        if (input == null || input.size() < 1) {
+        if (input == null || input.size() < 1 || input.get(0) == null) {
             return null;
         }
 

Modified: pig/branches/branch-0.11/src/org/apache/pig/builtin/GetMonth.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/src/org/apache/pig/builtin/GetMonth.java?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/src/org/apache/pig/builtin/GetMonth.java (original)
+++ pig/branches/branch-0.11/src/org/apache/pig/builtin/GetMonth.java Wed Jun  5 17:12:38 2013
@@ -74,7 +74,7 @@ public class GetMonth extends EvalFunc<I
 
     @Override
     public Integer exec(Tuple input) throws IOException {
-        if (input == null || input.size() < 1) {
+        if (input == null || input.size() < 1 || input.get(0) == null) {
             return null;
         }
 

Modified: pig/branches/branch-0.11/src/org/apache/pig/builtin/GetSecond.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/src/org/apache/pig/builtin/GetSecond.java?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/src/org/apache/pig/builtin/GetSecond.java (original)
+++ pig/branches/branch-0.11/src/org/apache/pig/builtin/GetSecond.java Wed Jun  5 17:12:38 2013
@@ -74,7 +74,7 @@ public class GetSecond extends EvalFunc<
 
     @Override
     public Integer exec(Tuple input) throws IOException {
-        if (input == null || input.size() < 1) {
+        if (input == null || input.size() < 1 || input.get(0) == null) {
             return null;
         }
 

Modified: pig/branches/branch-0.11/src/org/apache/pig/builtin/GetWeek.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/src/org/apache/pig/builtin/GetWeek.java?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/src/org/apache/pig/builtin/GetWeek.java (original)
+++ pig/branches/branch-0.11/src/org/apache/pig/builtin/GetWeek.java Wed Jun  5 17:12:38 2013
@@ -74,7 +74,7 @@ public class GetWeek extends EvalFunc<In
 
     @Override
     public Integer exec(Tuple input) throws IOException {
-        if (input == null || input.size() < 1) {
+        if (input == null || input.size() < 1 || input.get(0) == null) {
             return null;
         }
 

Modified: pig/branches/branch-0.11/src/org/apache/pig/builtin/GetWeekYear.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/src/org/apache/pig/builtin/GetWeekYear.java?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/src/org/apache/pig/builtin/GetWeekYear.java (original)
+++ pig/branches/branch-0.11/src/org/apache/pig/builtin/GetWeekYear.java Wed Jun  5 17:12:38 2013
@@ -74,7 +74,7 @@ public class GetWeekYear extends EvalFun
 
     @Override
     public Integer exec(Tuple input) throws IOException {
-        if (input == null || input.size() < 1) {
+        if (input == null || input.size() < 1 || input.get(0) == null) {
             return null;
         }
 

Modified: pig/branches/branch-0.11/src/org/apache/pig/builtin/GetYear.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/src/org/apache/pig/builtin/GetYear.java?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/src/org/apache/pig/builtin/GetYear.java (original)
+++ pig/branches/branch-0.11/src/org/apache/pig/builtin/GetYear.java Wed Jun  5 17:12:38 2013
@@ -74,7 +74,7 @@ public class GetYear extends EvalFunc<In
 
     @Override
     public Integer exec(Tuple input) throws IOException {
-        if (input == null || input.size() < 1) {
+        if (input == null || input.size() < 1 || input.get(0) == null) {
             return null;
         }
 

Modified: pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDate.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDate.java?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDate.java (original)
+++ pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDate.java Wed Jun  5 17:12:38 2013
@@ -83,6 +83,9 @@ import org.joda.time.format.DateTimeForm
 public class ToDate extends EvalFunc<DateTime> {
 
     public DateTime exec(Tuple input) throws IOException {
+        if (input == null || input.size() < 1 || input.get(0) == null) {
+            return null;
+        }
         return new DateTime(DataType.toLong(input.get(0)));
     }
 

Modified: pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDate2ARGS.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDate2ARGS.java?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDate2ARGS.java (original)
+++ pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDate2ARGS.java Wed Jun  5 17:12:38 2013
@@ -33,6 +33,9 @@ import org.joda.time.format.DateTimeForm
 public class ToDate2ARGS extends EvalFunc<DateTime> {
 
     public DateTime exec(Tuple input) throws IOException {
+        if (input == null || input.size() < 1 || input.get(0) == null) {
+            return null;
+        }
         String dtStr = DataType.toString(input.get(0));
         //DateTimeZone dtz = extractDateTimeZone(dtStr);
         //The timezone in the customized format is not predictable

Modified: pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDate3ARGS.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDate3ARGS.java?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDate3ARGS.java (original)
+++ pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDate3ARGS.java Wed Jun  5 17:12:38 2013
@@ -34,6 +34,9 @@ import org.joda.time.format.DateTimeForm
 public class ToDate3ARGS extends EvalFunc<DateTime> {
 
     public DateTime exec(Tuple input) throws IOException {
+        if (input == null || input.size() < 1 || input.get(0) == null) {
+            return null;
+        }
         DateTimeFormatter dtf = DateTimeFormat.forPattern(DataType
                 .toString(input.get(1)));
         DateTimeZone dtz = DateTimeZone.forOffsetMillis(DateTimeZone.forID(

Modified: pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDateISO.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDateISO.java?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDateISO.java (original)
+++ pig/branches/branch-0.11/src/org/apache/pig/builtin/ToDateISO.java Wed Jun  5 17:12:38 2013
@@ -32,6 +32,9 @@ import org.joda.time.DateTimeZone;
 public class ToDateISO extends EvalFunc<DateTime> {
 
     public DateTime exec(Tuple input) throws IOException {
+        if (input == null || input.size() < 1 || input.get(0) == null) {
+            return null;
+        }
         String dtStr = DataType.toString(input.get(0));
         DateTimeZone dtz = ToDate.extractDateTimeZone(dtStr);
         if (dtz == null) {

Modified: pig/branches/branch-0.11/src/org/apache/pig/builtin/ToMilliSeconds.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/src/org/apache/pig/builtin/ToMilliSeconds.java?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/src/org/apache/pig/builtin/ToMilliSeconds.java (original)
+++ pig/branches/branch-0.11/src/org/apache/pig/builtin/ToMilliSeconds.java Wed Jun  5 17:12:38 2013
@@ -73,7 +73,7 @@ public class ToMilliSeconds extends Eval
     @Override
     public Long exec(Tuple input) throws IOException
     {
-        if (input == null || input.size() < 1) {
+        if (input == null || input.size() < 1 || input.get(0) == null) {
             return null;
         }
 

Modified: pig/branches/branch-0.11/src/org/apache/pig/builtin/ToString.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/src/org/apache/pig/builtin/ToString.java?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/src/org/apache/pig/builtin/ToString.java (original)
+++ pig/branches/branch-0.11/src/org/apache/pig/builtin/ToString.java Wed Jun  5 17:12:38 2013
@@ -39,7 +39,7 @@ import org.joda.time.format.DateTimeForm
 public class ToString extends EvalFunc<String> {
 
     public String exec(Tuple input) throws IOException {
-        if (input == null) {
+        if (input == null || input.size() < 1 || input.get(0) == null) {
             return null;
         }
         if (input.size() == 1) {

Modified: pig/branches/branch-0.11/src/org/apache/pig/builtin/ToUnixTime.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/src/org/apache/pig/builtin/ToUnixTime.java?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/src/org/apache/pig/builtin/ToUnixTime.java (original)
+++ pig/branches/branch-0.11/src/org/apache/pig/builtin/ToUnixTime.java Wed Jun  5 17:12:38 2013
@@ -71,7 +71,7 @@ public class ToUnixTime extends EvalFunc
     public Long exec(Tuple input) throws IOException
     {
         
-        if (input == null || input.size() < 1) {
+        if (input == null || input.size() < 1 || input.get(0) == null) {
             return null;
         }
 

Modified: pig/branches/branch-0.11/test/org/apache/pig/test/TestBuiltin.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/test/org/apache/pig/test/TestBuiltin.java?rev=1489967&r1=1489966&r2=1489967&view=diff
==============================================================================
--- pig/branches/branch-0.11/test/org/apache/pig/test/TestBuiltin.java (original)
+++ pig/branches/branch-0.11/test/org/apache/pig/test/TestBuiltin.java Wed Jun  5 17:12:38 2013
@@ -448,6 +448,16 @@ public class TestBuiltin {
         CurrentTime func8 = new CurrentTime();
         DateTime dt11 = func8.exec(null);
         Assert.assertNotNull(dt11);
+
+        // Null handling
+        t1.set(0, null);
+        assertEquals(func1.exec(t1), null);
+        assertEquals(func2.exec(t1), null);
+        assertEquals(func3.exec(t1), null);
+        assertEquals(func4.exec(t1), null);
+        assertEquals(func5.exec(t1), null);
+        assertEquals(func6.exec(t1), null);
+        assertEquals(func7.exec(t1), null);
     }
 
     /**
@@ -2745,6 +2755,19 @@ public class TestBuiltin {
         assertEquals(week.intValue(), 15);
         week = func9.exec(t2);
         assertEquals(week.intValue(), 15);
+        
+        // Null handling
+        t1.set(0, null);
+        assertEquals(func1.exec(t1), null);
+        assertEquals(func2.exec(t1), null);
+        assertEquals(func3.exec(t1), null);
+        assertEquals(func4.exec(t1), null);
+        assertEquals(func5.exec(t1), null);
+        assertEquals(func6.exec(t1), null);
+        assertEquals(func7.exec(t1), null);
+        assertEquals(func8.exec(t1), null);
+        assertEquals(func9.exec(t1), null);
+        
     }
 
 }