Ben Kietzman created ARROW-13025:
------------------------------------
Summary: [C++][Compute] Enhance FunctionOptions with equality,
debug representability, and serializability
Key: ARROW-13025
URL: https://issues.apache.org/jira/browse/ARROW-13025
Project: Apache Arrow
Issue Type: Improvement
Components: C++
Reporter: Ben Kietzman
Fix For: 5.0.0
Currently the {{FunctionOptions}} interface is entirely opaque. It would be
useful to add
- equality comparability {code}
bool FunctionOptions::Equals(const FunctionOptions& other) const
{code}
- debug representation {code}
std::string FunctionOptions::ToString() const
{code}
- serializability {code}
Status FunctionOptions::Serialize(io::OutputStream*) const
Result<std::unique_ptr<FunctionOptions>>
FunctionOptions::Deserialize(io::InputStream*)
{code} (or similar)
These are already implemented for common instances of {{FunctionOptions}} in
expression.cc, since {{Expression}} has the above capabilities and may contain
a {{FunctionOptions}}. Making these explicit virtual functions will formalize
this ad-hoc
code and expose it for direct unit testing.
As an added bonus, if options can serialize themselves to JSON then that can be
used by Python and other bindings to generate wrappers instead of the current
hand-written listing of wrapper classes for each {{FunctionOptions}} subclass
--
This message was sent by Atlassian Jira
(v8.3.4#803005)