Add custom function call test.

This commit is contained in:
go-jet 2022-01-20 17:07:29 +01:00
parent 911cab333b
commit 4f29960378
3 changed files with 40 additions and 2 deletions

View file

@ -116,5 +116,5 @@ USING dvds.rental
WHERE (staff.staff_id != ?) AND (rental.rental_id < ?); WHERE (staff.staff_id != ?) AND (rental.rental_id < ?);
`) `)
testutils.AssertExec(t, stmt, tx, 42) testutils.AssertExec(t, stmt, tx)
} }

View file

@ -2541,3 +2541,41 @@ FROM dvds.staff;
err := stmt.Query(db, &struct{}{}) err := stmt.Query(db, &struct{}{})
require.NoError(t, err) require.NoError(t, err)
} }
func GET_FILM_COUNT(lenFrom, lenTo IntegerExpression) IntegerExpression {
return IntExp(Func("dvds.get_film_count", lenFrom, lenTo))
}
func TestCustomFunctionCall(t *testing.T) {
stmt := SELECT(
GET_FILM_COUNT(Int(100), Int(120)).AS("film_count"),
)
testutils.AssertDebugStatementSql(t, stmt, `
SELECT dvds.get_film_count(100, 120) AS "film_count";
`)
var dest struct {
FilmCount int
}
err := stmt.Query(db, &dest)
require.NoError(t, err)
require.Equal(t, dest.FilmCount, 165)
stmt2 := SELECT(
Raw("dvds.get_film_count(#1, #2)", RawArgs{"#1": 100, "#2": 120}).AS("film_count"),
)
err = stmt2.Query(db, &dest)
require.NoError(t, err)
require.Equal(t, dest.FilmCount, 165)
stmt3 := RawStatement(`
SELECT dvds.get_film_count(#1, #2) AS "film_count";`, RawArgs{"#1": 100, "#2": 120},
)
err = stmt3.Query(db, &dest)
require.NoError(t, err)
require.Equal(t, dest.FilmCount, 165)
}

@ -1 +1 @@
Subproject commit aa46ddd9aad89455f73b898a46e7410e36d03272 Subproject commit 895bf5760d055c717df77c3b872af276f34d06f1