Skip to content

[C++][Compute] Enhance FunctionOptions with equality, debug representability, and serializability #28738

@asfimport

Description

@asfimport

Currently the FunctionOptions interface is entirely opaque. It would be useful to add

  • equality comparability ```Java

    bool FunctionOptions::Equals(const FunctionOptions& other) const
    
  • debug representation ```Java

    std::string FunctionOptions::ToString() const
    
  • serializability ```Java

    Status FunctionOptions::Serialize(io::OutputStream*) const
    
    Result<std::unique_ptr<FunctionOptions>>
        FunctionOptions::Deserialize(io::InputStream*)
    
    
    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
    
    

Reporter: Ben Kietzman / @bkietz
Assignee: David Li / @lidavidm

Related issues:

PRs and other links:

Note: This issue was originally created as ARROW-13025. Please see the migration documentation for further details.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions