From cdaa10c0edab57e28e015edc64c5b9d42fc598e4 Mon Sep 17 00:00:00 2001 From: zepatrik Date: Fri, 11 Aug 2023 11:33:05 +0200 Subject: [PATCH] fix(pagination): quote function broken for mysql --- pagination/keysetpagination/paginator.go | 5 +++-- pagination/keysetpagination/paginator_test.go | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pagination/keysetpagination/paginator.go b/pagination/keysetpagination/paginator.go index c6ec4bd1..a69a8f64 100644 --- a/pagination/keysetpagination/paginator.go +++ b/pagination/keysetpagination/paginator.go @@ -132,10 +132,11 @@ func Paginate[I any, PI interface { id := model.IDField() tableName := model.Alias() return func(q *pop.Query) *pop.Query { - eid := q.Connection.Dialect.Quote(tableName + "." + id) + quote := q.Connection.Dialect.Quote + eid := quote(tableName) + "." + quote(id) quoteAndContextualize := func(name string) string { - return q.Connection.Dialect.Quote(tableName + "." + name) + return quote(tableName) + "." + quote(name) } p.multipleOrderFieldsQuery(q, id, model.Columns().Cols, quoteAndContextualize) diff --git a/pagination/keysetpagination/paginator_test.go b/pagination/keysetpagination/paginator_test.go index d4c5c457..bbc5d1af 100644 --- a/pagination/keysetpagination/paginator_test.go +++ b/pagination/keysetpagination/paginator_test.go @@ -49,7 +49,7 @@ func TestPaginator(t *testing.T) { q = q.Scope(Paginate[testItem](paginator)) sql, args := q.ToSQL(&pop.Model{Value: new(testItem)}) - assert.Equal(t, "SELECT test_items.created_at, test_items.pk FROM test_items AS test_items WHERE `test_items.pk` > ? ORDER BY `test_items.pk` ASC LIMIT 11", sql) + assert.Equal(t, "SELECT test_items.created_at, test_items.pk FROM test_items AS test_items WHERE `test_items`.`pk` > ? ORDER BY `test_items`.`pk` ASC LIMIT 11", sql) assert.Equal(t, []interface{}{"token"}, args) })