blob: ce21496c8a6db54cacbc5cc9c990b6ecd9d89f45 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en" data-content_root="" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>Gandiva Expression Compiler &#8212; Apache Arrow v17.0.0.dev52</title>
<script data-cfasync="false">
document.documentElement.dataset.mode = localStorage.getItem("mode") || "";
document.documentElement.dataset.theme = localStorage.getItem("theme") || "light";
</script>
<!-- Loaded before other Sphinx assets -->
<link href="../../_static/styles/theme.css?digest=8d27b9dea8ad943066ae" rel="stylesheet" />
<link href="../../_static/styles/bootstrap.css?digest=8d27b9dea8ad943066ae" rel="stylesheet" />
<link href="../../_static/styles/pydata-sphinx-theme.css?digest=8d27b9dea8ad943066ae" rel="stylesheet" />
<link href="../../_static/vendor/fontawesome/6.5.1/css/all.min.css?digest=8d27b9dea8ad943066ae" rel="stylesheet" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="../../_static/vendor/fontawesome/6.5.1/webfonts/fa-solid-900.woff2" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="../../_static/vendor/fontawesome/6.5.1/webfonts/fa-brands-400.woff2" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="../../_static/vendor/fontawesome/6.5.1/webfonts/fa-regular-400.woff2" />
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
<link rel="stylesheet" type="text/css" href="../../_static/theme_overrides.css" />
<!-- Pre-loaded scripts that we'll load fully later -->
<link rel="preload" as="script" href="../../_static/scripts/bootstrap.js?digest=8d27b9dea8ad943066ae" />
<link rel="preload" as="script" href="../../_static/scripts/pydata-sphinx-theme.js?digest=8d27b9dea8ad943066ae" />
<script src="../../_static/vendor/fontawesome/6.5.1/js/all.min.js?digest=8d27b9dea8ad943066ae"></script>
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<script src="../../_static/doctools.js"></script>
<script src="../../_static/sphinx_highlight.js"></script>
<script src="../../_static/clipboard.min.js"></script>
<script src="../../_static/copybutton.js"></script>
<script src="../../_static/design-tabs.js"></script>
<script>DOCUMENTATION_OPTIONS.pagename = 'cpp/api/gandiva';</script>
<script>
DOCUMENTATION_OPTIONS.theme_version = '0.15.2';
DOCUMENTATION_OPTIONS.theme_switcher_json_url = '/docs/_static/versions.json';
DOCUMENTATION_OPTIONS.theme_switcher_version_match = 'dev/';
DOCUMENTATION_OPTIONS.show_version_warning_banner = true;
</script>
<link rel="canonical" href="https://arrow.apache.org/docs/cpp/api/gandiva.html" />
<link rel="icon" href="../../_static/favicon.ico"/>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="Tensors" href="tensor.html" />
<link rel="prev" title="Streaming Execution (Acero)" href="acero.html" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="docsearch:language" content="en"/>
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
/* We explicitly disable cookie tracking to avoid privacy issues */
_paq.push(['disableCookies']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://analytics.apache.org/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '20']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
</head>
<body data-bs-spy="scroll" data-bs-target=".bd-toc-nav" data-offset="180" data-bs-root-margin="0px 0px -60%" data-default-mode="">
<a id="pst-skip-link" class="skip-link" href="#main-content">Skip to main content</a>
<div id="pst-scroll-pixel-helper"></div>
<button type="button" class="btn rounded-pill" id="pst-back-to-top">
<i class="fa-solid fa-arrow-up"></i>
Back to top
</button>
<input type="checkbox"
class="sidebar-toggle"
name="__primary"
id="__primary"/>
<label class="overlay overlay-primary" for="__primary"></label>
<input type="checkbox"
class="sidebar-toggle"
name="__secondary"
id="__secondary"/>
<label class="overlay overlay-secondary" for="__secondary"></label>
<div class="search-button__wrapper">
<div class="search-button__overlay"></div>
<div class="search-button__search-container">
<form class="bd-search d-flex align-items-center"
action="../../search.html"
method="get">
<i class="fa-solid fa-magnifying-glass"></i>
<input type="search"
class="form-control"
name="q"
id="search-input"
placeholder="Search the docs ..."
aria-label="Search the docs ..."
autocomplete="off"
autocorrect="off"
autocapitalize="off"
spellcheck="false"/>
<span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span>
</form></div>
</div>
<header class="bd-header navbar navbar-expand-lg bd-navbar">
<div class="bd-header__inner bd-page-width">
<label class="sidebar-toggle primary-toggle" for="__primary">
<span class="fa-solid fa-bars"></span>
</label>
<div class="col-lg-3 navbar-header-items__start">
<div class="navbar-item">
<a class="navbar-brand logo" href="../../index.html">
<img src="../../_static/arrow.png" class="logo__image only-light" alt="Apache Arrow v17.0.0.dev52 - Home"/>
<script>document.write(`<img src="../../_static/arrow-dark.png" class="logo__image only-dark" alt="Apache Arrow v17.0.0.dev52 - Home"/>`);</script>
</a></div>
</div>
<div class="col-lg-9 navbar-header-items">
<div class="me-auto navbar-header-items__center">
<div class="navbar-item">
<nav class="navbar-nav">
<ul class="bd-navbar-elements navbar-nav">
<li class="nav-item">
<a class="nav-link nav-internal" href="../../format/index.html">
Specifications
</a>
</li>
<li class="nav-item">
<a class="nav-link nav-internal" href="../../developers/index.html">
Development
</a>
</li>
<li class="nav-item dropdown">
<button class="btn dropdown-toggle nav-item" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-controls="pst-nav-more-links">
Implementations
</button>
<ul id="pst-nav-more-links" class="dropdown-menu">
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../c_glib/index.html">
C/GLib
</a>
</li>
<li class="nav-item current active">
<a class="nav-link dropdown-item nav-internal" href="../index.html">
C++
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/csharp/README.md">
C#
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://pkg.go.dev/github.com/apache/arrow/go/v17">
Go
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../java/index.html">
Java
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../js/index.html">
JavaScript
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/julia/">
Julia
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/matlab/README.md">
MATLAB
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/nanoarrow/">
nanoarrow
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../python/index.html">
Python
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../r/index.html">
R
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/ruby/README.md">
Ruby
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://docs.rs/crate/arrow/">
Rust
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../status.html">
Implementation Status
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/cpp/">
C++ cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/java/">
Java cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/py/">
Python cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/r/">
R cookbook
</a>
</li>
</ul>
</li>
</ul>
</nav></div>
</div>
<div class="navbar-header-items__end">
<div class="navbar-item navbar-persistent--container">
<script>
document.write(`
<button class="btn navbar-btn search-button-field search-button__button" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip">
<i class="fa-solid fa-magnifying-glass"></i>
<span class="search-button__default-text">Search</span>
<span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span>
</button>
`);
</script>
</div>
<div class="navbar-item">
<script>
document.write(`
<div class="version-switcher__container dropdown">
<button id="pst-version-switcher-button-2"
type="button"
class="version-switcher__button btn btn-sm navbar-btn dropdown-toggle"
data-bs-toggle="dropdown"
aria-haspopup="listbox"
aria-controls="pst-version-switcher-list-2"
aria-label="Version switcher list"
>
Choose version <!-- this text may get changed later by javascript -->
<span class="caret"></span>
</button>
<div id="pst-version-switcher-list-2"
class="version-switcher__menu dropdown-menu list-group-flush py-0"
role="listbox" aria-labelledby="pst-version-switcher-button-2">
<!-- dropdown will be populated by javascript on page load -->
</div>
</div>
`);
</script></div>
<div class="navbar-item">
<script>
document.write(`
<button class="btn btn-sm navbar-btn theme-switch-button" title="light/dark" aria-label="light/dark" data-bs-placement="bottom" data-bs-toggle="tooltip">
<span class="theme-switch nav-link" data-mode="light"><i class="fa-solid fa-sun fa-lg"></i></span>
<span class="theme-switch nav-link" data-mode="dark"><i class="fa-solid fa-moon fa-lg"></i></span>
<span class="theme-switch nav-link" data-mode="auto"><i class="fa-solid fa-circle-half-stroke fa-lg"></i></span>
</button>
`);
</script></div>
<div class="navbar-item"><ul class="navbar-icon-links navbar-nav"
aria-label="Icon Links">
<li class="nav-item">
<a href="https://github.com/apache/arrow" title="GitHub" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-square-github fa-lg" aria-hidden="true"></i></span>
<span class="sr-only">GitHub</span></a>
</li>
<li class="nav-item">
<a href="https://twitter.com/ApacheArrow" title="X" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-square-x-twitter fa-lg" aria-hidden="true"></i></span>
<span class="sr-only">X</span></a>
</li>
</ul></div>
</div>
</div>
<div class="navbar-persistent--mobile">
<script>
document.write(`
<button class="btn navbar-btn search-button-field search-button__button" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip">
<i class="fa-solid fa-magnifying-glass"></i>
<span class="search-button__default-text">Search</span>
<span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span>
</button>
`);
</script>
</div>
<label class="sidebar-toggle secondary-toggle" for="__secondary" tabindex="0">
<span class="fa-solid fa-outdent"></span>
</label>
</div>
</header>
<div class="bd-container">
<div class="bd-container__inner bd-page-width">
<div class="bd-sidebar-primary bd-sidebar">
<div class="sidebar-header-items sidebar-primary__section">
<div class="sidebar-header-items__center">
<div class="navbar-item">
<nav class="navbar-nav">
<ul class="bd-navbar-elements navbar-nav">
<li class="nav-item">
<a class="nav-link nav-internal" href="../../format/index.html">
Specifications
</a>
</li>
<li class="nav-item">
<a class="nav-link nav-internal" href="../../developers/index.html">
Development
</a>
</li>
<li class="nav-item dropdown">
<button class="btn dropdown-toggle nav-item" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-controls="pst-nav-more-links-2">
Implementations
</button>
<ul id="pst-nav-more-links-2" class="dropdown-menu">
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../c_glib/index.html">
C/GLib
</a>
</li>
<li class="nav-item current active">
<a class="nav-link dropdown-item nav-internal" href="../index.html">
C++
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/csharp/README.md">
C#
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://pkg.go.dev/github.com/apache/arrow/go/v17">
Go
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../java/index.html">
Java
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../js/index.html">
JavaScript
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/julia/">
Julia
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/matlab/README.md">
MATLAB
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/nanoarrow/">
nanoarrow
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../python/index.html">
Python
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../r/index.html">
R
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/ruby/README.md">
Ruby
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://docs.rs/crate/arrow/">
Rust
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../status.html">
Implementation Status
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/cpp/">
C++ cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/java/">
Java cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/py/">
Python cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/r/">
R cookbook
</a>
</li>
</ul>
</li>
</ul>
</nav></div>
</div>
<div class="sidebar-header-items__end">
<div class="navbar-item">
<script>
document.write(`
<div class="version-switcher__container dropdown">
<button id="pst-version-switcher-button-3"
type="button"
class="version-switcher__button btn btn-sm navbar-btn dropdown-toggle"
data-bs-toggle="dropdown"
aria-haspopup="listbox"
aria-controls="pst-version-switcher-list-3"
aria-label="Version switcher list"
>
Choose version <!-- this text may get changed later by javascript -->
<span class="caret"></span>
</button>
<div id="pst-version-switcher-list-3"
class="version-switcher__menu dropdown-menu list-group-flush py-0"
role="listbox" aria-labelledby="pst-version-switcher-button-3">
<!-- dropdown will be populated by javascript on page load -->
</div>
</div>
`);
</script></div>
<div class="navbar-item">
<script>
document.write(`
<button class="btn btn-sm navbar-btn theme-switch-button" title="light/dark" aria-label="light/dark" data-bs-placement="bottom" data-bs-toggle="tooltip">
<span class="theme-switch nav-link" data-mode="light"><i class="fa-solid fa-sun fa-lg"></i></span>
<span class="theme-switch nav-link" data-mode="dark"><i class="fa-solid fa-moon fa-lg"></i></span>
<span class="theme-switch nav-link" data-mode="auto"><i class="fa-solid fa-circle-half-stroke fa-lg"></i></span>
</button>
`);
</script></div>
<div class="navbar-item"><ul class="navbar-icon-links navbar-nav"
aria-label="Icon Links">
<li class="nav-item">
<a href="https://github.com/apache/arrow" title="GitHub" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-square-github fa-lg" aria-hidden="true"></i></span>
<span class="sr-only">GitHub</span></a>
</li>
<li class="nav-item">
<a href="https://twitter.com/ApacheArrow" title="X" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-square-x-twitter fa-lg" aria-hidden="true"></i></span>
<span class="sr-only">X</span></a>
</li>
</ul></div>
</div>
</div>
<div class="sidebar-primary-items__start sidebar-primary__section">
<div class="sidebar-primary-item">
<nav class="bd-docs-nav bd-links"
aria-label="Section Navigation">
<p class="bd-links__title" role="heading" aria-level="1">Section Navigation</p>
<div class="bd-toc-item navbar-nav"><ul class="current nav bd-sidenav">
<li class="toctree-l1 has-children"><a class="reference internal" href="../getting_started.html">Getting Started</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-1"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../build_system.html">Using Arrow C++ in your own project</a></li>
<li class="toctree-l2"><a class="reference internal" href="../conventions.html">Conventions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../tutorials/basic_arrow.html">Basic Arrow Data Structures</a></li>
<li class="toctree-l2"><a class="reference internal" href="../tutorials/io_tutorial.html">Arrow File I/O</a></li>
<li class="toctree-l2"><a class="reference internal" href="../tutorials/compute_tutorial.html">Arrow Compute</a></li>
<li class="toctree-l2"><a class="reference internal" href="../tutorials/datasets_tutorial.html">Arrow Datasets</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../user_guide.html">User Guide</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-2"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../overview.html">High-Level Overview</a></li>
<li class="toctree-l2"><a class="reference internal" href="../memory.html">Memory Management</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arrays.html">Arrays</a></li>
<li class="toctree-l2"><a class="reference internal" href="../datatypes.html">Data Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="../tables.html">Tabular Data</a></li>
<li class="toctree-l2"><a class="reference internal" href="../compute.html">Compute Functions</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../gandiva.html">The Gandiva Expression Compiler</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-3"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../gandiva/expr_projector_filter.html">Gandiva Expression, Projector, and Filter</a></li>
<li class="toctree-l3"><a class="reference internal" href="../gandiva/external_func.html">Gandiva External Functions Development Guide</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../streaming_execution.html">Acero: A C++ streaming execution engine</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-4"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../acero/overview.html">Acero Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../acero/user_guide.html">Acero User’s Guide</a></li>
<li class="toctree-l3"><a class="reference internal" href="../acero/substrait.html">Using Acero with Substrait</a></li>
<li class="toctree-l3"><a class="reference internal" href="../acero/developer_guide.html">Developer’s Guide</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../io.html">Input / output and filesystems</a></li>
<li class="toctree-l2"><a class="reference internal" href="../ipc.html">Reading and writing the Arrow IPC format</a></li>
<li class="toctree-l2"><a class="reference internal" href="../orc.html">Reading and Writing ORC files</a></li>
<li class="toctree-l2"><a class="reference internal" href="../parquet.html">Reading and writing Parquet files</a></li>
<li class="toctree-l2"><a class="reference internal" href="../csv.html">Reading and Writing CSV files</a></li>
<li class="toctree-l2"><a class="reference internal" href="../json.html">Reading JSON files</a></li>
<li class="toctree-l2"><a class="reference internal" href="../dataset.html">Tabular Datasets</a></li>
<li class="toctree-l2"><a class="reference internal" href="../flight.html">Arrow Flight RPC</a></li>
<li class="toctree-l2"><a class="reference internal" href="../gdb.html">Debugging code using Arrow</a></li>
<li class="toctree-l2"><a class="reference internal" href="../threading.html">Thread Management</a></li>
<li class="toctree-l2"><a class="reference internal" href="../opentelemetry.html">OpenTelemetry</a></li>
<li class="toctree-l2"><a class="reference internal" href="../env_vars.html">Environment Variables</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../examples/index.html">Examples</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-5"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../examples/cmake_minimal_build.html">Minimal build using CMake</a></li>
<li class="toctree-l2"><a class="reference internal" href="../examples/compute_and_write_example.html">Compute and Write CSV Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="../examples/dataset_documentation_example.html">Arrow Datasets example</a></li>
<li class="toctree-l2"><a class="reference internal" href="../examples/dataset_skyhook_scan_example.html">Arrow Skyhook example</a></li>
<li class="toctree-l2"><a class="reference internal" href="../examples/row_columnar_conversion.html">Row to columnar conversion</a></li>
<li class="toctree-l2"><a class="reference internal" href="../examples/tuple_range_conversion.html">std::tuple-like ranges to Arrow</a></li>
<li class="toctree-l2"><a class="reference internal" href="../examples/converting_recordbatch_to_tensor.html">Converting RecordBatch to Tensor</a></li>
</ul>
</li>
<li class="toctree-l1 current active has-children"><a class="reference internal" href="../api.html">API Reference</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-6"><i class="fa-solid fa-chevron-down"></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="support.html">Programming Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="memory.html">Memory (management)</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">Thread (management)</a></li>
<li class="toctree-l2"><a class="reference internal" href="datatype.html">Data Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="array.html">Arrays</a></li>
<li class="toctree-l2"><a class="reference internal" href="scalar.html">Scalars</a></li>
<li class="toctree-l2"><a class="reference internal" href="builder.html">Array Builders</a></li>
<li class="toctree-l2"><a class="reference internal" href="table.html">Two-dimensional Datasets</a></li>
<li class="toctree-l2"><a class="reference internal" href="c_abi.html">C Interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="compute.html">Compute Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="acero.html">Streaming Execution (Acero)</a></li>
<li class="toctree-l2 current active"><a class="current reference internal" href="#">Gandiva Expression Compiler</a></li>
<li class="toctree-l2"><a class="reference internal" href="tensor.html">Tensors</a></li>
<li class="toctree-l2"><a class="reference internal" href="utilities.html">Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="async.html">Asynchronous programming</a></li>
<li class="toctree-l2"><a class="reference internal" href="io.html">Input / output</a></li>
<li class="toctree-l2"><a class="reference internal" href="ipc.html">Arrow IPC</a></li>
<li class="toctree-l2"><a class="reference internal" href="formats.html">File Formats</a></li>
<li class="toctree-l2"><a class="reference internal" href="cuda.html">CUDA support</a></li>
<li class="toctree-l2"><a class="reference internal" href="flight.html">Arrow Flight RPC</a></li>
<li class="toctree-l2"><a class="reference internal" href="flightsql.html">Arrow Flight SQL</a></li>
<li class="toctree-l2"><a class="reference internal" href="filesystem.html">Filesystems</a></li>
<li class="toctree-l2"><a class="reference internal" href="dataset.html">Dataset</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference external" href="https://arrow.apache.org/cookbook/cpp/">C++ cookbook</a></li>
</ul>
</div>
</nav></div>
</div>
<div class="sidebar-primary-items__end sidebar-primary__section">
</div>
<div id="rtd-footer-container"></div>
</div>
<main id="main-content" class="bd-main">
<div class="bd-content">
<div class="bd-article-container">
<div class="bd-header-article">
<div class="header-article-items header-article__inner">
<div class="header-article-items__start">
<div class="header-article-item">
<nav aria-label="Breadcrumb">
<ul class="bd-breadcrumbs">
<li class="breadcrumb-item breadcrumb-home">
<a href="../../index.html" class="nav-link" aria-label="Home">
<i class="fa-solid fa-home"></i>
</a>
</li>
<li class="breadcrumb-item"><a href="../index.html" class="nav-link">C++ Implementation</a></li>
<li class="breadcrumb-item"><a href="../api.html" class="nav-link">API Reference</a></li>
<li class="breadcrumb-item active" aria-current="page">Gandiva...</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
<div id="searchbox"></div>
<article class="bd-article">
<section id="gandiva-expression-compiler">
<h1>Gandiva Expression Compiler<a class="headerlink" href="#gandiva-expression-compiler" title="Permalink to this heading">#</a></h1>
<section id="treeexprbuilder-class">
<h2>TreeExprBuilder Class<a class="headerlink" href="#treeexprbuilder-class" title="Permalink to this heading">#</a></h2>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilderE">
<span id="_CPPv3N7gandiva15TreeExprBuilderE"></span><span id="_CPPv2N7gandiva15TreeExprBuilderE"></span><span id="gandiva::TreeExprBuilder"></span><span class="target" id="classgandiva_1_1_tree_expr_builder"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">TreeExprBuilder</span></span></span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilderE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Tree Builder for a nested expression. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-functions">Public Static Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder11MakeLiteralEb">
<span id="_CPPv3N7gandiva15TreeExprBuilder11MakeLiteralEb"></span><span id="_CPPv2N7gandiva15TreeExprBuilder11MakeLiteralEb"></span><span id="gandiva::TreeExprBuilder::MakeLiteral__b"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1a04a1ef6fe9f36d67067ce93ff786d3e9"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeLiteral</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">value</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder11MakeLiteralEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create a node on a literal. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder8MakeNullE11DataTypePtr">
<span id="_CPPv3N7gandiva15TreeExprBuilder8MakeNullE11DataTypePtr"></span><span id="_CPPv2N7gandiva15TreeExprBuilder8MakeNullE11DataTypePtr"></span><span id="gandiva::TreeExprBuilder::MakeNull__DataTypePtr"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1aaa6d86773fd49a6cbd9b948054f8639d"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeNull</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">DataTypePtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">data_type</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder8MakeNullE11DataTypePtr" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create a node on a null literal. </p>
<p>returns null if data_type is null or if it’s not a supported datatype. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder9MakeFieldE8FieldPtr">
<span id="_CPPv3N7gandiva15TreeExprBuilder9MakeFieldE8FieldPtr"></span><span id="_CPPv2N7gandiva15TreeExprBuilder9MakeFieldE8FieldPtr"></span><span id="gandiva::TreeExprBuilder::MakeField__FieldPtr"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1a627e66aedadd483c62c4574e3d56b996"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeField</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">FieldPtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">field</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder9MakeFieldE8FieldPtr" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create a node on arrow field. </p>
<p>returns null if input is null. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder12MakeFunctionERKNSt6stringERK10NodeVector11DataTypePtr">
<span id="_CPPv3N7gandiva15TreeExprBuilder12MakeFunctionERKNSt6stringERK10NodeVector11DataTypePtr"></span><span id="_CPPv2N7gandiva15TreeExprBuilder12MakeFunctionERKNSt6stringERK10NodeVector11DataTypePtr"></span><span id="gandiva::TreeExprBuilder::MakeFunction__ssCR.NodeVectorCR.DataTypePtr"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1a5af6415984b66fe5ab66eb5bac6fcd38"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeFunction</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">name</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">NodeVector</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">params</span></span>, <span class="n"><span class="pre">DataTypePtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">return_type</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder12MakeFunctionERKNSt6stringERK10NodeVector11DataTypePtr" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create a node with a function. </p>
<p>returns null if return_type is null </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder6MakeIfE7NodePtr7NodePtr7NodePtr11DataTypePtr">
<span id="_CPPv3N7gandiva15TreeExprBuilder6MakeIfE7NodePtr7NodePtr7NodePtr11DataTypePtr"></span><span id="_CPPv2N7gandiva15TreeExprBuilder6MakeIfE7NodePtr7NodePtr7NodePtr11DataTypePtr"></span><span id="gandiva::TreeExprBuilder::MakeIf__NodePtr.NodePtr.NodePtr.DataTypePtr"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1ad2d5a05319e424718ab448b58e96570e"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeIf</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">condition</span></span>, <span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">then_node</span></span>, <span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">else_node</span></span>, <span class="n"><span class="pre">DataTypePtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">result_type</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder6MakeIfE7NodePtr7NodePtr7NodePtr11DataTypePtr" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create a node with an if-else expression. </p>
<p>returns null if any of the inputs is null. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder7MakeAndERK10NodeVector">
<span id="_CPPv3N7gandiva15TreeExprBuilder7MakeAndERK10NodeVector"></span><span id="_CPPv2N7gandiva15TreeExprBuilder7MakeAndERK10NodeVector"></span><span id="gandiva::TreeExprBuilder::MakeAnd__NodeVectorCR"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1af190d76854f6ea9bf1490eac0d855e7c"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeAnd</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">NodeVector</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">children</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder7MakeAndERK10NodeVector" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create a node with a boolean AND expression. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder6MakeOrERK10NodeVector">
<span id="_CPPv3N7gandiva15TreeExprBuilder6MakeOrERK10NodeVector"></span><span id="_CPPv2N7gandiva15TreeExprBuilder6MakeOrERK10NodeVector"></span><span id="gandiva::TreeExprBuilder::MakeOr__NodeVectorCR"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1a95e9ba77c0b908db4a64dcc67d095751"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeOr</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">NodeVector</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">children</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder6MakeOrERK10NodeVector" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create a node with a boolean OR expression. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder14MakeExpressionE7NodePtr8FieldPtr">
<span id="_CPPv3N7gandiva15TreeExprBuilder14MakeExpressionE7NodePtr8FieldPtr"></span><span id="_CPPv2N7gandiva15TreeExprBuilder14MakeExpressionE7NodePtr8FieldPtr"></span><span id="gandiva::TreeExprBuilder::MakeExpression__NodePtr.FieldPtr"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1adbd17b9a69e6c29bb6f838ef0bf8d4d5"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">ExpressionPtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeExpression</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">root_node</span></span>, <span class="n"><span class="pre">FieldPtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">result_field</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder14MakeExpressionE7NodePtr8FieldPtr" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create an expression with the specified root_node, and the result written to result_field. </p>
<p>returns null if the result_field is null. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder14MakeExpressionERKNSt6stringERK11FieldVector8FieldPtr">
<span id="_CPPv3N7gandiva15TreeExprBuilder14MakeExpressionERKNSt6stringERK11FieldVector8FieldPtr"></span><span id="_CPPv2N7gandiva15TreeExprBuilder14MakeExpressionERKNSt6stringERK11FieldVector8FieldPtr"></span><span id="gandiva::TreeExprBuilder::MakeExpression__ssCR.FieldVectorCR.FieldPtr"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1aba52f83d347ef7b8022c7fb32e0a7e96"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">ExpressionPtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeExpression</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">function</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">FieldVector</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">in_fields</span></span>, <span class="n"><span class="pre">FieldPtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">out_field</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder14MakeExpressionERKNSt6stringERK11FieldVector8FieldPtr" title="Permalink to this definition">#</a><br /></dt>
<dd><p>convenience function for simple function expressions. </p>
<p>returns null if the out_field is null. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder13MakeConditionE7NodePtr">
<span id="_CPPv3N7gandiva15TreeExprBuilder13MakeConditionE7NodePtr"></span><span id="_CPPv2N7gandiva15TreeExprBuilder13MakeConditionE7NodePtr"></span><span id="gandiva::TreeExprBuilder::MakeCondition__NodePtr"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1afda2d0cfe39189ef159716ae35579a8c"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">ConditionPtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeCondition</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">root_node</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder13MakeConditionE7NodePtr" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create a condition with the specified root_node </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder13MakeConditionERKNSt6stringERK11FieldVector">
<span id="_CPPv3N7gandiva15TreeExprBuilder13MakeConditionERKNSt6stringERK11FieldVector"></span><span id="_CPPv2N7gandiva15TreeExprBuilder13MakeConditionERKNSt6stringERK11FieldVector"></span><span id="gandiva::TreeExprBuilder::MakeCondition__ssCR.FieldVectorCR"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1ad76d6d174df3bf2bdd41a1d58a7498ca"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">ConditionPtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeCondition</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">function</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">FieldVector</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">in_fields</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder13MakeConditionERKNSt6stringERK11FieldVector" title="Permalink to this definition">#</a><br /></dt>
<dd><p>convenience function for simple function conditions. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder21MakeInExpressionInt32E7NodePtrRKNSt13unordered_setI7int32_tEE">
<span id="_CPPv3N7gandiva15TreeExprBuilder21MakeInExpressionInt32E7NodePtrRKNSt13unordered_setI7int32_tEE"></span><span id="_CPPv2N7gandiva15TreeExprBuilder21MakeInExpressionInt32E7NodePtrRKNSt13unordered_setI7int32_tEE"></span><span id="gandiva::TreeExprBuilder::MakeInExpressionInt32__NodePtr.std::unordered_set:int32_t:CR"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1a88bfd64edacf462573b2af45444cc794"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeInExpressionInt32</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">node</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unordered_set</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">int32_t</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">constants</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder21MakeInExpressionInt32E7NodePtrRKNSt13unordered_setI7int32_tEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>creates an in expression </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder21MakeInExpressionFloatE7NodePtrRKNSt13unordered_setIfEE">
<span id="_CPPv3N7gandiva15TreeExprBuilder21MakeInExpressionFloatE7NodePtrRKNSt13unordered_setIfEE"></span><span id="_CPPv2N7gandiva15TreeExprBuilder21MakeInExpressionFloatE7NodePtrRKNSt13unordered_setIfEE"></span><span id="gandiva::TreeExprBuilder::MakeInExpressionFloat__NodePtr.std::unordered_set:float:CR"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1a346f6a966179b6f4a0b68447801c0cf4"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeInExpressionFloat</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">node</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unordered_set</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">float</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">constants</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder21MakeInExpressionFloatE7NodePtrRKNSt13unordered_setIfEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>creates an in expression for float </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder22MakeInExpressionDoubleE7NodePtrRKNSt13unordered_setIdEE">
<span id="_CPPv3N7gandiva15TreeExprBuilder22MakeInExpressionDoubleE7NodePtrRKNSt13unordered_setIdEE"></span><span id="_CPPv2N7gandiva15TreeExprBuilder22MakeInExpressionDoubleE7NodePtrRKNSt13unordered_setIdEE"></span><span id="gandiva::TreeExprBuilder::MakeInExpressionDouble__NodePtr.std::unordered_set:double:CR"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1ae19bdcc94f90ed6a4412ebdd9f80abef"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeInExpressionDouble</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">node</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unordered_set</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">double</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">constants</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder22MakeInExpressionDoubleE7NodePtrRKNSt13unordered_setIdEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>creates an in expression for double </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder22MakeInExpressionDate32E7NodePtrRKNSt13unordered_setI7int32_tEE">
<span id="_CPPv3N7gandiva15TreeExprBuilder22MakeInExpressionDate32E7NodePtrRKNSt13unordered_setI7int32_tEE"></span><span id="_CPPv2N7gandiva15TreeExprBuilder22MakeInExpressionDate32E7NodePtrRKNSt13unordered_setI7int32_tEE"></span><span id="gandiva::TreeExprBuilder::MakeInExpressionDate32__NodePtr.std::unordered_set:int32_t:CR"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1a6bccfce16df34a406e26a0884c0884a9"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeInExpressionDate32</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">node</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unordered_set</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">int32_t</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">constants</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder22MakeInExpressionDate32E7NodePtrRKNSt13unordered_setI7int32_tEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Date as s/millis since epoch. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder22MakeInExpressionDate64E7NodePtrRKNSt13unordered_setI7int64_tEE">
<span id="_CPPv3N7gandiva15TreeExprBuilder22MakeInExpressionDate64E7NodePtrRKNSt13unordered_setI7int64_tEE"></span><span id="_CPPv2N7gandiva15TreeExprBuilder22MakeInExpressionDate64E7NodePtrRKNSt13unordered_setI7int64_tEE"></span><span id="gandiva::TreeExprBuilder::MakeInExpressionDate64__NodePtr.std::unordered_set:int64_t:CR"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1a69f96150da5d7ca6d0ab1807f3347226"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeInExpressionDate64</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">node</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unordered_set</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">int64_t</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">constants</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder22MakeInExpressionDate64E7NodePtrRKNSt13unordered_setI7int64_tEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Date as millis/us/ns since epoch. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder22MakeInExpressionTime32E7NodePtrRKNSt13unordered_setI7int32_tEE">
<span id="_CPPv3N7gandiva15TreeExprBuilder22MakeInExpressionTime32E7NodePtrRKNSt13unordered_setI7int32_tEE"></span><span id="_CPPv2N7gandiva15TreeExprBuilder22MakeInExpressionTime32E7NodePtrRKNSt13unordered_setI7int32_tEE"></span><span id="gandiva::TreeExprBuilder::MakeInExpressionTime32__NodePtr.std::unordered_set:int32_t:CR"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1a871571bf39d27c7d991ee0446c19f7aa"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeInExpressionTime32</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">node</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unordered_set</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">int32_t</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">constants</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder22MakeInExpressionTime32E7NodePtrRKNSt13unordered_setI7int32_tEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Time as s/millis of day. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder22MakeInExpressionTime64E7NodePtrRKNSt13unordered_setI7int64_tEE">
<span id="_CPPv3N7gandiva15TreeExprBuilder22MakeInExpressionTime64E7NodePtrRKNSt13unordered_setI7int64_tEE"></span><span id="_CPPv2N7gandiva15TreeExprBuilder22MakeInExpressionTime64E7NodePtrRKNSt13unordered_setI7int64_tEE"></span><span id="gandiva::TreeExprBuilder::MakeInExpressionTime64__NodePtr.std::unordered_set:int64_t:CR"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1ac329306ef6fd5a20ae59dee184055113"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeInExpressionTime64</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">node</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unordered_set</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">int64_t</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">constants</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder22MakeInExpressionTime64E7NodePtrRKNSt13unordered_setI7int64_tEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Time as millis/us/ns of day. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15TreeExprBuilder25MakeInExpressionTimeStampE7NodePtrRKNSt13unordered_setI7int64_tEE">
<span id="_CPPv3N7gandiva15TreeExprBuilder25MakeInExpressionTimeStampE7NodePtrRKNSt13unordered_setI7int64_tEE"></span><span id="_CPPv2N7gandiva15TreeExprBuilder25MakeInExpressionTimeStampE7NodePtrRKNSt13unordered_setI7int64_tEE"></span><span id="gandiva::TreeExprBuilder::MakeInExpressionTimeStamp__NodePtr.std::unordered_set:int64_t:CR"></span><span class="target" id="classgandiva_1_1_tree_expr_builder_1a74c22fb5f7d32734144cafd312674661"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeInExpressionTimeStamp</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">NodePtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">node</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unordered_set</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">int64_t</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">constants</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15TreeExprBuilder25MakeInExpressionTimeStampE7NodePtrRKNSt13unordered_setI7int64_tEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Timestamp as millis since epoch. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva4NodeE">
<span id="_CPPv3N7gandiva4NodeE"></span><span id="_CPPv2N7gandiva4NodeE"></span><span id="gandiva::Node"></span><span class="target" id="classgandiva_1_1_node"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Node</span></span></span><a class="headerlink" href="#_CPPv4N7gandiva4NodeE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Represents a node in the expression tree. </p>
<p>Validity and value are in a joined state. </p>
<p>Subclassed by gandiva::BooleanNode, gandiva::FieldNode, gandiva::FunctionNode, gandiva::IfNode, gandiva::InExpressionNode&lt; Type &gt;, gandiva::InExpressionNode&lt; gandiva::DecimalScalar128 &gt;, gandiva::LiteralNode</p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK7gandiva4Node6AcceptER11NodeVisitor">
<span id="_CPPv3NK7gandiva4Node6AcceptER11NodeVisitor"></span><span id="_CPPv2NK7gandiva4Node6AcceptER11NodeVisitor"></span><span id="gandiva::Node::Accept__NodeVisitorRC"></span><span class="target" id="classgandiva_1_1_node_1a07a1ab1f2c7f363bdd27cbba8387ffa3"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Accept</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">NodeVisitor</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">visitor</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4NK7gandiva4Node6AcceptER11NodeVisitor" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Derived classes should simply invoke the Visit api of the visitor. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva10ExpressionE">
<span id="_CPPv3N7gandiva10ExpressionE"></span><span id="_CPPv2N7gandiva10ExpressionE"></span><span id="gandiva::Expression"></span><span class="target" id="classgandiva_1_1_expression"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Expression</span></span></span><a class="headerlink" href="#_CPPv4N7gandiva10ExpressionE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>An expression tree with a root node, and a result field. </p>
<p>Subclassed by <a class="reference internal" href="#classgandiva_1_1_condition"><span class="std std-ref">gandiva::Condition</span></a></p>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva9ConditionE">
<span id="_CPPv3N7gandiva9ConditionE"></span><span id="_CPPv2N7gandiva9ConditionE"></span><span id="gandiva::Condition"></span><span class="target" id="classgandiva_1_1_condition"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Condition</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">gandiva</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N7gandiva10ExpressionE" title="gandiva::Expression"><span class="n"><span class="pre">Expression</span></span></a><a class="headerlink" href="#_CPPv4N7gandiva9ConditionE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>A condition expression. </p>
</dd></dl>
</section>
<section id="function-registry">
<h2>Function registry<a class="headerlink" href="#function-registry" title="Permalink to this heading">#</a></h2>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva17FunctionSignatureE">
<span id="_CPPv3N7gandiva17FunctionSignatureE"></span><span id="_CPPv2N7gandiva17FunctionSignatureE"></span><span id="gandiva::FunctionSignature"></span><span class="target" id="classgandiva_1_1_function_signature"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FunctionSignature</span></span></span><a class="headerlink" href="#_CPPv4N7gandiva17FunctionSignatureE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Signature for a function : includes the base name, input param types and output types. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK7gandiva17FunctionSignature4HashEv">
<span id="_CPPv3NK7gandiva17FunctionSignature4HashEv"></span><span id="_CPPv2NK7gandiva17FunctionSignature4HashEv"></span><span id="gandiva::FunctionSignature::HashC"></span><span class="target" id="classgandiva_1_1_function_signature_1a4cb548c0b209a265773902dd1e4c6a06"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">size_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Hash</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK7gandiva17FunctionSignature4HashEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>calculated based on name, datatype id of parameters and datatype id of return type. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva31GetRegisteredFunctionSignaturesEv">
<span id="_CPPv3N7gandiva31GetRegisteredFunctionSignaturesEv"></span><span id="_CPPv2N7gandiva31GetRegisteredFunctionSignaturesEv"></span><span id="gandiva::GetRegisteredFunctionSignatures"></span><span class="target" id="namespacegandiva_1a1ead088dc01367044cf1cbe81eda5bbe"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">vector</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva17FunctionSignatureE" title="gandiva::FunctionSignature"><span class="n"><span class="pre">FunctionSignature</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">gandiva</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">GetRegisteredFunctionSignatures</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva31GetRegisteredFunctionSignaturesEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Get the list of all function signatures. </p>
</dd></dl>
</section>
<section id="configuration">
<h2>Configuration<a class="headerlink" href="#configuration" title="Permalink to this heading">#</a></h2>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva13ConfigurationE">
<span id="_CPPv3N7gandiva13ConfigurationE"></span><span id="_CPPv2N7gandiva13ConfigurationE"></span><span id="gandiva::Configuration"></span><span class="target" id="classgandiva_1_1_configuration"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Configuration</span></span></span><a class="headerlink" href="#_CPPv4N7gandiva13ConfigurationE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>runtime config for gandiva </p>
<p>It contains elements to customize gandiva execution at run time. </p>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva20ConfigurationBuilderE">
<span id="_CPPv3N7gandiva20ConfigurationBuilderE"></span><span id="_CPPv2N7gandiva20ConfigurationBuilderE"></span><span id="gandiva::ConfigurationBuilder"></span><span class="target" id="classgandiva_1_1_configuration_builder"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ConfigurationBuilder</span></span></span><a class="headerlink" href="#_CPPv4N7gandiva20ConfigurationBuilderE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>configuration builder for gandiva </p>
<p>Provides a default configuration and convenience methods to override specific values and build a custom instance </p>
</dd></dl>
</section>
<section id="projector">
<h2>Projector<a class="headerlink" href="#projector" title="Permalink to this heading">#</a></h2>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva9ProjectorE">
<span id="_CPPv3N7gandiva9ProjectorE"></span><span id="_CPPv2N7gandiva9ProjectorE"></span><span id="gandiva::Projector"></span><span class="target" id="classgandiva_1_1_projector"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Projector</span></span></span><a class="headerlink" href="#_CPPv4N7gandiva9ProjectorE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>projection using expressions. </p>
<p>A projector is built for a specific schema and vector of expressions. Once the projector is built, it can be used to evaluate many row batches. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK7gandiva9Projector8EvaluateERKN5arrow11RecordBatchEPN5arrow10MemoryPoolEPN5arrow11ArrayVectorE">
<span id="_CPPv3NK7gandiva9Projector8EvaluateERKN5arrow11RecordBatchEPN5arrow10MemoryPoolEPN5arrow11ArrayVectorE"></span><span id="_CPPv2NK7gandiva9Projector8EvaluateERKN5arrow11RecordBatchEPN5arrow10MemoryPoolEPN5arrow11ArrayVectorE"></span><span id="gandiva::Projector::Evaluate__arrow::RecordBatchCR.arrow::MemoryPoolP.arrow::ArrayVectorPC"></span><span class="target" id="classgandiva_1_1_projector_1adbac1e21fc8229ce019268484db00a1e"></span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Evaluate</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="table.html#_CPPv4N5arrow11RecordBatchE" title="arrow::RecordBatch"><span class="n"><span class="pre">RecordBatch</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">batch</span></span>, <span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="memory.html#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">pool</span></span>, <span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">ArrayVector</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">output</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK7gandiva9Projector8EvaluateERKN5arrow11RecordBatchEPN5arrow10MemoryPoolEPN5arrow11ArrayVectorE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Evaluate the specified record batch, and return the allocated and populated output arrays. </p>
<p>The output arrays will be allocated from the memory pool ‘pool’, and added to the vector ‘output’.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>batch</strong><strong>[in]</strong> the record batch. schema should be the same as the one in ‘Make’ </p></li>
<li><p><strong>pool</strong><strong>[in]</strong> memory pool used to allocate output arrays (if required). </p></li>
<li><p><strong>output</strong><strong>[out]</strong> the vector of allocated/populated arrays. </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK7gandiva9Projector8EvaluateERKN5arrow11RecordBatchERK15ArrayDataVector">
<span id="_CPPv3NK7gandiva9Projector8EvaluateERKN5arrow11RecordBatchERK15ArrayDataVector"></span><span id="_CPPv2NK7gandiva9Projector8EvaluateERKN5arrow11RecordBatchERK15ArrayDataVector"></span><span id="gandiva::Projector::Evaluate__arrow::RecordBatchCR.ArrayDataVectorCRC"></span><span class="target" id="classgandiva_1_1_projector_1ad989c99a2c90f1a3b6dc9e69bac896f5"></span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Evaluate</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="table.html#_CPPv4N5arrow11RecordBatchE" title="arrow::RecordBatch"><span class="n"><span class="pre">RecordBatch</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">batch</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayDataVector</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">output</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK7gandiva9Projector8EvaluateERKN5arrow11RecordBatchERK15ArrayDataVector" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Evaluate the specified record batch, and populate the output arrays. </p>
<p>The output arrays of sufficient capacity must be allocated by the caller.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>batch</strong><strong>[in]</strong> the record batch. schema should be the same as the one in ‘Make’ </p></li>
<li><p><strong>output</strong><strong>[inout]</strong> vector of arrays, the arrays are allocated by the caller and populated by Evaluate. </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK7gandiva9Projector8EvaluateERKN5arrow11RecordBatchEPK15SelectionVectorPN5arrow10MemoryPoolEPN5arrow11ArrayVectorE">
<span id="_CPPv3NK7gandiva9Projector8EvaluateERKN5arrow11RecordBatchEPK15SelectionVectorPN5arrow10MemoryPoolEPN5arrow11ArrayVectorE"></span><span id="_CPPv2NK7gandiva9Projector8EvaluateERKN5arrow11RecordBatchEPK15SelectionVectorPN5arrow10MemoryPoolEPN5arrow11ArrayVectorE"></span><span id="gandiva::Projector::Evaluate__arrow::RecordBatchCR.SelectionVectorCP.arrow::MemoryPoolP.arrow::ArrayVectorPC"></span><span class="target" id="classgandiva_1_1_projector_1a005e3b89c197cc12664e0688ada2376b"></span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Evaluate</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="table.html#_CPPv4N5arrow11RecordBatchE" title="arrow::RecordBatch"><span class="n"><span class="pre">RecordBatch</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">batch</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N7gandiva15SelectionVectorE" title="gandiva::SelectionVector"><span class="n"><span class="pre">SelectionVector</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">selection_vector</span></span>, <span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="memory.html#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">pool</span></span>, <span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">ArrayVector</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">output</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK7gandiva9Projector8EvaluateERKN5arrow11RecordBatchEPK15SelectionVectorPN5arrow10MemoryPoolEPN5arrow11ArrayVectorE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Evaluate the specified record batch, and return the allocated and populated output arrays. </p>
<p>The output arrays will be allocated from the memory pool ‘pool’, and added to the vector ‘output’.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>batch</strong><strong>[in]</strong> the record batch. schema should be the same as the one in ‘Make’ </p></li>
<li><p><strong>selection_vector</strong><strong>[in]</strong> selection vector which has filtered row positions. </p></li>
<li><p><strong>pool</strong><strong>[in]</strong> memory pool used to allocate output arrays (if required). </p></li>
<li><p><strong>output</strong><strong>[out]</strong> the vector of allocated/populated arrays. </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK7gandiva9Projector8EvaluateERKN5arrow11RecordBatchEPK15SelectionVectorRK15ArrayDataVector">
<span id="_CPPv3NK7gandiva9Projector8EvaluateERKN5arrow11RecordBatchEPK15SelectionVectorRK15ArrayDataVector"></span><span id="_CPPv2NK7gandiva9Projector8EvaluateERKN5arrow11RecordBatchEPK15SelectionVectorRK15ArrayDataVector"></span><span id="gandiva::Projector::Evaluate__arrow::RecordBatchCR.SelectionVectorCP.ArrayDataVectorCRC"></span><span class="target" id="classgandiva_1_1_projector_1a7a7cb7254ed7b7de248cab88d5d94119"></span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Evaluate</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="table.html#_CPPv4N5arrow11RecordBatchE" title="arrow::RecordBatch"><span class="n"><span class="pre">RecordBatch</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">batch</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N7gandiva15SelectionVectorE" title="gandiva::SelectionVector"><span class="n"><span class="pre">SelectionVector</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">selection_vector</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayDataVector</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">output</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK7gandiva9Projector8EvaluateERKN5arrow11RecordBatchEPK15SelectionVectorRK15ArrayDataVector" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Evaluate the specified record batch, and populate the output arrays at the filtered positions. </p>
<p>The output arrays of sufficient capacity must be allocated by the caller.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>batch</strong><strong>[in]</strong> the record batch. schema should be the same as the one in ‘Make’ </p></li>
<li><p><strong>selection_vector</strong><strong>[in]</strong> selection vector which has the filtered row positions </p></li>
<li><p><strong>output</strong><strong>[inout]</strong> vector of arrays, the arrays are allocated by the caller and populated by Evaluate. </p></li>
</ul>
</dd>
</dl>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-functions">Public Static Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva9Projector4MakeE9SchemaPtrRK16ExpressionVectorPNSt10shared_ptrI9ProjectorEE">
<span id="_CPPv3N7gandiva9Projector4MakeE9SchemaPtrRK16ExpressionVectorPNSt10shared_ptrI9ProjectorEE"></span><span id="_CPPv2N7gandiva9Projector4MakeE9SchemaPtrRK16ExpressionVectorPNSt10shared_ptrI9ProjectorEE"></span><span id="gandiva::Projector::Make__SchemaPtr.ExpressionVectorCR.std::shared_ptr:Projector:P"></span><span class="target" id="classgandiva_1_1_projector_1a952b4e76cd11a96457cac008aebf4f0e"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Make</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">SchemaPtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">schema</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">ExpressionVector</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">exprs</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva9ProjectorE" title="gandiva::Projector"><span class="n"><span class="pre">Projector</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">projector</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva9Projector4MakeE9SchemaPtrRK16ExpressionVectorPNSt10shared_ptrI9ProjectorEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Build a default projector for the given schema to evaluate the vector of expressions. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>schema</strong><strong>[in]</strong> schema for the record batches, and the expressions. </p></li>
<li><p><strong>exprs</strong><strong>[in]</strong> vector of expressions. </p></li>
<li><p><strong>projector</strong><strong>[out]</strong> the returned projector object </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva9Projector4MakeE9SchemaPtrRK16ExpressionVectorNSt10shared_ptrI13ConfigurationEEPNSt10shared_ptrI9ProjectorEE">
<span id="_CPPv3N7gandiva9Projector4MakeE9SchemaPtrRK16ExpressionVectorNSt10shared_ptrI13ConfigurationEEPNSt10shared_ptrI9ProjectorEE"></span><span id="_CPPv2N7gandiva9Projector4MakeE9SchemaPtrRK16ExpressionVectorNSt10shared_ptrI13ConfigurationEEPNSt10shared_ptrI9ProjectorEE"></span><span id="gandiva::Projector::Make__SchemaPtr.ExpressionVectorCR.std::shared_ptr:Configuration:.std::shared_ptr:Projector:P"></span><span class="target" id="classgandiva_1_1_projector_1a7a49c73ad8fa1de31166796075b4ec25"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Make</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">SchemaPtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">schema</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">ExpressionVector</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">exprs</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva13ConfigurationE" title="gandiva::Configuration"><span class="n"><span class="pre">Configuration</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">configuration</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva9ProjectorE" title="gandiva::Projector"><span class="n"><span class="pre">Projector</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">projector</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva9Projector4MakeE9SchemaPtrRK16ExpressionVectorNSt10shared_ptrI13ConfigurationEEPNSt10shared_ptrI9ProjectorEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Build a projector for the given schema to evaluate the vector of expressions. </p>
<p>Customize the projector with runtime configuration.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>schema</strong><strong>[in]</strong> schema for the record batches, and the expressions. </p></li>
<li><p><strong>exprs</strong><strong>[in]</strong> vector of expressions. </p></li>
<li><p><strong>configuration</strong><strong>[in]</strong> run time configuration. </p></li>
<li><p><strong>projector</strong><strong>[out]</strong> the returned projector object </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva9Projector4MakeE9SchemaPtrRK16ExpressionVectorN15SelectionVector4ModeENSt10shared_ptrI13ConfigurationEEPNSt10shared_ptrI9ProjectorEE">
<span id="_CPPv3N7gandiva9Projector4MakeE9SchemaPtrRK16ExpressionVectorN15SelectionVector4ModeENSt10shared_ptrI13ConfigurationEEPNSt10shared_ptrI9ProjectorEE"></span><span id="_CPPv2N7gandiva9Projector4MakeE9SchemaPtrRK16ExpressionVectorN15SelectionVector4ModeENSt10shared_ptrI13ConfigurationEEPNSt10shared_ptrI9ProjectorEE"></span><span id="gandiva::Projector::Make__SchemaPtr.ExpressionVectorCR.SelectionVector::Mode.std::shared_ptr:Configuration:.std::shared_ptr:Projector:P"></span><span class="target" id="classgandiva_1_1_projector_1adb9e3e5ba118bc886776a4063e81a552"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Make</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">SchemaPtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">schema</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">ExpressionVector</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">exprs</span></span>, <a class="reference internal" href="#_CPPv4N7gandiva15SelectionVectorE" title="gandiva::SelectionVector"><span class="n"><span class="pre">SelectionVector</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">Mode</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">selection_vector_mode</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva13ConfigurationE" title="gandiva::Configuration"><span class="n"><span class="pre">Configuration</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">configuration</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva9ProjectorE" title="gandiva::Projector"><span class="n"><span class="pre">Projector</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">projector</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva9Projector4MakeE9SchemaPtrRK16ExpressionVectorN15SelectionVector4ModeENSt10shared_ptrI13ConfigurationEEPNSt10shared_ptrI9ProjectorEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Build a projector for the given schema to evaluate the vector of expressions. </p>
<p>Customize the projector with runtime configuration.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>schema</strong><strong>[in]</strong> schema for the record batches, and the expressions. </p></li>
<li><p><strong>exprs</strong><strong>[in]</strong> vector of expressions. </p></li>
<li><p><strong>selection_vector_mode</strong><strong>[in]</strong> mode of selection vector </p></li>
<li><p><strong>configuration</strong><strong>[in]</strong> run time configuration. </p></li>
<li><p><strong>projector</strong><strong>[out]</strong> the returned projector object </p></li>
</ul>
</dd>
</dl>
</dd></dl>
</div>
</dd></dl>
</section>
<section id="filter">
<h2>Filter<a class="headerlink" href="#filter" title="Permalink to this heading">#</a></h2>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva6FilterE">
<span id="_CPPv3N7gandiva6FilterE"></span><span id="_CPPv2N7gandiva6FilterE"></span><span id="gandiva::Filter"></span><span class="target" id="classgandiva_1_1_filter"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Filter</span></span></span><a class="headerlink" href="#_CPPv4N7gandiva6FilterE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>filter records based on a condition. </p>
<p>A filter is built for a specific schema and condition. Once the filter is built, it can be used to evaluate many row batches. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva6Filter8EvaluateERKN5arrow11RecordBatchENSt10shared_ptrI15SelectionVectorEE">
<span id="_CPPv3N7gandiva6Filter8EvaluateERKN5arrow11RecordBatchENSt10shared_ptrI15SelectionVectorEE"></span><span id="_CPPv2N7gandiva6Filter8EvaluateERKN5arrow11RecordBatchENSt10shared_ptrI15SelectionVectorEE"></span><span id="gandiva::Filter::Evaluate__arrow::RecordBatchCR.std::shared_ptr:SelectionVector:"></span><span class="target" id="classgandiva_1_1_filter_1aacb615d7ba59f8871d17eb241e28b750"></span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Evaluate</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="table.html#_CPPv4N5arrow11RecordBatchE" title="arrow::RecordBatch"><span class="n"><span class="pre">RecordBatch</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">batch</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva15SelectionVectorE" title="gandiva::SelectionVector"><span class="n"><span class="pre">SelectionVector</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">out_selection</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva6Filter8EvaluateERKN5arrow11RecordBatchENSt10shared_ptrI15SelectionVectorEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Evaluate the specified record batch, and populate output selection vector. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>batch</strong><strong>[in]</strong> the record batch. schema should be the same as the one in ‘Make’ </p></li>
<li><p><strong>out_selection</strong><strong>[inout]</strong> the selection array with indices of rows that match the condition. </p></li>
</ul>
</dd>
</dl>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-functions">Public Static Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva6Filter4MakeE9SchemaPtr12ConditionPtrPNSt10shared_ptrI6FilterEE">
<span id="_CPPv3N7gandiva6Filter4MakeE9SchemaPtr12ConditionPtrPNSt10shared_ptrI6FilterEE"></span><span id="_CPPv2N7gandiva6Filter4MakeE9SchemaPtr12ConditionPtrPNSt10shared_ptrI6FilterEE"></span><span id="gandiva::Filter::Make__SchemaPtr.ConditionPtr.std::shared_ptr:Filter:P"></span><span class="target" id="classgandiva_1_1_filter_1ad4ace313a4b9e7ea22b908249e50fa8e"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Make</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">SchemaPtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">schema</span></span>, <span class="n"><span class="pre">ConditionPtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">condition</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva6FilterE" title="gandiva::Filter"><span class="n"><span class="pre">Filter</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">filter</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva6Filter4MakeE9SchemaPtr12ConditionPtrPNSt10shared_ptrI6FilterEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Build a filter for the given schema and condition, with the default configuration. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>schema</strong><strong>[in]</strong> schema for the record batches, and the condition. </p></li>
<li><p><strong>condition</strong><strong>[in]</strong> filter condition. </p></li>
<li><p><strong>filter</strong><strong>[out]</strong> the returned filter object </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva6Filter4MakeE9SchemaPtr12ConditionPtrNSt10shared_ptrI13ConfigurationEEPNSt10shared_ptrI6FilterEE">
<span id="_CPPv3N7gandiva6Filter4MakeE9SchemaPtr12ConditionPtrNSt10shared_ptrI13ConfigurationEEPNSt10shared_ptrI6FilterEE"></span><span id="_CPPv2N7gandiva6Filter4MakeE9SchemaPtr12ConditionPtrNSt10shared_ptrI13ConfigurationEEPNSt10shared_ptrI6FilterEE"></span><span id="gandiva::Filter::Make__SchemaPtr.ConditionPtr.std::shared_ptr:Configuration:.std::shared_ptr:Filter:P"></span><span class="target" id="classgandiva_1_1_filter_1a21fb6a4e01a7839d72fd333e1603cc1b"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Make</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">SchemaPtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">schema</span></span>, <span class="n"><span class="pre">ConditionPtr</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">condition</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva13ConfigurationE" title="gandiva::Configuration"><span class="n"><span class="pre">Configuration</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">config</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva6FilterE" title="gandiva::Filter"><span class="n"><span class="pre">Filter</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">filter</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva6Filter4MakeE9SchemaPtr12ConditionPtrNSt10shared_ptrI13ConfigurationEEPNSt10shared_ptrI6FilterEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Build a filter for the given schema and condition. </p>
<p>Customize the filter with runtime configuration.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>schema</strong><strong>[in]</strong> schema for the record batches, and the condition. </p></li>
<li><p><strong>condition</strong><strong>[in]</strong> filter conditions. </p></li>
<li><p><strong>config</strong><strong>[in]</strong> run time configuration. </p></li>
<li><p><strong>filter</strong><strong>[out]</strong> the returned filter object </p></li>
</ul>
</dd>
</dl>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15SelectionVectorE">
<span id="_CPPv3N7gandiva15SelectionVectorE"></span><span id="_CPPv2N7gandiva15SelectionVectorE"></span><span id="gandiva::SelectionVector"></span><span class="target" id="classgandiva_1_1_selection_vector"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SelectionVector</span></span></span><a class="headerlink" href="#_CPPv4N7gandiva15SelectionVectorE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Selection Vector : vector of indices in a row-batch for a selection, backed by an arrow-array. </p>
<p>Subclassed by gandiva::SelectionVectorImpl&lt; C_TYPE, A_TYPE, mode &gt;</p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK7gandiva15SelectionVector8GetIndexE7int64_t">
<span id="_CPPv3NK7gandiva15SelectionVector8GetIndexE7int64_t"></span><span id="_CPPv2NK7gandiva15SelectionVector8GetIndexE7int64_t"></span><span id="gandiva::SelectionVector::GetIndex__int64_tC"></span><span class="target" id="classgandiva_1_1_selection_vector_1a7b8497cd75aacc89c479f518d28e9cf9"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">uint64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetIndex</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">index</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4NK7gandiva15SelectionVector8GetIndexE7int64_t" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Get the value at a given index. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15SelectionVector8SetIndexE7int64_t8uint64_t">
<span id="_CPPv3N7gandiva15SelectionVector8SetIndexE7int64_t8uint64_t"></span><span id="_CPPv2N7gandiva15SelectionVector8SetIndexE7int64_t8uint64_t"></span><span id="gandiva::SelectionVector::SetIndex__int64_t.uint64_t"></span><span class="target" id="classgandiva_1_1_selection_vector_1ac5f3fa2962e8712dc7e5814917e9cded"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SetIndex</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">index</span></span>, <span class="n"><span class="pre">uint64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">value</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N7gandiva15SelectionVector8SetIndexE7int64_t8uint64_t" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Set the value at a given index. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK7gandiva15SelectionVector11GetMaxSlotsEv">
<span id="_CPPv3NK7gandiva15SelectionVector11GetMaxSlotsEv"></span><span id="_CPPv2NK7gandiva15SelectionVector11GetMaxSlotsEv"></span><span id="gandiva::SelectionVector::GetMaxSlotsC"></span><span class="target" id="classgandiva_1_1_selection_vector_1ab18dfa9a957ffadee1565d6971040137"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetMaxSlots</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4NK7gandiva15SelectionVector11GetMaxSlotsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The maximum slots (capacity) of the selection vector. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK7gandiva15SelectionVector11GetNumSlotsEv">
<span id="_CPPv3NK7gandiva15SelectionVector11GetNumSlotsEv"></span><span id="_CPPv2NK7gandiva15SelectionVector11GetNumSlotsEv"></span><span id="gandiva::SelectionVector::GetNumSlotsC"></span><span class="target" id="classgandiva_1_1_selection_vector_1a0ef1600a4e7738843e7cad8239c76fc3"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetNumSlots</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4NK7gandiva15SelectionVector11GetNumSlotsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The number of slots (size) of the selection vector. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15SelectionVector11SetNumSlotsE7int64_t">
<span id="_CPPv3N7gandiva15SelectionVector11SetNumSlotsE7int64_t"></span><span id="_CPPv2N7gandiva15SelectionVector11SetNumSlotsE7int64_t"></span><span id="gandiva::SelectionVector::SetNumSlots__int64_t"></span><span class="target" id="classgandiva_1_1_selection_vector_1a7957a1440dd78fb262cf5a1c3cefb57d"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SetNumSlots</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">num_slots</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N7gandiva15SelectionVector11SetNumSlotsE7int64_t" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Set the number of slots in the selection vector. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK7gandiva15SelectionVector7ToArrayEv">
<span id="_CPPv3NK7gandiva15SelectionVector7ToArrayEv"></span><span id="_CPPv2NK7gandiva15SelectionVector7ToArrayEv"></span><span id="gandiva::SelectionVector::ToArrayC"></span><span class="target" id="classgandiva_1_1_selection_vector_1a1c6a164f87bb3f45738b970c9f179c7b"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayPtr</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ToArray</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4NK7gandiva15SelectionVector7ToArrayEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Convert to arrow-array. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK7gandiva15SelectionVector9GetBufferEv">
<span id="_CPPv3NK7gandiva15SelectionVector9GetBufferEv"></span><span id="_CPPv2NK7gandiva15SelectionVector9GetBufferEv"></span><span id="gandiva::SelectionVector::GetBufferC"></span><span class="target" id="classgandiva_1_1_selection_vector_1a4311e225fc2867c61dc18b08205792da"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="memory.html#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="sig-name descname"><span class="n"><span class="pre">GetBuffer</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4NK7gandiva15SelectionVector9GetBufferEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Get the underlying arrow buffer. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK7gandiva15SelectionVector7GetModeEv">
<span id="_CPPv3NK7gandiva15SelectionVector7GetModeEv"></span><span id="_CPPv2NK7gandiva15SelectionVector7GetModeEv"></span><span id="gandiva::SelectionVector::GetModeC"></span><span class="target" id="classgandiva_1_1_selection_vector_1aaf228faff64d1eb136e887ddd41e72e8"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">Mode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetMode</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4NK7gandiva15SelectionVector7GetModeEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Mode of <a class="reference internal" href="#classgandiva_1_1_selection_vector"><span class="std std-ref">SelectionVector</span></a>. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15SelectionVector18PopulateFromBitMapEPK7uint8_t7int64_t7int64_t">
<span id="_CPPv3N7gandiva15SelectionVector18PopulateFromBitMapEPK7uint8_t7int64_t7int64_t"></span><span id="_CPPv2N7gandiva15SelectionVector18PopulateFromBitMapEPK7uint8_t7int64_t7int64_t"></span><span id="gandiva::SelectionVector::PopulateFromBitMap__uint8_tCP.int64_t.int64_t"></span><span class="target" id="classgandiva_1_1_selection_vector_1a71846adb492701c7fe9525c5524c2968"></span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PopulateFromBitMap</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">bitmap</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">bitmap_size</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">max_bitmap_index</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15SelectionVector18PopulateFromBitMapEPK7uint8_t7int64_t7int64_t" title="Permalink to this definition">#</a><br /></dt>
<dd><p>populate selection vector for all the set bits in the bitmap. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>bitmap</strong><strong>[in]</strong> the bitmap </p></li>
<li><p><strong>bitmap_size</strong><strong>[in]</strong> size of the bitmap in bytes </p></li>
<li><p><strong>max_bitmap_index</strong><strong>[in]</strong> max valid index in bitmap (can be lesser than capacity in the bitmap, due to alignment/padding). </p></li>
</ul>
</dd>
</dl>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-functions">Public Static Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15SelectionVector9MakeInt16E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE">
<span id="_CPPv3N7gandiva15SelectionVector9MakeInt16E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE"></span><span id="_CPPv2N7gandiva15SelectionVector9MakeInt16E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE"></span><span id="gandiva::SelectionVector::MakeInt16__int64_t.std::shared_ptr:arrow::Buffer:.std::shared_ptr:SelectionVector:P"></span><span class="target" id="classgandiva_1_1_selection_vector_1add1b9a060d02e27c2ba9afef59faaa61"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeInt16</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">max_slots</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="memory.html#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">buffer</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva15SelectionVectorE" title="gandiva::SelectionVector"><span class="n"><span class="pre">SelectionVector</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">selection_vector</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15SelectionVector9MakeInt16E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>make selection vector with int16 type records. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>max_slots</strong><strong>[in]</strong> max number of slots </p></li>
<li><p><strong>buffer</strong><strong>[in]</strong> buffer sized to accommodate max_slots </p></li>
<li><p><strong>selection_vector</strong><strong>[out]</strong> selection vector backed by ‘buffer’ </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15SelectionVector9MakeInt16E7int64_tPN5arrow10MemoryPoolEPNSt10shared_ptrI15SelectionVectorEE">
<span id="_CPPv3N7gandiva15SelectionVector9MakeInt16E7int64_tPN5arrow10MemoryPoolEPNSt10shared_ptrI15SelectionVectorEE"></span><span id="_CPPv2N7gandiva15SelectionVector9MakeInt16E7int64_tPN5arrow10MemoryPoolEPNSt10shared_ptrI15SelectionVectorEE"></span><span id="gandiva::SelectionVector::MakeInt16__int64_t.arrow::MemoryPoolP.std::shared_ptr:SelectionVector:P"></span><span class="target" id="classgandiva_1_1_selection_vector_1a32ac46a385ec93e8b20d9d4890b1b25c"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeInt16</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">max_slots</span></span>, <span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="memory.html#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">pool</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva15SelectionVectorE" title="gandiva::SelectionVector"><span class="n"><span class="pre">SelectionVector</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">selection_vector</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15SelectionVector9MakeInt16E7int64_tPN5arrow10MemoryPoolEPNSt10shared_ptrI15SelectionVectorEE" title="Permalink to this definition">#</a><br /></dt>
<dd><dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>max_slots</strong><strong>[in]</strong> max number of slots </p></li>
<li><p><strong>pool</strong><strong>[in]</strong> memory pool to allocate buffer </p></li>
<li><p><strong>selection_vector</strong><strong>[out]</strong> selection vector backed by a buffer allocated from the pool. </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15SelectionVector18MakeImmutableInt16E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE">
<span id="_CPPv3N7gandiva15SelectionVector18MakeImmutableInt16E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE"></span><span id="_CPPv2N7gandiva15SelectionVector18MakeImmutableInt16E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE"></span><span id="gandiva::SelectionVector::MakeImmutableInt16__int64_t.std::shared_ptr:arrow::Buffer:.std::shared_ptr:SelectionVector:P"></span><span class="target" id="classgandiva_1_1_selection_vector_1a8a0c2f951b442e3be2cb522bd78578f3"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeImmutableInt16</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">num_slots</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="memory.html#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">buffer</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva15SelectionVectorE" title="gandiva::SelectionVector"><span class="n"><span class="pre">SelectionVector</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">selection_vector</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15SelectionVector18MakeImmutableInt16E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>creates a selection vector with pre populated buffer. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>num_slots</strong><strong>[in]</strong> size of the selection vector </p></li>
<li><p><strong>buffer</strong><strong>[in]</strong> pre-populated buffer </p></li>
<li><p><strong>selection_vector</strong><strong>[out]</strong> selection vector backed by ‘buffer’ </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15SelectionVector9MakeInt32E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE">
<span id="_CPPv3N7gandiva15SelectionVector9MakeInt32E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE"></span><span id="_CPPv2N7gandiva15SelectionVector9MakeInt32E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE"></span><span id="gandiva::SelectionVector::MakeInt32__int64_t.std::shared_ptr:arrow::Buffer:.std::shared_ptr:SelectionVector:P"></span><span class="target" id="classgandiva_1_1_selection_vector_1a65b36370ae6b033985d6cc7d26d34f4c"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeInt32</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">max_slots</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="memory.html#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">buffer</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva15SelectionVectorE" title="gandiva::SelectionVector"><span class="n"><span class="pre">SelectionVector</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">selection_vector</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15SelectionVector9MakeInt32E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>make selection vector with int32 type records. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>max_slots</strong><strong>[in]</strong> max number of slots </p></li>
<li><p><strong>buffer</strong><strong>[in]</strong> buffer sized to accommodate max_slots </p></li>
<li><p><strong>selection_vector</strong><strong>[out]</strong> selection vector backed by ‘buffer’ </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15SelectionVector9MakeInt32E7int64_tPN5arrow10MemoryPoolEPNSt10shared_ptrI15SelectionVectorEE">
<span id="_CPPv3N7gandiva15SelectionVector9MakeInt32E7int64_tPN5arrow10MemoryPoolEPNSt10shared_ptrI15SelectionVectorEE"></span><span id="_CPPv2N7gandiva15SelectionVector9MakeInt32E7int64_tPN5arrow10MemoryPoolEPNSt10shared_ptrI15SelectionVectorEE"></span><span id="gandiva::SelectionVector::MakeInt32__int64_t.arrow::MemoryPoolP.std::shared_ptr:SelectionVector:P"></span><span class="target" id="classgandiva_1_1_selection_vector_1a36b86acc4bf05b854e8f85a6eafe4e4f"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeInt32</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">max_slots</span></span>, <span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="memory.html#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">pool</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva15SelectionVectorE" title="gandiva::SelectionVector"><span class="n"><span class="pre">SelectionVector</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">selection_vector</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15SelectionVector9MakeInt32E7int64_tPN5arrow10MemoryPoolEPNSt10shared_ptrI15SelectionVectorEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>make selection vector with int32 type records. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>max_slots</strong><strong>[in]</strong> max number of slots </p></li>
<li><p><strong>pool</strong><strong>[in]</strong> memory pool to allocate buffer </p></li>
<li><p><strong>selection_vector</strong><strong>[out]</strong> selection vector backed by a buffer allocated from the pool. </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15SelectionVector18MakeImmutableInt32E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE">
<span id="_CPPv3N7gandiva15SelectionVector18MakeImmutableInt32E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE"></span><span id="_CPPv2N7gandiva15SelectionVector18MakeImmutableInt32E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE"></span><span id="gandiva::SelectionVector::MakeImmutableInt32__int64_t.std::shared_ptr:arrow::Buffer:.std::shared_ptr:SelectionVector:P"></span><span class="target" id="classgandiva_1_1_selection_vector_1a35c01e27b6c7b3518896d8166f454393"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeImmutableInt32</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">num_slots</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="memory.html#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">buffer</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva15SelectionVectorE" title="gandiva::SelectionVector"><span class="n"><span class="pre">SelectionVector</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">selection_vector</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15SelectionVector18MakeImmutableInt32E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>creates a selection vector with pre populated buffer. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>num_slots</strong><strong>[in]</strong> size of the selection vector </p></li>
<li><p><strong>buffer</strong><strong>[in]</strong> pre-populated buffer </p></li>
<li><p><strong>selection_vector</strong><strong>[out]</strong> selection vector backed by ‘buffer’ </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15SelectionVector9MakeInt64E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE">
<span id="_CPPv3N7gandiva15SelectionVector9MakeInt64E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE"></span><span id="_CPPv2N7gandiva15SelectionVector9MakeInt64E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE"></span><span id="gandiva::SelectionVector::MakeInt64__int64_t.std::shared_ptr:arrow::Buffer:.std::shared_ptr:SelectionVector:P"></span><span class="target" id="classgandiva_1_1_selection_vector_1af32f8d25016469a1eab587654a9c119b"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeInt64</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">max_slots</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="memory.html#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">buffer</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva15SelectionVectorE" title="gandiva::SelectionVector"><span class="n"><span class="pre">SelectionVector</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">selection_vector</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15SelectionVector9MakeInt64E7int64_tNSt10shared_ptrIN5arrow6BufferEEEPNSt10shared_ptrI15SelectionVectorEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>make selection vector with int64 type records. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>max_slots</strong><strong>[in]</strong> max number of slots </p></li>
<li><p><strong>buffer</strong><strong>[in]</strong> buffer sized to accommodate max_slots </p></li>
<li><p><strong>selection_vector</strong><strong>[out]</strong> selection vector backed by ‘buffer’ </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N7gandiva15SelectionVector9MakeInt64E7int64_tPN5arrow10MemoryPoolEPNSt10shared_ptrI15SelectionVectorEE">
<span id="_CPPv3N7gandiva15SelectionVector9MakeInt64E7int64_tPN5arrow10MemoryPoolEPNSt10shared_ptrI15SelectionVectorEE"></span><span id="_CPPv2N7gandiva15SelectionVector9MakeInt64E7int64_tPN5arrow10MemoryPoolEPNSt10shared_ptrI15SelectionVectorEE"></span><span id="gandiva::SelectionVector::MakeInt64__int64_t.arrow::MemoryPoolP.std::shared_ptr:SelectionVector:P"></span><span class="target" id="classgandiva_1_1_selection_vector_1a307350968cdcdbd868b22eec140249dc"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeInt64</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">max_slots</span></span>, <span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="memory.html#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">pool</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N7gandiva15SelectionVectorE" title="gandiva::SelectionVector"><span class="n"><span class="pre">SelectionVector</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">selection_vector</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N7gandiva15SelectionVector9MakeInt64E7int64_tPN5arrow10MemoryPoolEPNSt10shared_ptrI15SelectionVectorEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>make selection vector with int64 type records. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>max_slots</strong><strong>[in]</strong> max number of slots </p></li>
<li><p><strong>pool</strong><strong>[in]</strong> memory pool to allocate buffer </p></li>
<li><p><strong>selection_vector</strong><strong>[out]</strong> selection vector backed by a buffer allocated from the pool. </p></li>
</ul>
</dd>
</dl>
</dd></dl>
</div>
</dd></dl>
</section>
</section>
</article>
<footer class="prev-next-footer">
<div class="prev-next-area">
<a class="left-prev"
href="acero.html"
title="previous page">
<i class="fa-solid fa-angle-left"></i>
<div class="prev-next-info">
<p class="prev-next-subtitle">previous</p>
<p class="prev-next-title">Streaming Execution (Acero)</p>
</div>
</a>
<a class="right-next"
href="tensor.html"
title="next page">
<div class="prev-next-info">
<p class="prev-next-subtitle">next</p>
<p class="prev-next-title">Tensors</p>
</div>
<i class="fa-solid fa-angle-right"></i>
</a>
</div>
</footer>
</div>
<div class="bd-sidebar-secondary bd-toc"><div class="sidebar-secondary-items sidebar-secondary__inner">
<div class="sidebar-secondary-item">
<div
id="pst-page-navigation-heading-2"
class="page-toc tocsection onthispage">
<i class="fa-solid fa-list"></i> On this page
</div>
<nav class="bd-toc-nav page-toc" aria-labelledby="pst-page-navigation-heading-2">
<ul class="visible nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#treeexprbuilder-class">TreeExprBuilder Class</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#function-registry">Function registry</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#configuration">Configuration</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#projector">Projector</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#filter">Filter</a></li>
</ul>
</nav></div>
<div class="sidebar-secondary-item">
<div class="tocsection editthispage">
<a href="https://github.com/apache/arrow/edit/main/docs/source/cpp/api/gandiva.rst">
<i class="fa-solid fa-pencil"></i>
Edit on GitHub
</a>
</div>
</div>
</div></div>
</div>
<footer class="bd-footer-content">
</footer>
</main>
</div>
</div>
<!-- Scripts loaded after <body> so the DOM is not blocked -->
<script src="../../_static/scripts/bootstrap.js?digest=8d27b9dea8ad943066ae"></script>
<script src="../../_static/scripts/pydata-sphinx-theme.js?digest=8d27b9dea8ad943066ae"></script>
<footer class="bd-footer">
<div class="bd-footer__inner bd-page-width">
<div class="footer-items__start">
<div class="footer-item">
<p class="copyright">
© Copyright 2016-2024 Apache Software Foundation.
Apache Arrow, Arrow, Apache, the Apache feather logo, and the Apache Arrow project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.
<br/>
</p>
</div>
<div class="footer-item">
<p class="sphinx-version">
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 6.2.0.
<br/>
</p>
</div>
</div>
<div class="footer-items__end">
<div class="footer-item">
<p class="theme-version">
Built with the <a href="https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html">PyData Sphinx Theme</a> 0.15.2.
</p></div>
</div>
</div>
</footer>
</body>
</html>