You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Dewey Dunnington (Jira)" <ji...@apache.org> on 2022/04/08 12:20:00 UTC

[jira] [Created] (ARROW-16152) [C++] Typo that causes segfault with unknown functions in Substrait

Dewey Dunnington created ARROW-16152:
----------------------------------------

             Summary: [C++] Typo that causes segfault with unknown functions in Substrait
                 Key: ARROW-16152
                 URL: https://issues.apache.org/jira/browse/ARROW-16152
             Project: Apache Arrow
          Issue Type: Bug
          Components: C++
            Reporter: Dewey Dunnington


There is a typo in {{ExtensionSet::Make()}} that causes a crash whenever somebody provides an unsupported function into the Substrait consumer. It looks like this was a copy/paste error here where {{type_ids}} should be {{function_ids}}.

https://github.com/apache/arrow/blob/a935c81b595d24179e115d64cda944efa93aa0e0/cpp/src/arrow/engine/substrait/extension_set.cc#L167-L168

To reproduce via the R bindings:

{noformat}
arrow:::do_exec_plan_substrait('
{
  "extensionUris": [
    {
      "extensionUriAnchor": 1
    }
  ],
  "extensions": [
    {
      "extensionFunction": {
        "extensionUriReference": 1,
        "functionAnchor": 2,
        "name": "abs_checked"
      }
    }
  ],
  "relations": [
    {
      "rel": {
        "project": {
          "input": {
            "read": {
              "baseSchema": {
                "names": [
                  "letter",
                  "number"
                ],
                "struct": {
                  "types": [
                    {
                      "string": {

                      }
                    },
                    {
                      "i32": {

                      }
                    }
                  ]
                }
              },
              "namedTable": {
                "names": [
                  "named_table_1"
                ]
              }
            }
          },
          "expressions": [
            {
              "scalarFunction": {
                "functionReference": 2,
                "args": [
                  {
                    "selection": {
                      "directReference": {
                        "structField": {
                          "field": 1
                        }
                      }
                    }
                  }
                ],
                "outputType": {

                }
              }
            }
          ]
        }
      }
    }
  ]
}
')
{noformat}






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