|
@@ -1,55 +1,55 @@
|
|
|
-// Licensed to the Apache Software Foundation (ASF) under one
|
|
|
-// or more contributor license agreements. See the NOTICE file
|
|
|
-// distributed with this work for additional information
|
|
|
-// regarding copyright ownership. The ASF licenses this file
|
|
|
-// to you under the Apache License, Version 2.0 (the
|
|
|
-// "License"); you may not use this file except in compliance
|
|
|
-// with the License. You may obtain a copy of the License at
|
|
|
-//
|
|
|
-// http://www.apache.org/licenses/LICENSE-2.0
|
|
|
-//
|
|
|
-// Unless required by applicable law or agreed to in writing,
|
|
|
-// software distributed under the License is distributed on an
|
|
|
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
|
-// KIND, either express or implied. See the License for the
|
|
|
-// specific language governing permissions and limitations
|
|
|
-// under the License.
|
|
|
-
|
|
|
-// Eager evaluation convenience APIs for invoking common functions, including
|
|
|
-// necessary memory allocations
|
|
|
-
|
|
|
-#pragma once
|
|
|
-
|
|
|
-#include <string>
|
|
|
-#include <utility>
|
|
|
-
|
|
|
-#include "arrow/compute/exec.h" // IWYU pragma: keep
|
|
|
-#include "arrow/compute/function.h"
|
|
|
-#include "arrow/datum.h"
|
|
|
-#include "arrow/result.h"
|
|
|
-#include "arrow/util/macros.h"
|
|
|
-#include "arrow/util/visibility.h"
|
|
|
-
|
|
|
-namespace arrow {
|
|
|
-namespace compute {
|
|
|
-
|
|
|
-/// \addtogroup compute-concrete-options
|
|
|
-///
|
|
|
-/// @{
|
|
|
-
|
|
|
+// Licensed to the Apache Software Foundation (ASF) under one
|
|
|
+// or more contributor license agreements. See the NOTICE file
|
|
|
+// distributed with this work for additional information
|
|
|
+// regarding copyright ownership. The ASF licenses this file
|
|
|
+// to you under the Apache License, Version 2.0 (the
|
|
|
+// "License"); you may not use this file except in compliance
|
|
|
+// with the License. You may obtain a copy of the License at
|
|
|
+//
|
|
|
+// http://www.apache.org/licenses/LICENSE-2.0
|
|
|
+//
|
|
|
+// Unless required by applicable law or agreed to in writing,
|
|
|
+// software distributed under the License is distributed on an
|
|
|
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
|
+// KIND, either express or implied. See the License for the
|
|
|
+// specific language governing permissions and limitations
|
|
|
+// under the License.
|
|
|
+
|
|
|
+// Eager evaluation convenience APIs for invoking common functions, including
|
|
|
+// necessary memory allocations
|
|
|
+
|
|
|
+#pragma once
|
|
|
+
|
|
|
+#include <string>
|
|
|
+#include <utility>
|
|
|
+
|
|
|
+#include "arrow/compute/exec.h" // IWYU pragma: keep
|
|
|
+#include "arrow/compute/function.h"
|
|
|
+#include "arrow/datum.h"
|
|
|
+#include "arrow/result.h"
|
|
|
+#include "arrow/util/macros.h"
|
|
|
+#include "arrow/util/visibility.h"
|
|
|
+
|
|
|
+namespace arrow {
|
|
|
+namespace compute {
|
|
|
+
|
|
|
+/// \addtogroup compute-concrete-options
|
|
|
+///
|
|
|
+/// @{
|
|
|
+
|
|
|
class ARROW_EXPORT ArithmeticOptions : public FunctionOptions {
|
|
|
public:
|
|
|
explicit ArithmeticOptions(bool check_overflow = false);
|
|
|
constexpr static char const kTypeName[] = "ArithmeticOptions";
|
|
|
- bool check_overflow;
|
|
|
-};
|
|
|
-
|
|
|
+ bool check_overflow;
|
|
|
+};
|
|
|
+
|
|
|
class ARROW_EXPORT ElementWiseAggregateOptions : public FunctionOptions {
|
|
|
public:
|
|
|
explicit ElementWiseAggregateOptions(bool skip_nulls = true);
|
|
|
constexpr static char const kTypeName[] = "ElementWiseAggregateOptions";
|
|
|
static ElementWiseAggregateOptions Defaults() { return ElementWiseAggregateOptions{}; }
|
|
|
-
|
|
|
+
|
|
|
bool skip_nulls;
|
|
|
};
|
|
|
|
|
@@ -80,11 +80,11 @@ class ARROW_EXPORT MatchSubstringOptions : public FunctionOptions {
|
|
|
constexpr static char const kTypeName[] = "MatchSubstringOptions";
|
|
|
|
|
|
/// The exact substring (or regex, depending on kernel) to look for inside input values.
|
|
|
- std::string pattern;
|
|
|
+ std::string pattern;
|
|
|
/// Whether to perform a case-insensitive match.
|
|
|
bool ignore_case = false;
|
|
|
-};
|
|
|
-
|
|
|
+};
|
|
|
+
|
|
|
class ARROW_EXPORT SplitOptions : public FunctionOptions {
|
|
|
public:
|
|
|
explicit SplitOptions(int64_t max_splits = -1, bool reverse = false);
|
|
@@ -150,34 +150,34 @@ class ARROW_EXPORT ExtractRegexOptions : public FunctionOptions {
|
|
|
std::string pattern;
|
|
|
};
|
|
|
|
|
|
-/// Options for IsIn and IndexIn functions
|
|
|
+/// Options for IsIn and IndexIn functions
|
|
|
class ARROW_EXPORT SetLookupOptions : public FunctionOptions {
|
|
|
public:
|
|
|
explicit SetLookupOptions(Datum value_set, bool skip_nulls = false);
|
|
|
SetLookupOptions();
|
|
|
constexpr static char const kTypeName[] = "SetLookupOptions";
|
|
|
-
|
|
|
- /// The set of values to look up input values into.
|
|
|
- Datum value_set;
|
|
|
- /// Whether nulls in `value_set` count for lookup.
|
|
|
- ///
|
|
|
- /// If true, any null in `value_set` is ignored and nulls in the input
|
|
|
- /// produce null (IndexIn) or false (IsIn) values in the output.
|
|
|
- /// If false, any null in `value_set` is successfully matched in
|
|
|
- /// the input.
|
|
|
- bool skip_nulls;
|
|
|
-};
|
|
|
-
|
|
|
+
|
|
|
+ /// The set of values to look up input values into.
|
|
|
+ Datum value_set;
|
|
|
+ /// Whether nulls in `value_set` count for lookup.
|
|
|
+ ///
|
|
|
+ /// If true, any null in `value_set` is ignored and nulls in the input
|
|
|
+ /// produce null (IndexIn) or false (IsIn) values in the output.
|
|
|
+ /// If false, any null in `value_set` is successfully matched in
|
|
|
+ /// the input.
|
|
|
+ bool skip_nulls;
|
|
|
+};
|
|
|
+
|
|
|
class ARROW_EXPORT StrptimeOptions : public FunctionOptions {
|
|
|
public:
|
|
|
explicit StrptimeOptions(std::string format, TimeUnit::type unit);
|
|
|
StrptimeOptions();
|
|
|
constexpr static char const kTypeName[] = "StrptimeOptions";
|
|
|
-
|
|
|
- std::string format;
|
|
|
- TimeUnit::type unit;
|
|
|
-};
|
|
|
-
|
|
|
+
|
|
|
+ std::string format;
|
|
|
+ TimeUnit::type unit;
|
|
|
+};
|
|
|
+
|
|
|
class ARROW_EXPORT PadOptions : public FunctionOptions {
|
|
|
public:
|
|
|
explicit PadOptions(int64_t width, std::string padding = " ");
|
|
@@ -209,21 +209,21 @@ class ARROW_EXPORT SliceOptions : public FunctionOptions {
|
|
|
int64_t start, stop, step;
|
|
|
};
|
|
|
|
|
|
-enum CompareOperator : int8_t {
|
|
|
- EQUAL,
|
|
|
- NOT_EQUAL,
|
|
|
- GREATER,
|
|
|
- GREATER_EQUAL,
|
|
|
- LESS,
|
|
|
- LESS_EQUAL,
|
|
|
-};
|
|
|
-
|
|
|
+enum CompareOperator : int8_t {
|
|
|
+ EQUAL,
|
|
|
+ NOT_EQUAL,
|
|
|
+ GREATER,
|
|
|
+ GREATER_EQUAL,
|
|
|
+ LESS,
|
|
|
+ LESS_EQUAL,
|
|
|
+};
|
|
|
+
|
|
|
struct ARROW_EXPORT CompareOptions {
|
|
|
- explicit CompareOptions(CompareOperator op) : op(op) {}
|
|
|
+ explicit CompareOptions(CompareOperator op) : op(op) {}
|
|
|
CompareOptions() : CompareOptions(CompareOperator::EQUAL) {}
|
|
|
- enum CompareOperator op;
|
|
|
-};
|
|
|
-
|
|
|
+ enum CompareOperator op;
|
|
|
+};
|
|
|
+
|
|
|
class ARROW_EXPORT MakeStructOptions : public FunctionOptions {
|
|
|
public:
|
|
|
MakeStructOptions(std::vector<std::string> n, std::vector<bool> r,
|
|
@@ -254,8 +254,8 @@ struct ARROW_EXPORT DayOfWeekOptions : public FunctionOptions {
|
|
|
uint32_t week_start;
|
|
|
};
|
|
|
|
|
|
-/// @}
|
|
|
-
|
|
|
+/// @}
|
|
|
+
|
|
|
/// \brief Get the absolute value of a value.
|
|
|
///
|
|
|
/// If argument is null the result will be null.
|
|
@@ -269,59 +269,59 @@ Result<Datum> AbsoluteValue(const Datum& arg,
|
|
|
ArithmeticOptions options = ArithmeticOptions(),
|
|
|
ExecContext* ctx = NULLPTR);
|
|
|
|
|
|
-/// \brief Add two values together. Array values must be the same length. If
|
|
|
-/// either addend is null the result will be null.
|
|
|
-///
|
|
|
-/// \param[in] left the first addend
|
|
|
-/// \param[in] right the second addend
|
|
|
-/// \param[in] options arithmetic options (overflow handling), optional
|
|
|
-/// \param[in] ctx the function execution context, optional
|
|
|
-/// \return the elementwise sum
|
|
|
-ARROW_EXPORT
|
|
|
-Result<Datum> Add(const Datum& left, const Datum& right,
|
|
|
- ArithmeticOptions options = ArithmeticOptions(),
|
|
|
- ExecContext* ctx = NULLPTR);
|
|
|
-
|
|
|
-/// \brief Subtract two values. Array values must be the same length. If the
|
|
|
-/// minuend or subtrahend is null the result will be null.
|
|
|
-///
|
|
|
-/// \param[in] left the value subtracted from (minuend)
|
|
|
-/// \param[in] right the value by which the minuend is reduced (subtrahend)
|
|
|
-/// \param[in] options arithmetic options (overflow handling), optional
|
|
|
-/// \param[in] ctx the function execution context, optional
|
|
|
-/// \return the elementwise difference
|
|
|
-ARROW_EXPORT
|
|
|
-Result<Datum> Subtract(const Datum& left, const Datum& right,
|
|
|
- ArithmeticOptions options = ArithmeticOptions(),
|
|
|
- ExecContext* ctx = NULLPTR);
|
|
|
-
|
|
|
-/// \brief Multiply two values. Array values must be the same length. If either
|
|
|
-/// factor is null the result will be null.
|
|
|
-///
|
|
|
-/// \param[in] left the first factor
|
|
|
-/// \param[in] right the second factor
|
|
|
-/// \param[in] options arithmetic options (overflow handling), optional
|
|
|
-/// \param[in] ctx the function execution context, optional
|
|
|
-/// \return the elementwise product
|
|
|
-ARROW_EXPORT
|
|
|
-Result<Datum> Multiply(const Datum& left, const Datum& right,
|
|
|
- ArithmeticOptions options = ArithmeticOptions(),
|
|
|
- ExecContext* ctx = NULLPTR);
|
|
|
-
|
|
|
-/// \brief Divide two values. Array values must be the same length. If either
|
|
|
-/// argument is null the result will be null. For integer types, if there is
|
|
|
-/// a zero divisor, an error will be raised.
|
|
|
-///
|
|
|
-/// \param[in] left the dividend
|
|
|
-/// \param[in] right the divisor
|
|
|
-/// \param[in] options arithmetic options (enable/disable overflow checking), optional
|
|
|
-/// \param[in] ctx the function execution context, optional
|
|
|
-/// \return the elementwise quotient
|
|
|
-ARROW_EXPORT
|
|
|
-Result<Datum> Divide(const Datum& left, const Datum& right,
|
|
|
- ArithmeticOptions options = ArithmeticOptions(),
|
|
|
- ExecContext* ctx = NULLPTR);
|
|
|
-
|
|
|
+/// \brief Add two values together. Array values must be the same length. If
|
|
|
+/// either addend is null the result will be null.
|
|
|
+///
|
|
|
+/// \param[in] left the first addend
|
|
|
+/// \param[in] right the second addend
|
|
|
+/// \param[in] options arithmetic options (overflow handling), optional
|
|
|
+/// \param[in] ctx the function execution context, optional
|
|
|
+/// \return the elementwise sum
|
|
|
+ARROW_EXPORT
|
|
|
+Result<Datum> Add(const Datum& left, const Datum& right,
|
|
|
+ ArithmeticOptions options = ArithmeticOptions(),
|
|
|
+ ExecContext* ctx = NULLPTR);
|
|
|
+
|
|
|
+/// \brief Subtract two values. Array values must be the same length. If the
|
|
|
+/// minuend or subtrahend is null the result will be null.
|
|
|
+///
|
|
|
+/// \param[in] left the value subtracted from (minuend)
|
|
|
+/// \param[in] right the value by which the minuend is reduced (subtrahend)
|
|
|
+/// \param[in] options arithmetic options (overflow handling), optional
|
|
|
+/// \param[in] ctx the function execution context, optional
|
|
|
+/// \return the elementwise difference
|
|
|
+ARROW_EXPORT
|
|
|
+Result<Datum> Subtract(const Datum& left, const Datum& right,
|
|
|
+ ArithmeticOptions options = ArithmeticOptions(),
|
|
|
+ ExecContext* ctx = NULLPTR);
|
|
|
+
|
|
|
+/// \brief Multiply two values. Array values must be the same length. If either
|
|
|
+/// factor is null the result will be null.
|
|
|
+///
|
|
|
+/// \param[in] left the first factor
|
|
|
+/// \param[in] right the second factor
|
|
|
+/// \param[in] options arithmetic options (overflow handling), optional
|
|
|
+/// \param[in] ctx the function execution context, optional
|
|
|
+/// \return the elementwise product
|
|
|
+ARROW_EXPORT
|
|
|
+Result<Datum> Multiply(const Datum& left, const Datum& right,
|
|
|
+ ArithmeticOptions options = ArithmeticOptions(),
|
|
|
+ ExecContext* ctx = NULLPTR);
|
|
|
+
|
|
|
+/// \brief Divide two values. Array values must be the same length. If either
|
|
|
+/// argument is null the result will be null. For integer types, if there is
|
|
|
+/// a zero divisor, an error will be raised.
|
|
|
+///
|
|
|
+/// \param[in] left the dividend
|
|
|
+/// \param[in] right the divisor
|
|
|
+/// \param[in] options arithmetic options (enable/disable overflow checking), optional
|
|
|
+/// \param[in] ctx the function execution context, optional
|
|
|
+/// \return the elementwise quotient
|
|
|
+ARROW_EXPORT
|
|
|
+Result<Datum> Divide(const Datum& left, const Datum& right,
|
|
|
+ ArithmeticOptions options = ArithmeticOptions(),
|
|
|
+ ExecContext* ctx = NULLPTR);
|
|
|
+
|
|
|
/// \brief Negate values.
|
|
|
///
|
|
|
/// If argument is null the result will be null.
|
|
@@ -549,98 +549,98 @@ Result<Datum> MinElementWise(
|
|
|
ARROW_EXPORT
|
|
|
Result<Datum> Sign(const Datum& arg, ExecContext* ctx = NULLPTR);
|
|
|
|
|
|
-/// \brief Compare a numeric array with a scalar.
|
|
|
-///
|
|
|
-/// \param[in] left datum to compare, must be an Array
|
|
|
-/// \param[in] right datum to compare, must be a Scalar of the same type than
|
|
|
-/// left Datum.
|
|
|
-/// \param[in] options compare options
|
|
|
-/// \param[in] ctx the function execution context, optional
|
|
|
-/// \return resulting datum
|
|
|
-///
|
|
|
-/// Note on floating point arrays, this uses ieee-754 compare semantics.
|
|
|
-///
|
|
|
-/// \since 1.0.0
|
|
|
-/// \note API not yet finalized
|
|
|
+/// \brief Compare a numeric array with a scalar.
|
|
|
+///
|
|
|
+/// \param[in] left datum to compare, must be an Array
|
|
|
+/// \param[in] right datum to compare, must be a Scalar of the same type than
|
|
|
+/// left Datum.
|
|
|
+/// \param[in] options compare options
|
|
|
+/// \param[in] ctx the function execution context, optional
|
|
|
+/// \return resulting datum
|
|
|
+///
|
|
|
+/// Note on floating point arrays, this uses ieee-754 compare semantics.
|
|
|
+///
|
|
|
+/// \since 1.0.0
|
|
|
+/// \note API not yet finalized
|
|
|
ARROW_DEPRECATED("Deprecated in 5.0.0. Use each compare function directly")
|
|
|
-ARROW_EXPORT
|
|
|
+ARROW_EXPORT
|
|
|
Result<Datum> Compare(const Datum& left, const Datum& right, CompareOptions options,
|
|
|
ExecContext* ctx = NULLPTR);
|
|
|
-
|
|
|
-/// \brief Invert the values of a boolean datum
|
|
|
-/// \param[in] value datum to invert
|
|
|
-/// \param[in] ctx the function execution context, optional
|
|
|
-/// \return the resulting datum
|
|
|
-///
|
|
|
-/// \since 1.0.0
|
|
|
-/// \note API not yet finalized
|
|
|
-ARROW_EXPORT
|
|
|
-Result<Datum> Invert(const Datum& value, ExecContext* ctx = NULLPTR);
|
|
|
-
|
|
|
-/// \brief Element-wise AND of two boolean datums which always propagates nulls
|
|
|
-/// (null and false is null).
|
|
|
-///
|
|
|
+
|
|
|
+/// \brief Invert the values of a boolean datum
|
|
|
+/// \param[in] value datum to invert
|
|
|
+/// \param[in] ctx the function execution context, optional
|
|
|
+/// \return the resulting datum
|
|
|
+///
|
|
|
+/// \since 1.0.0
|
|
|
+/// \note API not yet finalized
|
|
|
+ARROW_EXPORT
|
|
|
+Result<Datum> Invert(const Datum& value, ExecContext* ctx = NULLPTR);
|
|
|
+
|
|
|
+/// \brief Element-wise AND of two boolean datums which always propagates nulls
|
|
|
+/// (null and false is null).
|
|
|
+///
|
|
|
/// \param[in] left left operand
|
|
|
/// \param[in] right right operand
|
|
|
-/// \param[in] ctx the function execution context, optional
|
|
|
-/// \return the resulting datum
|
|
|
-///
|
|
|
-/// \since 1.0.0
|
|
|
-/// \note API not yet finalized
|
|
|
-ARROW_EXPORT
|
|
|
-Result<Datum> And(const Datum& left, const Datum& right, ExecContext* ctx = NULLPTR);
|
|
|
-
|
|
|
-/// \brief Element-wise AND of two boolean datums with a Kleene truth table
|
|
|
-/// (null and false is false).
|
|
|
-///
|
|
|
+/// \param[in] ctx the function execution context, optional
|
|
|
+/// \return the resulting datum
|
|
|
+///
|
|
|
+/// \since 1.0.0
|
|
|
+/// \note API not yet finalized
|
|
|
+ARROW_EXPORT
|
|
|
+Result<Datum> And(const Datum& left, const Datum& right, ExecContext* ctx = NULLPTR);
|
|
|
+
|
|
|
+/// \brief Element-wise AND of two boolean datums with a Kleene truth table
|
|
|
+/// (null and false is false).
|
|
|
+///
|
|
|
/// \param[in] left left operand
|
|
|
/// \param[in] right right operand
|
|
|
-/// \param[in] ctx the function execution context, optional
|
|
|
-/// \return the resulting datum
|
|
|
-///
|
|
|
-/// \since 1.0.0
|
|
|
-/// \note API not yet finalized
|
|
|
-ARROW_EXPORT
|
|
|
-Result<Datum> KleeneAnd(const Datum& left, const Datum& right,
|
|
|
- ExecContext* ctx = NULLPTR);
|
|
|
-
|
|
|
-/// \brief Element-wise OR of two boolean datums which always propagates nulls
|
|
|
-/// (null and true is null).
|
|
|
-///
|
|
|
+/// \param[in] ctx the function execution context, optional
|
|
|
+/// \return the resulting datum
|
|
|
+///
|
|
|
+/// \since 1.0.0
|
|
|
+/// \note API not yet finalized
|
|
|
+ARROW_EXPORT
|
|
|
+Result<Datum> KleeneAnd(const Datum& left, const Datum& right,
|
|
|
+ ExecContext* ctx = NULLPTR);
|
|
|
+
|
|
|
+/// \brief Element-wise OR of two boolean datums which always propagates nulls
|
|
|
+/// (null and true is null).
|
|
|
+///
|
|
|
/// \param[in] left left operand
|
|
|
/// \param[in] right right operand
|
|
|
-/// \param[in] ctx the function execution context, optional
|
|
|
-/// \return the resulting datum
|
|
|
-///
|
|
|
-/// \since 1.0.0
|
|
|
-/// \note API not yet finalized
|
|
|
-ARROW_EXPORT
|
|
|
-Result<Datum> Or(const Datum& left, const Datum& right, ExecContext* ctx = NULLPTR);
|
|
|
-
|
|
|
-/// \brief Element-wise OR of two boolean datums with a Kleene truth table
|
|
|
-/// (null or true is true).
|
|
|
-///
|
|
|
+/// \param[in] ctx the function execution context, optional
|
|
|
+/// \return the resulting datum
|
|
|
+///
|
|
|
+/// \since 1.0.0
|
|
|
+/// \note API not yet finalized
|
|
|
+ARROW_EXPORT
|
|
|
+Result<Datum> Or(const Datum& left, const Datum& right, ExecContext* ctx = NULLPTR);
|
|
|
+
|
|
|
+/// \brief Element-wise OR of two boolean datums with a Kleene truth table
|
|
|
+/// (null or true is true).
|
|
|
+///
|
|
|
/// \param[in] left left operand
|
|
|
/// \param[in] right right operand
|
|
|
-/// \param[in] ctx the function execution context, optional
|
|
|
-/// \return the resulting datum
|
|
|
-///
|
|
|
-/// \since 1.0.0
|
|
|
-/// \note API not yet finalized
|
|
|
-ARROW_EXPORT
|
|
|
-Result<Datum> KleeneOr(const Datum& left, const Datum& right, ExecContext* ctx = NULLPTR);
|
|
|
-
|
|
|
-/// \brief Element-wise XOR of two boolean datums
|
|
|
+/// \param[in] ctx the function execution context, optional
|
|
|
+/// \return the resulting datum
|
|
|
+///
|
|
|
+/// \since 1.0.0
|
|
|
+/// \note API not yet finalized
|
|
|
+ARROW_EXPORT
|
|
|
+Result<Datum> KleeneOr(const Datum& left, const Datum& right, ExecContext* ctx = NULLPTR);
|
|
|
+
|
|
|
+/// \brief Element-wise XOR of two boolean datums
|
|
|
/// \param[in] left left operand
|
|
|
/// \param[in] right right operand
|
|
|
-/// \param[in] ctx the function execution context, optional
|
|
|
-/// \return the resulting datum
|
|
|
-///
|
|
|
-/// \since 1.0.0
|
|
|
-/// \note API not yet finalized
|
|
|
-ARROW_EXPORT
|
|
|
-Result<Datum> Xor(const Datum& left, const Datum& right, ExecContext* ctx = NULLPTR);
|
|
|
-
|
|
|
+/// \param[in] ctx the function execution context, optional
|
|
|
+/// \return the resulting datum
|
|
|
+///
|
|
|
+/// \since 1.0.0
|
|
|
+/// \note API not yet finalized
|
|
|
+ARROW_EXPORT
|
|
|
+Result<Datum> Xor(const Datum& left, const Datum& right, ExecContext* ctx = NULLPTR);
|
|
|
+
|
|
|
/// \brief Element-wise AND NOT of two boolean datums which always propagates nulls
|
|
|
/// (null and not true is null).
|
|
|
///
|
|
@@ -668,73 +668,73 @@ ARROW_EXPORT
|
|
|
Result<Datum> KleeneAndNot(const Datum& left, const Datum& right,
|
|
|
ExecContext* ctx = NULLPTR);
|
|
|
|
|
|
-/// \brief IsIn returns true for each element of `values` that is contained in
|
|
|
-/// `value_set`
|
|
|
-///
|
|
|
+/// \brief IsIn returns true for each element of `values` that is contained in
|
|
|
+/// `value_set`
|
|
|
+///
|
|
|
/// Behaviour of nulls is governed by SetLookupOptions::skip_nulls.
|
|
|
-///
|
|
|
-/// \param[in] values array-like input to look up in value_set
|
|
|
+///
|
|
|
+/// \param[in] values array-like input to look up in value_set
|
|
|
/// \param[in] options SetLookupOptions
|
|
|
-/// \param[in] ctx the function execution context, optional
|
|
|
-/// \return the resulting datum
|
|
|
-///
|
|
|
-/// \since 1.0.0
|
|
|
-/// \note API not yet finalized
|
|
|
-ARROW_EXPORT
|
|
|
+/// \param[in] ctx the function execution context, optional
|
|
|
+/// \return the resulting datum
|
|
|
+///
|
|
|
+/// \since 1.0.0
|
|
|
+/// \note API not yet finalized
|
|
|
+ARROW_EXPORT
|
|
|
Result<Datum> IsIn(const Datum& values, const SetLookupOptions& options,
|
|
|
ExecContext* ctx = NULLPTR);
|
|
|
ARROW_EXPORT
|
|
|
-Result<Datum> IsIn(const Datum& values, const Datum& value_set,
|
|
|
- ExecContext* ctx = NULLPTR);
|
|
|
-
|
|
|
-/// \brief IndexIn examines each slot in the values against a value_set array.
|
|
|
-/// If the value is not found in value_set, null will be output.
|
|
|
-/// If found, the index of occurrence within value_set (ignoring duplicates)
|
|
|
-/// will be output.
|
|
|
-///
|
|
|
-/// For example given values = [99, 42, 3, null] and
|
|
|
-/// value_set = [3, 3, 99], the output will be = [1, null, 0, null]
|
|
|
-///
|
|
|
+Result<Datum> IsIn(const Datum& values, const Datum& value_set,
|
|
|
+ ExecContext* ctx = NULLPTR);
|
|
|
+
|
|
|
+/// \brief IndexIn examines each slot in the values against a value_set array.
|
|
|
+/// If the value is not found in value_set, null will be output.
|
|
|
+/// If found, the index of occurrence within value_set (ignoring duplicates)
|
|
|
+/// will be output.
|
|
|
+///
|
|
|
+/// For example given values = [99, 42, 3, null] and
|
|
|
+/// value_set = [3, 3, 99], the output will be = [1, null, 0, null]
|
|
|
+///
|
|
|
/// Behaviour of nulls is governed by SetLookupOptions::skip_nulls.
|
|
|
-///
|
|
|
-/// \param[in] values array-like input
|
|
|
+///
|
|
|
+/// \param[in] values array-like input
|
|
|
/// \param[in] options SetLookupOptions
|
|
|
-/// \param[in] ctx the function execution context, optional
|
|
|
-/// \return the resulting datum
|
|
|
-///
|
|
|
-/// \since 1.0.0
|
|
|
-/// \note API not yet finalized
|
|
|
-ARROW_EXPORT
|
|
|
+/// \param[in] ctx the function execution context, optional
|
|
|
+/// \return the resulting datum
|
|
|
+///
|
|
|
+/// \since 1.0.0
|
|
|
+/// \note API not yet finalized
|
|
|
+ARROW_EXPORT
|
|
|
Result<Datum> IndexIn(const Datum& values, const SetLookupOptions& options,
|
|
|
ExecContext* ctx = NULLPTR);
|
|
|
ARROW_EXPORT
|
|
|
-Result<Datum> IndexIn(const Datum& values, const Datum& value_set,
|
|
|
- ExecContext* ctx = NULLPTR);
|
|
|
-
|
|
|
-/// \brief IsValid returns true for each element of `values` that is not null,
|
|
|
-/// false otherwise
|
|
|
-///
|
|
|
-/// \param[in] values input to examine for validity
|
|
|
-/// \param[in] ctx the function execution context, optional
|
|
|
-/// \return the resulting datum
|
|
|
-///
|
|
|
-/// \since 1.0.0
|
|
|
-/// \note API not yet finalized
|
|
|
-ARROW_EXPORT
|
|
|
-Result<Datum> IsValid(const Datum& values, ExecContext* ctx = NULLPTR);
|
|
|
-
|
|
|
-/// \brief IsNull returns true for each element of `values` that is null,
|
|
|
-/// false otherwise
|
|
|
-///
|
|
|
-/// \param[in] values input to examine for nullity
|
|
|
-/// \param[in] ctx the function execution context, optional
|
|
|
-/// \return the resulting datum
|
|
|
-///
|
|
|
-/// \since 1.0.0
|
|
|
-/// \note API not yet finalized
|
|
|
-ARROW_EXPORT
|
|
|
-Result<Datum> IsNull(const Datum& values, ExecContext* ctx = NULLPTR);
|
|
|
-
|
|
|
+Result<Datum> IndexIn(const Datum& values, const Datum& value_set,
|
|
|
+ ExecContext* ctx = NULLPTR);
|
|
|
+
|
|
|
+/// \brief IsValid returns true for each element of `values` that is not null,
|
|
|
+/// false otherwise
|
|
|
+///
|
|
|
+/// \param[in] values input to examine for validity
|
|
|
+/// \param[in] ctx the function execution context, optional
|
|
|
+/// \return the resulting datum
|
|
|
+///
|
|
|
+/// \since 1.0.0
|
|
|
+/// \note API not yet finalized
|
|
|
+ARROW_EXPORT
|
|
|
+Result<Datum> IsValid(const Datum& values, ExecContext* ctx = NULLPTR);
|
|
|
+
|
|
|
+/// \brief IsNull returns true for each element of `values` that is null,
|
|
|
+/// false otherwise
|
|
|
+///
|
|
|
+/// \param[in] values input to examine for nullity
|
|
|
+/// \param[in] ctx the function execution context, optional
|
|
|
+/// \return the resulting datum
|
|
|
+///
|
|
|
+/// \since 1.0.0
|
|
|
+/// \note API not yet finalized
|
|
|
+ARROW_EXPORT
|
|
|
+Result<Datum> IsNull(const Datum& values, ExecContext* ctx = NULLPTR);
|
|
|
+
|
|
|
/// \brief IsNan returns true for each element of `values` that is NaN,
|
|
|
/// false otherwise
|
|
|
///
|
|
@@ -747,21 +747,21 @@ Result<Datum> IsNull(const Datum& values, ExecContext* ctx = NULLPTR);
|
|
|
ARROW_EXPORT
|
|
|
Result<Datum> IsNan(const Datum& values, ExecContext* ctx = NULLPTR);
|
|
|
|
|
|
-/// \brief FillNull replaces each null element in `values`
|
|
|
-/// with `fill_value`
|
|
|
-///
|
|
|
-/// \param[in] values input to examine for nullity
|
|
|
-/// \param[in] fill_value scalar
|
|
|
-/// \param[in] ctx the function execution context, optional
|
|
|
-///
|
|
|
-/// \return the resulting datum
|
|
|
-///
|
|
|
-/// \since 1.0.0
|
|
|
-/// \note API not yet finalized
|
|
|
-ARROW_EXPORT
|
|
|
-Result<Datum> FillNull(const Datum& values, const Datum& fill_value,
|
|
|
- ExecContext* ctx = NULLPTR);
|
|
|
-
|
|
|
+/// \brief FillNull replaces each null element in `values`
|
|
|
+/// with `fill_value`
|
|
|
+///
|
|
|
+/// \param[in] values input to examine for nullity
|
|
|
+/// \param[in] fill_value scalar
|
|
|
+/// \param[in] ctx the function execution context, optional
|
|
|
+///
|
|
|
+/// \return the resulting datum
|
|
|
+///
|
|
|
+/// \since 1.0.0
|
|
|
+/// \note API not yet finalized
|
|
|
+ARROW_EXPORT
|
|
|
+Result<Datum> FillNull(const Datum& values, const Datum& fill_value,
|
|
|
+ ExecContext* ctx = NULLPTR);
|
|
|
+
|
|
|
/// \brief IfElse returns elements chosen from `left` or `right`
|
|
|
/// depending on `cond`. `null` values in `cond` will be promoted to the result
|
|
|
///
|
|
@@ -985,5 +985,5 @@ Result<Datum> Nanosecond(const Datum& values, ExecContext* ctx = NULLPTR);
|
|
|
/// \note API not yet finalized
|
|
|
ARROW_EXPORT Result<Datum> Subsecond(const Datum& values, ExecContext* ctx = NULLPTR);
|
|
|
|
|
|
-} // namespace compute
|
|
|
-} // namespace arrow
|
|
|
+} // namespace compute
|
|
|
+} // namespace arrow
|