Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions cpp/cmake_modules/DefineOptions.cmake
Original file line numberDiff line numberDiff line change
Expand Up@@ -296,7 +296,7 @@ takes precedence over ccache if a storage backend is configured" ON)

define_option(ARROW_BUILD_UTILITIES "Build Arrow commandline utilities" OFF)

define_option(ARROW_COMPUTE "Build the Arrow Compute Modules" OFF)
define_option(ARROW_COMPUTE "Build all Arrow Compute kernels" OFF)

define_option(ARROW_CSV "Build the Arrow CSV Parser Module" OFF)

Expand DownExpand Up@@ -361,7 +361,6 @@ takes precedence over ccache if a storage backend is configured" ON)
"Build the Parquet libraries"
OFF
DEPENDS
ARROW_COMPUTE
ARROW_IPC)

define_option(ARROW_ORC
Expand Down
155 changes: 75 additions & 80 deletions cpp/src/arrow/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -375,73 +375,93 @@ if(ARROW_CSV)
csv/column_decoder.cc
csv/options.cc
csv/parser.cc
csv/reader.cc)
if(ARROW_COMPUTE)
list(APPEND ARROW_SRCS csv/writer.cc)
endif()
csv/reader.cc
csv/writer.cc)

list(APPEND ARROW_TESTING_SRCS csv/test_common.cc)
endif()

# Baseline Compute functionality + scalar casts and a few select kernels
list(APPEND
ARROW_SRCS
compute/api_aggregate.cc
compute/api_scalar.cc
compute/api_vector.cc
compute/cast.cc
compute/exec.cc
compute/exec/groupby.cc
compute/exec/accumulation_queue.cc
compute/exec/aggregate_node.cc
compute/exec/asof_join_node.cc
compute/exec/bloom_filter.cc
compute/exec/exec_plan.cc
compute/exec/expression.cc
compute/exec/fetch_node.cc
compute/exec/filter_node.cc
compute/exec/hash_join.cc
compute/exec/hash_join_dict.cc
compute/exec/hash_join_node.cc
compute/exec/key_hash.cc
compute/exec/key_map.cc
compute/exec/map_node.cc
compute/exec/options.cc
compute/exec/order_by_impl.cc
compute/exec/partition_util.cc
compute/exec/project_node.cc
compute/exec/query_context.cc
compute/exec/sink_node.cc
compute/exec/source_node.cc
compute/exec/swiss_join.cc
compute/exec/task_util.cc
compute/exec/tpch_node.cc
compute/exec/union_node.cc
compute/exec/util.cc
compute/function.cc
compute/function_internal.cc
compute/kernel.cc
compute/light_array.cc
compute/ordering.cc
compute/registry.cc
compute/kernels/codegen_internal.cc
compute/kernels/row_encoder.cc
compute/kernels/scalar_cast_boolean.cc
compute/kernels/scalar_cast_dictionary.cc
compute/kernels/scalar_cast_extension.cc
compute/kernels/scalar_cast_internal.cc
compute/kernels/scalar_cast_nested.cc
compute/kernels/scalar_cast_numeric.cc
compute/kernels/scalar_cast_string.cc
compute/kernels/scalar_cast_temporal.cc
compute/kernels/util_internal.cc
compute/kernels/vector_hash.cc
compute/kernels/vector_selection.cc
compute/row/encode_internal.cc
compute/row/compare_internal.cc
compute/row/grouper.cc
compute/row/row_internal.cc)

append_avx2_src(compute/exec/bloom_filter_avx2.cc)
append_avx2_src(compute/exec/key_hash_avx2.cc)
append_avx2_src(compute/exec/key_map_avx2.cc)
append_avx2_src(compute/exec/swiss_join_avx2.cc)
append_avx2_src(compute/exec/util_avx2.cc)
append_avx2_src(compute/row/compare_internal_avx2.cc)
append_avx2_src(compute/row/encode_internal_avx2.cc)

list(APPEND ARROW_TESTING_SRCS compute/exec/test_util.cc)

if(ARROW_COMPUTE)
# Include the remaining kernels
list(APPEND
ARROW_SRCS
compute/api_aggregate.cc
compute/api_scalar.cc
compute/api_vector.cc
compute/cast.cc
compute/exec.cc
compute/exec/groupby.cc
compute/exec/accumulation_queue.cc
compute/exec/aggregate_node.cc
compute/exec/asof_join_node.cc
compute/exec/bloom_filter.cc
compute/exec/exec_plan.cc
compute/exec/expression.cc
compute/exec/fetch_node.cc
compute/exec/filter_node.cc
compute/exec/hash_join.cc
compute/exec/hash_join_dict.cc
compute/exec/hash_join_node.cc
compute/exec/key_hash.cc
compute/exec/key_map.cc
compute/exec/map_node.cc
compute/exec/options.cc
compute/exec/order_by_impl.cc
compute/exec/partition_util.cc
compute/exec/project_node.cc
compute/exec/query_context.cc
compute/exec/sink_node.cc
compute/exec/source_node.cc
compute/exec/swiss_join.cc
compute/exec/task_util.cc
compute/exec/tpch_node.cc
compute/exec/union_node.cc
compute/exec/util.cc
compute/function.cc
compute/function_internal.cc
compute/kernel.cc
compute/light_array.cc
compute/ordering.cc
compute/registry.cc
compute/kernels/aggregate_basic.cc
compute/kernels/aggregate_mode.cc
compute/kernels/aggregate_quantile.cc
compute/kernels/aggregate_tdigest.cc
compute/kernels/aggregate_var_std.cc
compute/kernels/codegen_internal.cc
compute/kernels/hash_aggregate.cc
compute/kernels/row_encoder.cc
compute/kernels/scalar_arithmetic.cc
compute/kernels/scalar_boolean.cc
compute/kernels/scalar_cast_boolean.cc
compute/kernels/scalar_cast_dictionary.cc
compute/kernels/scalar_cast_extension.cc
compute/kernels/scalar_cast_internal.cc
compute/kernels/scalar_cast_nested.cc
compute/kernels/scalar_cast_numeric.cc
compute/kernels/scalar_cast_string.cc
compute/kernels/scalar_cast_temporal.cc
compute/kernels/scalar_compare.cc
compute/kernels/scalar_if_else.cc
compute/kernels/scalar_nested.cc
Expand All@@ -453,33 +473,16 @@ if(ARROW_COMPUTE)
compute/kernels/scalar_temporal_binary.cc
compute/kernels/scalar_temporal_unary.cc
compute/kernels/scalar_validity.cc
compute/kernels/util_internal.cc
compute/kernels/vector_array_sort.cc
compute/kernels/vector_cumulative_ops.cc
compute/kernels/vector_hash.cc
compute/kernels/vector_nested.cc
compute/kernels/vector_rank.cc
compute/kernels/vector_replace.cc
compute/kernels/vector_select_k.cc
compute/kernels/vector_selection.cc
compute/kernels/vector_sort.cc
compute/row/encode_internal.cc
compute/row/compare_internal.cc
compute/row/grouper.cc
compute/row/row_internal.cc)
compute/kernels/vector_sort.cc)

append_avx2_src(compute/kernels/aggregate_basic_avx2.cc)
append_avx512_src(compute/kernels/aggregate_basic_avx512.cc)

append_avx2_src(compute/exec/bloom_filter_avx2.cc)
append_avx2_src(compute/exec/key_hash_avx2.cc)
append_avx2_src(compute/exec/key_map_avx2.cc)
append_avx2_src(compute/exec/swiss_join_avx2.cc)
append_avx2_src(compute/exec/util_avx2.cc)
append_avx2_src(compute/row/compare_internal_avx2.cc)
append_avx2_src(compute/row/encode_internal_avx2.cc)

list(APPEND ARROW_TESTING_SRCS compute/exec/test_util.cc)
endif()

