| 111 | } |
| 112 | |
| 113 | fn invoke_with_args(&self, args: ScalarFunctionArgs) -> Result<ColumnarValue> { |
| 114 | let ScalarFunctionArgs { args, .. } = args; |
| 115 | |
| 116 | if let ( |
| 117 | ColumnarValue::Array(string_array), |
| 118 | ColumnarValue::Scalar(delim_scalar), |
| 119 | ColumnarValue::Scalar(count_scalar), |
| 120 | ) = (&args[0], &args[1], &args[2]) |
| 121 | { |
| 122 | return substr_index_scalar(string_array, delim_scalar, count_scalar); |
| 123 | } |
| 124 | |
| 125 | make_scalar_function(substr_index, vec![])(&args) |
| 126 | } |
| 127 | |
| 128 | fn aliases(&self) -> &[String] { |
| 129 | &self.aliases |