diff options
author | 2024-09-14 16:36:25 +0200 | |
---|---|---|
committer | 2024-09-14 16:36:25 +0200 | |
commit | 4fa0d412023ffdefc4ba63eecccd4b74e712ff7d (patch) | |
tree | 02ad2eb48c195eb52e22e6152909f45c7cae58f6 /vendor/github.com/ncruces/go-sqlite3/driver/driver.go | |
parent | [feature/frontend] Add dark version of brutalist theme (#3294) (diff) | |
download | gotosocial-4fa0d412023ffdefc4ba63eecccd4b74e712ff7d.tar.xz |
[chore] Update go-sqlite3 to 0.18.3 (#3295)
* [chore] Update go-sqlite3 to 0.18.3
* [chore] Fix getting the sqlite3.Conn
Diffstat (limited to 'vendor/github.com/ncruces/go-sqlite3/driver/driver.go')
-rw-r--r-- | vendor/github.com/ncruces/go-sqlite3/driver/driver.go | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/vendor/github.com/ncruces/go-sqlite3/driver/driver.go b/vendor/github.com/ncruces/go-sqlite3/driver/driver.go index c02ba4b4f..c6c758ac2 100644 --- a/vendor/github.com/ncruces/go-sqlite3/driver/driver.go +++ b/vendor/github.com/ncruces/go-sqlite3/driver/driver.go @@ -130,6 +130,11 @@ type SQLite struct { term func(*sqlite3.Conn) error } +var ( + // Ensure these interfaces are implemented: + _ driver.DriverContext = &SQLite{} +) + // Open implements [database/sql/driver.Driver]. func (d *SQLite) Open(name string) (driver.Conn, error) { c, err := d.newConnector(name) @@ -255,6 +260,35 @@ func (n *connector) Connect(ctx context.Context) (_ driver.Conn, err error) { return c, nil } +// Conn is implemented by the SQLite [database/sql] driver connections. +// +// It can be used to access SQLite features like [online backup]: +// +// db, err := driver.Open("temp.db") +// if err != nil { +// log.Fatal(err) +// } +// defer db.Close() +// +// conn, err := db.Conn(context.TODO()) +// if err != nil { +// log.Fatal(err) +// } +// +// err = conn.Raw(func(driverConn any) error { +// conn := driverConn.(driver.Conn) +// return conn.Raw().Backup("main", "backup.db") +// }) +// if err != nil { +// log.Fatal(err) +// } +// +// [online backup]: https://sqlite.org/backup.html +type Conn interface { + Raw() *sqlite3.Conn + driver.Conn +} + type conn struct { *sqlite3.Conn txLock string @@ -266,10 +300,10 @@ type conn struct { var ( // Ensure these interfaces are implemented: + _ Conn = &conn{} + _ driver.ConnBeginTx = &conn{} _ driver.ConnPrepareContext = &conn{} _ driver.ExecerContext = &conn{} - _ driver.ConnBeginTx = &conn{} - _ sqlite3.DriverConn = &conn{} ) func (c *conn) Raw() *sqlite3.Conn { |