Skip to content
This repository was archived by the owner on Jan 16, 2024. It is now read-only.

Commit 894439c

Browse files
committed
Bundle 13.0.0-1 (2023-08-29)
1 parent f30a101 commit 894439c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+4219
-1911
lines changed

README.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,43 @@
1-
# arrow 12.0.1-1
1+
# arrow 13.0.0-1
22

3-
- mingw-w64-i686-arrow-12.0.1-1-any.pkg.tar.xz
3+
- mingw-w64-i686-arrow-13.0.0-1-any.pkg.tar.xz
44
- mingw-w64-i686-aws-sdk-cpp-1.7.365-1-any.pkg.tar.xz
55
- mingw-w64-i686-brotli-1.0.9-4-any.pkg.tar.xz
6-
- mingw-w64-i686-openssl-1.1.1.m-9800-any.pkg.tar.xz
6+
- mingw-w64-i686-openssl-3.1.1-9800-any.pkg.tar.xz
77
- mingw-w64-i686-lz4-1.8.2-1-any.pkg.tar.xz
88
- mingw-w64-i686-re2-20200801-1-any.pkg.tar.xz
99
- mingw-w64-i686-snappy-1.1.7-2-any.pkg.tar.xz
1010
- mingw-w64-i686-bzip2-1.0.8-1-any.pkg.tar.xz
11-
- mingw-w64-i686-curl-7.84.0-9000-any.pkg.tar.xz
12-
- mingw-w64-i686-libssh2-1.11.0-9800-any.pkg.tar.xz
11+
- mingw-w64-i686-curl-8.1.2-9000-any.pkg.tar.xz
12+
- mingw-w64-i686-libssh2-1.11.0-9801-any.pkg.tar.xz
1313
- mingw-w64-i686-thrift-0.13.0-1-any.pkg.tar.xz
1414
- mingw-w64-i686-zstd-1.4.4-1-any.pkg.tar.xz
1515
- mingw-w64-i686-libutf8proc-2.4.0-2-any.pkg.tar.xz
1616
- mingw-w64-i686-nghttp2-1.51.0-1-any.pkg.tar.xz
17-
- mingw-w64-x86_64-arrow-12.0.1-1-any.pkg.tar.xz
17+
- mingw-w64-x86_64-arrow-13.0.0-1-any.pkg.tar.xz
1818
- mingw-w64-x86_64-aws-sdk-cpp-1.7.365-1-any.pkg.tar.xz
1919
- mingw-w64-x86_64-brotli-1.0.9-4-any.pkg.tar.xz
20-
- mingw-w64-x86_64-openssl-1.1.1.m-9800-any.pkg.tar.xz
20+
- mingw-w64-x86_64-openssl-3.1.1-9800-any.pkg.tar.xz
2121
- mingw-w64-x86_64-lz4-1.8.2-1-any.pkg.tar.xz
2222
- mingw-w64-x86_64-re2-20200801-1-any.pkg.tar.xz
2323
- mingw-w64-x86_64-snappy-1.1.7-2-any.pkg.tar.xz
2424
- mingw-w64-x86_64-bzip2-1.0.8-1-any.pkg.tar.xz
25-
- mingw-w64-x86_64-curl-7.84.0-9000-any.pkg.tar.xz
26-
- mingw-w64-x86_64-libssh2-1.11.0-9800-any.pkg.tar.xz
25+
- mingw-w64-x86_64-curl-8.1.2-9000-any.pkg.tar.xz
26+
- mingw-w64-x86_64-libssh2-1.11.0-9801-any.pkg.tar.xz
2727
- mingw-w64-x86_64-thrift-0.13.0-1-any.pkg.tar.xz
2828
- mingw-w64-x86_64-zstd-1.4.4-1-any.pkg.tar.xz
2929
- mingw-w64-x86_64-libutf8proc-2.4.0-2-any.pkg.tar.xz
3030
- mingw-w64-x86_64-nghttp2-1.51.0-1-any.pkg.tar.xz
31-
- mingw-w64-ucrt-x86_64-arrow-12.0.1-1-any.pkg.tar.xz
31+
- mingw-w64-ucrt-x86_64-arrow-13.0.0-1-any.pkg.tar.xz
3232
- mingw-w64-ucrt-x86_64-aws-sdk-cpp-1.7.365-1-any.pkg.tar.xz
3333
- mingw-w64-ucrt-x86_64-brotli-1.0.9-4-any.pkg.tar.xz
34-
- mingw-w64-ucrt-x86_64-openssl-1.1.1.m-9800-any.pkg.tar.xz
34+
- mingw-w64-ucrt-x86_64-openssl-3.1.1-9800-any.pkg.tar.xz
3535
- mingw-w64-ucrt-x86_64-lz4-1.8.2-1-any.pkg.tar.xz
3636
- mingw-w64-ucrt-x86_64-re2-20200801-1-any.pkg.tar.xz
3737
- mingw-w64-ucrt-x86_64-snappy-1.1.7-2-any.pkg.tar.xz
3838
- mingw-w64-ucrt-x86_64-bzip2-1.0.8-1-any.pkg.tar.xz
39-
- mingw-w64-ucrt-x86_64-curl-7.84.0-9000-any.pkg.tar.xz
40-
- mingw-w64-ucrt-x86_64-libssh2-1.11.0-9800-any.pkg.tar.xz
39+
- mingw-w64-ucrt-x86_64-curl-8.1.2-9000-any.pkg.tar.xz
40+
- mingw-w64-ucrt-x86_64-libssh2-1.11.0-9801-any.pkg.tar.xz
4141
- mingw-w64-ucrt-x86_64-thrift-0.13.0-1-any.pkg.tar.xz
4242
- mingw-w64-ucrt-x86_64-zstd-1.4.4-1-any.pkg.tar.xz
4343
- mingw-w64-ucrt-x86_64-libutf8proc-2.4.0-2-any.pkg.tar.xz

