summaryrefslogtreecommitdiff
path: root/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go
diff options
context:
space:
mode:
authorLibravatar Terin Stock <terinjokes@gmail.com>2025-03-09 17:47:56 +0100
committerLibravatar Terin Stock <terinjokes@gmail.com>2025-03-10 01:59:49 +0100
commit3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch)
treef61faa581feaaeaba2542b9f2b8234a590684413 /vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go
parent[chore] update URLs to forked source (diff)
downloadgotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz
[chore] remove vendor
Diffstat (limited to 'vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go')
-rw-r--r--vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go100
1 files changed, 0 insertions, 100 deletions
diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go b/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go
deleted file mode 100644
index eb12eba09..000000000
--- a/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go
+++ /dev/null
@@ -1,100 +0,0 @@
-// Package memdb implements the "memdb" SQLite VFS.
-//
-// The "memdb" [vfs.VFS] allows the same in-memory database to be shared
-// among multiple database connections in the same process,
-// as long as the database name begins with "/".
-//
-// Importing package memdb registers the VFS:
-//
-// import _ "github.com/ncruces/go-sqlite3/vfs/memdb"
-package memdb
-
-import (
- "fmt"
- "net/url"
- "sync"
- "testing"
-
- "github.com/ncruces/go-sqlite3/vfs"
-)
-
-func init() {
- vfs.Register("memdb", memVFS{})
-}
-
-var (
- memoryMtx sync.Mutex
- // +checklocks:memoryMtx
- memoryDBs = map[string]*memDB{}
-)
-
-// Create creates a shared memory database,
-// using data as its initial contents.
-// The new database takes ownership of data,
-// and the caller should not use data after this call.
-func Create(name string, data []byte) {
- memoryMtx.Lock()
- defer memoryMtx.Unlock()
-
- db := &memDB{
- refs: 1,
- name: name,
- size: int64(len(data)),
- }
-
- // Convert data from WAL/2 to rollback journal.
- if len(data) >= 20 && (false ||
- data[18] == 2 && data[19] == 2 ||
- data[18] == 3 && data[19] == 3) {
- data[18] = 1
- data[19] = 1
- }
-
- sectors := divRoundUp(db.size, sectorSize)
- db.data = make([]*[sectorSize]byte, sectors)
- for i := range db.data {
- sector := data[i*sectorSize:]
- if len(sector) >= sectorSize {
- db.data[i] = (*[sectorSize]byte)(sector)
- } else {
- db.data[i] = new([sectorSize]byte)
- copy((*db.data[i])[:], sector)
- }
- }
-
- memoryDBs[name] = db
-}
-
-// Delete deletes a shared memory database.
-func Delete(name string) {
- memoryMtx.Lock()
- defer memoryMtx.Unlock()
- delete(memoryDBs, name)
-}
-
-// TestDB creates an empty shared memory database for the test to use.
-// The database is automatically deleted when the test and all its subtests complete.
-// Each subsequent call to TestDB returns a unique database.
-func TestDB(tb testing.TB, params ...url.Values) string {
- tb.Helper()
-
- name := fmt.Sprintf("%s_%p", tb.Name(), tb)
- tb.Cleanup(func() { Delete(name) })
- Create(name, nil)
-
- p := url.Values{"vfs": {"memdb"}}
- for _, v := range params {
- for k, v := range v {
- for _, v := range v {
- p.Add(k, v)
- }
- }
- }
-
- return (&url.URL{
- Scheme: "file",
- OmitHost: true,
- Path: "/" + name,
- RawQuery: p.Encode(),
- }).String()
-}