icexelloss commented on code in PR #34373:
URL: https://github.com/apache/arrow/pull/34373#discussion_r1119317187


##########
cpp/src/arrow/engine/substrait/relation_internal.cc:
##########
@@ -547,8 +547,9 @@ Result<DeclarationInfo> FromProto(const substrait::Rel& 
rel, const ExtensionSet&
         std::shared_ptr<Field> project_field;
         ARROW_ASSIGN_OR_RAISE(compute::Expression des_expr,
                               FromProto(expr, ext_set, conversion_options));
-        auto bound_expr = des_expr.Bind(*input.output_schema);
-        if (auto* expr_call = bound_expr->call()) {
+        ARROW_ASSIGN_OR_RAISE(

Review Comment:
   Added this for better error handling - before it will segfault if the 
function cannot be found, now it raises error to user, e.g.
   ```
   >   raise ArrowKeyError(message)
   E   pyarrow.lib.ArrowKeyError: No function registered with name: my_udf
   E   
/home/icexelloss/workspace/arrow/cpp/src/arrow/compute/exec/expression.cc:534  
GetFunction(call, exec_context)
   E   
/home/icexelloss/workspace/arrow/cpp/src/arrow/engine/substrait/relation_internal.cc:550
  des_expr.Bind(*input.output_schema)
   E   
/home/icexelloss/workspace/arrow/cpp/src/arrow/engine/substrait/serde.cc:157  
FromProto(plan_rel.has_root() ? plan_rel.root().input() : plan_rel.rel(), 
ext_set, conversion_options)
   E   
/home/icexelloss/workspace/arrow/cpp/src/arrow/engine/substrait/serde.cc:200  
DeserializePlans(buf, MakeNoSinkDeclarationFactory(), registry, ext_set_out, 
conversion_options)
   E   
/home/icexelloss/workspace/arrow/cpp/src/arrow/engine/substrait/util.cc:47  
DeserializePlan(substrait_buffer, registry, nullptr, conversion_options)
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to