Summary
For plans that could use overloaded functions from the same URN anchor, we need more than just the name to differentiate between them. Currently parsing from text to json drops the type for the function which was found during a round trip test starting from text.
An example is the regexp_match_substring which is overloaded with different parameters.
=== Extensions
URNs:
@ 1: extension:io.substrait:functions_string
@ 2: extension:io.substrait:functions_comparison
Functions:
# 1 @ 2: equal:any_any
# 2 @ 1: like:str_str
=== Plan
Root[timestamp, productID, productDescription]
Fetch[limit=100, offset=0 => ]
Project[$1, $0, if_then(equal:any_any($0, 'Dog Toys') -> true, _ -> false)]
Read[foobar.products => productDescription:string?, timestamp:precisiontimestamp<9>]
Summary
For plans that could use overloaded functions from the same URN anchor, we need more than just the name to differentiate between them. Currently parsing from text to json drops the type for the function which was found during a round trip test starting from text.
An example is the regexp_match_substring which is overloaded with different parameters.