Download Latest Version doltgresql-windows-amd64.zip (46.1 MB)
Email in envelope

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

Home / v1.3.1
Name Modified Size InfoDownloads / Week
Parent folder
install.sh 2026-09-02 3.4 kB
doltgresql-windows-amd64.7z 2026-09-02 27.1 MB
doltgresql-windows-amd64.zip 2026-09-02 46.1 MB
doltgresql-darwin-arm64.tar.gz 2026-09-02 46.7 MB
doltgresql-darwin-amd64.tar.gz 2026-09-02 49.5 MB
doltgresql-linux-arm64.tar.gz 2026-09-02 46.2 MB
doltgresql-linux-amd64.tar.gz 2026-09-02 50.1 MB
1.3.1 source code.tar.gz 2026-09-02 12.8 MB
1.3.1 source code.zip 2026-09-02 14.6 MB
README.md 2026-09-02 127.2 kB
Totals: 10 Items   293.1 MB 3

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 dolthub/dolt#10856 Close dolthub/dolt#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 dolthub/dolt#10701 Close dolthub/dolt#10822
  • 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]
  • 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]

doltgresql

Changelog

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

0.24.0

Build Process

... (truncated)

Commits
  • 6d2ec95 Tune make dist: drop generated/build artifacts, add missing sources
  • 4f303a2 Strip node_modules from dist to fix make dist symlink recursion
  • 270b81e Fix stale EXTRA_DIST references that broke make dist
  • c1df044 Fix Go and Rust version detection for multi-digit version numbers
  • 342a803 updated CHANGES.md
  • 0d66913 bump doap & debian changelog
  • f961cdb fix info-header string bound check in THeaderTransport::readString
  • 0ab16e3 enforce max_string_size on non-strict binary message name
  • 817e0f1 Bump rubygems/release-gem from 1.2.0 to 1.4.0
  • 6dfb0b2 THRIFT-6073: Allow injecting external SSL_CTX into C++ SSLContext
  • 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/doltgresql/network/alerts).
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/doltgresql/network/alerts).
  • 3252: Support the built-in FOUND variable in plpgsql FOUND is declared for every function and set by the statements PostgreSQL defines as setting it: INTO clauses, bare DML, PERFORM, FOR..IN..SELECT, RETURN QUERY, and both kinds of FOR loop on exit. A FOR loop reports whether its body ran at all, which it records on its own scope rather than in FOUND, since PostgreSQL leaves FOUND alone while the loop is running. Every way of leaving a scope now routes through a single exitScope, so a loop reports FOUND and closes its cursor whether it ends normally, by EXIT, or by a labelled CONTINUE of an outer loop. A dynamic EXECUTE and a utility statement such as CREATE TABLE deliberately leave FOUND alone, so statements are classified at conversion time and the opcode that dynamic execution shares with static execution is told apart by an operation option.
  • 3248: Support conditional ON CONFLICT updates Support the action-level WHERE clause on ON CONFLICT DO UPDATE. The predicate is evaluated against the existing and proposed rows before assignments, with false and NULL results leaving the conflicting row unchanged. Conditional upserts now report PostgreSQL-compatible command tags while preserving shared MySQL affected-row behavior. Coverage includes true, false, NULL, mixed multi-row, qualified predicates, bind variables, exact command tags, and final table state. Follow-up work is required for unconditional ON CONFLICT DO UPDATE command tags. PostgreSQL counts every executed conflict update as one row, including updates that leave values unchanged. Applying that policy to unconditional updates currently conflicts with MySQL-specific affected-row expectations in the shared enginetests, so the exact fix needs dialect-specific affected-row expectations in the test framework. Fixes [#3235] Depends on:
  • [dolthub/vitess#483](https://github.com/dolthub/vitess/issues/483)
  • [dolthub/go-mysql-server#3746](https://github.com/dolthub/go-mysql-server/issues/3746)
  • 3241: Expose vector dimensions in PostgreSQL catalogs Populate pg_attribute.atttypmod from stored column types and extend format_type() to render extension and user-defined types with PostgreSQL-compatible typmods, array spelling, quoting, and schema qualification. Adds catalog coverage for bounded and unbounded pgvector types, dimensioned arrays, views, quoted names, and shadowed schemas. The new queries were also validated unchanged against PostgreSQL 16 with pgvector. Fixes [#3230]
  • 3240: Fix INSERT SELECT parameter type inference Treat unresolved source types in INSERT ... SELECT as PostgreSQL unknown, allowing assignment casts to use the destination column type without dereferencing a nil DoltgresType. Infer direct projected bind-variable OIDs from the INSERT destination for PostgreSQL-compatible Parse/Describe responses while preserving explicit client-supplied OIDs. Add extended-protocol regression coverage for inferred int4, int8, and text parameters and successful execution. Fixes [#3234]
  • 3238: Fix CONTINUE statement in plpgsql FOR ... IN ... SELECT loops and integer FOR loops.
  • 3237: Fix INTO semantics in plpgsql An INTO clause without STRICT has three behaviors that Doltgres got wrong. A query matching no rows raised instead of setting every target to NULL. A query matching several rows raised instead of keeping the first and discarding the rest. And a target had to have exactly the type the query column produced, rather than accepting anything with an assignment cast to it. An INTO naming several variables also assigned only the first of them, because the loop that walked the targets was indexed by row rather than by target. QueryRowReturn replaces the two paths that INTO used to take, so a single target and several targets are now handled the same way, and reports whether the query produced a row at all. The casting that QuerySingleReturn did inline is extracted as castQueryValue so both share it.
  • 3233: Resolve SQL standard type aliases by name in the parser type table A schema-qualified type name such as pg_catalog.boolean reaches the PL/pgSQL interpreter as text rather than as parser input, so it can only be resolved by looking the name up in the parser's type name table, which listed almost none of the SQL standard aliases. This adds them, and normalizes whitespace within a name so that the multi-word spellings match however they happen to be written. The interpreter now maps a name it finds to the spelling the type is registered under, which also fixes bytea, bpchar and json resolving to a different type or to none.
  • 3228: Minor optimization for result row batching Batch pgwire row metadata in result-owned chunks and normalize result format codes once per result set. This removes per-row metadata allocations without pooling or changing payload encoding. Covers text, binary, mixed-format, NULL, and short-final-batch results. Local sysbench runs against an isolated 24-column dataset, median text-scan latency improved 2.9% (16.25 to 15.77 ms). Mixed-type and binary results were within run-to-run variation, so no latency improvement is claimed for those workloads, due to the increase latency for binary protocol format encoding.
  • 3223: Fold plpgsql identifiers the way Postgres does Declarations were already folded but references used the source text as written. DECLARE MyVar was unreachable as MYVAR, quoted declarations and references were poorly handled, and a trigger body could not write new/old in lowercase because TriggerCall had registered the identifiers as NEW/OLD. Fold variable names at reference sites in the source text, including in expression references, assignment targets, RAISE arguments and EXECUTE USING arguments. Correspondingly register lowercase names for NEW/OLD and TG_ variables. We needed to add variable name quoting in the two places where the engine generates SQL that mentions a variable whose declared name we already hold: the integer FOR loop's condition and increment, and the CASE temporary.
  • 3222: Expand table-returning functions into columns in a FROM clause A function called in a FROM clause is already rewritten into a vitess.TableFuncExpr and resolved through GMS's TableFunctionWrapper, which asks sql.ExtendedTableFunction for the function's result columns. CompiledFunction answered that question with the function's OUT parameters only, so a function declared RETURNS TABLE(...) or RETURNS SETOF <composite> - which stores its result columns as the fields of a composite return type rather than as OUT parameters - reported a single column, and SELECT * FROM figures() returned one record value per row instead of one column per field. OutParametersSchema now falls back to the fields of a composite return type, and Eval expands each record value back into separate columns, assignment casting each field to the result type the function declares. The SELECT-list shape is unchanged: EvalRowIter keeps returning one record value per row, so it now calls the underlying overload directly rather than going through Eval. Also fixes a PL/pgSQL function declared RETURNS SETOF <scalar>, whose RETURN QUERY results were buffered as one-field records and so failed to render in either a FROM clause or a SELECT list.
  • 3212: Reject DISTINCT window aggregates Match PostgreSQL by rejecting DISTINCT window aggregates with SQLSTATE 0A000 after resolving the exact function overload, instead of silently ignoring DISTINCT. Preserve PostgreSQL scalar-function diagnostics, including user-defined and schema-qualified name collisions. Depends on: go-mysql-server [#3732]
  • 3155: Support DROP TABLE ... CASCADE and RESTRICT Reworks DROP TABLE ... CASCADE to reuse the standard DROP TABLE plan node, with the pre-execution hook dropping dependent objects (views, foreign keys, row-type columns, and functions/procedures) at execution time. Fixes [#3120]. Companion PRs:
  • dolthub/vitess: https://github.com/dolthub/vitess/pull/482
  • dolthub/go-mysql-server: https://github.com/dolthub/go-mysql-server/pull/3745
  • 3154: Support ALTER TABLE ... ALTER COLUMN ... TYPE ... USING <expr> Adds support for ALTER TABLE ... ALTER COLUMN ... TYPE ... USING <expr>. Fixes [#3119].
  • 3153: Fix boolean output of dolt system table columns Boolean columns of dolt system tables (e.g. dolt.branches.dirty) are now sent over the wire as booleans in text format. Fixes [#3116].
  • 3152: Support implicit lateral joins for set-returning functions in FROM Set-returning functions in the FROM list can now reference columns of preceding tables (implicit and explicit LATERAL joins). Fixes [#3112].
  • 3151: Fix max1Row error for set-returning functions over point lookups Fixes a "result max1Row iterator returned more than one row" error when a set-returning function is projected over a unique-index point lookup. Fixes [#3111]. Companion PR: https://github.com/dolthub/go-mysql-server/pull/3741
  • 3150: Fix pg_index per-column vectors to have one entry per key column Fixes pg_index per-column vectors (indoption, indcollation, indclass) to have one entry per key column, and populates indnkeyatts. Fixes [#3110].
  • 3101: SET LOCAL support This PR adds support for transaction-scoped session vars via SET LOCAL. Companion PR: https://github.com/dolthub/go-mysql-server/pull/3704

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 [#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 dolthub/dolt#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 dolthub/dolt#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 dolthub/dolt#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 dolthub/dolt#11620 Blocked by dolthub/vitess#481
  • 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.
  • 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.
  • 3724: Added extended vector support This adds support for extended vector operations, to primarily be used by integrators
  • 3704: transaction-scoped session var support MySQL has no concept of these, but Postgres does.

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 [#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 dolthub/dolt#11620 Block dolthub/go-mysql-server#3735
  • 480: parse N as integer only for window functions

Closed Issues

  • 3235: ON CONFLICT ... DO UPDATE ... WHERE (conditional upsert) is rejected as unsupported
  • 3120: DROP TABLE CASCADE support
  • 3230: vector(N) columns enforce dimensions but expose atttypmod = -1 and format_type = '???'
  • 3231: JSONB values are returned as Python strings through psycopg-backed raw cursors
  • 3110: pg_index missing indoption data
  • 3246: Projected set-returning functions duplicate results for multi-row IN lookups
  • 3111: unnest and other set-returning functions incompatible with max1Row iterator
  • 3112: implicit lateral join for set-returning functions
  • 3234: Server panic (nil DoltgresType) on INSERT ... SELECT $1 with uncast bind parameters
  • 3014: dolthub/doltgresql image: CREATE EXTENSION fails with exec: "pg_config": executable file not found in $PATH
  • 3116: dolt.branches.dirty does not have boolean output
  • 3119: ALTER TABLE .. USING support
  • 11638: Wrong results: a scalar subquery's aggregate returns the OUTER query's aggregate when both use the same aggregate expression on the same table
  • 11412: Dolt returns a negative value for ABS(-9223372036854775808).
  • 11547: Dolt rejects a legal REGEXP_REPLACE position after the source
  • 11507: CRC32 rejects a legal binary value produced by a window
  • 11648: git-remote: dolt_remote_info under refs/heads/ makes concurrent git fetch fail with "incorrect old value provided"
  • 11509: STR_TO_DATE() errors instead of propagating NULL
  • 11589: Incorrect NULL filtering with nullable projection and ORDER BY
  • 11658: sql-server logs expected idle-connection reaps at ERROR (6565 lines/day on a healthy server)
  • 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
Source: README.md, updated 2026-09-02