MCPcopy Create free account
hub / github.com/apache/arrow / DeserializePlan

Function DeserializePlan

cpp/src/arrow/engine/substrait/serde.cc:269–289  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

267} // namespace
268
269Result<std::shared_ptr<acero::ExecPlan>> DeserializePlan(
270 const Buffer& buf, const std::shared_ptr<acero::SinkNodeConsumer>& consumer,
271 const ExtensionIdRegistry* registry, ExtensionSet* ext_set_out,
272 const ConversionOptions& conversion_options) {
273 struct SingleConsumer {
274 std::shared_ptr<acero::SinkNodeConsumer> operator()() {
275 if (factory_done) {
276 Status::Invalid("SingleConsumer invoked more than once").Warn();
277 return std::shared_ptr<acero::SinkNodeConsumer>{};
278 }
279 factory_done = true;
280 return consumer;
281 }
282 bool factory_done;
283 std::shared_ptr<acero::SinkNodeConsumer> consumer;
284 };
285 ARROW_ASSIGN_OR_RAISE(auto declarations,
286 DeserializePlans(buf, SingleConsumer{false, consumer}, registry,
287 ext_set_out, conversion_options));
288 return MakeSingleDeclarationPlan(declarations);
289}
290
291Result<std::shared_ptr<acero::ExecPlan>> DeserializePlan(
292 const Buffer& buf, const std::shared_ptr<dataset::WriteNodeOptions>& write_options,

Callers 3

TESTFunction · 0.85
serde_test.ccFile · 0.85
PlanFromTestCaseFunction · 0.85

Calls 1

Tested by 2

TESTFunction · 0.68
PlanFromTestCaseFunction · 0.68