Releases

NOTE: Starting with the v26.1.0 release, Materialize releases on a weekly schedule for both Cloud and Self-Managed. See Release schedule for details.

v26.1.0

Released Self-Managed: 2025-11-26

v26.1.0 introduces EXPLAIN ANALYZE CLUSTER, console bugfixes, and improvements for SQL Server support, including the ability to create a SQL Server Source via the Console.

EXPLAIN ANALYZE CLUSTER

The EXPLAIN ANALYZE statement helps analyze how objects, namely indexes or materialized views, are running. We’ve introduced a variation of this statement, EXPLAIN ANALYZE CLUSTER, which presents a summary of every object running on your current cluster.

You can use this statement to understand the CPU time spent and memory consumed per object on a given cluster. You can also reveal whether an object has skewed operators, where work isn’t evenly distributed among workers.

For example, to get a report on memory, you can run EXPLAIN ANALYZE CLUSTER MEMORY, and you’ll receive an output similar to the table below:

object global_id total_memory total_records
materialize.public.idx_top_buyers u85496 2086 bytes 25
materialize.public.idx_sales_by_product u85492 1909 kB 148607
materialize.public.idx_top_buyers u85495 1332 kB 77133

To understand worker skew, you can run EXPLAIN ANALYZE CLUSTER CPU WITH SKEW, and you’ll receive an output similar the table below:

object global_id worker_id max_operator_cpu_ratio worker_elapsed avg_elapsed total_elapsed
materialize.public.idx_sales_by_product u85492 0 1.18 00:00:00.094447 00:00:00.079829 00:00:00.159659
materialize.public.idx_top_buyers u85495 0 1.15 00:00:01.371221 00:00:01.363659 00:00:02.727319
materialize.public.idx_top_buyers u85495 1 1.03 00:00:01.356098 00:00:01.363659 00:00:02.727319
materialize.public.idx_top_buyers u85496 1 1.01 00:00:00.021163 00:00:00.021048 00:00:00.042096
materialize.public.idx_top_buyers u85496 0 0.99 00:00:00.020932 00:00:00.021048 00:00:00.042096
materialize.public.idx_sales_by_product u85492 1 0.82 00:00:00.065211 00:00:00.079829 00:00:00.159659

Improved SQL Server support

Materialize v26.1.0 includes improved support for SQLServer, including the ability to create a SQLServer Source via the console.

Upgrade notes for v26.1.0

  • To upgrade to v26.1 or future versions, you must first upgrade to v26.0

Self-Managed v26.0.0

Released: 2025-11-18

Swap support

Starting in v26.0.0, Self-Managed Materialize enables swap by default. Swap allows for infrequently accessed data to be moved from memory to disk. Enabling swap reduces the memory required to operate Materialize and improves cost efficiency.

To facilitate upgrades from v25.2, Self-Managed Materialize added new labels to the node selectors for clusterd pods:

SASL/SCRAM-SHA-256 support

Starting in v26.0.0, Self-Managed Materialize supports SASL/SCRAM-SHA-256 authentication for PostgreSQL wire protocol connections. For more information, see Authentication.

When SASL authentication is enabled:

  • PostgreSQL connections (e.g., psql, client libraries, connection poolers) use SCRAM-SHA-256 authentication
  • HTTP/Web Console connections use standard password authentication

This hybrid approach provides maximum security for SQL connections while maintaining compatibility with web-based tools.

License Key

Starting in v26.0.0, Self-Managed Materialize requires a license key.

License key type Deployment type Action
Community New deployments

To get a license key:

Community Existing deployments Contact Materialize support.
Enterprise New deployments Visit https://materialize.com/self-managed/enterprise-license/ to purchase an Enterprise license.
Enterprise Existing deployments Contact Materialize support.

For new deployments, you configure your license key in the Kubernetes Secret resource during the installation process. For details, see the installation guides. For existing deployments, you can configure your license key via:

kubectl -n materialize-environment patch secret materialize-backend -p '{"stringData":{"license_key":"<your license key goes here>"}}' --type=merge

PostgreSQL: Source versioning

PREVIEW This feature is in private preview. It is under active development and may have stability or performance issues. It isn't subject to our backwards compatibility guarantees.
To enable this feature in your Materialize region, contact our team.

