--- title: "Materialize v0.49" date: 2023-04-05 released: true patch: 6 --- ## v0.49.0 #### SQL * Change the type of the following system catalog replica ID columns from integer to string: * [`mz_catalog.mz_cluster_replicas.id`](/sql/system-catalog/mz_catalog/#mz_cluster_replicas) * [`mz_internal.mz_cluster_replica_statuses.replica_id`](/sql/system-catalog/mz_internal/#mz_cluster_replica_statuses) * `mz_internal.mz_cluster_replica_heartbeats.replica_id` * [`mz_internal.mz_cluster_replica_metrics.replica_id`](/sql/system-catalog/mz_internal/#mz_cluster_replica_metrics) * `mz_internal.mz_cluster_replica_frontiers.replica_id` This is part of the work to introduce system replicas, which Materialize will use for verification and testing purposes and which will not affect user billing or system limits {{% gh 11579 %}}. Note that, since `mz_catalog` is part of Materialize’s stable interface, the change to `mz_catalog.mz_cluster_replicas.id` is a **breaking change**. If this change causes you friction, please [let us know](https://materialize.com/s/chat). * Add the [`ALTER OWNER`](/sql/alter-owner/) command, which updates the owner of an object. This is part of the work to enable **Role-based access control** (RBAC){{% gh 11579 %}}. * Add permission checks based on object ownership. To `DROP` or `ALTER` an object, the executing role must now be an owner of that object or a superuser. This is part of the work to enable **Role-based access control** (RBAC){{% gh 11579 %}}. * Apply `PRIMARY KEY`, `UNIQUE`, and `NOT NULL` constraints to tables ingested from PostgreSQL sources. * Rename [replica introspection views](https://materialize.com/docs/sql/system-catalog/mz_introspection) for consistency, and use the `_per_worker` name suffix for per-worker introspection views. * Automatically restart failed SSH tunnels to improve the reliability of SSH-tunneled Kafka sources. #### Bug fixes and other improvements - Fix a correctness bug in Top K processing for monotonic, append-only sources. - Fix a bug that prevented superusers from altering an object owner if they weren't a member of the new owner's role. - Fix a bug that would cause PostgreSQL sources to error when columns are added to upstream tables. Note that dropping columns from upstream tables that Materialize ingests still results in error.