diff --git a/tests/mysql/delete_test.go b/tests/mysql/delete_test.go index 31c2579..709ce1a 100644 --- a/tests/mysql/delete_test.go +++ b/tests/mysql/delete_test.go @@ -116,5 +116,5 @@ USING dvds.rental WHERE (staff.staff_id != ?) AND (rental.rental_id < ?); `) - testutils.AssertExec(t, stmt, tx, 42) + testutils.AssertExec(t, stmt, tx) } diff --git a/tests/postgres/select_test.go b/tests/postgres/select_test.go index 5a18ceb..b3d3e63 100644 --- a/tests/postgres/select_test.go +++ b/tests/postgres/select_test.go @@ -2541,3 +2541,41 @@ FROM dvds.staff; err := stmt.Query(db, &struct{}{}) 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) +} diff --git a/tests/testdata b/tests/testdata index aa46ddd..895bf57 160000 --- a/tests/testdata +++ b/tests/testdata @@ -1 +1 @@ -Subproject commit aa46ddd9aad89455f73b898a46e7410e36d03272 +Subproject commit 895bf5760d055c717df77c3b872af276f34d06f1