You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ko...@apache.org on 2018/12/21 15:32:00 UTC
[arrow] branch master updated: ARROW-4011: [Gandiva] Install
irhelpers.bc and use it
This is an automated email from the ASF dual-hosted git repository.
kou 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 747590a ARROW-4011: [Gandiva] Install irhelpers.bc and use it
747590a is described below
commit 747590afc84481f61ead4d4c14e25ff9b79213f6
Author: Kouhei Sutou <ko...@clear-code.com>
AuthorDate: Sat Dec 22 00:31:47 2018 +0900
ARROW-4011: [Gandiva] Install irhelpers.bc and use it
If we don't install irhelpers.bc, users need to keep build directory
that has irhelpers.bc.
Author: Kouhei Sutou <ko...@clear-code.com>
Closes #3232 from kou/gandiva-use-installed-bc and squashes the following commits:
5a0c6228 <Kouhei Sutou> Adjust irhelper.bc path in Java
829212c4 <Kouhei Sutou> Adjust irhelper.bc path in Java
ea9c6b36 <Kouhei Sutou> Adjust irhelper.bc path in Java
cb3d473b <Kouhei Sutou> Adjust irhelper.bc path in Java
ab60eda9 <Kouhei Sutou> Remove "gandiva_" prefix and put built file to current binary dir
934e258c <Kouhei Sutou> Add "gandiva_" prefix
7ff4cf24 <Kouhei Sutou> Define GANDIVA_BYTE_COMPILE_FILE_PATH for all build
ad615b4b <Kouhei Sutou> Install irhelpers.bc and use it
---
cpp/src/gandiva/CMakeLists.txt | 9 +-
cpp/src/gandiva/bc_file_path.cc.in | 2 +-
cpp/src/gandiva/engine_llvm_test.cc | 5 +-
cpp/src/gandiva/llvm_generator_test.cc | 7 +-
cpp/src/gandiva/tests/binary_test.cc | 2 +-
cpp/src/gandiva/tests/boolean_expr_test.cc | 12 +--
cpp/src/gandiva/tests/date_time_test.cc | 16 ++--
cpp/src/gandiva/tests/filter_test.cc | 20 +++--
cpp/src/gandiva/tests/hash_test.cc | 6 +-
cpp/src/gandiva/tests/huge_table_test.cc | 4 +-
cpp/src/gandiva/tests/if_expr_test.cc | 12 +--
cpp/src/gandiva/tests/in_expr_test.cc | 6 +-
cpp/src/gandiva/tests/literal_test.cc | 12 +--
cpp/src/gandiva/tests/micro_benchmarks.cc | 16 ++--
cpp/src/gandiva/tests/null_validity_test.cc | 6 +-
.../tests/projector_build_validation_test.cc | 22 ++---
cpp/src/gandiva/tests/projector_test.cc | 95 +++++++---------------
cpp/src/gandiva/tests/test_util.h | 6 ++
cpp/src/gandiva/tests/utf8_test.cc | 19 +++--
java/gandiva/pom.xml | 2 +-
20 files changed, 131 insertions(+), 148 deletions(-)
diff --git a/cpp/src/gandiva/CMakeLists.txt b/cpp/src/gandiva/CMakeLists.txt
index 23ad93e..d28c372 100644
--- a/cpp/src/gandiva/CMakeLists.txt
+++ b/cpp/src/gandiva/CMakeLists.txt
@@ -27,14 +27,18 @@ find_package(LLVM)
# Set the path where the byte-code files will be installed.
set(GANDIVA_BC_INSTALL_DIR
- ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/gandiva)
+ ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/gandiva)
set(GANDIVA_BC_FILE_NAME irhelpers.bc)
set(GANDIVA_BC_INSTALL_PATH ${GANDIVA_BC_INSTALL_DIR}/${GANDIVA_BC_FILE_NAME})
-set(GANDIVA_BC_OUTPUT_PATH ${BUILD_OUTPUT_ROOT_DIRECTORY}/${GANDIVA_BC_FILE_NAME})
+set(GANDIVA_BC_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/${GANDIVA_BC_FILE_NAME})
+install(FILES
+ ${GANDIVA_BC_OUTPUT_PATH}
+ DESTINATION ${GANDIVA_BC_INSTALL_DIR})
set(BC_FILE_PATH_CC "${CMAKE_CURRENT_BINARY_DIR}/bc_file_path.cc")
configure_file(bc_file_path.cc.in ${BC_FILE_PATH_CC})
+add_definitions(-DGANDIVA_BYTE_COMPILE_FILE_PATH="${GANDIVA_BC_OUTPUT_PATH}")
set(SRC_FILES annotator.cc
bitmap_accumulator.cc
@@ -59,7 +63,6 @@ set(SRC_FILES annotator.cc
selection_vector.cc
tree_expr_builder.cc
to_date_holder.cc
- ${SHARED_HELPER_FILES}
${BC_FILE_PATH_CC})
set(GANDIVA_SHARED_PRIVATE_LINK_LIBS
diff --git a/cpp/src/gandiva/bc_file_path.cc.in b/cpp/src/gandiva/bc_file_path.cc.in
index d6b4e34..54e81ca 100644
--- a/cpp/src/gandiva/bc_file_path.cc.in
+++ b/cpp/src/gandiva/bc_file_path.cc.in
@@ -18,6 +18,6 @@
namespace gandiva {
// Path to the byte-code file.
-extern const char kByteCodeFilePath[] = "${GANDIVA_BC_OUTPUT_PATH}";
+extern const char kByteCodeFilePath[] = "${GANDIVA_BC_INSTALL_PATH}";
} // namespace gandiva
diff --git a/cpp/src/gandiva/engine_llvm_test.cc b/cpp/src/gandiva/engine_llvm_test.cc
index fe4f82e..627c385 100644
--- a/cpp/src/gandiva/engine_llvm_test.cc
+++ b/cpp/src/gandiva/engine_llvm_test.cc
@@ -19,6 +19,7 @@
#include <gtest/gtest.h>
#include "gandiva/llvm_types.h"
+#include "gandiva/tests/test_util.h"
namespace gandiva {
@@ -100,7 +101,7 @@ llvm::Function* TestEngine::BuildVecAdd(Engine* engine, LLVMTypes* types) {
TEST_F(TestEngine, TestAddUnoptimised) {
std::unique_ptr<Engine> engine;
- Status status = Engine::Make(ConfigurationBuilder::DefaultConfiguration(), &engine);
+ auto status = Engine::Make(TestConfiguration(), &engine);
EXPECT_TRUE(status.ok()) << status.message();
LLVMTypes types(*engine->context());
llvm::Function* ir_func = BuildVecAdd(engine.get(), &types);
@@ -115,7 +116,7 @@ TEST_F(TestEngine, TestAddUnoptimised) {
TEST_F(TestEngine, TestAddOptimised) {
std::unique_ptr<Engine> engine;
- Status status = Engine::Make(ConfigurationBuilder::DefaultConfiguration(), &engine);
+ auto status = Engine::Make(TestConfiguration(), &engine);
EXPECT_TRUE(status.ok()) << status.message();
LLVMTypes types(*engine->context());
llvm::Function* ir_func = BuildVecAdd(engine.get(), &types);
diff --git a/cpp/src/gandiva/llvm_generator_test.cc b/cpp/src/gandiva/llvm_generator_test.cc
index 818c791..fed6339 100644
--- a/cpp/src/gandiva/llvm_generator_test.cc
+++ b/cpp/src/gandiva/llvm_generator_test.cc
@@ -26,6 +26,7 @@
#include "gandiva/expression.h"
#include "gandiva/func_descriptor.h"
#include "gandiva/function_registry.h"
+#include "gandiva/tests/test_util.h"
namespace gandiva {
@@ -39,8 +40,7 @@ class TestLLVMGenerator : public ::testing::Test {
// Verify that a valid pc function exists for every function in the registry.
TEST_F(TestLLVMGenerator, VerifyPCFunctions) {
std::unique_ptr<LLVMGenerator> generator;
- Status status =
- LLVMGenerator::Make(ConfigurationBuilder::DefaultConfiguration(), &generator);
+ auto status = LLVMGenerator::Make(TestConfiguration(), &generator);
EXPECT_TRUE(status.ok()) << status.message();
llvm::Module* module = generator->module();
@@ -54,8 +54,7 @@ TEST_F(TestLLVMGenerator, VerifyPCFunctions) {
TEST_F(TestLLVMGenerator, TestAdd) {
// Setup LLVM generator to do an arithmetic add of two vectors
std::unique_ptr<LLVMGenerator> generator;
- Status status =
- LLVMGenerator::Make(ConfigurationBuilder::DefaultConfiguration(), &generator);
+ auto status = LLVMGenerator::Make(TestConfiguration(), &generator);
EXPECT_TRUE(status.ok());
Annotator annotator;
diff --git a/cpp/src/gandiva/tests/binary_test.cc b/cpp/src/gandiva/tests/binary_test.cc
index d5d99db..6ac3c51 100644
--- a/cpp/src/gandiva/tests/binary_test.cc
+++ b/cpp/src/gandiva/tests/binary_test.cc
@@ -61,7 +61,7 @@ TEST_F(TestBinary, TestSimple) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
// Create a row-batch with some sample data
diff --git a/cpp/src/gandiva/tests/boolean_expr_test.cc b/cpp/src/gandiva/tests/boolean_expr_test.cc
index 3351ab3..9226f35 100644
--- a/cpp/src/gandiva/tests/boolean_expr_test.cc
+++ b/cpp/src/gandiva/tests/boolean_expr_test.cc
@@ -60,7 +60,7 @@ TEST_F(TestBooleanExpr, SimpleAnd) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// FALSE_VALID && ? => FALSE_VALID
@@ -133,7 +133,7 @@ TEST_F(TestBooleanExpr, SimpleOr) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// TRUE_VALID && ? => TRUE_VALID
@@ -210,7 +210,7 @@ TEST_F(TestBooleanExpr, AndThree) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
int num_records = 8;
@@ -257,7 +257,7 @@ TEST_F(TestBooleanExpr, OrThree) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
int num_records = 8;
@@ -317,7 +317,7 @@ TEST_F(TestBooleanExpr, BooleanAndInsideIf) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
int num_records = 4;
@@ -368,7 +368,7 @@ TEST_F(TestBooleanExpr, IfInsideBooleanAnd) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
int num_records = 4;
diff --git a/cpp/src/gandiva/tests/date_time_test.cc b/cpp/src/gandiva/tests/date_time_test.cc
index 3914558..643b8c8 100644
--- a/cpp/src/gandiva/tests/date_time_test.cc
+++ b/cpp/src/gandiva/tests/date_time_test.cc
@@ -73,7 +73,8 @@ TEST_F(TestProjector, TestIsNull) {
auto isnotnull_expr = TreeExprBuilder::MakeExpression("isnotnull", {t0}, b0);
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {isnull_expr, isnotnull_expr}, &projector);
+ auto status = Projector::Make(schema, {isnull_expr, isnotnull_expr},
+ TestConfiguration(), &projector);
ASSERT_TRUE(status.ok());
int num_records = 4;
@@ -126,8 +127,9 @@ TEST_F(TestProjector, TestDateTime) {
auto ts2day_expr = TreeExprBuilder::MakeExpression("extractDay", {field2}, field_day);
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(
- schema, {date2year_expr, date2month_expr, ts2month_expr, ts2day_expr}, &projector);
+ auto status = Projector::Make(
+ schema, {date2year_expr, date2month_expr, ts2month_expr, ts2day_expr},
+ TestConfiguration(), &projector);
ASSERT_TRUE(status.ok());
struct tm y1970;
@@ -196,7 +198,8 @@ TEST_F(TestProjector, TestTime) {
TreeExprBuilder::MakeExpression("extractHour", {field0}, field_hour);
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {time2min_expr, time2hour_expr}, &projector);
+ auto status = Projector::Make(schema, {time2min_expr, time2hour_expr},
+ TestConfiguration(), &projector);
ASSERT_TRUE(status.ok());
// create input data
@@ -264,7 +267,7 @@ TEST_F(TestProjector, TestTimestampDiff) {
std::shared_ptr<Projector> projector;
auto exprs = {diff_secs_expr, diff_mins_expr, diff_hours_expr, diff_days_expr,
diff_weeks_expr, diff_months_expr, diff_quarters_expr, diff_years_expr};
- Status status = Projector::Make(schema, exprs, &projector);
+ auto status = Projector::Make(schema, exprs, TestConfiguration(), &projector);
ASSERT_TRUE(status.ok());
struct tm y1970;
@@ -337,7 +340,8 @@ TEST_F(TestProjector, TestMonthsBetween) {
TreeExprBuilder::MakeExpression("months_between", {f0, f1}, output);
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {months_between_expr}, &projector);
+ auto status =
+ Projector::Make(schema, {months_between_expr}, TestConfiguration(), &projector);
std::cout << status.message();
ASSERT_TRUE(status.ok());
diff --git a/cpp/src/gandiva/tests/filter_test.cc b/cpp/src/gandiva/tests/filter_test.cc
index f95cdcc..ee60388 100644
--- a/cpp/src/gandiva/tests/filter_test.cc
+++ b/cpp/src/gandiva/tests/filter_test.cc
@@ -50,14 +50,15 @@ TEST_F(TestFilter, TestFilterCache) {
auto less_than_10 = TreeExprBuilder::MakeFunction("less_than", {sum_func, literal_10},
arrow::boolean());
auto condition = TreeExprBuilder::MakeCondition(less_than_10);
+ auto configuration = TestConfiguration();
std::shared_ptr<Filter> filter;
- Status status = Filter::Make(schema, condition, &filter);
+ auto status = Filter::Make(schema, condition, configuration, &filter);
EXPECT_TRUE(status.ok());
// same schema and condition, should return the same filter as above.
std::shared_ptr<Filter> cached_filter;
- status = Filter::Make(schema, condition, &cached_filter);
+ status = Filter::Make(schema, condition, configuration, &cached_filter);
EXPECT_TRUE(status.ok());
EXPECT_TRUE(cached_filter.get() == filter.get());
@@ -65,7 +66,8 @@ TEST_F(TestFilter, TestFilterCache) {
auto field2 = field("f2", int32());
auto different_schema = arrow::schema({field0, field1, field2});
std::shared_ptr<Filter> should_be_new_filter;
- status = Filter::Make(different_schema, condition, &should_be_new_filter);
+ status =
+ Filter::Make(different_schema, condition, configuration, &should_be_new_filter);
EXPECT_TRUE(status.ok());
EXPECT_TRUE(cached_filter.get() != should_be_new_filter.get());
@@ -74,7 +76,7 @@ TEST_F(TestFilter, TestFilterCache) {
"greater_than", {sum_func, literal_10}, arrow::boolean());
auto new_condition = TreeExprBuilder::MakeCondition(greater_than_10);
std::shared_ptr<Filter> should_be_new_filter1;
- status = Filter::Make(schema, new_condition, &should_be_new_filter1);
+ status = Filter::Make(schema, new_condition, configuration, &should_be_new_filter1);
EXPECT_TRUE(status.ok());
EXPECT_TRUE(cached_filter.get() != should_be_new_filter1.get());
}
@@ -96,7 +98,7 @@ TEST_F(TestFilter, TestSimple) {
auto condition = TreeExprBuilder::MakeCondition(less_than_10);
std::shared_ptr<Filter> filter;
- Status status = Filter::Make(schema, condition, &filter);
+ auto status = Filter::Make(schema, condition, TestConfiguration(), &filter);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -134,7 +136,7 @@ TEST_F(TestFilter, TestSimpleCustomConfig) {
std::shared_ptr<Configuration> config = config_builder.build();
std::shared_ptr<Filter> filter;
- Status status = Filter::Make(schema, condition, &filter);
+ auto status = Filter::Make(schema, condition, TestConfiguration(), &filter);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -168,7 +170,7 @@ TEST_F(TestFilter, TestZeroCopy) {
auto condition = TreeExprBuilder::MakeCondition("isnotnull", {field0});
std::shared_ptr<Filter> filter;
- Status status = Filter::Make(schema, condition, &filter);
+ auto status = Filter::Make(schema, condition, TestConfiguration(), &filter);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -208,7 +210,7 @@ TEST_F(TestFilter, TestZeroCopyNegative) {
auto condition = TreeExprBuilder::MakeCondition("isnotnull", {field0});
std::shared_ptr<Filter> filter;
- Status status = Filter::Make(schema, condition, &filter);
+ auto status = Filter::Make(schema, condition, TestConfiguration(), &filter);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -265,7 +267,7 @@ TEST_F(TestFilter, TestSimpleSVInt32) {
auto condition = TreeExprBuilder::MakeCondition(less_than_10);
std::shared_ptr<Filter> filter;
- Status status = Filter::Make(schema, condition, &filter);
+ auto status = Filter::Make(schema, condition, TestConfiguration(), &filter);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
diff --git a/cpp/src/gandiva/tests/hash_test.cc b/cpp/src/gandiva/tests/hash_test.cc
index 96f9228..afaa885 100644
--- a/cpp/src/gandiva/tests/hash_test.cc
+++ b/cpp/src/gandiva/tests/hash_test.cc
@@ -61,7 +61,8 @@ TEST_F(TestHash, TestSimple) {
// Build a projector for the expression.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr_0, expr_1}, &projector);
+ auto status =
+ Projector::Make(schema, {expr_0, expr_1}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
// Create a row-batch with some sample data
@@ -113,7 +114,8 @@ TEST_F(TestHash, TestBuf) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr_0, expr_1}, &projector);
+ auto status =
+ Projector::Make(schema, {expr_0, expr_1}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
// Create a row-batch with some sample data
diff --git a/cpp/src/gandiva/tests/huge_table_test.cc b/cpp/src/gandiva/tests/huge_table_test.cc
index bffcb19..cecf290 100644
--- a/cpp/src/gandiva/tests/huge_table_test.cc
+++ b/cpp/src/gandiva/tests/huge_table_test.cc
@@ -58,7 +58,7 @@ TEST_F(DISABLED_TestHugeProjector, SimpleTestSumHuge) {
// Build expression
auto sum_expr = TreeExprBuilder::MakeExpression("add", {field0, field1}, field_sum);
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {sum_expr}, &projector);
+ auto status = Projector::Make(schema, {sum_expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -136,7 +136,7 @@ TEST_F(DISABLED_TestHugeFilter, TestSimpleHugeFilter) {
auto condition = TreeExprBuilder::MakeCondition(less_than_50);
std::shared_ptr<Filter> filter;
- Status status = Filter::Make(schema, condition, &filter);
+ auto status = Filter::Make(schema, condition, TestConfiguration(), &filter);
EXPECT_TRUE(status.ok());
// prepare input record batch
diff --git a/cpp/src/gandiva/tests/if_expr_test.cc b/cpp/src/gandiva/tests/if_expr_test.cc
index 93b3567..54b6d43 100644
--- a/cpp/src/gandiva/tests/if_expr_test.cc
+++ b/cpp/src/gandiva/tests/if_expr_test.cc
@@ -61,7 +61,7 @@ TEST_F(TestIfExpr, TestSimple) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -110,7 +110,7 @@ TEST_F(TestIfExpr, TestSimpleArithmetic) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -165,7 +165,7 @@ TEST_F(TestIfExpr, TestNested) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -228,7 +228,7 @@ TEST_F(TestIfExpr, TestNestedInIf) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -296,7 +296,7 @@ TEST_F(TestIfExpr, TestNestedInCondition) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -353,7 +353,7 @@ TEST_F(TestIfExpr, TestBigNested) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
diff --git a/cpp/src/gandiva/tests/in_expr_test.cc b/cpp/src/gandiva/tests/in_expr_test.cc
index 13ef97c..2103874 100644
--- a/cpp/src/gandiva/tests/in_expr_test.cc
+++ b/cpp/src/gandiva/tests/in_expr_test.cc
@@ -51,7 +51,7 @@ TEST_F(TestIn, TestInSimple) {
auto condition = TreeExprBuilder::MakeCondition(in_expr);
std::shared_ptr<Filter> filter;
- Status status = Filter::Make(schema, condition, &filter);
+ auto status = Filter::Make(schema, condition, TestConfiguration(), &filter);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -88,7 +88,7 @@ TEST_F(TestIn, TestInString) {
auto condition = TreeExprBuilder::MakeCondition(in_expr);
std::shared_ptr<Filter> filter;
- Status status = Filter::Make(schema, condition, &filter);
+ auto status = Filter::Make(schema, condition, TestConfiguration(), &filter);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -125,7 +125,7 @@ TEST_F(TestIn, TestInStringValidationError) {
auto condition = TreeExprBuilder::MakeCondition(in_expr);
std::shared_ptr<Filter> filter;
- Status status = Filter::Make(schema, condition, &filter);
+ auto status = Filter::Make(schema, condition, TestConfiguration(), &filter);
EXPECT_TRUE(status.IsExpressionValidationError());
std::string expected_error = "Evaluation expression for IN clause returns ";
diff --git a/cpp/src/gandiva/tests/literal_test.cc b/cpp/src/gandiva/tests/literal_test.cc
index ced6645..53323cb 100644
--- a/cpp/src/gandiva/tests/literal_test.cc
+++ b/cpp/src/gandiva/tests/literal_test.cc
@@ -88,8 +88,8 @@ TEST_F(TestLiteral, TestSimpleArithmetic) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status =
- Projector::Make(schema, {expr_a, expr_b, expr_c, expr_d, expr_e}, &projector);
+ auto status = Projector::Make(schema, {expr_a, expr_b, expr_c, expr_d, expr_e},
+ TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -133,7 +133,7 @@ TEST_F(TestLiteral, TestLiteralHash) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
auto res1 = field("a", int64());
@@ -142,7 +142,7 @@ TEST_F(TestLiteral, TestLiteralHash) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector1;
- status = Projector::Make(schema, {expr1}, &projector1);
+ status = Projector::Make(schema, {expr1}, TestConfiguration(), &projector1);
EXPECT_TRUE(status.ok()) << status.message();
EXPECT_TRUE(projector.get() != projector1.get());
}
@@ -165,7 +165,7 @@ TEST_F(TestLiteral, TestNullLiteral) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
// Create a row-batch with some sample data
@@ -207,7 +207,7 @@ TEST_F(TestLiteral, TestNullLiteralInIf) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
// Create a row-batch with some sample data
diff --git a/cpp/src/gandiva/tests/micro_benchmarks.cc b/cpp/src/gandiva/tests/micro_benchmarks.cc
index 7d844eb..ce86bf0 100644
--- a/cpp/src/gandiva/tests/micro_benchmarks.cc
+++ b/cpp/src/gandiva/tests/micro_benchmarks.cc
@@ -56,7 +56,7 @@ static void TimedTestAdd3(benchmark::State& state) {
auto sum_expr = TreeExprBuilder::MakeExpression(sum, field_sum);
std::shared_ptr<Projector> projector;
- ASSERT_OK(Projector::Make(schema, {sum_expr}, &projector));
+ ASSERT_OK(Projector::Make(schema, {sum_expr}, TestConfiguration(), &projector));
Int64DataGenerator data_generator;
ProjectEvaluator evaluator(projector);
@@ -99,7 +99,7 @@ static void TimedTestBigNested(benchmark::State& state) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- ASSERT_OK(Projector::Make(schema, {expr}, &projector));
+ ASSERT_OK(Projector::Make(schema, {expr}, TestConfiguration(), &projector));
BoundedInt32DataGenerator data_generator(250);
ProjectEvaluator evaluator(projector);
@@ -122,7 +122,7 @@ static void TimedTestExtractYear(benchmark::State& state) {
auto expr = TreeExprBuilder::MakeExpression("extractYear", {field0}, field_res);
std::shared_ptr<Projector> projector;
- ASSERT_OK(Projector::Make(schema, {expr}, &projector));
+ ASSERT_OK(Projector::Make(schema, {expr}, TestConfiguration(), &projector));
Int64DataGenerator data_generator;
ProjectEvaluator evaluator(projector);
@@ -149,7 +149,7 @@ static void TimedTestFilterAdd2(benchmark::State& state) {
auto condition = TreeExprBuilder::MakeCondition(less_than);
std::shared_ptr<Filter> filter;
- ASSERT_OK(Filter::Make(schema, condition, &filter));
+ ASSERT_OK(Filter::Make(schema, condition, TestConfiguration(), &filter));
Int64DataGenerator data_generator;
FilterEvaluator evaluator(filter);
@@ -173,7 +173,7 @@ static void TimedTestFilterLike(benchmark::State& state) {
auto condition = TreeExprBuilder::MakeCondition(like_yellow);
std::shared_ptr<Filter> filter;
- ASSERT_OK(Filter::Make(schema, condition, &filter));
+ ASSERT_OK(Filter::Make(schema, condition, TestConfiguration(), &filter));
FastUtf8DataGenerator data_generator(32);
FilterEvaluator evaluator(filter);
@@ -199,7 +199,7 @@ static void TimedTestAllocs(benchmark::State& state) {
auto expr = TreeExprBuilder::MakeExpression(length, field_res);
std::shared_ptr<Projector> projector;
- ASSERT_OK(Projector::Make(schema, {expr}, &projector));
+ ASSERT_OK(Projector::Make(schema, {expr}, TestConfiguration(), &projector));
FastUtf8DataGenerator data_generator(64);
ProjectEvaluator evaluator(projector);
@@ -237,7 +237,7 @@ static void TimedTestMultiOr(benchmark::State& state) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- ASSERT_OK(Projector::Make(schema, {expr}, &projector));
+ ASSERT_OK(Projector::Make(schema, {expr}, TestConfiguration(), &projector));
FastUtf8DataGenerator data_generator(250);
ProjectEvaluator evaluator(projector);
@@ -269,7 +269,7 @@ static void TimedTestInExpr(benchmark::State& state) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- ASSERT_OK(Projector::Make(schema, {expr}, &projector));
+ ASSERT_OK(Projector::Make(schema, {expr}, TestConfiguration(), &projector));
FastUtf8DataGenerator data_generator(250);
ProjectEvaluator evaluator(projector);
diff --git a/cpp/src/gandiva/tests/null_validity_test.cc b/cpp/src/gandiva/tests/null_validity_test.cc
index 06cfdc0..0374b68 100644
--- a/cpp/src/gandiva/tests/null_validity_test.cc
+++ b/cpp/src/gandiva/tests/null_validity_test.cc
@@ -60,7 +60,7 @@ TEST_F(TestNullValidity, TestFunc) {
auto condition = TreeExprBuilder::MakeCondition(less_than_10);
std::shared_ptr<Filter> filter;
- Status status = Filter::Make(schema, condition, &filter);
+ auto status = Filter::Make(schema, condition, TestConfiguration(), &filter);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -111,7 +111,7 @@ TEST_F(TestNullValidity, TestIfElse) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -148,7 +148,7 @@ TEST_F(TestNullValidity, TestUtf8) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
// Create a row-batch with some sample data
diff --git a/cpp/src/gandiva/tests/projector_build_validation_test.cc b/cpp/src/gandiva/tests/projector_build_validation_test.cc
index 18f0295..6c4eef5 100644
--- a/cpp/src/gandiva/tests/projector_build_validation_test.cc
+++ b/cpp/src/gandiva/tests/projector_build_validation_test.cc
@@ -50,7 +50,7 @@ TEST_F(TestProjector, TestNonExistentFunction) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {lt_expr}, &projector);
+ auto status = Projector::Make(schema, {lt_expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.IsExpressionValidationError());
std::string expected_error =
"Function bool non_existent_function(float, float) not supported yet.";
@@ -71,7 +71,7 @@ TEST_F(TestProjector, TestNotMatchingDataType) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {lt_expr}, &projector);
+ auto status = Projector::Make(schema, {lt_expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.IsExpressionValidationError());
std::string expected_error =
"Return type of root node float does not match that of expression bool";
@@ -92,7 +92,7 @@ TEST_F(TestProjector, TestNotSupportedDataType) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {lt_expr}, &projector);
+ auto status = Projector::Make(schema, {lt_expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.IsExpressionValidationError());
std::string expected_error = "Field f0 has unsupported data type list";
EXPECT_TRUE(status.message().find(expected_error) != std::string::npos);
@@ -113,7 +113,7 @@ TEST_F(TestProjector, TestIncorrectSchemaMissingField) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {lt_expr}, &projector);
+ auto status = Projector::Make(schema, {lt_expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.IsExpressionValidationError());
std::string expected_error = "Field f2 not in schema";
EXPECT_TRUE(status.message().find(expected_error) != std::string::npos);
@@ -135,7 +135,7 @@ TEST_F(TestProjector, TestIncorrectSchemaTypeNotMatching) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {lt_expr}, &projector);
+ auto status = Projector::Make(schema, {lt_expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.IsExpressionValidationError());
std::string expected_error =
"Field definition in schema f2: int32 different from field in expression f2: float";
@@ -166,7 +166,7 @@ TEST_F(TestProjector, TestIfNotSupportedFunction) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.IsExpressionValidationError());
}
@@ -189,7 +189,7 @@ TEST_F(TestProjector, TestIfNotMatchingReturnType) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.IsExpressionValidationError());
}
@@ -214,7 +214,7 @@ TEST_F(TestProjector, TestElseNotMatchingReturnType) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.IsExpressionValidationError());
}
@@ -239,7 +239,7 @@ TEST_F(TestProjector, TestElseNotSupportedType) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.IsExpressionValidationError());
EXPECT_EQ(status.code(), StatusCode::ExpressionValidationError);
}
@@ -259,7 +259,7 @@ TEST_F(TestProjector, TestAndMinChildren) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.IsExpressionValidationError());
}
@@ -280,7 +280,7 @@ TEST_F(TestProjector, TestAndBooleanArgType) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.IsExpressionValidationError());
}
diff --git a/cpp/src/gandiva/tests/projector_test.cc b/cpp/src/gandiva/tests/projector_test.cc
index 61d9dc3..1aeb43b 100644
--- a/cpp/src/gandiva/tests/projector_test.cc
+++ b/cpp/src/gandiva/tests/projector_test.cc
@@ -50,14 +50,17 @@ TEST_F(TestProjector, TestProjectCache) {
auto sub_expr =
TreeExprBuilder::MakeExpression("subtract", {field0, field1}, field_sub);
+ auto configuration = TestConfiguration();
+
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {sum_expr, sub_expr}, &projector);
+ auto status = Projector::Make(schema, {sum_expr, sub_expr}, configuration, &projector);
EXPECT_TRUE(status.ok());
// everything is same, should return the same projector.
auto schema_same = arrow::schema({field0, field1});
std::shared_ptr<Projector> cached_projector;
- status = Projector::Make(schema_same, {sum_expr, sub_expr}, &cached_projector);
+ status = Projector::Make(schema_same, {sum_expr, sub_expr}, configuration,
+ &cached_projector);
EXPECT_TRUE(status.ok());
EXPECT_TRUE(cached_projector.get() == projector.get());
@@ -65,14 +68,14 @@ TEST_F(TestProjector, TestProjectCache) {
auto field2 = field("f2", int32());
auto different_schema = arrow::schema({field0, field1, field2});
std::shared_ptr<Projector> should_be_new_projector;
- status =
- Projector::Make(different_schema, {sum_expr, sub_expr}, &should_be_new_projector);
+ status = Projector::Make(different_schema, {sum_expr, sub_expr}, configuration,
+ &should_be_new_projector);
EXPECT_TRUE(status.ok());
EXPECT_TRUE(cached_projector.get() != should_be_new_projector.get());
// expression list is different should return a new projector.
std::shared_ptr<Projector> should_be_new_projector1;
- status = Projector::Make(schema, {sum_expr}, &should_be_new_projector1);
+ status = Projector::Make(schema, {sum_expr}, configuration, &should_be_new_projector1);
EXPECT_TRUE(status.ok());
EXPECT_TRUE(cached_projector.get() != should_be_new_projector1.get());
}
@@ -90,12 +93,13 @@ TEST_F(TestProjector, TestProjectCacheFieldNames) {
auto sum_expr_01 = TreeExprBuilder::MakeExpression("add", {field0, field1}, sum_01);
std::shared_ptr<Projector> projector_01;
- Status status = Projector::Make(schema, {sum_expr_01}, &projector_01);
+ auto status =
+ Projector::Make(schema, {sum_expr_01}, TestConfiguration(), &projector_01);
EXPECT_TRUE(status.ok());
auto sum_expr_12 = TreeExprBuilder::MakeExpression("add", {field1, field2}, sum_12);
std::shared_ptr<Projector> projector_12;
- status = Projector::Make(schema, {sum_expr_12}, &projector_12);
+ status = Projector::Make(schema, {sum_expr_12}, TestConfiguration(), &projector_12);
EXPECT_TRUE(status.ok());
// add(f0, f1) != add(f1, f2)
@@ -111,14 +115,16 @@ TEST_F(TestProjector, TestProjectCacheDouble) {
auto literal0 = TreeExprBuilder::MakeLiteral(d0);
auto expr0 = TreeExprBuilder::MakeExpression(literal0, res);
+ auto configuration = TestConfiguration();
+
std::shared_ptr<Projector> projector0;
- auto status = Projector::Make(schema, {expr0}, &projector0);
+ auto status = Projector::Make(schema, {expr0}, configuration, &projector0);
EXPECT_TRUE(status.ok()) << status.message();
auto literal1 = TreeExprBuilder::MakeLiteral(d1);
auto expr1 = TreeExprBuilder::MakeExpression(literal1, res);
std::shared_ptr<Projector> projector1;
- status = Projector::Make(schema, {expr1}, &projector1);
+ status = Projector::Make(schema, {expr1}, configuration, &projector1);
EXPECT_TRUE(status.ok()) << status.message();
EXPECT_TRUE(projector0.get() != projector1.get());
@@ -134,13 +140,13 @@ TEST_F(TestProjector, TestProjectCacheFloat) {
auto literal0 = TreeExprBuilder::MakeLiteral(f0);
auto expr0 = TreeExprBuilder::MakeExpression(literal0, res);
std::shared_ptr<Projector> projector0;
- auto status = Projector::Make(schema, {expr0}, &projector0);
+ auto status = Projector::Make(schema, {expr0}, TestConfiguration(), &projector0);
EXPECT_TRUE(status.ok()) << status.message();
auto literal1 = TreeExprBuilder::MakeLiteral(f1);
auto expr1 = TreeExprBuilder::MakeExpression(literal1, res);
std::shared_ptr<Projector> projector1;
- status = Projector::Make(schema, {expr1}, &projector1);
+ status = Projector::Make(schema, {expr1}, TestConfiguration(), &projector1);
EXPECT_TRUE(status.ok()) << status.message();
EXPECT_TRUE(projector0.get() != projector1.get());
@@ -162,50 +168,8 @@ TEST_F(TestProjector, TestIntSumSub) {
TreeExprBuilder::MakeExpression("subtract", {field0, field1}, field_sub);
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {sum_expr, sub_expr}, &projector);
- EXPECT_TRUE(status.ok());
-
- // Create a row-batch with some sample data
- int num_records = 4;
- auto array0 = MakeArrowArrayInt32({1, 2, 3, 4}, {true, true, true, false});
- auto array1 = MakeArrowArrayInt32({11, 13, 15, 17}, {true, true, false, true});
- // expected output
- auto exp_sum = MakeArrowArrayInt32({12, 15, 0, 0}, {true, true, false, false});
- auto exp_sub = MakeArrowArrayInt32({-10, -11, 0, 0}, {true, true, false, false});
-
- // prepare input record batch
- auto in_batch = arrow::RecordBatch::Make(schema, num_records, {array0, array1});
-
- // Evaluate expression
- arrow::ArrayVector outputs;
- status = projector->Evaluate(*in_batch, pool_, &outputs);
- EXPECT_TRUE(status.ok());
-
- // Validate results
- EXPECT_ARROW_ARRAY_EQUALS(exp_sum, outputs.at(0));
- EXPECT_ARROW_ARRAY_EQUALS(exp_sub, outputs.at(1));
-}
-
-TEST_F(TestProjector, TestIntSumSubCustomConfig) {
- // schema for input fields
- auto field0 = field("f0", int32());
- auto field1 = field("f2", int32());
- auto schema = arrow::schema({field0, field1});
-
- // output fields
- auto field_sum = field("add", int32());
- auto field_sub = field("subtract", int32());
-
- // Build expression
- auto sum_expr = TreeExprBuilder::MakeExpression("add", {field0, field1}, field_sum);
- auto sub_expr =
- TreeExprBuilder::MakeExpression("subtract", {field0, field1}, field_sub);
-
- std::shared_ptr<Projector> projector;
- ConfigurationBuilder config_builder;
- std::shared_ptr<Configuration> config = config_builder.build();
-
- Status status = Projector::Make(schema, {sum_expr, sub_expr}, config, &projector);
+ auto status =
+ Projector::Make(schema, {sum_expr, sub_expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -257,8 +221,9 @@ static void TestArithmeticOpsForType(arrow::MemoryPool* pool) {
auto lt_expr = TreeExprBuilder::MakeExpression("less_than", {field0, field1}, field_lt);
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(
- schema, {sum_expr, sub_expr, mul_expr, div_expr, eq_expr, lt_expr}, &projector);
+ auto status =
+ Projector::Make(schema, {sum_expr, sub_expr, mul_expr, div_expr, eq_expr, lt_expr},
+ TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -344,9 +309,9 @@ TEST_F(TestProjector, TestExtendedMath) {
TreeExprBuilder::MakeExpression("power", {field0, field1}, field_power);
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(
+ auto status = Projector::Make(
schema, {cbrt_expr, exp_expr, log_expr, log10_expr, logb_expr, power_expr},
- &projector);
+ TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -412,7 +377,7 @@ TEST_F(TestProjector, TestFloatLessThan) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {lt_expr}, &projector);
+ auto status = Projector::Make(schema, {lt_expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -447,7 +412,7 @@ TEST_F(TestProjector, TestIsNotNull) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {myexpr}, &projector);
+ auto status = Projector::Make(schema, {myexpr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -480,7 +445,7 @@ TEST_F(TestProjector, TestZeroCopy) {
auto cast_expr = TreeExprBuilder::MakeExpression("castFLOAT4", {field0}, res);
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {cast_expr}, &projector);
+ auto status = Projector::Make(schema, {cast_expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -527,7 +492,7 @@ TEST_F(TestProjector, TestZeroCopyNegative) {
auto cast_expr = TreeExprBuilder::MakeExpression("castFLOAT4", {field0}, res);
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {cast_expr}, &projector);
+ auto status = Projector::Make(schema, {cast_expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok());
// Create a row-batch with some sample data
@@ -597,7 +562,7 @@ TEST_F(TestProjector, TestDivideZero) {
auto div_expr = TreeExprBuilder::MakeExpression("divide", {field0, field1}, field_div);
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {div_expr}, &projector);
+ auto status = Projector::Make(schema, {div_expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
// Create a row-batch with some sample data
@@ -646,7 +611,7 @@ TEST_F(TestProjector, TestModZero) {
auto mod_expr = TreeExprBuilder::MakeExpression("mod", {field0, field1}, field_div);
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {mod_expr}, &projector);
+ auto status = Projector::Make(schema, {mod_expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
// Create a row-batch with some sample data
diff --git a/cpp/src/gandiva/tests/test_util.h b/cpp/src/gandiva/tests/test_util.h
index d244487..72b45b1 100644
--- a/cpp/src/gandiva/tests/test_util.h
+++ b/cpp/src/gandiva/tests/test_util.h
@@ -73,6 +73,12 @@ static ArrayPtr MakeArrowTypeArray(const std::shared_ptr<arrow::DataType>& type,
EXPECT_TRUE((a)->Equals(b)) << "expected array: " << (a)->ToString() \
<< " actual array: " << (b)->ToString();
+std::shared_ptr<Configuration> TestConfiguration() {
+ auto builder = ConfigurationBuilder();
+ builder.set_byte_code_file_path(GANDIVA_BYTE_COMPILE_FILE_PATH);
+ return builder.build();
+}
+
} // namespace gandiva
#endif // GANDIVA_TEST_UTIL_H
diff --git a/cpp/src/gandiva/tests/utf8_test.cc b/cpp/src/gandiva/tests/utf8_test.cc
index 8b09b72..925ceea 100644
--- a/cpp/src/gandiva/tests/utf8_test.cc
+++ b/cpp/src/gandiva/tests/utf8_test.cc
@@ -67,7 +67,8 @@ TEST_F(TestUtf8, TestSimple) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr_a, expr_b, expr_c}, &projector);
+ auto status =
+ Projector::Make(schema, {expr_a, expr_b, expr_c}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
// Create a row-batch with some sample data
@@ -113,7 +114,7 @@ TEST_F(TestUtf8, TestLiteral) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
// Create a row-batch with some sample data
@@ -155,7 +156,7 @@ TEST_F(TestUtf8, TestNullLiteral) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
// Create a row-batch with some sample data
@@ -197,7 +198,7 @@ TEST_F(TestUtf8, TestLike) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
// Create a row-batch with some sample data
@@ -245,7 +246,7 @@ TEST_F(TestUtf8, TestBeginsEnds) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr1, expr2}, &projector);
+ auto status = Projector::Make(schema, {expr1, expr2}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
// Create a row-batch with some sample data
@@ -291,7 +292,7 @@ TEST_F(TestUtf8, TestInternalAllocs) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
// Create a row-batch with some sample data
@@ -334,7 +335,7 @@ TEST_F(TestUtf8, TestCastDate) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
// Create a row-batch with some sample data
@@ -389,7 +390,7 @@ TEST_F(TestUtf8, TestToDateNoError) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
// Create a row-batch with some sample data
@@ -444,7 +445,7 @@ TEST_F(TestUtf8, TestToDateError) {
// Build a projector for the expressions.
std::shared_ptr<Projector> projector;
- Status status = Projector::Make(schema, {expr}, &projector);
+ auto status = Projector::Make(schema, {expr}, TestConfiguration(), &projector);
EXPECT_TRUE(status.ok()) << status.message();
// Create a row-batch with some sample data
diff --git a/java/gandiva/pom.xml b/java/gandiva/pom.xml
index 39752e2..d365eb9 100644
--- a/java/gandiva/pom.xml
+++ b/java/gandiva/pom.xml
@@ -133,7 +133,7 @@
</includes>
</resource>
<resource>
- <directory>${gandiva.cpp.build.dir}</directory>
+ <directory>${gandiva.cpp.build.dir}/../src/gandiva</directory>
<includes>
<include>irhelpers.bc</include>
</includes>