Materialize now supports much larger SELECT result sets by automatically routing large query results through our storage layer instead of the control protocol. This removes previous memory limitations that constrained result sizes.
When a query result exceeds a configurable threshold, Materialize seamlessly switches to an out-of-band transfer mechanism that streams results from storage to your client. This happens transparently—there’s no change to your SQL syntax or application code.
-- This query can now return millions of rows
SELECT * FROM large_table WHERE status = 'active';
This optimization currently applies to queries without ORDER BY
clauses.
Queries that require result ordering still use the previous result size limits
while we work on extending the feature to all query types.
The change improves both memory efficiency and bandwidth utilization by decoupling data transfer from control plane communication, allowing large analytical queries to complete successfully without impacting cluster stability.