include/arrow/acero/api.h

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// Licensed to the Apache Software Foundation (ASF) under one
2+
// or more contributor license agreements. See the NOTICE file
3+
// distributed with this work for additional information
4+
// regarding copyright ownership. The ASF licenses this file
5+
// to you under the Apache License, Version 2.0 (the
6+
// "License"); you may not use this file except in compliance
7+
// with the License. You may obtain a copy of the License at
8+
//
9+
// http://www.apache.org/licenses/LICENSE-2.0
10+
//
11+
// Unless required by applicable law or agreed to in writing,
12+
// software distributed under the License is distributed on an
13+
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
// KIND, either express or implied. See the License for the
15+
// specific language governing permissions and limitations
16+
// under the License.
17+
18+
// NOTE: API is EXPERIMENTAL and will change without going through a
19+
// deprecation cycle
20+
21+
#pragma once
22+
23+
/// \defgroup acero-api Utilities for creating and executing execution plans
24+
/// @{
25+
/// @}
26+
27+
/// \defgroup acero-nodes Options classes for the various exec nodes
28+
/// @{
29+
/// @}
30+
31+
#include "arrow/acero/exec_plan.h"
32+
#include "arrow/acero/options.h"

include/arrow/acero/asof_join_node.h

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,11 @@ using AsofJoinKeys = AsofJoinNodeOptions::Keys;
3030

3131
/// \brief Make the output schema of an as-of-join node
3232
///
33-
/// Optionally, also provides the field output indices for this node.
34-
/// \see arrow::engine::RelationInfo
35-
///
3633
/// \param[in] input_schema the schema of each input to the node
3734
/// \param[in] input_keys the key of each input to the node
38-
/// \param[out] field_output_indices the output index of each field
3935
ARROW_ACERO_EXPORT Result<std::shared_ptr<Schema>> MakeOutputSchema(
4036
const std::vector<std::shared_ptr<Schema>>& input_schema,
41-
const std::vector<AsofJoinKeys>& input_keys,
42-
std::vector<int>* field_output_indices = NULLPTR);
37+
const std::vector<AsofJoinKeys>& input_keys);
4338

4439
} // namespace asofjoin
4540
} // namespace acero

include/arrow/acero/exec_plan.h

Lines changed: 60 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ using compute::threaded_exec_context;
4848

