You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by hy...@apache.org on 2013/12/20 07:30:47 UTC

git commit: TAJO-442: Cast operator with nested functions causes NPE. (hyunsik)

Updated Branches:
  refs/heads/master f08724f9c -> 450fbcb93


TAJO-442: Cast operator with nested functions causes NPE. (hyunsik)


Project: http://git-wip-us.apache.org/repos/asf/incubator-tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tajo/commit/450fbcb9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tajo/tree/450fbcb9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tajo/diff/450fbcb9

Branch: refs/heads/master
Commit: 450fbcb93c02c74fd8889751bdec5ce155e3e294
Parents: f08724f
Author: Hyunsik Choi <hy...@apache.org>
Authored: Fri Dec 20 15:30:24 2013 +0900
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Fri Dec 20 15:30:24 2013 +0900

----------------------------------------------------------------------
 CHANGES.txt                                                    | 2 ++
 .../src/main/java/org/apache/tajo/engine/eval/CastEval.java    | 4 ++--
 .../java/org/apache/tajo/engine/eval/TestSQLExpression.java    | 6 ++++++
 .../tajo/engine/function/TestStringOperatorsAndFunctions.java  | 5 +++++
 4 files changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/450fbcb9/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index d7872b4..89b89ee 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -160,6 +160,8 @@ Release 0.8.0 - unreleased
 
   BUG FIXES
 
+    TAJO-442: Cast operator with nested functions causes NPE. (hyunsik)
+
     TAJO-426: HCatalogStore created partitions automatically. (jaehwa)
 
     TAJO-418: sort operator after inline views consisting of unions can cause 

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/450fbcb9/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/CastEval.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/CastEval.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/CastEval.java
index 9bb6b1c..411dd09 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/CastEval.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/CastEval.java
@@ -111,11 +111,11 @@ public class CastEval extends EvalNode {
   @Override
   public void preOrder(EvalNodeVisitor visitor) {
     visitor.visit(this);
-    visitor.visit(operand);
+    operand.preOrder(visitor);
   }
 
   public void postOrder(EvalNodeVisitor visitor) {
-    visitor.visit(operand);
+    operand.postOrder(visitor);
     visitor.visit(this);
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/450fbcb9/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java
index 13a5e2d..c96f7e5 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java
@@ -61,6 +61,12 @@ public class TestSQLExpression extends ExprTestBase {
   }
 
   @Test
+  public void testCastWithNestedFunction() throws IOException {
+    testSimpleEval("select to_timestamp(CAST(split_part('1386577650.123', '.', 1) as INT8));",
+        new String[] {"1970-01-17 10:09:37"});
+  }
+
+  @Test
   public void testCastFromTable() throws IOException {
     Schema schema = new Schema();
     schema.addColumn("col1", TEXT);

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/450fbcb9/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestStringOperatorsAndFunctions.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestStringOperatorsAndFunctions.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestStringOperatorsAndFunctions.java
index 485535a..7d3aa7d 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestStringOperatorsAndFunctions.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestStringOperatorsAndFunctions.java
@@ -337,6 +337,11 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
   }
 
   @Test
+  public void testSplitPart() throws IOException {
+    testSimpleEval("select split_part('1386577650.123', '.', 1) as col1 ", new String[]{"1386577650"});
+  }
+
+  @Test
   public void testSubstr() throws IOException {
     testSimpleEval("select substr('abcdef', 3, 2) as col1 ", new String[]{"cd"});
     testSimpleEval("select substr('abcdef', 3) as col1 ", new String[]{"cdef"});