| 78 | constexpr int64_t kMicrosPerMilli = 1000; |
| 79 | |
| 80 | Id NormalizeFunctionName(Id id) { |
| 81 | // Substrait plans encode the types into the function name so it might look like |
| 82 | // add:opt_i32_i32. We don't care about the :opt_i32_i32 so we just trim it |
| 83 | std::string_view func_name = id.name; |
| 84 | std::size_t colon_index = func_name.find_first_of(':'); |
| 85 | if (colon_index != std::string_view::npos) { |
| 86 | func_name = func_name.substr(0, colon_index); |
| 87 | } |
| 88 | return {id.uri, func_name}; |
| 89 | } |
| 90 | |
| 91 | Status DecodeArg(const substrait::FunctionArgument& arg, int idx, SubstraitCall* call, |
| 92 | const ExtensionSet& ext_set, |