# Materialize v0.52
## v0.52.0

#### Sources and sinks

* Allow reading from all non-errored subsources in the [PostgreSQL source](/sql/create-source/postgres/),
  when a source error occurs. Prior to this release, if Materialize encountered
  an error during replication for _any_ table, it'd block reads from _all_
  replicated tables associated with the source.

#### SQL

[//]: # "NOTE(morsapaes) This feature was released in v0.49, but is only
considered production-ready after the changes shipping in v0.52 -— so
mentioning it here."

* Automatically run introspection queries in the [`mz_introspection` cluster](/sql/show-clusters/#mz_catalog_server-system-cluster),
  which has several indexes installed to speed up queries using system catalog
  objects (like `SHOW` commands). This behavior can be disabled via the new
  `auto_route_introspection_queries` [configuration parameter](/sql/set/#other-configuration-parameters).

* Add `reason` to the `mz_internal.mz_cluster_replica_statuses` system catalog
  table. If a cluster replica is in a `not-ready` state, this column provides
  details on the cause (if available). With this release, the only possible non-null
  value for `reason` is `oom-killed`, which indicates that a cluster replica was killed because it ran
  out of memory (OOM).

* Add `credits_per_hour` to the `mz_internal.mz_cluster_replica_sizes` system
  catalog table, and rate limit [free trial accounts](/free-trial-faqs/) to 4
  credits per hour.

  To see your current credit consumption rate, measured in credits per hour, run
  the following query:

  ```mzsql
  SELECT sum(s.credits_per_hour) AS credit_consumption_rate
    FROM mz_cluster_replicas r
    JOIN mz_internal.mz_cluster_replica_sizes s ON r.size = s.size;
  ```

* Add default privileges to databases objects. Each object-specific system table
  now has a `privileges` column that specifies the privileges belonging to the
  object. This is part of the work to enable **Role-based access control**
  (RBAC) ([#11579](https://github.com/MaterializeInc/materialize/issues/11579)).

  It's important to note that privileges cannot currently be modified, and are
  not considered when executing statements. This functionality will be added in
  a future release.

* Add the [`GRANT PRIVILEGE`](/sql/grant-privilege) and [`REVOKE PRIVILEGE`](/sql/revoke-privilege)
  commands, which allow granting/revoking privileges on a database object. To
  ensure compatibility with PostgreSQL, sources, views and materialized views
  must specify `TABLE` as the object type, or omit it altogether.

  This is part of the work to enable **Role-based access control** (RBAC) in a
  future release ([#11579](https://github.com/MaterializeInc/materialize/issues/11579)).

#### Bug fixes and other improvements

* **Breaking change.** Change the type of `id` in the `mz_schemas` and
    `mz_databases` system catalog tables from integer to string, for
    consistency with the rest of the catalog. This change should have no user
    impact, but please [let us know](https://materialize.com/s/chat) if you
    run into any issues.

* Fix a bug where the `before` field was still required in the schema of change
  events for Kafka sources using [`ENVELOPE DEBEZIUM`](https://materialize.com/docs/sql/create-source/kafka/#debezium-envelope)
  ([#18844](https://github.com/MaterializeInc/materialize/issues/18844)).

#### Known issues

* This release inadvertently broke compatibility with `dbt-materialize` <= v1.4.0. Please
  upgrade to `dbt-materialize` v1.4.1, which contains a workaround.

  The upcoming v0.53 release of Materialize will restore compatibility with
  `dbt-materialize` <= v1.4.0.
