Commits on Source 4

  • cznic's avatar
    sqlite.go, connector.go: let Limit see through a wrapped driver connection · 49aabf7e
    cznic authored
    Limit type-switched on the driver's own *conn, so a driver.Connector that
    wraps the connections NewConnector opens, as its documentation suggests,
    could not use it: "unexpected driverConn type". Limit now unwraps the
    value Conn.Raw hands it for as long as it implements
    interface{ Unwrap() driver.Conn }, the convention wrappers in the wild
    use since Go declined one in the standard library; a wrapper without the
    method fails as before, with the same text. It was the only helper in
    the package to type-switch on the concrete connection.
    
    The NewConnector documentation now also lists the optional interfaces a
    wrapper must forward, since one that only embeds driver.Conn hides them
    and database/sql then falls back to the context-free methods.
    
    Verified: go test -run 'TestLimit|TestConnector', go vet -unsafeptr=false,
    staticcheck and golint add no findings.
    
    Reported in https://github.com/modernc-org/sqlite/issues/11.
    
    Co-Authored-By: default avatarClaude Fable 5.1 <noreply@anthropic.com>
    49aabf7e
  • cznic's avatar
    illumos/amd64: add the target; make vendor: libsqlite3 v1.16.0, libsqlite_vec v0.8.0, libc v1.80.1 · 9159cc80
    cznic authored
    Re-vendor lib/ from modernc.org/libsqlite3 v1.16.0 and vec/ from
    modernc.org/libsqlite_vec v0.8.0, both generated with ccgo/v4 v4.38.1
    against libc v1.80.1, which go.mod now pins. SQLite stays 3.54.1 and
    sqlite-vec v0.1.9. lib/ now also carries the modernc_fdatasync() switch.
    
    illumos/amd64 joins the vendor tool's target lists, make
    build_all_targets, builder.json's test set, doc.go's platform table and
    the GOOS build lines of rulimit.go, vec_test.go and vec/patches.go.
    
    vfs/vfs_illumos_amd64.go is a native transpile of vfs/c/vfs.c, made on
    the OmniOS builder per vfs/Makefile's editor recipe against the SQLite
    3.54.1 headers. ccgo/v4 v4.38.1 prefixes struct fields with F by default,
    but vfs/patches.go uses the unprefixed names, so the recipe now passes
    --prefix-field "" (an empty value given as "--prefix-field=" is rejected).
    
    vfs/c/vfs.c: sqlite3_fsFS allocated the VFS with sqlite3_malloc, but
    vfs/patches.go frees it with libc.Xfree. Every earlier transpile had been
    adjusted to libc.Xmalloc by hand, so the faithful illumos one crashed in
    FS.Close (TestVFS). The C source now calls malloc, matching both.
    
    make sbom for the dependency change. CLAUDE.md and IRP.md count 21
    targets. CHANGELOG: the open section becomes v1.62.0.
    
    Updates #210
    
    Co-Authored-By: default avatarClaude Opus 5.5 <noreply@anthropic.com>
    9159cc80
  • cznic's avatar
    fdatasync.go: opt-in process-wide switch from fsync(2) to fdatasync(2) · e9c47070
    cznic authored
    Fdatasync(on) selects which system call the library commits with, through
    modernc_fdatasync() in the transpiled library; FdatasyncEnabled reports the
    setting; ErrFdatasyncUnavailable covers macOS and Windows, where the
    library never calls fdatasync. Off by default, so nothing changes without
    opting in.
    
    Updates https://github.com/modernc-org/sqlite/issues/10. lib/ carries
    modernc_fdatasync() since the previous commit re-vendored it from
    modernc.org/libsqlite3 v1.16.0; the switch is honored on illumos too.
    
    Co-Authored-By: default avatarClaude Fable 5.1 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01LSAmjiAYJDMEs8WahbpBmN
    Co-Authored-By: default avatarClaude Opus 5.5 <noreply@anthropic.com>
    e9c47070
  • cznic's avatar
    CHANGELOG.md: v1.62.0 · d04d243c
    cznic authored
    The section header carries the release date.
    
    Co-Authored-By: default avatarClaude Opus 5.5 <noreply@anthropic.com>
    d04d243c
Loading
Loading