Download Latest Version dolt-windows-amd64.msi (45.7 MB)
Email in envelope

Get an email when there's a new version of Dolt

Home / v2.3.2
Name Modified Size InfoDownloads / Week
Parent folder
dolt-windows-amd64.msi 2026-09-02 45.6 MB
dolt-2.3.2-1.aarch64.rpm 2026-09-02 40.7 MB
dolt-2.3.2-1.x86_64.rpm 2026-09-02 43.9 MB
install.sh 2026-09-02 3.2 kB
dolt-windows-amd64.7z 2026-09-02 23.0 MB
dolt-windows-amd64.zip 2026-09-02 39.9 MB
dolt-darwin-arm64.tar.gz 2026-09-02 41.0 MB
dolt-darwin-amd64.tar.gz 2026-09-02 43.5 MB
dolt-linux-arm64.tar.gz 2026-09-02 40.6 MB
dolt-linux-amd64.tar.gz 2026-09-02 43.8 MB
2.3.2 source code.tar.gz 2026-09-02 12.3 MB
2.3.2 source code.zip 2026-09-02 14.1 MB
README.md 2026-09-02 119.8 kB
Totals: 13 Items   388.6 MB 5

Merged PRs

dolt

Commits


Dependabot compatibility score 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 commands and options
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) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/dolthub/dolt/network/alerts).
Changelog

Sourced from mysql2's changelog.

3.22.0 (2026-04-10)

Features

Performance Improvements

3.21.1 (2026-04-09)

Bug Fixes

3.21.0 (2026-04-09)

Features

3.20.0 (2026-03-15)

Features

Bug Fixes

3.19.1 (2026-03-09)

Bug Fixes

... (truncated)

Commits


