You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by zs...@apache.org on 2009/10/15 04:25:20 UTC

svn commit: r825377 - in /hadoop/hive/trunk: CHANGES.txt ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNegative.java ql/src/test/queries/clientpositive/udf_negative.q ql/src/test/results/clientpositive/udf_negative.q.out

Author: zshao
Date: Thu Oct 15 02:25:19 2009
New Revision: 825377

URL: http://svn.apache.org/viewvc?rev=825377&view=rev
Log:
HIVE-876. UDFOPNegative should deal with NULL gracefully. (Ning Zhang via zshao)

Added:
    hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_negative.q
    hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_negative.q.out
Modified:
    hadoop/hive/trunk/CHANGES.txt
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNegative.java

Modified: hadoop/hive/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/CHANGES.txt?rev=825377&r1=825376&r2=825377&view=diff
==============================================================================
--- hadoop/hive/trunk/CHANGES.txt (original)
+++ hadoop/hive/trunk/CHANGES.txt Thu Oct 15 02:25:19 2009
@@ -178,6 +178,9 @@
     HIVE-865. Map Join memory leak
     (Ning Zhang via namit)
 
+    HIVE-876. UDFOPNegative should deal with NULL gracefully.
+    (Ning Zhang via zshao)
+
 Release 0.4.0 -  Unreleased
 
   INCOMPATIBLE CHANGES

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNegative.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNegative.java?rev=825377&r1=825376&r2=825377&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNegative.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNegative.java Thu Oct 15 02:25:19 2009
@@ -28,6 +28,7 @@
 import org.apache.hadoop.io.FloatWritable;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.NullWritable;
 
 @description(
     name = "-",
@@ -42,36 +43,54 @@
 
   @Override
   public ByteWritable evaluate(ByteWritable a) {
+    if ( a == null ) {
+      return null;
+    }
     byteWritable.set((byte)-a.get());
     return byteWritable;
   }
 
   @Override
   public ShortWritable evaluate(ShortWritable a) {
+    if ( a == null ) {
+      return null;
+    }
     shortWritable.set((short)-a.get());
     return shortWritable;
   }
 
   @Override
   public IntWritable evaluate(IntWritable a) {
+    if ( a == null ) {
+      return null;
+    }
     intWritable.set(-a.get());
     return intWritable;
   }
 
   @Override
   public LongWritable evaluate(LongWritable a) {
+    if ( a == null ) {
+      return null;
+    }
     longWritable.set(-a.get());
     return longWritable;
   }
 
   @Override
   public FloatWritable evaluate(FloatWritable a) {
+    if ( a == null ) {
+      return null;
+    }
     floatWritable.set(-a.get());
     return floatWritable;
   }
 
   @Override
   public DoubleWritable evaluate(DoubleWritable a) {
+    if ( a == null ) {
+      return null;
+    }
     doubleWritable.set(-a.get());
     return doubleWritable;
   }

Added: hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_negative.q
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_negative.q?rev=825377&view=auto
==============================================================================
--- hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_negative.q (added)
+++ hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_negative.q Thu Oct 15 02:25:19 2009
@@ -0,0 +1,4 @@
+select - null from src limit 1;
+select - cast(null as int) from src limit 1;
+select - cast(null as double) from src limit 1;
+select - cast(null as float) from src limit 1;

Added: hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_negative.q.out
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_negative.q.out?rev=825377&view=auto
==============================================================================
--- hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_negative.q.out (added)
+++ hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_negative.q.out Thu Oct 15 02:25:19 2009
@@ -0,0 +1,36 @@
+PREHOOK: query: select - null from src limit 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/124139801/10000
+POSTHOOK: query: select - null from src limit 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/124139801/10000
+NULL
+PREHOOK: query: select - cast(null as int) from src limit 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/714637476/10000
+POSTHOOK: query: select - cast(null as int) from src limit 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/714637476/10000
+NULL
+PREHOOK: query: select - cast(null as double) from src limit 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/1915503679/10000
+POSTHOOK: query: select - cast(null as double) from src limit 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/1915503679/10000
+NULL
+PREHOOK: query: select - cast(null as float) from src limit 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/1861430940/10000
+POSTHOOK: query: select - cast(null as float) from src limit 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/1861430940/10000
+NULL