Add support for prepared statement caching.

This commit is contained in:
go-jet 2024-03-07 18:01:31 +01:00
parent 1b63280b74
commit 0918e5503e
30 changed files with 603 additions and 289 deletions

View file

@ -2,6 +2,7 @@ package sqlite
import (
"context"
"github.com/go-jet/jet/v2/qrm"
"testing"
"time"
@ -60,8 +61,6 @@ LIMIT 1;
}
func TestDeleteContextDeadlineExceeded(t *testing.T) {
tx := beginSampleDBTx(t)
defer tx.Rollback()
deleteStmt := Link.
DELETE().
@ -72,12 +71,16 @@ func TestDeleteContextDeadlineExceeded(t *testing.T) {
time.Sleep(10 * time.Millisecond)
dest := []model.Link{}
err := deleteStmt.QueryContext(ctx, tx, &dest)
require.Error(t, err, "context deadline exceeded")
testutils.ExecuteInTxAndRollback(t, sampleDB, func(tx qrm.DB) {
var dest []model.Link
err := deleteStmt.QueryContext(ctx, tx, &dest)
require.Error(t, err, "context deadline exceeded")
})
_, err = deleteStmt.ExecContext(ctx, tx)
require.Error(t, err, "context deadline exceeded")
testutils.ExecuteInTxAndRollback(t, sampleDB, func(tx qrm.DB) {
_, err := deleteStmt.ExecContext(ctx, tx)
require.Error(t, err, "context deadline exceeded")
})
requireLogged(t, deleteStmt)
}