From 3b46eb6a9eb312abf5f160552b5521e4cd8d6603 Mon Sep 17 00:00:00 2001 From: Daenney Date: Sat, 31 May 2025 13:43:33 +0200 Subject: [chore] Upgrade to SQLite 3.50 (#4218) # Description Upgrades ncruces/go-sqlite3 to 0.26 which includes SQLite 3.50. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first checkbox must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [ ] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have not leveraged AI to create the proposed changes. - [ ] I/we have performed a self-review of added code. - [ ] I/we have written code that is legible and maintainable by others. - [ ] I/we have commented the added code, particularly in hard-to-understand areas. - [ ] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [ ] I/we have run tests and they pass locally with the changes. - [ ] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4218 Co-authored-by: Daenney Co-committed-by: Daenney --- vendor/github.com/ncruces/go-sqlite3/vfs/const.go | 3 ++- vendor/github.com/ncruces/go-sqlite3/vfs/file.go | 24 ++++++++++++++-------- .../ncruces/go-sqlite3/vfs/memdb/memdb.go | 5 ++--- .../ncruces/go-sqlite3/vfs/shm_windows.go | 1 - vendor/github.com/ncruces/go-sqlite3/vfs/vfs.go | 4 ++++ 5 files changed, 23 insertions(+), 14 deletions(-) (limited to 'vendor/github.com/ncruces/go-sqlite3/vfs') diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/const.go b/vendor/github.com/ncruces/go-sqlite3/vfs/const.go index b789d1203..11afb1254 100644 --- a/vendor/github.com/ncruces/go-sqlite3/vfs/const.go +++ b/vendor/github.com/ncruces/go-sqlite3/vfs/const.go @@ -234,6 +234,7 @@ const ( _FCNTL_CKSM_FILE _FcntlOpcode = 41 _FCNTL_RESET_CACHE _FcntlOpcode = 42 _FCNTL_NULL_IO _FcntlOpcode = 43 + _FCNTL_BLOCK_ON_CONNECT _FcntlOpcode = 44 ) // https://sqlite.org/c3ref/c_shm_exclusive.html @@ -246,6 +247,6 @@ const ( _SHM_EXCLUSIVE _ShmFlag = 8 _SHM_NLOCK = 8 - _SHM_BASE = 120 + _SHM_BASE = (22 + _SHM_NLOCK) * 4 _SHM_DMS = _SHM_BASE + _SHM_NLOCK ) diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/file.go b/vendor/github.com/ncruces/go-sqlite3/vfs/file.go index 65409823c..8e65ca660 100644 --- a/vendor/github.com/ncruces/go-sqlite3/vfs/file.go +++ b/vendor/github.com/ncruces/go-sqlite3/vfs/file.go @@ -13,22 +13,28 @@ import ( type vfsOS struct{} func (vfsOS) FullPathname(path string) (string, error) { - path, err := filepath.Abs(path) + link, err := evalSymlinks(path) if err != nil { return "", err } - return path, testSymlinks(filepath.Dir(path)) + full, err := filepath.Abs(link) + if err == nil && link != path { + err = _OK_SYMLINK + } + return full, err } -func testSymlinks(path string) error { - p, err := filepath.EvalSymlinks(path) - if err != nil { - return err +func evalSymlinks(path string) (string, error) { + var file string + _, err := os.Lstat(path) + if errors.Is(err, fs.ErrNotExist) { + path, file = filepath.Split(path) } - if p != path { - return _OK_SYMLINK + path, err = filepath.EvalSymlinks(path) + if err != nil { + return "", err } - return nil + return filepath.Join(path, file), nil } func (vfsOS) Delete(path string, syncDir bool) error { diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/memdb.go b/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/memdb.go index 419fd1c64..94347f1cc 100644 --- a/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/memdb.go +++ b/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/memdb.go @@ -28,9 +28,8 @@ func (memVFS) Open(name string, flags vfs.OpenFlag) (vfs.File, vfs.OpenFlag, err // // We refuse to open all other file types, // but returning OPEN_MEMORY means SQLite won't ask us to. - const types = vfs.OPEN_MAIN_DB | - vfs.OPEN_TEMP_DB | - vfs.OPEN_TEMP_JOURNAL + const types = vfs.OPEN_MAIN_DB | vfs.OPEN_TEMP_DB | + vfs.OPEN_TRANSIENT_DB | vfs.OPEN_TEMP_JOURNAL if flags&types == 0 { // notest // OPEN_MEMORY return nil, flags, sqlite3.CANTOPEN diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/shm_windows.go b/vendor/github.com/ncruces/go-sqlite3/vfs/shm_windows.go index 7cc5b2a23..0be523ad6 100644 --- a/vendor/github.com/ncruces/go-sqlite3/vfs/shm_windows.go +++ b/vendor/github.com/ncruces/go-sqlite3/vfs/shm_windows.go @@ -26,7 +26,6 @@ type vfsShm struct { ptrs []ptr_t stack [1]stk_t fileLock bool - blocking bool sync.Mutex } diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/vfs.go b/vendor/github.com/ncruces/go-sqlite3/vfs/vfs.go index c70507caa..2656ddb49 100644 --- a/vendor/github.com/ncruces/go-sqlite3/vfs/vfs.go +++ b/vendor/github.com/ncruces/go-sqlite3/vfs/vfs.go @@ -381,6 +381,10 @@ func vfsFileControlImpl(ctx context.Context, mod api.Module, file File, op _Fcnt file.SetDB(ctx.Value(util.ConnKey{})) return _OK } + + case _FCNTL_NULL_IO: + file.Close() + return _OK } return _NOTFOUND -- cgit v1.2.3