related: Fix toLower
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 21 Apr 2020 15:44:48 +0000 (17:44 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 21 Apr 2020 15:46:26 +0000 (17:46 +0200)
Don't change the slice.

Fixes #7198

related/inverted_index.go
related/inverted_index_test.go

index fda6b92226357cc1dc233512cc5fe185be47a497..79dd4577c2b932e70fe2b9eb695e15e0b025da99 100644 (file)
@@ -274,9 +274,12 @@ func (cfg IndexConfig) ToKeywords(v interface{}) ([]Keyword, error) {
                keywords = append(keywords, StringKeyword(vv))
        case []string:
                if toLower {
-                       for i := 0; i < len(vv); i++ {
-                               vv[i] = strings.ToLower(vv[i])
+                       vc := make([]string, len(vv))
+                       copy(vc, vv)
+                       for i := 0; i < len(vc); i++ {
+                               vc[i] = strings.ToLower(vc[i])
                        }
+                       vv = vc
                }
                keywords = append(keywords, StringsToKeywords(vv...)...)
        case time.Time:
index 57e72236464128e8a09ef308afa0f59ee23c9f76..576928aeaa410e36fcdcc88d79d4aad9c27e192f 100644 (file)
@@ -201,6 +201,21 @@ func TestSearch(t *testing.T) {
 
 }
 
+func TestToKeywordsToLower(t *testing.T) {
+       c := qt.New(t)
+       slice := []string{"A", "B", "C"}
+       config := IndexConfig{ToLower: true}
+       keywords, err := config.ToKeywords(slice)
+       c.Assert(err, qt.IsNil)
+       c.Assert(slice, qt.DeepEquals, []string{"A", "B", "C"})
+       c.Assert(keywords, qt.DeepEquals, []Keyword{
+               StringKeyword("a"),
+               StringKeyword("b"),
+               StringKeyword("c"),
+       })
+
+}
+
 func BenchmarkRelatedNewIndex(b *testing.B) {
 
        pages := make([]*testDoc, 100)