Dependabot compatibility score 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 commands and options
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) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/dolthub/dolt/network/alerts).
  • 11652: go: sqle: Improve autotracker update robustness during dolt_reset --hard. Get rid of the unnecessary background work, and update the tracker state synchronously as part of the reset itself.
  • 11651: store/val: return error on malformed adaptive value Fix panic when reading corrupted or truncated off-page storage chunks to return a SQL error.
  • Malformed addresses that aren't exactly 20 bytes now return ErrInvalidAddressLen.
  • Add varintPrefixLen to assert buffer length before reading varints, preventing out-of-bounds slice panics on truncated multi-byte headers.
  • Add ErrNullAdaptiveValue, ErrInlineAdaptiveValue, ErrTruncatedVarint, and ErrInvalidAddressLen for callers and tests. Fix [#11641]
  • 11646: cmd/dolt: improve connection error reporting and stale server info cleanup CLI commands cleanup stale .dolt/sql-server.info files left by crashed servers and recover locally, while connection failures provide troubleshooting steps.
  • creds.go: Add ProcessExists.
  • server.go: Writing .dolt/sql-server.info is deferred until after InitSQLServer binds the listener.
  • queryist_utils.go: PingContext checks connectivity early and closes conn on dial failure. Fix [#10856] Close [#11474]
  • 11634: build(deps): bump org.mariadb:r2dbc-mariadb from 1.2.2 to 1.4.1 in /integration-tests/mysql-client-tests/java Bumps org.mariadb:r2dbc-mariadb from 1.2.2 to 1.4.1.
    Release notes

    Sourced from org.mariadb:r2dbc-mariadb's releases.

    MariaDB Connector/R2DBC 1.4.1

    1.4.1 (Jun 2026)

    Full Changelog

    Notable Changes:

    • R2DBC-116 Add GraalVM native-image configuration and CI coverage
    • Update dependencies (Project Reactor 2025.0.6, Netty 4.2.15.Final)

    Bugs Fixed:

    • R2DBC-115 Clear-text authentication plugins (PAM, mysql_clear_password) must require a secure connection (report by fg0x0)
    • R2DBC-117 Cap BigDecimal/BigInteger string parsing length to prevent CPU exhaustion if MitM (report by tonghuaroot)
    • R2DBC-119 Fail closed when a classpath: SSL certificate is missing
    • R2DBC-120 Stored-procedure CALL detection wrongly matched any query containing "call" (thanks to yunhobb)
    • R2DBC-121 caching_sha2_password/sha256_password login fails with passwords of 20 characters or more (report by 4UjwXc)
    • R2DBC-124 Ensure a non-UTF8 charset cannot be used for protocol exchanges (report by fg0x0)
    • R2DBC-122 Fix SQL parser to correctly handle '--' in expressions
    • R2DBC-123 Pin Locale.ROOT on locale-sensitive wire-format codec sites (thanks to jmestwa-coder)

    MariaDB Connector/R2DBC 1.4.0

    1.4.0 (Feb 2026)

    Notable Changes:

    • R2DBC-109 Add fallbackToSystemTrustStore and fallbackToSystemKeyStore options
    • R2DBC-110 Support java.time.Instant parameters
    • R2DBC-114 Implement Wrapped interface to expose EventLoop scheduler for r2dbc-pool optimization

    Bugs Fixed:

    • R2DBC-108 Handle authentication plugin multi-exchange prefix (0x01) introduced in MDEV-37554
    • R2DBC-111 Potential hang when upstream subscription is cancelled before demand
    • R2DBC-112 Failed authentication when using caching_sha2_password with passwords longer than 18 characters
    • R2DBC-113 Add support for RSA public key content in cachingRsaPublicKey and rsaPublicKey options

    MariaDB Connector/R2DBC 1.3.1

    1.3.1 (Jun 2026)

    Maintenance release for the 1.3 line, back-porting the corrections, CI and security fixes made after 1.3.0. java.time.Instant parameter support is intentionally not included.

    Notable Changes:

    • R2DBC-108 Handle authentication plugin multi-exchange prefix (0x01) introduced in MDEV-37554
    • R2DBC-109 Add fallbackToSystemTrustStore and fallbackToSystemKeyStore options
    • R2DBC-113 Support inline RSA public key for sha256_password and caching_sha2_password
    • R2DBC-114 Implement Wrapped interface to expose the EventLoop scheduler for r2dbc-pool
    • R2DBC-116 Add GraalVM native-image configuration and CI testing

    Bugs Fixed:

    • R2DBC-111 Potential hang when upstream subscription is cancelled before demand
    • R2DBC-112 Failed authentication using caching_sha2_password with passwords longer than 18 characters

    ... (truncated)

Changelog

Sourced from org.mariadb:r2dbc-mariadb's changelog.

1.4.1 (Jun 2026)

Full Changelog

Notable Changes:

  • R2DBC-116 Add GraalVM native-image configuration and CI coverage
  • Update dependencies (Project Reactor 2025.0.6, Netty 4.2.15.Final)

Bugs Fixed:

  • R2DBC-115 Clear-text authentication plugins (PAM, mysql_clear_password) must require a secure connection (report by fg0x0)
  • R2DBC-117 Cap BigDecimal/BigInteger string parsing length to prevent CPU exhaustion if MitM (report by tonghuaroot)
  • R2DBC-119 Fail closed when a classpath: SSL certificate is missing
  • R2DBC-120 Stored-procedure CALL detection wrongly matched any query containing "call" (thanks to yunhobb)
  • R2DBC-121 caching_sha2_password/sha256_password login fails with passwords of 20 characters or more (report by 4UjwXc)
  • R2DBC-124 Ensure a non-UTF8 charset cannot be used for protocol exchanges (report by fg0x0)
  • R2DBC-122 Fix SQL parser to correctly handle '--' in expressions
  • R2DBC-123 Pin Locale.ROOT on locale-sensitive wire-format codec sites (thanks to jmestwa-coder)

1.4.0 (Feb 2026)

Notable Changes:

  • R2DBC-109 Add fallbackToSystemTrustStore and fallbackToSystemKeyStore options
  • R2DBC-110 Support java.time.Instant parameters
  • R2DBC-114 Implement Wrapped interface to expose EventLoop scheduler for r2dbc-pool optimization

Bugs Fixed:

  • R2DBC-108 Handle authentication plugin multi-exchange prefix (0x01) introduced in MDEV-37554
  • R2DBC-111 Potential hang when upstream subscription is cancelled before demand
  • R2DBC-112 Failed authentication when using caching_sha2_password with passwords longer than 18 characters
  • R2DBC-113 Add support for RSA public key content in cachingRsaPublicKey and rsaPublicKey options

1.3.0 (Oct 2024)

Notable Changes:

Commits


Dependabot compatibility score 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 commands and options
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) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/dolthub/dolt/network/alerts).
  • 11633: build(deps): bump org.mariadb.jdbc:mariadb-java-client from 3.5.3 to 3.5.9 in /integration-tests/mysql-client-tests/java Bumps org.mariadb.jdbc:mariadb-java-client from 3.5.3 to 3.5.9.
    Release notes

    Sourced from org.mariadb.jdbc:mariadb-java-client's releases.

    MariaDB Connector/Java 3.5.9

    3.5.9 (Jun 2026)

    Full Changelog

    Key Enhancements

    • CONJ-1223 - cache TLS trust/key managers across connections to reduce SSL connection cost
    • CONJ-1314 - add SPI for interactive dialog (PAM) authentication callback
    • CONJ-1311 - add dedicated option useIpForKillQuery for query cancellation
    • CONJ-1310 - Add full native image support and CI coverage

    Issues Resolved

    • CONJ-1320 - PAM (dialog) authentication must require a secure connection (report by fg0x0)
    • CONJ-1319 - Use constant-time comparison when validating the server certificate fingerprint (report by jmestwa-coder)
    • CONJ-1318 - enforce allowLocalInfile=false on the server's local-infile request, so a malicious server cannot read a client file despite the option being disabled
    • CONJ-1322 - match local infile filename case-sensitively (thanks to jmestwa-coder)
    • CONJ-1323 - LOAD LOCAL INFILE validation rejects statements preceded by line comments (thanks to sebdomdev)
    • CONJ-1315 - cap BigDecimal/BigInteger string parsing length to prevent CPU exhaustion if MitM (report by tonghuaroot)
    • CONJ-1317 - ensure non-UTF8 charset cannot be used for protocol exchanges (report by fg0x0)
    • CONJ-1304 - CallableStatement parameter metadata read from mysql.proc, with MySQL info_schema fallback
    • CONJ-1299 - keep VALUES literals after the last placeholder when rewriting batches
    • CONJ-1313 - race condition in HaMode#getAvailableHostInOrder can cause NPE
    • CONJ-1311 - Connection.cancelCurrentQuery fails with SslMode.VERIFY_FULL when client socket IP is set
    • CONJ-1264 - handle LocalDateTime as a zoneless wall-clock value
    • CONJ-1316 - pin Locale.ROOT on locale-sensitive call sites and date/time/Duration text formatting (fixes locale-dependent parsing/formatting, e.g. under tr_TR) (thanks to jmestwa-coder)
    • CONJ-1324 - fix SQL parser to correctly handle '--' in expressions and reset lastChar after block comments
    • CONJ-1323 - LOAD LOCAL INFILE validation rejects statements preceded by line comments (thanks to sebdomdev)

    MariaDB Connector/Java 3.5.8

    3.5.8 (Apr 2026)

    Full Changelog

    Issues Resolved

    • CONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections
    • CONJ-1303 - Statement.cancel() fails to kill running query during result streaming

    Other

    • CONJ-1298 - Performance improvement: avoid decoding extended format

    MariaDB Connector/Java 3.5.7

    3.5.7 (Dec 2025)

    Full Changelog

    Key Enhancements

    ... (truncated)

Changelog

Sourced from org.mariadb.jdbc:mariadb-java-client's changelog.

3.5.9 (Jun 2026)

Full Changelog

Key Enhancements

  • CONJ-1223 - cache TLS trust/key managers across connections to reduce SSL connection cost
  • CONJ-1314 - add SPI for interactive dialog (PAM) authentication callback
  • CONJ-1311 - add dedicated option useIpForKillQuery for query cancellation
  • CONJ-1310 - Add full native image support and CI coverage

