This is an automated email from the ASF dual-hosted git repository.

praveenbingo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/master by this push:
     new 293040d  ARROW-8096: [C++][Gandiva] fix TreeExprBuilder::MakeNull to 
create node for interval type
293040d is described below

commit 293040d3a40e303ec0d1a681beaf0e4dff385cc3
Author: Prudhvi Porandla <[email protected]>
AuthorDate: Sun Mar 15 20:00:41 2020 +0530

    ARROW-8096: [C++][Gandiva] fix TreeExprBuilder::MakeNull to create node for 
interval type
    
    Closes #6598 from pprudhvi/intervalnull and squashes the following commits:
    
    a53d4eb9e <Prudhvi Porandla> null node creation for interval type
    
    Authored-by: Prudhvi Porandla <[email protected]>
    Signed-off-by: Praveen <[email protected]>
---
 cpp/src/gandiva/tree_expr_builder.cc | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/cpp/src/gandiva/tree_expr_builder.cc 
b/cpp/src/gandiva/tree_expr_builder.cc
index eb253f9..4f360e0 100644
--- a/cpp/src/gandiva/tree_expr_builder.cc
+++ b/cpp/src/gandiva/tree_expr_builder.cc
@@ -99,6 +99,14 @@ NodePtr TreeExprBuilder::MakeNull(DataTypePtr data_type) {
       return std::make_shared<LiteralNode>(data_type, 
LiteralHolder((int64_t)0), true);
     case arrow::Type::TIMESTAMP:
       return std::make_shared<LiteralNode>(data_type, 
LiteralHolder((int64_t)0), true);
+    case arrow::Type::INTERVAL: {
+      std::shared_ptr<arrow::IntervalType> interval_type =
+          
arrow::internal::checked_pointer_cast<arrow::IntervalType>(data_type);
+      if (interval_type->interval_type() == arrow::IntervalType::type::MONTHS) 
{
+        return std::make_shared<LiteralNode>(data_type, 
LiteralHolder((int32_t)0), true);
+      }
+      return std::make_shared<LiteralNode>(data_type, 
LiteralHolder((int64_t)0), true);
+    }
     case arrow::Type::DECIMAL: {
       std::shared_ptr<arrow::DecimalType> decimal_type =
           arrow::internal::checked_pointer_cast<arrow::DecimalType>(data_type);

Reply via email to