Skip to content

Commit 934233e

Browse files
authored
GT-344 Fetching single InvertedIndex fails with Marshalling error (#468)
1 parent b49911c commit 934233e

File tree

3 files changed

+20
-17
lines changed

3 files changed

+20
-17
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
- Add `IsExternalStorageError` to check for [external storage errors](https://www.arangodb.com/docs/stable/appendix-error-codes.html#external-arangodb-storage-errors)
66
- `nested` field in arangosearch type View
77
- Fix: TTL index creation fails when expireAt is 0
8+
- Fix: Fetching single InvertedIndex fails with Marshalling error
89

910
## [1.4.1](https://github.com/arangodb/go-driver/tree/v1.4.1) (2022-12-14)
1011
- Add support for `checksum` in Collections

collection_indexes_impl.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,17 @@ func (c *collection) Index(ctx context.Context, name string) (Index, error) {
7373
if err := resp.CheckStatus(200); err != nil {
7474
return nil, WithStack(err)
7575
}
76-
var data indexData
76+
var data map[string]interface{}
7777
if err := resp.ParseBody("", &data); err != nil {
7878
return nil, WithStack(err)
7979
}
80-
idx, err := newIndex(data, c)
80+
81+
rawResponse, err := json.Marshal(data)
82+
if err != nil {
83+
return nil, WithStack(err)
84+
}
85+
86+
idx, err := newIndexFromMap(rawResponse, c)
8187
if err != nil {
8288
return nil, WithStack(err)
8389
}

test/index_ensure_test.go

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -590,28 +590,24 @@ func TestEnsureInvertedIndex(t *testing.T) {
590590
skipNoEnterprise(t)
591591
}
592592

593+
requireIdxEquality := func(invertedIdx driver.Index) {
594+
require.Equal(t, driver.InvertedIndex, invertedIdx.Type())
595+
require.Equal(t, tc.Options.Name, invertedIdx.UserName())
596+
require.Equal(t, tc.Options.PrimarySort, invertedIdx.InvertedIndexOptions().PrimarySort)
597+
require.Equal(t, tc.Options.Fields, invertedIdx.InvertedIndexOptions().Fields)
598+
}
599+
593600
idx, created, err := col.EnsureInvertedIndex(ctx, &tc.Options)
594601
require.NoError(t, err)
595602
require.True(t, created)
596-
597-
tc.Options.IsNewlyCreated = true
598-
tc.Options.Analyzer = string(driver.ArangoSearchAnalyzerTypeIdentity) // default value for analyzer
599-
600-
requireIdxEquality := func(invertedIdx driver.Index) {
601-
require.Equal(t, driver.InvertedIndex, idx.Type())
602-
require.Equal(t, tc.Options.Name, idx.UserName())
603-
require.Equal(t, tc.Options.PrimarySort, idx.InvertedIndexOptions().PrimarySort)
604-
require.Equal(t, tc.Options.Fields, idx.InvertedIndexOptions().Fields)
605-
}
606603
requireIdxEquality(idx)
607604

608-
indexes, err := col.Indexes(ctx)
605+
col.Indexes(ctx)
606+
idx, err = col.Index(ctx, tc.Options.Name)
609607
require.NoError(t, err)
610-
require.NotEmpty(t, indexes)
611-
612-
requireIdxEquality(indexes[0])
608+
requireIdxEquality(idx)
613609

614-
err = idx.Remove(nil)
610+
err = idx.Remove(ctx)
615611
require.NoError(t, err)
616612
})
617613
}

0 commit comments

Comments
 (0)