if(ARROW_FILESYSTEM)
Expand DownExpand Up@@ -800,12 +803,7 @@ add_arrow_test(table_test
add_arrow_test(tensor_test)
add_arrow_test(sparse_tensor_test)

set(STL_TEST_SRCS stl_iterator_test.cc)
if(ARROW_COMPUTE)
# This unit test uses compute code
list(APPEND STL_TEST_SRCS stl_test.cc)
endif()
add_arrow_test(stl_test SOURCES ${STL_TEST_SRCS})
add_arrow_test(stl_test SOURCES stl_iterator_test.cc stl_test.cc)

add_arrow_benchmark(builder_benchmark)
add_arrow_benchmark(compare_benchmark)
Expand All@@ -821,6 +819,7 @@ add_subdirectory(testing)

add_subdirectory(array)
add_subdirectory(c)
add_subdirectory(compute)
add_subdirectory(io)
add_subdirectory(tensor)
add_subdirectory(util)
Expand All@@ -830,10 +829,6 @@ if(ARROW_CSV)
add_subdirectory(csv)
endif()

if(ARROW_COMPUTE)
add_subdirectory(compute)
endif()

if(ARROW_SUBSTRAIT)
add_subdirectory(engine)
endif()
Expand Down
6 changes: 1 addition & 5 deletions cpp/src/arrow/array/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,11 +16,7 @@
# under the License.

add_arrow_test(concatenate_test)

if(ARROW_COMPUTE)
# This unit test uses compute code
add_arrow_test(diff_test)
endif()
add_arrow_test(diff_test)

# Headers: top level
arrow_install_all_headers("arrow/array")
20 changes: 19 additions & 1 deletion cpp/src/arrow/compute/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,8 +26,22 @@ arrow_add_pkg_config("arrow-compute")
# Unit tests
#

# The following kernels are always present:
# - array_filter
# - array_take
# - cast
# - dictionary_encode
# - drop_null
# - filter
# - indices_nonzero
# - take
# - unique
# - value_counts
#
# Tests that use additional kernels should specify REQUIRE_ALL_KERNELS to avoid
# being included in minimal builds. See: GH-34388
function(ADD_ARROW_COMPUTE_TEST REL_TEST_NAME)
set(options)
set(options REQUIRE_ALL_KERNELS)
set(one_value_args PREFIX)
set(multi_value_args LABELS)
cmake_parse_arguments(ARG
Expand All@@ -36,6 +50,10 @@ function(ADD_ARROW_COMPUTE_TEST REL_TEST_NAME)
"${multi_value_args}"
${ARGN})

if(ARG_REQUIRE_ALL_KERNELS AND (NOT ARROW_COMPUTE))
return()
endif()

if(ARG_PREFIX)
set(PREFIX ${ARG_PREFIX})
else()
Expand Down
7 changes: 6 additions & 1 deletion cpp/src/arrow/compute/exec/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,41 +18,46 @@
arrow_install_all_headers("arrow/compute/exec")

add_arrow_compute_test(expression_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
expression_test.cc
subtree_test.cc)

add_arrow_compute_test(plan_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
plan_test.cc
test_nodes_test.cc
test_nodes.cc)
add_arrow_compute_test(fetch_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
fetch_node_test.cc
test_nodes.cc)
add_arrow_compute_test(hash_join_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
hash_join_node_test.cc
bloom_filter_test.cc
key_hash_test.cc)
add_arrow_compute_test(asof_join_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
asof_join_node_test.cc
test_nodes.cc)
add_arrow_compute_test(tpch_node_test PREFIX "arrow-compute")
add_arrow_compute_test(union_node_test PREFIX "arrow-compute")
add_arrow_compute_test(groupby_test PREFIX "arrow-compute")
add_arrow_compute_test(groupby_test REQUIRE_ALL_KERNELS PREFIX "arrow-compute")
add_arrow_compute_test(util_test
PREFIX
"arrow-compute"
Expand Down
20 changes: 17 additions & 3 deletions cpp/src/arrow/compute/kernels/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,26 +18,38 @@
# ----------------------------------------------------------------------
# Scalar kernels

add_arrow_compute_test(scalar_cast_test SOURCES scalar_cast_test.cc test_util.cc)
Comment thread
westonpace marked this conversation as resolved.
Outdated

add_arrow_compute_test(scalar_type_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_boolean_test.cc
scalar_cast_test.cc
scalar_nested_test.cc
scalar_string_test.cc
test_util.cc)

add_arrow_compute_test(scalar_if_else_test SOURCES scalar_if_else_test.cc test_util.cc)
add_arrow_compute_test(scalar_if_else_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_if_else_test.cc
test_util.cc)

add_arrow_compute_test(scalar_temporal_test SOURCES scalar_temporal_test.cc test_util.cc)
add_arrow_compute_test(scalar_temporal_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_temporal_test.cc
test_util.cc)

add_arrow_compute_test(scalar_math_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_arithmetic_test.cc
scalar_compare_test.cc
scalar_round_arithmetic_test.cc
test_util.cc)

add_arrow_compute_test(scalar_utility_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_random_test.cc
scalar_set_lookup_test.cc
Expand All@@ -59,6 +71,7 @@ add_arrow_benchmark(scalar_temporal_benchmark PREFIX "arrow-compute")
# Vector kernels

add_arrow_compute_test(vector_test
REQUIRE_ALL_KERNELS
SOURCES
vector_cumulative_ops_test.cc
vector_hash_test.cc
Expand All@@ -82,6 +95,7 @@ add_arrow_benchmark(vector_selection_benchmark PREFIX "arrow-compute")
# Aggregates

add_arrow_compute_test(aggregate_test
REQUIRE_ALL_KERNELS
SOURCES
aggregate_test.cc
hash_aggregate_test.cc
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions cpp/cmake_modules/DefineOptions.cmake
Original file line numberDiff line numberDiff line change
Expand Up@@ -296,7 +296,7 @@ takes precedence over ccache if a storage backend is configured" ON)

define_option(ARROW_BUILD_UTILITIES "Build Arrow commandline utilities" OFF)

define_option(ARROW_COMPUTE "Build the Arrow Compute Modules" OFF)
define_option(ARROW_COMPUTE "Build all Arrow Compute kernels" OFF)

define_option(ARROW_CSV "Build the Arrow CSV Parser Module" OFF)

Expand DownExpand Up@@ -361,7 +361,6 @@ takes precedence over ccache if a storage backend is configured" ON)
"Build the Parquet libraries"
OFF
DEPENDS
ARROW_COMPUTE
ARROW_IPC)

define_option(ARROW_ORC
Expand Down
155 changes: 75 additions & 80 deletions cpp/src/arrow/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -375,73 +375,93 @@ if(ARROW_CSV)
csv/column_decoder.cc
csv/options.cc
csv/parser.cc
csv/reader.cc)
if(ARROW_COMPUTE)
list(APPEND ARROW_SRCS csv/writer.cc)
endif()
csv/reader.cc
csv/writer.cc)

list(APPEND ARROW_TESTING_SRCS csv/test_common.cc)
endif()

# Baseline Compute functionality + scalar casts and a few select kernels
list(APPEND
ARROW_SRCS
compute/api_aggregate.cc
compute/api_scalar.cc
compute/api_vector.cc
compute/cast.cc
compute/exec.cc
compute/exec/groupby.cc
compute/exec/accumulation_queue.cc
compute/exec/aggregate_node.cc
compute/exec/asof_join_node.cc
compute/exec/bloom_filter.cc
compute/exec/exec_plan.cc
compute/exec/expression.cc
compute/exec/fetch_node.cc
compute/exec/filter_node.cc
compute/exec/hash_join.cc
compute/exec/hash_join_dict.cc
compute/exec/hash_join_node.cc
compute/exec/key_hash.cc
compute/exec/key_map.cc
compute/exec/map_node.cc
compute/exec/options.cc
compute/exec/order_by_impl.cc
compute/exec/partition_util.cc
compute/exec/project_node.cc
compute/exec/query_context.cc
compute/exec/sink_node.cc
compute/exec/source_node.cc
compute/exec/swiss_join.cc
compute/exec/task_util.cc
compute/exec/tpch_node.cc
compute/exec/union_node.cc
compute/exec/util.cc
compute/function.cc
compute/function_internal.cc
compute/kernel.cc
compute/light_array.cc
compute/ordering.cc
compute/registry.cc
compute/kernels/codegen_internal.cc
compute/kernels/row_encoder.cc
compute/kernels/scalar_cast_boolean.cc
compute/kernels/scalar_cast_dictionary.cc
compute/kernels/scalar_cast_extension.cc
compute/kernels/scalar_cast_internal.cc
compute/kernels/scalar_cast_nested.cc
compute/kernels/scalar_cast_numeric.cc
compute/kernels/scalar_cast_string.cc
compute/kernels/scalar_cast_temporal.cc
compute/kernels/util_internal.cc
compute/kernels/vector_hash.cc
compute/kernels/vector_selection.cc
compute/row/encode_internal.cc
compute/row/compare_internal.cc
compute/row/grouper.cc
compute/row/row_internal.cc)

append_avx2_src(compute/exec/bloom_filter_avx2.cc)
append_avx2_src(compute/exec/key_hash_avx2.cc)
append_avx2_src(compute/exec/key_map_avx2.cc)
append_avx2_src(compute/exec/swiss_join_avx2.cc)
append_avx2_src(compute/exec/util_avx2.cc)
append_avx2_src(compute/row/compare_internal_avx2.cc)
append_avx2_src(compute/row/encode_internal_avx2.cc)

list(APPEND ARROW_TESTING_SRCS compute/exec/test_util.cc)

if(ARROW_COMPUTE)
# Include the remaining kernels
list(APPEND
ARROW_SRCS
compute/api_aggregate.cc
compute/api_scalar.cc
compute/api_vector.cc
compute/cast.cc
compute/exec.cc
compute/exec/groupby.cc
compute/exec/accumulation_queue.cc
compute/exec/aggregate_node.cc
compute/exec/asof_join_node.cc
compute/exec/bloom_filter.cc
compute/exec/exec_plan.cc
compute/exec/expression.cc
compute/exec/fetch_node.cc
compute/exec/filter_node.cc
compute/exec/hash_join.cc
compute/exec/hash_join_dict.cc
compute/exec/hash_join_node.cc
compute/exec/key_hash.cc
compute/exec/key_map.cc
compute/exec/map_node.cc
compute/exec/options.cc
compute/exec/order_by_impl.cc
compute/exec/partition_util.cc
compute/exec/project_node.cc
compute/exec/query_context.cc
compute/exec/sink_node.cc
compute/exec/source_node.cc
compute/exec/swiss_join.cc
compute/exec/task_util.cc
compute/exec/tpch_node.cc
compute/exec/union_node.cc
compute/exec/util.cc
compute/function.cc
compute/function_internal.cc
compute/kernel.cc
compute/light_array.cc
compute/ordering.cc
compute/registry.cc
compute/kernels/aggregate_basic.cc
compute/kernels/aggregate_mode.cc
compute/kernels/aggregate_quantile.cc
compute/kernels/aggregate_tdigest.cc
compute/kernels/aggregate_var_std.cc
compute/kernels/codegen_internal.cc
compute/kernels/hash_aggregate.cc
compute/kernels/row_encoder.cc
compute/kernels/scalar_arithmetic.cc
compute/kernels/scalar_boolean.cc
compute/kernels/scalar_cast_boolean.cc
compute/kernels/scalar_cast_dictionary.cc
compute/kernels/scalar_cast_extension.cc
compute/kernels/scalar_cast_internal.cc
compute/kernels/scalar_cast_nested.cc
compute/kernels/scalar_cast_numeric.cc
compute/kernels/scalar_cast_string.cc
compute/kernels/scalar_cast_temporal.cc
compute/kernels/scalar_compare.cc
compute/kernels/scalar_if_else.cc
compute/kernels/scalar_nested.cc
Expand All@@ -453,33 +473,16 @@ if(ARROW_COMPUTE)
compute/kernels/scalar_temporal_binary.cc
compute/kernels/scalar_temporal_unary.cc
compute/kernels/scalar_validity.cc
compute/kernels/util_internal.cc
compute/kernels/vector_array_sort.cc
compute/kernels/vector_cumulative_ops.cc
compute/kernels/vector_hash.cc
compute/kernels/vector_nested.cc
compute/kernels/vector_rank.cc
compute/kernels/vector_replace.cc
compute/kernels/vector_select_k.cc
compute/kernels/vector_selection.cc
compute/kernels/vector_sort.cc
compute/row/encode_internal.cc
compute/row/compare_internal.cc
compute/row/grouper.cc
compute/row/row_internal.cc)
compute/kernels/vector_sort.cc)

append_avx2_src(compute/kernels/aggregate_basic_avx2.cc)
append_avx512_src(compute/kernels/aggregate_basic_avx512.cc)

append_avx2_src(compute/exec/bloom_filter_avx2.cc)
append_avx2_src(compute/exec/key_hash_avx2.cc)
append_avx2_src(compute/exec/key_map_avx2.cc)
append_avx2_src(compute/exec/swiss_join_avx2.cc)
append_avx2_src(compute/exec/util_avx2.cc)
append_avx2_src(compute/row/compare_internal_avx2.cc)
append_avx2_src(compute/row/encode_internal_avx2.cc)

list(APPEND ARROW_TESTING_SRCS compute/exec/test_util.cc)
endif()

if(ARROW_FILESYSTEM)
Expand DownExpand Up@@ -800,12 +803,7 @@ add_arrow_test(table_test
add_arrow_test(tensor_test)
add_arrow_test(sparse_tensor_test)

set(STL_TEST_SRCS stl_iterator_test.cc)
if(ARROW_COMPUTE)
# This unit test uses compute code
list(APPEND STL_TEST_SRCS stl_test.cc)
endif()
add_arrow_test(stl_test SOURCES ${STL_TEST_SRCS})
add_arrow_test(stl_test SOURCES stl_iterator_test.cc stl_test.cc)

add_arrow_benchmark(builder_benchmark)
add_arrow_benchmark(compare_benchmark)
Expand All@@ -821,6 +819,7 @@ add_subdirectory(testing)

add_subdirectory(array)
add_subdirectory(c)
add_subdirectory(compute)
add_subdirectory(io)
add_subdirectory(tensor)
add_subdirectory(util)
Expand All@@ -830,10 +829,6 @@ if(ARROW_CSV)
add_subdirectory(csv)
endif()

if(ARROW_COMPUTE)
add_subdirectory(compute)
endif()

if(ARROW_SUBSTRAIT)
add_subdirectory(engine)
endif()
Expand Down
6 changes: 1 addition & 5 deletions cpp/src/arrow/array/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,11 +16,7 @@
# under the License.

add_arrow_test(concatenate_test)

if(ARROW_COMPUTE)
# This unit test uses compute code
add_arrow_test(diff_test)
endif()
add_arrow_test(diff_test)

# Headers: top level
arrow_install_all_headers("arrow/array")
20 changes: 19 additions & 1 deletion cpp/src/arrow/compute/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,8 +26,22 @@ arrow_add_pkg_config("arrow-compute")
# Unit tests
#

# The following kernels are always present:
# - array_filter
# - array_take
# - cast
# - dictionary_encode
# - drop_null
# - filter
# - indices_nonzero
# - take
# - unique
# - value_counts
#
# Tests that use additional kernels should specify REQUIRE_ALL_KERNELS to avoid
# being included in minimal builds. See: GH-34388
function(ADD_ARROW_COMPUTE_TEST REL_TEST_NAME)
set(options)
set(options REQUIRE_ALL_KERNELS)
set(one_value_args PREFIX)
set(multi_value_args LABELS)
cmake_parse_arguments(ARG
Expand All@@ -36,6 +50,10 @@ function(ADD_ARROW_COMPUTE_TEST REL_TEST_NAME)
"${multi_value_args}"
${ARGN})

if(ARG_REQUIRE_ALL_KERNELS AND (NOT ARROW_COMPUTE))
return()
endif()

if(ARG_PREFIX)
set(PREFIX ${ARG_PREFIX})
else()
Expand Down
7 changes: 6 additions & 1 deletion cpp/src/arrow/compute/exec/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,41 +18,46 @@
arrow_install_all_headers("arrow/compute/exec")

add_arrow_compute_test(expression_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
expression_test.cc
subtree_test.cc)

add_arrow_compute_test(plan_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
plan_test.cc
test_nodes_test.cc
test_nodes.cc)
add_arrow_compute_test(fetch_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
fetch_node_test.cc
test_nodes.cc)
add_arrow_compute_test(hash_join_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
hash_join_node_test.cc
bloom_filter_test.cc
key_hash_test.cc)
add_arrow_compute_test(asof_join_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
asof_join_node_test.cc
test_nodes.cc)
add_arrow_compute_test(tpch_node_test PREFIX "arrow-compute")
add_arrow_compute_test(union_node_test PREFIX "arrow-compute")
add_arrow_compute_test(groupby_test PREFIX "arrow-compute")
add_arrow_compute_test(groupby_test REQUIRE_ALL_KERNELS PREFIX "arrow-compute")
add_arrow_compute_test(util_test
PREFIX
"arrow-compute"
Expand Down
20 changes: 17 additions & 3 deletions cpp/src/arrow/compute/kernels/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,26 +18,38 @@
# ----------------------------------------------------------------------
# Scalar kernels

add_arrow_compute_test(scalar_cast_test SOURCES scalar_cast_test.cc test_util.cc)
Comment thread
westonpace marked this conversation as resolved.
Outdated

add_arrow_compute_test(scalar_type_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_boolean_test.cc
scalar_cast_test.cc
scalar_nested_test.cc
scalar_string_test.cc
test_util.cc)

add_arrow_compute_test(scalar_if_else_test SOURCES scalar_if_else_test.cc test_util.cc)
add_arrow_compute_test(scalar_if_else_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_if_else_test.cc
test_util.cc)

add_arrow_compute_test(scalar_temporal_test SOURCES scalar_temporal_test.cc test_util.cc)
add_arrow_compute_test(scalar_temporal_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_temporal_test.cc
test_util.cc)

add_arrow_compute_test(scalar_math_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_arithmetic_test.cc
scalar_compare_test.cc
scalar_round_arithmetic_test.cc
test_util.cc)

add_arrow_compute_test(scalar_utility_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_random_test.cc
scalar_set_lookup_test.cc
Expand All@@ -59,6 +71,7 @@ add_arrow_benchmark(scalar_temporal_benchmark PREFIX "arrow-compute")
# Vector kernels

add_arrow_compute_test(vector_test
REQUIRE_ALL_KERNELS
SOURCES
vector_cumulative_ops_test.cc
vector_hash_test.cc
Expand All@@ -82,6 +95,7 @@ add_arrow_benchmark(vector_selection_benchmark PREFIX "arrow-compute")
# Aggregates

add_arrow_compute_test(aggregate_test
REQUIRE_ALL_KERNELS
SOURCES
aggregate_test.cc
hash_aggregate_test.cc
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions cpp/cmake_modules/DefineOptions.cmake
Original file line numberDiff line numberDiff line change
Expand Up@@ -296,7 +296,7 @@ takes precedence over ccache if a storage backend is configured" ON)

define_option(ARROW_BUILD_UTILITIES "Build Arrow commandline utilities" OFF)

define_option(ARROW_COMPUTE "Build the Arrow Compute Modules" OFF)
define_option(ARROW_COMPUTE "Build all Arrow Compute kernels" OFF)

define_option(ARROW_CSV "Build the Arrow CSV Parser Module" OFF)

Expand DownExpand Up@@ -361,7 +361,6 @@ takes precedence over ccache if a storage backend is configured" ON)
"Build the Parquet libraries"
OFF
DEPENDS
ARROW_COMPUTE
ARROW_IPC)

define_option(ARROW_ORC
Expand Down
155 changes: 75 additions & 80 deletions cpp/src/arrow/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -375,73 +375,93 @@ if(ARROW_CSV)
csv/column_decoder.cc
csv/options.cc
csv/parser.cc
csv/reader.cc)
if(ARROW_COMPUTE)
list(APPEND ARROW_SRCS csv/writer.cc)
endif()
csv/reader.cc
csv/writer.cc)

list(APPEND ARROW_TESTING_SRCS csv/test_common.cc)
endif()

# Baseline Compute functionality + scalar casts and a few select kernels
list(APPEND
ARROW_SRCS
compute/api_aggregate.cc
compute/api_scalar.cc
compute/api_vector.cc
compute/cast.cc
compute/exec.cc
compute/exec/groupby.cc
compute/exec/accumulation_queue.cc
compute/exec/aggregate_node.cc
compute/exec/asof_join_node.cc
compute/exec/bloom_filter.cc
compute/exec/exec_plan.cc
compute/exec/expression.cc
compute/exec/fetch_node.cc
compute/exec/filter_node.cc
compute/exec/hash_join.cc
compute/exec/hash_join_dict.cc
compute/exec/hash_join_node.cc
compute/exec/key_hash.cc
compute/exec/key_map.cc
compute/exec/map_node.cc
compute/exec/options.cc
compute/exec/order_by_impl.cc
compute/exec/partition_util.cc
compute/exec/project_node.cc
compute/exec/query_context.cc
compute/exec/sink_node.cc
compute/exec/source_node.cc
compute/exec/swiss_join.cc
compute/exec/task_util.cc
compute/exec/tpch_node.cc
compute/exec/union_node.cc
compute/exec/util.cc
compute/function.cc
compute/function_internal.cc
compute/kernel.cc
compute/light_array.cc
compute/ordering.cc
compute/registry.cc
compute/kernels/codegen_internal.cc
compute/kernels/row_encoder.cc
compute/kernels/scalar_cast_boolean.cc
compute/kernels/scalar_cast_dictionary.cc
compute/kernels/scalar_cast_extension.cc
compute/kernels/scalar_cast_internal.cc
compute/kernels/scalar_cast_nested.cc
compute/kernels/scalar_cast_numeric.cc
compute/kernels/scalar_cast_string.cc
compute/kernels/scalar_cast_temporal.cc
compute/kernels/util_internal.cc
compute/kernels/vector_hash.cc
compute/kernels/vector_selection.cc
compute/row/encode_internal.cc
compute/row/compare_internal.cc
compute/row/grouper.cc
compute/row/row_internal.cc)

append_avx2_src(compute/exec/bloom_filter_avx2.cc)
append_avx2_src(compute/exec/key_hash_avx2.cc)
append_avx2_src(compute/exec/key_map_avx2.cc)
append_avx2_src(compute/exec/swiss_join_avx2.cc)
append_avx2_src(compute/exec/util_avx2.cc)
append_avx2_src(compute/row/compare_internal_avx2.cc)
append_avx2_src(compute/row/encode_internal_avx2.cc)

list(APPEND ARROW_TESTING_SRCS compute/exec/test_util.cc)

if(ARROW_COMPUTE)
# Include the remaining kernels
list(APPEND
ARROW_SRCS
compute/api_aggregate.cc
compute/api_scalar.cc
compute/api_vector.cc
compute/cast.cc
compute/exec.cc
compute/exec/groupby.cc
compute/exec/accumulation_queue.cc
compute/exec/aggregate_node.cc
compute/exec/asof_join_node.cc
compute/exec/bloom_filter.cc
compute/exec/exec_plan.cc
compute/exec/expression.cc
compute/exec/fetch_node.cc
compute/exec/filter_node.cc
compute/exec/hash_join.cc
compute/exec/hash_join_dict.cc
compute/exec/hash_join_node.cc
compute/exec/key_hash.cc
compute/exec/key_map.cc
compute/exec/map_node.cc
compute/exec/options.cc
compute/exec/order_by_impl.cc
compute/exec/partition_util.cc
compute/exec/project_node.cc
compute/exec/query_context.cc
compute/exec/sink_node.cc
compute/exec/source_node.cc
compute/exec/swiss_join.cc
compute/exec/task_util.cc
compute/exec/tpch_node.cc
compute/exec/union_node.cc
compute/exec/util.cc
compute/function.cc
compute/function_internal.cc
compute/kernel.cc
compute/light_array.cc
compute/ordering.cc
compute/registry.cc
compute/kernels/aggregate_basic.cc
compute/kernels/aggregate_mode.cc
compute/kernels/aggregate_quantile.cc
compute/kernels/aggregate_tdigest.cc
compute/kernels/aggregate_var_std.cc
compute/kernels/codegen_internal.cc
compute/kernels/hash_aggregate.cc
compute/kernels/row_encoder.cc
compute/kernels/scalar_arithmetic.cc
compute/kernels/scalar_boolean.cc
compute/kernels/scalar_cast_boolean.cc
compute/kernels/scalar_cast_dictionary.cc
compute/kernels/scalar_cast_extension.cc
compute/kernels/scalar_cast_internal.cc
compute/kernels/scalar_cast_nested.cc
compute/kernels/scalar_cast_numeric.cc
compute/kernels/scalar_cast_string.cc
compute/kernels/scalar_cast_temporal.cc
compute/kernels/scalar_compare.cc
compute/kernels/scalar_if_else.cc
compute/kernels/scalar_nested.cc
Expand All@@ -453,33 +473,16 @@ if(ARROW_COMPUTE)
compute/kernels/scalar_temporal_binary.cc
compute/kernels/scalar_temporal_unary.cc
compute/kernels/scalar_validity.cc
compute/kernels/util_internal.cc
compute/kernels/vector_array_sort.cc
compute/kernels/vector_cumulative_ops.cc
compute/kernels/vector_hash.cc
compute/kernels/vector_nested.cc
compute/kernels/vector_rank.cc
compute/kernels/vector_replace.cc
compute/kernels/vector_select_k.cc
compute/kernels/vector_selection.cc
compute/kernels/vector_sort.cc
compute/row/encode_internal.cc
compute/row/compare_internal.cc
compute/row/grouper.cc
compute/row/row_internal.cc)
compute/kernels/vector_sort.cc)

append_avx2_src(compute/kernels/aggregate_basic_avx2.cc)
append_avx512_src(compute/kernels/aggregate_basic_avx512.cc)

append_avx2_src(compute/exec/bloom_filter_avx2.cc)
append_avx2_src(compute/exec/key_hash_avx2.cc)
append_avx2_src(compute/exec/key_map_avx2.cc)
append_avx2_src(compute/exec/swiss_join_avx2.cc)
append_avx2_src(compute/exec/util_avx2.cc)
append_avx2_src(compute/row/compare_internal_avx2.cc)
append_avx2_src(compute/row/encode_internal_avx2.cc)

list(APPEND ARROW_TESTING_SRCS compute/exec/test_util.cc)
endif()

if(ARROW_FILESYSTEM)
Expand DownExpand Up@@ -800,12 +803,7 @@ add_arrow_test(table_test
add_arrow_test(tensor_test)
add_arrow_test(sparse_tensor_test)

set(STL_TEST_SRCS stl_iterator_test.cc)
if(ARROW_COMPUTE)
# This unit test uses compute code
list(APPEND STL_TEST_SRCS stl_test.cc)
endif()
add_arrow_test(stl_test SOURCES ${STL_TEST_SRCS})
add_arrow_test(stl_test SOURCES stl_iterator_test.cc stl_test.cc)

add_arrow_benchmark(builder_benchmark)
add_arrow_benchmark(compare_benchmark)
Expand All@@ -821,6 +819,7 @@ add_subdirectory(testing)

add_subdirectory(array)
add_subdirectory(c)
add_subdirectory(compute)
add_subdirectory(io)
add_subdirectory(tensor)
add_subdirectory(util)
Expand All@@ -830,10 +829,6 @@ if(ARROW_CSV)
add_subdirectory(csv)
endif()

if(ARROW_COMPUTE)
add_subdirectory(compute)
endif()

if(ARROW_SUBSTRAIT)
add_subdirectory(engine)
endif()
Expand Down
6 changes: 1 addition & 5 deletions cpp/src/arrow/array/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,11 +16,7 @@
# under the License.

add_arrow_test(concatenate_test)

if(ARROW_COMPUTE)
# This unit test uses compute code
add_arrow_test(diff_test)
endif()
add_arrow_test(diff_test)

# Headers: top level
arrow_install_all_headers("arrow/array")
20 changes: 19 additions & 1 deletion cpp/src/arrow/compute/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,8 +26,22 @@ arrow_add_pkg_config("arrow-compute")
# Unit tests
#

# The following kernels are always present:
# - array_filter
# - array_take
# - cast
# - dictionary_encode
# - drop_null
# - filter
# - indices_nonzero
# - take
# - unique
# - value_counts
#
# Tests that use additional kernels should specify REQUIRE_ALL_KERNELS to avoid
# being included in minimal builds. See: GH-34388
function(ADD_ARROW_COMPUTE_TEST REL_TEST_NAME)
set(options)
set(options REQUIRE_ALL_KERNELS)
set(one_value_args PREFIX)
set(multi_value_args LABELS)
cmake_parse_arguments(ARG
Expand All@@ -36,6 +50,10 @@ function(ADD_ARROW_COMPUTE_TEST REL_TEST_NAME)
"${multi_value_args}"
${ARGN})

if(ARG_REQUIRE_ALL_KERNELS AND (NOT ARROW_COMPUTE))
return()
endif()

if(ARG_PREFIX)
set(PREFIX ${ARG_PREFIX})
else()
Expand Down
7 changes: 6 additions & 1 deletion cpp/src/arrow/compute/exec/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,41 +18,46 @@
arrow_install_all_headers("arrow/compute/exec")

add_arrow_compute_test(expression_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
expression_test.cc
subtree_test.cc)

add_arrow_compute_test(plan_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
plan_test.cc
test_nodes_test.cc
test_nodes.cc)
add_arrow_compute_test(fetch_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
fetch_node_test.cc
test_nodes.cc)
add_arrow_compute_test(hash_join_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
hash_join_node_test.cc
bloom_filter_test.cc
key_hash_test.cc)
add_arrow_compute_test(asof_join_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
asof_join_node_test.cc
test_nodes.cc)
add_arrow_compute_test(tpch_node_test PREFIX "arrow-compute")
add_arrow_compute_test(union_node_test PREFIX "arrow-compute")
add_arrow_compute_test(groupby_test PREFIX "arrow-compute")
add_arrow_compute_test(groupby_test REQUIRE_ALL_KERNELS PREFIX "arrow-compute")
add_arrow_compute_test(util_test
PREFIX
"arrow-compute"
Expand Down
20 changes: 17 additions & 3 deletions cpp/src/arrow/compute/kernels/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,26 +18,38 @@
# ----------------------------------------------------------------------
# Scalar kernels

add_arrow_compute_test(scalar_cast_test SOURCES scalar_cast_test.cc test_util.cc)
Comment thread
westonpace marked this conversation as resolved.
Outdated

add_arrow_compute_test(scalar_type_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_boolean_test.cc
scalar_cast_test.cc
scalar_nested_test.cc
scalar_string_test.cc
test_util.cc)

add_arrow_compute_test(scalar_if_else_test SOURCES scalar_if_else_test.cc test_util.cc)
add_arrow_compute_test(scalar_if_else_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_if_else_test.cc
test_util.cc)

add_arrow_compute_test(scalar_temporal_test SOURCES scalar_temporal_test.cc test_util.cc)
add_arrow_compute_test(scalar_temporal_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_temporal_test.cc
test_util.cc)

add_arrow_compute_test(scalar_math_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_arithmetic_test.cc
scalar_compare_test.cc
scalar_round_arithmetic_test.cc
test_util.cc)

add_arrow_compute_test(scalar_utility_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_random_test.cc
scalar_set_lookup_test.cc
Expand All@@ -59,6 +71,7 @@ add_arrow_benchmark(scalar_temporal_benchmark PREFIX "arrow-compute")
# Vector kernels

add_arrow_compute_test(vector_test
REQUIRE_ALL_KERNELS
SOURCES
vector_cumulative_ops_test.cc
vector_hash_test.cc
Expand All@@ -82,6 +95,7 @@ add_arrow_benchmark(vector_selection_benchmark PREFIX "arrow-compute")
# Aggregates

add_arrow_compute_test(aggregate_test
REQUIRE_ALL_KERNELS
SOURCES
aggregate_test.cc
hash_aggregate_test.cc
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions cpp/cmake_modules/DefineOptions.cmake
Original file line numberDiff line numberDiff line change
Expand Up@@ -296,7 +296,7 @@ takes precedence over ccache if a storage backend is configured" ON)

define_option(ARROW_BUILD_UTILITIES "Build Arrow commandline utilities" OFF)

define_option(ARROW_COMPUTE "Build the Arrow Compute Modules" OFF)
define_option(ARROW_COMPUTE "Build all Arrow Compute kernels" OFF)

define_option(ARROW_CSV "Build the Arrow CSV Parser Module" OFF)

Expand DownExpand Up@@ -361,7 +361,6 @@ takes precedence over ccache if a storage backend is configured" ON)
"Build the Parquet libraries"
OFF
DEPENDS
ARROW_COMPUTE
ARROW_IPC)

define_option(ARROW_ORC
Expand Down
155 changes: 75 additions & 80 deletions cpp/src/arrow/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -375,73 +375,93 @@ if(ARROW_CSV)
csv/column_decoder.cc
csv/options.cc
csv/parser.cc
csv/reader.cc)
if(ARROW_COMPUTE)
list(APPEND ARROW_SRCS csv/writer.cc)
endif()
csv/reader.cc
csv/writer.cc)

list(APPEND ARROW_TESTING_SRCS csv/test_common.cc)
endif()

# Baseline Compute functionality + scalar casts and a few select kernels
list(APPEND
ARROW_SRCS
compute/api_aggregate.cc
compute/api_scalar.cc
compute/api_vector.cc
compute/cast.cc
compute/exec.cc
compute/exec/groupby.cc
compute/exec/accumulation_queue.cc
compute/exec/aggregate_node.cc
compute/exec/asof_join_node.cc
compute/exec/bloom_filter.cc
compute/exec/exec_plan.cc
compute/exec/expression.cc
compute/exec/fetch_node.cc
compute/exec/filter_node.cc
compute/exec/hash_join.cc
compute/exec/hash_join_dict.cc
compute/exec/hash_join_node.cc
compute/exec/key_hash.cc
compute/exec/key_map.cc
compute/exec/map_node.cc
compute/exec/options.cc
compute/exec/order_by_impl.cc
compute/exec/partition_util.cc
compute/exec/project_node.cc
compute/exec/query_context.cc
compute/exec/sink_node.cc
compute/exec/source_node.cc
compute/exec/swiss_join.cc
compute/exec/task_util.cc
compute/exec/tpch_node.cc
compute/exec/union_node.cc
compute/exec/util.cc
compute/function.cc
compute/function_internal.cc
compute/kernel.cc
compute/light_array.cc
compute/ordering.cc
compute/registry.cc
compute/kernels/codegen_internal.cc
compute/kernels/row_encoder.cc
compute/kernels/scalar_cast_boolean.cc
compute/kernels/scalar_cast_dictionary.cc
compute/kernels/scalar_cast_extension.cc
compute/kernels/scalar_cast_internal.cc
compute/kernels/scalar_cast_nested.cc
compute/kernels/scalar_cast_numeric.cc
compute/kernels/scalar_cast_string.cc
compute/kernels/scalar_cast_temporal.cc
compute/kernels/util_internal.cc
compute/kernels/vector_hash.cc
compute/kernels/vector_selection.cc
compute/row/encode_internal.cc
compute/row/compare_internal.cc
compute/row/grouper.cc
compute/row/row_internal.cc)

append_avx2_src(compute/exec/bloom_filter_avx2.cc)
append_avx2_src(compute/exec/key_hash_avx2.cc)
append_avx2_src(compute/exec/key_map_avx2.cc)
append_avx2_src(compute/exec/swiss_join_avx2.cc)
append_avx2_src(compute/exec/util_avx2.cc)
append_avx2_src(compute/row/compare_internal_avx2.cc)
append_avx2_src(compute/row/encode_internal_avx2.cc)

list(APPEND ARROW_TESTING_SRCS compute/exec/test_util.cc)

if(ARROW_COMPUTE)
# Include the remaining kernels
list(APPEND
ARROW_SRCS
compute/api_aggregate.cc
compute/api_scalar.cc
compute/api_vector.cc
compute/cast.cc
compute/exec.cc
compute/exec/groupby.cc
compute/exec/accumulation_queue.cc
compute/exec/aggregate_node.cc
compute/exec/asof_join_node.cc
compute/exec/bloom_filter.cc
compute/exec/exec_plan.cc
compute/exec/expression.cc
compute/exec/fetch_node.cc
compute/exec/filter_node.cc
compute/exec/hash_join.cc
compute/exec/hash_join_dict.cc
compute/exec/hash_join_node.cc
compute/exec/key_hash.cc
compute/exec/key_map.cc
compute/exec/map_node.cc
compute/exec/options.cc
compute/exec/order_by_impl.cc
compute/exec/partition_util.cc
compute/exec/project_node.cc
compute/exec/query_context.cc
compute/exec/sink_node.cc
compute/exec/source_node.cc
compute/exec/swiss_join.cc
compute/exec/task_util.cc
compute/exec/tpch_node.cc
compute/exec/union_node.cc
compute/exec/util.cc
compute/function.cc
compute/function_internal.cc
compute/kernel.cc
compute/light_array.cc
compute/ordering.cc
compute/registry.cc
compute/kernels/aggregate_basic.cc
compute/kernels/aggregate_mode.cc
compute/kernels/aggregate_quantile.cc
compute/kernels/aggregate_tdigest.cc
compute/kernels/aggregate_var_std.cc
compute/kernels/codegen_internal.cc
compute/kernels/hash_aggregate.cc
compute/kernels/row_encoder.cc
compute/kernels/scalar_arithmetic.cc
compute/kernels/scalar_boolean.cc
compute/kernels/scalar_cast_boolean.cc
compute/kernels/scalar_cast_dictionary.cc
compute/kernels/scalar_cast_extension.cc
compute/kernels/scalar_cast_internal.cc
compute/kernels/scalar_cast_nested.cc
compute/kernels/scalar_cast_numeric.cc
compute/kernels/scalar_cast_string.cc
compute/kernels/scalar_cast_temporal.cc
compute/kernels/scalar_compare.cc
compute/kernels/scalar_if_else.cc
compute/kernels/scalar_nested.cc
Expand All@@ -453,33 +473,16 @@ if(ARROW_COMPUTE)
compute/kernels/scalar_temporal_binary.cc
compute/kernels/scalar_temporal_unary.cc
compute/kernels/scalar_validity.cc
compute/kernels/util_internal.cc
compute/kernels/vector_array_sort.cc
compute/kernels/vector_cumulative_ops.cc
compute/kernels/vector_hash.cc
compute/kernels/vector_nested.cc
compute/kernels/vector_rank.cc
compute/kernels/vector_replace.cc
compute/kernels/vector_select_k.cc
compute/kernels/vector_selection.cc
compute/kernels/vector_sort.cc
compute/row/encode_internal.cc
compute/row/compare_internal.cc
compute/row/grouper.cc
compute/row/row_internal.cc)
compute/kernels/vector_sort.cc)

append_avx2_src(compute/kernels/aggregate_basic_avx2.cc)
append_avx512_src(compute/kernels/aggregate_basic_avx512.cc)

append_avx2_src(compute/exec/bloom_filter_avx2.cc)
append_avx2_src(compute/exec/key_hash_avx2.cc)
append_avx2_src(compute/exec/key_map_avx2.cc)
append_avx2_src(compute/exec/swiss_join_avx2.cc)
append_avx2_src(compute/exec/util_avx2.cc)
append_avx2_src(compute/row/compare_internal_avx2.cc)
append_avx2_src(compute/row/encode_internal_avx2.cc)

list(APPEND ARROW_TESTING_SRCS compute/exec/test_util.cc)
endif()

if(ARROW_FILESYSTEM)
Expand DownExpand Up@@ -800,12 +803,7 @@ add_arrow_test(table_test
add_arrow_test(tensor_test)
add_arrow_test(sparse_tensor_test)

set(STL_TEST_SRCS stl_iterator_test.cc)
if(ARROW_COMPUTE)
# This unit test uses compute code
list(APPEND STL_TEST_SRCS stl_test.cc)
endif()
add_arrow_test(stl_test SOURCES ${STL_TEST_SRCS})
add_arrow_test(stl_test SOURCES stl_iterator_test.cc stl_test.cc)

add_arrow_benchmark(builder_benchmark)
add_arrow_benchmark(compare_benchmark)
Expand All@@ -821,6 +819,7 @@ add_subdirectory(testing)

add_subdirectory(array)
add_subdirectory(c)
add_subdirectory(compute)
add_subdirectory(io)
add_subdirectory(tensor)
add_subdirectory(util)
Expand All@@ -830,10 +829,6 @@ if(ARROW_CSV)
add_subdirectory(csv)
endif()

if(ARROW_COMPUTE)
add_subdirectory(compute)
endif()

if(ARROW_SUBSTRAIT)
add_subdirectory(engine)
endif()
Expand Down
6 changes: 1 addition & 5 deletions cpp/src/arrow/array/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,11 +16,7 @@
# under the License.

add_arrow_test(concatenate_test)

if(ARROW_COMPUTE)
# This unit test uses compute code
add_arrow_test(diff_test)
endif()
add_arrow_test(diff_test)

# Headers: top level
arrow_install_all_headers("arrow/array")
20 changes: 19 additions & 1 deletion cpp/src/arrow/compute/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,8 +26,22 @@ arrow_add_pkg_config("arrow-compute")
# Unit tests
#

# The following kernels are always present:
# - array_filter
# - array_take
# - cast
# - dictionary_encode
# - drop_null
# - filter
# - indices_nonzero
# - take
# - unique
# - value_counts
#
# Tests that use additional kernels should specify REQUIRE_ALL_KERNELS to avoid
# being included in minimal builds. See: GH-34388
function(ADD_ARROW_COMPUTE_TEST REL_TEST_NAME)
set(options)
set(options REQUIRE_ALL_KERNELS)
set(one_value_args PREFIX)
set(multi_value_args LABELS)
cmake_parse_arguments(ARG
Expand All@@ -36,6 +50,10 @@ function(ADD_ARROW_COMPUTE_TEST REL_TEST_NAME)
"${multi_value_args}"
${ARGN})

if(ARG_REQUIRE_ALL_KERNELS AND (NOT ARROW_COMPUTE))
return()
endif()

if(ARG_PREFIX)
set(PREFIX ${ARG_PREFIX})
else()
Expand Down
7 changes: 6 additions & 1 deletion cpp/src/arrow/compute/exec/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,41 +18,46 @@
arrow_install_all_headers("arrow/compute/exec")

add_arrow_compute_test(expression_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
expression_test.cc
subtree_test.cc)

add_arrow_compute_test(plan_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
plan_test.cc
test_nodes_test.cc
test_nodes.cc)
add_arrow_compute_test(fetch_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
fetch_node_test.cc
test_nodes.cc)
add_arrow_compute_test(hash_join_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
hash_join_node_test.cc
bloom_filter_test.cc
key_hash_test.cc)
add_arrow_compute_test(asof_join_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
asof_join_node_test.cc
test_nodes.cc)
add_arrow_compute_test(tpch_node_test PREFIX "arrow-compute")
add_arrow_compute_test(union_node_test PREFIX "arrow-compute")
add_arrow_compute_test(groupby_test PREFIX "arrow-compute")
add_arrow_compute_test(groupby_test REQUIRE_ALL_KERNELS PREFIX "arrow-compute")
add_arrow_compute_test(util_test
PREFIX
"arrow-compute"
Expand Down
20 changes: 17 additions & 3 deletions cpp/src/arrow/compute/kernels/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,26 +18,38 @@
# ----------------------------------------------------------------------
# Scalar kernels

add_arrow_compute_test(scalar_cast_test SOURCES scalar_cast_test.cc test_util.cc)
Comment thread
westonpace marked this conversation as resolved.
Outdated

add_arrow_compute_test(scalar_type_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_boolean_test.cc
scalar_cast_test.cc
scalar_nested_test.cc
scalar_string_test.cc
test_util.cc)

add_arrow_compute_test(scalar_if_else_test SOURCES scalar_if_else_test.cc test_util.cc)
add_arrow_compute_test(scalar_if_else_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_if_else_test.cc
test_util.cc)

add_arrow_compute_test(scalar_temporal_test SOURCES scalar_temporal_test.cc test_util.cc)
add_arrow_compute_test(scalar_temporal_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_temporal_test.cc
test_util.cc)

add_arrow_compute_test(scalar_math_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_arithmetic_test.cc
scalar_compare_test.cc
scalar_round_arithmetic_test.cc
test_util.cc)

add_arrow_compute_test(scalar_utility_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_random_test.cc
scalar_set_lookup_test.cc
Expand All@@ -59,6 +71,7 @@ add_arrow_benchmark(scalar_temporal_benchmark PREFIX "arrow-compute")
# Vector kernels

add_arrow_compute_test(vector_test
REQUIRE_ALL_KERNELS
SOURCES
vector_cumulative_ops_test.cc
vector_hash_test.cc
Expand All@@ -82,6 +95,7 @@ add_arrow_benchmark(vector_selection_benchmark PREFIX "arrow-compute")
# Aggregates

add_arrow_compute_test(aggregate_test
REQUIRE_ALL_KERNELS
SOURCES
aggregate_test.cc
hash_aggregate_test.cc
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions cpp/cmake_modules/DefineOptions.cmake
Original file line numberDiff line numberDiff line change
Expand Up@@ -296,7 +296,7 @@ takes precedence over ccache if a storage backend is configured" ON)

define_option(ARROW_BUILD_UTILITIES "Build Arrow commandline utilities" OFF)

define_option(ARROW_COMPUTE "Build the Arrow Compute Modules" OFF)
define_option(ARROW_COMPUTE "Build all Arrow Compute kernels" OFF)

define_option(ARROW_CSV "Build the Arrow CSV Parser Module" OFF)

Expand DownExpand Up@@ -361,7 +361,6 @@ takes precedence over ccache if a storage backend is configured" ON)
"Build the Parquet libraries"
OFF
DEPENDS
ARROW_COMPUTE
ARROW_IPC)

define_option(ARROW_ORC
Expand Down
155 changes: 75 additions & 80 deletions cpp/src/arrow/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -375,73 +375,93 @@ if(ARROW_CSV)
csv/column_decoder.cc
csv/options.cc
csv/parser.cc
csv/reader.cc)
if(ARROW_COMPUTE)
list(APPEND ARROW_SRCS csv/writer.cc)
endif()
csv/reader.cc
csv/writer.cc)

list(APPEND ARROW_TESTING_SRCS csv/test_common.cc)
endif()

# Baseline Compute functionality + scalar casts and a few select kernels
list(APPEND
ARROW_SRCS
compute/api_aggregate.cc
compute/api_scalar.cc
compute/api_vector.cc
compute/cast.cc
compute/exec.cc
compute/exec/groupby.cc
compute/exec/accumulation_queue.cc
compute/exec/aggregate_node.cc
compute/exec/asof_join_node.cc
compute/exec/bloom_filter.cc
compute/exec/exec_plan.cc
compute/exec/expression.cc
compute/exec/fetch_node.cc
compute/exec/filter_node.cc
compute/exec/hash_join.cc
compute/exec/hash_join_dict.cc
compute/exec/hash_join_node.cc
compute/exec/key_hash.cc
compute/exec/key_map.cc
compute/exec/map_node.cc
compute/exec/options.cc
compute/exec/order_by_impl.cc
compute/exec/partition_util.cc
compute/exec/project_node.cc
compute/exec/query_context.cc
compute/exec/sink_node.cc
compute/exec/source_node.cc
compute/exec/swiss_join.cc
compute/exec/task_util.cc
compute/exec/tpch_node.cc
compute/exec/union_node.cc
compute/exec/util.cc
compute/function.cc
compute/function_internal.cc
compute/kernel.cc
compute/light_array.cc
compute/ordering.cc
compute/registry.cc
compute/kernels/codegen_internal.cc
compute/kernels/row_encoder.cc
compute/kernels/scalar_cast_boolean.cc
compute/kernels/scalar_cast_dictionary.cc
compute/kernels/scalar_cast_extension.cc
compute/kernels/scalar_cast_internal.cc
compute/kernels/scalar_cast_nested.cc
compute/kernels/scalar_cast_numeric.cc
compute/kernels/scalar_cast_string.cc
compute/kernels/scalar_cast_temporal.cc
compute/kernels/util_internal.cc
compute/kernels/vector_hash.cc
compute/kernels/vector_selection.cc
compute/row/encode_internal.cc
compute/row/compare_internal.cc
compute/row/grouper.cc
compute/row/row_internal.cc)

append_avx2_src(compute/exec/bloom_filter_avx2.cc)
append_avx2_src(compute/exec/key_hash_avx2.cc)
append_avx2_src(compute/exec/key_map_avx2.cc)
append_avx2_src(compute/exec/swiss_join_avx2.cc)
append_avx2_src(compute/exec/util_avx2.cc)
append_avx2_src(compute/row/compare_internal_avx2.cc)
append_avx2_src(compute/row/encode_internal_avx2.cc)

list(APPEND ARROW_TESTING_SRCS compute/exec/test_util.cc)

if(ARROW_COMPUTE)
# Include the remaining kernels
list(APPEND
ARROW_SRCS
compute/api_aggregate.cc
compute/api_scalar.cc
compute/api_vector.cc
compute/cast.cc
compute/exec.cc
compute/exec/groupby.cc
compute/exec/accumulation_queue.cc
compute/exec/aggregate_node.cc
compute/exec/asof_join_node.cc
compute/exec/bloom_filter.cc
compute/exec/exec_plan.cc
compute/exec/expression.cc
compute/exec/fetch_node.cc
compute/exec/filter_node.cc
compute/exec/hash_join.cc
compute/exec/hash_join_dict.cc
compute/exec/hash_join_node.cc
compute/exec/key_hash.cc
compute/exec/key_map.cc
compute/exec/map_node.cc
compute/exec/options.cc
compute/exec/order_by_impl.cc
compute/exec/partition_util.cc
compute/exec/project_node.cc
compute/exec/query_context.cc
compute/exec/sink_node.cc
compute/exec/source_node.cc
compute/exec/swiss_join.cc
compute/exec/task_util.cc
compute/exec/tpch_node.cc
compute/exec/union_node.cc
compute/exec/util.cc
compute/function.cc
compute/function_internal.cc
compute/kernel.cc
compute/light_array.cc
compute/ordering.cc
compute/registry.cc
compute/kernels/aggregate_basic.cc
compute/kernels/aggregate_mode.cc
compute/kernels/aggregate_quantile.cc
compute/kernels/aggregate_tdigest.cc
compute/kernels/aggregate_var_std.cc
compute/kernels/codegen_internal.cc
compute/kernels/hash_aggregate.cc
compute/kernels/row_encoder.cc
compute/kernels/scalar_arithmetic.cc
compute/kernels/scalar_boolean.cc
compute/kernels/scalar_cast_boolean.cc
compute/kernels/scalar_cast_dictionary.cc
compute/kernels/scalar_cast_extension.cc
compute/kernels/scalar_cast_internal.cc
compute/kernels/scalar_cast_nested.cc
compute/kernels/scalar_cast_numeric.cc
compute/kernels/scalar_cast_string.cc
compute/kernels/scalar_cast_temporal.cc
compute/kernels/scalar_compare.cc
compute/kernels/scalar_if_else.cc
compute/kernels/scalar_nested.cc
Expand All@@ -453,33 +473,16 @@ if(ARROW_COMPUTE)
compute/kernels/scalar_temporal_binary.cc
compute/kernels/scalar_temporal_unary.cc
compute/kernels/scalar_validity.cc
compute/kernels/util_internal.cc
compute/kernels/vector_array_sort.cc
compute/kernels/vector_cumulative_ops.cc
compute/kernels/vector_hash.cc
compute/kernels/vector_nested.cc
compute/kernels/vector_rank.cc
compute/kernels/vector_replace.cc
compute/kernels/vector_select_k.cc
compute/kernels/vector_selection.cc
compute/kernels/vector_sort.cc
compute/row/encode_internal.cc
compute/row/compare_internal.cc
compute/row/grouper.cc
compute/row/row_internal.cc)
compute/kernels/vector_sort.cc)

append_avx2_src(compute/kernels/aggregate_basic_avx2.cc)
append_avx512_src(compute/kernels/aggregate_basic_avx512.cc)

append_avx2_src(compute/exec/bloom_filter_avx2.cc)
append_avx2_src(compute/exec/key_hash_avx2.cc)
append_avx2_src(compute/exec/key_map_avx2.cc)
append_avx2_src(compute/exec/swiss_join_avx2.cc)
append_avx2_src(compute/exec/util_avx2.cc)
append_avx2_src(compute/row/compare_internal_avx2.cc)
append_avx2_src(compute/row/encode_internal_avx2.cc)

list(APPEND ARROW_TESTING_SRCS compute/exec/test_util.cc)
endif()

if(ARROW_FILESYSTEM)
Expand DownExpand Up@@ -800,12 +803,7 @@ add_arrow_test(table_test
add_arrow_test(tensor_test)
add_arrow_test(sparse_tensor_test)

set(STL_TEST_SRCS stl_iterator_test.cc)
if(ARROW_COMPUTE)
# This unit test uses compute code
list(APPEND STL_TEST_SRCS stl_test.cc)
endif()
add_arrow_test(stl_test SOURCES ${STL_TEST_SRCS})
add_arrow_test(stl_test SOURCES stl_iterator_test.cc stl_test.cc)

add_arrow_benchmark(builder_benchmark)
add_arrow_benchmark(compare_benchmark)
Expand All@@ -821,6 +819,7 @@ add_subdirectory(testing)

add_subdirectory(array)
add_subdirectory(c)
add_subdirectory(compute)
add_subdirectory(io)
add_subdirectory(tensor)
add_subdirectory(util)
Expand All@@ -830,10 +829,6 @@ if(ARROW_CSV)
add_subdirectory(csv)
endif()

if(ARROW_COMPUTE)
add_subdirectory(compute)
endif()

if(ARROW_SUBSTRAIT)
add_subdirectory(engine)
endif()
Expand Down
6 changes: 1 addition & 5 deletions cpp/src/arrow/array/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,11 +16,7 @@
# under the License.

add_arrow_test(concatenate_test)

if(ARROW_COMPUTE)
# This unit test uses compute code
add_arrow_test(diff_test)
endif()
add_arrow_test(diff_test)

# Headers: top level
arrow_install_all_headers("arrow/array")
20 changes: 19 additions & 1 deletion cpp/src/arrow/compute/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,8 +26,22 @@ arrow_add_pkg_config("arrow-compute")
# Unit tests
#

# The following kernels are always present:
# - array_filter
# - array_take
# - cast
# - dictionary_encode
# - drop_null
# - filter
# - indices_nonzero
# - take
# - unique
# - value_counts
#
# Tests that use additional kernels should specify REQUIRE_ALL_KERNELS to avoid
# being included in minimal builds. See: GH-34388
function(ADD_ARROW_COMPUTE_TEST REL_TEST_NAME)
set(options)
set(options REQUIRE_ALL_KERNELS)
set(one_value_args PREFIX)
set(multi_value_args LABELS)
cmake_parse_arguments(ARG
Expand All@@ -36,6 +50,10 @@ function(ADD_ARROW_COMPUTE_TEST REL_TEST_NAME)
"${multi_value_args}"
${ARGN})

if(ARG_REQUIRE_ALL_KERNELS AND (NOT ARROW_COMPUTE))
return()
endif()

if(ARG_PREFIX)
set(PREFIX ${ARG_PREFIX})
else()
Expand Down
7 changes: 6 additions & 1 deletion cpp/src/arrow/compute/exec/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,41 +18,46 @@
arrow_install_all_headers("arrow/compute/exec")

add_arrow_compute_test(expression_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
expression_test.cc
subtree_test.cc)

add_arrow_compute_test(plan_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
plan_test.cc
test_nodes_test.cc
test_nodes.cc)
add_arrow_compute_test(fetch_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
fetch_node_test.cc
test_nodes.cc)
add_arrow_compute_test(hash_join_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
hash_join_node_test.cc
bloom_filter_test.cc
key_hash_test.cc)
add_arrow_compute_test(asof_join_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
asof_join_node_test.cc
test_nodes.cc)
add_arrow_compute_test(tpch_node_test PREFIX "arrow-compute")
add_arrow_compute_test(union_node_test PREFIX "arrow-compute")
add_arrow_compute_test(groupby_test PREFIX "arrow-compute")
add_arrow_compute_test(groupby_test REQUIRE_ALL_KERNELS PREFIX "arrow-compute")
add_arrow_compute_test(util_test
PREFIX
"arrow-compute"
Expand Down
20 changes: 17 additions & 3 deletions cpp/src/arrow/compute/kernels/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,26 +18,38 @@
# ----------------------------------------------------------------------
# Scalar kernels

add_arrow_compute_test(scalar_cast_test SOURCES scalar_cast_test.cc test_util.cc)
Comment thread
westonpace marked this conversation as resolved.
Outdated

add_arrow_compute_test(scalar_type_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_boolean_test.cc
scalar_cast_test.cc
scalar_nested_test.cc
scalar_string_test.cc
test_util.cc)

add_arrow_compute_test(scalar_if_else_test SOURCES scalar_if_else_test.cc test_util.cc)
add_arrow_compute_test(scalar_if_else_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_if_else_test.cc
test_util.cc)

add_arrow_compute_test(scalar_temporal_test SOURCES scalar_temporal_test.cc test_util.cc)
add_arrow_compute_test(scalar_temporal_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_temporal_test.cc
test_util.cc)

add_arrow_compute_test(scalar_math_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_arithmetic_test.cc
scalar_compare_test.cc
scalar_round_arithmetic_test.cc
test_util.cc)

add_arrow_compute_test(scalar_utility_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_random_test.cc
scalar_set_lookup_test.cc
Expand All@@ -59,6 +71,7 @@ add_arrow_benchmark(scalar_temporal_benchmark PREFIX "arrow-compute")
# Vector kernels

add_arrow_compute_test(vector_test
REQUIRE_ALL_KERNELS
SOURCES
vector_cumulative_ops_test.cc
vector_hash_test.cc
Expand All@@ -82,6 +95,7 @@ add_arrow_benchmark(vector_selection_benchmark PREFIX "arrow-compute")
# Aggregates

add_arrow_compute_test(aggregate_test
REQUIRE_ALL_KERNELS
SOURCES
aggregate_test.cc
hash_aggregate_test.cc
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions cpp/cmake_modules/DefineOptions.cmake
Original file line numberDiff line numberDiff line change
Expand Up@@ -296,7 +296,7 @@ takes precedence over ccache if a storage backend is configured" ON)

define_option(ARROW_BUILD_UTILITIES "Build Arrow commandline utilities" OFF)

define_option(ARROW_COMPUTE "Build the Arrow Compute Modules" OFF)
define_option(ARROW_COMPUTE "Build all Arrow Compute kernels" OFF)

define_option(ARROW_CSV "Build the Arrow CSV Parser Module" OFF)

Expand DownExpand Up@@ -361,7 +361,6 @@ takes precedence over ccache if a storage backend is configured" ON)
"Build the Parquet libraries"
OFF
DEPENDS
ARROW_COMPUTE
ARROW_IPC)

define_option(ARROW_ORC
Expand Down
155 changes: 75 additions & 80 deletions cpp/src/arrow/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -375,73 +375,93 @@ if(ARROW_CSV)
csv/column_decoder.cc
csv/options.cc
csv/parser.cc
csv/reader.cc)
if(ARROW_COMPUTE)
list(APPEND ARROW_SRCS csv/writer.cc)
endif()
csv/reader.cc
csv/writer.cc)

list(APPEND ARROW_TESTING_SRCS csv/test_common.cc)
endif()

# Baseline Compute functionality + scalar casts and a few select kernels
list(APPEND
ARROW_SRCS
compute/api_aggregate.cc
compute/api_scalar.cc
compute/api_vector.cc
compute/cast.cc
compute/exec.cc
compute/exec/groupby.cc
compute/exec/accumulation_queue.cc
compute/exec/aggregate_node.cc
compute/exec/asof_join_node.cc
compute/exec/bloom_filter.cc
compute/exec/exec_plan.cc
compute/exec/expression.cc
compute/exec/fetch_node.cc
compute/exec/filter_node.cc
compute/exec/hash_join.cc
compute/exec/hash_join_dict.cc
compute/exec/hash_join_node.cc
compute/exec/key_hash.cc
compute/exec/key_map.cc
compute/exec/map_node.cc
compute/exec/options.cc
compute/exec/order_by_impl.cc
compute/exec/partition_util.cc
compute/exec/project_node.cc
compute/exec/query_context.cc
compute/exec/sink_node.cc
compute/exec/source_node.cc
compute/exec/swiss_join.cc
compute/exec/task_util.cc
compute/exec/tpch_node.cc
compute/exec/union_node.cc
compute/exec/util.cc
compute/function.cc
compute/function_internal.cc
compute/kernel.cc
compute/light_array.cc
compute/ordering.cc
compute/registry.cc
compute/kernels/codegen_internal.cc
compute/kernels/row_encoder.cc
compute/kernels/scalar_cast_boolean.cc
compute/kernels/scalar_cast_dictionary.cc
compute/kernels/scalar_cast_extension.cc
compute/kernels/scalar_cast_internal.cc
compute/kernels/scalar_cast_nested.cc
compute/kernels/scalar_cast_numeric.cc
compute/kernels/scalar_cast_string.cc
compute/kernels/scalar_cast_temporal.cc
compute/kernels/util_internal.cc
compute/kernels/vector_hash.cc
compute/kernels/vector_selection.cc
compute/row/encode_internal.cc
compute/row/compare_internal.cc
compute/row/grouper.cc
compute/row/row_internal.cc)

append_avx2_src(compute/exec/bloom_filter_avx2.cc)
append_avx2_src(compute/exec/key_hash_avx2.cc)
append_avx2_src(compute/exec/key_map_avx2.cc)
append_avx2_src(compute/exec/swiss_join_avx2.cc)
append_avx2_src(compute/exec/util_avx2.cc)
append_avx2_src(compute/row/compare_internal_avx2.cc)
append_avx2_src(compute/row/encode_internal_avx2.cc)

list(APPEND ARROW_TESTING_SRCS compute/exec/test_util.cc)

if(ARROW_COMPUTE)
# Include the remaining kernels
list(APPEND
ARROW_SRCS
compute/api_aggregate.cc
compute/api_scalar.cc
compute/api_vector.cc
compute/cast.cc
compute/exec.cc
compute/exec/groupby.cc
compute/exec/accumulation_queue.cc
compute/exec/aggregate_node.cc
compute/exec/asof_join_node.cc
compute/exec/bloom_filter.cc
compute/exec/exec_plan.cc
compute/exec/expression.cc
compute/exec/fetch_node.cc
compute/exec/filter_node.cc
compute/exec/hash_join.cc
compute/exec/hash_join_dict.cc
compute/exec/hash_join_node.cc
compute/exec/key_hash.cc
compute/exec/key_map.cc
compute/exec/map_node.cc
compute/exec/options.cc
compute/exec/order_by_impl.cc
compute/exec/partition_util.cc
compute/exec/project_node.cc
compute/exec/query_context.cc
compute/exec/sink_node.cc
compute/exec/source_node.cc
compute/exec/swiss_join.cc
compute/exec/task_util.cc
compute/exec/tpch_node.cc
compute/exec/union_node.cc
compute/exec/util.cc
compute/function.cc
compute/function_internal.cc
compute/kernel.cc
compute/light_array.cc
compute/ordering.cc
compute/registry.cc
compute/kernels/aggregate_basic.cc
compute/kernels/aggregate_mode.cc
compute/kernels/aggregate_quantile.cc
compute/kernels/aggregate_tdigest.cc
compute/kernels/aggregate_var_std.cc
compute/kernels/codegen_internal.cc
compute/kernels/hash_aggregate.cc
compute/kernels/row_encoder.cc
compute/kernels/scalar_arithmetic.cc
compute/kernels/scalar_boolean.cc
compute/kernels/scalar_cast_boolean.cc
compute/kernels/scalar_cast_dictionary.cc
compute/kernels/scalar_cast_extension.cc
compute/kernels/scalar_cast_internal.cc
compute/kernels/scalar_cast_nested.cc
compute/kernels/scalar_cast_numeric.cc
compute/kernels/scalar_cast_string.cc
compute/kernels/scalar_cast_temporal.cc
compute/kernels/scalar_compare.cc
compute/kernels/scalar_if_else.cc
compute/kernels/scalar_nested.cc
Expand All@@ -453,33 +473,16 @@ if(ARROW_COMPUTE)
compute/kernels/scalar_temporal_binary.cc
compute/kernels/scalar_temporal_unary.cc
compute/kernels/scalar_validity.cc
compute/kernels/util_internal.cc
compute/kernels/vector_array_sort.cc
compute/kernels/vector_cumulative_ops.cc
compute/kernels/vector_hash.cc
compute/kernels/vector_nested.cc
compute/kernels/vector_rank.cc
compute/kernels/vector_replace.cc
compute/kernels/vector_select_k.cc
compute/kernels/vector_selection.cc
compute/kernels/vector_sort.cc
compute/row/encode_internal.cc
compute/row/compare_internal.cc
compute/row/grouper.cc
compute/row/row_internal.cc)
compute/kernels/vector_sort.cc)

append_avx2_src(compute/kernels/aggregate_basic_avx2.cc)
append_avx512_src(compute/kernels/aggregate_basic_avx512.cc)

append_avx2_src(compute/exec/bloom_filter_avx2.cc)
append_avx2_src(compute/exec/key_hash_avx2.cc)
append_avx2_src(compute/exec/key_map_avx2.cc)
append_avx2_src(compute/exec/swiss_join_avx2.cc)
append_avx2_src(compute/exec/util_avx2.cc)
append_avx2_src(compute/row/compare_internal_avx2.cc)
append_avx2_src(compute/row/encode_internal_avx2.cc)

list(APPEND ARROW_TESTING_SRCS compute/exec/test_util.cc)
endif()

if(ARROW_FILESYSTEM)
Expand DownExpand Up@@ -800,12 +803,7 @@ add_arrow_test(table_test
add_arrow_test(tensor_test)
add_arrow_test(sparse_tensor_test)

set(STL_TEST_SRCS stl_iterator_test.cc)
if(ARROW_COMPUTE)
# This unit test uses compute code
list(APPEND STL_TEST_SRCS stl_test.cc)
endif()
add_arrow_test(stl_test SOURCES ${STL_TEST_SRCS})
add_arrow_test(stl_test SOURCES stl_iterator_test.cc stl_test.cc)

add_arrow_benchmark(builder_benchmark)
add_arrow_benchmark(compare_benchmark)
Expand All@@ -821,6 +819,7 @@ add_subdirectory(testing)

add_subdirectory(array)
add_subdirectory(c)
add_subdirectory(compute)
add_subdirectory(io)
add_subdirectory(tensor)
add_subdirectory(util)
Expand All@@ -830,10 +829,6 @@ if(ARROW_CSV)
add_subdirectory(csv)
endif()

if(ARROW_COMPUTE)
add_subdirectory(compute)
endif()

if(ARROW_SUBSTRAIT)
add_subdirectory(engine)
endif()
Expand Down
6 changes: 1 addition & 5 deletions cpp/src/arrow/array/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,11 +16,7 @@
# under the License.

add_arrow_test(concatenate_test)

if(ARROW_COMPUTE)
# This unit test uses compute code
add_arrow_test(diff_test)
endif()
add_arrow_test(diff_test)

# Headers: top level
arrow_install_all_headers("arrow/array")
20 changes: 19 additions & 1 deletion cpp/src/arrow/compute/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,8 +26,22 @@ arrow_add_pkg_config("arrow-compute")
# Unit tests
#

# The following kernels are always present:
# - array_filter
# - array_take
# - cast
# - dictionary_encode
# - drop_null
# - filter
# - indices_nonzero
# - take
# - unique
# - value_counts
#
# Tests that use additional kernels should specify REQUIRE_ALL_KERNELS to avoid
# being included in minimal builds. See: GH-34388
function(ADD_ARROW_COMPUTE_TEST REL_TEST_NAME)
set(options)
set(options REQUIRE_ALL_KERNELS)
set(one_value_args PREFIX)
set(multi_value_args LABELS)
cmake_parse_arguments(ARG
Expand All@@ -36,6 +50,10 @@ function(ADD_ARROW_COMPUTE_TEST REL_TEST_NAME)
"${multi_value_args}"
${ARGN})

if(ARG_REQUIRE_ALL_KERNELS AND (NOT ARROW_COMPUTE))
return()
endif()

if(ARG_PREFIX)
set(PREFIX ${ARG_PREFIX})
else()
Expand Down
7 changes: 6 additions & 1 deletion cpp/src/arrow/compute/exec/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,41 +18,46 @@
arrow_install_all_headers("arrow/compute/exec")

add_arrow_compute_test(expression_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
expression_test.cc
subtree_test.cc)

add_arrow_compute_test(plan_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
plan_test.cc
test_nodes_test.cc
test_nodes.cc)
add_arrow_compute_test(fetch_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
fetch_node_test.cc
test_nodes.cc)
add_arrow_compute_test(hash_join_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
hash_join_node_test.cc
bloom_filter_test.cc
key_hash_test.cc)
add_arrow_compute_test(asof_join_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
asof_join_node_test.cc
test_nodes.cc)
add_arrow_compute_test(tpch_node_test PREFIX "arrow-compute")
add_arrow_compute_test(union_node_test PREFIX "arrow-compute")
add_arrow_compute_test(groupby_test PREFIX "arrow-compute")
add_arrow_compute_test(groupby_test REQUIRE_ALL_KERNELS PREFIX "arrow-compute")
add_arrow_compute_test(util_test
PREFIX
"arrow-compute"
Expand Down
20 changes: 17 additions & 3 deletions cpp/src/arrow/compute/kernels/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,26 +18,38 @@
# ----------------------------------------------------------------------
# Scalar kernels

add_arrow_compute_test(scalar_cast_test SOURCES scalar_cast_test.cc test_util.cc)
Comment thread
westonpace marked this conversation as resolved.
Outdated

add_arrow_compute_test(scalar_type_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_boolean_test.cc
scalar_cast_test.cc
scalar_nested_test.cc
scalar_string_test.cc
test_util.cc)

add_arrow_compute_test(scalar_if_else_test SOURCES scalar_if_else_test.cc test_util.cc)
add_arrow_compute_test(scalar_if_else_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_if_else_test.cc
test_util.cc)

add_arrow_compute_test(scalar_temporal_test SOURCES scalar_temporal_test.cc test_util.cc)
add_arrow_compute_test(scalar_temporal_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_temporal_test.cc
test_util.cc)

add_arrow_compute_test(scalar_math_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_arithmetic_test.cc
scalar_compare_test.cc
scalar_round_arithmetic_test.cc
test_util.cc)

add_arrow_compute_test(scalar_utility_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_random_test.cc
scalar_set_lookup_test.cc
Expand All@@ -59,6 +71,7 @@ add_arrow_benchmark(scalar_temporal_benchmark PREFIX "arrow-compute")
# Vector kernels

add_arrow_compute_test(vector_test
REQUIRE_ALL_KERNELS
SOURCES
vector_cumulative_ops_test.cc
vector_hash_test.cc
Expand All@@ -82,6 +95,7 @@ add_arrow_benchmark(vector_selection_benchmark PREFIX "arrow-compute")
# Aggregates

add_arrow_compute_test(aggregate_test
REQUIRE_ALL_KERNELS
SOURCES
aggregate_test.cc
hash_aggregate_test.cc
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions cpp/cmake_modules/DefineOptions.cmake
Original file line numberDiff line numberDiff line change
Expand Up@@ -296,7 +296,7 @@ takes precedence over ccache if a storage backend is configured" ON)

define_option(ARROW_BUILD_UTILITIES "Build Arrow commandline utilities" OFF)

define_option(ARROW_COMPUTE "Build the Arrow Compute Modules" OFF)
define_option(ARROW_COMPUTE "Build all Arrow Compute kernels" OFF)

define_option(ARROW_CSV "Build the Arrow CSV Parser Module" OFF)

Expand DownExpand Up@@ -361,7 +361,6 @@ takes precedence over ccache if a storage backend is configured" ON)
"Build the Parquet libraries"
OFF
DEPENDS
ARROW_COMPUTE
ARROW_IPC)

define_option(ARROW_ORC
Expand Down
155 changes: 75 additions & 80 deletions cpp/src/arrow/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -375,73 +375,93 @@ if(ARROW_CSV)
csv/column_decoder.cc
csv/options.cc
csv/parser.cc
csv/reader.cc)
if(ARROW_COMPUTE)
list(APPEND ARROW_SRCS csv/writer.cc)
endif()
csv/reader.cc
csv/writer.cc)

list(APPEND ARROW_TESTING_SRCS csv/test_common.cc)
endif()

# Baseline Compute functionality + scalar casts and a few select kernels
list(APPEND
ARROW_SRCS
compute/api_aggregate.cc
compute/api_scalar.cc
compute/api_vector.cc
compute/cast.cc
compute/exec.cc
compute/exec/groupby.cc
compute/exec/accumulation_queue.cc
compute/exec/aggregate_node.cc
compute/exec/asof_join_node.cc
compute/exec/bloom_filter.cc
compute/exec/exec_plan.cc
compute/exec/expression.cc
compute/exec/fetch_node.cc
compute/exec/filter_node.cc
compute/exec/hash_join.cc
compute/exec/hash_join_dict.cc
compute/exec/hash_join_node.cc
compute/exec/key_hash.cc
compute/exec/key_map.cc
compute/exec/map_node.cc
compute/exec/options.cc
compute/exec/order_by_impl.cc
compute/exec/partition_util.cc
compute/exec/project_node.cc
compute/exec/query_context.cc
compute/exec/sink_node.cc
compute/exec/source_node.cc
compute/exec/swiss_join.cc
compute/exec/task_util.cc
compute/exec/tpch_node.cc
compute/exec/union_node.cc
compute/exec/util.cc
compute/function.cc
compute/function_internal.cc
compute/kernel.cc
compute/light_array.cc
compute/ordering.cc
compute/registry.cc
compute/kernels/codegen_internal.cc
compute/kernels/row_encoder.cc
compute/kernels/scalar_cast_boolean.cc
compute/kernels/scalar_cast_dictionary.cc
compute/kernels/scalar_cast_extension.cc
compute/kernels/scalar_cast_internal.cc
compute/kernels/scalar_cast_nested.cc
compute/kernels/scalar_cast_numeric.cc
compute/kernels/scalar_cast_string.cc
compute/kernels/scalar_cast_temporal.cc
compute/kernels/util_internal.cc
compute/kernels/vector_hash.cc
compute/kernels/vector_selection.cc
compute/row/encode_internal.cc
compute/row/compare_internal.cc
compute/row/grouper.cc
compute/row/row_internal.cc)

append_avx2_src(compute/exec/bloom_filter_avx2.cc)
append_avx2_src(compute/exec/key_hash_avx2.cc)
append_avx2_src(compute/exec/key_map_avx2.cc)
append_avx2_src(compute/exec/swiss_join_avx2.cc)
append_avx2_src(compute/exec/util_avx2.cc)
append_avx2_src(compute/row/compare_internal_avx2.cc)
append_avx2_src(compute/row/encode_internal_avx2.cc)

list(APPEND ARROW_TESTING_SRCS compute/exec/test_util.cc)

if(ARROW_COMPUTE)
# Include the remaining kernels
list(APPEND
ARROW_SRCS
compute/api_aggregate.cc
compute/api_scalar.cc
compute/api_vector.cc
compute/cast.cc
compute/exec.cc
compute/exec/groupby.cc
compute/exec/accumulation_queue.cc
compute/exec/aggregate_node.cc
compute/exec/asof_join_node.cc
compute/exec/bloom_filter.cc
compute/exec/exec_plan.cc
compute/exec/expression.cc
compute/exec/fetch_node.cc
compute/exec/filter_node.cc
compute/exec/hash_join.cc
compute/exec/hash_join_dict.cc
compute/exec/hash_join_node.cc
compute/exec/key_hash.cc
compute/exec/key_map.cc
compute/exec/map_node.cc
compute/exec/options.cc
compute/exec/order_by_impl.cc
compute/exec/partition_util.cc
compute/exec/project_node.cc
compute/exec/query_context.cc
compute/exec/sink_node.cc
compute/exec/source_node.cc
compute/exec/swiss_join.cc
compute/exec/task_util.cc
compute/exec/tpch_node.cc
compute/exec/union_node.cc
compute/exec/util.cc
compute/function.cc
compute/function_internal.cc
compute/kernel.cc
compute/light_array.cc
compute/ordering.cc
compute/registry.cc
compute/kernels/aggregate_basic.cc
compute/kernels/aggregate_mode.cc
compute/kernels/aggregate_quantile.cc
compute/kernels/aggregate_tdigest.cc
compute/kernels/aggregate_var_std.cc
compute/kernels/codegen_internal.cc
compute/kernels/hash_aggregate.cc
compute/kernels/row_encoder.cc
compute/kernels/scalar_arithmetic.cc
compute/kernels/scalar_boolean.cc
compute/kernels/scalar_cast_boolean.cc
compute/kernels/scalar_cast_dictionary.cc
compute/kernels/scalar_cast_extension.cc
compute/kernels/scalar_cast_internal.cc
compute/kernels/scalar_cast_nested.cc
compute/kernels/scalar_cast_numeric.cc
compute/kernels/scalar_cast_string.cc
compute/kernels/scalar_cast_temporal.cc
compute/kernels/scalar_compare.cc
compute/kernels/scalar_if_else.cc
compute/kernels/scalar_nested.cc
Expand All@@ -453,33 +473,16 @@ if(ARROW_COMPUTE)
compute/kernels/scalar_temporal_binary.cc
compute/kernels/scalar_temporal_unary.cc
compute/kernels/scalar_validity.cc
compute/kernels/util_internal.cc
compute/kernels/vector_array_sort.cc
compute/kernels/vector_cumulative_ops.cc
compute/kernels/vector_hash.cc
compute/kernels/vector_nested.cc
compute/kernels/vector_rank.cc
compute/kernels/vector_replace.cc
compute/kernels/vector_select_k.cc
compute/kernels/vector_selection.cc
compute/kernels/vector_sort.cc
compute/row/encode_internal.cc
compute/row/compare_internal.cc
compute/row/grouper.cc
compute/row/row_internal.cc)
compute/kernels/vector_sort.cc)

append_avx2_src(compute/kernels/aggregate_basic_avx2.cc)
append_avx512_src(compute/kernels/aggregate_basic_avx512.cc)

append_avx2_src(compute/exec/bloom_filter_avx2.cc)
append_avx2_src(compute/exec/key_hash_avx2.cc)
append_avx2_src(compute/exec/key_map_avx2.cc)
append_avx2_src(compute/exec/swiss_join_avx2.cc)
append_avx2_src(compute/exec/util_avx2.cc)
append_avx2_src(compute/row/compare_internal_avx2.cc)
append_avx2_src(compute/row/encode_internal_avx2.cc)

list(APPEND ARROW_TESTING_SRCS compute/exec/test_util.cc)
endif()

if(ARROW_FILESYSTEM)
Expand DownExpand Up@@ -800,12 +803,7 @@ add_arrow_test(table_test
add_arrow_test(tensor_test)
add_arrow_test(sparse_tensor_test)

set(STL_TEST_SRCS stl_iterator_test.cc)
if(ARROW_COMPUTE)
# This unit test uses compute code
list(APPEND STL_TEST_SRCS stl_test.cc)
endif()
add_arrow_test(stl_test SOURCES ${STL_TEST_SRCS})
add_arrow_test(stl_test SOURCES stl_iterator_test.cc stl_test.cc)

add_arrow_benchmark(builder_benchmark)
add_arrow_benchmark(compare_benchmark)
Expand All@@ -821,6 +819,7 @@ add_subdirectory(testing)

add_subdirectory(array)
add_subdirectory(c)
add_subdirectory(compute)
add_subdirectory(io)
add_subdirectory(tensor)
add_subdirectory(util)
Expand All@@ -830,10 +829,6 @@ if(ARROW_CSV)
add_subdirectory(csv)
endif()

if(ARROW_COMPUTE)
add_subdirectory(compute)
endif()

if(ARROW_SUBSTRAIT)
add_subdirectory(engine)
endif()
Expand Down
6 changes: 1 addition & 5 deletions cpp/src/arrow/array/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,11 +16,7 @@
# under the License.

add_arrow_test(concatenate_test)

if(ARROW_COMPUTE)
# This unit test uses compute code
add_arrow_test(diff_test)
endif()
add_arrow_test(diff_test)

# Headers: top level
arrow_install_all_headers("arrow/array")
20 changes: 19 additions & 1 deletion cpp/src/arrow/compute/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,8 +26,22 @@ arrow_add_pkg_config("arrow-compute")
# Unit tests
#

# The following kernels are always present:
# - array_filter
# - array_take
# - cast
# - dictionary_encode
# - drop_null
# - filter
# - indices_nonzero
# - take
# - unique
# - value_counts
#
# Tests that use additional kernels should specify REQUIRE_ALL_KERNELS to avoid
# being included in minimal builds. See: GH-34388
function(ADD_ARROW_COMPUTE_TEST REL_TEST_NAME)
set(options)
set(options REQUIRE_ALL_KERNELS)
set(one_value_args PREFIX)
set(multi_value_args LABELS)
cmake_parse_arguments(ARG
Expand All@@ -36,6 +50,10 @@ function(ADD_ARROW_COMPUTE_TEST REL_TEST_NAME)
"${multi_value_args}"
${ARGN})

if(ARG_REQUIRE_ALL_KERNELS AND (NOT ARROW_COMPUTE))
return()
endif()

if(ARG_PREFIX)
set(PREFIX ${ARG_PREFIX})
else()
Expand Down
7 changes: 6 additions & 1 deletion cpp/src/arrow/compute/exec/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,41 +18,46 @@
arrow_install_all_headers("arrow/compute/exec")

add_arrow_compute_test(expression_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
expression_test.cc
subtree_test.cc)

add_arrow_compute_test(plan_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
plan_test.cc
test_nodes_test.cc
test_nodes.cc)
add_arrow_compute_test(fetch_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
fetch_node_test.cc
test_nodes.cc)
add_arrow_compute_test(hash_join_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
hash_join_node_test.cc
bloom_filter_test.cc
key_hash_test.cc)
add_arrow_compute_test(asof_join_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
asof_join_node_test.cc
test_nodes.cc)
add_arrow_compute_test(tpch_node_test PREFIX "arrow-compute")
add_arrow_compute_test(union_node_test PREFIX "arrow-compute")
add_arrow_compute_test(groupby_test PREFIX "arrow-compute")
add_arrow_compute_test(groupby_test REQUIRE_ALL_KERNELS PREFIX "arrow-compute")
add_arrow_compute_test(util_test
PREFIX
"arrow-compute"
Expand Down
20 changes: 17 additions & 3 deletions cpp/src/arrow/compute/kernels/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,26 +18,38 @@
# ----------------------------------------------------------------------
# Scalar kernels

add_arrow_compute_test(scalar_cast_test SOURCES scalar_cast_test.cc test_util.cc)
Comment thread
westonpace marked this conversation as resolved.
Outdated

add_arrow_compute_test(scalar_type_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_boolean_test.cc
scalar_cast_test.cc
scalar_nested_test.cc
scalar_string_test.cc
test_util.cc)

add_arrow_compute_test(scalar_if_else_test SOURCES scalar_if_else_test.cc test_util.cc)
add_arrow_compute_test(scalar_if_else_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_if_else_test.cc
test_util.cc)

add_arrow_compute_test(scalar_temporal_test SOURCES scalar_temporal_test.cc test_util.cc)
add_arrow_compute_test(scalar_temporal_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_temporal_test.cc
test_util.cc)

add_arrow_compute_test(scalar_math_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_arithmetic_test.cc
scalar_compare_test.cc
scalar_round_arithmetic_test.cc
test_util.cc)

add_arrow_compute_test(scalar_utility_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_random_test.cc
scalar_set_lookup_test.cc
Expand All@@ -59,6 +71,7 @@ add_arrow_benchmark(scalar_temporal_benchmark PREFIX "arrow-compute")
# Vector kernels

add_arrow_compute_test(vector_test
REQUIRE_ALL_KERNELS
SOURCES
vector_cumulative_ops_test.cc
vector_hash_test.cc
Expand All@@ -82,6 +95,7 @@ add_arrow_benchmark(vector_selection_benchmark PREFIX "arrow-compute")
# Aggregates

add_arrow_compute_test(aggregate_test
REQUIRE_ALL_KERNELS
SOURCES
aggregate_test.cc
hash_aggregate_test.cc
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions cpp/cmake_modules/DefineOptions.cmake
Original file line numberDiff line numberDiff line change
Expand Up@@ -296,7 +296,7 @@ takes precedence over ccache if a storage backend is configured" ON)

define_option(ARROW_BUILD_UTILITIES "Build Arrow commandline utilities" OFF)

define_option(ARROW_COMPUTE "Build the Arrow Compute Modules" OFF)
define_option(ARROW_COMPUTE "Build all Arrow Compute kernels" OFF)

define_option(ARROW_CSV "Build the Arrow CSV Parser Module" OFF)

Expand DownExpand Up@@ -361,7 +361,6 @@ takes precedence over ccache if a storage backend is configured" ON)
"Build the Parquet libraries"
OFF
DEPENDS
ARROW_COMPUTE
ARROW_IPC)

define_option(ARROW_ORC
Expand Down
155 changes: 75 additions & 80 deletions cpp/src/arrow/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -375,73 +375,93 @@ if(ARROW_CSV)
csv/column_decoder.cc
csv/options.cc
csv/parser.cc
csv/reader.cc)
if(ARROW_COMPUTE)
list(APPEND ARROW_SRCS csv/writer.cc)
endif()
csv/reader.cc
csv/writer.cc)

list(APPEND ARROW_TESTING_SRCS csv/test_common.cc)
endif()

# Baseline Compute functionality + scalar casts and a few select kernels
list(APPEND
ARROW_SRCS
compute/api_aggregate.cc
compute/api_scalar.cc
compute/api_vector.cc
compute/cast.cc
compute/exec.cc
compute/exec/groupby.cc
compute/exec/accumulation_queue.cc
compute/exec/aggregate_node.cc
compute/exec/asof_join_node.cc
compute/exec/bloom_filter.cc
compute/exec/exec_plan.cc
compute/exec/expression.cc
compute/exec/fetch_node.cc
compute/exec/filter_node.cc
compute/exec/hash_join.cc
compute/exec/hash_join_dict.cc
compute/exec/hash_join_node.cc
compute/exec/key_hash.cc
compute/exec/key_map.cc
compute/exec/map_node.cc
compute/exec/options.cc
compute/exec/order_by_impl.cc
compute/exec/partition_util.cc
compute/exec/project_node.cc
compute/exec/query_context.cc
compute/exec/sink_node.cc
compute/exec/source_node.cc
compute/exec/swiss_join.cc
compute/exec/task_util.cc
compute/exec/tpch_node.cc
compute/exec/union_node.cc
compute/exec/util.cc
compute/function.cc
compute/function_internal.cc
compute/kernel.cc
compute/light_array.cc
compute/ordering.cc
compute/registry.cc
compute/kernels/codegen_internal.cc
compute/kernels/row_encoder.cc
compute/kernels/scalar_cast_boolean.cc
compute/kernels/scalar_cast_dictionary.cc
compute/kernels/scalar_cast_extension.cc
compute/kernels/scalar_cast_internal.cc
compute/kernels/scalar_cast_nested.cc
compute/kernels/scalar_cast_numeric.cc
compute/kernels/scalar_cast_string.cc
compute/kernels/scalar_cast_temporal.cc
compute/kernels/util_internal.cc
compute/kernels/vector_hash.cc
compute/kernels/vector_selection.cc
compute/row/encode_internal.cc
compute/row/compare_internal.cc
compute/row/grouper.cc
compute/row/row_internal.cc)

append_avx2_src(compute/exec/bloom_filter_avx2.cc)
append_avx2_src(compute/exec/key_hash_avx2.cc)
append_avx2_src(compute/exec/key_map_avx2.cc)
append_avx2_src(compute/exec/swiss_join_avx2.cc)
append_avx2_src(compute/exec/util_avx2.cc)
append_avx2_src(compute/row/compare_internal_avx2.cc)
append_avx2_src(compute/row/encode_internal_avx2.cc)

list(APPEND ARROW_TESTING_SRCS compute/exec/test_util.cc)

if(ARROW_COMPUTE)
# Include the remaining kernels
list(APPEND
ARROW_SRCS
compute/api_aggregate.cc
compute/api_scalar.cc
compute/api_vector.cc
compute/cast.cc
compute/exec.cc
compute/exec/groupby.cc
compute/exec/accumulation_queue.cc
compute/exec/aggregate_node.cc
compute/exec/asof_join_node.cc
compute/exec/bloom_filter.cc
compute/exec/exec_plan.cc
compute/exec/expression.cc
compute/exec/fetch_node.cc
compute/exec/filter_node.cc
compute/exec/hash_join.cc
compute/exec/hash_join_dict.cc
compute/exec/hash_join_node.cc
compute/exec/key_hash.cc
compute/exec/key_map.cc
compute/exec/map_node.cc
compute/exec/options.cc
compute/exec/order_by_impl.cc
compute/exec/partition_util.cc
compute/exec/project_node.cc
compute/exec/query_context.cc
compute/exec/sink_node.cc
compute/exec/source_node.cc
compute/exec/swiss_join.cc
compute/exec/task_util.cc
compute/exec/tpch_node.cc
compute/exec/union_node.cc
compute/exec/util.cc
compute/function.cc
compute/function_internal.cc
compute/kernel.cc
compute/light_array.cc
compute/ordering.cc
compute/registry.cc
compute/kernels/aggregate_basic.cc
compute/kernels/aggregate_mode.cc
compute/kernels/aggregate_quantile.cc
compute/kernels/aggregate_tdigest.cc
compute/kernels/aggregate_var_std.cc
compute/kernels/codegen_internal.cc
compute/kernels/hash_aggregate.cc
compute/kernels/row_encoder.cc
compute/kernels/scalar_arithmetic.cc
compute/kernels/scalar_boolean.cc
compute/kernels/scalar_cast_boolean.cc
compute/kernels/scalar_cast_dictionary.cc
compute/kernels/scalar_cast_extension.cc
compute/kernels/scalar_cast_internal.cc
compute/kernels/scalar_cast_nested.cc
compute/kernels/scalar_cast_numeric.cc
compute/kernels/scalar_cast_string.cc
compute/kernels/scalar_cast_temporal.cc
compute/kernels/scalar_compare.cc
compute/kernels/scalar_if_else.cc
compute/kernels/scalar_nested.cc
Expand All@@ -453,33 +473,16 @@ if(ARROW_COMPUTE)
compute/kernels/scalar_temporal_binary.cc
compute/kernels/scalar_temporal_unary.cc
compute/kernels/scalar_validity.cc
compute/kernels/util_internal.cc
compute/kernels/vector_array_sort.cc
compute/kernels/vector_cumulative_ops.cc
compute/kernels/vector_hash.cc
compute/kernels/vector_nested.cc
compute/kernels/vector_rank.cc
compute/kernels/vector_replace.cc
compute/kernels/vector_select_k.cc
compute/kernels/vector_selection.cc
compute/kernels/vector_sort.cc
compute/row/encode_internal.cc
compute/row/compare_internal.cc
compute/row/grouper.cc
compute/row/row_internal.cc)
compute/kernels/vector_sort.cc)

append_avx2_src(compute/kernels/aggregate_basic_avx2.cc)
append_avx512_src(compute/kernels/aggregate_basic_avx512.cc)

append_avx2_src(compute/exec/bloom_filter_avx2.cc)
append_avx2_src(compute/exec/key_hash_avx2.cc)
append_avx2_src(compute/exec/key_map_avx2.cc)
append_avx2_src(compute/exec/swiss_join_avx2.cc)
append_avx2_src(compute/exec/util_avx2.cc)
append_avx2_src(compute/row/compare_internal_avx2.cc)
append_avx2_src(compute/row/encode_internal_avx2.cc)

list(APPEND ARROW_TESTING_SRCS compute/exec/test_util.cc)
endif()

if(ARROW_FILESYSTEM)
Expand DownExpand Up@@ -800,12 +803,7 @@ add_arrow_test(table_test
add_arrow_test(tensor_test)
add_arrow_test(sparse_tensor_test)

set(STL_TEST_SRCS stl_iterator_test.cc)
if(ARROW_COMPUTE)
# This unit test uses compute code
list(APPEND STL_TEST_SRCS stl_test.cc)
endif()
add_arrow_test(stl_test SOURCES ${STL_TEST_SRCS})
add_arrow_test(stl_test SOURCES stl_iterator_test.cc stl_test.cc)

add_arrow_benchmark(builder_benchmark)
add_arrow_benchmark(compare_benchmark)
Expand All@@ -821,6 +819,7 @@ add_subdirectory(testing)

add_subdirectory(array)
add_subdirectory(c)
add_subdirectory(compute)
add_subdirectory(io)
add_subdirectory(tensor)
add_subdirectory(util)
Expand All@@ -830,10 +829,6 @@ if(ARROW_CSV)
add_subdirectory(csv)
endif()

if(ARROW_COMPUTE)
add_subdirectory(compute)
endif()

if(ARROW_SUBSTRAIT)
add_subdirectory(engine)
endif()
Expand Down
6 changes: 1 addition & 5 deletions cpp/src/arrow/array/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,11 +16,7 @@
# under the License.

add_arrow_test(concatenate_test)

if(ARROW_COMPUTE)
# This unit test uses compute code
add_arrow_test(diff_test)
endif()
add_arrow_test(diff_test)

# Headers: top level
arrow_install_all_headers("arrow/array")
20 changes: 19 additions & 1 deletion cpp/src/arrow/compute/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,8 +26,22 @@ arrow_add_pkg_config("arrow-compute")
# Unit tests
#

# The following kernels are always present:
# - array_filter
# - array_take
# - cast
# - dictionary_encode
# - drop_null
# - filter
# - indices_nonzero
# - take
# - unique
# - value_counts
#
# Tests that use additional kernels should specify REQUIRE_ALL_KERNELS to avoid
# being included in minimal builds. See: GH-34388
function(ADD_ARROW_COMPUTE_TEST REL_TEST_NAME)
set(options)
set(options REQUIRE_ALL_KERNELS)
set(one_value_args PREFIX)
set(multi_value_args LABELS)
cmake_parse_arguments(ARG
Expand All@@ -36,6 +50,10 @@ function(ADD_ARROW_COMPUTE_TEST REL_TEST_NAME)
"${multi_value_args}"
${ARGN})

if(ARG_REQUIRE_ALL_KERNELS AND (NOT ARROW_COMPUTE))
return()
endif()

if(ARG_PREFIX)
set(PREFIX ${ARG_PREFIX})
else()
Expand Down
7 changes: 6 additions & 1 deletion cpp/src/arrow/compute/exec/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,41 +18,46 @@
arrow_install_all_headers("arrow/compute/exec")

add_arrow_compute_test(expression_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
expression_test.cc
subtree_test.cc)

add_arrow_compute_test(plan_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
plan_test.cc
test_nodes_test.cc
test_nodes.cc)
add_arrow_compute_test(fetch_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
fetch_node_test.cc
test_nodes.cc)
add_arrow_compute_test(hash_join_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
hash_join_node_test.cc
bloom_filter_test.cc
key_hash_test.cc)
add_arrow_compute_test(asof_join_node_test
REQUIRE_ALL_KERNELS
PREFIX
"arrow-compute"
SOURCES
asof_join_node_test.cc
test_nodes.cc)
add_arrow_compute_test(tpch_node_test PREFIX "arrow-compute")
add_arrow_compute_test(union_node_test PREFIX "arrow-compute")
add_arrow_compute_test(groupby_test PREFIX "arrow-compute")
add_arrow_compute_test(groupby_test REQUIRE_ALL_KERNELS PREFIX "arrow-compute")
add_arrow_compute_test(util_test
PREFIX
"arrow-compute"
Expand Down
20 changes: 17 additions & 3 deletions cpp/src/arrow/compute/kernels/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,26 +18,38 @@
# ----------------------------------------------------------------------
# Scalar kernels

add_arrow_compute_test(scalar_cast_test SOURCES scalar_cast_test.cc test_util.cc)
Comment thread
westonpace marked this conversation as resolved.
Outdated

add_arrow_compute_test(scalar_type_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_boolean_test.cc
scalar_cast_test.cc
scalar_nested_test.cc
scalar_string_test.cc
test_util.cc)

add_arrow_compute_test(scalar_if_else_test SOURCES scalar_if_else_test.cc test_util.cc)
add_arrow_compute_test(scalar_if_else_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_if_else_test.cc
test_util.cc)

add_arrow_compute_test(scalar_temporal_test SOURCES scalar_temporal_test.cc test_util.cc)
add_arrow_compute_test(scalar_temporal_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_temporal_test.cc
test_util.cc)

add_arrow_compute_test(scalar_math_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_arithmetic_test.cc
scalar_compare_test.cc
scalar_round_arithmetic_test.cc
test_util.cc)

add_arrow_compute_test(scalar_utility_test
REQUIRE_ALL_KERNELS
SOURCES
scalar_random_test.cc
scalar_set_lookup_test.cc
Expand All@@ -59,6 +71,7 @@ add_arrow_benchmark(scalar_temporal_benchmark PREFIX "arrow-compute")
# Vector kernels

add_arrow_compute_test(vector_test
REQUIRE_ALL_KERNELS
SOURCES
vector_cumulative_ops_test.cc
vector_hash_test.cc
Expand All@@ -82,6 +95,7 @@ add_arrow_benchmark(vector_selection_benchmark PREFIX "arrow-compute")
# Aggregates

add_arrow_compute_test(aggregate_test
REQUIRE_ALL_KERNELS
SOURCES
aggregate_test.cc
hash_aggregate_test.cc
Expand Down
Loading