Query rows grouping performance improvements.

This commit is contained in:
go-jet 2019-06-20 11:19:23 +02:00
parent 565b670188
commit cdfd8f1dff
3 changed files with 202 additions and 149 deletions

View file

@ -2,6 +2,7 @@ package tests
import (
"fmt"
"github.com/davecgh/go-spew/spew"
. "github.com/go-jet/jet/sqlbuilder"
"github.com/go-jet/jet/tests/.test_files/dvd_rental/dvds/model"
. "github.com/go-jet/jet/tests/.test_files/dvd_rental/dvds/table"
@ -450,6 +451,10 @@ func TestScanToSlice(t *testing.T) {
err := query.Query(db, &dest)
fmt.Println(query.DebugSql())
spew.Dump(dest)
assert.NilError(t, err)
assert.DeepEqual(t, dest.Film, film1)
assert.DeepEqual(t, dest.IDs, []int32{1, 2, 3, 4, 5, 6, 7, 8})

View file

@ -204,9 +204,9 @@ FROM dvds.film_actor
INNER JOIN dvds.inventory ON (inventory.film_id = film.film_id)
INNER JOIN dvds.rental ON (rental.inventory_id = inventory.inventory_id)
ORDER BY film.film_id ASC
LIMIT 500;
LIMIT 1000;
`
for i := 0; i < 1; i++ {
for i := 0; i < 2; i++ {
query := FilmActor.
INNER_JOIN(Actor, FilmActor.ActorID.EQ(Actor.ActorID)).
INNER_JOIN(Film, FilmActor.FilmID.EQ(Film.FilmID)).
@ -223,9 +223,9 @@ LIMIT 500;
).
//WHERE(FilmActor.ActorID.GtEqL(1).AND(FilmActor.ActorID.LtEqL(2))).
ORDER_BY(Film.FilmID.ASC()).
LIMIT(500)
LIMIT(1000)
assertStatementSql(t, query, expectedSql, int64(500))
assertStatementSql(t, query, expectedSql, int64(1000))
var languageActorFilm []struct {
model.Language
@ -248,7 +248,7 @@ LIMIT 500;
assert.NilError(t, err)
assert.Equal(t, len(languageActorFilm), 1)
assert.Equal(t, len(languageActorFilm[0].Films), 6)
assert.Equal(t, len(languageActorFilm[0].Films), 10)
assert.Equal(t, len(languageActorFilm[0].Films[0].Actors), 10)
}