@@ -95,6 +95,15 @@ func TestParse(t *testing.T) {
95
95
Args : []any {"bob" , "%alice%" , "eve" },
96
96
},
97
97
},
98
+ {
99
+ name : "success-dd" ,
100
+ query : "nAme%\" \" " ,
101
+ model : & testModel {},
102
+ want : & mql.WhereClause {
103
+ Condition : "name like ?" ,
104
+ Args : []any {"%%" },
105
+ },
106
+ },
98
107
{
99
108
name : "err-leftExpr-without-op" ,
100
109
query : "age (name=\" alice\" )" ,
@@ -261,7 +270,7 @@ func Fuzz_mqlParse(f *testing.F) {
261
270
f .Fuzz (func (t * testing.T , s string ) {
262
271
where , err := mql .Parse (s , testModel {})
263
272
if err == nil {
264
- for _ , kw := range sqlKeywords {
273
+ for _ , kw := range sqlKeywordsExceptLike {
265
274
if strings .Contains (strings .ToLower (where .Condition ), kw ) {
266
275
t .Errorf ("unexpected sql keyword %q in %s" , kw , where .Condition )
267
276
}
@@ -270,11 +279,11 @@ func Fuzz_mqlParse(f *testing.F) {
270
279
})
271
280
}
272
281
273
- var sqlKeywords = []string {
282
+ var sqlKeywordsExceptLike = []string {
274
283
"select" , "from" , "where" , "join" , "left" , "right" , "inner" , "outer" ,
275
284
"on" , "group" , "by" , "order" , "having" , "insert" , "update" , "delete" ,
276
285
"values" , "set" , "as" , "distinct" , "limit" , "offset" , "and" , "or" ,
277
- "not" , "in" , "like" , " between" , "is" , "null" , "true" , "false" ,
286
+ "not" , "in" , "between" , "is" , "null" , "true" , "false" ,
278
287
"case" , "when" , "then" , "else" , "end" , "while" , "for" , "foreach" ,
279
288
"create" , "alter" , "drop" , "table" , "view" , "index" , "sequence" ,
280
289
"database" , "schema" , "function" , "procedure" , "trigger" , "event" ,
0 commit comments