mirror of
https://github.com/ncruces/go-sqlite3.git
synced 2026-01-11 21:49:13 +00:00
Shim modernc.
This commit is contained in:
@@ -442,6 +442,22 @@ func (c *conn) CheckNamedValue(arg *driver.NamedValue) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deprecated: for Litestream use only; may be removed at any time.
|
||||||
|
func (c *conn) FileControlPersistWAL(schema string, mode int) (int, error) {
|
||||||
|
// notest
|
||||||
|
arg := make([]any, 1)
|
||||||
|
if mode >= 0 {
|
||||||
|
arg[0] = mode > 0
|
||||||
|
} else {
|
||||||
|
arg = arg[:0]
|
||||||
|
}
|
||||||
|
res, err := c.Conn.FileControl(schema, sqlite3.FCNTL_PERSIST_WAL, arg...)
|
||||||
|
if res == true {
|
||||||
|
return 1, err
|
||||||
|
}
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
type stmt struct {
|
type stmt struct {
|
||||||
*sqlite3.Stmt
|
*sqlite3.Stmt
|
||||||
tmWrite sqlite3.TimeFormat
|
tmWrite sqlite3.TimeFormat
|
||||||
|
|||||||
@@ -17,5 +17,7 @@ import (
|
|||||||
var binary string
|
var binary string
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
sqlite3.Binary = unsafe.Slice(unsafe.StringData(binary), len(binary))
|
if sqlite3.Binary == nil {
|
||||||
|
sqlite3.Binary = unsafe.Slice(unsafe.StringData(binary), len(binary))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
3
litestream/modernc/go.mod
Normal file
3
litestream/modernc/go.mod
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
module modernc.org/sqlite
|
||||||
|
|
||||||
|
go 1.24.0
|
||||||
20
litestream/modernc/sqlite.go
Normal file
20
litestream/modernc/sqlite.go
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
// Package sqlite provides a shim that allows Litestream to work with the ncruces SQLite driver.
|
||||||
|
package sqlite
|
||||||
|
|
||||||
|
import (
|
||||||
|
"database/sql"
|
||||||
|
"slices"
|
||||||
|
|
||||||
|
"github.com/ncruces/go-sqlite3/driver"
|
||||||
|
_ "github.com/ncruces/go-sqlite3/embed"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
if !slices.Contains(sql.Drivers(), "sqlite") {
|
||||||
|
sql.Register("sqlite", &driver.SQLite{})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type FileControl interface {
|
||||||
|
FileControlPersistWAL(string, int) (int, error)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user