Issues Resolved

  • CONJ-1320 - PAM (dialog) authentication must require a secure connection (report by fg0x0)
  • CONJ-1319 - Use constant-time comparison when validating the server certificate fingerprint (report by jmestwa-coder)
  • CONJ-1318 - enforce allowLocalInfile=false on the server's local-infile request, so a malicious server cannot read a client file despite the option being disabled
  • CONJ-1322 - match local infile filename case-sensitively (thanks to jmestwa-coder)
  • CONJ-1323 - LOAD LOCAL INFILE validation rejects statements preceded by line comments (thanks to sebdomdev)
  • CONJ-1315 - cap BigDecimal/BigInteger string parsing length to prevent CPU exhaustion if MitM (report by tonghuaroot)
  • CONJ-1317 - ensure non-UTF8 charset cannot be used for protocol exchanges (report by fg0x0)
  • CONJ-1304 - CallableStatement parameter metadata read from mysql.proc, with MySQL info_schema fallback
  • CONJ-1299 - keep VALUES literals after the last placeholder when rewriting batches
  • CONJ-1313 - race condition in HaMode#getAvailableHostInOrder can cause NPE
  • CONJ-1311 - Connection.cancelCurrentQuery fails with SslMode.VERIFY_FULL when client socket IP is set
  • CONJ-1264 - handle LocalDateTime as a zoneless wall-clock value
  • CONJ-1316 - pin Locale.ROOT on locale-sensitive call sites and date/time/Duration text formatting (fixes locale-dependent parsing/formatting, e.g. under tr_TR) (thanks to jmestwa-coder)
  • CONJ-1324 - fix SQL parser to correctly handle '--' in expressions and reset lastChar after block comments
  • CONJ-1323 - LOAD LOCAL INFILE validation rejects statements preceded by line comments (thanks to sebdomdev)
  • CONJ-1318 - allowLocalInfile=false does not block LOAD DATA LOCAL INFILE against a malicious server (thanks to tharavel)

3.4.3 (Jun 2026)

Full Changelog

Bugs Fixed
  • CONJ-1315 - cap BigDecimal/BigInteger string parsing length to prevent CPU exhaustion if Mitm (report by tonghuaroot)
  • CONJ-1316 - pin Locale.ROOT on locale-sensitive call sites and date/time/Duration text formatting (fixes locale-dependent parsing/formatting, e.g. under tr_TR) (thanks to jmestwa-coder)
  • CONJ-1259 - DatabaseMetaData read-only detection: handle MariaDB 12.0 @@read_only returning ON/OFF instead of 1/0
  • CONJ-1317 - ensure non-UTF8 charset cannot be used for protocol exchanges (report by fg0x0)
  • CONJ-1320 - PAM (dialog) authentication now requires a secure connection (TLS or unix socket), like mysql_clear_password (report by fg0x0)
  • CONJ-1319 - use constant-time comparison when validating the server certificate fingerprint (thanks to jmestwa-coder)
  • CONJ-1322 - match local infile filename case-sensitively (thanks to jmestwa-coder)
  • CONJ-1323 - LOAD LOCAL INFILE validation rejects statements preceded by line comments (thanks to sebdomdev)
  • CONJ-1318 - allowLocalInfile=false does not block LOAD DATA LOCAL INFILE against a malicious server (thanks to tharavel)

3.3.5 (Jun 2026)

... (truncated)

Commits
  • df4ebe2 [misc] enhance TcpProxy and TcpProxySocket for improved thread safety and con...
  • 687c840 [misc] update environment variable for Maxscale version
  • 4466ad6 [misc] test stability improvement : update proxy close method in PooledConnec...
  • 1e29819 [misc] update README version
  • da297f1 Merge branch 'develop'
  • 83d3da9 [misc] Update CHANGELOG
  • e39e8b9 match local infile filename case-sensitively
  • d90b987 [misc] Implement secure authentication checks and add regression tests for cr...
  • f4a727c [CONJ-1320] PAM (dialog) authentication must require a secure connection
  • a87c711 [misc] update CHANGELOG
  • Additional commits viewable in compare view


Dependabot compatibility score 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 commands and options
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) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/dolthub/dolt/network/alerts).
Changelog

Sourced from mariadb's changelog.

3.5.3 (Jun1 2026)

Full Changelog

Notable changes

  • Minimum supported Node.js version is now 20 (was 18; Node 18 went EOL in April 2025)
  • CONJS-346: Add RowsWithMeta<T> and WithMeta<T> helper types for typing query() / execute() result shapes — RowsWithMeta<T> for the default rows-array-with-meta shape, WithMeta<T> for the metaAsArray: true tuple form (types-only, no runtime change)

