Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion cpp/src/arrow/compute/api_scalar.cc
Original file line number Diff line number Diff line change
Expand Up @@ -283,8 +283,11 @@ RoundOptions::RoundOptions(int64_t ndigits, RoundMode round_mode)
constexpr char RoundOptions::kTypeName[];

RoundToMultipleOptions::RoundToMultipleOptions(double multiple, RoundMode round_mode)
: RoundToMultipleOptions(std::make_shared<DoubleScalar>(multiple), round_mode) {}
RoundToMultipleOptions::RoundToMultipleOptions(std::shared_ptr<Scalar> multiple,
RoundMode round_mode)
: FunctionOptions(internal::kRoundToMultipleOptionsType),
multiple(multiple),
multiple(std::move(multiple)),
round_mode(round_mode) {}
constexpr char RoundToMultipleOptions::kTypeName[];

Expand Down
11 changes: 9 additions & 2 deletions cpp/src/arrow/compute/api_scalar.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,17 @@ class ARROW_EXPORT RoundToMultipleOptions : public FunctionOptions {
public:
explicit RoundToMultipleOptions(double multiple = 1.0,
RoundMode round_mode = RoundMode::HALF_TO_EVEN);
explicit RoundToMultipleOptions(std::shared_ptr<Scalar> multiple,
RoundMode round_mode = RoundMode::HALF_TO_EVEN);
constexpr static char const kTypeName[] = "RoundToMultipleOptions";
static RoundToMultipleOptions Defaults() { return RoundToMultipleOptions(); }
/// Rounding scale (multiple to round to)
double multiple;
/// Rounding scale (multiple to round to).
///
/// Should be a scalar of a type compatible with the argument to be rounded.
/// For example, rounding a decimal value means a decimal multiple is
/// required. Rounding a floating point or integer value means a floating
/// point scalar is required.
std::shared_ptr<Scalar> multiple;
/// Rounding and tie-breaking mode
RoundMode round_mode;
};
Expand Down
Loading