diff --git a/store/datastore/repos.go b/store/datastore/repos.go index 6d053ca56..c0e5c6490 100644 --- a/store/datastore/repos.go +++ b/store/datastore/repos.go @@ -28,7 +28,7 @@ func (db *datastore) GetRepoListOf(listof []*model.RepoLite) ([]*model.Repo, err ) switch meddler.Default { case meddler.PostgreSQL: - stmt, args = toListPosgres(listof) + stmt, args = toListPostgres(listof) default: stmt, args = toList(listof) } diff --git a/store/datastore/users.go b/store/datastore/users.go index 39dde54e9..0fe8d668f 100644 --- a/store/datastore/users.go +++ b/store/datastore/users.go @@ -35,7 +35,7 @@ func (db *datastore) GetUserFeed(listof []*model.RepoLite) ([]*model.Feed, error ) switch meddler.Default { case meddler.PostgreSQL: - stmt, args = toListPosgres(listof) + stmt, args = toListPostgres(listof) default: stmt, args = toList(listof) } @@ -55,7 +55,7 @@ func (db *datastore) GetUserFeedLatest(listof []*model.RepoLite) ([]*model.Feed, ) switch meddler.Default { case meddler.PostgreSQL: - stmt, args = toListPosgres(listof) + stmt, args = toListPostgres(listof) default: stmt, args = toList(listof) } diff --git a/store/datastore/utils.go b/store/datastore/utils.go index 1d4ca8b7e..e2345dd32 100644 --- a/store/datastore/utils.go +++ b/store/datastore/utils.go @@ -40,9 +40,13 @@ func rebind(query string) string { // to a sql IN statment. func toList(listof []*model.RepoLite) (string, []interface{}) { var size = len(listof) - if size > 999 { + switch { + case meddler.Default == meddler.SQLite && size > 999: size = 999 listof = listof[:999] + case size > 15000: + size = 15000 + listof = listof[:15000] } var qs = make([]string, size, size) var in = make([]interface{}, size, size) @@ -55,11 +59,11 @@ func toList(listof []*model.RepoLite) (string, []interface{}) { // helper function that converts a simple repository list // to a sql IN statement compatible with postgres. -func toListPosgres(listof []*model.RepoLite) (string, []interface{}) { +func toListPostgres(listof []*model.RepoLite) (string, []interface{}) { var size = len(listof) - if size > 999 { - size = 999 - listof = listof[:999] + if size > 15000 { + size = 15000 + listof = listof[:15000] } var qs = make([]string, size, size) var in = make([]interface{}, size, size)