tree: f8e39626adbd7f9f3820adc380855d7226d86d11 [path history] [tgz]
  1. jni/
  2. precompiled/
  3. proto/
  4. tests/
  5. annotator.cc
  6. annotator.h
  7. annotator_test.cc
  8. arrow.h
  9. bc_file_path.cc.in
  10. bitmap_accumulator.cc
  11. bitmap_accumulator.h
  12. bitmap_accumulator_test.cc
  13. cache.h
  14. CMakeLists.txt
  15. compiled_expr.h
  16. condition.h
  17. configuration.cc
  18. configuration.h
  19. dex.h
  20. dex_visitor.h
  21. engine.cc
  22. engine.h
  23. engine_llvm_test.cc
  24. eval_batch.h
  25. expr_decomposer.cc
  26. expr_decomposer.h
  27. expr_decomposer_test.cc
  28. expr_validator.cc
  29. expr_validator.h
  30. expression.cc
  31. expression.h
  32. expression_registry.cc
  33. expression_registry.h
  34. expression_registry_test.cc
  35. field_descriptor.h
  36. filter.cc
  37. filter.h
  38. filter_cache_key.h
  39. func_descriptor.h
  40. function_holder.h
  41. function_holder_registry.h
  42. function_holder_stubs.cc
  43. function_registry.cc
  44. function_registry.h
  45. function_registry_test.cc
  46. function_signature.cc
  47. function_signature.h
  48. function_signature_test.cc
  49. gandiva_aliases.h
  50. like_holder.cc
  51. like_holder.h
  52. like_holder_test.cc
  53. literal_holder.h
  54. llvm_generator.cc
  55. llvm_generator.h
  56. llvm_generator_test.cc
  57. llvm_types.cc
  58. llvm_types.h
  59. llvm_types_test.cc
  60. local_bitmaps_holder.h
  61. logging.h
  62. lru_cache.h
  63. lru_cache_test.cc
  64. lvalue.h
  65. native_function.h
  66. node.h
  67. node_visitor.h
  68. projector.cc
  69. projector.h
  70. projector_cache_key.h
  71. README.md
  72. regex_util.cc
  73. regex_util.h
  74. selection_vector.cc
  75. selection_vector.h
  76. selection_vector_impl.h
  77. selection_vector_test.cc
  78. status.h
  79. status_test.cc
  80. tree_expr_builder.cc
  81. tree_expr_builder.h
  82. tree_expr_test.cc
  83. value_validity_pair.h
cpp/src/gandiva/README.md

Gandiva C++

System setup

Gandiva uses CMake as a build configuration system. Currently, it supports out-of-source builds only.

Build Gandiva requires:

  • A C++11-enabled compiler. On Linux, gcc 4.8 and higher should be sufficient.
  • CMake
  • LLVM
  • Arrow
  • Boost
  • Protobuf
  • re2

On macOS, you can use Homebrew:

brew install cmake llvm boost protobuf re2

To install arrow, follow the steps in the arrow Readme.

Building Gandiva

Debug build :

git clone https://github.com/apache/arrow.git
cd cpp/src/gandiva
mkdir debug
cd debug
cmake ..
make
ctest

Release build :

git clone https://github.com/apache/arrow.git
cd cpp/src/gandiva
mkdir release
cd release
cmake .. -DCMAKE_BUILD_TYPE=Release
make
ctest

Validating code style

We follow the google cpp code style. To validate compliance,

cd debug
make stylecheck

Fixing code style

cd debug
make stylefix