For PostgreSQL sources, starting in v26.0.0, Materialize introduces new syntax for CREATE SOURCE and CREATE TABLE to allow better handle DDL changes to the upstream PostgreSQL tables.

NOTE:
  • This feature is currently supported for PostgreSQL sources, with additional source types coming soon.

  • Changing column types is currently unsupported.

To create a source from an external PostgreSQL:

CREATE SOURCE [IF NOT EXISTS] <source_name>
[IN CLUSTER <cluster_name>]
FROM POSTGRES CONNECTION <connection_name> (PUBLICATION '<publication_name>')
;

To create a read-only table from a source connected (via native connector) to an external PostgreSQL:

CREATE TABLE [IF NOT EXISTS] <table_name> FROM SOURCE <source_name> (REFERENCE <upstream_table>)
[WITH (
    TEXT COLUMNS (<column_name> [, ...])
  | EXCLUDE COLUMNS (<column_name> [, ...])
  [, ...]
)]
;

For more information, see:

Deprecation

The inPlaceRollout setting has been deprecated and will be ignored. Instead, use the new setting rolloutStrategy to specify either:

  • WaitUntilReady (Default)
  • ImmediatelyPromoteCausingDowntime

For more information, see rolloutStrategy.

Terraform helpers

Corresponding to the v26.0.0 release, the following versions of the sample Terraform modules have been released:

Sample Module Description
terraform-helm-materialize A sample Terraform module for installing the Materialize Helm chart into a Kubernetes cluster.
Materialize on AWS A sample Terraform module for deploying Materialize on AWS Cloud Platform with all required infrastructure components. See Install on AWS for an example usage.
Materialize on Azure A sample Terraform module for deploying Materialize on Azure with all required infrastructure components. See Install on Azure for an example usage.
Materialize on Google Cloud Platform (GCP) A sample Terraform module for deploying Materialize on Google Cloud Platform (GCP) with all required infrastructure components. See Install on GCP for an example usage.
Terraform version Notable changes
v0.6.4
  • Released as part of v26.0.0.
  • Uses terraform-helm-materialize version v0.1.35.

If upgrading from a deployment that was set up using an earlier version of the Terraform modules, additional considerations may apply when using an updated Terraform modules to your existing deployments.

Click on the Terraform version link to go to the release-specific Upgrade Notes.

Terraform version Notable changes
v0.6.4
  • Released as part of v26.0.0.
  • Uses terraform-helm-materialize version v0.1.35.

If upgrading from a deployment that was set up using an earlier version of the Terraform modules, additional considerations may apply when using an updated Terraform modules to your existing deployments.

See also Upgrade Notes for release specific notes.

Terraform version Notable changes
v0.6.4
  • Released as part of v26.0.0.
  • Uses terraform-helm-materialize version v0.1.35.

If upgrading from a deployment that was set up using an earlier version of the Terraform modules, additional considerations may apply when using an updated Terraform modules to your existing deployments.

See also Upgrade Notes for release specific notes.

terraform-helm-materialize Notes Release date
v0.1.35
  • Released as part of v26.0.0.
  • Uses as default Materialize Operator version: v26.0.0
2025-11-18

Upgrade notes for v26.0.0

  • Upgrading to v26.0.0 is a major version upgrade. To upgrade to v26.0 from v25.2.X or v25.1, you must first upgrade to v25.2.16 and then upgrade to v26.0.0.

  • For upgrades, the inPlaceRollout setting has been deprecated and will be ignored. Instead, use the new setting rolloutStrategy to specify either:

    • WaitUntilReady (Default)
    • ImmediatelyPromoteCausingDowntime

    For more information, see rolloutStrategy.

  • New requirements were introduced for license keys. To upgrade, you will first need to add a license key to the backendSecret used in the spec for your Materialize resource.

    See License key for details on getting your license key.

  • Swap is now enabled by default. Swap reduces the memory required to operate Materialize and improves cost efficiency. Upgrading to v26.0 requires some preparation to ensure Kubernetes nodes are labeled and configured correctly. As such:

    • If you are using the Materialize-provided Terraforms, upgrade to version v0.6.1 of the Terraform.

    • If you are not using a Materialize-provided Terraform, refer to Prepare for swap and upgrade to v26.0.

See also General notes for upgrades.

See also

Back to top ↑