github readysettech/readyset stable-260924

4 hours ago

Release Notes

Readyset is currently released as a docker container and Linux distro binary packages. For installation with docker, see the Install with Docker documentation. Available Linux distribution binary packages for x86_64/amd64 and arm64/aarch64 include deb package for Ubuntu 22.04, Debian 12 and later, and rpm packages for Amazon Linux 2023 and RedHat 9. See package installation instructions.

What's New

  • 76ea486: Fixed an issue where a row comparison lost its predicate, widening the query to the entire table. Also fixed prepared row comparisons being advertised to clients as taking no parameters.
  • 141b8be: Fixed an issue in MySQL deployments where row comparisons converted their operands as whole rows, causing a number and a numeric string to compare as unequal. Also fixed NULL values within rows being compared as ordinary values.
  • 18f73c1: Return transient SQL error codes for transient errors, signaling to clients and proxies that it is safe to automatically retry the query. Readyset now returns error code 1317 (query interrupted) for MySQL and 55000 (database object not in prerequisite state) for PostgreSQL.
  • 1e37546: When a required table is missing during deep cache creation, Readyset now returns a dialect-specific “table not found” error code—1146 for MySQL and 42P01 for PostgreSQL—instead of a generic error code.
  • 12a9c30: Schema-generation mismatch errors are now reported as transient, allowing clients and proxies to automatically retry the query.
  • c8edfde: Fixed an issue in PostgreSQL deployments where execution that populated a shallow cache through a named prepared statement returned binary-encoded values to clients that requested text format.
  • 984fcbf: Fixed an issue in PostgreSQL deployments that encoded and decoded bytea values in an incorrect format.
  • 1357216: Fixed an issue where a prepared statement planned for a shallow cache returned an error after that cache was dropped. The statement now proxies upstream until the cache is re-created.
  • 2109398: Fixed a crash in CREATE CACHE queries with a very large LIMIT.
  • 450653d: Clients whose session setup fails against the upstream now receive an error instead of a closed connection.
  • 12945f3: Sessions using different collations now create separate shallow-cache entries, ensuring correct sorting.
  • 3f96c8d: Improved handling of replicated CREATE TABLE IF NOT EXISTS statements that name a table Readyset already replicates.
  • 4464db7: Fixed a race condition in which an adapter reconnecting during DDL could briefly use an outdated schema, causing CREATE CACHE to fail during a window of a few milliseconds.
  • 690f449: PostgreSQL tables with generated columns now appear in SHOW READYSET ALL TABLES as not replicated with the correct reason.
  • b8fb98c: Fixed an issue where the adapter and server wrote upstream, CDC, and client passwords to startup logs in clear text. Passwords now appear as "<redacted>".
  • a9a1b47: Added support for replicating DROP DATABASE statements from a MySQL upstream.
  • 438f361: Shallow-cache queries are now displayed with ? placeholders for MySQL, rather than the numbered placeholders ($1, $2, etc.) used by PostgreSQL.
  • 1f5766a: Deep-cache queries are now displayed with ? placeholders for MySQL, rather than the numbered placeholders ($1, $2, etc.) used by PostgreSQL.
  • d30f5c4: Render shallow-cache query placeholders as ? when the upstream database is MySQL.
  • d30f5c4: Fixed recreation on restart of shallow caches created through the --auto-cache argument or CREATE CACHE hints.
  • 012ab5e: Added support for SHOW WARNINGS in MySQL deployments.
  • a94908c: Fixed an issue with the ACL probe that could incorrectly disable shallow caches when Readyset’s parameterization differed from valid query-placeholder positions on the upstream.
  • 364c866: Recreate on restart shallow caches created from query IDs listed in SHOW PROXIED QUERIES, such as with CREATE CACHE FROM <query id>.
  • 932ca8c: EXPLAIN CACHES now renders query placeholders in valid positions for CREATE SHALLOW CACHE statements.
  • 66968a2: EXPLAIN CACHES now prefixes each CREATE SHALLOW CACHE statement with USE <db>; for MySQL or SET search_path = <schema>; for PostgreSQL. This makes it easier to copy and paste output to recreate shallow caches when multiple databases or schemas are involved.

Don't miss a new readyset release

NewReleases is sending notifications on new releases.