| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| readyset_1.24.0-1_amd64.deb | 2026-03-31 | 35.4 MB | |
| readyset_1.24.0-1_arm64.deb | 2026-03-31 | 29.6 MB | |
| readyset-1.24.0-1.fc39.x86_64.rpm | 2026-03-31 | 37.6 MB | |
| readyset-1.24.0-1.al2023.x86_64.rpm | 2026-03-31 | 37.5 MB | |
| readyset-1.24.0-1.fc39.aarch64.rpm | 2026-03-31 | 34.0 MB | |
| readyset-1.24.0-1.al2023.aarch64.rpm | 2026-03-31 | 33.9 MB | |
| README.md | 2026-03-30 | 7.4 kB | |
| stable-260331 source code.tar.gz | 2026-03-30 | 41.1 MB | |
| stable-260331 source code.zip | 2026-03-30 | 43.6 MB | |
| Totals: 9 Items | 292.7 MB | 1 | |
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
- 0ee831f: Fixed handling of empty array literals (
{}) in PostgreSQL queries that previously caused type mismatch errors. - f89952f:
EXPLAIN MATERIALIZATIONSnow supports the optionalFOR CACHE <name>suffix to show only the materialized nodes belonging to a specific cache’s dataflow. - f0fe3f4: Readyset now creates shallow caches by default in response to
CREATE CACHEstatements, allowing users to start caching queries without first setting up replication. - If replication is configured, start Readyset with
--cache-mode deepor--cache-mode deep-then-shallowto enable deep caching (CACHE_MODEenvironment variable). - You can request a specific cache type using the
CREATE [DEEP|SHALLOW] CACHEsyntax. - d37510d: Added support for the PostgreSQL array overlap operator (
&&), which checks whether two arrays share any common elements. - 6924e75: Fixed an issue where filters on
ROW_NUMBER()results were lost in nested subqueries with identically named window output columns, causing too many rows to be returned. - f4e59d1: Fixed a race condition between the WAL flushing thread and the full replay thread.
- 3867c09: Fixed an out-of-memory issue during replays for queries with fully materialized nodes.
- d4c33ed: Fixed incorrect results for
LEFT JOINs withON-clause conditions referencing only the left table. - 83767d8: Fixed a crash in domain processing when
SUMorAVGaggregates were applied to text columns in MySQL mode. - ce07ae1: Fixed
AVG()decimal precision for integer columns in MySQL. - 8f37261: Added support for auto-incrementing columns in PostgreSQL via the
GENERATED { ALWAYS | BY DEFAULT } AS IDENTITYsyntax. - fb31b80: Fixed a panic when
json_object_aggwas used in queries requiring post-lookup aggregation (e.g., withWHERE INclauses). These queries now gracefully fall back to the upstream database. - 4932860: Improved performance of PostgreSQL array containment operators (
@>and<@) from O(n*m) to O(n+m). - 9bed07a: Fixed incorrect
NULLordering in PostgreSQL array comparisons.NULLelements are now correctly treated as greater than non-NULLvalues, matching PostgreSQL semantics. - 4bfec7c: Fixed a bug where
GROUP BYwith numeric column references (e.g.,GROUP BY 1) failed inside subqueries. - 0e2d46d: Fixed a bug causing column lookup errors during MIR lowering for queries with aggregates inside derived tables (e.g.,
SELECT * FROM (SELECT max(id), val FROM t GROUP BY 2) AS sub). - a8a6425:
SHOW PROXIED QUERIESnow defaults to displaying proxied queries and their Readyset support status based on the current--cache-modesetting (default: shallow). - You can specify a list using the
DEEPorSHALLOWmodifier, e.g.,SHOW PROXIED [DEEP|SHALLOW] QUERIES. - 8fb0958: Fixed
array_aggon array-typed columns (e.g.,ARRAY(SELECT ARRAY[...])), which previously returnedUnsupported typeerrors. It now produces multidimensional arrays matching PostgreSQL behavior. - b5bf630: Fixed incorrect results for
LEFT JOIN+ subquery queries with parameterizedWHEREclauses on a right-side non-join column. - 7033df7: Added support for
VALUESclauses in theFROMposition withJOINs, enabling inline literal tables (e.g.,SELECT ... FROM (VALUES (1, 'a')) AS v(id, name) JOIN t ON ...). - 42bca2b: Fixed a domain thread crash when caching queries with type-mismatched join conditions (e.g.,
INTjoined againstgroup_concatTEXToutput that cannot convert toINT). - 4689a72: Fixed equality comparison bugs with
TIMESTAMPand non-UTCTIMESTAMPTZcached lookups. Persistent state will be automatically re-snapshotted on upgrade. - 968d819: Fixed incorrect results for
TIMESTAMPqueries with timezone offsets in literals. - 3965615: Fixed MySQL
DATETIMElookups with timezone offsets inWHEREclauses. - f0617bf: Fixed connection tracking to properly handle multiple authenticated users from the same IP address and re-authentication cases.
SHOW CONNECTIONSnow displays both remote addresses and usernames. - 31a08d9: Added a virtual Readyset schema backed by DataFusion, exposing more system state via SQL and virtual relations.
- The default schema name is
readyset, configurable via the--readyset-schemaflag or theREADYSET_SCHEMAenvironment variable. - 7d4e2e4: Added
readyset.shallow_cachesvirtual relation (vrel) to examine current shallow caches. - a77c177: Added
readyset.shallow_cache_entriesvrel to assist in diagnosing shallow cache entries. - 8b668c3: Fixed duplicate column projection handling to prevent debug assertion panics when queries select the same column multiple times.
- 369f17f: Added the
SKIP CACHEhint (/*+ SKIP CACHE */) to bypass Readyset caches and route queries directly to the upstream database. - d83cf2f: Added a reason tag to the skip cache metric to distinguish between
SKIP CACHEhints, transactions, and proxy-always bypass scenarios. - Thank you to @Daksh-10 for the contribution!
- Readyset now supports MySQL Global Transaction Identifiers (GTIDs) for binlog replication. When the upstream MySQL server has GTID mode enabled, Readyset automatically detects and uses GTID-based positioning instead of traditional binlog file/position tracking. This provides:
- Automatic GTID detection: Readyset queries the upstream server's gtid_mode variable and switches to GTID-based replication automatically when available.
--require-gtidflag: Optionally enforce GTID mode, preventing fallback to binlog file/position if the upstream server has GTIDs disabled.- Readyset now supports switching the upstream database source without a full re-snapshot, enabling planned failover scenarios (e.g., promoting a replica or migrating to a new host). Four new SQL commands are available:
ALTER READYSET STOP REPLICATION: Pauses the replication stream.ALTER READYSET START REPLICATION: Resumes replication from the last stored position.ALTER READYSET SET REPLICATION POSITION '<pos>': Updates the stored replication position (accepts MySQL binlog file:position, GTID set, or PostgreSQL LSN format).ALTER READYSET CHANGE CDC TO '<url>': Points Readyset at a new upstream database URL.
A typical failover workflow: stop replication, change the CDC URL to the new source, optionally adjust the replication position, then start replication. This works for both MySQL (binlog file/pos and GTID) and PostgreSQL (LSN) deployments.
- Added query hint syntax (
/*rs+ ... */) for inline cache management.CREATE SHALLOW CACHEhints create a shallow cache on first execution while still executing the query. It also allows for optional settings such asTTLandCOALESCE.