Weston Pace created ARROW-15534:
-----------------------------------

             Summary: [C++] Add convenience function to substrait consumer to 
create plan instead of declaration
                 Key: ARROW-15534
                 URL: https://issues.apache.org/jira/browse/ARROW-15534
             Project: Apache Arrow
          Issue Type: Improvement
          Components: C++
            Reporter: Weston Pace


This is a follow-up to ARROW-15238

The current API for Substrait is:

{code}
Result<std::vector<compute::Declaration>> DeserializePlan(
    const Buffer&, const ConsumerFactory&, ExtensionSet* ext_set = NULLPTR)
{code}

This converts a plan into a vector of declarations (one per root-relation in 
the Substrait plan)
These declarations then have to be added to an exec plan to run.

As a convenience we could alter the API:

{code}
Result<std::vector<compute::Declaration>> DeserializePlans(
    const Buffer&, const ConsumerFactory&, ExtensionSet* ext_set = NULLPTR)
result<compute::ExecPlan> DeserializePlan(const Buffer&, const 
ConsumerFactory&, ExtensionSet* ext_set = NULLPTR)
{code}

This would save the user from needing to create an empty exec plan (and it 
could return an error if the substrait plan had multiple root relations).



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to