This is an automated email from the ASF dual-hosted git repository.
zanmato pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new 075884576f GH-45215:[C++][Acero]Export SequencingQueue and
SerialSequencingQueue (#45221)
075884576f is described below
commit 075884576fd838f1dd8717467f98b74e0ee08f4d
Author: mroz45 <[email protected]>
AuthorDate: Tue Jan 14 02:52:51 2025 +0100
GH-45215:[C++][Acero]Export SequencingQueue and SerialSequencingQueue
(#45221)
### Rationale for this change
SequencingQueue and SerialSequencingQueue are useful in creating custom
ExecNodes. This patch allows linking to factory functions.
### What changes are included in this PR?
ARROW_ACERO_EXPORT classes
### Are there any user-facing changes?
Users can now directly instantiate and use the SequencingQueue and
SerialSequencingQueue classes, enabling easier creation of custom ExecNode.
* GitHub Issue: #45215
Authored-by: kamilt <[email protected]>
Signed-off-by: Rossi Sun <[email protected]>
---
cpp/src/arrow/acero/accumulation_queue.h | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/cpp/src/arrow/acero/accumulation_queue.h
b/cpp/src/arrow/acero/accumulation_queue.h
index a173f98403..92d62d5d99 100644
--- a/cpp/src/arrow/acero/accumulation_queue.h
+++ b/cpp/src/arrow/acero/accumulation_queue.h
@@ -22,6 +22,7 @@
#include <optional>
#include <vector>
+#include "arrow/acero/visibility.h"
#include "arrow/compute/exec.h"
#include "arrow/result.h"
@@ -70,7 +71,7 @@ class AccumulationQueue {
/// For example, in a top-n node, the process callback should determine how
many
/// rows need to be delivered for the given batch, and then return a task to
actually
/// deliver those rows.
-class SequencingQueue {
+class ARROW_ACERO_EXPORT SequencingQueue {
public:
using Task = std::function<Status()>;
@@ -123,7 +124,7 @@ class SequencingQueue {
///
/// It can be helpful to think of this as if a dedicated thread is running
Process as
/// batches arrive
-class SerialSequencingQueue {
+class ARROW_ACERO_EXPORT SerialSequencingQueue {
public:
/// Strategy that describes how to handle items
class Processor {