Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GH-37753: [C++][Gandiva] Add external function registry support #38116

Merged
merged 17 commits into from
Nov 8, 2023

Commits on Oct 24, 2023

  1. Add external function registry support to gandiva. A new AddFunction …

    …is added to FunctionRegistry so that function metadata can be registered, and external pre-compiled LLVM bitcode/IR buffer can be added so that they can be used for building LLVM module.
    niyue committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    c2f2c3e View commit details
    Browse the repository at this point in the history
  2. Add a new class in Gandiva called FunctionRegistar and use it as the …

    …dedicated API for registering functions and implementations to gandiva.
    niyue committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    48ff84b View commit details
    Browse the repository at this point in the history
  3. Refactor the code to return more error when verifying LLVM module in …

    …gandiva, and adding some helper functions to reduce code duplication.
    niyue committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    7f17568 View commit details
    Browse the repository at this point in the history
  4. Make bitcode generation code reusable

    kou authored and niyue committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    b85806c View commit details
    Browse the repository at this point in the history
  5. Add missing $ and use function

    kou authored and niyue committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    3c04c04 View commit details
    Browse the repository at this point in the history
  6. Remove garbage .cmake

    kou authored and niyue committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    3dc9cea View commit details
    Browse the repository at this point in the history
  7. Use FunctionRegistry as the user facing API for external function reg…

    …istry, and make Projector/Filter/LLVMGenerator/Engine to accept a FunctionRegistry for better flexibility.
    niyue committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    4749917 View commit details
    Browse the repository at this point in the history
  8. Move function implementation in gandiva test_util.h to test_util.cc t…

    …o avoid inlining all functions.
    niyue committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    8a62e2b View commit details
    Browse the repository at this point in the history
  9. Use arrow::Buffer instead of llvm::MemoryBuffer in gandiva FunctionRe…

    …gistry so that we don't expose LLVM memory buffer in the header and consumer of FunctionRegistry don't need to be compiled against LLVM headers.
    niyue committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    5d77169 View commit details
    Browse the repository at this point in the history
  10. Rename TestProjector to non conflict names so that these tests can be…

    … added in single add_gandiva_test cmake directive.
    niyue committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    cb3722c View commit details
    Browse the repository at this point in the history
  11. Use newly created configuration to avoid changing the default configu…

    …ration and disable copying and assignment copy for FunctionRegistry since the registration function map contains function signature's address.
    niyue committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    b941fd5 View commit details
    Browse the repository at this point in the history
  12. Change gandiva::default_function_registry() to return shared_ptr inst…

    …ead of raw pointer for better ownership.
    niyue committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    aadd09b View commit details
    Browse the repository at this point in the history
  13. Skip gandiva function registry related tests in c_glib currently and …

    …we plan to fix them in a separated PR later.
    niyue committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    708c03b View commit details
    Browse the repository at this point in the history
  14. Make sure gandiva filter cache test use a special field name so that …

    …the test case's filter cache won't be populated by other test case accidentally.
    niyue committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    b5b84f0 View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2023

  1. [GLib] Follow new API

    kou committed Nov 2, 2023
    Configuration menu
    Copy the full SHA
    ccbad95 View commit details
    Browse the repository at this point in the history
  2. [GLib] Use range-for

    kou committed Nov 2, 2023
    Configuration menu
    Copy the full SHA
    a7fe28c View commit details
    Browse the repository at this point in the history

Commits on Nov 5, 2023

  1. Avoid result check when retrieving gandiva default function registry …

    …since developers can guarantee they are correct.
    niyue committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    85b823b View commit details
    Browse the repository at this point in the history