diff --git a/internal/indexcoord/index_builder.go b/internal/indexcoord/index_builder.go index a22033672329f..41a079690e361 100644 --- a/internal/indexcoord/index_builder.go +++ b/internal/indexcoord/index_builder.go @@ -175,7 +175,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 c54d850088858..53321b9ac71b4 100644 --- a/internal/parser/planparserv2/plan_parser_v2_test.go +++ b/internal/parser/planparserv2/plan_parser_v2_test.go @@ -1577,6 +1577,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 3a3db9796014a..78a3dc183056c 100644 --- a/internal/parser/planparserv2/utils.go +++ b/internal/parser/planparserv2/utils.go @@ -385,7 +385,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 d776d5ebf6dcb..dc3478634dbcb 100644 --- a/internal/parser/planparserv2/utils_test.go +++ b/internal/parser/planparserv2/utils_test.go @@ -114,6 +114,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"`}, {`'\"'`, `"`}, {`'\\"'`, `\"`}, {`'\\\"'`, `\"`},