From e6480a050c229917f84ff76737a0d77d84362d4e Mon Sep 17 00:00:00 2001 From: Kyle Brandt Date: Thu, 27 Mar 2025 16:49:21 -0400 Subject: [PATCH] SQL Expressions: Allow substring_index func (#103021) --- pkg/expr/sql/parser_allow.go | 2 +- pkg/expr/sql/parser_allow_test.go | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/expr/sql/parser_allow.go b/pkg/expr/sql/parser_allow.go index f19f1bc4e63..8d7b2d80e9e 100644 --- a/pkg/expr/sql/parser_allow.go +++ b/pkg/expr/sql/parser_allow.go @@ -189,7 +189,7 @@ func allowedFunction(f *sqlparser.FuncExpr) (b bool) { return case "lower", "upper": return - case "substring": + case "substring", "substring_index": return // Date functions diff --git a/pkg/expr/sql/parser_allow_test.go b/pkg/expr/sql/parser_allow_test.go index 36aca7b0c27..6144c30f9d5 100644 --- a/pkg/expr/sql/parser_allow_test.go +++ b/pkg/expr/sql/parser_allow_test.go @@ -62,6 +62,11 @@ func TestAllowQuery(t *testing.T) { q: `SELECT 'some text' COLLATE utf8mb4_bin`, err: nil, }, + { + name: "allow substring_index", + q: `SELECT __value__, SUBSTRING_INDEX(name, '.', -1) AS code FROM A`, + err: nil, + }, } for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) {