From b78bb7b0ab5b85d4e03089865532e3bdfe2c33bb Mon Sep 17 00:00:00 2001 From: Mumbi Francis Date: Fri, 21 Jul 2023 17:53:46 +0300 Subject: [PATCH] Add MYSQL json case-insensitive search --- server/store/adapters/rdbms/drivers/mysql/dialect.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/server/store/adapters/rdbms/drivers/mysql/dialect.go b/server/store/adapters/rdbms/drivers/mysql/dialect.go index 68d4007a9..957fb26ce 100644 --- a/server/store/adapters/rdbms/drivers/mysql/dialect.go +++ b/server/store/adapters/rdbms/drivers/mysql/dialect.go @@ -62,6 +62,7 @@ func (d mysqlDialect) JsonExtract(jsonDoc exp.Expression, pp ...any) (path exp.E if path, err = jsonPathExpr(pp...); err != nil { return } else { + path = exp.NewCastExpression(path, "CHAR") return exp.NewSQLFunctionExpression("JSON_EXTRACT", jsonDoc, path), nil } } @@ -239,6 +240,11 @@ func (d mysqlDialect) ExprHandler(n *ql.ASTNode, args ...exp.Expression) (expr e case "nin": return drivers.OpHandlerNotIn(d, n, args...) + + case "like": + for a := range args { + args[a] = exp.NewLiteralExpression("LOWER(?)", args[a]) + } } return ref2exp.RefHandler(n, args...)