Issues Fixed

  • CONJS-354: Reject a server-initiated LOAD DATA LOCAL INFILE request when permitLocalInfile is disabled (report by tharavel)
  • CONJS-353: PAM (dialog) authentication now requires a secure connection (TLS or a local unix socket), since it transmits the password in clear text (report by fg0x0)
  • CONJS-351: Use constant-time comparison when validating the server certificate fingerprint token, preventing a timing side-channel that could leak the token to a man-in-the-middle
  • CONJS-350: Fixed possible SQL injection in Buffer parameter escaping under big5/gbk/sjis/cp932/gb18030 client charset (report by fg0x0)
  • CONJS-344: Restore dual ESM/CJS support after the 3.5 ESM migration (#346](https://github.com/href="https://redirect.github.com/mariadb-corporation/mariadb-connector-nodejs/issues/346">/issues/346)):
    • TypeScript types now compile under moduleResolution: "Node16" / "NodeNext" / "Bundler" — fixes TS2846 / TS2834 reported in 3.5.1 and 3.5.2
    • Ship paired .d.cts declarations for the require condition
    • Ship a real CJS bundle in dist/ so require('mariadb') works on Node 20+ without --experimental-require-module or ExperimentalWarning
    • Restore the default ESM export, so import mariadb from 'mariadb' works again (matches 3.4.x behavior)

3.4.6 (Jun 2026)

Full Changelog

Issues Fixed

  • CONJS-331: Corrected parsec authentication plugin handling
  • CONJS-350: Fixed possible SQL injection in Buffer parameter escaping under big5/gbk/sjis/cp932/gb18030 client charset (report by fg0x0)
  • CONJS-349: Fixed cleartext password disclosure to a man-in-the-middle when relying on certificate fingerprint validation (self-signed trust mode)
  • CONJS-351: Use constant-time comparison when validating the server certificate fingerprint token, preventing a timing side-channel that could leak the token to a man-in-the-middle
  • CONJS-353: PAM (dialog) authentication now requires a secure connection (TLS or a local unix socket), since it transmits the password in clear text (report by fg0x0)
  • CONJS-354: Reject a server-initiated LOAD DATA LOCAL INFILE request when permitLocalInfile is disabled (report by tharavel)
  • Refuse sending the password in clear (mysql_clear_password) over an unencrypted connection

3.3.3 (Jun 2026)

Full Changelog

Issues Fixed

  • CONJS-350: Fixed possible SQL injection in Buffer parameter escaping under big5/gbk/sjis/cp932/gb18030 client charset (report by fg0x0)
  • CONJS-349: Fixed cleartext password disclosure to a man-in-the-middle when relying on certificate fingerprint validation (self-signed trust mode)
  • CONJS-351: Use constant-time comparison when validating the server certificate fingerprint token, preventing a timing side-channel that could leak the token to a man-in-the-middle
  • CONJS-353: PAM (dialog) authentication now requires a secure connection (TLS or a local unix socket), since it transmits the password in clear text (report by fg0x0)
  • CONJS-354: Reject a server-initiated LOAD DATA LOCAL INFILE request when permitLocalInfile is disabled (report by tharavel)
  • Refuse sending the password in clear (mysql_clear_password) over an unencrypted connection

3.2.4 (Jun 2026)

Full Changelog

Issues Fixed

  • CONJS-350: Fixed possible SQL injection in Buffer parameter escaping under big5/gbk/sjis/cp932/gb18030 client charset (report by fg0x0)
  • CONJS-353: PAM (dialog) authentication now requires a secure connection (TLS or a local unix socket), since it transmits the password in clear text (report by fg0x0)

... (truncated)

Commits
  • 14e0f16 [misc] Update CHANGELOG.md to include recent security fixes for PAM authentic...
  • cd00457 Merge branch 'develop'
  • f34b785 [misc] test stability: poll debug log until flushed instead of fixed wait
  • 2df7c26 [CONJS-354] Reject server-initiated LOAD DATA LOCAL INFILE when permitLocalIn...
  • 7d6e44a [misc] Cap the length of server-sent numeric strings before BigInt parsing, p...
  • 53b3042 [CONJS-353] PAM (dialog) authentication now requires a secure connection (TLS...
  • 41eec7f [CONJS-351] Implement constant-time comparison in validateFingerPrint to prev...
  • aa50c50 Update CHANGELOG.md for version 3.4.6, 3.3.3 and 3.2.4, adding fixed issues a...
  • 6c10db5 [misc] test stability correction
  • 5d5293a [misc] Refuse mysql_clear_password over an insecure connection
  • Additional commits viewable in compare view


Dependabot compatibility score 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 commands and options
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) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/dolthub/dolt/network/alerts).
  • 11614: go: sqle/dtablefunctions: defer dolt_query_diff execution to RowIter and enforce subquery auth Fix permission checking and planning for dolt_query_diff. With this change, permissions on tables, views, and databases referenced are verified during planning. Table rows are only fetched when the query is executed, fixing edge cases with EXPLAIN.
  • WithCatalog now calls engine.AnalyzeQuery to parse and validate permissions without instantiating rows.
  • Iterators are created only when results are requested.
  • Authorization is delegated to WithCatalog. Fix [#10701] Close [#10822]
  • 11611: Resolve predicates before partial index backfill Resolve partial-index predicates against the actual table schema before evaluating them while backfilling an index over existing rows. This prevents planner-relative field ordinals from being evaluated against stored table rows. Part of [dolthub/doltgresql#3100](https://github.com/dolthub/doltgresql/issues/3100)
  • 11610: go/libraries/doltcore/env, sqle: handle duplicate database directories Log warning to skip duplicate database folders when scanning for databases to prevent overwriting an existing database.
  • Add shared warning helper that logs duplicate database.
  • Check active databases before clone or create operations. Fix [#10143] Close [#10678]
  • 11607: dbfactory: git remotes with more flexible cache dir name Enable DumboDB to use git* remotes, but under a different cache directory, that doesn't include .dolt
  • 11606: tracking field so that adaptive encoded keys work with garbage collection, push, etc New field in prolly.fbs to account for address values in keys. Doltgres permits this; Dolt does not (always requires prefixes for long keys). This gap would cause any key values stored out of band in Doltgres to be garbage collected inappropriately, as well as fail to be pushed.
  • 11604: go: sqle/expranalysis: Have ResolveExpression take a schema-qualified TableName. Allows for fixing some partial-index creation failures in doltgres.
  • 11598: feat: add orcarouter provider to dolt assist The dolt assist command is Dolt's chat assistant for running dolt commands and queries in plain language. This PR adds a named OrcaRouter provider via --provider orcarouter, mirroring the existing OpenAI wiring: it reads ORCAROUTER_API_KEY, targets https://api.orcarouter.ai/v1/chat/completions, and defaults to the orcarouter/auto model. OrcaRouter is an OpenAI-compatible AI gateway built for both models and agents — like OpenRouter it exposes a provider/model namespace across many models, but also combines adaptive routing, automatic failover, zero-markup inference, observability, guardrails, and agent-tool governance behind the same endpoint, so Dolt users can use that stack without treating it as an anonymous base URL. It also runs gateway-level, zero-trust security for AI agents on the same endpoint — screening every prompt/response and governing every tool call on a default-deny basis, with no application code changes. OpenAI stays the default; no behavior change. I also fixed a pre-existing bug in getJsonPrompt that emitted a leading comma (invalid JSON) on the first request. Verification: go build + go vet pass, gofmt clean, live-tested --provider orcarouter against OrcaRouter (200). go test ./cmd/dolt/commands/ passes; the only failure is pre-existing TestSignAndVerifyCommit (needs gpg, not installed here). Discord: discord.gg/YEubt8enRA · X: https://x.com/OrcaRouter I'm an engineer on the OrcaRouter team.
  • 11597: Fix duplicate key errors with expression indexes Sizes reconstructed rows from mapped SQL ordinals so system-hidden expression-index columns cannot leave out-of-range gaps after schema changes. Covers keyed and keyless tables across duplicate errors, ignored inserts, and duplicate-key updates. Supports doltgresql [#3082].
  • 11596: Fix macOS-only bats CI failures Fixes the long-standing macOS-only bats CI failures (verified: 38 → 0 failures across two full nightly-workflow runs).
  • Skip docker-entrypoint.bats/tzdata.bats for MacOS (no docker available on PATH in MacOS runners)
  • Fix BSD awk/grep incompatibilities in sql-diff.bash and GNU-only sed -i in sql-pull.bats
  • Disable the detached dolt send-metrics process during bats runs (raced with test teardown cleanup)
  • Default DOLT_PAGER=cat (less races with expect scripts typing ahead, dropping keystrokes)
  • 11594: Added extended vector index support This adds support for extended vector index support for Doltgres. Builds on top of:
  • https://github.com/dolthub/go-mysql-server/pull/3724
  • 11593: go: clone: Make clone use the same semantics on srcDB as fetch. Open without caching and close when finished with it.
  • 11592: Say that a failed conjoin was deferred, not that something went fatal Reword the conjoin failure log line to say that compaction was deferred and will be retried, and add a deferred field so log consumers can classify it without parsing prose. Fixes [#11591] Close [#11624] Blocked by [#11624]
  • 11585: Fix auto-increment tracker init race NewSequenceTrackerFromRoots initializes sequence state in a background goroutine but ran it on the caller's request-scoped context, so it could be canceled as soon as the triggering query (e.g. CREATE DATABASE) returned, poisoning the tracker for later callers. Detach that goroutine's context from the caller's cancellation, and add a deterministic regression test.
  • 11582: go: Add cleanup of the created directory on some database creation failure paths.
  • 11580: Fix FK lookup during table rename UpdateForeignKey was looking up the existing foreign key using the new table name passed in the constraint, but go-mysql-server calls it during a rename before the table has actually been renamed. This lookup only matters (and only broke) for schema-qualified engines like Doltgres, since plain Dolt's foreign key lookups ignore table name when schema is empty. Fixed by looking up using the table's current name, and added a regression test that reproduces the mid-rename state directly against WritableDoltTable.UpdateForeignKey. Related to: https://github.com/dolthub/doltgresql/issues/3114
  • 11577: Fix a race in SequenceTracker.InitWithRoots Concurrent dolt_reset or dolt_checkout calls from different sessions against the same database could race inside SequenceTracker.InitWithRoots, with two overlapping calls both ending up closing the same completion channel and crashing the whole server process. This PR serializes InitWithRoots with a mutex and has each async init close a captured channel reference instead of the mutable field. Also adds a unit test that reproduces the panic against the old code and passes clean under -race against the fix.
  • 11576: dumbo: expose session operations
  • 11571: user contribution: s3 remote support Original PR: https://github.com/dolthub/dolt/pull/11433 Fixes: https://github.com/dolthub/dolt/issues/509 Documentation Change: https://github.com/dolthub/docs-2/pull/174
  • 11569: build(deps): upgrade Hibernate to 6.6.55 ## Summary
  • replace the vulnerable Hibernate 5.6 dependency with Hibernate ORM 6.6.55.Final
  • migrate the smoke-test entity annotations from javax.persistence to jakarta.persistence
  • remove the obsolete hibernate-entitymanager dependency and target Java 11, as required by Hibernate 6
  • resolve Dependabot alert [#122] / CVE-2026-0603 ## Validation
  • mvn -B -ntp clean compile
  • mvn -B -ntp dependency:tree -Dincludes=org.hibernate:hibernate-core,org.hibernate.orm:hibernate-core [no-release-notes]
  • 11449: pin the aborted-rebase state behind ErrRebaseDataConflictsCantBeResolved Related to [#10951] — extends the existing dolt_rebase data-conflict enginetest to assert the abort that the error message promises actually happened: original branch restored, the dolt_rebase_<branch> working branch and the dolt_rebase plan table both gone, and dolt_conflicts empty.
  • 11438: fix: populate dolt_statistics created_at Sets Statistic.Created on newly generated table-scan and index statistics so dolt_statistics.created_at reports the collection time instead of Go’s zero value, while cached statistics keep their existing timestamps. Fix [#10168] Close [#11647]
  • 11433: Add s3:// remote scheme for generic S3-compatible object stores (#509) ## Motivation [#509] asks for S3-compatible storage support. The historical blocker was the manifest: aws:// pairs S3 with a DynamoDB table for the atomic check-and-set, which generic S3-compatible stores cannot provide. That blocker is gone: AWS S3 supports conditional writes (If-None-Match: * for create since Aug 2024, If-Match: <ETag> CAS since Nov 2024), and Cloudflare R2 and current MinIO AIStor document both headers on PutObject. ## Design A new s3://bucket/path scheme backed by an endpoint-configurable S3Blobstore:
  • The manifest ETag is an opaque version token. CheckAndPut issues a direct single-part conditional PutObject (If-None-Match: * on create, If-Match on replace). HTTP 412, AWS's conditional 409 ConditionalRequestConflict, and If-Match against a missing key all map to the unwrapped blobstore.CheckAndPutError, so the existing NBS manifest reread/retry path handles races unchanged. 429/5xx are left to the caller's retry with the original condition preserved.
  • CheckAndPut never uses multipart (multipart ETags are not content-stable across providers, and conditional headers on CompleteMultipartUpload are not universally supported). Ordinary Put uses the SDK upload manager, which switches to multipart automatically for large table files.
  • The factory wires nbs.NewNoConjoinBSStore, so Concatenate is never invoked — no server-side compose operation is required, following the Git-remote backend precedent.
  • Credentials come from the standard AWS SDK chain. New optional remote params: s3-endpoint, s3-region, s3-path-style (the AWS_ENDPOINT_URL_S3 env var is honored when params are omitted). The first commit fixes a pre-existing gap this work surfaced: noConjoinBlobstorePersister.Open lacked the archive-format (.darc) fallback that blobstorePersister.Open has, so pushing archive table files into a no-conjoin blobstore store failed at openChunkSources. ## Verification
  • Integration tests (env-gated on TEST_S3_BUCKET/TEST_S3_ENDPOINT/TEST_S3_PATH_STYLE, following the GCS/OCI convention) cover put/get/exists/ranged reads, conditional create/update/stale-version/missing-key semantics, an 8-writer concurrent CheckAndPut race asserting exactly one winner, multipart Put, and unsupported Concatenate. All pass against live Cloudflare R2.
  • End-to-end against R2: remote addpushclone → data verified → second pushpull round-trip verified.
  • Caveat stated plainly: the concurrent-race test is a smoke test, not a proof of provider-side CAS linearization. R2 documents the conditional headers but not an explicit exactly-one-winner guarantee, and R2 rate-limits ~1 write/sec per key (relevant to the hot manifest). A more rigorous conformance harness (synchronized independent clients, disabled SDK retries, raw timing/status capture, repetition) is planned; providers lacking conditional writes should eventually get a fast capability-probe error. ## Open questions
  • Is this design shape acceptable, and is the work planned under the current [#509] assignment far enough along that this PR conflicts? Happy to adapt or hand off.
  • Naming/config bikeshed: s3:// scheme and s3-endpoint/s3-region/s3-path-style param names.
  • Whether a startup capability probe (fail-fast on providers without conditional-write support) should land in this PR or a follow-up. Known cosmetic issue: a second push to an existing branch prints [new branch] instead of a fast-forward line; investigating.
  • 11022: build(deps): bump fast-xml-builder from 1.1.5 to 1.2.0 in /.github/actions/ses-email-action Bumps fast-xml-builder from 1.1.5 to 1.2.0.
    Changelog

    Sourced from fast-xml-builder's changelog.

    1.2.0 (2026-05-08)

    • Add support for sanitizeName option
    • Support xml-naming for validating and sanitizing tag and attribute names

    1.1.9 (2026-05-06)

    • fix: format output for preserve order when indent by is set to empty string

    1.1.8 (2026-05-05)

    • fix: skip text property for PI tags
    • improve typings

    1.1.7 (2026--05-04)

    • fix security issues when attribute value contains quotes

    1.1.6 (2026--05-04)

    • fix security issues related to comment
    • skip comment with null value

    1.1.5 (2026-04-17)

    • fix security issues related to comment and cdata

    1.1.4 (2026-03-16)

    • support maxNestedTags option

    1.1.3 (2026-03-13)

    • declare Matcher & Expression as unknown so user is not forced to install path-expression-matcher

    1.1.2 (2026-03-11)

    • fix typings

    1.1.1 (2026-03-11)

    • upgrade path-expression-matcher to 1.1.3

    1.1.0 (2026-03-10)

Commits


Dependabot compatibility score You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options
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) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/dolthub/dolt/network/alerts).

Note Automatic rebases have been disabled on this pull request as it has been open for over 30 days. * 11018: build(deps): bump github.com/apache/thrift from 0.13.1-0.20201008052519-daf620915714 to 0.23.0 in /go Bumps github.com/apache/thrift from 0.13.1-0.20201008052519-daf620915714 to 0.23.0.

Release notes

Sourced from github.com/apache/thrift's releases.

Version 0.23.0

Please head over to the official release download source: http://thrift.apache.org/download

The assets listed below are added by Github based on the release tag and they will therefore not match the checkums published on the Thrift project website.

Version 0.22.0

Please head over to the official release download source: http://thrift.apache.org/download

The assets listed below are added by Github based on the release tag and they will therefore not match the checkums published on the Thrift project website.

Version 0.21.0

Please head over to the official release download source: http://thrift.apache.org/download

The assets listed below are added by Github based on the release tag and they will therefore not match the checkums published on the Thrift project website.

Version 0.20.0

Please head over to the official release download source: http://thrift.apache.org/download

The assets listed below are added by Github based on the release tag and they will therefore not match the checkums published on the Thrift project website.

Version 0.19.0

Please head over to the official release download source: http://thrift.apache.org/download

The assets listed below are added by Github based on the release tag and they will therefore not match the checkums published on the Thrift project website.

Version 0.18.1

Please head over to the official release download source: http://thrift.apache.org/download

The assets listed below are added by Github based on the release tag and they will therefore not match the checkums published on the Thrift project website.

Version 0.18.0

Please head over to the official release download source: http://thrift.apache.org/download

The assets listed below are added by Github based on the release tag and they will therefore not match the checkums published on the Thrift project website.

Version 0.17.0

Please head over to the official release download source: http://thrift.apache.org/download

The assets listed below are added by Github based on the release tag and they will therefore not match the checkums published on the Thrift project website.

Version 0.16.0

For release 0.16.0 head over to the official release download source:

... (truncated)

Changelog

Sourced from github.com/apache/thrift's changelog.

0.23.0

Build Process

C glib

  • THRIFT-5931 - thrift_ssl_socket_get_ssl_error() can underflow its remaining-buffer counter and write past the stack buffer
  • THRIFT-5871 - Improve MAX_MESSAGE_SIZE check and friends

C++

  • THRIFT-5911 - Inconsistent UUID compilation for aliased types
  • THRIFT-5912 - Assertion failed: delta > 0, file ThreadManagerTests.h, line 162
  • THRIFT-5880 - C++ TSocket on an IPv6-only system fails if you use a hostname of 127.0.0.1
  • THRIFT-3268 - warning: token pasting of ',' and __VA_ARGS__ is a GNU extension
  • THRIFT-5887 - build/cmake/ should be prepended (not appended) to CMAKE_MODULE_PATH
  • THRIFT-5878 - Add UUID support for THeaderProtocol and TProtocolTap
  • THRIFT-5898 - Unable to build Thrift as a shared library on Windows

Contributed

  • THRIFT-5920 - Remove threadsafe warnings in thrift-maven-plugin

Delphi

  • THRIFT-5939 - Replace GUID generation with stable UUID algorithm
  • THRIFT-5876 - Add Delphi WinHTTP client TLS1.3 support

Go

  • THRIFT-5896 - Race condition in TServerSocket.Addr() method

Java

  • THRIFT-5925 - UUID implementation in JAVA is not according to the Thrift Specification
  • THRIFT-5869 - Close the transport after TServerEventHandler deleteContext
  • THRIFT-5863 - Make TServerTransport able to customize the max message size
  • THRIFT-5774 - Add remote client's IP address to ServerContext in TServerEventHandler
  • THRIFT-4280 - Add async nonblocking ssl support in java client
  • THRIFT-5879 - java and kotlin cross tests fail in the GitHub action

netstd

... (truncated)

Commits


Note Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

go-mysql-server

  • 3748: sql.ValueRows: Correctly handle NULLs in comparisons.

This fixes a correctness issue running a query against a Dolt MySQL server: The test currently passes prior to this PR. This is because the test harness needs to be updated to more accurately reflect running against a Dolt MySQL server, but this currently causes other tests to fail. Instead, this change was tested locally to with the new test harness, and I confirmed that this PR fixes some of the failing tests and does not introduce any new failures.

  • 3747: sql.ValueRows: Correctly handle filter expressions that aren't bools

This fixes a correctness issue running the following queries from TestQueries against a Dolt MySQL server: SELECT i,v from stringandtable WHERE i SELECT i,v from stringandtable WHERE v SELECT i FROM mytable WHERE NULL > 10; SELECT i FROM mytable WHERE NULL IN (10); SELECT i FROM mytable WHERE NULL IN (NULL, NULL); SELECT i FROM mytable WHERE NOT NULL NOT IN (NULL); SELECT i FROM mytable WHERE NOT (NULL) <> 10; SELECT i FROM mytable WHERE NOT NULL <> NULL; There are no test changes because the test harness needs to be updated for every query test at once, once every test passes. I ran the new test harness locally and confirmed that this PR fixes some of the failing tests and does not introduce any new failures.

  • 3746: Support conditional duplicate updates Adds support for conditionally applying duplicate-key updates, as required by PostgreSQL’s ON CONFLICT DO UPDATE ... WHERE. When an insert conflicts with an existing row, the optional condition is evaluated against the existing and proposed rows. A false condition skips that row; a true condition applies the update. The change also supports returning the updated row and lets PostgreSQL count a duplicate update as one affected row without changing MySQL’s default behavior. Tests cover conditional updates, RETURNING, affected-row counts, and a batch of 100,000 filtered conflicts. Supports [dolthub/doltgresql#3235](https://github.com/dolthub/doltgresql/issues/3235). Depends on: [dolthub/vitess#483](https://github.com/dolthub/vitess/issues/483)
  • 3745: Plumb DROP TABLE ... CASCADE through to plan.DropTable Adds a Cascade flag to plan.DropTable (populated from the vitess AST) so that integrator pre-execution hooks can implement dialect-specific cascade semantics; the engine itself does not act on it. Companion PRs:
  • dolthub/vitess: https://github.com/dolthub/vitess/pull/482
  • dolthub/doltgresql: https://github.com/dolthub/doltgresql/pull/3155
  • 3744: sql/mysql_db: Make OverwriteUsersAndGrantsData leave ephemeral users in place. Ephemeral users are part of in-memory process-local state, and any functionally equivalent users are not included in the persisted payload coming in for OverwriteUsersAndGrantsData. This allows Dolt CLI access to retain access through dolt_local_user even when cluster replication replicates users and grants to a replica.
  • 3742: Avoid redundant window output sort Window execution currently performs a second stable sort after evaluating results solely to restore input order, even though each result already carries its original row ordinal. Place results directly at their original ordinals and compact empty positions for grouped windows. This changes output restoration from O(n log n) to O(n) while preserving row order and grouped output cardinality. A temporary 1,000-row ROW_NUMBER benchmark matching the reported query shape improved from approximately 1.03 ms/op to 0.76 ms/op on an Apple M1 Max, about 25%. Allocations changed from 10,041 to 10,038 per operation. Fixes [#11626]
  • 3741: Don't re-evaluate set-returning expressions in the final projection When a select alias is materialized in an inner projection (e.g. so an ORDER BY can reference it), the final projection re-evaluated the alias expression. For expressions that return a RowIter (set-returning functions), the inner projection has already expanded the rows, so re-evaluation multiplied them again and clobbered the sort order. The final projection now references the expanded column instead. There's an engine test with a synthetic function, but most testing lives in Doltgres. Companion PR: https://github.com/dolthub/doltgresql/pull/3151/
  • 3740: Convert LOAD_FILE filename to text type Fixes [#11564] Casting filename to string was causing a panic when it was not a string type. Using TypeAwareConversion first is much safer and prevents the panic.
  • 3739: Fix HAVING aggregate alias resolution Resolve HAVING aggregate inputs using their full table qualifiers so joins with duplicate column names do not bind the wrong source. Fixes [#11627]
  • 3738: Don't set the max1Row query flag for plans containing RowIter exprs Set-returning functions multiply output rows, so a strict index lookup no longer guarantees at most one result row when the plan contains one. See https://github.com/dolthub/doltgresql/pull/3151
  • 3737: Preserve LEFT JOIN semantics for lateral joins with no join filters A LEFT JOIN LATERAL with a trivially true condition (e.g. ON true) had its filter simplified away, and the memo exec builder then rebuilt every filterless lateral join as a lateral cross join incorrectly.
  • 3735: handle parenthesized select with trailing order by and limit Enable planning engine to evaluate parenthesized query expressions in CREATE TABLE ... AS (SELECT ....) with optional modifiers.
  • Apply trailing ORDER BY and LIMIT clauses in buildSelectStmt.
  • Add shared buildLimitAndOffset helper. Fix [#11620] Blocked by dolthub/vitess#481
  • 3733: Evaluate sort key expressions once per row instead of once per comparison Sort comparators previously re-evaluated ORDER BY expressions on every comparison. For non-deterministic expressions (e.g. ORDER BY RAND()), this biased the result heavily toward rows late in the scan: with ORDER BY RAND() LIMIT 1 each comparison was a fresh coin flip, so the last row won ~50% of the time instead of 1/N. It was also wasteful for expensive sort keys, evaluating them O(n log n) times instead of O(n). Sort keys are now evaluated at most once per row and cached, in the full sort, Top-N heap, and top-1 paths. The top-1 path also now surfaces sort expression evaluation errors instead of swallowing them.
  • 3732: Validate DISTINCT windows after function resolution Add an optional validation hook for engine-specific DISTINCT window-function behavior after the exact function overload has been resolved. This lets consumers enforce their compatibility policy without changing native MySQL behavior.
  • 3731: Reject unsafe partial index join scans Prevent partial indexes from being used as complete sorted inputs for merge and range-heap joins unless the source filters include the index predicate. Adds optimizer coverage for predicate-absent rejection and predicate-present eligibility in both join paths. Part of [dolthub/doltgresql#3100](https://github.com/dolthub/doltgresql/issues/3100)
  • 3730: Return an error for a bind variable in an AS OF clause An unresolved bind variable in an AS OF clause caused the query planner to evaluate a nil expression, triggering a panic instead of returning a SQL error. This change detects that case and returns ErrInvalidAsOfExpression, preventing callers from hanging during transaction cleanup. Now, the bigger question if this PR should be accepted or not, si that this can silently return the current db state when "AS OF" cannot be resolved. Not sure if semantically this is acceptable or not. Other paths, notably SHOW TABLES and CALL, allow an unresolved AS OF placeholder during the initial prepare pass and bind it on execution. This change intentionally leaves those paths unchanged.
  • 3728: Expose DISTINCT aggregate retention Expose whether a DISTINCT aggregate argument was retained separately from its evaluated value. This lets aggregates distinguish a retained SQL NULL from a duplicate that should be skipped while preserving existing Eval behavior. Part of dolthub/doltgresql#3099
  • 3727: Support extended types in COUNT DISTINCT Hash single-expression extended values using their canonical serialized representation in COUNT(DISTINCT ...). This allows PostgreSQL UUID values to participate in distinct aggregates without changing ordinary or multi-expression aggregate behavior. Part of dolthub/doltgresql#3099
  • 3726: Handle empty set results in table function wrappers Handle strict set-returning functions used in FROM without fabricating a NULL row, while preserving ordinary scalar NULL behavior and multi-column SRF row shapes. Restrict PostgreSQL scalar alias-as-column behavior to one-column function results. Regular functions with multiple named OUT parameters retain those output names instead of being misclassified as scalar. MySQL-compatible callers remain unchanged because the alias behavior is opt-in. Added focused wrapper and planbuilder coverage for empty strict SRFs, scalar NULLs, multi-column rows, scalar aliases, native table functions, and record-returning regular functions. Verified with go test ./sql/expression/tablefunction -count=1 and go test ./sql/planbuilder -count=1.
  • 3725: Support PostgreSQL scalar function aliases in FROM Add an opt-in plan-builder override for PostgreSQL scalar-function alias semantics in FROM clauses. The default remains disabled so MySQL-compatible callers retain existing behavior. Native table functions continue to preserve their named output columns. Added planbuilder coverage for PostgreSQL mode, default MySQL mode, and native table functions. Verified with go test ./sql/planbuilder -count=1.
  • 3724: Added extended vector support This adds support for extended vector operations, to primarily be used by integrators
  • 3719: fix panic on date type in Round() fixes the panic here: https://github.com/dolthub/dolt/issues/11495 converts that issue into just a datetime conversion problem
  • 3718: Fix functional index display in SHOW INDEX and information_schema.statistics SHOW INDEX and information_schema.statistics were exposing the internal !hidden!... system-column name in Column_name and leaving Expression NULL for functional index key parts, instead of matching MySQL's Column_name=NULL / Expression=<sql text> convention. Chasing this down also surfaced a bug in Coalesce.IsNullable() that only checked its first argument, causing wrong NULL reporting for expressions like COALESCE(b, a) where a is NOT NULL.
  • 3717: bug fix: outer scope visibility in multiple levels of nested derived tables Fixes a bug where a derived table nested inside another derived table (both within a correlated subquery expression) failed to inherit outer-scope visibility past the first nesting level, causing correlated references two-plus levels deep to resolve to the wrong field index or silently return wrong results. OuterScopeVisibility now propagates transitively through nested derived tables instead of only being granted to the outermost one.
  • 3716: fix panic for UNION, INTERSECT and EXCEPT with unequal schema lengths fixes: https://github.com/dolthub/dolt/issues/11491
  • 3714: fix panic on invalid N argument to NTILE Depends on: https://github.com/dolthub/vitess/pull/480 Fixes [#11467]
  • 3710: fix panic in TRIM functions Added a conversion for TimeSpan type to LongText and updated errors to not panic. fixes: https://github.com/dolthub/dolt/issues/11455
  • 3705: Actually resolve column DEFAULT expression when building scalar expressions fixes [#11453] Also removes DefaultColumn placeholder expression type and add more guards for updating with default values. Doltgres updated in dolthub/doltgresql#3205
  • 3704: transaction-scoped session var support MySQL has no concept of these, but Postgres does.
  • 3699: Correctly parse and compare JSON docs with numbers that are too large to fit in a float64 without losing precision. Previously we would parse all numbers in serialized JSON as 64-bit floats, and all comparisons between numbers in JSON would be coerced to 64-bit floats. This was causing problems for inputs that can't be represented precisely as a float, but can be represented precisely as an int64 or uint64. This PR enhances the logic for both parsing and comparing JSON documents to correctly handle float64, int64, and uint64 without any loss of precision.

vitess

  • 483: Add conditional duplicate update metadata Add insert AST metadata for a duplicate-update predicate and single-row affected-count semantics. This lets PostgreSQL dialect translation carry ON CONFLICT DO UPDATE ... WHERE behavior through the shared parser boundary. Adds formatting and AST-walk coverage for the predicate. Supports [dolthub/doltgresql#3235](https://github.com/dolthub/doltgresql/issues/3235).
  • 482: Add Cascade field to DDL for DROP statements Adds a Cascade field to the DDL AST node for DROP statements, which the MySQL grammar never sets (MySQL parses but ignores CASCADE) but integrators with real CASCADE semantics can set when constructing statements. Companion PRs:
  • dolthub/go-mysql-server: https://github.com/dolthub/go-mysql-server/pull/3745
  • dolthub/doltgresql: https://github.com/dolthub/doltgresql/pull/3155
  • 481: support parenthesized select in create table as select (CTAS) Allow CREATE TABLE ... AS statements to accept queries enclosed in parentheses. Data tools can emit this syntax, such as dbt (data transformation tool).
  • sql.y: Extract paren_select rule to parse (SELECT ...).
  • sql.y: Add paren_select as a production for the create_query_expression rule.
  • ast.go: Implement missing methods and fields on the ParenSelect struct to store ORDER BY, LIMIT, WITH and FOR UPDATE (locking).
  • ast.go: Add shared newLock helper. Fix [#11620] Block dolthub/go-mysql-server#3735
  • 480: parse N as integer only for window functions
  • 479: README,SECURITY: Slightly update some security messaging. Clarify that recoverable panics are not currently covered as security issues.
  • 478: go: sqlparser: Fix some panics on inputs with strange quotes, like SELECT''A. In a context where sqlparser.Parse is called into without a recover(), this could cause a process crash and thus be an availability concern. Thanks to Daniel Birtwhistle for the report.
  • 477: Adding Columns field to TableFuncExpr Allows aliasing columns from a table function. Needed primarily for Doltgres, which supports more expressive table functions than MySQL.
  • 475: go/netutil: Fix tests to be determinsitic even with Go > 1.24, GODEBUG=randseednop.

Closed Issues

  • 11468: Dolt panics when FIRST_VALUE receives the star placeholder
  • 11469: Legal BIT(2) RANGE following frame panics
  • 11641: AdaptiveValue decode paths panic in hash.New on a malformed out-of-band address instead of returning an error
  • 11639: Cluster standby: dolt sql fails with Access denied for user '__dolt_local_user__' after users/grants replication
  • 10856: Error when LateBindQueryist fails to connect to the running sql-server noted in sql-server.info is confusing
  • 10168: dolt_statistics.created_at is always 0001-01-01 00:00:00
  • 11626: Window-function CTE query is 2.2x slower than MySQL
  • 11627: Second reference to a CTE fails with table not found for its alias
  • 11564: Dolt panics when LOAD_FILE receives a numeric argument below a window
  • 11591: Conjoin failure logs git's fatal auth text on a push that succeeded
  • 11620: Dolt - ctas statement raises Syntax Error if 'as' subquery is wrapped in parens
  • 10701: DOLT_QUERY_DIFF: Scope privilege checks to tables referenced in queries
  • 11453: DEFAULT(column) reaches an unresolved placeholder during SELECT analysis
  • 10143: Reused database name should be an error or warning
  • 11455: TRIM panics on a native TIME value
  • 509: Ensure ability to use AWS S3 compatible data stores
  • 11495: Dolt panics on ROUND on a date-valued window result
  • 11467: Dolt panics on a non-numeric NTILE bucket expression
  • 11491: Dolt panics on recursive CTE column-arity error.
Source: README.md, updated 2026-09-02