blob: 3e287151ed6f098a8c99c84e3d9eeefdbc7d0049 [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>Streaming Execution (Acero) &#8212; Apache Arrow v17.0.0.dev59</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/acero';</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/acero.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="Gandiva Expression Compiler" href="gandiva.html" />
<link rel="prev" title="Compute Functions" href="compute.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.dev59 - Home"/>
<script>document.write(`<img src="../../_static/arrow-dark.png" class="logo__image only-dark" alt="Apache Arrow v17.0.0.dev59 - 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 current active"><a class="current reference internal" href="#">Streaming Execution (Acero)</a></li>
<li class="toctree-l2"><a class="reference internal" href="gandiva.html">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">Streaming...</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
<div id="searchbox"></div>
<article class="bd-article">
<section id="streaming-execution-acero">
<h1>Streaming Execution (Acero)<a class="headerlink" href="#streaming-execution-acero" title="Permalink to this heading">#</a></h1>
<section id="creating-and-running-execution-plans">
<h2>Creating and running execution plans<a class="headerlink" href="#creating-and-running-execution-plans" title="Permalink to this heading">#</a></h2>
<dl class="cpp enum-class">
<dt class="sig sig-object cpp" id="_CPPv423UnalignedBufferHandling">
<span id="_CPPv323UnalignedBufferHandling"></span><span id="_CPPv223UnalignedBufferHandling"></span><span class="target" id="group__acero-api_1ga844ed0db6d4b57254df3e7f764fcff23"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </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">UnalignedBufferHandling</span></span></span><a class="headerlink" href="#_CPPv423UnalignedBufferHandling" title="Permalink to this definition">#</a><br /></dt>
<dd><p>How to handle unaligned buffers. </p>
<p><em>Values:</em></p>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N23UnalignedBufferHandling5kWarnE">
<span id="_CPPv3N23UnalignedBufferHandling5kWarnE"></span><span id="_CPPv2N23UnalignedBufferHandling5kWarnE"></span><span class="target" id="group__acero-api_1gga844ed0db6d4b57254df3e7f764fcff23a61a920eb4a24199ec6a36dd90f2a30b7"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">kWarn</span></span></span><a class="headerlink" href="#_CPPv4N23UnalignedBufferHandling5kWarnE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N23UnalignedBufferHandling7kIgnoreE">
<span id="_CPPv3N23UnalignedBufferHandling7kIgnoreE"></span><span id="_CPPv2N23UnalignedBufferHandling7kIgnoreE"></span><span class="target" id="group__acero-api_1gga844ed0db6d4b57254df3e7f764fcff23aa7c4e68b845afc4ee4dcaf41b0b503e4"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">kIgnore</span></span></span><a class="headerlink" href="#_CPPv4N23UnalignedBufferHandling7kIgnoreE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N23UnalignedBufferHandling11kReallocateE">
<span id="_CPPv3N23UnalignedBufferHandling11kReallocateE"></span><span id="_CPPv2N23UnalignedBufferHandling11kReallocateE"></span><span class="target" id="group__acero-api_1gga844ed0db6d4b57254df3e7f764fcff23aa4211466f783040506780f8c834d57e8"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">kReallocate</span></span></span><a class="headerlink" href="#_CPPv4N23UnalignedBufferHandling11kReallocateE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N23UnalignedBufferHandling6kErrorE">
<span id="_CPPv3N23UnalignedBufferHandling6kErrorE"></span><span id="_CPPv2N23UnalignedBufferHandling6kErrorE"></span><span class="target" id="group__acero-api_1gga844ed0db6d4b57254df3e7f764fcff23ae3587c730cc1aa530fa4ddc9c4204e97"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">kError</span></span></span><a class="headerlink" href="#_CPPv4N23UnalignedBufferHandling6kErrorE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv433GetDefaultUnalignedBufferHandlingv">
<span id="_CPPv333GetDefaultUnalignedBufferHandlingv"></span><span id="_CPPv233GetDefaultUnalignedBufferHandlingv"></span><span id="GetDefaultUnalignedBufferHandling"></span><span class="target" id="group__acero-api_1gadbd806f901bb0a35054046cdc1d37b5d"></span><a class="reference internal" href="#_CPPv423UnalignedBufferHandling" title="UnalignedBufferHandling"><span class="n"><span class="pre">UnalignedBufferHandling</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetDefaultUnalignedBufferHandling</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv433GetDefaultUnalignedBufferHandlingv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>get the default behavior of unaligned buffer handling </p>
<p>This is configurable via the ACERO_ALIGNMENT_HANDLING environment variable which can be set to “warn”, “ignore”, “reallocate”, or “error”. If the environment variable is not set, or is set to an invalid value, this will return kWarn </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv419DeclarationToSchemaRK11DeclarationP16FunctionRegistry">
<span id="_CPPv319DeclarationToSchemaRK11DeclarationP16FunctionRegistry"></span><span id="_CPPv219DeclarationToSchemaRK11DeclarationP16FunctionRegistry"></span><span id="DeclarationToSchema__DeclarationCR.FunctionRegistryP"></span><span class="target" id="group__acero-api_1ga9a132571c0ac5ecf064284d04be03b05"></span><span class="n"><span class="pre">Result</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><span class="n"><span class="pre">Schema</span></span><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-name descname"><span class="n"><span class="pre">DeclarationToSchema</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">Declaration</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="n"><span class="pre">FunctionRegistry</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">function_registry</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419DeclarationToSchemaRK11DeclarationP16FunctionRegistry" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Calculate the output schema of a declaration. </p>
<p>This does not actually execute the plan. This operation may fail if the declaration represents an invalid plan (e.g. a project node with multiple inputs)</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>declaration</strong> – A declaration describing an execution plan </p></li>
<li><p><strong>function_registry</strong> – The function registry to use for function execution. If null then the default function registry will be used.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>the schema that batches would have after going through the execution plan </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv419DeclarationToStringRK11DeclarationP16FunctionRegistry">
<span id="_CPPv319DeclarationToStringRK11DeclarationP16FunctionRegistry"></span><span id="_CPPv219DeclarationToStringRK11DeclarationP16FunctionRegistry"></span><span id="DeclarationToString__DeclarationCR.FunctionRegistryP"></span><span class="target" id="group__acero-api_1ga102a85a9394174c38eb3692e16eb9dcd"></span><span class="n"><span class="pre">Result</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">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeclarationToString</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">Declaration</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="n"><span class="pre">FunctionRegistry</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">function_registry</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419DeclarationToStringRK11DeclarationP16FunctionRegistry" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a string representation of a plan. </p>
<p>This representation is for debug purposes only.</p>
<p>Conversion to a string may fail if the declaration represents an invalid plan.</p>
<p>Use Substrait for complete serialization of plans</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>declaration</strong> – A declaration describing an execution plan </p></li>
<li><p><strong>function_registry</strong> – The function registry to use for function execution. If null then the default function registry will be used.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>a string representation of the plan suitable for debugging output </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv418DeclarationToTable11DeclarationbP10MemoryPoolP16FunctionRegistry">
<span id="_CPPv318DeclarationToTable11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="_CPPv218DeclarationToTable11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="DeclarationToTable__Declaration.b.MemoryPoolP.FunctionRegistryP"></span><span class="target" id="group__acero-api_1ga0889d963ef1a8d99967a7cd842846a12"></span><span class="n"><span class="pre">Result</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><span class="n"><span class="pre">Table</span></span><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-name descname"><span class="n"><span class="pre">DeclarationToTable</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">use_threads</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">true</span></span>, <span class="n"><span class="pre">MemoryPool</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">memory_pool</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">default_memory_pool</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">FunctionRegistry</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">function_registry</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418DeclarationToTable11DeclarationbP10MemoryPoolP16FunctionRegistry" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Utility method to run a declaration and collect the results into a table. </p>
<p>
This method will add a sink node to the declaration to collect results into a table. It will then create an <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_plan"><span class="std std-ref">ExecPlan</span></a> from the declaration, start the exec plan, block until the plan has finished, and return the created table. </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>declaration</strong> – A declaration describing the plan to run </p></li>
<li><p><strong>use_threads</strong> – If <code class="docutils literal notranslate"><span class="pre">use_threads</span></code> is false then all CPU work will be done on the calling thread. I/O tasks will still happen on the I/O executor and may be multi-threaded (but should not use significant CPU resources). </p></li>
<li><p><strong>memory_pool</strong> – The memory pool to use for allocations made while running the plan. </p></li>
<li><p><strong>function_registry</strong> – The function registry to use for function execution. If null then the default function registry will be used.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv418DeclarationToTable11Declaration12QueryOptions">
<span id="_CPPv318DeclarationToTable11Declaration12QueryOptions"></span><span id="_CPPv218DeclarationToTable11Declaration12QueryOptions"></span><span id="DeclarationToTable__Declaration.QueryOptions"></span><span class="target" id="group__acero-api_1ga9254477a91c17b42eda91b81bff8738c"></span><span class="n"><span class="pre">Result</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><span class="n"><span class="pre">Table</span></span><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-name descname"><span class="n"><span class="pre">DeclarationToTable</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="n"><span class="pre">QueryOptions</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">query_options</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418DeclarationToTable11Declaration12QueryOptions" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv423DeclarationToTableAsync11DeclarationbP10MemoryPoolP16FunctionRegistry">
<span id="_CPPv323DeclarationToTableAsync11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="_CPPv223DeclarationToTableAsync11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="DeclarationToTableAsync__Declaration.b.MemoryPoolP.FunctionRegistryP"></span><span class="target" id="group__acero-api_1gac1ec742a9f47fae084bd73e872f9b793"></span><span class="n"><span class="pre">Future</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><span class="n"><span class="pre">Table</span></span><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-name descname"><span class="n"><span class="pre">DeclarationToTableAsync</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">use_threads</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">true</span></span>, <span class="n"><span class="pre">MemoryPool</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">memory_pool</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">default_memory_pool</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">FunctionRegistry</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">function_registry</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423DeclarationToTableAsync11DeclarationbP10MemoryPoolP16FunctionRegistry" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Asynchronous version of. </p>
<p><div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#group__acero-api_1ga0889d963ef1a8d99967a7cd842846a12"><span class="std std-ref">DeclarationToTable</span></a></p>
</div>
</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>declaration</strong> – A declaration describing the plan to run </p></li>
<li><p><strong>use_threads</strong> – The behavior of use_threads is slightly different than the synchronous version since we cannot run synchronously on the calling thread. Instead, if use_threads=false then a new thread pool will be created with a single thread and this will be used for all compute work. </p></li>
<li><p><strong>memory_pool</strong> – The memory pool to use for allocations made while running the plan. </p></li>
<li><p><strong>function_registry</strong> – The function registry to use for function execution. If null then the default function registry will be used. </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv423DeclarationToTableAsync11Declaration11ExecContext">
<span id="_CPPv323DeclarationToTableAsync11Declaration11ExecContext"></span><span id="_CPPv223DeclarationToTableAsync11Declaration11ExecContext"></span><span id="DeclarationToTableAsync__Declaration.ExecContext"></span><span class="target" id="group__acero-api_1gac8d55b4ef2b9d7fc1abccb968dd624d0"></span><span class="n"><span class="pre">Future</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><span class="n"><span class="pre">Table</span></span><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-name descname"><span class="n"><span class="pre">DeclarationToTableAsync</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="n"><span class="pre">ExecContext</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">custom_exec_context</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423DeclarationToTableAsync11Declaration11ExecContext" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Overload of. </p>
<p>
The executor must be specified (cannot be null) and must be kept alive until the returned future finishes. <div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#group__acero-api_1gac1ec742a9f47fae084bd73e872f9b793"><span class="std std-ref">DeclarationToTableAsync</span></a> accepting a custom exec context</p>
</div>
</p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv424DeclarationToExecBatches11DeclarationbP10MemoryPoolP16FunctionRegistry">
<span id="_CPPv324DeclarationToExecBatches11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="_CPPv224DeclarationToExecBatches11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="DeclarationToExecBatches__Declaration.b.MemoryPoolP.FunctionRegistryP"></span><span class="target" id="group__acero-api_1ga4971eb5f4c239ee3b0213cda5b5d1aae"></span><span class="n"><span class="pre">Result</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">BatchesWithCommonSchema</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeclarationToExecBatches</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">use_threads</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">true</span></span>, <span class="n"><span class="pre">MemoryPool</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">memory_pool</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">default_memory_pool</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">FunctionRegistry</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">function_registry</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424DeclarationToExecBatches11DeclarationbP10MemoryPoolP16FunctionRegistry" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Utility method to run a declaration and collect the results into ExecBatch vector. </p>
<p><div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#group__acero-api_1ga0889d963ef1a8d99967a7cd842846a12"><span class="std std-ref">DeclarationToTable</span></a> for details on threading &amp; execution </p>
</div>
</p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv424DeclarationToExecBatches11Declaration12QueryOptions">
<span id="_CPPv324DeclarationToExecBatches11Declaration12QueryOptions"></span><span id="_CPPv224DeclarationToExecBatches11Declaration12QueryOptions"></span><span id="DeclarationToExecBatches__Declaration.QueryOptions"></span><span class="target" id="group__acero-api_1ga18c0ff86a349ee904b2994b1768f3f81"></span><span class="n"><span class="pre">Result</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">BatchesWithCommonSchema</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeclarationToExecBatches</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="n"><span class="pre">QueryOptions</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">query_options</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424DeclarationToExecBatches11Declaration12QueryOptions" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv429DeclarationToExecBatchesAsync11DeclarationbP10MemoryPoolP16FunctionRegistry">
<span id="_CPPv329DeclarationToExecBatchesAsync11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="_CPPv229DeclarationToExecBatchesAsync11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="DeclarationToExecBatchesAsync__Declaration.b.MemoryPoolP.FunctionRegistryP"></span><span class="target" id="group__acero-api_1gaccb8383d867be6995578ca9a2e25f574"></span><span class="n"><span class="pre">Future</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">BatchesWithCommonSchema</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeclarationToExecBatchesAsync</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">use_threads</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">true</span></span>, <span class="n"><span class="pre">MemoryPool</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">memory_pool</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">default_memory_pool</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">FunctionRegistry</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">function_registry</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv429DeclarationToExecBatchesAsync11DeclarationbP10MemoryPoolP16FunctionRegistry" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Asynchronous version of. </p>
<p><div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#group__acero-api_1ga4971eb5f4c239ee3b0213cda5b5d1aae"><span class="std std-ref">DeclarationToExecBatches</span></a></p>
</div>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#group__acero-api_1gac1ec742a9f47fae084bd73e872f9b793"><span class="std std-ref">DeclarationToTableAsync</span></a> for details on threading &amp; execution </p>
</div>
</p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv429DeclarationToExecBatchesAsync11Declaration11ExecContext">
<span id="_CPPv329DeclarationToExecBatchesAsync11Declaration11ExecContext"></span><span id="_CPPv229DeclarationToExecBatchesAsync11Declaration11ExecContext"></span><span id="DeclarationToExecBatchesAsync__Declaration.ExecContext"></span><span class="target" id="group__acero-api_1ga537a47cd55cd47ce68e3dc36f36408a6"></span><span class="n"><span class="pre">Future</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">BatchesWithCommonSchema</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeclarationToExecBatchesAsync</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="n"><span class="pre">ExecContext</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">custom_exec_context</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv429DeclarationToExecBatchesAsync11Declaration11ExecContext" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Overload of. </p>
<p><div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#group__acero-api_1gaccb8383d867be6995578ca9a2e25f574"><span class="std std-ref">DeclarationToExecBatchesAsync</span></a> accepting a custom exec context</p>
</div>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#group__acero-api_1gac1ec742a9f47fae084bd73e872f9b793"><span class="std std-ref">DeclarationToTableAsync</span></a> for details on threading &amp; execution </p>
</div>
</p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv420DeclarationToBatches11DeclarationbP10MemoryPoolP16FunctionRegistry">
<span id="_CPPv320DeclarationToBatches11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="_CPPv220DeclarationToBatches11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="DeclarationToBatches__Declaration.b.MemoryPoolP.FunctionRegistryP"></span><span class="target" id="group__acero-api_1gaacccb066ecb498a34f83ea48a940f26f"></span><span class="n"><span class="pre">Result</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">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><span class="n"><span class="pre">RecordBatch</span></span><span class="p"><span class="pre">&gt;</span></span><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-name descname"><span class="n"><span class="pre">DeclarationToBatches</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">use_threads</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">true</span></span>, <span class="n"><span class="pre">MemoryPool</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">memory_pool</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">default_memory_pool</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">FunctionRegistry</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">function_registry</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420DeclarationToBatches11DeclarationbP10MemoryPoolP16FunctionRegistry" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Utility method to run a declaration and collect the results into a vector. </p>
<p><div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#group__acero-api_1ga0889d963ef1a8d99967a7cd842846a12"><span class="std std-ref">DeclarationToTable</span></a> for details on threading &amp; execution </p>
</div>
</p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv420DeclarationToBatches11Declaration12QueryOptions">
<span id="_CPPv320DeclarationToBatches11Declaration12QueryOptions"></span><span id="_CPPv220DeclarationToBatches11Declaration12QueryOptions"></span><span id="DeclarationToBatches__Declaration.QueryOptions"></span><span class="target" id="group__acero-api_1ga2a39a1cdff369cf6f0f93b2808a726e7"></span><span class="n"><span class="pre">Result</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">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><span class="n"><span class="pre">RecordBatch</span></span><span class="p"><span class="pre">&gt;</span></span><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-name descname"><span class="n"><span class="pre">DeclarationToBatches</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="n"><span class="pre">QueryOptions</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">query_options</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420DeclarationToBatches11Declaration12QueryOptions" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv425DeclarationToBatchesAsync11DeclarationbP10MemoryPoolP16FunctionRegistry">
<span id="_CPPv325DeclarationToBatchesAsync11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="_CPPv225DeclarationToBatchesAsync11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="DeclarationToBatchesAsync__Declaration.b.MemoryPoolP.FunctionRegistryP"></span><span class="target" id="group__acero-api_1gab6b10eefb8e79a88df4d89d79d97289a"></span><span class="n"><span class="pre">Future</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">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><span class="n"><span class="pre">RecordBatch</span></span><span class="p"><span class="pre">&gt;</span></span><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-name descname"><span class="n"><span class="pre">DeclarationToBatchesAsync</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">use_threads</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">true</span></span>, <span class="n"><span class="pre">MemoryPool</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">memory_pool</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">default_memory_pool</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">FunctionRegistry</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">function_registry</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425DeclarationToBatchesAsync11DeclarationbP10MemoryPoolP16FunctionRegistry" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Asynchronous version of. </p>
<p><div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#group__acero-api_1gaacccb066ecb498a34f83ea48a940f26f"><span class="std std-ref">DeclarationToBatches</span></a></p>
</div>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#group__acero-api_1gac1ec742a9f47fae084bd73e872f9b793"><span class="std std-ref">DeclarationToTableAsync</span></a> for details on threading &amp; execution </p>
</div>
</p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv425DeclarationToBatchesAsync11Declaration11ExecContext">
<span id="_CPPv325DeclarationToBatchesAsync11Declaration11ExecContext"></span><span id="_CPPv225DeclarationToBatchesAsync11Declaration11ExecContext"></span><span id="DeclarationToBatchesAsync__Declaration.ExecContext"></span><span class="target" id="group__acero-api_1ga0a658a6b54e26c20e8d5a70dd2822b47"></span><span class="n"><span class="pre">Future</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">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><span class="n"><span class="pre">RecordBatch</span></span><span class="p"><span class="pre">&gt;</span></span><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-name descname"><span class="n"><span class="pre">DeclarationToBatchesAsync</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="n"><span class="pre">ExecContext</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">exec_context</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425DeclarationToBatchesAsync11Declaration11ExecContext" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Overload of. </p>
<p><div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#group__acero-api_1gab6b10eefb8e79a88df4d89d79d97289a"><span class="std std-ref">DeclarationToBatchesAsync</span></a> accepting a custom exec context</p>
</div>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#group__acero-api_1gac1ec742a9f47fae084bd73e872f9b793"><span class="std std-ref">DeclarationToTableAsync</span></a> for details on threading &amp; execution </p>
</div>
</p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv419DeclarationToReader11DeclarationbP10MemoryPoolP16FunctionRegistry">
<span id="_CPPv319DeclarationToReader11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="_CPPv219DeclarationToReader11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="DeclarationToReader__Declaration.b.MemoryPoolP.FunctionRegistryP"></span><span class="target" id="group__acero-api_1ga5c964c64820ad1862f8f3cfbb9e0c8fb"></span><span class="n"><span class="pre">Result</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">unique_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">RecordBatchReader</span></span><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-name descname"><span class="n"><span class="pre">DeclarationToReader</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">use_threads</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">true</span></span>, <span class="n"><span class="pre">MemoryPool</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">memory_pool</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">default_memory_pool</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">FunctionRegistry</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">function_registry</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419DeclarationToReader11DeclarationbP10MemoryPoolP16FunctionRegistry" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Utility method to run a declaration and return results as a <a class="reference internal" href="table.html#classarrow_1_1_record_batch_reader"><span class="std std-ref">RecordBatchReader</span></a>. </p>
<p>If an exec context is not provided then a default exec context will be used based on the value of <code class="docutils literal notranslate"><span class="pre">use_threads</span></code>. If <code class="docutils literal notranslate"><span class="pre">use_threads</span></code> is false then the CPU executor will be a serial executor and all CPU work will be done on the calling thread. I/O tasks will still happen on the I/O executor and may be multi-threaded.</p>
<p>If <code class="docutils literal notranslate"><span class="pre">use_threads</span></code> is false then all CPU work will happen during the calls to <a class="reference internal" href="table.html#classarrow_1_1_record_batch_reader_1a81d4b09c025e8ca6576c339fe91f22b3"><span class="std std-ref">RecordBatchReader::Next</span></a> and no CPU work will happen in the background. If <code class="docutils literal notranslate"><span class="pre">use_threads</span></code> is true then CPU work will happen on the CPU thread pool and tasks may run in between calls to <a class="reference internal" href="table.html#classarrow_1_1_record_batch_reader_1a81d4b09c025e8ca6576c339fe91f22b3"><span class="std std-ref">RecordBatchReader::Next</span></a>. If the returned reader is not consumed quickly enough then the plan will eventually pause as the backpressure queue fills up.</p>
<p>If a custom exec context is provided then the value of <code class="docutils literal notranslate"><span class="pre">use_threads</span></code> will be ignored.</p>
<p>The returned <a class="reference internal" href="table.html#classarrow_1_1_record_batch_reader"><span class="std std-ref">RecordBatchReader</span></a> can be closed early to cancel the computation of record batches. In this case, only errors encountered by the computation may be reported. In particular, no cancellation error may be reported. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv419DeclarationToReader11Declaration12QueryOptions">
<span id="_CPPv319DeclarationToReader11Declaration12QueryOptions"></span><span id="_CPPv219DeclarationToReader11Declaration12QueryOptions"></span><span id="DeclarationToReader__Declaration.QueryOptions"></span><span class="target" id="group__acero-api_1gaecb145add19af3e780bea8dcfe4ddac5"></span><span class="n"><span class="pre">Result</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">unique_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">RecordBatchReader</span></span><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-name descname"><span class="n"><span class="pre">DeclarationToReader</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="n"><span class="pre">QueryOptions</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">query_options</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419DeclarationToReader11Declaration12QueryOptions" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv419DeclarationToStatus11DeclarationbP10MemoryPoolP16FunctionRegistry">
<span id="_CPPv319DeclarationToStatus11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="_CPPv219DeclarationToStatus11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="DeclarationToStatus__Declaration.b.MemoryPoolP.FunctionRegistryP"></span><span class="target" id="group__acero-api_1ga3b73160b142ba917130ef6ecb0c5c78e"></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">DeclarationToStatus</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">use_threads</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">true</span></span>, <span class="n"><span class="pre">MemoryPool</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">memory_pool</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">default_memory_pool</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">FunctionRegistry</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">function_registry</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419DeclarationToStatus11DeclarationbP10MemoryPoolP16FunctionRegistry" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Utility method to run a declaration and ignore results. </p>
<p>This can be useful when the data are consumed as part of the plan itself, for example, when the plan ends with a write node.</p>
<p><div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#group__acero-api_1ga0889d963ef1a8d99967a7cd842846a12"><span class="std std-ref">DeclarationToTable</span></a> for details on threading &amp; execution </p>
</div>
</p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv419DeclarationToStatus11Declaration12QueryOptions">
<span id="_CPPv319DeclarationToStatus11Declaration12QueryOptions"></span><span id="_CPPv219DeclarationToStatus11Declaration12QueryOptions"></span><span id="DeclarationToStatus__Declaration.QueryOptions"></span><span class="target" id="group__acero-api_1ga5d1bf6ea26818b22c2f664acd65ab532"></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">DeclarationToStatus</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="n"><span class="pre">QueryOptions</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">query_options</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419DeclarationToStatus11Declaration12QueryOptions" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv424DeclarationToStatusAsync11DeclarationbP10MemoryPoolP16FunctionRegistry">
<span id="_CPPv324DeclarationToStatusAsync11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="_CPPv224DeclarationToStatusAsync11DeclarationbP10MemoryPoolP16FunctionRegistry"></span><span id="DeclarationToStatusAsync__Declaration.b.MemoryPoolP.FunctionRegistryP"></span><span class="target" id="group__acero-api_1gaaf00f8fd456ee81dd8b4c25f47b46f88"></span><span class="n"><span class="pre">Future</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeclarationToStatusAsync</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">use_threads</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">true</span></span>, <span class="n"><span class="pre">MemoryPool</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">memory_pool</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">default_memory_pool</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">FunctionRegistry</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">function_registry</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424DeclarationToStatusAsync11DeclarationbP10MemoryPoolP16FunctionRegistry" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Asynchronous version of. </p>
<p>
This can be useful when the data are consumed as part of the plan itself, for example, when the plan ends with a write node.<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#group__acero-api_1ga3b73160b142ba917130ef6ecb0c5c78e"><span class="std std-ref">DeclarationToStatus</span></a></p>
</div>
</p>
<p><div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#group__acero-api_1gac1ec742a9f47fae084bd73e872f9b793"><span class="std std-ref">DeclarationToTableAsync</span></a> for details on threading &amp; execution </p>
</div>
</p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv424DeclarationToStatusAsync11Declaration11ExecContext">
<span id="_CPPv324DeclarationToStatusAsync11Declaration11ExecContext"></span><span id="_CPPv224DeclarationToStatusAsync11Declaration11ExecContext"></span><span id="DeclarationToStatusAsync__Declaration.ExecContext"></span><span class="target" id="group__acero-api_1ga1dd1e6fc3cbcbe319a1133f9ed6dd199"></span><span class="n"><span class="pre">Future</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeclarationToStatusAsync</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Declaration</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">declaration</span></span>, <span class="n"><span class="pre">ExecContext</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">exec_context</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424DeclarationToStatusAsync11Declaration11ExecContext" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Overload of. </p>
<p><div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#group__acero-api_1gaaf00f8fd456ee81dd8b4c25f47b46f88"><span class="std std-ref">DeclarationToStatusAsync</span></a> accepting a custom exec context</p>
</div>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#group__acero-api_1gac1ec742a9f47fae084bd73e872f9b793"><span class="std std-ref">DeclarationToTableAsync</span></a> for details on threading &amp; execution </p>
</div>
</p>
</dd></dl>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero11DeclarationE">
<span id="_CPPv3N5arrow5acero11DeclarationE"></span><span id="_CPPv2N5arrow5acero11DeclarationE"></span><span id="arrow::acero::Declaration"></span><span class="target" id="structarrow_1_1acero_1_1_declaration"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Declaration</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero11DeclarationE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/exec_plan.h&gt;</em></div>
<p>Helper class for declaring execution nodes. </p>
<p>A <a class="reference internal" href="#structarrow_1_1acero_1_1_declaration"><span class="std std-ref">Declaration</span></a> represents an unconstructed <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node"><span class="std std-ref">ExecNode</span></a> (and potentially an entire graph since its inputs may also be Declarations)</p>
<p>A <a class="reference internal" href="#structarrow_1_1acero_1_1_declaration"><span class="std std-ref">Declaration</span></a> can be converted to a plan and executed using one of the DeclarationToXyz methods.</p>
<p>For more direct control, a <a class="reference internal" href="#structarrow_1_1acero_1_1_declaration"><span class="std std-ref">Declaration</span></a> can be added to an existing execution plan with <a class="reference internal" href="#structarrow_1_1acero_1_1_declaration_1a686fc67c9081d4b2603382cfba4745d3"><span class="std std-ref">Declaration::AddToPlan</span></a>, which will recursively construct any inputs as necessary. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-types">Public Types</p>
<dl class="cpp type">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero11Declaration5InputE">
<span id="_CPPv3N5arrow5acero11Declaration5InputE"></span><span id="_CPPv2N5arrow5acero11Declaration5InputE"></span><span class="target" id="structarrow_1_1acero_1_1_declaration_1ac7fb3035714bb9bd8dd500875ccb1137"></span><span class="k"><span class="pre">using</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Input</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</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">variant</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecNodeE" title="arrow::acero::ExecNode"><span class="n"><span class="pre">ExecNode</span></span></a><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow5acero11DeclarationE" title="arrow::acero::Declaration"><span class="n"><span class="pre">Declaration</span></span></a><span class="p"><span class="pre">&gt;</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero11Declaration5InputE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
<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="_CPPv4N5arrow5acero11Declaration11DeclarationEv">
<span id="_CPPv3N5arrow5acero11Declaration11DeclarationEv"></span><span id="_CPPv2N5arrow5acero11Declaration11DeclarationEv"></span><span id="arrow::acero::Declaration::Declaration"></span><span class="target" id="structarrow_1_1acero_1_1_declaration_1a3e88747888551f0ba14571ebd615c769"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Declaration</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero11Declaration11DeclarationEv" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero11Declaration11DeclarationENSt6stringENSt6vectorI5InputEENSt10shared_ptrI15ExecNodeOptionsEENSt6stringE">
<span id="_CPPv3N5arrow5acero11Declaration11DeclarationENSt6stringENSt6vectorI5InputEENSt10shared_ptrI15ExecNodeOptionsEENSt6stringE"></span><span id="_CPPv2N5arrow5acero11Declaration11DeclarationENSt6stringENSt6vectorI5InputEENSt10shared_ptrI15ExecNodeOptionsEENSt6stringE"></span><span id="arrow::acero::Declaration::Declaration__ss.std::vector:Input:.std::shared_ptr:ExecNodeOptions:.ss"></span><span class="target" id="structarrow_1_1acero_1_1_declaration_1a91fdba9938109f0dba043db271e5d11e"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Declaration</span></span></span><span class="sig-paren">(</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="n sig-param"><span class="pre">factory_name</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero11Declaration5InputE" title="arrow::acero::Declaration::Input"><span class="n"><span class="pre">Input</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">inputs</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="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">options</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">string</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">label</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero11Declaration11DeclarationENSt6stringENSt6vectorI5InputEENSt10shared_ptrI15ExecNodeOptionsEENSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>construct a declaration </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>factory_name</strong> – the name of the exec node to construct. The node must have been added to the exec node registry with this name. </p></li>
<li><p><strong>inputs</strong> – the inputs to the node, these should be other declarations </p></li>
<li><p><strong>options</strong> – options that control the behavior of the node. You must use the appropriate subclass. For example, if <code class="docutils literal notranslate"><span class="pre">factory_name</span></code> is “project” then <code class="docutils literal notranslate"><span class="pre">options</span></code> should be <a class="reference internal" href="#classarrow_1_1acero_1_1_project_node_options"><span class="std std-ref">ProjectNodeOptions</span></a>. </p></li>
<li><p><strong>label</strong> – a label to give the node. Can be used to distinguish it from other nodes of the same type in the plan. </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4I0EN5arrow5acero11Declaration11DeclarationENSt6stringENSt6vectorI5InputEE7OptionsNSt6stringE">
<span id="_CPPv3I0EN5arrow5acero11Declaration11DeclarationENSt6stringENSt6vectorI5InputEE7OptionsNSt6stringE"></span><span id="_CPPv2I0EN5arrow5acero11Declaration11DeclarationENSt6stringENSt6vectorI5InputEE7OptionsNSt6stringE"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Options</span></span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="structarrow_1_1acero_1_1_declaration_1adcf62d365095fdb95bd7a75281618250"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Declaration</span></span></span><span class="sig-paren">(</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="n sig-param"><span class="pre">factory_name</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero11Declaration5InputE" title="arrow::acero::Declaration::Input"><span class="n"><span class="pre">Input</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">inputs</span></span>, <a class="reference internal" href="#_CPPv4I0EN5arrow5acero11Declaration11DeclarationENSt6stringENSt6vectorI5InputEE7OptionsNSt6stringE" title="arrow::acero::Declaration::Declaration::Options"><span class="n"><span class="pre">Options</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">options</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">string</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">label</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0EN5arrow5acero11Declaration11DeclarationENSt6stringENSt6vectorI5InputEE7OptionsNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4I0EN5arrow5acero11Declaration11DeclarationENSt6stringENSt6vectorI5InputEE7Options">
<span id="_CPPv3I0EN5arrow5acero11Declaration11DeclarationENSt6stringENSt6vectorI5InputEE7Options"></span><span id="_CPPv2I0EN5arrow5acero11Declaration11DeclarationENSt6stringENSt6vectorI5InputEE7Options"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Options</span></span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="structarrow_1_1acero_1_1_declaration_1af5eae0381e3db8c9cb6f7f9702334f04"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Declaration</span></span></span><span class="sig-paren">(</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="n sig-param"><span class="pre">factory_name</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero11Declaration5InputE" title="arrow::acero::Declaration::Input"><span class="n"><span class="pre">Input</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">inputs</span></span>, <a class="reference internal" href="#_CPPv4I0EN5arrow5acero11Declaration11DeclarationENSt6stringENSt6vectorI5InputEE7Options" title="arrow::acero::Declaration::Declaration::Options"><span class="n"><span class="pre">Options</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">options</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0EN5arrow5acero11Declaration11DeclarationENSt6stringENSt6vectorI5InputEE7Options" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4I0EN5arrow5acero11Declaration11DeclarationENSt6stringE7Options">
<span id="_CPPv3I0EN5arrow5acero11Declaration11DeclarationENSt6stringE7Options"></span><span id="_CPPv2I0EN5arrow5acero11Declaration11DeclarationENSt6stringE7Options"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Options</span></span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="structarrow_1_1acero_1_1_declaration_1a16901cf9424a91b2be330772974a916b"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Declaration</span></span></span><span class="sig-paren">(</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="n sig-param"><span class="pre">factory_name</span></span>, <a class="reference internal" href="#_CPPv4I0EN5arrow5acero11Declaration11DeclarationENSt6stringE7Options" title="arrow::acero::Declaration::Declaration::Options"><span class="n"><span class="pre">Options</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">options</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0EN5arrow5acero11Declaration11DeclarationENSt6stringE7Options" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4I0EN5arrow5acero11Declaration11DeclarationENSt6stringE7OptionsNSt6stringE">
<span id="_CPPv3I0EN5arrow5acero11Declaration11DeclarationENSt6stringE7OptionsNSt6stringE"></span><span id="_CPPv2I0EN5arrow5acero11Declaration11DeclarationENSt6stringE7OptionsNSt6stringE"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Options</span></span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="structarrow_1_1acero_1_1_declaration_1a49f1acbabc0f268181220521bd6c9412"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Declaration</span></span></span><span class="sig-paren">(</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="n sig-param"><span class="pre">factory_name</span></span>, <a class="reference internal" href="#_CPPv4I0EN5arrow5acero11Declaration11DeclarationENSt6stringE7OptionsNSt6stringE" title="arrow::acero::Declaration::Declaration::Options"><span class="n"><span class="pre">Options</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">options</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">string</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">label</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0EN5arrow5acero11Declaration11DeclarationENSt6stringE7OptionsNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero11Declaration9AddToPlanEP8ExecPlanP19ExecFactoryRegistry">
<span id="_CPPv3NK5arrow5acero11Declaration9AddToPlanEP8ExecPlanP19ExecFactoryRegistry"></span><span id="_CPPv2NK5arrow5acero11Declaration9AddToPlanEP8ExecPlanP19ExecFactoryRegistry"></span><span id="arrow::acero::Declaration::AddToPlan__ExecPlanP.ExecFactoryRegistryPC"></span><span class="target" id="structarrow_1_1acero_1_1_declaration_1a686fc67c9081d4b2603382cfba4745d3"></span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecNodeE" title="arrow::acero::ExecNode"><span class="n"><span class="pre">ExecNode</span></span></a><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">AddToPlan</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecPlanE" title="arrow::acero::ExecPlan"><span class="n"><span class="pre">ExecPlan</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">plan</span></span>, <a class="reference internal" href="#_CPPv4N5arrow5acero19ExecFactoryRegistryE" title="arrow::acero::ExecFactoryRegistry"><span class="n"><span class="pre">ExecFactoryRegistry</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">registry</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv429default_exec_factory_registryv" title="default_exec_factory_registry"><span class="n"><span class="pre">default_exec_factory_registry</span></span></a><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow5acero11Declaration9AddToPlanEP8ExecPlanP19ExecFactoryRegistry" title="Permalink to this definition">#</a><br /></dt>
<dd><p>add the declaration to an already created execution plan </p>
<p>
This method will recursively call AddToPlan on all of the declaration’s inputs. This method is only for advanced use when the DeclarationToXyz methods are not sufficient.</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>plan</strong> – the plan to add the node to </p></li>
<li><p><strong>registry</strong> – the registry to use to lookup the node factory</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>the instantiated execution node </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero11Declaration7IsValidEP19ExecFactoryRegistry">
<span id="_CPPv3NK5arrow5acero11Declaration7IsValidEP19ExecFactoryRegistry"></span><span id="_CPPv2NK5arrow5acero11Declaration7IsValidEP19ExecFactoryRegistry"></span><span id="arrow::acero::Declaration::IsValid__ExecFactoryRegistryPC"></span><span class="target" id="structarrow_1_1acero_1_1_declaration_1a5612b69095fdc7b388c219ea883755b1"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">IsValid</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4N5arrow5acero19ExecFactoryRegistryE" title="arrow::acero::ExecFactoryRegistry"><span class="n"><span class="pre">ExecFactoryRegistry</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">registry</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv429default_exec_factory_registryv" title="default_exec_factory_registry"><span class="n"><span class="pre">default_exec_factory_registry</span></span></a><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow5acero11Declaration7IsValidEP19ExecFactoryRegistry" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero11Declaration12factory_nameE">
<span id="_CPPv3N5arrow5acero11Declaration12factory_nameE"></span><span id="_CPPv2N5arrow5acero11Declaration12factory_nameE"></span><span id="arrow::acero::Declaration::factory_name__ss"></span><span class="target" id="structarrow_1_1acero_1_1_declaration_1a8e0c7d6d9b8df8a92f0ec7c8a6c25ce4"></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="sig-name descname"><span class="n"><span class="pre">factory_name</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero11Declaration12factory_nameE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>the name of the factory to use when creating a node </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero11Declaration6inputsE">
<span id="_CPPv3N5arrow5acero11Declaration6inputsE"></span><span id="_CPPv2N5arrow5acero11Declaration6inputsE"></span><span id="arrow::acero::Declaration::inputs__std::vector:Input:"></span><span class="target" id="structarrow_1_1acero_1_1_declaration_1a89be645068d4d7ae2b96215008d01279"></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><a class="reference internal" href="#_CPPv4N5arrow5acero11Declaration5InputE" title="arrow::acero::Declaration::Input"><span class="n"><span class="pre">Input</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">inputs</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero11Declaration6inputsE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>the declarations’s inputs </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero11Declaration7optionsE">
<span id="_CPPv3N5arrow5acero11Declaration7optionsE"></span><span id="_CPPv2N5arrow5acero11Declaration7optionsE"></span><span id="arrow::acero::Declaration::options__std::shared_ptr:ExecNodeOptions:"></span><span class="target" id="structarrow_1_1acero_1_1_declaration_1a1cb4b99b9c0cef8b825a3f7b06ebf4f7"></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="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">options</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero11Declaration7optionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>options to control the behavior of the node </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero11Declaration5labelE">
<span id="_CPPv3N5arrow5acero11Declaration5labelE"></span><span id="_CPPv2N5arrow5acero11Declaration5labelE"></span><span id="arrow::acero::Declaration::label__ss"></span><span class="target" id="structarrow_1_1acero_1_1_declaration_1a9de6a1058d0807103ad9bca7a6209bd8"></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="sig-name descname"><span class="n"><span class="pre">label</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero11Declaration5labelE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>a label to give the node in the plan </p>
</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="_CPPv4N5arrow5acero11Declaration8SequenceENSt6vectorI11DeclarationEE">
<span id="_CPPv3N5arrow5acero11Declaration8SequenceENSt6vectorI11DeclarationEE"></span><span id="_CPPv2N5arrow5acero11Declaration8SequenceENSt6vectorI11DeclarationEE"></span><span id="arrow::acero::Declaration::Sequence__std::vector:Declaration:"></span><span class="target" id="structarrow_1_1acero_1_1_declaration_1a598acc9f22556c6b24915a75c8b18fdd"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow5acero11DeclarationE" title="arrow::acero::Declaration"><span class="n"><span class="pre">Declaration</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Sequence</span></span></span><span class="sig-paren">(</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><a class="reference internal" href="#_CPPv4N5arrow5acero11DeclarationE" title="arrow::acero::Declaration"><span class="n"><span class="pre">Declaration</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">decls</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero11Declaration8SequenceENSt6vectorI11DeclarationEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Convenience factory for the common case of a simple sequence of nodes. </p>
<p>Each of decls will be appended to the inputs of the subsequent declaration, and the final modified declaration will be returned.</p>
<p>Without this convenience factory, constructing a sequence would require explicit, difficult-to-read nesting: <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Declaration</span><span class="p">{</span><span class="s2">&quot;n3&quot;</span><span class="p">,</span>
<span class="p">{</span>
<span class="n">Declaration</span><span class="p">{</span><span class="s2">&quot;n2&quot;</span><span class="p">,</span>
<span class="p">{</span>
<span class="n">Declaration</span><span class="p">{</span><span class="s2">&quot;n1&quot;</span><span class="p">,</span>
<span class="p">{</span>
<span class="n">Declaration</span><span class="p">{</span><span class="s2">&quot;n0&quot;</span><span class="p">,</span> <span class="n">N0Opts</span><span class="p">{}},</span>
<span class="p">},</span>
<span class="n">N1Opts</span><span class="p">{}},</span>
<span class="p">},</span>
<span class="n">N2Opts</span><span class="p">{}},</span>
<span class="p">},</span>
<span class="n">N3Opts</span><span class="p">{}};</span>
</pre></div>
</div>
An equivalent <a class="reference internal" href="#structarrow_1_1acero_1_1_declaration"><span class="std std-ref">Declaration</span></a> can be constructed more tersely using Sequence: <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Declaration</span><span class="p">::</span><span class="n">Sequence</span><span class="p">({</span>
<span class="p">{</span><span class="s2">&quot;n0&quot;</span><span class="p">,</span> <span class="n">N0Opts</span><span class="p">{}},</span>
<span class="p">{</span><span class="s2">&quot;n1&quot;</span><span class="p">,</span> <span class="n">N1Opts</span><span class="p">{}},</span>
<span class="p">{</span><span class="s2">&quot;n2&quot;</span><span class="p">,</span> <span class="n">N2Opts</span><span class="p">{}},</span>
<span class="p">{</span><span class="s2">&quot;n3&quot;</span><span class="p">,</span> <span class="n">N3Opts</span><span class="p">{}},</span>
<span class="p">});</span>
</pre></div>
</div>
</p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero12QueryOptionsE">
<span id="_CPPv3N5arrow5acero12QueryOptionsE"></span><span id="_CPPv2N5arrow5acero12QueryOptionsE"></span><span id="arrow::acero::QueryOptions"></span><span class="target" id="structarrow_1_1acero_1_1_query_options"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">QueryOptions</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero12QueryOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/exec_plan.h&gt;</em></div>
<p>plan-wide options that can be specified when executing an execution plan </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero12QueryOptions19use_legacy_batchingE">
<span id="_CPPv3N5arrow5acero12QueryOptions19use_legacy_batchingE"></span><span id="_CPPv2N5arrow5acero12QueryOptions19use_legacy_batchingE"></span><span id="arrow::acero::QueryOptions::use_legacy_batching__b"></span><span class="target" id="structarrow_1_1acero_1_1_query_options_1a24b464a7300e402b7acaf1d1be71c2da"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">use_legacy_batching</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">false</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero12QueryOptions19use_legacy_batchingE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Should the plan use a legacy batching strategy. </p>
<p>This is currently in place only to support the Scanner::ToTable method. This method relies on batch indices from the scanner remaining consistent. This is impractical in the <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_plan"><span class="std std-ref">ExecPlan</span></a> which might slice batches as needed (e.g. for a join)</p>
<p>However, it still works for simple plans and this is the only way we have at the moment for maintaining implicit order. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero12QueryOptions15sequence_outputE">
<span id="_CPPv3N5arrow5acero12QueryOptions15sequence_outputE"></span><span id="_CPPv2N5arrow5acero12QueryOptions15sequence_outputE"></span><span id="arrow::acero::QueryOptions::sequence_output__std::optional:b:"></span><span class="target" id="structarrow_1_1acero_1_1_query_options_1a691dc3c9b57bd0d8a86185fa1fb7c02c"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">optional</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">bool</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">sequence_output</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</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">nullopt</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero12QueryOptions15sequence_outputE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>If the output has a meaningful order then sequence the output of the plan. </p>
<p>The default behavior (std::nullopt) will sequence output batches if there is a meaningful ordering in the final node and will emit batches immediately otherwise.</p>
<p>If explicitly set to true then plan execution will fail if there is no meaningful ordering. This can be useful to validate a query that should be emitting ordered results.</p>
<p>If explicitly set to false then batches will be emit immediately even if there is a meaningful ordering. This could cause batches to be emit out of order but may offer a small decrease to latency. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero12QueryOptions11use_threadsE">
<span id="_CPPv3N5arrow5acero12QueryOptions11use_threadsE"></span><span id="_CPPv2N5arrow5acero12QueryOptions11use_threadsE"></span><span id="arrow::acero::QueryOptions::use_threads__b"></span><span class="target" id="structarrow_1_1acero_1_1_query_options_1a470dd4759b19dc04f89769e319a88b17"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">use_threads</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">true</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero12QueryOptions11use_threadsE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>should the plan use multiple background threads for CPU-intensive work </p>
<p>If this is false then all CPU work will be done on the calling thread. I/O tasks will still happen on the I/O executor and may be multi-threaded (but should not use significant CPU resources).</p>
<p>Will be ignored if custom_cpu_executor is set </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero12QueryOptions19custom_cpu_executorE">
<span id="_CPPv3N5arrow5acero12QueryOptions19custom_cpu_executorE"></span><span id="_CPPv2N5arrow5acero12QueryOptions19custom_cpu_executorE"></span><span id="arrow::acero::QueryOptions::custom_cpu_executor__arrow::internal::ExecutorP"></span><span class="target" id="structarrow_1_1acero_1_1_query_options_1a5082a0cb42d6472b14c723f2bf700c45"></span><span class="p"><span class="pre">::</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">internal</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">Executor</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">custom_cpu_executor</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero12QueryOptions19custom_cpu_executorE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>custom executor to use for CPU-intensive work </p>
<p>Must be null or remain valid for the duration of the plan. If this is null then a default thread pool will be chosen whose behavior will be controlled by the <code class="docutils literal notranslate"><span class="pre">use_threads</span></code> option. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero12QueryOptions18custom_io_executorE">
<span id="_CPPv3N5arrow5acero12QueryOptions18custom_io_executorE"></span><span id="_CPPv2N5arrow5acero12QueryOptions18custom_io_executorE"></span><span id="arrow::acero::QueryOptions::custom_io_executor__arrow::internal::ExecutorP"></span><span class="target" id="structarrow_1_1acero_1_1_query_options_1a8ec8b35987fa7b1a26d9964a513e60ea"></span><span class="p"><span class="pre">::</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">internal</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">Executor</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">custom_io_executor</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero12QueryOptions18custom_io_executorE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>custom executor to use for IO work </p>
<p>Must be null or remain valid for the duration of the plan. If this is null then the global io thread pool will be chosen whose behavior will be controlled by the “ARROW_IO_THREADS” environment. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero12QueryOptions11memory_poolE">
<span id="_CPPv3N5arrow5acero12QueryOptions11memory_poolE"></span><span id="_CPPv2N5arrow5acero12QueryOptions11memory_poolE"></span><span id="arrow::acero::QueryOptions::memory_pool__MemoryPoolP"></span><span class="target" id="structarrow_1_1acero_1_1_query_options_1aafe67ea9325bdd826472ab67bc601493"></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="sig-name descname"><span class="n"><span class="pre">memory_pool</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="memory.html#_CPPv4N5arrow19default_memory_poolEv" title="arrow::default_memory_pool"><span class="n"><span class="pre">default_memory_pool</span></span></a><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero12QueryOptions11memory_poolE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>a memory pool to use for allocations </p>
<p>Must remain valid for the duration of the plan. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero12QueryOptions17function_registryE">
<span id="_CPPv3N5arrow5acero12QueryOptions17function_registryE"></span><span id="_CPPv2N5arrow5acero12QueryOptions17function_registryE"></span><span id="arrow::acero::QueryOptions::function_registry__FunctionRegistryP"></span><span class="target" id="structarrow_1_1acero_1_1_query_options_1aa184ef4e0f97b8372e590541dd3afea3"></span><span class="n"><span class="pre">FunctionRegistry</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">function_registry</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">GetFunctionRegistry</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero12QueryOptions17function_registryE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>a function registry to use for the plan </p>
<p>Must remain valid for the duration of the plan. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero12QueryOptions11field_namesE">
<span id="_CPPv3N5arrow5acero12QueryOptions11field_namesE"></span><span id="_CPPv2N5arrow5acero12QueryOptions11field_namesE"></span><span id="arrow::acero::QueryOptions::field_names__std::vector:ss:"></span><span class="target" id="structarrow_1_1acero_1_1_query_options_1a801c18953abf6c520bffbe02d795995f"></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">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">field_names</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero12QueryOptions11field_namesE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>the names of the output columns </p>
<p>If this is empty then names will be generated based on the input columns</p>
<p>If set then the number of names must equal the number of output columns </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero12QueryOptions25unaligned_buffer_handlingE">
<span id="_CPPv3N5arrow5acero12QueryOptions25unaligned_buffer_handlingE"></span><span id="_CPPv2N5arrow5acero12QueryOptions25unaligned_buffer_handlingE"></span><span id="arrow::acero::QueryOptions::unaligned_buffer_handling__std::optional:UnalignedBufferHandling:"></span><span class="target" id="structarrow_1_1acero_1_1_query_options_1a885bcdf1706e8059438fc1120293656d"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">optional</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv423UnalignedBufferHandling" title="UnalignedBufferHandling"><span class="n"><span class="pre">UnalignedBufferHandling</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">unaligned_buffer_handling</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero12QueryOptions25unaligned_buffer_handlingE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Policy for unaligned buffers in source data. </p>
<p>Various compute functions and acero internals will type pun array buffers from uint8_t* to some kind of value type (e.g. we might cast to int32_t* to add two int32 arrays)</p>
<p>If the buffer is poorly aligned (e.g. an int32 array is not aligned on a 4-byte boundary) then this is technically undefined behavior in C++. However, most modern compilers and CPUs are fairly tolerant of this behavior and nothing bad (beyond a small hit to performance) is likely to happen.</p>
<p>Note that this only applies to source buffers. All buffers allocated internally by Acero will be suitably aligned.</p>
<p>If this field is set to kWarn then Acero will check if any buffers are unaligned and, if they are, will emit a warning.</p>
<p>If this field is set to kReallocate then Acero will allocate a new, suitably aligned buffer and copy the contents from the old buffer into this new buffer.</p>
<p>If this field is set to kError then Acero will gracefully abort the plan instead.</p>
<p>If this field is set to kIgnore then Acero will not even check if the buffers are unaligned.</p>
<p>If this field is not set then it will be treated as kWarn unless overridden by the ACERO_ALIGNMENT_HANDLING environment variable </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero23BatchesWithCommonSchemaE">
<span id="_CPPv3N5arrow5acero23BatchesWithCommonSchemaE"></span><span id="_CPPv2N5arrow5acero23BatchesWithCommonSchemaE"></span><span id="arrow::acero::BatchesWithCommonSchema"></span><span class="target" id="structarrow_1_1acero_1_1_batches_with_common_schema"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">BatchesWithCommonSchema</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero23BatchesWithCommonSchemaE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/exec_plan.h&gt;</em></div>
<p>a collection of exec batches with a common schema </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero23BatchesWithCommonSchema7batchesE">
<span id="_CPPv3N5arrow5acero23BatchesWithCommonSchema7batchesE"></span><span id="_CPPv2N5arrow5acero23BatchesWithCommonSchema7batchesE"></span><span id="arrow::acero::BatchesWithCommonSchema::batches__std::vector:ExecBatch:"></span><span class="target" id="structarrow_1_1acero_1_1_batches_with_common_schema_1a2c5be6ca5536fca7e845eeaa91b4fe4a"></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">ExecBatch</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">batches</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero23BatchesWithCommonSchema7batchesE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero23BatchesWithCommonSchema6schemaE">
<span id="_CPPv3N5arrow5acero23BatchesWithCommonSchema6schemaE"></span><span id="_CPPv2N5arrow5acero23BatchesWithCommonSchema6schemaE"></span><span id="arrow::acero::BatchesWithCommonSchema::schema__std::shared_ptr:Schema:"></span><span class="target" id="structarrow_1_1acero_1_1_batches_with_common_schema_1af000853f37d04915457b14f0acedaf50"></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="datatype.html#_CPPv4N5arrow6SchemaE" title="arrow::Schema"><span class="n"><span class="pre">Schema</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">schema</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero23BatchesWithCommonSchema6schemaE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
</dd></dl>
</section>
<section id="configuration-for-execution-nodes">
<h2>Configuration for execution nodes<a class="headerlink" href="#configuration-for-execution-nodes" title="Permalink to this heading">#</a></h2>
<dl class="cpp enum-class">
<dt class="sig sig-object cpp" id="_CPPv48JoinType">
<span id="_CPPv38JoinType"></span><span id="_CPPv28JoinType"></span><span class="target" id="group__acero-nodes_1ga0206c29e186fd8b4e7ac64c7d0ac4741"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </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">JoinType</span></span></span><a class="headerlink" href="#_CPPv48JoinType" title="Permalink to this definition">#</a><br /></dt>
<dd><p><em>Values:</em></p>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N8JoinType9LEFT_SEMIE">
<span id="_CPPv3N8JoinType9LEFT_SEMIE"></span><span id="_CPPv2N8JoinType9LEFT_SEMIE"></span><span class="target" id="group__acero-nodes_1gga0206c29e186fd8b4e7ac64c7d0ac4741a4366a67a27bed2358373373ddd47392c"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LEFT_SEMI</span></span></span><a class="headerlink" href="#_CPPv4N8JoinType9LEFT_SEMIE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N8JoinType10RIGHT_SEMIE">
<span id="_CPPv3N8JoinType10RIGHT_SEMIE"></span><span id="_CPPv2N8JoinType10RIGHT_SEMIE"></span><span class="target" id="group__acero-nodes_1gga0206c29e186fd8b4e7ac64c7d0ac4741a85cb2e8dcaef5618a5b41990aebeac61"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">RIGHT_SEMI</span></span></span><a class="headerlink" href="#_CPPv4N8JoinType10RIGHT_SEMIE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N8JoinType9LEFT_ANTIE">
<span id="_CPPv3N8JoinType9LEFT_ANTIE"></span><span id="_CPPv2N8JoinType9LEFT_ANTIE"></span><span class="target" id="group__acero-nodes_1gga0206c29e186fd8b4e7ac64c7d0ac4741a5eaa1ff1617607966eb1293d6f7c0c6a"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LEFT_ANTI</span></span></span><a class="headerlink" href="#_CPPv4N8JoinType9LEFT_ANTIE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N8JoinType10RIGHT_ANTIE">
<span id="_CPPv3N8JoinType10RIGHT_ANTIE"></span><span id="_CPPv2N8JoinType10RIGHT_ANTIE"></span><span class="target" id="group__acero-nodes_1gga0206c29e186fd8b4e7ac64c7d0ac4741ad4220640f3f5a6ed247d289683f93249"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">RIGHT_ANTI</span></span></span><a class="headerlink" href="#_CPPv4N8JoinType10RIGHT_ANTIE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N8JoinType5INNERE">
<span id="_CPPv3N8JoinType5INNERE"></span><span id="_CPPv2N8JoinType5INNERE"></span><span class="target" id="group__acero-nodes_1gga0206c29e186fd8b4e7ac64c7d0ac4741ac4540d3222d43c398e55b47cb3846a40"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">INNER</span></span></span><a class="headerlink" href="#_CPPv4N8JoinType5INNERE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N8JoinType10LEFT_OUTERE">
<span id="_CPPv3N8JoinType10LEFT_OUTERE"></span><span id="_CPPv2N8JoinType10LEFT_OUTERE"></span><span class="target" id="group__acero-nodes_1gga0206c29e186fd8b4e7ac64c7d0ac4741afad50b06f6e7723087425c4263d7d926"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LEFT_OUTER</span></span></span><a class="headerlink" href="#_CPPv4N8JoinType10LEFT_OUTERE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N8JoinType11RIGHT_OUTERE">
<span id="_CPPv3N8JoinType11RIGHT_OUTERE"></span><span id="_CPPv2N8JoinType11RIGHT_OUTERE"></span><span class="target" id="group__acero-nodes_1gga0206c29e186fd8b4e7ac64c7d0ac4741a6792c183a86a256fec7d3c3dc49d3b32"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">RIGHT_OUTER</span></span></span><a class="headerlink" href="#_CPPv4N8JoinType11RIGHT_OUTERE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N8JoinType10FULL_OUTERE">
<span id="_CPPv3N8JoinType10FULL_OUTERE"></span><span id="_CPPv2N8JoinType10FULL_OUTERE"></span><span class="target" id="group__acero-nodes_1gga0206c29e186fd8b4e7ac64c7d0ac4741a2afcfafefd05a51318c2b3eb54c03622"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FULL_OUTER</span></span></span><a class="headerlink" href="#_CPPv4N8JoinType10FULL_OUTERE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</dd></dl>
<dl class="cpp enum-class">
<dt class="sig sig-object cpp" id="_CPPv410JoinKeyCmp">
<span id="_CPPv310JoinKeyCmp"></span><span id="_CPPv210JoinKeyCmp"></span><span class="target" id="group__acero-nodes_1ga78ce24fc89d322ab9e35d1e575a70dbb"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </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">JoinKeyCmp</span></span></span><a class="headerlink" href="#_CPPv410JoinKeyCmp" title="Permalink to this definition">#</a><br /></dt>
<dd><p><em>Values:</em></p>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N10JoinKeyCmp2EQE">
<span id="_CPPv3N10JoinKeyCmp2EQE"></span><span id="_CPPv2N10JoinKeyCmp2EQE"></span><span class="target" id="group__acero-nodes_1gga78ce24fc89d322ab9e35d1e575a70dbba2dcbad7477fd40561e8b8198f173bd47"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">EQ</span></span></span><a class="headerlink" href="#_CPPv4N10JoinKeyCmp2EQE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N10JoinKeyCmp2ISE">
<span id="_CPPv3N10JoinKeyCmp2ISE"></span><span id="_CPPv2N10JoinKeyCmp2ISE"></span><span class="target" id="group__acero-nodes_1gga78ce24fc89d322ab9e35d1e575a70dbba0bfc16cc12effc1bae4d3766c4f2257d"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">IS</span></span></span><a class="headerlink" href="#_CPPv4N10JoinKeyCmp2ISE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</dd></dl>
<dl class="cpp type">
<dt class="sig sig-object cpp" id="_CPPv424ArrayVectorIteratorMaker">
<span id="_CPPv324ArrayVectorIteratorMaker"></span><span id="_CPPv224ArrayVectorIteratorMaker"></span><span class="target" id="group__acero-nodes_1gadecc659a845dc876a3cb1539a648059a"></span><span class="k"><span class="pre">using</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrayVectorIteratorMaker</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</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">function</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Iterator</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><span class="n"><span class="pre">ArrayVector</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">&gt;</span></span><a class="headerlink" href="#_CPPv424ArrayVectorIteratorMaker" title="Permalink to this definition">#</a><br /></dt>
<dd><p>a source node that reads from an iterator of array vectors </p>
</dd></dl>
<dl class="cpp type">
<dt class="sig sig-object cpp" id="_CPPv422ExecBatchIteratorMaker">
<span id="_CPPv322ExecBatchIteratorMaker"></span><span id="_CPPv222ExecBatchIteratorMaker"></span><span class="target" id="group__acero-nodes_1gabf35c14ec49e0c5b3fb49c06113177e7"></span><span class="k"><span class="pre">using</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ExecBatchIteratorMaker</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</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">function</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Iterator</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><span class="n"><span class="pre">ExecBatch</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">&gt;</span></span><a class="headerlink" href="#_CPPv422ExecBatchIteratorMaker" title="Permalink to this definition">#</a><br /></dt>
<dd><p>a source node that reads from an iterator of ExecBatch </p>
</dd></dl>
<dl class="cpp type">
<dt class="sig sig-object cpp" id="_CPPv424RecordBatchIteratorMaker">
<span id="_CPPv324RecordBatchIteratorMaker"></span><span id="_CPPv224RecordBatchIteratorMaker"></span><span class="target" id="group__acero-nodes_1ga2550328441e0eeec3d8d24e9cd45ae0b"></span><span class="k"><span class="pre">using</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">RecordBatchIteratorMaker</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</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">function</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Iterator</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><span class="n"><span class="pre">RecordBatch</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">&gt;</span></span><a class="headerlink" href="#_CPPv424RecordBatchIteratorMaker" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv429kDefaultBackpressureHighBytes">
<span id="_CPPv329kDefaultBackpressureHighBytes"></span><span id="_CPPv229kDefaultBackpressureHighBytes"></span><span id="kDefaultBackpressureHighBytes__int32_t"></span><span class="target" id="group__acero-nodes_1ga783de0e79a8f0c235f94cbed13b28301"></span><span class="k"><span class="pre">constexpr</span></span><span class="w"> </span><span class="n"><span class="pre">int32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">kDefaultBackpressureHighBytes</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">1</span></span><span class="w"> </span><span class="o"><span class="pre">&lt;&lt;</span></span><span class="w"> </span><span class="m"><span class="pre">30</span></span><a class="headerlink" href="#_CPPv429kDefaultBackpressureHighBytes" title="Permalink to this definition">#</a><br /></dt>
<dd><p>a default value at which backpressure will be applied </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv428kDefaultBackpressureLowBytes">
<span id="_CPPv328kDefaultBackpressureLowBytes"></span><span id="_CPPv228kDefaultBackpressureLowBytes"></span><span id="kDefaultBackpressureLowBytes__int32_t"></span><span class="target" id="group__acero-nodes_1gab70549260279f6b2bcd6e3d5e1d1df7e"></span><span class="k"><span class="pre">constexpr</span></span><span class="w"> </span><span class="n"><span class="pre">int32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">kDefaultBackpressureLowBytes</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">1</span></span><span class="w"> </span><span class="o"><span class="pre">&lt;&lt;</span></span><span class="w"> </span><span class="m"><span class="pre">28</span></span><a class="headerlink" href="#_CPPv428kDefaultBackpressureLowBytes" title="Permalink to this definition">#</a><br /></dt>
<dd><p>a default value at which backpressure will be removed </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv48ToString8JoinType">
<span id="_CPPv38ToString8JoinType"></span><span id="_CPPv28ToString8JoinType"></span><span id="ToString__JoinType"></span><span class="target" id="group__acero-nodes_1gaa7bedaf4bce344dfd379bf04fad7d5b9"></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="sig-name descname"><span class="n"><span class="pre">ToString</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv48JoinType" title="JoinType"><span class="n"><span class="pre">JoinType</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">t</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv48ToString8JoinType" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero15ExecNodeOptionsE">
<span id="_CPPv3N5arrow5acero15ExecNodeOptionsE"></span><span id="_CPPv2N5arrow5acero15ExecNodeOptionsE"></span><span id="arrow::acero::ExecNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_options"></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">ExecNodeOptions</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>A base class for all options objects. </p>
<p>The only time this is used directly is when a node has no configuration </p>
<p>Subclassed by <a class="reference internal" href="#classarrow_1_1acero_1_1_schema_source_node_options"><span class="std std-ref">arrow::acero::SchemaSourceNodeOptions&lt; RecordBatchIteratorMaker &gt;</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_schema_source_node_options"><span class="std std-ref">arrow::acero::SchemaSourceNodeOptions&lt; ExecBatchIteratorMaker &gt;</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_schema_source_node_options"><span class="std std-ref">arrow::acero::SchemaSourceNodeOptions&lt; ArrayVectorIteratorMaker &gt;</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_aggregate_node_options"><span class="std std-ref">arrow::acero::AggregateNodeOptions</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_asof_join_node_options"><span class="std std-ref">arrow::acero::AsofJoinNodeOptions</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_consuming_sink_node_options"><span class="std std-ref">arrow::acero::ConsumingSinkNodeOptions</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_fetch_node_options"><span class="std std-ref">arrow::acero::FetchNodeOptions</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_filter_node_options"><span class="std std-ref">arrow::acero::FilterNodeOptions</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_hash_join_node_options"><span class="std std-ref">arrow::acero::HashJoinNodeOptions</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_named_table_node_options"><span class="std std-ref">arrow::acero::NamedTableNodeOptions</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_order_by_node_options"><span class="std std-ref">arrow::acero::OrderByNodeOptions</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_pivot_longer_node_options"><span class="std std-ref">arrow::acero::PivotLongerNodeOptions</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_project_node_options"><span class="std std-ref">arrow::acero::ProjectNodeOptions</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_record_batch_reader_source_node_options"><span class="std std-ref">arrow::acero::RecordBatchReaderSourceNodeOptions</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_schema_source_node_options"><span class="std std-ref">arrow::acero::SchemaSourceNodeOptions&lt; ItMaker &gt;</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_sink_node_options"><span class="std std-ref">arrow::acero::SinkNodeOptions</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_source_node_options"><span class="std std-ref">arrow::acero::SourceNodeOptions</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_table_sink_node_options"><span class="std std-ref">arrow::acero::TableSinkNodeOptions</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_table_source_node_options"><span class="std std-ref">arrow::acero::TableSourceNodeOptions</span></a>, <a class="reference internal" href="dataset.html#classarrow_1_1dataset_1_1_scan_node_options"><span class="std std-ref">arrow::dataset::ScanNodeOptions</span></a>, <a class="reference internal" href="dataset.html#structarrow_1_1dataset_1_1_scan_v2_options"><span class="std std-ref">arrow::dataset::ScanV2Options</span></a>, <a class="reference internal" href="dataset.html#classarrow_1_1dataset_1_1_write_node_options"><span class="std std-ref">arrow::dataset::WriteNodeOptions</span></a></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="_CPPv4N5arrow5acero15ExecNodeOptionsD0Ev">
<span id="_CPPv3N5arrow5acero15ExecNodeOptionsD0Ev"></span><span id="_CPPv2N5arrow5acero15ExecNodeOptionsD0Ev"></span><span id="arrow::acero::ExecNodeOptions::~ExecNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_options_1a701783e8ee11e8c2c51b8b0e37c5fbed"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">~ExecNodeOptions</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">default</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero15ExecNodeOptionsD0Ev" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero15ExecNodeOptions10debug_optsE">
<span id="_CPPv3N5arrow5acero15ExecNodeOptions10debug_optsE"></span><span id="_CPPv2N5arrow5acero15ExecNodeOptions10debug_optsE"></span><span id="arrow::acero::ExecNodeOptions::debug_opts__std::shared_ptr:DebugOptions:"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_options_1a16c67b002467dc435f74e456e14004a6"></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">DebugOptions</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">debug_opts</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero15ExecNodeOptions10debug_optsE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>This must not be used in release-mode. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero17SourceNodeOptionsE">
<span id="_CPPv3N5arrow5acero17SourceNodeOptionsE"></span><span id="_CPPv2N5arrow5acero17SourceNodeOptionsE"></span><span id="arrow::acero::SourceNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_source_node_options"></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">SourceNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero17SourceNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>A node representing a generic source of data for Acero. </p>
<p>The source node will start calling <code class="docutils literal notranslate"><span class="pre">generator</span></code> during StartProducing. An initial task will be created that will call <code class="docutils literal notranslate"><span class="pre">generator</span></code>. It will not call <code class="docutils literal notranslate"><span class="pre">generator</span></code> reentrantly. If the source can be read in parallel then those details should be encapsulated within <code class="docutils literal notranslate"><span class="pre">generator</span></code>.</p>
<p>For each batch received a new task will be created to push that batch downstream. This task will slice smaller units of size <code class="docutils literal notranslate"><a class="reference internal" href="#classarrow_1_1acero_1_1_exec_plan_1a5b19f80bff43976d68a4bc7cefac9797"><span class="std std-ref"><span class="pre">ExecPlan::kMaxBatchSize</span></span></a></code> from the parent batch and call InputReceived. Thus, if the <code class="docutils literal notranslate"><span class="pre">generator</span></code> yields a large batch it may result in several calls to InputReceived.</p>
<p>The SourceNode will, by default, assign an implicit ordering to outgoing batches. This is valid as long as the generator generates batches in a deterministic fashion. Currently, the only way to override this is to subclass the SourceNode.</p>
<p>This node is not generally used directly but can serve as the basis for various specialized nodes. </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="_CPPv4N5arrow5acero17SourceNodeOptions17SourceNodeOptionsENSt10shared_ptrI6SchemaEENSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEE">
<span id="_CPPv3N5arrow5acero17SourceNodeOptions17SourceNodeOptionsENSt10shared_ptrI6SchemaEENSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEE"></span><span id="_CPPv2N5arrow5acero17SourceNodeOptions17SourceNodeOptionsENSt10shared_ptrI6SchemaEENSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEE"></span><span class="target" id="classarrow_1_1acero_1_1_source_node_options_1abef6a5b93fe3ee40621f04028e41c285"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SourceNodeOptions</span></span></span><span class="sig-paren">(</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="datatype.html#_CPPv4N5arrow6SchemaE" title="arrow::Schema"><span class="n"><span class="pre">Schema</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">output_schema</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">function</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><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">optional</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">ExecBatch</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">generator</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero17SourceNodeOptions17SourceNodeOptionsENSt10shared_ptrI6SchemaEENSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create an instance from values. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero17SourceNodeOptions13output_schemaE">
<span id="_CPPv3N5arrow5acero17SourceNodeOptions13output_schemaE"></span><span id="_CPPv2N5arrow5acero17SourceNodeOptions13output_schemaE"></span><span id="arrow::acero::SourceNodeOptions::output_schema__std::shared_ptr:Schema:"></span><span class="target" id="classarrow_1_1acero_1_1_source_node_options_1a0a36866ccd6e66d25b02c7d75591616b"></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="datatype.html#_CPPv4N5arrow6SchemaE" title="arrow::Schema"><span class="n"><span class="pre">Schema</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">output_schema</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero17SourceNodeOptions13output_schemaE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>the schema for batches that will be generated by this source </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp">
<span class="target" id="classarrow_1_1acero_1_1_source_node_options_1a74559b986fdea846871fda90696d0c29"></span><span class="sig-name descname"><span class="pre">std::function&lt;</span> <span class="pre">Future&lt;</span> <span class="pre">std::optional&lt;</span> <span class="pre">ExecBatch</span> <span class="pre">&gt;</span> <span class="pre">&gt;)&gt;</span> <span class="pre">generator</span></span></dt>
<dd><p>an asynchronous stream of batches ending with std::nullopt </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero22TableSourceNodeOptionsE">
<span id="_CPPv3N5arrow5acero22TableSourceNodeOptionsE"></span><span id="_CPPv2N5arrow5acero22TableSourceNodeOptionsE"></span><span id="arrow::acero::TableSourceNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_table_source_node_options"></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">TableSourceNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero22TableSourceNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>a node that generates data from a table already loaded in memory </p>
<p>The table source node will slice off chunks, defined by <code class="docutils literal notranslate"><span class="pre">max_batch_size</span></code> for parallel processing. The table source node extends source node and so these chunks will be iteratively processed in small batches. <div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#classarrow_1_1acero_1_1_source_node_options"><span class="std std-ref">SourceNodeOptions</span></a> for details. </p>
</div>
</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="_CPPv4N5arrow5acero22TableSourceNodeOptions22TableSourceNodeOptionsENSt10shared_ptrI5TableEE7int64_t">
<span id="_CPPv3N5arrow5acero22TableSourceNodeOptions22TableSourceNodeOptionsENSt10shared_ptrI5TableEE7int64_t"></span><span id="_CPPv2N5arrow5acero22TableSourceNodeOptions22TableSourceNodeOptionsENSt10shared_ptrI5TableEE7int64_t"></span><span id="arrow::acero::TableSourceNodeOptions::TableSourceNodeOptions__std::shared_ptr:Table:.int64_t"></span><span class="target" id="classarrow_1_1acero_1_1_table_source_node_options_1aea8f50acf468dff9a2855bec06c7614d"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">TableSourceNodeOptions</span></span></span><span class="sig-paren">(</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="table.html#_CPPv4N5arrow5TableE" title="arrow::Table"><span class="n"><span class="pre">Table</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">table</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_batch_size</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow5acero22TableSourceNodeOptions20kDefaultMaxBatchSizeE" title="arrow::acero::TableSourceNodeOptions::kDefaultMaxBatchSize"><span class="n"><span class="pre">kDefaultMaxBatchSize</span></span></a><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero22TableSourceNodeOptions22TableSourceNodeOptionsENSt10shared_ptrI5TableEE7int64_t" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create an instance from values. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero22TableSourceNodeOptions5tableE">
<span id="_CPPv3N5arrow5acero22TableSourceNodeOptions5tableE"></span><span id="_CPPv2N5arrow5acero22TableSourceNodeOptions5tableE"></span><span id="arrow::acero::TableSourceNodeOptions::table__std::shared_ptr:Table:"></span><span class="target" id="classarrow_1_1acero_1_1_table_source_node_options_1a4ae1e8586046ec40a8e17918f980dc8b"></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="table.html#_CPPv4N5arrow5TableE" title="arrow::Table"><span class="n"><span class="pre">Table</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">table</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero22TableSourceNodeOptions5tableE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>a table which acts as the data source </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero22TableSourceNodeOptions14max_batch_sizeE">
<span id="_CPPv3N5arrow5acero22TableSourceNodeOptions14max_batch_sizeE"></span><span id="_CPPv2N5arrow5acero22TableSourceNodeOptions14max_batch_sizeE"></span><span id="arrow::acero::TableSourceNodeOptions::max_batch_size__int64_t"></span><span class="target" id="classarrow_1_1acero_1_1_table_source_node_options_1af064eaab41344b7400b0f74ddb1c71b2"></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">max_batch_size</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero22TableSourceNodeOptions14max_batch_sizeE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>size of batches to emit from this node If the table is larger the node will emit multiple batches from the the table to be processed in parallel. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-attributes">Public Static Attributes</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero22TableSourceNodeOptions20kDefaultMaxBatchSizeE">
<span id="_CPPv3N5arrow5acero22TableSourceNodeOptions20kDefaultMaxBatchSizeE"></span><span id="_CPPv2N5arrow5acero22TableSourceNodeOptions20kDefaultMaxBatchSizeE"></span><span id="arrow::acero::TableSourceNodeOptions::kDefaultMaxBatchSize__int64_t"></span><span class="target" id="classarrow_1_1acero_1_1_table_source_node_options_1aaa45f5af7b3d6143a16187e7e819e82f"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">constexpr</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">kDefaultMaxBatchSize</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">1</span></span><span class="w"> </span><span class="o"><span class="pre">&lt;&lt;</span></span><span class="w"> </span><span class="m"><span class="pre">20</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero22TableSourceNodeOptions20kDefaultMaxBatchSizeE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero21NamedTableNodeOptionsE">
<span id="_CPPv3N5arrow5acero21NamedTableNodeOptionsE"></span><span id="_CPPv2N5arrow5acero21NamedTableNodeOptionsE"></span><span id="arrow::acero::NamedTableNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_named_table_node_options"></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">NamedTableNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero21NamedTableNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>define a lazily resolved Arrow table. </p>
<p>The table uniquely identified by the names can typically be resolved at the time when the plan is to be consumed.</p>
<p>This node is for serialization purposes only and can never be executed. </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="_CPPv4N5arrow5acero21NamedTableNodeOptions21NamedTableNodeOptionsENSt6vectorINSt6stringEEENSt10shared_ptrI6SchemaEE">
<span id="_CPPv3N5arrow5acero21NamedTableNodeOptions21NamedTableNodeOptionsENSt6vectorINSt6stringEEENSt10shared_ptrI6SchemaEE"></span><span id="_CPPv2N5arrow5acero21NamedTableNodeOptions21NamedTableNodeOptionsENSt6vectorINSt6stringEEENSt10shared_ptrI6SchemaEE"></span><span id="arrow::acero::NamedTableNodeOptions::NamedTableNodeOptions__std::vector:ss:.std::shared_ptr:Schema:"></span><span class="target" id="classarrow_1_1acero_1_1_named_table_node_options_1a639d239d45c9d6fd4f5894c14059ba05"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NamedTableNodeOptions</span></span></span><span class="sig-paren">(</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">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">names</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="datatype.html#_CPPv4N5arrow6SchemaE" title="arrow::Schema"><span class="n"><span class="pre">Schema</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">schema</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero21NamedTableNodeOptions21NamedTableNodeOptionsENSt6vectorINSt6stringEEENSt10shared_ptrI6SchemaEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create an instance from values. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero21NamedTableNodeOptions5namesE">
<span id="_CPPv3N5arrow5acero21NamedTableNodeOptions5namesE"></span><span id="_CPPv2N5arrow5acero21NamedTableNodeOptions5namesE"></span><span id="arrow::acero::NamedTableNodeOptions::names__std::vector:ss:"></span><span class="target" id="classarrow_1_1acero_1_1_named_table_node_options_1a8af88050a7ea30486e3dafae61b75abd"></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">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">names</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero21NamedTableNodeOptions5namesE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>the names to put in the serialized plan </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero21NamedTableNodeOptions6schemaE">
<span id="_CPPv3N5arrow5acero21NamedTableNodeOptions6schemaE"></span><span id="_CPPv2N5arrow5acero21NamedTableNodeOptions6schemaE"></span><span id="arrow::acero::NamedTableNodeOptions::schema__std::shared_ptr:Schema:"></span><span class="target" id="classarrow_1_1acero_1_1_named_table_node_options_1af40976f36f0a2b2de1839b2ee13c4e7c"></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="datatype.html#_CPPv4N5arrow6SchemaE" title="arrow::Schema"><span class="n"><span class="pre">Schema</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">schema</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero21NamedTableNodeOptions6schemaE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>the output schema of the table </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4I0EN5arrow5acero23SchemaSourceNodeOptionsE">
<span id="_CPPv3I0EN5arrow5acero23SchemaSourceNodeOptionsE"></span><span id="_CPPv2I0EN5arrow5acero23SchemaSourceNodeOptionsE"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ItMaker</span></span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="classarrow_1_1acero_1_1_schema_source_node_options"></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">SchemaSourceNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4I0EN5arrow5acero23SchemaSourceNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>a source node which feeds data from a synchronous iterator of batches </p>
<p>ItMaker is a maker of an iterator of tabular data.</p>
<p>The node can be configured to use an I/O executor. If set then each time the iterator is polled a new I/O thread task will be created to do the polling. This allows a blocking iterator to stay off the CPU thread pool. </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="_CPPv4N5arrow5acero23SchemaSourceNodeOptions23SchemaSourceNodeOptionsENSt10shared_ptrI6SchemaEE7ItMakerPN5arrow8internal8ExecutorE">
<span id="_CPPv3N5arrow5acero23SchemaSourceNodeOptions23SchemaSourceNodeOptionsENSt10shared_ptrI6SchemaEE7ItMakerPN5arrow8internal8ExecutorE"></span><span id="_CPPv2N5arrow5acero23SchemaSourceNodeOptions23SchemaSourceNodeOptionsENSt10shared_ptrI6SchemaEE7ItMakerPN5arrow8internal8ExecutorE"></span><span id="arrow::acero::SchemaSourceNodeOptions::SchemaSourceNodeOptions__std::shared_ptr:Schema:.ItMaker.arrow::internal::ExecutorP"></span><span class="target" id="classarrow_1_1acero_1_1_schema_source_node_options_1aee9e283cb877bfbc49a8bb52a6f6ec46"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SchemaSourceNodeOptions</span></span></span><span class="sig-paren">(</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="datatype.html#_CPPv4N5arrow6SchemaE" title="arrow::Schema"><span class="n"><span class="pre">Schema</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">schema</span></span>, <a class="reference internal" href="#_CPPv4I0EN5arrow5acero23SchemaSourceNodeOptionsE" title="arrow::acero::SchemaSourceNodeOptions::ItMaker"><span class="n"><span class="pre">ItMaker</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">it_maker</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">internal</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">Executor</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">io_executor</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero23SchemaSourceNodeOptions23SchemaSourceNodeOptionsENSt10shared_ptrI6SchemaEE7ItMakerPN5arrow8internal8ExecutorE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create an instance that will create a new task on io_executor for each iteration. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero23SchemaSourceNodeOptions23SchemaSourceNodeOptionsENSt10shared_ptrI6SchemaEE7ItMakerb">
<span id="_CPPv3N5arrow5acero23SchemaSourceNodeOptions23SchemaSourceNodeOptionsENSt10shared_ptrI6SchemaEE7ItMakerb"></span><span id="_CPPv2N5arrow5acero23SchemaSourceNodeOptions23SchemaSourceNodeOptionsENSt10shared_ptrI6SchemaEE7ItMakerb"></span><span id="arrow::acero::SchemaSourceNodeOptions::SchemaSourceNodeOptions__std::shared_ptr:Schema:.ItMaker.b"></span><span class="target" id="classarrow_1_1acero_1_1_schema_source_node_options_1a7d2bab733653f70a2d5830c35dad9f4e"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SchemaSourceNodeOptions</span></span></span><span class="sig-paren">(</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="datatype.html#_CPPv4N5arrow6SchemaE" title="arrow::Schema"><span class="n"><span class="pre">Schema</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">schema</span></span>, <a class="reference internal" href="#_CPPv4I0EN5arrow5acero23SchemaSourceNodeOptionsE" title="arrow::acero::SchemaSourceNodeOptions::ItMaker"><span class="n"><span class="pre">ItMaker</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">it_maker</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">requires_io</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">false</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero23SchemaSourceNodeOptions23SchemaSourceNodeOptionsENSt10shared_ptrI6SchemaEE7ItMakerb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create an instance that will either iterate synchronously or use the default I/O executor. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero23SchemaSourceNodeOptions6schemaE">
<span id="_CPPv3N5arrow5acero23SchemaSourceNodeOptions6schemaE"></span><span id="_CPPv2N5arrow5acero23SchemaSourceNodeOptions6schemaE"></span><span id="arrow::acero::SchemaSourceNodeOptions::schema__std::shared_ptr:Schema:"></span><span class="target" id="classarrow_1_1acero_1_1_schema_source_node_options_1a649c76c88b2c1eed6cbabf440a575b0a"></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="datatype.html#_CPPv4N5arrow6SchemaE" title="arrow::Schema"><span class="n"><span class="pre">Schema</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">schema</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero23SchemaSourceNodeOptions6schemaE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The schema of the record batches from the iterator. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero23SchemaSourceNodeOptions8it_makerE">
<span id="_CPPv3N5arrow5acero23SchemaSourceNodeOptions8it_makerE"></span><span id="_CPPv2N5arrow5acero23SchemaSourceNodeOptions8it_makerE"></span><span id="arrow::acero::SchemaSourceNodeOptions::it_maker__ItMaker"></span><span class="target" id="classarrow_1_1acero_1_1_schema_source_node_options_1a15cf5b625a2ea4fce384bd83cc3f96ce"></span><a class="reference internal" href="#_CPPv4I0EN5arrow5acero23SchemaSourceNodeOptionsE" title="arrow::acero::SchemaSourceNodeOptions::ItMaker"><span class="n"><span class="pre">ItMaker</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">it_maker</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero23SchemaSourceNodeOptions8it_makerE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>A maker of an iterator which acts as the data source. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero23SchemaSourceNodeOptions11io_executorE">
<span id="_CPPv3N5arrow5acero23SchemaSourceNodeOptions11io_executorE"></span><span id="_CPPv2N5arrow5acero23SchemaSourceNodeOptions11io_executorE"></span><span id="arrow::acero::SchemaSourceNodeOptions::io_executor__arrow::internal::ExecutorP"></span><span class="target" id="classarrow_1_1acero_1_1_schema_source_node_options_1ab9a1aa35c094dc5dc1d1f8476266ecaa"></span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">internal</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">Executor</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">io_executor</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero23SchemaSourceNodeOptions11io_executorE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The executor to use for scanning the iterator. </p>
<p>Defaults to the default I/O executor. Only used if requires_io is true. If requires_io is false then this MUST be nullptr. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero23SchemaSourceNodeOptions11requires_ioE">
<span id="_CPPv3N5arrow5acero23SchemaSourceNodeOptions11requires_ioE"></span><span id="_CPPv2N5arrow5acero23SchemaSourceNodeOptions11requires_ioE"></span><span id="arrow::acero::SchemaSourceNodeOptions::requires_io__b"></span><span class="target" id="classarrow_1_1acero_1_1_schema_source_node_options_1a5a31f963a1b01022d0d6966b567b849c"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">requires_io</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero23SchemaSourceNodeOptions11requires_ioE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>If true then items will be fetched from the iterator on a dedicated I/O thread to keep I/O off the CPU thread. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero34RecordBatchReaderSourceNodeOptionsE">
<span id="_CPPv3N5arrow5acero34RecordBatchReaderSourceNodeOptionsE"></span><span id="_CPPv2N5arrow5acero34RecordBatchReaderSourceNodeOptionsE"></span><span id="arrow::acero::RecordBatchReaderSourceNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_record_batch_reader_source_node_options"></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">RecordBatchReaderSourceNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero34RecordBatchReaderSourceNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>a source node that reads from a <a class="reference internal" href="table.html#classarrow_1_1_record_batch_reader"><span class="std std-ref">RecordBatchReader</span></a></p>
<p>Each iteration of the <a class="reference internal" href="table.html#classarrow_1_1_record_batch_reader"><span class="std std-ref">RecordBatchReader</span></a> will be run on a new thread task created on the I/O thread pool. </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="_CPPv4N5arrow5acero34RecordBatchReaderSourceNodeOptions34RecordBatchReaderSourceNodeOptionsENSt10shared_ptrI17RecordBatchReaderEEPN5arrow8internal8ExecutorE">
<span id="_CPPv3N5arrow5acero34RecordBatchReaderSourceNodeOptions34RecordBatchReaderSourceNodeOptionsENSt10shared_ptrI17RecordBatchReaderEEPN5arrow8internal8ExecutorE"></span><span id="_CPPv2N5arrow5acero34RecordBatchReaderSourceNodeOptions34RecordBatchReaderSourceNodeOptionsENSt10shared_ptrI17RecordBatchReaderEEPN5arrow8internal8ExecutorE"></span><span id="arrow::acero::RecordBatchReaderSourceNodeOptions::RecordBatchReaderSourceNodeOptions__std::shared_ptr:RecordBatchReader:.arrow::internal::ExecutorP"></span><span class="target" id="classarrow_1_1acero_1_1_record_batch_reader_source_node_options_1a8c68b0631e8d6bb6d5e5d9e29320b744"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">RecordBatchReaderSourceNodeOptions</span></span></span><span class="sig-paren">(</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="table.html#_CPPv4N5arrow17RecordBatchReaderE" title="arrow::RecordBatchReader"><span class="n"><span class="pre">RecordBatchReader</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">reader</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">internal</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">Executor</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">io_executor</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero34RecordBatchReaderSourceNodeOptions34RecordBatchReaderSourceNodeOptionsENSt10shared_ptrI17RecordBatchReaderEEPN5arrow8internal8ExecutorE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create an instance from values. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero34RecordBatchReaderSourceNodeOptions6readerE">
<span id="_CPPv3N5arrow5acero34RecordBatchReaderSourceNodeOptions6readerE"></span><span id="_CPPv2N5arrow5acero34RecordBatchReaderSourceNodeOptions6readerE"></span><span id="arrow::acero::RecordBatchReaderSourceNodeOptions::reader__std::shared_ptr:RecordBatchReader:"></span><span class="target" id="classarrow_1_1acero_1_1_record_batch_reader_source_node_options_1afce0267c46a73605567c4bec31c5a927"></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="table.html#_CPPv4N5arrow17RecordBatchReaderE" title="arrow::RecordBatchReader"><span class="n"><span class="pre">RecordBatchReader</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">reader</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero34RecordBatchReaderSourceNodeOptions6readerE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The <a class="reference internal" href="table.html#classarrow_1_1_record_batch_reader"><span class="std std-ref">RecordBatchReader</span></a> which acts as the data source. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero34RecordBatchReaderSourceNodeOptions11io_executorE">
<span id="_CPPv3N5arrow5acero34RecordBatchReaderSourceNodeOptions11io_executorE"></span><span id="_CPPv2N5arrow5acero34RecordBatchReaderSourceNodeOptions11io_executorE"></span><span id="arrow::acero::RecordBatchReaderSourceNodeOptions::io_executor__arrow::internal::ExecutorP"></span><span class="target" id="classarrow_1_1acero_1_1_record_batch_reader_source_node_options_1a0463feecd4b30843f0722cb587336487"></span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">internal</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">Executor</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">io_executor</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero34RecordBatchReaderSourceNodeOptions11io_executorE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The executor to use for the reader. </p>
<p>Defaults to the default I/O executor. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero28ArrayVectorSourceNodeOptionsE">
<span id="_CPPv3N5arrow5acero28ArrayVectorSourceNodeOptionsE"></span><span id="_CPPv2N5arrow5acero28ArrayVectorSourceNodeOptionsE"></span><span id="arrow::acero::ArrayVectorSourceNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_array_vector_source_node_options"></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">ArrayVectorSourceNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4I0EN5arrow5acero23SchemaSourceNodeOptionsE" title="arrow::acero::SchemaSourceNodeOptions"><span class="n"><span class="pre">SchemaSourceNodeOptions</span></span></a><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv424ArrayVectorIteratorMaker" title="ArrayVectorIteratorMaker"><span class="n"><span class="pre">ArrayVectorIteratorMaker</span></span></a><span class="p"><span class="pre">&gt;</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero28ArrayVectorSourceNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>An extended Source node which accepts a schema and array-vectors. </p>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero26ExecBatchSourceNodeOptionsE">
<span id="_CPPv3N5arrow5acero26ExecBatchSourceNodeOptionsE"></span><span id="_CPPv2N5arrow5acero26ExecBatchSourceNodeOptionsE"></span><span id="arrow::acero::ExecBatchSourceNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_exec_batch_source_node_options"></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">ExecBatchSourceNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4I0EN5arrow5acero23SchemaSourceNodeOptionsE" title="arrow::acero::SchemaSourceNodeOptions"><span class="n"><span class="pre">SchemaSourceNodeOptions</span></span></a><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv422ExecBatchIteratorMaker" title="ExecBatchIteratorMaker"><span class="n"><span class="pre">ExecBatchIteratorMaker</span></span></a><span class="p"><span class="pre">&gt;</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero26ExecBatchSourceNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>An extended Source node which accepts a schema and exec-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="_CPPv4N5arrow5acero26ExecBatchSourceNodeOptions26ExecBatchSourceNodeOptionsENSt10shared_ptrI6SchemaEENSt6vectorI9ExecBatchEEPN5arrow8internal8ExecutorE">
<span id="_CPPv3N5arrow5acero26ExecBatchSourceNodeOptions26ExecBatchSourceNodeOptionsENSt10shared_ptrI6SchemaEENSt6vectorI9ExecBatchEEPN5arrow8internal8ExecutorE"></span><span id="_CPPv2N5arrow5acero26ExecBatchSourceNodeOptions26ExecBatchSourceNodeOptionsENSt10shared_ptrI6SchemaEENSt6vectorI9ExecBatchEEPN5arrow8internal8ExecutorE"></span><span id="arrow::acero::ExecBatchSourceNodeOptions::ExecBatchSourceNodeOptions__std::shared_ptr:Schema:.std::vector:ExecBatch:.arrow::internal::ExecutorP"></span><span class="target" id="classarrow_1_1acero_1_1_exec_batch_source_node_options_1a648161e5725bb2ee2380ba6a3b6563a2"></span><span class="sig-name descname"><span class="n"><span class="pre">ExecBatchSourceNodeOptions</span></span></span><span class="sig-paren">(</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="datatype.html#_CPPv4N5arrow6SchemaE" title="arrow::Schema"><span class="n"><span class="pre">Schema</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">schema</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">ExecBatch</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">batches</span></span>, <span class="p"><span class="pre">::</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">internal</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">Executor</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">io_executor</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero26ExecBatchSourceNodeOptions26ExecBatchSourceNodeOptionsENSt10shared_ptrI6SchemaEENSt6vectorI9ExecBatchEEPN5arrow8internal8ExecutorE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero26ExecBatchSourceNodeOptions26ExecBatchSourceNodeOptionsENSt10shared_ptrI6SchemaEENSt6vectorI9ExecBatchEEb">
<span id="_CPPv3N5arrow5acero26ExecBatchSourceNodeOptions26ExecBatchSourceNodeOptionsENSt10shared_ptrI6SchemaEENSt6vectorI9ExecBatchEEb"></span><span id="_CPPv2N5arrow5acero26ExecBatchSourceNodeOptions26ExecBatchSourceNodeOptionsENSt10shared_ptrI6SchemaEENSt6vectorI9ExecBatchEEb"></span><span id="arrow::acero::ExecBatchSourceNodeOptions::ExecBatchSourceNodeOptions__std::shared_ptr:Schema:.std::vector:ExecBatch:.b"></span><span class="target" id="classarrow_1_1acero_1_1_exec_batch_source_node_options_1a372e7c7a19e745cbac768bc351bdcb01"></span><span class="sig-name descname"><span class="n"><span class="pre">ExecBatchSourceNodeOptions</span></span></span><span class="sig-paren">(</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="datatype.html#_CPPv4N5arrow6SchemaE" title="arrow::Schema"><span class="n"><span class="pre">Schema</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">schema</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">ExecBatch</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">batches</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">requires_io</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">false</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero26ExecBatchSourceNodeOptions26ExecBatchSourceNodeOptionsENSt10shared_ptrI6SchemaEENSt6vectorI9ExecBatchEEb" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero26ExecBatchSourceNodeOptions23SchemaSourceNodeOptionsENSt10shared_ptrI6SchemaEE7ItMakerPN5arrow8internal8ExecutorE">
<span id="_CPPv3N5arrow5acero26ExecBatchSourceNodeOptions23SchemaSourceNodeOptionsENSt10shared_ptrI6SchemaEE7ItMakerPN5arrow8internal8ExecutorE"></span><span id="_CPPv2N5arrow5acero26ExecBatchSourceNodeOptions23SchemaSourceNodeOptionsENSt10shared_ptrI6SchemaEE7ItMakerPN5arrow8internal8ExecutorE"></span><span id="arrow::acero::ExecBatchSourceNodeOptions::SchemaSourceNodeOptions__std::shared_ptr:Schema:.ItMaker.arrow::internal::ExecutorP"></span><span class="target" id="classarrow_1_1acero_1_1_exec_batch_source_node_options_1aee9e283cb877bfbc49a8bb52a6f6ec46"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SchemaSourceNodeOptions</span></span></span><span class="sig-paren">(</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="datatype.html#_CPPv4N5arrow6SchemaE" title="arrow::Schema"><span class="n"><span class="pre">Schema</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">schema</span></span>, <span class="n"><span class="pre">ItMaker</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">it_maker</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">internal</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">Executor</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">io_executor</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero26ExecBatchSourceNodeOptions23SchemaSourceNodeOptionsENSt10shared_ptrI6SchemaEE7ItMakerPN5arrow8internal8ExecutorE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create an instance that will create a new task on io_executor for each iteration. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero26ExecBatchSourceNodeOptions23SchemaSourceNodeOptionsENSt10shared_ptrI6SchemaEE7ItMakerb">
<span id="_CPPv3N5arrow5acero26ExecBatchSourceNodeOptions23SchemaSourceNodeOptionsENSt10shared_ptrI6SchemaEE7ItMakerb"></span><span id="_CPPv2N5arrow5acero26ExecBatchSourceNodeOptions23SchemaSourceNodeOptionsENSt10shared_ptrI6SchemaEE7ItMakerb"></span><span id="arrow::acero::ExecBatchSourceNodeOptions::SchemaSourceNodeOptions__std::shared_ptr:Schema:.ItMaker.b"></span><span class="target" id="classarrow_1_1acero_1_1_exec_batch_source_node_options_1a7d2bab733653f70a2d5830c35dad9f4e"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SchemaSourceNodeOptions</span></span></span><span class="sig-paren">(</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="datatype.html#_CPPv4N5arrow6SchemaE" title="arrow::Schema"><span class="n"><span class="pre">Schema</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">schema</span></span>, <span class="n"><span class="pre">ItMaker</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">it_maker</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">requires_io</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">false</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero26ExecBatchSourceNodeOptions23SchemaSourceNodeOptionsENSt10shared_ptrI6SchemaEE7ItMakerb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create an instance that will either iterate synchronously or use the default I/O executor. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero28RecordBatchSourceNodeOptionsE">
<span id="_CPPv3N5arrow5acero28RecordBatchSourceNodeOptionsE"></span><span id="_CPPv2N5arrow5acero28RecordBatchSourceNodeOptionsE"></span><span id="arrow::acero::RecordBatchSourceNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_record_batch_source_node_options"></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">RecordBatchSourceNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4I0EN5arrow5acero23SchemaSourceNodeOptionsE" title="arrow::acero::SchemaSourceNodeOptions"><span class="n"><span class="pre">SchemaSourceNodeOptions</span></span></a><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv424RecordBatchIteratorMaker" title="RecordBatchIteratorMaker"><span class="n"><span class="pre">RecordBatchIteratorMaker</span></span></a><span class="p"><span class="pre">&gt;</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero28RecordBatchSourceNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>a source node that reads from an iterator of <a class="reference internal" href="table.html#classarrow_1_1_record_batch"><span class="std std-ref">RecordBatch</span></a></p>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero17FilterNodeOptionsE">
<span id="_CPPv3N5arrow5acero17FilterNodeOptionsE"></span><span id="_CPPv2N5arrow5acero17FilterNodeOptionsE"></span><span id="arrow::acero::FilterNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_filter_node_options"></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">FilterNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero17FilterNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>a node which excludes some rows from batches passed through it </p>
<p>filter_expression will be evaluated against each batch which is pushed to this node. Any rows for which filter_expression does not evaluate to <code class="docutils literal notranslate"><span class="pre">true</span></code> will be excluded in the batch emitted by this node.</p>
<p>This node will emit empty batches if all rows are excluded. This is done to avoid gaps in the ordering. </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="_CPPv4N5arrow5acero17FilterNodeOptions17FilterNodeOptionsE10Expression">
<span id="_CPPv3N5arrow5acero17FilterNodeOptions17FilterNodeOptionsE10Expression"></span><span id="_CPPv2N5arrow5acero17FilterNodeOptions17FilterNodeOptionsE10Expression"></span><span id="arrow::acero::FilterNodeOptions::FilterNodeOptions__Expression"></span><span class="target" id="classarrow_1_1acero_1_1_filter_node_options_1a7269d35b9aa9778ec9317878ea5dd47d"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FilterNodeOptions</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Expression</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">filter_expression</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero17FilterNodeOptions17FilterNodeOptionsE10Expression" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create an instance from values </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero17FilterNodeOptions17filter_expressionE">
<span id="_CPPv3N5arrow5acero17FilterNodeOptions17filter_expressionE"></span><span id="_CPPv2N5arrow5acero17FilterNodeOptions17filter_expressionE"></span><span id="arrow::acero::FilterNodeOptions::filter_expression__Expression"></span><span class="target" id="classarrow_1_1acero_1_1_filter_node_options_1ade000ab3007079ad8f8909f1e16cf92c"></span><span class="n"><span class="pre">Expression</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">filter_expression</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero17FilterNodeOptions17filter_expressionE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>the expression to filter batches </p>
<p>The return type of this expression must be boolean </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero16FetchNodeOptionsE">
<span id="_CPPv3N5arrow5acero16FetchNodeOptionsE"></span><span id="_CPPv2N5arrow5acero16FetchNodeOptionsE"></span><span id="arrow::acero::FetchNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_fetch_node_options"></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">FetchNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero16FetchNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>a node which selects a specified subset from the input </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="_CPPv4N5arrow5acero16FetchNodeOptions16FetchNodeOptionsE7int64_t7int64_t">
<span id="_CPPv3N5arrow5acero16FetchNodeOptions16FetchNodeOptionsE7int64_t7int64_t"></span><span id="_CPPv2N5arrow5acero16FetchNodeOptions16FetchNodeOptionsE7int64_t7int64_t"></span><span id="arrow::acero::FetchNodeOptions::FetchNodeOptions__int64_t.int64_t"></span><span class="target" id="classarrow_1_1acero_1_1_fetch_node_options_1aab906bf394380036d5c44f8716900304"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FetchNodeOptions</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">offset</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">count</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero16FetchNodeOptions16FetchNodeOptionsE7int64_t7int64_t" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create an instance from values </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero16FetchNodeOptions6offsetE">
<span id="_CPPv3N5arrow5acero16FetchNodeOptions6offsetE"></span><span id="_CPPv2N5arrow5acero16FetchNodeOptions6offsetE"></span><span id="arrow::acero::FetchNodeOptions::offset__int64_t"></span><span class="target" id="classarrow_1_1acero_1_1_fetch_node_options_1a53ffa0c72e7eec66f6d5265293ef694d"></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">offset</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero16FetchNodeOptions6offsetE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>the number of rows to skip </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero16FetchNodeOptions5countE">
<span id="_CPPv3N5arrow5acero16FetchNodeOptions5countE"></span><span id="_CPPv2N5arrow5acero16FetchNodeOptions5countE"></span><span id="arrow::acero::FetchNodeOptions::count__int64_t"></span><span class="target" id="classarrow_1_1acero_1_1_fetch_node_options_1a304fd0969bd88132476528ac4b029e60"></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">count</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero16FetchNodeOptions5countE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>the number of rows to keep (not counting skipped rows) </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-attributes">Public Static Attributes</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero16FetchNodeOptions5kNameE">
<span id="_CPPv3N5arrow5acero16FetchNodeOptions5kNameE"></span><span id="_CPPv2N5arrow5acero16FetchNodeOptions5kNameE"></span><span id="arrow::acero::FetchNodeOptions::kName__std::string_view"></span><span class="target" id="classarrow_1_1acero_1_1_fetch_node_options_1a9c8e59a79d1b848e5ad63eed0b9c5040"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">constexpr</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_view</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">kName</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="s"><span class="pre">&quot;fetch&quot;</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero16FetchNodeOptions5kNameE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero18ProjectNodeOptionsE">
<span id="_CPPv3N5arrow5acero18ProjectNodeOptionsE"></span><span id="_CPPv2N5arrow5acero18ProjectNodeOptionsE"></span><span id="arrow::acero::ProjectNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_project_node_options"></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">ProjectNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero18ProjectNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>a node which executes expressions on input batches, producing batches of the same length with new columns. </p>
<p>Each expression will be evaluated against each batch which is pushed to this node to produce a corresponding output column.</p>
<p>If names are not provided, the string representations of exprs will be used. </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="_CPPv4N5arrow5acero18ProjectNodeOptions18ProjectNodeOptionsENSt6vectorI10ExpressionEENSt6vectorINSt6stringEEE">
<span id="_CPPv3N5arrow5acero18ProjectNodeOptions18ProjectNodeOptionsENSt6vectorI10ExpressionEENSt6vectorINSt6stringEEE"></span><span id="_CPPv2N5arrow5acero18ProjectNodeOptions18ProjectNodeOptionsENSt6vectorI10ExpressionEENSt6vectorINSt6stringEEE"></span><span id="arrow::acero::ProjectNodeOptions::ProjectNodeOptions__std::vector:Expression:.std::vector:ss:"></span><span class="target" id="classarrow_1_1acero_1_1_project_node_options_1a13666ea32030cd4e9bf217995e740f76"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ProjectNodeOptions</span></span></span><span class="sig-paren">(</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">Expression</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">expressions</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">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">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">names</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="p"><span class="pre">{</span></span><span class="p"><span class="pre">}</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero18ProjectNodeOptions18ProjectNodeOptionsENSt6vectorI10ExpressionEENSt6vectorINSt6stringEEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create an instance from values </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero18ProjectNodeOptions11expressionsE">
<span id="_CPPv3N5arrow5acero18ProjectNodeOptions11expressionsE"></span><span id="_CPPv2N5arrow5acero18ProjectNodeOptions11expressionsE"></span><span id="arrow::acero::ProjectNodeOptions::expressions__std::vector:Expression:"></span><span class="target" id="classarrow_1_1acero_1_1_project_node_options_1ad1d9d1b8202474029c0baf223d672f43"></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">Expression</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">expressions</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero18ProjectNodeOptions11expressionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>the expressions to run on the batches </p>
<p>The output will have one column for each expression. If you wish to keep any of the columns from the input then you should create a simple field_ref expression for that column. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero18ProjectNodeOptions5namesE">
<span id="_CPPv3N5arrow5acero18ProjectNodeOptions5namesE"></span><span id="_CPPv2N5arrow5acero18ProjectNodeOptions5namesE"></span><span id="arrow::acero::ProjectNodeOptions::names__std::vector:ss:"></span><span class="target" id="classarrow_1_1acero_1_1_project_node_options_1a7fedccaa43d1ac7dad04ecac3f6e6dfb"></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">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">names</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero18ProjectNodeOptions5namesE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>the names of the output columns </p>
<p>If this is not specified then the result of calling ToString on the expression will be used instead</p>
<p>This list should either be empty or have the same length as <code class="docutils literal notranslate"><span class="pre">expressions</span></code></p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero20AggregateNodeOptionsE">
<span id="_CPPv3N5arrow5acero20AggregateNodeOptionsE"></span><span id="_CPPv2N5arrow5acero20AggregateNodeOptionsE"></span><span id="arrow::acero::AggregateNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_aggregate_node_options"></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">AggregateNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero20AggregateNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>a node which aggregates input batches and calculates summary statistics </p>
<p>The node can summarize the entire input or it can group the input with grouping keys and segment keys.</p>
<p>By default, the aggregate node is a pipeline breaker. It must accumulate all input before any output is produced. Segment keys are a performance optimization. If you know your input is already partitioned by one or more columns then you can specify these as segment keys. At each change in the segment keys the node will emit values for all data seen so far.</p>
<p>Segment keys are currently limited to single-threaded mode.</p>
<p>Both keys and segment-keys determine the group. However segment-keys are also used for determining grouping segments, which should be large, and allow streaming a partial aggregation result after processing each segment. One common use-case for segment-keys is ordered aggregation, in which the segment-key attribute specifies a column with non-decreasing values or a lexicographically-ordered set of such columns.</p>
<p>If the keys attribute is a non-empty vector, then each aggregate in <code class="docutils literal notranslate"><span class="pre">aggregates</span></code> is expected to be a HashAggregate function. If the keys attribute is an empty vector, then each aggregate is assumed to be a ScalarAggregate function.</p>
<p>If the segment_keys attribute is a non-empty vector, then segmented aggregation, as described above, applies.</p>
<p>The keys and segment_keys vectors must be disjoint.</p>
<p>If no measures are provided then you will simply get the list of unique keys.</p>
<p>This node outputs segment keys first, followed by regular keys, followed by one column for each aggregate. </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="_CPPv4N5arrow5acero20AggregateNodeOptions20AggregateNodeOptionsENSt6vectorI9AggregateEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEE">
<span id="_CPPv3N5arrow5acero20AggregateNodeOptions20AggregateNodeOptionsENSt6vectorI9AggregateEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEE"></span><span id="_CPPv2N5arrow5acero20AggregateNodeOptions20AggregateNodeOptionsENSt6vectorI9AggregateEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEE"></span><span id="arrow::acero::AggregateNodeOptions::AggregateNodeOptions__std::vector:Aggregate:.std::vector:FieldRef:.std::vector:FieldRef:"></span><span class="target" id="classarrow_1_1acero_1_1_aggregate_node_options_1ad8cb25db658547fa795f89954e0e0550"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">AggregateNodeOptions</span></span></span><span class="sig-paren">(</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">Aggregate</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">aggregates</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">keys</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="p"><span class="pre">{</span></span><span class="p"><span class="pre">}</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">segment_keys</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="p"><span class="pre">{</span></span><span class="p"><span class="pre">}</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero20AggregateNodeOptions20AggregateNodeOptionsENSt6vectorI9AggregateEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create an instance from values </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero20AggregateNodeOptions10aggregatesE">
<span id="_CPPv3N5arrow5acero20AggregateNodeOptions10aggregatesE"></span><span id="_CPPv2N5arrow5acero20AggregateNodeOptions10aggregatesE"></span><span id="arrow::acero::AggregateNodeOptions::aggregates__std::vector:Aggregate:"></span><span class="target" id="classarrow_1_1acero_1_1_aggregate_node_options_1a30d0747e2d8a37a6f45067702f62c6d8"></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">Aggregate</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">aggregates</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero20AggregateNodeOptions10aggregatesE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero20AggregateNodeOptions4keysE">
<span id="_CPPv3N5arrow5acero20AggregateNodeOptions4keysE"></span><span id="_CPPv2N5arrow5acero20AggregateNodeOptions4keysE"></span><span id="arrow::acero::AggregateNodeOptions::keys__std::vector:FieldRef:"></span><span class="target" id="classarrow_1_1acero_1_1_aggregate_node_options_1a20337eb2cc29fb2be1009322c235537d"></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><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">keys</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero20AggregateNodeOptions4keysE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero20AggregateNodeOptions12segment_keysE">
<span id="_CPPv3N5arrow5acero20AggregateNodeOptions12segment_keysE"></span><span id="_CPPv2N5arrow5acero20AggregateNodeOptions12segment_keysE"></span><span id="arrow::acero::AggregateNodeOptions::segment_keys__std::vector:FieldRef:"></span><span class="target" id="classarrow_1_1acero_1_1_aggregate_node_options_1a0b54339b1cc90b5dc27b3e0226d0868b"></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><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">segment_keys</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero20AggregateNodeOptions12segment_keysE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19BackpressureMonitorE">
<span id="_CPPv3N5arrow5acero19BackpressureMonitorE"></span><span id="_CPPv2N5arrow5acero19BackpressureMonitorE"></span><span id="arrow::acero::BackpressureMonitor"></span><span class="target" id="classarrow_1_1acero_1_1_backpressure_monitor"></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">BackpressureMonitor</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19BackpressureMonitorE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>an interface that can be queried for backpressure statistics </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="_CPPv4N5arrow5acero19BackpressureMonitorD0Ev">
<span id="_CPPv3N5arrow5acero19BackpressureMonitorD0Ev"></span><span id="_CPPv2N5arrow5acero19BackpressureMonitorD0Ev"></span><span id="arrow::acero::BackpressureMonitor::~BackpressureMonitor"></span><span class="target" id="classarrow_1_1acero_1_1_backpressure_monitor_1ae1cdbcfa7f042addd60d780110174872"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">~BackpressureMonitor</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">default</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19BackpressureMonitorD0Ev" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19BackpressureMonitor12bytes_in_useEv">
<span id="_CPPv3N5arrow5acero19BackpressureMonitor12bytes_in_useEv"></span><span id="_CPPv2N5arrow5acero19BackpressureMonitor12bytes_in_useEv"></span><span id="arrow::acero::BackpressureMonitor::bytes_in_use"></span><span class="target" id="classarrow_1_1acero_1_1_backpressure_monitor_1a842f92861dc3ea0f4edd451c0bb5744d"></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">bytes_in_use</span></span></span><span class="sig-paren">(</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="#_CPPv4N5arrow5acero19BackpressureMonitor12bytes_in_useEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>fetches the number of bytes currently queued up </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19BackpressureMonitor9is_pausedEv">
<span id="_CPPv3N5arrow5acero19BackpressureMonitor9is_pausedEv"></span><span id="_CPPv2N5arrow5acero19BackpressureMonitor9is_pausedEv"></span><span id="arrow::acero::BackpressureMonitor::is_paused"></span><span class="target" id="classarrow_1_1acero_1_1_backpressure_monitor_1a0aebf08feb335b19eb3799320b3dc8ad"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">is_paused</span></span></span><span class="sig-paren">(</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="#_CPPv4N5arrow5acero19BackpressureMonitor9is_pausedEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>checks to see if backpressure is currently applied </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19BackpressureOptionsE">
<span id="_CPPv3N5arrow5acero19BackpressureOptionsE"></span><span id="_CPPv2N5arrow5acero19BackpressureOptionsE"></span><span id="arrow::acero::BackpressureOptions"></span><span class="target" id="structarrow_1_1acero_1_1_backpressure_options"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">BackpressureOptions</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19BackpressureOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>Options to control backpressure behavior. </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="_CPPv4N5arrow5acero19BackpressureOptions19BackpressureOptionsEv">
<span id="_CPPv3N5arrow5acero19BackpressureOptions19BackpressureOptionsEv"></span><span id="_CPPv2N5arrow5acero19BackpressureOptions19BackpressureOptionsEv"></span><span id="arrow::acero::BackpressureOptions::BackpressureOptions"></span><span class="target" id="structarrow_1_1acero_1_1_backpressure_options_1a64a373575cc9d476c7cd97119def79cb"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">BackpressureOptions</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero19BackpressureOptions19BackpressureOptionsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create default options that perform no backpressure. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19BackpressureOptions19BackpressureOptionsE8uint64_t8uint64_t">
<span id="_CPPv3N5arrow5acero19BackpressureOptions19BackpressureOptionsE8uint64_t8uint64_t"></span><span id="_CPPv2N5arrow5acero19BackpressureOptions19BackpressureOptionsE8uint64_t8uint64_t"></span><span id="arrow::acero::BackpressureOptions::BackpressureOptions__uint64_t.uint64_t"></span><span class="target" id="structarrow_1_1acero_1_1_backpressure_options_1afcca0c59175fdedd83b25521947c0e17"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">BackpressureOptions</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">resume_if_below</span></span>, <span class="n"><span class="pre">uint64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">pause_if_above</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero19BackpressureOptions19BackpressureOptionsE8uint64_t8uint64_t" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create options that will perform backpressure. </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>resume_if_below</strong> – The producer should resume producing if the backpressure queue has fewer than resume_if_below items. </p></li>
<li><p><strong>pause_if_above</strong> – The producer should pause producing if the backpressure queue has more than pause_if_above items </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero19BackpressureOptions25should_apply_backpressureEv">
<span id="_CPPv3NK5arrow5acero19BackpressureOptions25should_apply_backpressureEv"></span><span id="_CPPv2NK5arrow5acero19BackpressureOptions25should_apply_backpressureEv"></span><span id="arrow::acero::BackpressureOptions::should_apply_backpressureC"></span><span class="target" id="structarrow_1_1acero_1_1_backpressure_options_1ad02d1a1638995e2130f76ecace73f94c"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">should_apply_backpressure</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="#_CPPv4NK5arrow5acero19BackpressureOptions25should_apply_backpressureEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>helper method to determine if backpressure is disabled </p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>true if pause_if_above is greater than zero, false otherwise </p>
</dd>
</dl>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19BackpressureOptions15resume_if_belowE">
<span id="_CPPv3N5arrow5acero19BackpressureOptions15resume_if_belowE"></span><span id="_CPPv2N5arrow5acero19BackpressureOptions15resume_if_belowE"></span><span id="arrow::acero::BackpressureOptions::resume_if_below__uint64_t"></span><span class="target" id="structarrow_1_1acero_1_1_backpressure_options_1a4ee35d94421ae2f5e6dd08f9660eceb2"></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">resume_if_below</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19BackpressureOptions15resume_if_belowE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>the number of bytes at which the producer should resume producing </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19BackpressureOptions14pause_if_aboveE">
<span id="_CPPv3N5arrow5acero19BackpressureOptions14pause_if_aboveE"></span><span id="_CPPv2N5arrow5acero19BackpressureOptions14pause_if_aboveE"></span><span id="arrow::acero::BackpressureOptions::pause_if_above__uint64_t"></span><span class="target" id="structarrow_1_1acero_1_1_backpressure_options_1a4f8392671e94c906899fa407e2b8a36c"></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">pause_if_above</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19BackpressureOptions14pause_if_aboveE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>the number of bytes at which the producer should pause producing </p>
<p>If this is &lt;= 0 then backpressure will be disabled </p>
</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="_CPPv4N5arrow5acero19BackpressureOptions19DefaultBackpressureEv">
<span id="_CPPv3N5arrow5acero19BackpressureOptions19DefaultBackpressureEv"></span><span id="_CPPv2N5arrow5acero19BackpressureOptions19DefaultBackpressureEv"></span><span id="arrow::acero::BackpressureOptions::DefaultBackpressure"></span><span class="target" id="structarrow_1_1acero_1_1_backpressure_options_1a8deae298d649ba1b8a9c158eac9cdc7b"></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><a class="reference internal" href="#_CPPv4N5arrow5acero19BackpressureOptionsE" title="arrow::acero::BackpressureOptions"><span class="n"><span class="pre">BackpressureOptions</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DefaultBackpressure</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero19BackpressureOptions19DefaultBackpressureEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create an instance using default values for backpressure limits </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero15SinkNodeOptionsE">
<span id="_CPPv3N5arrow5acero15SinkNodeOptionsE"></span><span id="_CPPv2N5arrow5acero15SinkNodeOptionsE"></span><span id="arrow::acero::SinkNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_sink_node_options"></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">SinkNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero15SinkNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>a sink node which collects results in a queue </p>
<p>Emitted batches will only be ordered if there is a meaningful ordering and sequence_output is not set to false. </p>
<p>Subclassed by <a class="reference internal" href="#classarrow_1_1acero_1_1_order_by_sink_node_options"><span class="std std-ref">arrow::acero::OrderBySinkNodeOptions</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_select_k_sink_node_options"><span class="std std-ref">arrow::acero::SelectKSinkNodeOptions</span></a></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="_CPPv4N5arrow5acero15SinkNodeOptions15SinkNodeOptionsEPNSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEEPNSt10shared_ptrI6SchemaEE19BackpressureOptionsPP19BackpressureMonitorNSt8optionalIbEE">
<span id="_CPPv3N5arrow5acero15SinkNodeOptions15SinkNodeOptionsEPNSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEEPNSt10shared_ptrI6SchemaEE19BackpressureOptionsPP19BackpressureMonitorNSt8optionalIbEE"></span><span id="_CPPv2N5arrow5acero15SinkNodeOptions15SinkNodeOptionsEPNSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEEPNSt10shared_ptrI6SchemaEE19BackpressureOptionsPP19BackpressureMonitorNSt8optionalIbEE"></span><span class="target" id="classarrow_1_1acero_1_1_sink_node_options_1ae74fdf3907487e8341314065f4d9bc69"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SinkNodeOptions</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">function</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><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">optional</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">ExecBatch</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><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">generator</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="datatype.html#_CPPv4N5arrow6SchemaE" title="arrow::Schema"><span class="n"><span class="pre">Schema</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">schema</span></span>, <a class="reference internal" href="#_CPPv4N5arrow5acero19BackpressureOptionsE" title="arrow::acero::BackpressureOptions"><span class="n"><span class="pre">BackpressureOptions</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">backpressure</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="p"><span class="pre">{</span></span><span class="p"><span class="pre">}</span></span>, <a class="reference internal" href="#_CPPv4N5arrow5acero19BackpressureMonitorE" title="arrow::acero::BackpressureMonitor"><span class="n"><span class="pre">BackpressureMonitor</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">backpressure_monitor</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</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">optional</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">bool</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">sequence_output</span></span><span class="w"> </span><span class="p"><span class="pre">=</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">nullopt</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero15SinkNodeOptions15SinkNodeOptionsEPNSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEEPNSt10shared_ptrI6SchemaEE19BackpressureOptionsPP19BackpressureMonitorNSt8optionalIbEE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero15SinkNodeOptions15SinkNodeOptionsEPNSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEE19BackpressureOptionsPP19BackpressureMonitorNSt8optionalIbEE">
<span id="_CPPv3N5arrow5acero15SinkNodeOptions15SinkNodeOptionsEPNSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEE19BackpressureOptionsPP19BackpressureMonitorNSt8optionalIbEE"></span><span id="_CPPv2N5arrow5acero15SinkNodeOptions15SinkNodeOptionsEPNSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEE19BackpressureOptionsPP19BackpressureMonitorNSt8optionalIbEE"></span><span class="target" id="classarrow_1_1acero_1_1_sink_node_options_1a9ba5e74be3c93e3fbdbfd052ce560533"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SinkNodeOptions</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">function</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><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">optional</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">ExecBatch</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><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">generator</span></span>, <a class="reference internal" href="#_CPPv4N5arrow5acero19BackpressureOptionsE" title="arrow::acero::BackpressureOptions"><span class="n"><span class="pre">BackpressureOptions</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">backpressure</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="p"><span class="pre">{</span></span><span class="p"><span class="pre">}</span></span>, <a class="reference internal" href="#_CPPv4N5arrow5acero19BackpressureMonitorE" title="arrow::acero::BackpressureMonitor"><span class="n"><span class="pre">BackpressureMonitor</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">backpressure_monitor</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</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">optional</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">bool</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">sequence_output</span></span><span class="w"> </span><span class="p"><span class="pre">=</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">nullopt</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero15SinkNodeOptions15SinkNodeOptionsEPNSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEE19BackpressureOptionsPP19BackpressureMonitorNSt8optionalIbEE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp">
<span class="target" id="classarrow_1_1acero_1_1_sink_node_options_1a481d9f94f33ae90f85253d3e031d5c0e"></span><span class="sig-name descname"><span class="pre">std::function&lt;</span> <span class="pre">Future&lt;</span> <span class="pre">std::optional&lt;</span> <span class="pre">ExecBatch</span> <span class="pre">&gt;</span> <span class="pre">&gt;)&gt;</span> <span class="pre">*</span> <span class="pre">generator</span></span></dt>
<dd><p>A pointer to a generator of batches. </p>
<p>This will be set when the node is added to the plan and should be used to consume data from the plan. If this function is not called frequently enough then the sink node will start to accumulate data and may apply backpressure. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero15SinkNodeOptions6schemaE">
<span id="_CPPv3N5arrow5acero15SinkNodeOptions6schemaE"></span><span id="_CPPv2N5arrow5acero15SinkNodeOptions6schemaE"></span><span id="arrow::acero::SinkNodeOptions::schema__std::shared_ptr:Schema:P"></span><span class="target" id="classarrow_1_1acero_1_1_sink_node_options_1a100b0868d27dee896ccde88451af7a74"></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="datatype.html#_CPPv4N5arrow6SchemaE" title="arrow::Schema"><span class="n"><span class="pre">Schema</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="sig-name descname"><span class="n"><span class="pre">schema</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero15SinkNodeOptions6schemaE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>A pointer which will be set to the schema of the generated batches. </p>
<p>This is optional, if nullptr is passed in then it will be ignored. This will be set when the node is added to the plan, before StartProducing is called </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero15SinkNodeOptions12backpressureE">
<span id="_CPPv3N5arrow5acero15SinkNodeOptions12backpressureE"></span><span id="_CPPv2N5arrow5acero15SinkNodeOptions12backpressureE"></span><span id="arrow::acero::SinkNodeOptions::backpressure__BackpressureOptions"></span><span class="target" id="classarrow_1_1acero_1_1_sink_node_options_1ac762ed2bf177dc4186e248edbd3e6b71"></span><a class="reference internal" href="#_CPPv4N5arrow5acero19BackpressureOptionsE" title="arrow::acero::BackpressureOptions"><span class="n"><span class="pre">BackpressureOptions</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">backpressure</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero15SinkNodeOptions12backpressureE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Options to control when to apply backpressure. </p>
<p>This is optional, the default is to never apply backpressure. If the plan is not consumed quickly enough the system may eventually run out of memory. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero15SinkNodeOptions20backpressure_monitorE">
<span id="_CPPv3N5arrow5acero15SinkNodeOptions20backpressure_monitorE"></span><span id="_CPPv2N5arrow5acero15SinkNodeOptions20backpressure_monitorE"></span><span id="arrow::acero::SinkNodeOptions::backpressure_monitor__BackpressureMonitorPP"></span><span class="target" id="classarrow_1_1acero_1_1_sink_node_options_1a621745d8df957b918fd3709ee1e94464"></span><a class="reference internal" href="#_CPPv4N5arrow5acero19BackpressureMonitorE" title="arrow::acero::BackpressureMonitor"><span class="n"><span class="pre">BackpressureMonitor</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">backpressure_monitor</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero15SinkNodeOptions20backpressure_monitorE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>A pointer to a backpressure monitor. </p>
<p>This will be set when the node is added to the plan. This can be used to inspect the amount of data currently queued in the sink node. This is an optional utility and backpressure can be applied even if this is not used. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero15SinkNodeOptions15sequence_outputE">
<span id="_CPPv3N5arrow5acero15SinkNodeOptions15sequence_outputE"></span><span id="_CPPv2N5arrow5acero15SinkNodeOptions15sequence_outputE"></span><span id="arrow::acero::SinkNodeOptions::sequence_output__std::optional:b:"></span><span class="target" id="classarrow_1_1acero_1_1_sink_node_options_1a519d95738bbe1e45941ab95a347e1036"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">optional</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">bool</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">sequence_output</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero15SinkNodeOptions15sequence_outputE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Controls whether batches should be emitted immediately or sequenced in order. </p>
<p><div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#structarrow_1_1acero_1_1_query_options"><span class="std std-ref">QueryOptions</span></a> for more details </p>
</div>
</p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19BackpressureControlE">
<span id="_CPPv3N5arrow5acero19BackpressureControlE"></span><span id="_CPPv2N5arrow5acero19BackpressureControlE"></span><span id="arrow::acero::BackpressureControl"></span><span class="target" id="classarrow_1_1acero_1_1_backpressure_control"></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">BackpressureControl</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19BackpressureControlE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>Control used by a <a class="reference internal" href="#classarrow_1_1acero_1_1_sink_node_consumer"><span class="std std-ref">SinkNodeConsumer</span></a> to pause &amp; resume. </p>
<p>Callers should ensure that they do not call Pause and Resume simultaneously and they should sequence things so that a call to <a class="reference internal" href="#classarrow_1_1acero_1_1_backpressure_control_1a5562a1691f23995f44a5b28adccb4c58"><span class="std std-ref">Pause()</span></a> is always followed by an eventual call to <a class="reference internal" href="#classarrow_1_1acero_1_1_backpressure_control_1a9300c6fb2a9c2d171e6cdb577d140e5d"><span class="std std-ref">Resume()</span></a></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="_CPPv4N5arrow5acero19BackpressureControlD0Ev">
<span id="_CPPv3N5arrow5acero19BackpressureControlD0Ev"></span><span id="_CPPv2N5arrow5acero19BackpressureControlD0Ev"></span><span id="arrow::acero::BackpressureControl::~BackpressureControl"></span><span class="target" id="classarrow_1_1acero_1_1_backpressure_control_1a5a8dfbb9fcac34b274c33454c1c6f19b"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">~BackpressureControl</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">default</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19BackpressureControlD0Ev" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19BackpressureControl5PauseEv">
<span id="_CPPv3N5arrow5acero19BackpressureControl5PauseEv"></span><span id="_CPPv2N5arrow5acero19BackpressureControl5PauseEv"></span><span id="arrow::acero::BackpressureControl::Pause"></span><span class="target" id="classarrow_1_1acero_1_1_backpressure_control_1a5562a1691f23995f44a5b28adccb4c58"></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">Pause</span></span></span><span class="sig-paren">(</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="#_CPPv4N5arrow5acero19BackpressureControl5PauseEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Ask the input to pause. </p>
<p>This is best effort, batches may continue to arrive Must eventually be followed by a call to <a class="reference internal" href="#classarrow_1_1acero_1_1_backpressure_control_1a9300c6fb2a9c2d171e6cdb577d140e5d"><span class="std std-ref">Resume()</span></a> or deadlock will occur </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19BackpressureControl6ResumeEv">
<span id="_CPPv3N5arrow5acero19BackpressureControl6ResumeEv"></span><span id="_CPPv2N5arrow5acero19BackpressureControl6ResumeEv"></span><span id="arrow::acero::BackpressureControl::Resume"></span><span class="target" id="classarrow_1_1acero_1_1_backpressure_control_1a9300c6fb2a9c2d171e6cdb577d140e5d"></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">Resume</span></span></span><span class="sig-paren">(</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="#_CPPv4N5arrow5acero19BackpressureControl6ResumeEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Ask the input to resume. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero16SinkNodeConsumerE">
<span id="_CPPv3N5arrow5acero16SinkNodeConsumerE"></span><span id="_CPPv2N5arrow5acero16SinkNodeConsumerE"></span><span id="arrow::acero::SinkNodeConsumer"></span><span class="target" id="classarrow_1_1acero_1_1_sink_node_consumer"></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">SinkNodeConsumer</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero16SinkNodeConsumerE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>a sink node that consumes the data as part of the plan using callbacks </p>
<p>Subclassed by arrow::acero::NullSinkNodeConsumer, arrow::acero::TableSinkNodeConsumer</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="_CPPv4N5arrow5acero16SinkNodeConsumerD0Ev">
<span id="_CPPv3N5arrow5acero16SinkNodeConsumerD0Ev"></span><span id="_CPPv2N5arrow5acero16SinkNodeConsumerD0Ev"></span><span id="arrow::acero::SinkNodeConsumer::~SinkNodeConsumer"></span><span class="target" id="classarrow_1_1acero_1_1_sink_node_consumer_1aa2a3ecf45c6986e30c6c4510ebe9f656"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">~SinkNodeConsumer</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">default</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero16SinkNodeConsumerD0Ev" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero16SinkNodeConsumer4InitERKNSt10shared_ptrI6SchemaEEP19BackpressureControlP8ExecPlan">
<span id="_CPPv3N5arrow5acero16SinkNodeConsumer4InitERKNSt10shared_ptrI6SchemaEEP19BackpressureControlP8ExecPlan"></span><span id="_CPPv2N5arrow5acero16SinkNodeConsumer4InitERKNSt10shared_ptrI6SchemaEEP19BackpressureControlP8ExecPlan"></span><span id="arrow::acero::SinkNodeConsumer::Init__std::shared_ptr:Schema:CR.BackpressureControlP.ExecPlanP"></span><span class="target" id="classarrow_1_1acero_1_1_sink_node_consumer_1add58271bd3e12f725677d1decfedf2b3"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Init</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">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow6SchemaE" title="arrow::Schema"><span class="n"><span class="pre">Schema</span></span></a><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">schema</span></span>, <a class="reference internal" href="#_CPPv4N5arrow5acero19BackpressureControlE" title="arrow::acero::BackpressureControl"><span class="n"><span class="pre">BackpressureControl</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">backpressure_control</span></span>, <a class="reference internal" href="#_CPPv4N5arrow5acero8ExecPlanE" title="arrow::acero::ExecPlan"><span class="n"><span class="pre">ExecPlan</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">plan</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="#_CPPv4N5arrow5acero16SinkNodeConsumer4InitERKNSt10shared_ptrI6SchemaEEP19BackpressureControlP8ExecPlan" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Prepare any consumer state. </p>
<p>This will be run once the schema is finalized as the plan is starting and before any calls to Consume. A common use is to save off the schema so that batches can be interpreted. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero16SinkNodeConsumer7ConsumeE9ExecBatch">
<span id="_CPPv3N5arrow5acero16SinkNodeConsumer7ConsumeE9ExecBatch"></span><span id="_CPPv2N5arrow5acero16SinkNodeConsumer7ConsumeE9ExecBatch"></span><span id="arrow::acero::SinkNodeConsumer::Consume__ExecBatch"></span><span class="target" id="classarrow_1_1acero_1_1_sink_node_consumer_1aaecd58d765f0ecace22f7f6b9e9696dd"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Consume</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">ExecBatch</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">batch</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="#_CPPv4N5arrow5acero16SinkNodeConsumer7ConsumeE9ExecBatch" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Consume a batch of data. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero16SinkNodeConsumer6FinishEv">
<span id="_CPPv3N5arrow5acero16SinkNodeConsumer6FinishEv"></span><span id="_CPPv2N5arrow5acero16SinkNodeConsumer6FinishEv"></span><span id="arrow::acero::SinkNodeConsumer::Finish"></span><span class="target" id="classarrow_1_1acero_1_1_sink_node_consumer_1aba43b0d4458ceca317f1250a5e978796"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Finish</span></span></span><span class="sig-paren">(</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="#_CPPv4N5arrow5acero16SinkNodeConsumer6FinishEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Signal to the consumer that the last batch has been delivered. </p>
<p>The returned future should only finish when all outstanding tasks have completed</p>
<p>If the plan is ended early or aborts due to an error then this will not be called. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero24ConsumingSinkNodeOptionsE">
<span id="_CPPv3N5arrow5acero24ConsumingSinkNodeOptionsE"></span><span id="_CPPv2N5arrow5acero24ConsumingSinkNodeOptionsE"></span><span id="arrow::acero::ConsumingSinkNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_consuming_sink_node_options"></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">ConsumingSinkNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero24ConsumingSinkNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>Add a sink node which consumes data within the exec plan run. </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="_CPPv4N5arrow5acero24ConsumingSinkNodeOptions24ConsumingSinkNodeOptionsENSt10shared_ptrI16SinkNodeConsumerEENSt6vectorINSt6stringEEENSt8optionalIbEE">
<span id="_CPPv3N5arrow5acero24ConsumingSinkNodeOptions24ConsumingSinkNodeOptionsENSt10shared_ptrI16SinkNodeConsumerEENSt6vectorINSt6stringEEENSt8optionalIbEE"></span><span id="_CPPv2N5arrow5acero24ConsumingSinkNodeOptions24ConsumingSinkNodeOptionsENSt10shared_ptrI16SinkNodeConsumerEENSt6vectorINSt6stringEEENSt8optionalIbEE"></span><span id="arrow::acero::ConsumingSinkNodeOptions::ConsumingSinkNodeOptions__std::shared_ptr:SinkNodeConsumer:.std::vector:ss:.std::optional:b:"></span><span class="target" id="classarrow_1_1acero_1_1_consuming_sink_node_options_1aa620d5336cbe67ddc10491a9bae7f41f"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ConsumingSinkNodeOptions</span></span></span><span class="sig-paren">(</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="#_CPPv4N5arrow5acero16SinkNodeConsumerE" title="arrow::acero::SinkNodeConsumer"><span class="n"><span class="pre">SinkNodeConsumer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">consumer</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">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">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">names</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="p"><span class="pre">{</span></span><span class="p"><span class="pre">}</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">optional</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">bool</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">sequence_output</span></span><span class="w"> </span><span class="p"><span class="pre">=</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">nullopt</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero24ConsumingSinkNodeOptions24ConsumingSinkNodeOptionsENSt10shared_ptrI16SinkNodeConsumerEENSt6vectorINSt6stringEEENSt8optionalIbEE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero24ConsumingSinkNodeOptions8consumerE">
<span id="_CPPv3N5arrow5acero24ConsumingSinkNodeOptions8consumerE"></span><span id="_CPPv2N5arrow5acero24ConsumingSinkNodeOptions8consumerE"></span><span id="arrow::acero::ConsumingSinkNodeOptions::consumer__std::shared_ptr:SinkNodeConsumer:"></span><span class="target" id="classarrow_1_1acero_1_1_consuming_sink_node_options_1a16a060d4a3762e9c731485bbc979ee20"></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="#_CPPv4N5arrow5acero16SinkNodeConsumerE" title="arrow::acero::SinkNodeConsumer"><span class="n"><span class="pre">SinkNodeConsumer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">consumer</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero24ConsumingSinkNodeOptions8consumerE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero24ConsumingSinkNodeOptions5namesE">
<span id="_CPPv3N5arrow5acero24ConsumingSinkNodeOptions5namesE"></span><span id="_CPPv2N5arrow5acero24ConsumingSinkNodeOptions5namesE"></span><span id="arrow::acero::ConsumingSinkNodeOptions::names__std::vector:ss:"></span><span class="target" id="classarrow_1_1acero_1_1_consuming_sink_node_options_1a72b82ee6970bdf2a4dc5c2207cd73730"></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">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">names</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero24ConsumingSinkNodeOptions5namesE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Names to rename the sink’s schema fields to. </p>
<p>If specified then names must be provided for all fields. Currently, only a flat schema is supported (see GH-31875).</p>
<p>If not specified then names will be generated based on the source data. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero24ConsumingSinkNodeOptions15sequence_outputE">
<span id="_CPPv3N5arrow5acero24ConsumingSinkNodeOptions15sequence_outputE"></span><span id="_CPPv2N5arrow5acero24ConsumingSinkNodeOptions15sequence_outputE"></span><span id="arrow::acero::ConsumingSinkNodeOptions::sequence_output__std::optional:b:"></span><span class="target" id="classarrow_1_1acero_1_1_consuming_sink_node_options_1acafcd744f39746bdf4fa60f91b0754f8"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">optional</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">bool</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">sequence_output</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero24ConsumingSinkNodeOptions15sequence_outputE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Controls whether batches should be emitted immediately or sequenced in order. </p>
<p><div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#structarrow_1_1acero_1_1_query_options"><span class="std std-ref">QueryOptions</span></a> for more details </p>
</div>
</p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero22OrderBySinkNodeOptionsE">
<span id="_CPPv3N5arrow5acero22OrderBySinkNodeOptionsE"></span><span id="_CPPv2N5arrow5acero22OrderBySinkNodeOptionsE"></span><span id="arrow::acero::OrderBySinkNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_order_by_sink_node_options"></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">OrderBySinkNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15SinkNodeOptionsE" title="arrow::acero::SinkNodeOptions"><span class="n"><span class="pre">SinkNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero22OrderBySinkNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>Make a node which sorts rows passed through it. </p>
<p>All batches pushed to this node will be accumulated, then sorted, by the given fields. Then sorted batches will be forwarded to the generator in sorted order. </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="_CPPv4N5arrow5acero22OrderBySinkNodeOptions22OrderBySinkNodeOptionsE11SortOptionsPNSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEE">
<span id="_CPPv3N5arrow5acero22OrderBySinkNodeOptions22OrderBySinkNodeOptionsE11SortOptionsPNSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEE"></span><span id="_CPPv2N5arrow5acero22OrderBySinkNodeOptions22OrderBySinkNodeOptionsE11SortOptionsPNSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEE"></span><span class="target" id="classarrow_1_1acero_1_1_order_by_sink_node_options_1afa1ef326b27175cea5a0612898fab0c8"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OrderBySinkNodeOptions</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">SortOptions</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">sort_options</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">function</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><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">optional</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">ExecBatch</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><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">generator</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero22OrderBySinkNodeOptions22OrderBySinkNodeOptionsE11SortOptionsPNSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create an instance from values </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero22OrderBySinkNodeOptions12sort_optionsE">
<span id="_CPPv3N5arrow5acero22OrderBySinkNodeOptions12sort_optionsE"></span><span id="_CPPv2N5arrow5acero22OrderBySinkNodeOptions12sort_optionsE"></span><span id="arrow::acero::OrderBySinkNodeOptions::sort_options__SortOptions"></span><span class="target" id="classarrow_1_1acero_1_1_order_by_sink_node_options_1a6a6efb5ec220a2f61788127efa91cf65"></span><span class="n"><span class="pre">SortOptions</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">sort_options</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero22OrderBySinkNodeOptions12sort_optionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>options describing which columns and direction to sort </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero18OrderByNodeOptionsE">
<span id="_CPPv3N5arrow5acero18OrderByNodeOptionsE"></span><span id="_CPPv2N5arrow5acero18OrderByNodeOptionsE"></span><span id="arrow::acero::OrderByNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_order_by_node_options"></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">OrderByNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero18OrderByNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>Apply a new ordering to data. </p>
<p>Currently this node works by accumulating all data, sorting, and then emitting the new data with an updated batch index.</p>
<p>Larger-than-memory sort is not currently supported. </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="_CPPv4N5arrow5acero18OrderByNodeOptions18OrderByNodeOptionsE8Ordering">
<span id="_CPPv3N5arrow5acero18OrderByNodeOptions18OrderByNodeOptionsE8Ordering"></span><span id="_CPPv2N5arrow5acero18OrderByNodeOptions18OrderByNodeOptionsE8Ordering"></span><span id="arrow::acero::OrderByNodeOptions::OrderByNodeOptions__Ordering"></span><span class="target" id="classarrow_1_1acero_1_1_order_by_node_options_1a7e6862bc385294a6baba5e165aaaffd0"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OrderByNodeOptions</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Ordering</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">ordering</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero18OrderByNodeOptions18OrderByNodeOptionsE8Ordering" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero18OrderByNodeOptions8orderingE">
<span id="_CPPv3N5arrow5acero18OrderByNodeOptions8orderingE"></span><span id="_CPPv2N5arrow5acero18OrderByNodeOptions8orderingE"></span><span id="arrow::acero::OrderByNodeOptions::ordering__Ordering"></span><span class="target" id="classarrow_1_1acero_1_1_order_by_node_options_1adb8eda3a981699806f9ccf3a59073e0e"></span><span class="n"><span class="pre">Ordering</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ordering</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero18OrderByNodeOptions8orderingE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The new ordering to apply to outgoing data. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-attributes">Public Static Attributes</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero18OrderByNodeOptions5kNameE">
<span id="_CPPv3N5arrow5acero18OrderByNodeOptions5kNameE"></span><span id="_CPPv2N5arrow5acero18OrderByNodeOptions5kNameE"></span><span id="arrow::acero::OrderByNodeOptions::kName__std::string_view"></span><span class="target" id="classarrow_1_1acero_1_1_order_by_node_options_1ae1723ba67249171b438db5ada89ab8cf"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">constexpr</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_view</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">kName</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="s"><span class="pre">&quot;order_by&quot;</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero18OrderByNodeOptions5kNameE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptionsE">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptionsE"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptionsE"></span><span id="arrow::acero::HashJoinNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options"></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">HashJoinNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>a node which implements a join operation using a hash table </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="_CPPv4N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsE8JoinTypeNSt6vectorI8FieldRefEENSt6vectorI8FieldRefEE10ExpressionNSt6stringENSt6stringEb">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsE8JoinTypeNSt6vectorI8FieldRefEENSt6vectorI8FieldRefEE10ExpressionNSt6stringENSt6stringEb"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsE8JoinTypeNSt6vectorI8FieldRefEENSt6vectorI8FieldRefEE10ExpressionNSt6stringENSt6stringEb"></span><span id="arrow::acero::HashJoinNodeOptions::HashJoinNodeOptions__JoinType.std::vector:FieldRef:.std::vector:FieldRef:.Expression.ss.ss.b"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1ad1588b9a813d4c38b70ec6cd9a8d9925"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">HashJoinNodeOptions</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv48JoinType" title="JoinType"><span class="n"><span class="pre">JoinType</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">in_join_type</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">in_left_keys</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">in_right_keys</span></span>, <span class="n"><span class="pre">Expression</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">filter</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="compute.html#_CPPv47literal5Datum" title="literal"><span class="n"><span class="pre">literal</span></span></a><span class="p"><span class="pre">(</span></span><span class="k"><span class="pre">true</span></span><span class="p"><span class="pre">)</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">string</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">output_suffix_for_left</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions30default_output_suffix_for_leftE" title="arrow::acero::HashJoinNodeOptions::default_output_suffix_for_left"><span class="n"><span class="pre">default_output_suffix_for_left</span></span></a>, <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="n sig-param"><span class="pre">output_suffix_for_right</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions31default_output_suffix_for_rightE" title="arrow::acero::HashJoinNodeOptions::default_output_suffix_for_right"><span class="n"><span class="pre">default_output_suffix_for_right</span></span></a>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">disable_bloom_filter</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">false</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsE8JoinTypeNSt6vectorI8FieldRefEENSt6vectorI8FieldRefEE10ExpressionNSt6stringENSt6stringEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create an instance from values that outputs all columns </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEE">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEE"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEE"></span><span id="arrow::acero::HashJoinNodeOptions::HashJoinNodeOptions__std::vector:FieldRef:.std::vector:FieldRef:"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1a39aeff9d1300c9b707490aa0abc87907"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">HashJoinNodeOptions</span></span></span><span class="sig-paren">(</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><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">in_left_keys</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">in_right_keys</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create an instance from keys </p>
<p>This will create an inner join that outputs all columns and has no post join filter</p>
<p><code class="docutils literal notranslate"><span class="pre">in_left_keys</span></code> should have the same length and types as <code class="docutils literal notranslate"><span class="pre">in_right_keys</span></code> </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>in_left_keys</strong> – the keys in the left input </p></li>
<li><p><strong>in_right_keys</strong> – the keys in the right input </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsE8JoinTypeNSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEE10ExpressionNSt6stringENSt6stringEb">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsE8JoinTypeNSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEE10ExpressionNSt6stringENSt6stringEb"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsE8JoinTypeNSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEE10ExpressionNSt6stringENSt6stringEb"></span><span id="arrow::acero::HashJoinNodeOptions::HashJoinNodeOptions__JoinType.std::vector:FieldRef:.std::vector:FieldRef:.std::vector:FieldRef:.std::vector:FieldRef:.Expression.ss.ss.b"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1a40a8d62daf6f2d49342b2041cb06c0b1"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">HashJoinNodeOptions</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv48JoinType" title="JoinType"><span class="n"><span class="pre">JoinType</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">join_type</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">left_keys</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">right_keys</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">left_output</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">right_output</span></span>, <span class="n"><span class="pre">Expression</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">filter</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="compute.html#_CPPv47literal5Datum" title="literal"><span class="n"><span class="pre">literal</span></span></a><span class="p"><span class="pre">(</span></span><span class="k"><span class="pre">true</span></span><span class="p"><span class="pre">)</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">string</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">output_suffix_for_left</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions30default_output_suffix_for_leftE" title="arrow::acero::HashJoinNodeOptions::default_output_suffix_for_left"><span class="n"><span class="pre">default_output_suffix_for_left</span></span></a>, <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="n sig-param"><span class="pre">output_suffix_for_right</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions31default_output_suffix_for_rightE" title="arrow::acero::HashJoinNodeOptions::default_output_suffix_for_right"><span class="n"><span class="pre">default_output_suffix_for_right</span></span></a>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">disable_bloom_filter</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">false</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsE8JoinTypeNSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEE10ExpressionNSt6stringENSt6stringEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create an instance from values using <a class="reference internal" href="#group__acero-nodes_1gga78ce24fc89d322ab9e35d1e575a70dbba2dcbad7477fd40561e8b8198f173bd47"><span class="std std-ref">JoinKeyCmp::EQ</span></a> for all comparisons </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsE8JoinTypeNSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI10JoinKeyCmpEE10ExpressionNSt6stringENSt6stringEb">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsE8JoinTypeNSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI10JoinKeyCmpEE10ExpressionNSt6stringENSt6stringEb"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsE8JoinTypeNSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI10JoinKeyCmpEE10ExpressionNSt6stringENSt6stringEb"></span><span id="arrow::acero::HashJoinNodeOptions::HashJoinNodeOptions__JoinType.std::vector:FieldRef:.std::vector:FieldRef:.std::vector:FieldRef:.std::vector:FieldRef:.std::vector:JoinKeyCmp:.Expression.ss.ss.b"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1a3468b1086274b41e9cdd8369ed1e6007"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">HashJoinNodeOptions</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv48JoinType" title="JoinType"><span class="n"><span class="pre">JoinType</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">join_type</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">left_keys</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">right_keys</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">left_output</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">right_output</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv410JoinKeyCmp" title="JoinKeyCmp"><span class="n"><span class="pre">JoinKeyCmp</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">key_cmp</span></span>, <span class="n"><span class="pre">Expression</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">filter</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="compute.html#_CPPv47literal5Datum" title="literal"><span class="n"><span class="pre">literal</span></span></a><span class="p"><span class="pre">(</span></span><span class="k"><span class="pre">true</span></span><span class="p"><span class="pre">)</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">string</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">output_suffix_for_left</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions30default_output_suffix_for_leftE" title="arrow::acero::HashJoinNodeOptions::default_output_suffix_for_left"><span class="n"><span class="pre">default_output_suffix_for_left</span></span></a>, <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="n sig-param"><span class="pre">output_suffix_for_right</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions31default_output_suffix_for_rightE" title="arrow::acero::HashJoinNodeOptions::default_output_suffix_for_right"><span class="n"><span class="pre">default_output_suffix_for_right</span></span></a>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">disable_bloom_filter</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">false</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsE8JoinTypeNSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI8FieldRefEENSt6vectorI10JoinKeyCmpEE10ExpressionNSt6stringENSt6stringEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create an instance from values </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsEv">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsEv"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsEv"></span><span id="arrow::acero::HashJoinNodeOptions::HashJoinNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1a4b7742cb13121a44cbb27024b40d9415"></span><span class="sig-name descname"><span class="n"><span class="pre">HashJoinNodeOptions</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">default</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions19HashJoinNodeOptionsEv" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptions9join_typeE">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions9join_typeE"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions9join_typeE"></span><span id="arrow::acero::HashJoinNodeOptions::join_type__JoinType"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1af3414a1f9d2f75c6fba895e5371254bb"></span><a class="reference internal" href="#_CPPv48JoinType" title="JoinType"><span class="n"><span class="pre">JoinType</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">join_type</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv48JoinType" title="JoinType"><span class="n"><span class="pre">JoinType</span></span></a><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N8JoinType5INNERE" title="JoinType::INNER"><span class="n"><span class="pre">INNER</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions9join_typeE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptions9left_keysE">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions9left_keysE"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions9left_keysE"></span><span id="arrow::acero::HashJoinNodeOptions::left_keys__std::vector:FieldRef:"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1ab9df62b52fadd76041259a30f5dec632"></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><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">left_keys</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions9left_keysE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptions10right_keysE">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions10right_keysE"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions10right_keysE"></span><span id="arrow::acero::HashJoinNodeOptions::right_keys__std::vector:FieldRef:"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1ab87cab5e03cfe3ec87d9e2c2d4d30fc0"></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><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">right_keys</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions10right_keysE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptions10output_allE">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions10output_allE"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions10output_allE"></span><span id="arrow::acero::HashJoinNodeOptions::output_all__b"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1adc3c20c0de66474080038bbb3efeda94"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">output_all</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">false</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions10output_allE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptions11left_outputE">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions11left_outputE"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions11left_outputE"></span><span id="arrow::acero::HashJoinNodeOptions::left_output__std::vector:FieldRef:"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1a7d7beab088b30c50c2083211851a3551"></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><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">left_output</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions11left_outputE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptions12right_outputE">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions12right_outputE"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions12right_outputE"></span><span id="arrow::acero::HashJoinNodeOptions::right_output__std::vector:FieldRef:"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1a285436d0b7a9db8483b88ecad0c132c5"></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><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">right_output</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions12right_outputE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptions7key_cmpE">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions7key_cmpE"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions7key_cmpE"></span><span id="arrow::acero::HashJoinNodeOptions::key_cmp__std::vector:JoinKeyCmp:"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1aac94956a4dee5aab284b48d4401bd6de"></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><a class="reference internal" href="#_CPPv410JoinKeyCmp" title="JoinKeyCmp"><span class="n"><span class="pre">JoinKeyCmp</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">key_cmp</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions7key_cmpE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptions22output_suffix_for_leftE">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions22output_suffix_for_leftE"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions22output_suffix_for_leftE"></span><span id="arrow::acero::HashJoinNodeOptions::output_suffix_for_left__ss"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1aff0144b33d580b2912861bcf2797ab31"></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="sig-name descname"><span class="n"><span class="pre">output_suffix_for_left</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions22output_suffix_for_leftE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptions23output_suffix_for_rightE">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions23output_suffix_for_rightE"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions23output_suffix_for_rightE"></span><span id="arrow::acero::HashJoinNodeOptions::output_suffix_for_right__ss"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1aa327eb55f316eeb26e9032d501640c1e"></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="sig-name descname"><span class="n"><span class="pre">output_suffix_for_right</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions23output_suffix_for_rightE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptions6filterE">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions6filterE"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions6filterE"></span><span id="arrow::acero::HashJoinNodeOptions::filter__Expression"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1a0867bf44b6dd87671fc16b231cc0a63a"></span><span class="n"><span class="pre">Expression</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">filter</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="compute.html#_CPPv47literal5Datum" title="literal"><span class="n"><span class="pre">literal</span></span></a><span class="p"><span class="pre">(</span></span><span class="k"><span class="pre">true</span></span><span class="p"><span class="pre">)</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions6filterE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptions20disable_bloom_filterE">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions20disable_bloom_filterE"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions20disable_bloom_filterE"></span><span id="arrow::acero::HashJoinNodeOptions::disable_bloom_filter__b"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1aefbdab05e34a693ca33e1b100118aa19"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">disable_bloom_filter</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">false</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions20disable_bloom_filterE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-attributes">Public Static Attributes</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptions30default_output_suffix_for_leftE">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions30default_output_suffix_for_leftE"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions30default_output_suffix_for_leftE"></span><span id="arrow::acero::HashJoinNodeOptions::default_output_suffix_for_left__cCP"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1aa76bc6cbdbd72d794d29e1afc16fd74b"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">constexpr</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">default_output_suffix_for_left</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="s"><span class="pre">&quot;&quot;</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions30default_output_suffix_for_leftE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19HashJoinNodeOptions31default_output_suffix_for_rightE">
<span id="_CPPv3N5arrow5acero19HashJoinNodeOptions31default_output_suffix_for_rightE"></span><span id="_CPPv2N5arrow5acero19HashJoinNodeOptions31default_output_suffix_for_rightE"></span><span id="arrow::acero::HashJoinNodeOptions::default_output_suffix_for_right__cCP"></span><span class="target" id="classarrow_1_1acero_1_1_hash_join_node_options_1a624e33252a4b62a780a233ae30229a5d"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">constexpr</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">default_output_suffix_for_right</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="s"><span class="pre">&quot;&quot;</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19HashJoinNodeOptions31default_output_suffix_for_rightE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19AsofJoinNodeOptionsE">
<span id="_CPPv3N5arrow5acero19AsofJoinNodeOptionsE"></span><span id="_CPPv2N5arrow5acero19AsofJoinNodeOptionsE"></span><span id="arrow::acero::AsofJoinNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_asof_join_node_options"></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">AsofJoinNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero19AsofJoinNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>a node which implements the asof join operation </p>
<p>Note, this API is experimental and will change in the future</p>
<p>This node takes one left table and any number of right tables, and asof joins them together. Batches produced by each input must be ordered by the “on” key. This node will output one row for each row in the left table. </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="_CPPv4N5arrow5acero19AsofJoinNodeOptions19AsofJoinNodeOptionsENSt6vectorI4KeysEE7int64_t">
<span id="_CPPv3N5arrow5acero19AsofJoinNodeOptions19AsofJoinNodeOptionsENSt6vectorI4KeysEE7int64_t"></span><span id="_CPPv2N5arrow5acero19AsofJoinNodeOptions19AsofJoinNodeOptionsENSt6vectorI4KeysEE7int64_t"></span><span id="arrow::acero::AsofJoinNodeOptions::AsofJoinNodeOptions__std::vector:Keys:.int64_t"></span><span class="target" id="classarrow_1_1acero_1_1_asof_join_node_options_1af1476c1c0689f4615bd911e846bf9242"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">AsofJoinNodeOptions</span></span></span><span class="sig-paren">(</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><a class="reference internal" href="#_CPPv4N5arrow5acero19AsofJoinNodeOptions4KeysE" title="arrow::acero::AsofJoinNodeOptions::Keys"><span class="n"><span class="pre">Keys</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">input_keys</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">tolerance</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero19AsofJoinNodeOptions19AsofJoinNodeOptionsENSt6vectorI4KeysEE7int64_t" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19AsofJoinNodeOptions10input_keysE">
<span id="_CPPv3N5arrow5acero19AsofJoinNodeOptions10input_keysE"></span><span id="_CPPv2N5arrow5acero19AsofJoinNodeOptions10input_keysE"></span><span id="arrow::acero::AsofJoinNodeOptions::input_keys__std::vector:Keys:"></span><span class="target" id="classarrow_1_1acero_1_1_asof_join_node_options_1a39fcc43dd86689a88b7272bf05143ec4"></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><a class="reference internal" href="#_CPPv4N5arrow5acero19AsofJoinNodeOptions4KeysE" title="arrow::acero::AsofJoinNodeOptions::Keys"><span class="n"><span class="pre">Keys</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">input_keys</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19AsofJoinNodeOptions10input_keysE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>AsofJoin keys per input table. </p>
<p>At least two keys must be given. The first key corresponds to a left table and all other keys correspond to right tables for the as-of-join.</p>
<p><div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><code class="docutils literal notranslate"><a class="reference internal" href="#structarrow_1_1acero_1_1_asof_join_node_options_1_1_keys"><span class="std std-ref"><span class="pre">Keys</span></span></a></code> for details. </p>
</div>
</p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19AsofJoinNodeOptions9toleranceE">
<span id="_CPPv3N5arrow5acero19AsofJoinNodeOptions9toleranceE"></span><span id="_CPPv2N5arrow5acero19AsofJoinNodeOptions9toleranceE"></span><span id="arrow::acero::AsofJoinNodeOptions::tolerance__int64_t"></span><span class="target" id="classarrow_1_1acero_1_1_asof_join_node_options_1a6866559dcb0acf717db8f34ab89ea3ca"></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">tolerance</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19AsofJoinNodeOptions9toleranceE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Tolerance for inexact “on” key matching. </p>
<p>A right row is considered a match with the left row if <code class="docutils literal notranslate"><span class="pre">right.on</span> <span class="pre">-</span> <span class="pre">left.on</span> <span class="pre">&lt;=</span> <span class="pre">tolerance</span></code>. The <code class="docutils literal notranslate"><span class="pre">tolerance</span></code> may be:<ul class="simple">
<li><p>negative, in which case a past-as-of-join occurs;</p></li>
<li><p>or positive, in which case a future-as-of-join occurs;</p></li>
<li><p>or zero, in which case an exact-as-of-join occurs.</p></li>
</ul>
</p>
<p>The tolerance is interpreted in the same units as the “on” key. </p>
</dd></dl>
</div>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19AsofJoinNodeOptions4KeysE">
<span id="_CPPv3N5arrow5acero19AsofJoinNodeOptions4KeysE"></span><span id="_CPPv2N5arrow5acero19AsofJoinNodeOptions4KeysE"></span><span id="arrow::acero::AsofJoinNodeOptions::Keys"></span><span class="target" id="structarrow_1_1acero_1_1_asof_join_node_options_1_1_keys"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Keys</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19AsofJoinNodeOptions4KeysE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p><a class="reference internal" href="#structarrow_1_1acero_1_1_asof_join_node_options_1_1_keys"><span class="std std-ref">Keys</span></a> for one input table of the AsofJoin operation. </p>
<p>The keys must be consistent across the input tables: Each “on” key must refer to a field of the same type and units across the tables. Each “by” key must refer to a list of fields of the same types across the tables. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19AsofJoinNodeOptions4Keys6on_keyE">
<span id="_CPPv3N5arrow5acero19AsofJoinNodeOptions4Keys6on_keyE"></span><span id="_CPPv2N5arrow5acero19AsofJoinNodeOptions4Keys6on_keyE"></span><span id="arrow::acero::AsofJoinNodeOptions::Keys::on_key__FieldRef"></span><span class="target" id="structarrow_1_1acero_1_1_asof_join_node_options_1_1_keys_1a0801a866755213efcb8afdeac46f65da"></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">on_key</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19AsofJoinNodeOptions4Keys6on_keyE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>“on” key for the join. </p>
<p>The input table must be sorted by the “on” key. Must be a single field of a common type. Inexact match is used on the “on” key. i.e., a row is considered a match iff left_on - tolerance &lt;= right_on &lt;= left_on. Currently, the “on” key must be of an integer, date, or timestamp type. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19AsofJoinNodeOptions4Keys6by_keyE">
<span id="_CPPv3N5arrow5acero19AsofJoinNodeOptions4Keys6by_keyE"></span><span id="_CPPv2N5arrow5acero19AsofJoinNodeOptions4Keys6by_keyE"></span><span id="arrow::acero::AsofJoinNodeOptions::Keys::by_key__std::vector:FieldRef:"></span><span class="target" id="structarrow_1_1acero_1_1_asof_join_node_options_1_1_keys_1a3bf04865ca7eba0e563abddd14eec9b7"></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><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">by_key</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19AsofJoinNodeOptions4Keys6by_keyE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>“by” key for the join. </p>
<p>Each input table must have each field of the “by” key. Exact equality is used for each field of the “by” key. Currently, each field of the “by” key must be of an integer, date, timestamp, or base-binary type. </p>
</dd></dl>
</div>
</dd></dl>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero22SelectKSinkNodeOptionsE">
<span id="_CPPv3N5arrow5acero22SelectKSinkNodeOptionsE"></span><span id="_CPPv2N5arrow5acero22SelectKSinkNodeOptionsE"></span><span id="arrow::acero::SelectKSinkNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_select_k_sink_node_options"></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">SelectKSinkNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15SinkNodeOptionsE" title="arrow::acero::SinkNodeOptions"><span class="n"><span class="pre">SinkNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero22SelectKSinkNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>a node which select top_k/bottom_k rows passed through it </p>
<p>All batches pushed to this node will be accumulated, then selected, by the given fields. Then sorted batches will be forwarded to the generator in sorted order. </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="_CPPv4N5arrow5acero22SelectKSinkNodeOptions22SelectKSinkNodeOptionsE14SelectKOptionsPNSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEE">
<span id="_CPPv3N5arrow5acero22SelectKSinkNodeOptions22SelectKSinkNodeOptionsE14SelectKOptionsPNSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEE"></span><span id="_CPPv2N5arrow5acero22SelectKSinkNodeOptions22SelectKSinkNodeOptionsE14SelectKOptionsPNSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEE"></span><span class="target" id="classarrow_1_1acero_1_1_select_k_sink_node_options_1a9877d4b10109bc982ed352586fe3e5ef"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SelectKSinkNodeOptions</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">SelectKOptions</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">select_k_options</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">function</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><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">optional</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">ExecBatch</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><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">generator</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero22SelectKSinkNodeOptions22SelectKSinkNodeOptionsE14SelectKOptionsPNSt8functionIF6FutureINSt8optionalI9ExecBatchEEEvEEE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero22SelectKSinkNodeOptions16select_k_optionsE">
<span id="_CPPv3N5arrow5acero22SelectKSinkNodeOptions16select_k_optionsE"></span><span id="_CPPv2N5arrow5acero22SelectKSinkNodeOptions16select_k_optionsE"></span><span id="arrow::acero::SelectKSinkNodeOptions::select_k_options__SelectKOptions"></span><span class="target" id="classarrow_1_1acero_1_1_select_k_sink_node_options_1a2f597a915bb80bd62f92f8bf4ad291a7"></span><span class="n"><span class="pre">SelectKOptions</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">select_k_options</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero22SelectKSinkNodeOptions16select_k_optionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>SelectK options. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero20TableSinkNodeOptionsE">
<span id="_CPPv3N5arrow5acero20TableSinkNodeOptionsE"></span><span id="_CPPv2N5arrow5acero20TableSinkNodeOptionsE"></span><span id="arrow::acero::TableSinkNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_table_sink_node_options"></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">TableSinkNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero20TableSinkNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>a sink node which accumulates all output into a table </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="_CPPv4N5arrow5acero20TableSinkNodeOptions20TableSinkNodeOptionsEPNSt10shared_ptrI5TableEENSt8optionalIbEE">
<span id="_CPPv3N5arrow5acero20TableSinkNodeOptions20TableSinkNodeOptionsEPNSt10shared_ptrI5TableEENSt8optionalIbEE"></span><span id="_CPPv2N5arrow5acero20TableSinkNodeOptions20TableSinkNodeOptionsEPNSt10shared_ptrI5TableEENSt8optionalIbEE"></span><span id="arrow::acero::TableSinkNodeOptions::TableSinkNodeOptions__std::shared_ptr:Table:P.std::optional:b:"></span><span class="target" id="classarrow_1_1acero_1_1_table_sink_node_options_1a5b49b6830904517469201e32f662375d"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">TableSinkNodeOptions</span></span></span><span class="sig-paren">(</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="table.html#_CPPv4N5arrow5TableE" title="arrow::Table"><span class="n"><span class="pre">Table</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">output_table</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">optional</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">bool</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">sequence_output</span></span><span class="w"> </span><span class="p"><span class="pre">=</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">nullopt</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero20TableSinkNodeOptions20TableSinkNodeOptionsEPNSt10shared_ptrI5TableEENSt8optionalIbEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>create an instance from values </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero20TableSinkNodeOptions12output_tableE">
<span id="_CPPv3N5arrow5acero20TableSinkNodeOptions12output_tableE"></span><span id="_CPPv2N5arrow5acero20TableSinkNodeOptions12output_tableE"></span><span id="arrow::acero::TableSinkNodeOptions::output_table__std::shared_ptr:Table:P"></span><span class="target" id="classarrow_1_1acero_1_1_table_sink_node_options_1a1e2870d73f364ac25ef3828e56b3fe8c"></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="table.html#_CPPv4N5arrow5TableE" title="arrow::Table"><span class="n"><span class="pre">Table</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="sig-name descname"><span class="n"><span class="pre">output_table</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero20TableSinkNodeOptions12output_tableE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>an “out parameter” specifying the table that will be created </p>
<p>Must not be null and remain valid for the entirety of the plan execution. After the plan has completed this will be set to point to the result table </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero20TableSinkNodeOptions15sequence_outputE">
<span id="_CPPv3N5arrow5acero20TableSinkNodeOptions15sequence_outputE"></span><span id="_CPPv2N5arrow5acero20TableSinkNodeOptions15sequence_outputE"></span><span id="arrow::acero::TableSinkNodeOptions::sequence_output__std::optional:b:"></span><span class="target" id="classarrow_1_1acero_1_1_table_sink_node_options_1a341c382f19b5ee7510f2d47c84500209"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">optional</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">bool</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">sequence_output</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero20TableSinkNodeOptions15sequence_outputE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Controls whether batches should be emitted immediately or sequenced in order. </p>
<p><div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#structarrow_1_1acero_1_1_query_options"><span class="std std-ref">QueryOptions</span></a> for more details </p>
</div>
</p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero20TableSinkNodeOptions5namesE">
<span id="_CPPv3N5arrow5acero20TableSinkNodeOptions5namesE"></span><span id="_CPPv2N5arrow5acero20TableSinkNodeOptions5namesE"></span><span id="arrow::acero::TableSinkNodeOptions::names__std::vector:ss:"></span><span class="target" id="classarrow_1_1acero_1_1_table_sink_node_options_1aa9226c8e59ff40044e75b520ebca9247"></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">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">names</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero20TableSinkNodeOptions5namesE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Custom names to use for the columns. </p>
<p>If specified then names must be provided for all fields. Currently, only a flat schema is supported (see GH-31875).</p>
<p>If not specified then names will be generated based on the source data. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero22PivotLongerRowTemplateE">
<span id="_CPPv3N5arrow5acero22PivotLongerRowTemplateE"></span><span id="_CPPv2N5arrow5acero22PivotLongerRowTemplateE"></span><span id="arrow::acero::PivotLongerRowTemplate"></span><span class="target" id="structarrow_1_1acero_1_1_pivot_longer_row_template"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PivotLongerRowTemplate</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero22PivotLongerRowTemplateE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>a row template that describes one row that will be generated for each input row </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="_CPPv4N5arrow5acero22PivotLongerRowTemplate22PivotLongerRowTemplateENSt6vectorINSt6stringEEENSt6vectorINSt8optionalI8FieldRefEEEE">
<span id="_CPPv3N5arrow5acero22PivotLongerRowTemplate22PivotLongerRowTemplateENSt6vectorINSt6stringEEENSt6vectorINSt8optionalI8FieldRefEEEE"></span><span id="_CPPv2N5arrow5acero22PivotLongerRowTemplate22PivotLongerRowTemplateENSt6vectorINSt6stringEEENSt6vectorINSt8optionalI8FieldRefEEEE"></span><span id="arrow::acero::PivotLongerRowTemplate::PivotLongerRowTemplate__std::vector:ss:.std::vector:std::optional:FieldRef::"></span><span class="target" id="structarrow_1_1acero_1_1_pivot_longer_row_template_1aaa79bdd33ffb94b6fc41f7a9ffde302f"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PivotLongerRowTemplate</span></span></span><span class="sig-paren">(</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">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">feature_values</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">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">optional</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</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="n sig-param"><span class="pre">measurement_values</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero22PivotLongerRowTemplate22PivotLongerRowTemplateENSt6vectorINSt6stringEEENSt6vectorINSt8optionalI8FieldRefEEEE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero22PivotLongerRowTemplate14feature_valuesE">
<span id="_CPPv3N5arrow5acero22PivotLongerRowTemplate14feature_valuesE"></span><span id="_CPPv2N5arrow5acero22PivotLongerRowTemplate14feature_valuesE"></span><span id="arrow::acero::PivotLongerRowTemplate::feature_values__std::vector:ss:"></span><span class="target" id="structarrow_1_1acero_1_1_pivot_longer_row_template_1aa94ce00ad4f907f891372c427347723b"></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">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">feature_values</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero22PivotLongerRowTemplate14feature_valuesE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>A (typically unique) set of feature values for the template, usually derived from a column name. </p>
<p>These will be used to populate the feature columns </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero22PivotLongerRowTemplate18measurement_valuesE">
<span id="_CPPv3N5arrow5acero22PivotLongerRowTemplate18measurement_valuesE"></span><span id="_CPPv2N5arrow5acero22PivotLongerRowTemplate18measurement_valuesE"></span><span id="arrow::acero::PivotLongerRowTemplate::measurement_values__std::vector:std::optional:FieldRef::"></span><span class="target" id="structarrow_1_1acero_1_1_pivot_longer_row_template_1a4989d0bbb819e31ad6879ecc2fbdb6a4"></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">optional</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow8FieldRefE" title="arrow::FieldRef"><span class="n"><span class="pre">FieldRef</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-name descname"><span class="n"><span class="pre">measurement_values</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero22PivotLongerRowTemplate18measurement_valuesE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The fields containing the measurements to use for this row. </p>
<p>These will be used to populate the measurement columns. If nullopt then nulls will be inserted for the given value. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero22PivotLongerNodeOptionsE">
<span id="_CPPv3N5arrow5acero22PivotLongerNodeOptionsE"></span><span id="_CPPv2N5arrow5acero22PivotLongerNodeOptionsE"></span><span id="arrow::acero::PivotLongerNodeOptions"></span><span class="target" id="classarrow_1_1acero_1_1_pivot_longer_node_options"></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">PivotLongerNodeOptions</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">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">acero</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><a class="headerlink" href="#_CPPv4N5arrow5acero22PivotLongerNodeOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/options.h&gt;</em></div>
<p>Reshape a table by turning some columns into additional rows. </p>
<p>This operation is sometimes also referred to as UNPIVOT</p>
<p>This is typically done when there are multiple observations in each row in order to transform to a table containing a single observation per row.</p>
<p>For example:</p>
<p><table class="table">
<thead>
<tr class="row-odd"><th class="head"><p>time </p></th>
<th class="head"><p>left_temp </p></th>
<th class="head"><p>right_temp </p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>1 </p></td>
<td><p>10 </p></td>
<td><p>20 </p></td>
</tr>
<tr class="row-odd"><td><p>2 </p></td>
<td><p>15 </p></td>
<td><p>18 </p></td>
</tr>
</tbody>
</table>
</p>
<p>The above table contains two observations per row. There is an implicit feature “location” (left vs right) and a measurement “temp”. What we really want is:</p>
<p><table class="table">
<thead>
<tr class="row-odd"><th class="head"><p>time </p></th>
<th class="head"><p>location </p></th>
<th class="head"><p>temp </p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>1 </p></td>
<td><p>left </p></td>
<td><p>10 </p></td>
</tr>
<tr class="row-odd"><td><p>1 </p></td>
<td><p>right </p></td>
<td><p>20 </p></td>
</tr>
<tr class="row-even"><td><p>2 </p></td>
<td><p>left </p></td>
<td><p>15 </p></td>
</tr>
<tr class="row-odd"><td><p>2 </p></td>
<td><p>right </p></td>
<td><p>18 </p></td>
</tr>
</tbody>
</table>
</p>
<p>For a more complex example consider:</p>
<p><table class="table">
<thead>
<tr class="row-odd"><th class="head"><p>time </p></th>
<th class="head"><p>ax1 </p></th>
<th class="head"><p>ay1 </p></th>
<th class="head"><p>bx1 </p></th>
<th class="head"><p>ay2 </p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>0 </p></td>
<td><p>1 </p></td>
<td><p>2 </p></td>
<td><p>3 </p></td>
<td><p>4 </p></td>
</tr>
</tbody>
</table>
</p>
<p>We can pretend a vs b and x vs y are features while 1 and 2 are two different kinds of measurements. We thus want to pivot to</p>
<p><table class="table">
<thead>
<tr class="row-odd"><th class="head"><p>time </p></th>
<th class="head"><p>a/b </p></th>
<th class="head"><p>x/y </p></th>
<th class="head"><p>f1 </p></th>
<th class="head"><p>f2 </p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>0 </p></td>
<td><p>a </p></td>
<td><p>x </p></td>
<td><p>1 </p></td>
<td><p>null </p></td>
</tr>
<tr class="row-odd"><td><p>0 </p></td>
<td><p>a </p></td>
<td><p>y </p></td>
<td><p>2 </p></td>
<td><p>4 </p></td>
</tr>
<tr class="row-even"><td><p>0 </p></td>
<td><p>b </p></td>
<td><p>x </p></td>
<td><p>3 </p></td>
<td><p>null </p></td>
</tr>
</tbody>
</table>
</p>
<p>To do this we create a row template for each combination of features. One should be able to do this purely by looking at the column names. For example, given the above columns “ax1”, “ay1”, “bx1”, and “ay2” we know we have three feature combinations (a, x), (a, y), and (b, x). Similarly, we know we have two possible measurements, “1” and “2”.</p>
<p>For each combination of features we create a row template. In each row template we describe the combination and then list which columns to use for the measurements. If a measurement doesn’t exist for a given combination then we use nullopt.</p>
<p>So, for our above example, we have:</p>
<p>(a, x): names={“a”, “x”}, values={“ax1”, nullopt} (a, y): names={“a”, “y”}, values={“ay1”, “ay2”} (b, x): names={“b”, “x”}, values={“bx1”, nullopt}</p>
<p>Finishing it off we name our new columns: feature_field_names={“a/b”,”x/y”} measurement_field_names={“f1”, “f2”} </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero22PivotLongerNodeOptions13row_templatesE">
<span id="_CPPv3N5arrow5acero22PivotLongerNodeOptions13row_templatesE"></span><span id="_CPPv2N5arrow5acero22PivotLongerNodeOptions13row_templatesE"></span><span id="arrow::acero::PivotLongerNodeOptions::row_templates__std::vector:PivotLongerRowTemplate:"></span><span class="target" id="classarrow_1_1acero_1_1_pivot_longer_node_options_1afcaf476c7654aadb60c98050e97d2f4c"></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><a class="reference internal" href="#_CPPv4N5arrow5acero22PivotLongerRowTemplateE" title="arrow::acero::PivotLongerRowTemplate"><span class="n"><span class="pre">PivotLongerRowTemplate</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">row_templates</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero22PivotLongerNodeOptions13row_templatesE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>One or more row templates to create new output rows. </p>
<p>Normally there are at least two row templates. The output # of rows will be the input # of rows * the number of row templates </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero22PivotLongerNodeOptions19feature_field_namesE">
<span id="_CPPv3N5arrow5acero22PivotLongerNodeOptions19feature_field_namesE"></span><span id="_CPPv2N5arrow5acero22PivotLongerNodeOptions19feature_field_namesE"></span><span id="arrow::acero::PivotLongerNodeOptions::feature_field_names__std::vector:ss:"></span><span class="target" id="classarrow_1_1acero_1_1_pivot_longer_node_options_1a22407484e00aed457f001e2a89d8d272"></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">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">feature_field_names</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero22PivotLongerNodeOptions19feature_field_namesE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The names of the columns which describe the new features. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero22PivotLongerNodeOptions23measurement_field_namesE">
<span id="_CPPv3N5arrow5acero22PivotLongerNodeOptions23measurement_field_namesE"></span><span id="_CPPv2N5arrow5acero22PivotLongerNodeOptions23measurement_field_namesE"></span><span id="arrow::acero::PivotLongerNodeOptions::measurement_field_names__std::vector:ss:"></span><span class="target" id="classarrow_1_1acero_1_1_pivot_longer_node_options_1aa56a10ebeb0e5d8d7b03c839626a4232"></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">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">measurement_field_names</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero22PivotLongerNodeOptions23measurement_field_namesE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The names of the columns which represent the measurements. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-attributes">Public Static Attributes</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero22PivotLongerNodeOptions5kNameE">
<span id="_CPPv3N5arrow5acero22PivotLongerNodeOptions5kNameE"></span><span id="_CPPv2N5arrow5acero22PivotLongerNodeOptions5kNameE"></span><span id="arrow::acero::PivotLongerNodeOptions::kName__std::string_view"></span><span class="target" id="classarrow_1_1acero_1_1_pivot_longer_node_options_1afcc28758d244e273002e620995f57d22"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">constexpr</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_view</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">kName</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="s"><span class="pre">&quot;pivot_longer&quot;</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero22PivotLongerNodeOptions5kNameE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
</dd></dl>
</section>
<section id="internals-for-creating-custom-nodes">
<h2>Internals for creating custom nodes<a class="headerlink" href="#internals-for-creating-custom-nodes" title="Permalink to this heading">#</a></h2>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv429default_exec_factory_registryv">
<span id="_CPPv329default_exec_factory_registryv"></span><span id="_CPPv229default_exec_factory_registryv"></span><span id="default_exec_factory_registry"></span><span class="target" id="group__acero-internals_1ga49cb34301eda02775f63631ee788e5af"></span><span class="n"><span class="pre">ExecFactoryRegistry</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">default_exec_factory_registry</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv429default_exec_factory_registryv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The default registry, which includes built-in factories. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv412MakeExecNodeRKNSt6stringEP8ExecPlanNSt6vectorIP8ExecNodeEERK15ExecNodeOptionsP19ExecFactoryRegistry">
<span id="_CPPv312MakeExecNodeRKNSt6stringEP8ExecPlanNSt6vectorIP8ExecNodeEERK15ExecNodeOptionsP19ExecFactoryRegistry"></span><span id="_CPPv212MakeExecNodeRKNSt6stringEP8ExecPlanNSt6vectorIP8ExecNodeEERK15ExecNodeOptionsP19ExecFactoryRegistry"></span><span id="MakeExecNode__ssCR.ExecPlanP.std::vector:ExecNodeP:.ExecNodeOptionsCR.ExecFactoryRegistryP"></span><span class="target" id="group__acero-internals_1gade27dcb3b9b9fd59b7c7a3cef3b75c50"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">Result</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">ExecNode</span></span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeExecNode</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">factory_name</span></span>, <span class="n"><span class="pre">ExecPlan</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">plan</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">ExecNode</span></span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">inputs</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">ExecNodeOptions</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">options</span></span>, <span class="n"><span class="pre">ExecFactoryRegistry</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">registry</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv429default_exec_factory_registryv" title="default_exec_factory_registry"><span class="n"><span class="pre">default_exec_factory_registry</span></span></a><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv412MakeExecNodeRKNSt6stringEP8ExecPlanNSt6vectorIP8ExecNodeEERK15ExecNodeOptionsP19ExecFactoryRegistry" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Construct an <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node"><span class="std std-ref">ExecNode</span></a> using the named factory. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4eqRK9ExecBatchRK9ExecBatch">
<span id="_CPPv3eqRK9ExecBatchRK9ExecBatch"></span><span id="_CPPv2eqRK9ExecBatchRK9ExecBatch"></span><span id="eq-operator__ExecBatchCR.ExecBatchCR"></span><span class="target" id="group__acero-internals_1ga79967edd21bbe5233c5bff06868da781"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="k"><span class="pre">operator</span></span><span class="o"><span class="pre">==</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">ExecBatch</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">l</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">ExecBatch</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">r</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4eqRK9ExecBatchRK9ExecBatch" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4neRK9ExecBatchRK9ExecBatch">
<span id="_CPPv3neRK9ExecBatchRK9ExecBatch"></span><span id="_CPPv2neRK9ExecBatchRK9ExecBatch"></span><span id="neq-operator__ExecBatchCR.ExecBatchCR"></span><span class="target" id="group__acero-internals_1gae3715515412f2ef3812fa80156209dfd"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="k"><span class="pre">operator</span></span><span class="o"><span class="pre">!=</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">ExecBatch</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">l</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">ExecBatch</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">r</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4neRK9ExecBatchRK9ExecBatch" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv47PrintToRK9ExecBatchPNSt7ostreamE">
<span id="_CPPv37PrintToRK9ExecBatchPNSt7ostreamE"></span><span id="_CPPv27PrintToRK9ExecBatchPNSt7ostreamE"></span><span id="PrintTo__ExecBatchCR.osP"></span><span class="target" id="group__acero-internals_1gab7f43b7c71bb4ddf7b6d049177482c63"></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">PrintTo</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">ExecBatch</span></span><span class="p"><span class="pre">&amp;</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">ostream</span></span><span class="p"><span class="pre">*</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv47PrintToRK9ExecBatchPNSt7ostreamE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecPlanE">
<span id="_CPPv3N5arrow5acero8ExecPlanE"></span><span id="_CPPv2N5arrow5acero8ExecPlanE"></span><span id="arrow::acero::ExecPlan"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan"></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">ExecPlan</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">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">enable_shared_from_this</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecPlanE" title="arrow::acero::ExecPlan"><span class="n"><span class="pre">ExecPlan</span></span></a><span class="p"><span class="pre">&gt;</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecPlanE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/exec_plan.h&gt;</em></div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-types">Public Types</p>
<dl class="cpp type">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecPlan10NodeVectorE">
<span id="_CPPv3N5arrow5acero8ExecPlan10NodeVectorE"></span><span id="_CPPv2N5arrow5acero8ExecPlan10NodeVectorE"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1a55615e74cb093c3f119aaf9344107427"></span><span class="k"><span class="pre">using</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NodeVector</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecNodeE" title="arrow::acero::ExecNode"><span class="n"><span class="pre">ExecNode</span></span></a><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">&gt;</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecPlan10NodeVectorE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
<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="_CPPv4N5arrow5acero8ExecPlanD0Ev">
<span id="_CPPv3N5arrow5acero8ExecPlanD0Ev"></span><span id="_CPPv2N5arrow5acero8ExecPlanD0Ev"></span><span id="arrow::acero::ExecPlan::~ExecPlan"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1abf04c36b83c791b06a796dde1a80afe2"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">~ExecPlan</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">default</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecPlanD0Ev" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecPlan13query_contextEv">
<span id="_CPPv3N5arrow5acero8ExecPlan13query_contextEv"></span><span id="_CPPv2N5arrow5acero8ExecPlan13query_contextEv"></span><span id="arrow::acero::ExecPlan::query_context"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1aa4beb7696b98e9b03bf83d8e2325e40d"></span><span class="n"><span class="pre">QueryContext</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">query_context</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecPlan13query_contextEv" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero8ExecPlan5nodesEv">
<span id="_CPPv3NK5arrow5acero8ExecPlan5nodesEv"></span><span id="_CPPv2NK5arrow5acero8ExecPlan5nodesEv"></span><span id="arrow::acero::ExecPlan::nodesC"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1a4530ed867e86efe24f45f4d87720a58e"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecPlan10NodeVectorE" title="arrow::acero::ExecPlan::NodeVector"><span class="n"><span class="pre">NodeVector</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">nodes</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="#_CPPv4NK5arrow5acero8ExecPlan5nodesEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>retrieve the nodes in the plan </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecPlan7AddNodeENSt10unique_ptrI8ExecNodeEE">
<span id="_CPPv3N5arrow5acero8ExecPlan7AddNodeENSt10unique_ptrI8ExecNodeEE"></span><span id="_CPPv2N5arrow5acero8ExecPlan7AddNodeENSt10unique_ptrI8ExecNodeEE"></span><span id="arrow::acero::ExecPlan::AddNode__std::unique_ptr:ExecNode:"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1a897e5abce9797cf275f2bcf8eb7cf774"></span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecNodeE" title="arrow::acero::ExecNode"><span class="n"><span class="pre">ExecNode</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">AddNode</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unique_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecNodeE" title="arrow::acero::ExecNode"><span class="n"><span class="pre">ExecNode</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">node</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecPlan7AddNodeENSt10unique_ptrI8ExecNodeEE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4I0DpEN5arrow5acero8ExecPlan11EmplaceNodeEP4NodeDpRR4Args">
<span id="_CPPv3I0DpEN5arrow5acero8ExecPlan11EmplaceNodeEDpRR4Args"></span><span id="_CPPv2I0DpEN5arrow5acero8ExecPlan11EmplaceNodeEDpRR4Args"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Node</span></span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="sig-name descname"><span class="n"><span class="pre">Args</span></span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1a38d9ff9adbb650daa7fb9037b04adc15"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4I0DpEN5arrow5acero8ExecPlan11EmplaceNodeEP4NodeDpRR4Args" title="arrow::acero::ExecPlan::EmplaceNode::Node"><span class="n"><span class="pre">Node</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">EmplaceNode</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0DpEN5arrow5acero8ExecPlan11EmplaceNodeEP4NodeDpRR4Args" title="arrow::acero::ExecPlan::EmplaceNode::Args"><span class="n"><span class="pre">Args</span></span></a><span class="p"><span class="pre">&amp;</span></span><span class="p"><span class="pre">&amp;</span></span><span class="p"><span class="pre">...</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">args</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0DpEN5arrow5acero8ExecPlan11EmplaceNodeEP4NodeDpRR4Args" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecPlan8ValidateEv">
<span id="_CPPv3N5arrow5acero8ExecPlan8ValidateEv"></span><span id="_CPPv2N5arrow5acero8ExecPlan8ValidateEv"></span><span id="arrow::acero::ExecPlan::Validate"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1a1104155658ca1d28ac20ba8be31f66e1"></span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Validate</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecPlan8ValidateEv" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecPlan14StartProducingEv">
<span id="_CPPv3N5arrow5acero8ExecPlan14StartProducingEv"></span><span id="_CPPv2N5arrow5acero8ExecPlan14StartProducingEv"></span><span id="arrow::acero::ExecPlan::StartProducing"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1ad6c42a55d47552fc7e3418bad83fa69b"></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">StartProducing</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecPlan14StartProducingEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Start producing on all nodes. </p>
<p>Nodes are started in reverse topological order, such that any node is started before all of its inputs. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecPlan13StopProducingEv">
<span id="_CPPv3N5arrow5acero8ExecPlan13StopProducingEv"></span><span id="_CPPv2N5arrow5acero8ExecPlan13StopProducingEv"></span><span id="arrow::acero::ExecPlan::StopProducing"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1a58aed46ca1dcd1105a7f54873d8ebdff"></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">StopProducing</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecPlan13StopProducingEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Stop producing on all nodes. </p>
<p>Triggers all sources to stop producing new data. In order to cleanly stop the plan will continue to run any tasks that are already in progress. The caller should still wait for <code class="docutils literal notranslate"><span class="pre">finished</span></code> to complete before destroying the plan. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecPlan8finishedEv">
<span id="_CPPv3N5arrow5acero8ExecPlan8finishedEv"></span><span id="_CPPv2N5arrow5acero8ExecPlan8finishedEv"></span><span id="arrow::acero::ExecPlan::finished"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1a589ca7189bd1d0ab91aac5ac620cf86c"></span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">finished</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecPlan8finishedEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>A future which will be marked finished when all tasks have finished. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero8ExecPlan11HasMetadataEv">
<span id="_CPPv3NK5arrow5acero8ExecPlan11HasMetadataEv"></span><span id="_CPPv2NK5arrow5acero8ExecPlan11HasMetadataEv"></span><span id="arrow::acero::ExecPlan::HasMetadataC"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1ac1af8407636633d3f4c4f6994b0822de"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">HasMetadata</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="#_CPPv4NK5arrow5acero8ExecPlan11HasMetadataEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Return whether the plan has non-empty metadata. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero8ExecPlan8metadataEv">
<span id="_CPPv3NK5arrow5acero8ExecPlan8metadataEv"></span><span id="_CPPv2NK5arrow5acero8ExecPlan8metadataEv"></span><span id="arrow::acero::ExecPlan::metadataC"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1afd46297503f09b9b90e68e4fe855e044"></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="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">metadata</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="#_CPPv4NK5arrow5acero8ExecPlan8metadataEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Return the plan’s attached metadata. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero8ExecPlan8ToStringEv">
<span id="_CPPv3NK5arrow5acero8ExecPlan8ToStringEv"></span><span id="_CPPv2NK5arrow5acero8ExecPlan8ToStringEv"></span><span id="arrow::acero::ExecPlan::ToStringC"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1a994e6b8f43752952ddeb85ef9fc09e79"></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="sig-name descname"><span class="n"><span class="pre">ToString</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="#_CPPv4NK5arrow5acero8ExecPlan8ToStringEv" title="Permalink to this definition">#</a><br /></dt>
<dd></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="_CPPv4N5arrow5acero8ExecPlan4MakeE12QueryOptions11ExecContextNSt10shared_ptrIK16KeyValueMetadataEE">
<span id="_CPPv3N5arrow5acero8ExecPlan4MakeE12QueryOptions11ExecContextNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="_CPPv2N5arrow5acero8ExecPlan4MakeE12QueryOptions11ExecContextNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="arrow::acero::ExecPlan::Make__QueryOptions.ExecContext.std::shared_ptr:KeyValueMetadataC:"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1a8413a8e8a12b2aeefa1a5b74f92ba0cf"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><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="#_CPPv4N5arrow5acero8ExecPlanE" title="arrow::acero::ExecPlan"><span class="n"><span class="pre">ExecPlan</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-name descname"><span class="n"><span class="pre">Make</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4N5arrow5acero12QueryOptionsE" title="arrow::acero::QueryOptions"><span class="n"><span class="pre">QueryOptions</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">options</span></span>, <span class="n"><span class="pre">ExecContext</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">exec_context</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">threaded_exec_context</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</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="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">metadata</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecPlan4MakeE12QueryOptions11ExecContextNSt10shared_ptrIK16KeyValueMetadataEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Make an empty exec plan. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecPlan4MakeE11ExecContextNSt10shared_ptrIK16KeyValueMetadataEE">
<span id="_CPPv3N5arrow5acero8ExecPlan4MakeE11ExecContextNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="_CPPv2N5arrow5acero8ExecPlan4MakeE11ExecContextNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="arrow::acero::ExecPlan::Make__ExecContext.std::shared_ptr:KeyValueMetadataC:"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1ac7cda78a7ef78227474e971ea71e35d7"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><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="#_CPPv4N5arrow5acero8ExecPlanE" title="arrow::acero::ExecPlan"><span class="n"><span class="pre">ExecPlan</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-name descname"><span class="n"><span class="pre">Make</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">ExecContext</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">exec_context</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">threaded_exec_context</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</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="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">metadata</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecPlan4MakeE11ExecContextNSt10shared_ptrIK16KeyValueMetadataEE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecPlan4MakeE12QueryOptionsP11ExecContextNSt10shared_ptrIK16KeyValueMetadataEE">
<span id="_CPPv3N5arrow5acero8ExecPlan4MakeE12QueryOptionsP11ExecContextNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="_CPPv2N5arrow5acero8ExecPlan4MakeE12QueryOptionsP11ExecContextNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="arrow::acero::ExecPlan::Make__QueryOptions.ExecContextP.std::shared_ptr:KeyValueMetadataC:"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1a56722222c709201e9c9ec32a77333d6d"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><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="#_CPPv4N5arrow5acero8ExecPlanE" title="arrow::acero::ExecPlan"><span class="n"><span class="pre">ExecPlan</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-name descname"><span class="n"><span class="pre">Make</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4N5arrow5acero12QueryOptionsE" title="arrow::acero::QueryOptions"><span class="n"><span class="pre">QueryOptions</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">options</span></span>, <span class="n"><span class="pre">ExecContext</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">exec_context</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="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">metadata</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecPlan4MakeE12QueryOptionsP11ExecContextNSt10shared_ptrIK16KeyValueMetadataEE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecPlan4MakeEP11ExecContextNSt10shared_ptrIK16KeyValueMetadataEE">
<span id="_CPPv3N5arrow5acero8ExecPlan4MakeEP11ExecContextNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="_CPPv2N5arrow5acero8ExecPlan4MakeEP11ExecContextNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="arrow::acero::ExecPlan::Make__ExecContextP.std::shared_ptr:KeyValueMetadataC:"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1ae4d6599f736441bb4a6a1e43e229ea2c"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><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="#_CPPv4N5arrow5acero8ExecPlanE" title="arrow::acero::ExecPlan"><span class="n"><span class="pre">ExecPlan</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-name descname"><span class="n"><span class="pre">Make</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">ExecContext</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">exec_context</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="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">metadata</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecPlan4MakeEP11ExecContextNSt10shared_ptrIK16KeyValueMetadataEE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-attributes">Public Static Attributes</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecPlan13kMaxBatchSizeE">
<span id="_CPPv3N5arrow5acero8ExecPlan13kMaxBatchSizeE"></span><span id="_CPPv2N5arrow5acero8ExecPlan13kMaxBatchSizeE"></span><span id="arrow::acero::ExecPlan::kMaxBatchSize__uint32_tC"></span><span class="target" id="classarrow_1_1acero_1_1_exec_plan_1a5b19f80bff43976d68a4bc7cefac9797"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">kMaxBatchSize</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">1</span></span><span class="w"> </span><span class="o"><span class="pre">&lt;&lt;</span></span><span class="w"> </span><span class="m"><span class="pre">15</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecPlan13kMaxBatchSizeE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecNodeE">
<span id="_CPPv3N5arrow5acero8ExecNodeE"></span><span id="_CPPv2N5arrow5acero8ExecNodeE"></span><span id="arrow::acero::ExecNode"></span><span class="target" id="classarrow_1_1acero_1_1_exec_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">ExecNode</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecNodeE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/exec_plan.h&gt;</em></div>
<p>Subclassed by arrow::acero::MapNode</p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-types">Public Types</p>
<dl class="cpp type">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecNode10NodeVectorE">
<span id="_CPPv3N5arrow5acero8ExecNode10NodeVectorE"></span><span id="_CPPv2N5arrow5acero8ExecNode10NodeVectorE"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1adb44bc0056a921949cdac8fe74dea6b8"></span><span class="k"><span class="pre">using</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NodeVector</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecNodeE" title="arrow::acero::ExecNode"><span class="n"><span class="pre">ExecNode</span></span></a><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">&gt;</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecNode10NodeVectorE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
<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="_CPPv4N5arrow5acero8ExecNodeD0Ev">
<span id="_CPPv3N5arrow5acero8ExecNodeD0Ev"></span><span id="_CPPv2N5arrow5acero8ExecNodeD0Ev"></span><span id="arrow::acero::ExecNode::~ExecNode"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1afd756332f9c1b49358d3443c553a3034"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">~ExecNode</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">default</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecNodeD0Ev" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero8ExecNode9kind_nameEv">
<span id="_CPPv3NK5arrow5acero8ExecNode9kind_nameEv"></span><span id="_CPPv2NK5arrow5acero8ExecNode9kind_nameEv"></span><span id="arrow::acero::ExecNode::kind_nameC"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1ad33cf6ebc3a09f1877bf3cadd23cc45a"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">kind_name</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="#_CPPv4NK5arrow5acero8ExecNode9kind_nameEv" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero8ExecNode10num_inputsEv">
<span id="_CPPv3NK5arrow5acero8ExecNode10num_inputsEv"></span><span id="_CPPv2NK5arrow5acero8ExecNode10num_inputsEv"></span><span id="arrow::acero::ExecNode::num_inputsC"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1a7ffe3d93a8308e77e25087157cb559ed"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">num_inputs</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="#_CPPv4NK5arrow5acero8ExecNode10num_inputsEv" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero8ExecNode6inputsEv">
<span id="_CPPv3NK5arrow5acero8ExecNode6inputsEv"></span><span id="_CPPv2NK5arrow5acero8ExecNode6inputsEv"></span><span id="arrow::acero::ExecNode::inputsC"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1a84b896a6626b6c44ea4c7133562cb9f3"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecNode10NodeVectorE" title="arrow::acero::ExecNode::NodeVector"><span class="n"><span class="pre">NodeVector</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">inputs</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="#_CPPv4NK5arrow5acero8ExecNode6inputsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>This node’s predecessors in the exec plan. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero8ExecNode7is_sinkEv">
<span id="_CPPv3NK5arrow5acero8ExecNode7is_sinkEv"></span><span id="_CPPv2NK5arrow5acero8ExecNode7is_sinkEv"></span><span id="arrow::acero::ExecNode::is_sinkC"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1a49082686f19ef76fdaa084c4212c7f07"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">is_sink</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="#_CPPv4NK5arrow5acero8ExecNode7is_sinkEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>True if the plan has no output schema (is a sink) </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero8ExecNode12input_labelsEv">
<span id="_CPPv3NK5arrow5acero8ExecNode12input_labelsEv"></span><span id="_CPPv2NK5arrow5acero8ExecNode12input_labelsEv"></span><span id="arrow::acero::ExecNode::input_labelsC"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1a0e972509347de9cdf64c61b57e6db457"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </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">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">string</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="sig-name descname"><span class="n"><span class="pre">input_labels</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="#_CPPv4NK5arrow5acero8ExecNode12input_labelsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Labels identifying the function of each input. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero8ExecNode6outputEv">
<span id="_CPPv3NK5arrow5acero8ExecNode6outputEv"></span><span id="_CPPv2NK5arrow5acero8ExecNode6outputEv"></span><span id="arrow::acero::ExecNode::outputC"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1a2a638b198980ff018354a30a014e7b5a"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecNodeE" title="arrow::acero::ExecNode"><span class="n"><span class="pre">ExecNode</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">output</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="#_CPPv4NK5arrow5acero8ExecNode6outputEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>This node’s successor in the exec plan. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero8ExecNode13output_schemaEv">
<span id="_CPPv3NK5arrow5acero8ExecNode13output_schemaEv"></span><span id="_CPPv2NK5arrow5acero8ExecNode13output_schemaEv"></span><span id="arrow::acero::ExecNode::output_schemaC"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1ad466307dd265ac9c644e8847bb6236ce"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </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">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="datatype.html#_CPPv4N5arrow6SchemaE" title="arrow::Schema"><span class="n"><span class="pre">Schema</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="sig-name descname"><span class="n"><span class="pre">output_schema</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="#_CPPv4NK5arrow5acero8ExecNode13output_schemaEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The datatypes for batches produced by this node. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecNode4planEv">
<span id="_CPPv3N5arrow5acero8ExecNode4planEv"></span><span id="_CPPv2N5arrow5acero8ExecNode4planEv"></span><span id="arrow::acero::ExecNode::plan"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1a464828255d426cda4b38b47722b4c121"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecPlanE" title="arrow::acero::ExecPlan"><span class="n"><span class="pre">ExecPlan</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">plan</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecNode4planEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>This node’s exec plan. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero8ExecNode5labelEv">
<span id="_CPPv3NK5arrow5acero8ExecNode5labelEv"></span><span id="_CPPv2NK5arrow5acero8ExecNode5labelEv"></span><span id="arrow::acero::ExecNode::labelC"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1a32f796fbd65ce707f95ce8c8111d98f5"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </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="sig-name descname"><span class="n"><span class="pre">label</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="#_CPPv4NK5arrow5acero8ExecNode5labelEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>An optional label, for display and debugging. </p>
<p>There is no guarantee that this value is non-empty or unique. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecNode8SetLabelENSt6stringE">
<span id="_CPPv3N5arrow5acero8ExecNode8SetLabelENSt6stringE"></span><span id="_CPPv2N5arrow5acero8ExecNode8SetLabelENSt6stringE"></span><span id="arrow::acero::ExecNode::SetLabel__ss"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1a9ebffed135a2adf468e4f1a9d122149b"></span><span class="k"><span class="pre">inline</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">SetLabel</span></span></span><span class="sig-paren">(</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="n sig-param"><span class="pre">label</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecNode8SetLabelENSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero8ExecNode8ValidateEv">
<span id="_CPPv3NK5arrow5acero8ExecNode8ValidateEv"></span><span id="_CPPv2NK5arrow5acero8ExecNode8ValidateEv"></span><span id="arrow::acero::ExecNode::ValidateC"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1aac6d0d6c319c1c51eab4e6f2cdcc2a50"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Validate</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="#_CPPv4NK5arrow5acero8ExecNode8ValidateEv" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero8ExecNode8orderingEv">
<span id="_CPPv3NK5arrow5acero8ExecNode8orderingEv"></span><span id="_CPPv2NK5arrow5acero8ExecNode8orderingEv"></span><span id="arrow::acero::ExecNode::orderingC"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1ae6086d5207c4d76cb6d0b84b209d6e11"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">Ordering</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="sig-name descname"><span class="n"><span class="pre">ordering</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="#_CPPv4NK5arrow5acero8ExecNode8orderingEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>the ordering of the output batches </p>
<p>This does not guarantee the batches will be emitted by this node in order. Instead it guarantees that the batches will have their <a class="reference internal" href="#group__compute-internals_1gaf450f1e0bb427cd8de488b20017e4fba"><span class="std std-ref">ExecBatch::index</span></a> property set in a way that respects this ordering.</p>
<p>In other words, given the ordering {{“x”, SortOrder::Ascending}} we know that all values of x in a batch with index N will be less than or equal to all values of x in a batch with index N+k (assuming k &gt; 0). Furthermore, we also know that values will be sorted within a batch. Any row N will have a value of x that is less than the value for any row N+k.</p>
<p>Note that an ordering can be both Ordering::Unordered and Ordering::Implicit. A node’s output should be marked Ordering::Unordered if the order is non-deterministic. For example, a hash-join has no predictable output order.</p>
<p>If the ordering is Ordering::Implicit<p>then there is a meaningful order but that ordering is not represented by any column in the data. The most common case for this is when reading data from an in-memory table. The data has an implicit “row</p>
<p>order” which is not necessarily represented in the data set.</p>
</p>
<p>A filter or project node will not modify the ordering. Nothing needs to be done other than ensure the index assigned to output batches is the same as the input batch that was mapped.</p>
<p>Other nodes may introduce order. For example, an order-by node will emit a brand new ordering independent of the input ordering.</p>
<p>Finally, as described above, such as a hash-join or aggregation may may destroy ordering (although these nodes could also choose to establish a new ordering based on the hash keys).</p>
<p>Some nodes will require an ordering. For example, a fetch node or an asof join node will only function if the input data is ordered (for fetch it is enough to be implicitly ordered. For an asof join the ordering must be explicit and compatible with the on key.)</p>
<p>Nodes that maintain ordering should be careful to avoid introducing gaps in the batch index. This may require emitting empty batches in order to maintain continuity. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecNode13InputReceivedEP8ExecNode9ExecBatch">
<span id="_CPPv3N5arrow5acero8ExecNode13InputReceivedEP8ExecNode9ExecBatch"></span><span id="_CPPv2N5arrow5acero8ExecNode13InputReceivedEP8ExecNode9ExecBatch"></span><span id="arrow::acero::ExecNode::InputReceived__ExecNodeP.ExecBatch"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1a018f9527a3633885b8a91d57c13a6ab7"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">InputReceived</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecNodeE" title="arrow::acero::ExecNode"><span class="n"><span class="pre">ExecNode</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">input</span></span>, <span class="n"><span class="pre">ExecBatch</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">batch</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="#_CPPv4N5arrow5acero8ExecNode13InputReceivedEP8ExecNode9ExecBatch" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Upstream API: These functions are called by input nodes that want to inform this node about an updated condition (a new input batch or an impending end of stream). </p>
<p>Implementation rules:<ul class="simple">
<li><p>these may be called anytime after <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node_1a3d8c361caa59995a4861013a6c87c010"><span class="std std-ref">StartProducing()</span></a> has succeeded (and even during or after <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node_1a12ffed5adb38e663e8cdfaaebf2b7e1c"><span class="std std-ref">StopProducing()</span></a>)</p></li>
<li><p>these may be called concurrently</p></li>
<li><p>these are allowed to call back into <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node_1a17eb9e16f368b2d92e8ec10390cc4efe"><span class="std std-ref">PauseProducing()</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node_1a91581a3a9dabc76be8bcacb3abaac4f1"><span class="std std-ref">ResumeProducing()</span></a> and <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node_1a12ffed5adb38e663e8cdfaaebf2b7e1c"><span class="std std-ref">StopProducing()</span></a> Transfer input batch to <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node"><span class="std std-ref">ExecNode</span></a></p></li>
</ul>
</p>
<p>A node will typically perform some kind of operation on the batch and then call InputReceived on its outputs with the result.</p>
<p>Other nodes may need to accumulate some number of inputs before any output can be produced. These nodes will add the batch to some kind of in-memory accumulation queue and return. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecNode13InputFinishedEP8ExecNodei">
<span id="_CPPv3N5arrow5acero8ExecNode13InputFinishedEP8ExecNodei"></span><span id="_CPPv2N5arrow5acero8ExecNode13InputFinishedEP8ExecNodei"></span><span id="arrow::acero::ExecNode::InputFinished__ExecNodeP.i"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1a94e067c25c6854c94f8676c4591fe09d"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">InputFinished</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecNodeE" title="arrow::acero::ExecNode"><span class="n"><span class="pre">ExecNode</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">input</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">total_batches</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="#_CPPv4N5arrow5acero8ExecNode13InputFinishedEP8ExecNodei" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Mark the inputs finished after the given number of batches. </p>
<p>This may be called before all inputs are received. This simply fixes the total number of incoming batches for an input, so that the <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node"><span class="std std-ref">ExecNode</span></a> knows when it has received all input, regardless of order. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecNode4InitEv">
<span id="_CPPv3N5arrow5acero8ExecNode4InitEv"></span><span id="_CPPv2N5arrow5acero8ExecNode4InitEv"></span><span id="arrow::acero::ExecNode::Init"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1ab910ee1db916a77506818abed8e381bb"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Init</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecNode4InitEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Perform any needed initialization. </p>
<p>This hook performs any actions in between creation of <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_plan"><span class="std std-ref">ExecPlan</span></a> and the call to StartProducing. An example could be Bloom filter pushdown. The order of ExecNodes that executes this method is undefined, but the calls are made synchronously.</p>
<p>At this point a node can rely on all inputs &amp; outputs (and the input schemas) being well defined. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecNode14StartProducingEv">
<span id="_CPPv3N5arrow5acero8ExecNode14StartProducingEv"></span><span id="_CPPv2N5arrow5acero8ExecNode14StartProducingEv"></span><span id="arrow::acero::ExecNode::StartProducing"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1a3d8c361caa59995a4861013a6c87c010"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">StartProducing</span></span></span><span class="sig-paren">(</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="#_CPPv4N5arrow5acero8ExecNode14StartProducingEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Lifecycle API: </p>
<p><ul class="simple">
<li><p>start / stop to initiate and terminate production</p></li>
<li><p>pause / resume to apply backpressure</p></li>
</ul>
</p>
<p>Implementation rules:<ul class="simple">
<li><p><a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node_1a3d8c361caa59995a4861013a6c87c010"><span class="std std-ref">StartProducing()</span></a> should not recurse into the inputs, as it is handled by <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_plan_1ad6c42a55d47552fc7e3418bad83fa69b"><span class="std std-ref">ExecPlan::StartProducing()</span></a></p></li>
<li><p><a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node_1a17eb9e16f368b2d92e8ec10390cc4efe"><span class="std std-ref">PauseProducing()</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node_1a91581a3a9dabc76be8bcacb3abaac4f1"><span class="std std-ref">ResumeProducing()</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node_1a12ffed5adb38e663e8cdfaaebf2b7e1c"><span class="std std-ref">StopProducing()</span></a> may be called concurrently, potentially even before the call to StartProducing has finished.</p></li>
<li><p><a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node_1a17eb9e16f368b2d92e8ec10390cc4efe"><span class="std std-ref">PauseProducing()</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node_1a91581a3a9dabc76be8bcacb3abaac4f1"><span class="std std-ref">ResumeProducing()</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node_1a12ffed5adb38e663e8cdfaaebf2b7e1c"><span class="std std-ref">StopProducing()</span></a> may be called by the downstream nodes’ <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node_1a018f9527a3633885b8a91d57c13a6ab7"><span class="std std-ref">InputReceived()</span></a>, <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node_1a94e067c25c6854c94f8676c4591fe09d"><span class="std std-ref">InputFinished()</span></a> methods</p></li>
</ul>
</p>
<p>StopProducing may be called due to an error, by the user (e.g. cancel), or because a node has all the data it needs (e.g. limit, top-k on sorted data). This means the method may be called multiple times and we have the following additional rules<ul class="simple">
<li><p><a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node_1a12ffed5adb38e663e8cdfaaebf2b7e1c"><span class="std std-ref">StopProducing()</span></a> must be idempotent</p></li>
<li><p><a class="reference internal" href="#classarrow_1_1acero_1_1_exec_node_1a12ffed5adb38e663e8cdfaaebf2b7e1c"><span class="std std-ref">StopProducing()</span></a> must be forwarded to inputs (this is needed for the limit/top-k case because we may not be stopping the entire plan)</p></li>
</ul>
</p>
<p>Start producing</p>
<p>This must only be called once.</p>
<p>This is typically called automatically by <a class="reference internal" href="#classarrow_1_1acero_1_1_exec_plan_1ad6c42a55d47552fc7e3418bad83fa69b"><span class="std std-ref">ExecPlan::StartProducing()</span></a>. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecNode14PauseProducingEP8ExecNode7int32_t">
<span id="_CPPv3N5arrow5acero8ExecNode14PauseProducingEP8ExecNode7int32_t"></span><span id="_CPPv2N5arrow5acero8ExecNode14PauseProducingEP8ExecNode7int32_t"></span><span id="arrow::acero::ExecNode::PauseProducing__ExecNodeP.int32_t"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1a17eb9e16f368b2d92e8ec10390cc4efe"></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">PauseProducing</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecNodeE" title="arrow::acero::ExecNode"><span class="n"><span class="pre">ExecNode</span></span></a><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="n"><span class="pre">int32_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">counter</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="#_CPPv4N5arrow5acero8ExecNode14PauseProducingEP8ExecNode7int32_t" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Pause producing temporarily. </p>
<p>
This call is a hint that an output node is currently not willing to receive data.</p>
<p>This may be called any number of times. However, the node is still free to produce data (which may be difficult to prevent anyway if data is produced using multiple threads). </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>output</strong> – Pointer to the output that is full </p></li>
<li><p><strong>counter</strong> – Counter used to sequence calls to pause/resume</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecNode15ResumeProducingEP8ExecNode7int32_t">
<span id="_CPPv3N5arrow5acero8ExecNode15ResumeProducingEP8ExecNode7int32_t"></span><span id="_CPPv2N5arrow5acero8ExecNode15ResumeProducingEP8ExecNode7int32_t"></span><span id="arrow::acero::ExecNode::ResumeProducing__ExecNodeP.int32_t"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1a91581a3a9dabc76be8bcacb3abaac4f1"></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">ResumeProducing</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecNodeE" title="arrow::acero::ExecNode"><span class="n"><span class="pre">ExecNode</span></span></a><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="n"><span class="pre">int32_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">counter</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="#_CPPv4N5arrow5acero8ExecNode15ResumeProducingEP8ExecNode7int32_t" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Resume producing after a temporary pause. </p>
<p>
This call is a hint that an output node is willing to receive data again.</p>
<p>This may be called any number of times. </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>output</strong> – Pointer to the output that is now free </p></li>
<li><p><strong>counter</strong> – Counter used to sequence calls to pause/resume</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero8ExecNode13StopProducingEv">
<span id="_CPPv3N5arrow5acero8ExecNode13StopProducingEv"></span><span id="_CPPv2N5arrow5acero8ExecNode13StopProducingEv"></span><span id="arrow::acero::ExecNode::StopProducing"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1a12ffed5adb38e663e8cdfaaebf2b7e1c"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">StopProducing</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow5acero8ExecNode13StopProducingEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Stop producing new data. </p>
<p>If this node is a source then the source should stop generating data as quickly as possible. If this node is not a source then there is typically nothing that needs to be done although a node may choose to start ignoring incoming data.</p>
<p>This method will be called when an error occurs in the plan This method may also be called by the user if they wish to end a plan early Finally, this method may be called if a node determines it no longer needs any more input (for example, a limit node).</p>
<p>This method may be called multiple times.</p>
<p>This is not a pause. There will be no way to start the source again after this has been called. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow5acero8ExecNode8ToStringEi">
<span id="_CPPv3NK5arrow5acero8ExecNode8ToStringEi"></span><span id="_CPPv2NK5arrow5acero8ExecNode8ToStringEi"></span><span id="arrow::acero::ExecNode::ToString__iC"></span><span class="target" id="classarrow_1_1acero_1_1_exec_node_1accf454384998a2127433170bb011a648"></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="sig-name descname"><span class="n"><span class="pre">ToString</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">indent</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><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow5acero8ExecNode8ToStringEi" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19ExecFactoryRegistryE">
<span id="_CPPv3N5arrow5acero19ExecFactoryRegistryE"></span><span id="_CPPv2N5arrow5acero19ExecFactoryRegistryE"></span><span id="arrow::acero::ExecFactoryRegistry"></span><span class="target" id="classarrow_1_1acero_1_1_exec_factory_registry"></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">ExecFactoryRegistry</span></span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19ExecFactoryRegistryE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/acero/exec_plan.h&gt;</em></div>
<p>An extensible registry for factories of ExecNodes. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-types">Public Types</p>
<dl class="cpp type">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19ExecFactoryRegistry7FactoryE">
<span id="_CPPv3N5arrow5acero19ExecFactoryRegistry7FactoryE"></span><span id="_CPPv2N5arrow5acero19ExecFactoryRegistry7FactoryE"></span><span class="target" id="classarrow_1_1acero_1_1_exec_factory_registry_1aadc5e7f025b7da839a3686c9ef748a45"></span><span class="k"><span class="pre">using</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Factory</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</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">function</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecNodeE" title="arrow::acero::ExecNode"><span class="n"><span class="pre">ExecNode</span></span></a><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">(</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecPlanE" title="arrow::acero::ExecPlan"><span class="n"><span class="pre">ExecPlan</span></span></a><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">,</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero8ExecNodeE" title="arrow::acero::ExecNode"><span class="n"><span class="pre">ExecNode</span></span></a><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow5acero15ExecNodeOptionsE" title="arrow::acero::ExecNodeOptions"><span class="n"><span class="pre">ExecNodeOptions</span></span></a><span class="p"><span class="pre">&amp;</span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">&gt;</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19ExecFactoryRegistry7FactoryE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
<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="_CPPv4N5arrow5acero19ExecFactoryRegistryD0Ev">
<span id="_CPPv3N5arrow5acero19ExecFactoryRegistryD0Ev"></span><span id="_CPPv2N5arrow5acero19ExecFactoryRegistryD0Ev"></span><span id="arrow::acero::ExecFactoryRegistry::~ExecFactoryRegistry"></span><span class="target" id="classarrow_1_1acero_1_1_exec_factory_registry_1a05406bd248bb991b1f010ac338b296e1"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">~ExecFactoryRegistry</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">default</span></span><a class="headerlink" href="#_CPPv4N5arrow5acero19ExecFactoryRegistryD0Ev" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19ExecFactoryRegistry10GetFactoryERKNSt6stringE">
<span id="_CPPv3N5arrow5acero19ExecFactoryRegistry10GetFactoryERKNSt6stringE"></span><span id="_CPPv2N5arrow5acero19ExecFactoryRegistry10GetFactoryERKNSt6stringE"></span><span id="arrow::acero::ExecFactoryRegistry::GetFactory__ssCR"></span><span class="target" id="classarrow_1_1acero_1_1_exec_factory_registry_1a64bc140b189c947d240b6cc7edf837dd"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow5acero19ExecFactoryRegistry7FactoryE" title="arrow::acero::ExecFactoryRegistry::Factory"><span class="n"><span class="pre">Factory</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFactory</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">factory_name</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="#_CPPv4N5arrow5acero19ExecFactoryRegistry10GetFactoryERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Get the named factory from this registry. </p>
<p>will raise if factory_name is not found </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow5acero19ExecFactoryRegistry10AddFactoryENSt6stringE7Factory">
<span id="_CPPv3N5arrow5acero19ExecFactoryRegistry10AddFactoryENSt6stringE7Factory"></span><span id="_CPPv2N5arrow5acero19ExecFactoryRegistry10AddFactoryENSt6stringE7Factory"></span><span id="arrow::acero::ExecFactoryRegistry::AddFactory__ss.Factory"></span><span class="target" id="classarrow_1_1acero_1_1_exec_factory_registry_1a6f27200b01485877c914b58b10adaea6"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">AddFactory</span></span></span><span class="sig-paren">(</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="n sig-param"><span class="pre">factory_name</span></span>, <a class="reference internal" href="#_CPPv4N5arrow5acero19ExecFactoryRegistry7FactoryE" title="arrow::acero::ExecFactoryRegistry::Factory"><span class="n"><span class="pre">Factory</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">factory</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="#_CPPv4N5arrow5acero19ExecFactoryRegistry10AddFactoryENSt6stringE7Factory" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Add a factory to this registry with the provided name. </p>
<p>will raise if factory_name is already in the registry </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow7compute9ExecBatchE">
<span id="_CPPv3N5arrow7compute9ExecBatchE"></span><span id="_CPPv2N5arrow7compute9ExecBatchE"></span><span id="arrow::compute::ExecBatch"></span><span class="target" id="structarrow_1_1compute_1_1_exec_batch"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ExecBatch</span></span></span><a class="headerlink" href="#_CPPv4N5arrow7compute9ExecBatchE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/compute/exec.h&gt;</em></div>
<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="_CPPv4N5arrow7compute9ExecBatch9ExecBatchEv">
<span id="_CPPv3N5arrow7compute9ExecBatch9ExecBatchEv"></span><span id="_CPPv2N5arrow7compute9ExecBatch9ExecBatchEv"></span><span id="arrow::compute::ExecBatch::ExecBatch"></span><span class="target" id="group__compute-internals_1ga8a924275c88799eea82cbc3adc812623"></span><span class="sig-name descname"><span class="n"><span class="pre">ExecBatch</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">default</span></span><a class="headerlink" href="#_CPPv4N5arrow7compute9ExecBatch9ExecBatchEv" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow7compute9ExecBatch9ExecBatchENSt6vectorI5DatumEE7int64_t">
<span id="_CPPv3N5arrow7compute9ExecBatch9ExecBatchENSt6vectorI5DatumEE7int64_t"></span><span id="_CPPv2N5arrow7compute9ExecBatch9ExecBatchENSt6vectorI5DatumEE7int64_t"></span><span id="arrow::compute::ExecBatch::ExecBatch__std::vector:Datum:.int64_t"></span><span class="target" id="group__compute-internals_1ga6c55b1794c04df979b1e1bffe565b824"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ExecBatch</span></span></span><span class="sig-paren">(</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><a class="reference internal" href="compute.html#_CPPv4N5arrow5DatumE" title="arrow::Datum"><span class="n"><span class="pre">Datum</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">values</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">length</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow7compute9ExecBatch9ExecBatchENSt6vectorI5DatumEE7int64_t" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow7compute9ExecBatch9ExecBatchERK11RecordBatch">
<span id="_CPPv3N5arrow7compute9ExecBatch9ExecBatchERK11RecordBatch"></span><span id="_CPPv2N5arrow7compute9ExecBatch9ExecBatchERK11RecordBatch"></span><span id="arrow::compute::ExecBatch::ExecBatch__RecordBatchCR"></span><span class="target" id="group__compute-internals_1gaf430544a86d928944ad44cca2549193a"></span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ExecBatch</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </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="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow7compute9ExecBatch9ExecBatchERK11RecordBatch" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow7compute9ExecBatch13ToRecordBatchENSt10shared_ptrI6SchemaEEP10MemoryPool">
<span id="_CPPv3NK5arrow7compute9ExecBatch13ToRecordBatchENSt10shared_ptrI6SchemaEEP10MemoryPool"></span><span id="_CPPv2NK5arrow7compute9ExecBatch13ToRecordBatchENSt10shared_ptrI6SchemaEEP10MemoryPool"></span><span id="arrow::compute::ExecBatch::ToRecordBatch__std::shared_ptr:Schema:.MemoryPoolPC"></span><span class="target" id="group__compute-internals_1ga5fa3e2f6295c1741394df31257ea8fcd"></span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><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="table.html#_CPPv4N5arrow11RecordBatchE" title="arrow::RecordBatch"><span class="n"><span class="pre">RecordBatch</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-name descname"><span class="n"><span class="pre">ToRecordBatch</span></span></span><span class="sig-paren">(</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="datatype.html#_CPPv4N5arrow6SchemaE" title="arrow::Schema"><span class="n"><span class="pre">Schema</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">schema</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="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="memory.html#_CPPv4N5arrow19default_memory_poolEv" title="arrow::default_memory_pool"><span class="n"><span class="pre">default_memory_pool</span></span></a><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow7compute9ExecBatch13ToRecordBatchENSt10shared_ptrI6SchemaEEP10MemoryPool" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow7compute9ExecBatch15TotalBufferSizeEv">
<span id="_CPPv3NK5arrow7compute9ExecBatch15TotalBufferSizeEv"></span><span id="_CPPv2NK5arrow7compute9ExecBatch15TotalBufferSizeEv"></span><span id="arrow::compute::ExecBatch::TotalBufferSizeC"></span><span class="target" id="group__compute-internals_1gaa3d45c52a4e3e4c735c14c7973bf0358"></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">TotalBufferSize</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="#_CPPv4NK5arrow7compute9ExecBatch15TotalBufferSizeEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The sum of bytes in each buffer referenced by the batch. </p>
<p>Note: Scalars are not counted Note: Some values may referenced only part of a buffer, for example, an array with an offset. The actual data visible to this batch will be smaller than the total buffer size in this case. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4I0ENK5arrow7compute9ExecBatchixERK5Datum10index_type">
<span id="_CPPv3I0ENK5arrow7compute9ExecBatchixE10index_type"></span><span id="_CPPv2I0ENK5arrow7compute9ExecBatchixE10index_type"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">index_type</span></span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="group__compute-internals_1gaa740ae2a35584f4b866258f132fff42d"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="compute.html#_CPPv4N5arrow5DatumE" title="arrow::Datum"><span class="n"><span class="pre">Datum</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="sig-name descname"><span class="k"><span class="pre">operator</span></span><span class="o"><span class="pre">[]</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0ENK5arrow7compute9ExecBatchixERK5Datum10index_type" title="arrow::compute::ExecBatch::operator[]::index_type"><span class="n"><span class="pre">index_type</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">i</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4I0ENK5arrow7compute9ExecBatchixERK5Datum10index_type" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Return the value at the i-th index. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow7compute9ExecBatch6EqualsERK9ExecBatch">
<span id="_CPPv3NK5arrow7compute9ExecBatch6EqualsERK9ExecBatch"></span><span id="_CPPv2NK5arrow7compute9ExecBatch6EqualsERK9ExecBatch"></span><span id="arrow::compute::ExecBatch::Equals__ExecBatchCRC"></span><span class="target" id="group__compute-internals_1gae8cb4fec294af83773464ac2b6d9300a"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Equals</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow7compute9ExecBatchE" title="arrow::compute::ExecBatch"><span class="n"><span class="pre">ExecBatch</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">other</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow7compute9ExecBatch6EqualsERK9ExecBatch" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow7compute9ExecBatch10num_valuesEv">
<span id="_CPPv3NK5arrow7compute9ExecBatch10num_valuesEv"></span><span id="_CPPv2NK5arrow7compute9ExecBatch10num_valuesEv"></span><span id="arrow::compute::ExecBatch::num_valuesC"></span><span class="target" id="group__compute-internals_1gadef6c1c4a06d679f85ebc80d210c41ca"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">num_values</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="#_CPPv4NK5arrow7compute9ExecBatch10num_valuesEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>A convenience for the number of values / arguments. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow7compute9ExecBatch5SliceE7int64_t7int64_t">
<span id="_CPPv3NK5arrow7compute9ExecBatch5SliceE7int64_t7int64_t"></span><span id="_CPPv2NK5arrow7compute9ExecBatch5SliceE7int64_t7int64_t"></span><span id="arrow::compute::ExecBatch::Slice__int64_t.int64_tC"></span><span class="target" id="group__compute-internals_1gad50e919100ecee866abf4669e24f2063"></span><a class="reference internal" href="#_CPPv4N5arrow7compute9ExecBatchE" title="arrow::compute::ExecBatch"><span class="n"><span class="pre">ExecBatch</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Slice</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">offset</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">length</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow7compute9ExecBatch5SliceE7int64_t7int64_t" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow7compute9ExecBatch12SelectValuesERKNSt6vectorIiEE">
<span id="_CPPv3NK5arrow7compute9ExecBatch12SelectValuesERKNSt6vectorIiEE"></span><span id="_CPPv2NK5arrow7compute9ExecBatch12SelectValuesERKNSt6vectorIiEE"></span><span id="arrow::compute::ExecBatch::SelectValues__std::vector:i:CRC"></span><span class="target" id="group__compute-internals_1ga9dd3be5e3ff0d80e16b4ffc19a91c5b6"></span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow7compute9ExecBatchE" title="arrow::compute::ExecBatch"><span class="n"><span class="pre">ExecBatch</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SelectValues</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">int</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">ids</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow7compute9ExecBatch12SelectValuesERKNSt6vectorIiEE" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow7compute9ExecBatch8GetTypesEv">
<span id="_CPPv3NK5arrow7compute9ExecBatch8GetTypesEv"></span><span id="_CPPv2NK5arrow7compute9ExecBatch8GetTypesEv"></span><span id="arrow::compute::ExecBatch::GetTypesC"></span><span class="target" id="group__compute-internals_1ga72d927f2039c871e5df7bf9a1f24bb14"></span><span class="k"><span class="pre">inline</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">TypeHolder</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetTypes</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="#_CPPv4NK5arrow7compute9ExecBatch8GetTypesEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>A convenience for returning the types from the batch. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow7compute9ExecBatch8ToStringEv">
<span id="_CPPv3NK5arrow7compute9ExecBatch8ToStringEv"></span><span id="_CPPv2NK5arrow7compute9ExecBatch8ToStringEv"></span><span id="arrow::compute::ExecBatch::ToStringC"></span><span class="target" id="group__compute-internals_1ga55ea5e20035569fc3c854cb9c277b582"></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="sig-name descname"><span class="n"><span class="pre">ToString</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="#_CPPv4NK5arrow7compute9ExecBatch8ToStringEv" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow7compute9ExecBatch6valuesE">
<span id="_CPPv3N5arrow7compute9ExecBatch6valuesE"></span><span id="_CPPv2N5arrow7compute9ExecBatch6valuesE"></span><span id="arrow::compute::ExecBatch::values__std::vector:Datum:"></span><span class="target" id="group__compute-internals_1ga450637fa69a2a67b63dfa911c153d62e"></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><a class="reference internal" href="compute.html#_CPPv4N5arrow5DatumE" title="arrow::Datum"><span class="n"><span class="pre">Datum</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">values</span></span></span><a class="headerlink" href="#_CPPv4N5arrow7compute9ExecBatch6valuesE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The values representing positional arguments to be passed to a kernel’s exec function for processing. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow7compute9ExecBatch16selection_vectorE">
<span id="_CPPv3N5arrow7compute9ExecBatch16selection_vectorE"></span><span id="_CPPv2N5arrow7compute9ExecBatch16selection_vectorE"></span><span id="arrow::compute::ExecBatch::selection_vector__std::shared_ptr:SelectionVector:"></span><span class="target" id="group__compute-internals_1ga62da2946f3c08b0a90d037d17855800f"></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">SelectionVector</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">selection_vector</span></span></span><a class="headerlink" href="#_CPPv4N5arrow7compute9ExecBatch16selection_vectorE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>A deferred filter represented as an array of indices into the values. </p>
<p>For example, the filter [true, true, false, true] would be represented as the selection vector [0, 1, 3]. When the selection vector is set, <a class="reference internal" href="#group__compute-internals_1gadb23e5cc02741af6d409e6694cb16b8b"><span class="std std-ref">ExecBatch::length</span></a> is equal to the length of this array. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow7compute9ExecBatch9guaranteeE">
<span id="_CPPv3N5arrow7compute9ExecBatch9guaranteeE"></span><span id="_CPPv2N5arrow7compute9ExecBatch9guaranteeE"></span><span id="arrow::compute::ExecBatch::guarantee__Expression"></span><span class="target" id="group__compute-internals_1ga4216ee0a15a77caa766ab96e96dd3729"></span><a class="reference internal" href="compute.html#_CPPv4N5arrow7compute10ExpressionE" title="arrow::compute::Expression"><span class="n"><span class="pre">Expression</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">guarantee</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="compute.html#_CPPv47literal5Datum" title="literal"><span class="n"><span class="pre">literal</span></span></a><span class="p"><span class="pre">(</span></span><span class="k"><span class="pre">true</span></span><span class="p"><span class="pre">)</span></span><a class="headerlink" href="#_CPPv4N5arrow7compute9ExecBatch9guaranteeE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>A predicate <a class="reference internal" href="compute.html#classarrow_1_1compute_1_1_expression"><span class="std std-ref">Expression</span></a> guaranteed to evaluate to true for all rows in this batch. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow7compute9ExecBatch6lengthE">
<span id="_CPPv3N5arrow7compute9ExecBatch6lengthE"></span><span id="_CPPv2N5arrow7compute9ExecBatch6lengthE"></span><span id="arrow::compute::ExecBatch::length__int64_t"></span><span class="target" id="group__compute-internals_1gadb23e5cc02741af6d409e6694cb16b8b"></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">length</span></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="#_CPPv4N5arrow7compute9ExecBatch6lengthE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The semantic length of the <a class="reference internal" href="#structarrow_1_1compute_1_1_exec_batch"><span class="std std-ref">ExecBatch</span></a>. </p>
<p>When the values are all scalars, the length should be set to 1 for non-aggregate kernels, otherwise the length is taken from the array values, except when there is a selection vector. When there is a selection vector set, the length of the batch is the length of the selection. <a class="reference internal" href="compute.html#structarrow_1_1compute_1_1_aggregate"><span class="std std-ref">Aggregate</span></a> kernels can have an <a class="reference internal" href="#structarrow_1_1compute_1_1_exec_batch"><span class="std std-ref">ExecBatch</span></a> formed by projecting just the partition columns from a batch in which case, it would have scalar rows with length greater than 1.</p>
<p>If the array values are of length 0 then the length is 0 regardless of whether any values are <a class="reference internal" href="scalar.html#structarrow_1_1_scalar"><span class="std std-ref">Scalar</span></a>. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow7compute9ExecBatch5indexE">
<span id="_CPPv3N5arrow7compute9ExecBatch5indexE"></span><span id="_CPPv2N5arrow7compute9ExecBatch5indexE"></span><span id="arrow::compute::ExecBatch::index__int64_t"></span><span class="target" id="group__compute-internals_1gaf450f1e0bb427cd8de488b20017e4fba"></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">index</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">kUnsequencedIndex</span></span><a class="headerlink" href="#_CPPv4N5arrow7compute9ExecBatch5indexE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>index of this batch in a sorted stream of batches </p>
<p>This index must be strictly monotonic starting at 0 without gaps or it can be set to kUnsequencedIndex if there is no meaningful order </p>
</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="_CPPv4N5arrow7compute9ExecBatch11InferLengthERKNSt6vectorI5DatumEE">
<span id="_CPPv3N5arrow7compute9ExecBatch11InferLengthERKNSt6vectorI5DatumEE"></span><span id="_CPPv2N5arrow7compute9ExecBatch11InferLengthERKNSt6vectorI5DatumEE"></span><span id="arrow::compute::ExecBatch::InferLength__std::vector:Datum:CR"></span><span class="target" id="group__compute-internals_1gaa8042afa4a141c474c2c8f31561b6319"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><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="sig-name descname"><span class="n"><span class="pre">InferLength</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">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="compute.html#_CPPv4N5arrow5DatumE" title="arrow::Datum"><span class="n"><span class="pre">Datum</span></span></a><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">values</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow7compute9ExecBatch11InferLengthERKNSt6vectorI5DatumEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Infer the <a class="reference internal" href="#structarrow_1_1compute_1_1_exec_batch"><span class="std std-ref">ExecBatch</span></a> length from values. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow7compute9ExecBatch4MakeENSt6vectorI5DatumEE7int64_t">
<span id="_CPPv3N5arrow7compute9ExecBatch4MakeENSt6vectorI5DatumEE7int64_t"></span><span id="_CPPv2N5arrow7compute9ExecBatch4MakeENSt6vectorI5DatumEE7int64_t"></span><span id="arrow::compute::ExecBatch::Make__std::vector:Datum:.int64_t"></span><span class="target" id="group__compute-internals_1ga4d626cdc6bd42b6b2466c4b3ed3e1025"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow7compute9ExecBatchE" title="arrow::compute::ExecBatch"><span class="n"><span class="pre">ExecBatch</span></span></a><span class="p"><span class="pre">&gt;</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">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><a class="reference internal" href="compute.html#_CPPv4N5arrow5DatumE" title="arrow::Datum"><span class="n"><span class="pre">Datum</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">values</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">length</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="o"><span class="pre">-</span></span><span class="m"><span class="pre">1</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow7compute9ExecBatch4MakeENSt6vectorI5DatumEE7int64_t" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Creates an <a class="reference internal" href="#structarrow_1_1compute_1_1_exec_batch"><span class="std std-ref">ExecBatch</span></a> with length-validation. </p>
<p>If any value is given, then all values must have a common length. If the given length is negative, then the length of the <a class="reference internal" href="#structarrow_1_1compute_1_1_exec_batch"><span class="std std-ref">ExecBatch</span></a> is set to this common length, or to 1 if no values are given. Otherwise, the given length must equal the common length, if any value is given. </p>
</dd></dl>
</div>
</dd></dl>
</section>
</section>
</article>
<footer class="prev-next-footer">
<div class="prev-next-area">
<a class="left-prev"
href="compute.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">Compute Functions</p>
</div>
</a>
<a class="right-next"
href="gandiva.html"
title="next page">
<div class="prev-next-info">
<p class="prev-next-subtitle">next</p>
<p class="prev-next-title">Gandiva Expression Compiler</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="#creating-and-running-execution-plans">Creating and running execution plans</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#configuration-for-execution-nodes">Configuration for execution nodes</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#internals-for-creating-custom-nodes">Internals for creating custom nodes</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/acero.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>