[ https://issues.apache.org/jira/browse/ARROW-13025?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Li reassigned ARROW-13025: -------------------------------- Assignee: David Li > [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 > Assignee: David Li > Priority: Major > 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)