Skip to content

Limit redefinition in DocumentsQuery #407

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 17 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion index_documents.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ import (
"strings"
)

// NoLimit should be used to set Limit field value
// on DocumentsQuery struct to return all documents.
var NoLimit int64 = math.MinInt64

func transformStringVariadicToMap(primaryKey ...string) (options map[string]string) {
if primaryKey != nil {
return map[string]string{
Expand Down Expand Up @@ -186,7 +190,7 @@ func (i Index) GetDocuments(request *DocumentsQuery, resp *DocumentsResult) erro
}
if request != nil && request.Filter == nil {
req.withQueryParams = map[string]string{}
if request.Limit != 0 {
if request.Limit != NoLimit {
req.withQueryParams["limit"] = strconv.FormatInt(request.Limit, 10)
}
if request.Offset != 0 {
Expand Down
22 changes: 11 additions & 11 deletions index_documents_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -638,7 +638,7 @@ func TestIndex_AddDocumentsCsv(t *testing.T) {
testWaitForTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -756,7 +756,7 @@ func TestIndex_AddDocumentsCsvWithOptions(t *testing.T) {
testWaitForTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -854,7 +854,7 @@ func TestIndex_AddDocumentsCsvInBatches(t *testing.T) {
testWaitForBatchTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -959,7 +959,7 @@ func TestIndex_AddDocumentsNdjson(t *testing.T) {
testWaitForTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -1057,7 +1057,7 @@ func TestIndex_AddDocumentsNdjsonInBatches(t *testing.T) {
testWaitForBatchTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -1734,7 +1734,7 @@ func TestIndex_GetDocuments(t *testing.T) {

err := i.GetDocuments(tt.args.request, tt.args.resp)
require.NoError(t, err)
if tt.args.request != nil && tt.args.request.Limit != 0 {
if tt.args.request != nil && tt.args.request.Limit != NoLimit {
require.Equal(t, tt.args.request.Limit, int64(len(tt.args.resp.Results)))
}
require.Equal(t, tt.result, int64(len(tt.args.resp.Results)))
Expand Down Expand Up @@ -2192,7 +2192,7 @@ func TestIndex_UpdateDocumentsCsv(t *testing.T) {
testWaitForTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -2310,7 +2310,7 @@ func TestIndex_UpdateDocumentsCsvWithOptions(t *testing.T) {
testWaitForTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -2408,7 +2408,7 @@ func TestIndex_UpdateDocumentsCsvInBatches(t *testing.T) {
testWaitForBatchTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -2489,7 +2489,7 @@ func TestIndex_UpdateDocumentsNdjson(t *testing.T) {
testWaitForTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -2587,7 +2587,7 @@ func TestIndex_UpdateDocumentsNdjsonInBatches(t *testing.T) {
testWaitForBatchTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down
4 changes: 4 additions & 0 deletions types.go
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,10 @@ type DocumentQuery struct {
type DocumentsQuery struct {
Offset int64 `json:"offset,omitempty"`
Limit int64 `json:"limit,omitempty"`
// Limit sets the numbers of returned documents from the
// search queries. The limit can be zero for explicitly
// return nothing. For retrieving all
// returned documents, use NoLimit.
Fields []string `json:"fields,omitempty"`
Filter interface{} `json:"filter,omitempty"`
}
Expand Down