diff --git a/internal/datacoord/index_builder.go b/internal/datacoord/index_builder.go index 99d2feab2e65a..1d4dc3b3324b0 100644 --- a/internal/datacoord/index_builder.go +++ b/internal/datacoord/index_builder.go @@ -191,7 +191,7 @@ func (ib *indexBuilder) run() { for _, buildID := range buildIDs { ok := ib.process(buildID) if !ok { - log.Ctx(ib.ctx).Info("there is no IndexNode available or etcd is not serviceable, wait a minute...") + log.Ctx(ib.ctx).Info("there is no idle indexing node, wait a minute...") break } } diff --git a/internal/parser/planparserv2/plan_parser_v2_test.go b/internal/parser/planparserv2/plan_parser_v2_test.go index fce00dc72b556..fdfd964e27a4b 100644 --- a/internal/parser/planparserv2/plan_parser_v2_test.go +++ b/internal/parser/planparserv2/plan_parser_v2_test.go @@ -934,6 +934,7 @@ func Test_EscapeString(t *testing.T) { `str2 like 'abc"def-%'`, `str4 like "abc\367-%"`, `str4 like "中国"`, + `tag == '"blue"'`, } for _, expr = range exprs { _, err = CreateSearchPlan(schema, expr, "FloatVectorField", &planpb.QueryInfo{ diff --git a/internal/parser/planparserv2/utils.go b/internal/parser/planparserv2/utils.go index d6c2172e7cf36..ceffa4dcc8b54 100644 --- a/internal/parser/planparserv2/utils.go +++ b/internal/parser/planparserv2/utils.go @@ -504,7 +504,7 @@ func convertEscapeSingle(literal string) (string, error) { b.WriteString(literal[start : end-1]) b.WriteString(`'`) } - start = end + start = end + 1 } b.WriteString(literal[end+1 : len(literal)-1]) b.WriteString(`"`) diff --git a/internal/parser/planparserv2/utils_test.go b/internal/parser/planparserv2/utils_test.go index 843bd2d34bba3..4648c4dca0bad 100644 --- a/internal/parser/planparserv2/utils_test.go +++ b/internal/parser/planparserv2/utils_test.go @@ -187,6 +187,13 @@ func Test_convertEscapeSingle(t *testing.T) { {`"\\\\'"`, `\\'`}, {`"\\\\\'"`, `\\'`}, {`'"'`, `"`}, + {`'""'`, `""`}, + {`'"""'`, `"""`}, + {`'"\""'`, `"""`}, + {`'a"b\"c\\"d'`, `a"b"c\"d`}, + {`"a\"b\"c\\\"d"`, `a"b"c\"d`}, + {`'A "test"'`, `A "test"`}, + {`"A \"test\""`, `A "test"`}, {`'\"'`, `"`}, {`'\\"'`, `\"`}, {`'\\\"'`, `\"`},