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 b2d358ee chore: Bump modernc.org/sqlite from 1.51.0 to 1.52.0 (#845)
b2d358ee is described below

commit b2d358eecabf5f2726e7253429273b3a996c5a4e
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
AuthorDate: Mon Jun 8 16:04:25 2026 -0400

    chore: Bump modernc.org/sqlite from 1.51.0 to 1.52.0 (#845)
    
    Bumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) from 1.51.0
    to 1.52.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-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>
    <li>Exposed via the idiomatic <code>database/sql</code> escape hatch
    <code>(*sql.Conn).Raw()</code>, consistent with the existing
    <code>FileControlPersistWAL</code>.</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/115";>#115</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/115";>https://gitlab.com/cznic/sqlite/-/merge_requests/115</a>),
    thanks Ian Chechin!</li>
    <li>Fix a regression where in-memory connections (<code>:memory:</code>,
    <code>file::memory:</code>, shared-cache memory URIs) were discarded by
    <code>database/sql</code> after a context-cancelled query, taking the
    entire in-memory store with them. The fix for <a
    href="https://gitlab.com/cznic/sqlite/issues/198";>#198</a> had added an
    <code>sqlite3_is_interrupted</code> check to the connection validator
    that mistakenly applied to in-memory connections too, re-introducing the
    bug originally fixed by !74. File-backed connections keep the existing
    behaviour and are still discarded after an interrupt.</li>
    <li>Resolves [GitLab issue <a
    href="https://gitlab.com/cznic/sqlite/issues/196";>#196</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/issues/196";>https://gitlab.com/cznic/sqlite/-/issues/196</a>).
    See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/116";>#116</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/116";>https://gitlab.com/cznic/sqlite/-/merge_requests/116</a>),
    thanks Ian Chechin!</li>
    <li>Add an opt-in <code>FunctionImpl.VolatileArgs</code> flag that hands
    TEXT and BLOB arguments to scalar and aggregate UDF callbacks as
    zero-copy views (<code>unsafe.String</code>/<code>unsafe.Slice</code>)
    over SQLite's own value buffers, eliminating the per-argument
    <code>libc.GoString</code>/<code>make([]byte)</code> copy that the <a
    href="https://gitlab.com/cznic/sqlite/issues/226";>#226</a> slice-pooling
    left as the remaining per-row allocation. On the same 1000-row, 3-arg
    (INTEGER/TEXT/BLOB) noop scalar UDF this removes a further ~35% of
    allocs/op and ~11% of bytes/op on top of <a
    href="https://gitlab.com/cznic/sqlite/issues/226";>#226</a>.</li>
    <li>The views are valid only for the duration of the callback and must
    not be retained past return or across rows; a callback that needs to
    keep a value must copy it. With <code>VolatileArgs</code> unset (the
    default) arguments keep the existing copied, caller-owned semantics, so
    the flag is fully backward compatible; it has no effect on integer,
    float, time, or NULL arguments.</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/120";>#120</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/120";>https://gitlab.com/cznic/sqlite/-/merge_requests/120</a>),
    thanks Ian Chechin!</li>
    <li>Extend the opt-in <code>VolatileArgs</code> zero-copy TEXT/BLOB
    argument access from <a
    href="https://gitlab.com/cznic/sqlite/issues/120";>#120</a> to the
    virtual-table <code>Cursor.Filter</code> (<code>xFilter</code>) and
    <code>Updater.Insert</code>/<code>Update</code> (<code>xUpdate</code>)
    callbacks. A <code>vtab.Module</code> opts in by implementing the new
    optional <code>vtab.VolatileArgsOpter</code> interface
    (<code>VolatileArgs() bool</code>); the flag is read once at module
    registration and shared by every table created from it. On a vtab call
    carrying one TEXT and one BLOB argument this removes 2 allocs/op (one
    <code>libc.GoString</code>, one <code>make([]byte)</code>) on each of
    the Filter and Update paths.</li>
    <li>The same safety contract as <a
    href="https://gitlab.com/cznic/sqlite/issues/120";>#120</a> applies: the
    views are valid only for the duration of the callback and must not be
    retained past return or across rows; a callback that needs to keep a
    value must copy it. Modules that do not implement
    <code>VolatileArgsOpter</code> (the default for all existing modules)
    are byte-for-byte unchanged, and the flag has no effect on integer,
    float, time, or NULL arguments.</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/121";>#121</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/121";>https://gitlab.com/cznic/sqlite/-/merge_requests/121</a>),
    thanks Ian Chechin!</li>
    </ul>
    </li>
    <li>
    <p>2026-05-10 v1.50.1:</p>
    <ul>
    <li>Upgrade to <a
    href="https://sqlite.org/releaselog/3_53_1.html";>SQLite 3.53.1</a>.</li>
    </ul>
    </li>
    <li>
    <p>2026-04-24 v1.50.0:</p>
    <ul>
    <li>Upgrade to sqlite-vec <a
    
href="https://github.com/asg017/sqlite-vec/releases/tag/v0.1.9";>v0.1.9</a>.</li>
    <li>Introduce <code>ColumnInfo</code>, enabling dynamic query builders
    and ORMs to retrieve underlying SQLite C-API metadata
    (<code>OriginName</code>, <code>TableName</code>,
    <code>DatabaseName</code>, and <code>DeclType</code>).</li>
    <li>This feature is exposed via the idiomatic <code>database/sql</code>
    escape hatch <code>(*sql.Conn).Raw()</code>, avoiding custom statement
    handles and keeping the standard library workflow intact.</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/113";>#113</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/113";>https://gitlab.com/cznic/sqlite/-/merge_requests/113</a>),
    thanks Josh Bleecher Snyder!</li>
    </ul>
    </li>
    <li>
    <p>2026-04-17 v1.49.0: Upgrade to <a
    href="https://sqlite.org/releaselog/3_53_0.html";>SQLite 3.53.0</a>.</p>
    <ul>
    <li>Added <code>-DSQLITE_ENABLE_DBPAGE_VTAB</code> to the transpilation.
    See <a href="https://www.sqlite.org/dbpage.html";>&quot;The SQLITE_DBPAGE
    Virtual Table&quot;</a> for details.</li>
    </ul>
    </li>
    <li>
    <p>2026-04-06 v1.48.2:</p>
    <ul>
    <li>Fix ABI mapping mismatch in the pre-update hook trampoline that
    caused silent truncation of large 64-bit RowIDs.</li>
    <li>Ensure the Go trampoline signature correctly aligns with the public
    <code>sqlite3_preupdate_hook</code> C API, preventing data corruption
    for high-entropy keys (e.g., Snowflake IDs).</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/98";>#98</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/98";>https://gitlab.com/cznic/sqlite/-/merge_requests/98</a>),
    thanks Josh Bleecher Snyder!</li>
    <li>Fix the memory allocator used in
    <code>(*conn).Deserialize</code>.</li>
    <li>Replace <code>tls.Alloc</code> with <code>sqlite3_malloc64</code> to
    prevent internal allocator corruption. This ensures the buffer is safely
    owned by SQLite, which may resize or free it due to the
    <code>SQLITE_DESERIALIZE_RESIZEABLE</code> and
    <code>SQLITE_DESERIALIZE_FREEONCLOSE</code> flags.</li>
    <li>Prevent a memory leak by properly freeing the allocated buffer if
    fetching the main database name fails before handing ownership to
    SQLite.</li>
    <li>See [GitLab merge request <a
    href="https://gitlab.com/cznic/sqlite/issues/100";>#100</a>](<a
    
href="https://gitlab.com/cznic/sqlite/-/merge_requests/100";>https://gitlab.com/cznic/sqlite/-/merge_requests/100</a>),
    thanks Josh Bleecher Snyder!</li>
    <li>Fix <code>(*conn).Deserialize</code> to explicitly reject
    <code>nil</code> or empty byte slices.</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/66b4d20f42485b9823a2d35c86b08335d927d0e5";><code>66b4d20</code></a>
    release v1.52.0, upgrade to SQLite 3.53.2</li>
    <li><a
    
href="https://gitlab.com/cznic/sqlite/commit/e3f64ec2f026880b2fbc868f195863648cd07fb3";><code>e3f64ec</code></a>
    rows: clarify parseFmtIdx mixed-column cost; CHANGELOG.md: document <a
    href="https://gitlab.com/cznic/sqlite/issues/125";>#125</a></li>
    <li><a
    
href="https://gitlab.com/cznic/sqlite/commit/448579342c2da286622d7cab5db84a746124e7b1";><code>4485793</code></a>
    Merge branch 'perf/cache-parse-time-format' into 'master'</li>
    <li><a
    
href="https://gitlab.com/cznic/sqlite/commit/3638d17bf28d730d7dd90ff5cf3f93c45b9d752e";><code>3638d17</code></a>
    rows: cache the parseTime format index per result column</li>
    <li><a
    
href="https://gitlab.com/cznic/sqlite/commit/7da793ef16502dced14643451a8bec834f999d9e";><code>7da793e</code></a>
    CHANGELOG.md: document <a
    href="https://gitlab.com/cznic/sqlite/issues/124";>#124</a></li>
    <li><a
    
href="https://gitlab.com/cznic/sqlite/commit/51e6714774262680e2454b1a9ccc49b4245b220a";><code>51e6714</code></a>
    Merge branch 'perf/cache-column-decltype' into 'master'</li>
    <li><a
    
href="https://gitlab.com/cznic/sqlite/commit/8a6f33ce42bfa4a864daf8a4c97908e7691499d9";><code>8a6f33c</code></a>
    rows: lock down ColumnTypeScanType under the decltype cache</li>
    <li><a
    
href="https://gitlab.com/cznic/sqlite/commit/f8fb6dd1d58d74d022b77cc385a9828a1ac49762";><code>f8fb6dd</code></a>
    rows: cache the column decltype lookup once per result set</li>
    <li><a
    
href="https://gitlab.com/cznic/sqlite/commit/b17c0c7faf2247b8251efaa638ac101e5dea7ec1";><code>b17c0c7</code></a>
    CHANGELOG.md: document <a
    href="https://gitlab.com/cznic/sqlite/issues/123";>#123</a></li>
    <li><a
    
href="https://gitlab.com/cznic/sqlite/commit/c80a08fbe3d37ffa8c7e669c46053b692135523b";><code>c80a08f</code></a>
    Merge branch 'perf/column-text-zero-copy' into 'master'</li>
    <li>Additional commits viewable in <a
    href="https://gitlab.com/cznic/sqlite/compare/v1.51.0...v1.52.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.51.0&new-version=1.52.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 | 2 +-
 go.sum | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/go.mod b/go.mod
index ddb7573a..678c6620 100644
--- a/go.mod
+++ b/go.mod
@@ -50,7 +50,7 @@ require (
        gonum.org/v1/gonum v0.17.0
        google.golang.org/grpc v1.81.1
        google.golang.org/protobuf v1.36.11
-       modernc.org/sqlite v1.51.0
+       modernc.org/sqlite v1.52.0
 )
 
 require (
diff --git a/go.sum b/go.sum
index 62ac4d28..85c70df3 100644
--- a/go.sum
+++ b/go.sum
@@ -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.51.0 h1:aH/MMSoayAIhozZ7uJbVTT9QO/VhzBf0J9tymmmuC/U=
-modernc.org/sqlite v1.51.0/go.mod 
h1:tcNzv5p84E0skkmJn038y+hWJbLQXQqEnQfeh5r2JLM=
+modernc.org/sqlite v1.52.0 h1:p4dhYh2tXZCiyaqHwRVJDjIGKWyXayiQpThxgDzJaxo=
+modernc.org/sqlite v1.52.0/go.mod 
h1:tcNzv5p84E0skkmJn038y+hWJbLQXQqEnQfeh5r2JLM=
 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