This is an automated email from the ASF dual-hosted git repository.

zeroshade pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-go.git


The following commit(s) were added to refs/heads/main by this push:
     new 9fcf02e1 chore: Bump modernc.org/sqlite from 1.53.0 to 1.54.0 (#964)
9fcf02e1 is described below

commit 9fcf02e1bb249eeaa1f21333e5afe6f72e4b7f9a
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
AuthorDate: Wed Jul 22 10:45:31 2026 -0400

    chore: Bump modernc.org/sqlite from 1.53.0 to 1.54.0 (#964)
    
    Bumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) from 1.53.0
    to 1.54.0.
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    
href="https://gitlab.com/cznic/sqlite/blob/master/CHANGELOG.md";>modernc.org/sqlite's
    changelog</a>.</em></p>
    <blockquote>
    <h1>Changelog</h1>
    <ul>
    <li>
    <p>2026-07-20 v1.55.0:</p>
    <ul>
    <li>Add <code>github.com/mattn/go-sqlite3</code>-compatible shorthand
    DSN query parameters to ease migration from that driver:
    <code>_busy_timeout</code>/<code>_timeout</code>,
    <code>_foreign_keys</code>/<code>_fk</code>,
    <code>_journal_mode</code>/<code>_journal</code>,
    <code>_synchronous</code>/<code>_sync</code>,
    <code>_auto_vacuum</code>/<code>_vacuum</code>, and
    <code>_query_only</code>, each setting the correspondingly named PRAGMA.
    Values are validated against the same set <code>mattn/go-sqlite3</code>
    accepts (case-insensitive) and an unrecognized value fails the
    connection with an error, so a typo such as
    <code>_synchronous=fu1l</code> or <code>_foreign_keys=yes_please</code>
    is reported rather than silently downgrading durability or dropping
    foreign-key enforcement. The keys are applied in a fixed order
    independent of their order in the DSN — <code>_busy_timeout</code> and
    <code>_auto_vacuum</code> before any <code>_pragma</code> values
    (<code>auto_vacuum</code> must be set before the database is first
    written), the rest after, and <code>_query_only</code> last — and where
    a key and its alias are both supplied the alias wins, matching
    <code>mattn/go-sqlite3</code>. Behavior change to note: prior releases
    ignored these keys entirely, so a DSN carried over from a
    <code>mattn/go-sqlite3</code> setup changes in two ways. A recognized
    key that previously did nothing now takes effect —
    <code>_foreign_keys=on</code> begins enforcing constraints against data
    that may already violate them, <code>_journal_mode=wal</code>
    persistently converts the database file, and <code>_query_only=1</code>
    makes the connection read-only. And a value outside the accepted set now
    fails the connection with an error where the same DSN previously opened
    successfully — for example a duration-style
    <code>_busy_timeout=5s</code> or <code>_timeout=5000ms</code>, neither
    of which is the integer that key requires. Review such DSNs before
    upgrading. <code>_pragma</code> and all other existing parameters are
    unchanged.</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/134";>#134</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/134";>https://gitlab.com/cznic/sqlite/-/merge_requests/134</a>),
    thanks Toni Spets (<a
    href="https://github.com/beeper-hifi";><code>@​beeper-hifi</code></a>)
    and Ian Chechin!</li>
    </ul>
    </li>
    <li>
    <p>2026-07-15 v1.54.0:</p>
    <ul>
    <li>Upgrade to <a
    href="https://sqlite.org/releaselog/3_53_3.html";>SQLite 3.53.3</a>. This
    also bumps the pinned <code>modernc.org/libc</code> to v1.74.1; as
    always, downstream modules must pin the exact same
    <code>modernc.org/libc</code> version this module's <code>go.mod</code>
    pins (see [GitLab issue <a
    href="https://gitlab.com/cznic/sqlite/issues/177";>#177</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/issues/177";>https://gitlab.com/cznic/sqlite/-/issues/177</a>)).</li>
    <li>Under the opt-in <code>_texttotime</code> DSN parameter, best-effort
    parse date-shaped TEXT values from columns SQLite reports with an empty
    declared type — aggregates and expressions over a date column
    (<code>MAX(d)</code>, <code>COALESCE(d, ...)</code>,
    <code>upper(d)</code>, <code>d || ''</code>), subqueries, and typeless
    real columns (<code>CREATE TABLE t(x)</code>) — into
    <code>time.Time</code>, instead of delivering them as a raw string that
    <code>Scan</code> cannot store into a <code>*time.Time</code>. The
    existing declared
    
<code>DATE</code>/<code>DATETIME</code>/<code>TIME</code>/<code>TIMESTAMP</code>
    path is unchanged; this only adds the empty-decltype case. The
    conversion is strictly best-effort: a value that does not parse as a
    time falls through to the original string, so no <code>Scan</code> that
    worked before can newly fail. <code>ColumnTypeScanType</code> continues
    to report <code>string</code> for empty-decltype columns, since the
    declared type cannot prove the column is temporal. Without
    <code>_texttotime</code> the behavior is byte-for-byte unchanged.
    Resolves [GitLab issue <a
    href="https://gitlab.com/cznic/sqlite/issues/248";>#248</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/issues/248";>https://gitlab.com/cznic/sqlite/-/issues/248</a>).</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/133";>#133</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/133";>https://gitlab.com/cznic/sqlite/-/merge_requests/133</a>),
    thanks Ian Chechin!</li>
    </ul>
    </li>
    <li>
    <p>2026-06-21 v1.53.0:</p>
    <ul>
    <li>Add <strong>experimental</strong> <code>netbsd/amd64</code> support,
    resolving the long-standing build break in [GitLab issue <a
    href="https://gitlab.com/cznic/sqlite/issues/246";>#246</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/issues/246";>https://gitlab.com/cznic/sqlite/-/issues/246</a>).
    This target is intentionally <strong>not yet listed among the supported
    platforms</strong> in the package documentation: the port had been
    broken for years and is only now revived, and there is as yet no
    real-world experience running it under production workloads. Green CI is
    not the same as battle-tested — so while the full test suite (including
    the <code>pcache</code> and <code>vec</code> packages and the
    <code>-race</code> concurrency test) passes on NetBSD 10.1 / Go 1.26.3,
    and the entire upstream toolchain (<code>libc</code>, <code>cc</code>,
    <code>ccgo</code>, <code>libz</code>, <code>libtcl8.6</code>,
    <code>libsqlite3</code>, <code>libsqlite_vec</code>) is green on the
    NetBSD CI builder, the target is offered for evaluation only. If you run
    NetBSD, please exercise it with your own workloads and report back via
    <a href="https://gitlab.com/cznic/sqlite/issues/246";>#246</a>; the
    intent is to promote it to a fully supported platform after a period of
    broader real-world testing (on the order of a month) elapses without
    surprises.</li>
    <li>Implementation notes: the previously shipped
    <code>lib/sqlite_netbsd_amd64.go</code> was a stale old-generator
    transpile that no longer compiled (the
    <code>mu.enter</code>/<code>mu.leave</code> break in <a
    href="https://gitlab.com/cznic/sqlite/issues/246";>#246</a>); it is
    replaced by a fresh new-generator transpile consistent with every other
    platform, and <code>modernc.org/sqlite/vec</code> (sqlite-vec) is
    vendored and auto-registers on netbsd. Correct operation requires the
    matching pinned <code>modernc.org/libc</code>, which carries two
    NetBSD-specific fixes found during this work: the <code>mmap(2)</code>
    <code>PAD</code>-argument ABI (without it, concurrent WAL access faults
    with SIGBUS in the WAL-index shared memory) and a working
    <code>abort(3)</code> (the prior stub left SQLite's crash-recovery
    <code>writecrash</code> test unable to terminate by signal). As usual,
    downstream modules must pin the exact <code>modernc.org/libc</code>
    version this module's <code>go.mod</code> pins.</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/82";>#82</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/82";>https://gitlab.com/cznic/sqlite/-/merge_requests/82</a>),
    thanks Leonardo Taccari (<a
    href="https://github.com/iamleot";><code>@​iamleot</code></a>) and Thomas
    Klausner (@<em>wiz</em>)!</li>
    <li>Add <strong>experimental</strong> <code>freebsd/386</code> and
    <code>freebsd/arm</code> support. As with the <code>netbsd/amd64</code>
    target above, these two 32-bit FreeBSD ports are intentionally
    <strong>not yet listed among the supported platforms</strong> in the
    package documentation: <code>freebsd/386</code> previously shipped a
    stale, effectively untested SQLite 3.41 transpile, and
    <code>freebsd/arm</code> is entirely new, so neither has real-world
    production mileage yet. Both are now freshly transpiled at SQLite 3.53.2
    consistent with every other platform, build cleanly, and pass the full
    test suite (core, WAL/concurrency, and the <code>vec</code> package) on
    the FreeBSD CI builders; they are offered for evaluation only. If you
    run 32-bit FreeBSD, please exercise these targets with your own
    workloads and report back — the intent is to promote
    <code>freebsd/386</code>, <code>freebsd/arm</code>, and
    <code>netbsd/amd64</code> to fully supported platforms in a future
    release cycle, once a period of broader real-world testing elapses
    without surprises.</li>
    <li>Implementation notes: correct operation on <code>freebsd/arm</code>
    requires the matching pinned <code>modernc.org/libc</code> (v1.73.4),
    which fixes the per-arch <code>mmap(2)</code> <code>off_t</code>
    encoding for 32-bit FreeBSD; without it the WAL shared-memory mapping
    faults with SIGBUS under concurrent access, the same class of bug found
    on the netbsd port. As usual, downstream modules must pin the exact
    <code>modernc.org/libc</code> version this module's <code>go.mod</code>
    pins.</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/119";>#119</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/119";>https://gitlab.com/cznic/sqlite/-/merge_requests/119</a>),
    thanks Olivier Cochard-Labbé (<a
    href="https://github.com/ocochard";><code>@​ocochard</code></a>)!</li>
    <li>Add a Go-facing wrapper for <code>SQLITE_CONFIG_PCACHE2</code>.
    <code>PageCache</code> is the factory and <code>Cache</code> the
    per-database instance, both idiomatic Go interfaces; <code>Page</code>
    exposes the raw <code>Buf</code> and <code>Extra</code> pointers that
    SQLite reads through the C pcache contract.
    <code>RegisterPageCache</code> and <code>MustRegisterPageCache</code>
    install the module process-globally before the first
    <code>sql.Open</code>; subsequent Open calls are gated through a
    one-shot <code>Xsqlite3_config(SQLITE_CONFIG_PCACHE2)</code> so a
    too-late Register returns <code>ErrPageCacheTooLate</code> rather than
    silently falling through to the built-in pcache1. The binding owns the
    <code>sqlite3_pcache_page</code> stub and re-consults the implementation
    on every Fetch, reusing the stub only when the returned
    <code>Page</code> value is unchanged, which keeps a bounded/evicting
    purgeable cache safe by construction.</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/126";>#126</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/126";>https://gitlab.com/cznic/sqlite/-/merge_requests/126</a>),
    thanks Ian Chechin!</li>
    <li>Add <code>modernc.org/sqlite/pcache</code>, the reference page-cache
    implementation that accompanies the <a
    href="https://gitlab.com/cznic/sqlite/issues/126";>#126</a>
    <code>SQLITE_CONFIG_PCACHE2</code> wrapper. <code>pcache.New</code>
    returns a <code>*Pool</code> satisfying the <code>PageCache</code>
    interface; register it once with
    <code>sqlite.MustRegisterPageCache(pcache.New())</code> and every
    connection opened afterwards draws its pages from it. Each
    <code>Pool.Create</code> mints a fresh per-database <code>Cache</code>:
    a bounded, LRU-evicting page store that honours the <code>PRAGMA
    cache_size</code> soft cap and releases the least-recently-unpinned page
    when it must make room. Page memory — the <code>Buf</code> and
    <code>Extra</code> buffers SQLite reads through — is allocated with
    <code>libc.Xmalloc</code>/<code>libc.Xcalloc</code> and therefore lives
    off the Go heap, which keeps SQLite's interior pointer arithmetic on the
    page extras from tripping the race detector's checkptr enforcement.
    <code>Pool.Stats</code> reports aggregate lifetime counters (hits,
    misses, allocs, evictions, rekeys, truncates, caches) across every cache
    a Pool has created, so hit/miss/eviction behaviour is observable without
    instrumenting individual caches. Cross-connection page sharing is out of
    scope for now; each <code>Create</code> returns an independent
    per-database cache.</li>
    <li>Validated end-to-end against the <a
    href="https://gitlab.com/cznic/sqlite/issues/126";>#126</a> stress
    workload (<code>cache_size=16</code>, 4000 BLOB rows with DELETE and
    <code>incremental_vacuum</code>, <code>integrity_check</code> clean
    under <code>-race</code>) and benchmarked for the memory-utilization
    goal tracked in [GitLab issue <a
    href="https://gitlab.com/cznic/sqlite/issues/204";>#204</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/issues/204";>https://gitlab.com/cznic/sqlite/-/issues/204</a>).</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/127";>#127</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/127";>https://gitlab.com/cznic/sqlite/-/merge_requests/127</a>),
    thanks Ian Chechin!</li>
    <li>Tighten the <code>modernc.org/sqlite/pcache</code> reference
    implementation per cznic's !127 review follow-ups. Adds
    <code>Stats.EasyRefusals</code>, a per-Pool counter for the cases where
    <code>FetchCreateEasy</code> returns nil at cap; SQLite reacts to a
    refusal by spilling dirty pages and retrying with
    <code>FetchCreateForce</code>, so the new field is a direct proxy for
    the I/O pressure the strict Easy contract imposes vs pcache1's
    recycle-without-spill behavior. <code>BenchmarkPoolEvictionChurn</code>
    was reworked to drive a rotating-residue DELETE (<code>k % 3 = i %
    3</code>) and re-insert a matching batch each cycle so the spill
    pressure recurs and <code>easy-refusals/op</code> scales with
    <code>b.N</code> instead of capping at the seed's one-time first-cycle
    cost; both existing benchmarks now report <code>easy-refusals/op</code>
    alongside the page-allocs/evictions metrics.
    <code>Stats.Evictions</code> documentation was tightened to match the
    actual behavior (counts LRU eviction, <code>Unpin(discard=true)</code>,
    <code>Shrink</code> releases, and <code>Unpin(discard=false)</code>
    trimming back to target after a <code>FetchCreateForce</code>
    overcommit; bulk frees from <code>Truncate</code>, <code>Rekey</code>
    collisions, and <code>Destroy</code> are not counted). The
    <code>TestPoolRoundTripIntegrity</code> comment claiming the workload
    exercises <code>xRekey</code> ~15 times has been corrected; the SQL
    surface does not reliably emit xRekey here, and that codepath is covered
    by the unit tests instead.</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/130";>#130</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/130";>https://gitlab.com/cznic/sqlite/-/merge_requests/130</a>),
    thanks Ian Chechin!</li>
    <li>Make <code>modernc.org/sqlite/pcache</code> <code>-race</code>-clean
    under SQLite's <code>cache=shared</code> mode. The pool already runs
    correctly under shared-cache because every callback into a given
    <code>Cache</code> is serialised internally by SQLite's
    <code>sqlite3BtreeEnter</code> on the <code>BtShared</code> mutex;
    verified empirically with a lock-free in-flight probe (max-in-flight = 1
    on the canonical two-connection workload, 4 on a positive control with
    goroutines hitting the cache directly). However the Go race detector
    does not recognise SQLite's libc mutex as a happens-before edge and
    reports false-positive races on <code>Fetch</code> vs <code>Unpin</code>
    reads/writes of the per-cache state, which surfaces as <code>DATA
    RACE</code> failures for any user who registers the pool and runs their
    suite under <code>-race</code>. A <code>sync.Mutex</code> on the
    <code>cache</code> type is now taken on every public method
    (<code>SetSize</code>, <code>PageCount</code>, <code>Fetch</code>,
    <code>Unpin</code>, <code>Rekey</code>, <code>Truncate</code>,
    <code>Destroy</code>, <code>Shrink</code>), always. On the common
    non-shared-cache path the lock is uncontended (one atomic CAS per
    Lock/Unlock pair, negligible next to the SQLite work it bookends); on
    the shared-cache path it just rubber-stamps the order SQLite's
    <code>BtShared</code> mutex already established. A new
    <code>e2e_test.go</code> <code>TestSharedCacheTwoConns_Integrity</code>
    drives two <code>sql.Conn</code> against the same
    <code>cache=shared</code> URI with concurrent writers and asserts
    <code>PRAGMA integrity_check = ok</code> under <code>-race</code>;
    passes cleanly with the lock, would surface the false-positive without
    it. Design notes live in <code>pcache/sharing.go</code>.</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/131";>#131</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/131";>https://gitlab.com/cznic/sqlite/-/merge_requests/131</a>),
    thanks Ian Chechin!</li>
    <li>Add a Go wrapper for <code>sqlite3_db_status</code>, the
    per-connection runtime counters (cache hit/miss/write/spill rates,
    schema and prepared-statement memory, lookaside usage, deferred foreign
    keys). <code>DBStatus</code> is an interface implemented by the driver
    connection and reached through the <code>database/sql</code> escape
    hatch <code>(*sql.Conn).Raw()</code>, mirroring the existing
    <code>FileControl</code> surface; <code>DBStatusOp</code> is a distinct
    typed enum of the <code>SQLITE_DBSTATUS_*</code> verbs so a counter from
    a different op family will not compile in its place. <code>Status(op,
    reset)</code> returns the <code>(current, high)</code> pair and
    optionally resets the counter. This also lets
    <code>modernc.org/sqlite/pcache</code> measure real I/O instead of the
    <code>EasyRefusals</code> proxy: the new
    <code>BenchmarkPoolSpillIO</code> reads the pager-level
    <code>SQLITE_DBSTATUS_CACHE_SPILL</code>/<code>_CACHE_WRITE</code>
    counters, which the pager maintains identically for pcache1 and the
    pool, making the pcache1-vs-pool comparison cznic raised on the !127
    review a genuine apples-to-apples measurement. On the rotating-residue
    eviction-churn workload at <code>cache_size=16</code> the pool spills
    ~3.5x more than pcache1 (cache-spill/op 31.96 vs 8.96) for ~3% more page
    writes (cache-write/op 450 vs 436) at identical hit/miss, quantifying
    the I/O cost of the strict Easy contract that <code>EasyRefusals</code>
    only proxied.</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/132";>#132</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/132";>https://gitlab.com/cznic/sqlite/-/merge_requests/132</a>),
    thanks Ian Chechin!</li>
    <li>Add an opt-in <code>_dqs</code> DSN query parameter that disables
    SQLite's double-quoted string literal compatibility quirk on a
    per-connection basis. When <code>_dqs=0</code> (or any
    <code>strconv.ParseBool</code> false value) is supplied, the driver
    calls <code>sqlite3_db_config</code> with
    <code>SQLITE_DBCONFIG_DQS_DDL</code> and
    <code>SQLITE_DBCONFIG_DQS_DML</code> set to off before any statement is
    prepared, so a double-quoted identifier that fails to resolve raises a
    parse error instead of silently falling back to a string literal.
    Absence of the parameter, or <code>_dqs=1</code>, leaves SQLite's
    default behavior unchanged; existing DSNs continue to work
    byte-for-byte. Resolves [GitLab issue <a
    href="https://gitlab.com/cznic/sqlite/issues/61";>#61</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/issues/61";>https://gitlab.com/cznic/sqlite/-/issues/61</a>).</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/128";>#128</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/128";>https://gitlab.com/cznic/sqlite/-/merge_requests/128</a>),
    thanks Ian Chechin!</li>
    <li>Add an opt-in <code>_error_rc</code> DSN query parameter for clearer
    error reporting on open-time failures. When <code>_error_rc=1</code> (or
    any <code>strconv.ParseBool</code> true value) is supplied, error
    strings synthesised from a <code>(rc, db)</code> pair only append
    <code>sqlite3_errmsg(db)</code> when
    <code>sqlite3_extended_errcode(db)</code> is consistent with the
    operation rc (full match first, primary code <code>&amp;0xff</code> as
    fallback). On mismatch the canonical <code>sqlite3_errstr(rc)</code> is
    used alone, so an open-time <code>SQLITE_CANTOPEN</code> no longer
    carries the temporary handle's stale &quot;out of memory&quot; errmsg.
    Absence of the parameter, or <code>_error_rc=0</code>, preserves the
    legacy &quot;errstr: errmsg&quot; form byte-for-byte; existing callers
    that parse error strings are unaffected. The driver's
    <code>*Error.Code()</code> returns the same SQLite result code in both
    modes. Parsed before <code>sqlite3_open_v2</code> so open-time errors
    are covered. Resolves [GitLab issue <a
    href="https://gitlab.com/cznic/sqlite/issues/230";>#230</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/issues/230";>https://gitlab.com/cznic/sqlite/-/issues/230</a>).</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/129";>#129</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/129";>https://gitlab.com/cznic/sqlite/-/merge_requests/129</a>),
    thanks Ian Chechin!</li>
    </ul>
    </li>
    <li>
    <p>2026-06-06 v1.52.0:</p>
    <ul>
    <li>Upgrade to <a
    href="https://sqlite.org/releaselog/3_53_2.html";>SQLite 3.53.2</a>.</li>
    <li>Add <code>Backup.Remaining</code> and <code>Backup.PageCount</code>,
    thin wrappers around the existing <code>sqlite3_backup_remaining</code>
    and <code>sqlite3_backup_pagecount</code> C symbols. Together they
    expose the per-<code>Step</code> progress counters that the underlying
    backup object already maintains, enabling progress reporting during
    online backups without dropping to <code>modernc.org/sqlite/lib</code>
    directly.</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/122";>#122</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/122";>https://gitlab.com/cznic/sqlite/-/merge_requests/122</a>),
    thanks Ian Chechin!</li>
    <li>Drop the redundant second copy in <code>(*conn).columnText</code>,
    the path that backs every <code>Rows.Scan</code> into a Go
    <code>string</code> for a TEXT column. The value's bytes are still
    copied once out of SQLite-owned memory into a fresh Go buffer; that
    buffer is then reinterpreted as the result string with
    <code>unsafe.String</code> rather than copied a second time by the
    implicit <code>string([]byte)</code> conversion. This removes one
    allocation per TEXT value per row and roughly halves the bytes allocated
    on that path; on the new <code>BenchmarkColumnTextScan</code> cases it
    is ~13–20% faster for payloads of 256 B and larger, with no measurable
    change for very short strings. Purely internal: no API or behavioral
    change, and the returned string never aliases SQLite's buffer.</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/123";>#123</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/123";>https://gitlab.com/cznic/sqlite/-/merge_requests/123</a>),
    thanks Ian Chechin!</li>
    <li>Cache each result column's declared type once per result set in
    <code>newRows</code> instead of recomputing it on every row. The TEXT
    branch of <code>Rows.Next</code> calls
    <code>ColumnTypeDatabaseTypeName</code> for every TEXT column on every
    row (independent of any DSN flag), which previously did a
    <code>libc.GoString</code> + <code>strings.ToUpper</code> each time;
    that lookup is now a single index into a cached, pre-uppercased
    <code>[]string</code>, and <code>ColumnTypeScanType</code> reads the
    same cache and drops its per-call <code>strings.ToLower</code>. The
    declared type is fixed for the lifetime of a prepared statement, so the
    C round-trip is paid once per column rather than once per column per
    row, removing exactly 1 alloc + 8 B per TEXT column per row from the
    <code>Next</code> hot path. The new <code>BenchmarkTextToTimeScan</code>
    cases show ~7% faster on a 1000-row DATETIME SELECT under
    <code>_texttotime=1</code>. Purely internal:
    <code>ColumnTypeDatabaseTypeName</code> and
    <code>ColumnTypeScanType</code> return identical values, no API or
    behavioral change.</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/124";>#124</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/124";>https://gitlab.com/cznic/sqlite/-/merge_requests/124</a>),
    thanks Ian Chechin!</li>
    <li>Cache, per result column, the <code>parseTimeFormats</code> index
    that first parsed a TEXT-stored DATE/DATETIME/TIMESTAMP value, and try
    that format first on later rows instead of re-walking the list from the
    top. <code>(*conn).parseTime</code> previously ran
    <code>time.Parse</code> down the format list on every such row; for the
    canonical SQLite TEXT datetime format every row paid two failed
    <code>time.Parse</code> attempts — each allocating a
    <code>*time.ParseError</code> — before the match. On a 1000-row DATETIME
    TEXT SELECT this cuts ~50% of allocs/op and ~57% of B/op and is ~37%
    faster. The fall-through chain is preserved exactly: the seven formats
    are mutually exclusive, so the cached hint can never select a different
    match than the in-order scan, and the parsed <code>driver.Value</code>
    is identical to before. Purely internal: no API or behavioral
    change.</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/125";>#125</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/125";>https://gitlab.com/cznic/sqlite/-/merge_requests/125</a>),
    thanks Ian Chechin!</li>
    </ul>
    </li>
    <li>
    <p>2026-05-28 v1.51.0:</p>
    <ul>
    <li>Pool the <code>[]driver.Value</code> slice passed to
    scalar/aggregate UDF callbacks and to vtab
    <code>Filter</code>/<code>Insert</code>/<code>Update</code> callbacks,
    eliminating the dominant per-row allocation on UDF-heavy queries.
    Benchmarks on a 1000-row, 3-arg noop scalar UDF show ~40% fewer bytes/op
    and ~15% fewer allocs/op.</li>
    <li>Document the matching &quot;arguments are not valid past
    return&quot; contract on <code>vtab.Cursor.Filter</code> and
    <code>vtab.Updater.Insert</code>/<code>Update</code>, consistent with
    the existing rule for <code>FunctionImpl.Scalar</code> /
    <code>AggregateFunction.Step</code> / <code>WindowInverse</code>.</li>
    <li>Resolves [GitLab issue <a
    href="https://gitlab.com/cznic/sqlite/issues/226";>#226</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/issues/226";>https://gitlab.com/cznic/sqlite/-/issues/226</a>).
    See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/114";>#114</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/114";>https://gitlab.com/cznic/sqlite/-/merge_requests/114</a>),
    thanks Ian Chechin!</li>
    <li>Add <code>FileControl.FileControlDataVersion</code>, a wrapper
    around <code>SQLITE_FCNTL_DATA_VERSION</code> for observing pager-cache
    data-version changes, including those made on the same connection.
    Useful as a primitive for application-level cache invalidation.</li>
    </ul>
    </li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    
href="https://gitlab.com/cznic/sqlite/commit/693ff386c68d2964fe40d2f3c0b6cd06630660c4";><code>693ff38</code></a>
    upgrade to SQLite 3.53.3</li>
    <li><a
    
href="https://gitlab.com/cznic/sqlite/commit/5d243466fa05e8c49a870ead00b79bd4a423f712";><code>5d24346</code></a>
    Merge branch 'texttotime-aggregates' into 'master'</li>
    <li><a
    
href="https://gitlab.com/cznic/sqlite/commit/892d8477d4fc7e4e699437936393e5bc20fea071";><code>892d847</code></a>
    sqlite: document _texttotime empty-decltype upgrade, widen <a
    href="https://gitlab.com/cznic/sqlite/issues/248";>#248</a> comment, add
    ...</li>
    <li><a
    
href="https://gitlab.com/cznic/sqlite/commit/f2c8758475043b7d5be68e9159121718f2ef49e1";><code>f2c8758</code></a>
    sqlite: _texttotime best-effort parse for empty-decltype TEXT columns
    (<a href="https://gitlab.com/cznic/sqlite/issues/248";>#248</a>)</li>
    <li>See full diff in <a
    href="https://gitlab.com/cznic/sqlite/compare/v1.53.0...v1.54.0";>compare
    view</a></li>
    </ul>
    </details>
    <br />
    
    <details>
    <summary>Most Recent Ignore Conditions Applied to This Pull
    Request</summary>
    
    | Dependency Name | Ignore Conditions |
    | --- | --- |
    | modernc.org/sqlite | [>= 1.34.a, < 1.35] |
    </details>
    
    
    [![Dependabot compatibility
    
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=modernc.org/sqlite&package-manager=go_modules&previous-version=1.53.0&new-version=1.54.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
    
    Dependabot will resolve any conflicts with this PR as long as you don't
    alter it yourself. You can also trigger a rebase manually by commenting
    `@dependabot rebase`.
    
    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)
    
    ---
    
    <details>
    <summary>Dependabot commands and options</summary>
    <br />
    
    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits
    that have been made to it
    - `@dependabot show <dependency name> ignore conditions` will show all
    of the ignore conditions of the specified dependency
    - `@dependabot ignore this major version` will close this PR and stop
    Dependabot creating any more for this major version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop
    Dependabot creating any more for this minor version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop
    Dependabot creating any more for this dependency (unless you reopen the
    PR or upgrade to it yourself)
    
    
    </details>
    
    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] 
<49699333+dependabot[bot]@users.noreply.github.com>
---
 go.mod | 16 ++++++++--------
 go.sum | 44 ++++++++++++++++++++++----------------------
 2 files changed, 30 insertions(+), 30 deletions(-)

diff --git a/go.mod b/go.mod
index 5560885e..788a8da9 100644
--- a/go.mod
+++ b/go.mod
@@ -50,7 +50,7 @@ require (
        gonum.org/v1/gonum v0.17.0
        google.golang.org/grpc v1.82.0
        google.golang.org/protobuf v1.36.11
-       modernc.org/sqlite v1.53.0
+       modernc.org/sqlite v1.54.0
 )
 
 require (
@@ -88,15 +88,15 @@ require (
        github.com/tidwall/match v1.1.1 // indirect
        github.com/tidwall/pretty v1.2.0 // indirect
        github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
-       golang.org/x/mod v0.36.0 // indirect
-       golang.org/x/net v0.55.0 // indirect
-       golang.org/x/telemetry v0.0.0-20260508192327-42602be52be6 // indirect
-       golang.org/x/term v0.43.0 // indirect
-       golang.org/x/text v0.37.0 // indirect
-       golang.org/x/tools v0.45.0 // indirect
+       golang.org/x/mod v0.37.0 // indirect
+       golang.org/x/net v0.56.0 // indirect
+       golang.org/x/telemetry v0.0.0-20260625142307-59b4966ccb57 // indirect
+       golang.org/x/term v0.44.0 // indirect
+       golang.org/x/text v0.38.0 // indirect
+       golang.org/x/tools v0.47.0 // indirect
        google.golang.org/genproto/googleapis/rpc 
v0.0.0-20260414002931-afd174a4e478 // indirect
        gopkg.in/yaml.v3 v3.0.1 // indirect
-       modernc.org/libc v1.73.4 // indirect
+       modernc.org/libc v1.74.1 // indirect
        modernc.org/mathutil v1.7.1 // indirect
        modernc.org/memory v1.11.0 // indirect
 )
diff --git a/go.sum b/go.sum
index b26558b0..57e4600a 100644
--- a/go.sum
+++ b/go.sum
@@ -192,14 +192,14 @@ golang.org/x/exp v0.0.0-20260112195511-716be5621a96 
h1:Z/6YuSHTLOHfNFdb8zVZomZr7
 golang.org/x/exp v0.0.0-20260112195511-716be5621a96/go.mod 
h1:nzimsREAkjBCIEFtHiYkrJyT+2uy9YZJB7H1k68CXZU=
 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod 
h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
 golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
-golang.org/x/mod v0.36.0 h1:JJjpVx6myfUsUdAzZuOSTTmRE0PfZeNWzzvKrP7amb4=
-golang.org/x/mod v0.36.0/go.mod h1:moc6ELqsWcOw5Ef3xVprK5ul/MvtVvkIXLziUOICjUQ=
+golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ=
+golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0=
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod 
h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod 
h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod 
h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
 golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
-golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8=
-golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww=
+golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o=
+golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec=
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -219,28 +219,28 @@ golang.org/x/sys v0.5.0/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs=
 golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
-golang.org/x/telemetry v0.0.0-20260508192327-42602be52be6 
h1:HjU6IWBiAgRIdAJ9/y1rwCn+UELEmwV+VsTLzj/W4sE=
-golang.org/x/telemetry v0.0.0-20260508192327-42602be52be6/go.mod 
h1:Eqhaxk/wZsWEH8CRxLwj6xzEJbz7k1EFGqx7nyCoabE=
+golang.org/x/telemetry v0.0.0-20260625142307-59b4966ccb57 
h1:nwGZBCt+FnXUrGsj5vjzAsEmkcaFvd82BbOjECiFYZc=
+golang.org/x/telemetry v0.0.0-20260625142307-59b4966ccb57/go.mod 
h1:3AWMyWHS+caVoiEXpiq6+tzKA40J4vQT3MYr80ZtQpc=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
-golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4=
-golang.org/x/term v0.43.0/go.mod 
h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk=
+golang.org/x/term v0.44.0 h1:0rLvDRCtNj0gZkyIXhCyOb2OAzEhLVqc4B+hrsBhrmc=
+golang.org/x/term v0.44.0/go.mod 
h1:7ze4MdzUzLXpSAoFP1H0bOI9aXDqveSvatT5vKcFh2Y=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
 golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
-golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc=
-golang.org/x/text v0.37.0/go.mod 
h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38=
+golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE=
+golang.org/x/text v0.38.0/go.mod 
h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod 
h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.1.12/go.mod 
h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
 golang.org/x/tools v0.6.0/go.mod 
h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
-golang.org/x/tools v0.45.0 h1:18qN3FAooORvApf5XjCXgsuayZOEtXf6JK18I3+ONa8=
-golang.org/x/tools v0.45.0/go.mod 
h1:LuUGqqaXcXMEFEruIVJVm5mgDD8vww/z/SR1gQ4uE/0=
+golang.org/x/tools v0.47.0 h1:7Kn5x/d1svx/PzryTsqeoZN4TZwqeH5pGWjefhLi/1Q=
+golang.org/x/tools v0.47.0/go.mod 
h1:dFHnyTvFWY212G+h7ZY4Vsp/K3U4/7W9TyVaAul8uCA=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
 gonum.org/v1/gonum v0.17.0/go.mod 
h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
@@ -260,20 +260,20 @@ gopkg.in/yaml.v3 
v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C
 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod 
h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-modernc.org/cc/v4 v4.28.4 h1:Hd/4Es+MBj+/7hSdZaisNyu6bv3V0Dp2MdllyfqaH+c=
-modernc.org/cc/v4 v4.28.4/go.mod 
h1:OnovgIhbbMXMu1aISnJ0wvVD1KnW+cAUJkIrAWh+kVI=
-modernc.org/ccgo/v4 v4.34.4 h1:OVnSOWQjVKOYkFxoHYB+qQmSHK5gqMqARM+K9DpR/Ws=
-modernc.org/ccgo/v4 v4.34.4/go.mod 
h1:qdKqE8FNIYyysougB1RX9MxCzp5oJOcQXSobANJ4TuE=
+modernc.org/cc/v4 v4.29.0 h1:CXgwL8cvxmyzBQZzbSl/6xFtMCryb6u8IOqDci39cgc=
+modernc.org/cc/v4 v4.29.0/go.mod 
h1:OnovgIhbbMXMu1aISnJ0wvVD1KnW+cAUJkIrAWh+kVI=
+modernc.org/ccgo/v4 v4.34.6 h1:sBgfIwyN0TQ9C5hwIeuqyeAKyMWnbvj2fvpF4L11uzU=
+modernc.org/ccgo/v4 v4.34.6/go.mod 
h1:SZ8YcN9NG7XVsQYdm6jYBvi8PQP1qi+kqB6OhjqI3Fk=
 modernc.org/fileutil v1.4.0 h1:j6ZzNTftVS054gi281TyLjHPp6CPHr2KCxEXjEbD6SM=
 modernc.org/fileutil v1.4.0/go.mod 
h1:EqdKFDxiByqxLk8ozOxObDSfcVOv/54xDs/DUHdvCUU=
 modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI=
 modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito=
-modernc.org/gc/v3 v3.1.3 h1:6QAplYyVO+KdPW3pGnqmJDUxtkec8ooEWvks/hhU3lc=
-modernc.org/gc/v3 v3.1.3/go.mod h1:HFK/6AGESC7Ex+EZJhJ2Gni6cTaYpSMmU/cT9RmlfYY=
+modernc.org/gc/v3 v3.1.4 h1:2g65LGVSmFQrXeITAw97x7hCRvZFcyE1uDP+7Vng7JI=
+modernc.org/gc/v3 v3.1.4/go.mod h1:HFK/6AGESC7Ex+EZJhJ2Gni6cTaYpSMmU/cT9RmlfYY=
 modernc.org/goabi0 v0.2.0 h1:HvEowk7LxcPd0eq6mVOAEMai46V+i7Jrj13t4AzuNks=
 modernc.org/goabi0 v0.2.0/go.mod 
h1:CEFRnnJhKvWT1c1JTI3Avm+tgOWbkOu5oPA8eH8LnMI=
-modernc.org/libc v1.73.4 h1:+ra4Ui8ngyt8HDcO1FTDPWlkAh6yOdaO2yAoh8MddQA=
-modernc.org/libc v1.73.4/go.mod h1:DXZ3eO8qMCNn2SnmTNCiC71nJ9Rcq3PsnpU6Vc4rWK8=
+modernc.org/libc v1.74.1 h1:bdR4VTKFMC4966QSNZ05XLGI/VwzVa2kTUX51Dm0riQ=
+modernc.org/libc v1.74.1/go.mod h1:uH4t5bOx3G3g9Xcmj10YKlTcVISlRDwv8VoQJG9n8Os=
 modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU=
 modernc.org/mathutil v1.7.1/go.mod 
h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg=
 modernc.org/memory v1.11.0 h1:o4QC8aMQzmcwCK3t3Ux/ZHmwFPzE6hf2Y5LbkRs+hbI=
@@ -282,8 +282,8 @@ modernc.org/opt v0.2.0 
h1:tGyef5ApycA7FSEOMraay9SaTk5zmbx7Tu+cJs4QKZg=
 modernc.org/opt v0.2.0/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns=
 modernc.org/sortutil v1.2.1 h1:+xyoGf15mM3NMlPDnFqrteY07klSFxLElE2PVuWIJ7w=
 modernc.org/sortutil v1.2.1/go.mod 
h1:7ZI3a3REbai7gzCLcotuw9AC4VZVpYMjDzETGsSMqJE=
-modernc.org/sqlite v1.53.0 h1:20WG8N9q4ji/dEqGk4uiI0c6OPjSeLTNYGFCc3+7c1M=
-modernc.org/sqlite v1.53.0/go.mod 
h1:xoEpOIpGrgT48H5iiyt/YXPCZPEzlfmfFwtk8Lklw8s=
+modernc.org/sqlite v1.54.0 h1:JCxR4qwkJvOaqAoYcgDoO25Nc+ROg6EJ2LfBVzdrgog=
+modernc.org/sqlite v1.54.0/go.mod 
h1:4ntCLuNmnH8+GNqjka1wNg7KJd5/Hi5FYp8K+XQ7GZw=
 modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0=
 modernc.org/strutil v1.2.1/go.mod 
h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A=
 modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=


Reply via email to