4949
namespace acero {
5050

51-
/// \addtogroup execnode-components
51+
/// \addtogroup acero-internals
5252
/// @{
5353

5454
class ARROW_ACERO_EXPORT ExecPlan : public std::enable_shared_from_this<ExecPlan> {
@@ -118,6 +118,10 @@ class ARROW_ACERO_EXPORT ExecPlan : public std::enable_shared_from_this<ExecPlan
118118
std::string ToString() const;
119119
};
120120

121+
// Acero can be extended by providing custom implementations of ExecNode. The methods
122+
// below are documented in detail and provide careful instruction on how to fulfill the
123+
// ExecNode contract. It's suggested you familiarize yourself with the Acero
124+
// documentation in the C++ user guide.
121125
class ARROW_ACERO_EXPORT ExecNode {
122126
public:
123127
using NodeVector = std::vector<ExecNode*>;
@@ -173,9 +177,9 @@ class ARROW_ACERO_EXPORT ExecNode {
173177
/// non-deterministic. For example, a hash-join has no predictable output order.
174178
///
175179
/// If the ordering is Ordering::Implicit then there is a meaningful order but that
176-
/// odering is not represented by any column in the data. The most common case for this
177-
/// is when reading data from an in-memory table. The data has an implicit "row order"
178-
/// which is not neccesarily represented in the data set.
180+
/// ordering is not represented by any column in the data. The most common case for
181+
/// this is when reading data from an in-memory table. The data has an implicit "row
182+
/// order" which is not necessarily represented in the data set.
179183
///
180184
/// A filter or project node will not modify the ordering. Nothing needs to be done
181185
/// other than ensure the index assigned to output batches is the same as the
@@ -321,7 +325,7 @@ class ARROW_ACERO_EXPORT ExecNode {
321325
///
322326
/// This is not a pause. There will be no way to start the source again after this has
323327
/// been called.
324-
Status StopProducing();
328+
virtual Status StopProducing();
325329

326330
std::string ToString(int indent = 0) const;
327331

@@ -377,16 +381,36 @@ inline Result<ExecNode*> MakeExecNode(
377381
return factory(plan, std::move(inputs), options);
378382
}
379383

380-
/// \brief Helper class for declaring sets of ExecNodes efficiently
384+
/// @}
385+
386+
/// \addtogroup acero-api
387+
/// @{
388+
389+
/// \brief Helper class for declaring execution nodes
381390
///
382-
/// A Declaration represents an unconstructed ExecNode (and potentially more since its
383-
/// inputs may also be Declarations). The node can be constructed and added to a plan
384-
/// with Declaration::AddToPlan, which will recursively construct any inputs as necessary.
391+
/// A Declaration represents an unconstructed ExecNode (and potentially an entire graph
392+
/// since its inputs may also be Declarations)
393+
///
394+
/// A Declaration can be converted to a plan and executed using one of the
395+
/// DeclarationToXyz methods.
396+
///
397+
/// For more direct control, a Declaration can be added to an existing execution
398+
/// plan with Declaration::AddToPlan, which will recursively construct any inputs as
399+
/// necessary.
385400
struct ARROW_ACERO_EXPORT Declaration {
386401
using Input = std::variant<ExecNode*, Declaration>;
387402

388403
Declaration() {}
389404

405+
/// \brief construct a declaration
406+
/// \param factory_name the name of the exec node to construct. The node must have
407+
/// been added to the exec node registry with this name.
408+
/// \param inputs the inputs to the node, these should be other declarations
409+
/// \param options options that control the behavior of the node. You must use
410+
/// the appropriate subclass. For example, if `factory_name` is
411+
/// "project" then `options` should be ProjectNodeOptions.
412+
/// \param label a label to give the node. Can be used to distinguish it from other
413+
/// nodes of the same type in the plan.
390414
Declaration(std::string factory_name, std::vector<Input> inputs,
391415
std::shared_ptr<ExecNodeOptions> options, std::string label)
392416
: factory_name{std::move(factory_name)},
@@ -447,15 +471,28 @@ struct ARROW_ACERO_EXPORT Declaration {
447471
/// });
448472
static Declaration Sequence(std::vector<Declaration> decls);
449473

474+
/// \brief add the declaration to an already created execution plan
475+
/// \param plan the plan to add the node to
476+
/// \param registry the registry to use to lookup the node factory
477+
///
478+
/// This method will recursively call AddToPlan on all of the declaration's inputs.
479+
/// This method is only for advanced use when the DeclarationToXyz methods are not
480+
/// sufficient.
481+
///
482+
/// \return the instantiated execution node
450483
Result<ExecNode*> AddToPlan(ExecPlan* plan, ExecFactoryRegistry* registry =
451484
default_exec_factory_registry()) const;
452485

453486
// Validate a declaration
454487
bool IsValid(ExecFactoryRegistry* registry = default_exec_factory_registry()) const;
455488

489+
/// \brief the name of the factory to use when creating a node
456490
std::string factory_name;
491+
/// \brief the declarations's inputs
457492
std::vector<Input> inputs;
493+
/// \brief options to control the behavior of the node
458494
std::shared_ptr<ExecNodeOptions> options;
495+
/// \brief a label to give the node in the plan
459496
std::string label;
460497
};
461498

@@ -489,7 +526,7 @@ struct ARROW_ACERO_EXPORT QueryOptions {
489526
/// otherwise.
490527
///
491528
/// If explicitly set to true then plan execution will fail if there is no
492-
/// meaningful ordering. This can be useful to valdiate a query that should
529+
/// meaningful ordering. This can be useful to validate a query that should
493530
/// be emitting ordered results.
494531
///
495532
/// If explicitly set to false then batches will be emit immediately even if there
@@ -513,6 +550,13 @@ struct ARROW_ACERO_EXPORT QueryOptions {
513550
/// the `use_threads` option.
514551
::arrow::internal::Executor* custom_cpu_executor = NULLPTR;
515552

553+
/// \brief custom executor to use for IO work
554+
///
555+
/// Must be null or remain valid for the duration of the plan. If this is null then
556+
/// the global io thread pool will be chosen whose behavior will be controlled by
557+
/// the "ARROW_IO_THREADS" environment.
558+
::arrow::internal::Executor* custom_io_executor = NULLPTR;
559+
516560
/// \brief a memory pool to use for allocations
517561
///
518562
/// Must remain valid for the duration of the plan.
@@ -707,6 +751,10 @@ DeclarationToBatchesAsync(Declaration declaration, ExecContext exec_context);
707751
/// fills up.
708752
///
709753
/// If a custom exec context is provided then the value of `use_threads` will be ignored.
754+
///
755+
/// The returned RecordBatchReader can be closed early to cancel the computation of record
756+
/// batches. In this case, only errors encountered by the computation may be reported. In
757+
/// particular, no cancellation error may be reported.
710758
ARROW_ACERO_EXPORT Result<std::unique_ptr<RecordBatchReader>> DeclarationToReader(
711759
Declaration declaration, bool use_threads = true,
712760
MemoryPool* memory_pool = default_memory_pool(),
@@ -746,6 +794,8 @@ ARROW_ACERO_EXPORT Future<> DeclarationToStatusAsync(
746794
ARROW_ACERO_EXPORT Future<> DeclarationToStatusAsync(Declaration declaration,
747795
ExecContext exec_context);
748796

797+
/// @}
798+
749799
/// \brief Wrap an ExecBatch generator in a RecordBatchReader.
750800
///
751801
/// The RecordBatchReader does not impose any ordering on emitted batches.
@@ -765,7 +815,5 @@ Result<std::function<Future<std::optional<ExecBatch>>()>> MakeReaderGenerator(
765815
std::shared_ptr<RecordBatchReader> reader, arrow::internal::Executor* io_executor,
766816
int max_q = kDefaultBackgroundMaxQ, int q_restart = kDefaultBackgroundQRestart);
767817

768-
/// @}
769-
770818
} // namespace acero
771819
} // namespace arrow

include/arrow/acero/groupby.h

Lines changed: 0 additions & 65 deletions
This file was deleted.

0 commit comments

Comments
 (0)