# Materialize v0.59
## v0.59.0

#### Sources and sinks

* Support dropping individual subsources in the [PostgreSQL source](/sql/create-source/postgres/)
using the new `ALTER SOURCE...DROP SUBSOURCE` syntax. Adding subsources will be
supported in the next release.

#### SQL

* Support parsing multi-dimensional arrays, including multi-dimensional empty arrays.

  ```mzsql
  materialize=> SELECT '{{1}, {2}}'::int[];
     arr
  -----------
   {{1},{2}}
  (1 row)
  ```

* Improve and extend the base implementation of **Role-based
  access control** (RBAC):

  * **Breaking change.** Replace role attributes with system privileges, which
      are inheritable and applied system-wide. This change improves the
      usability of RBAC by consolidating the semantics controlling role
      privileges, making it less cumbersome for admin users to grant(or revoke)
      privileges to manipulate top level objects to multiple users.

  * **Breaking change.** Remove the `create_role`, `create_db`, and
      `create_cluster` from the `mz_roles` system catalog table.

  It's important to note that role-based access control (RBAC) is **disabled by
  default**. You must [contact us](https://materialize.com/contact/) to enable
  this feature in your Materialize region.

#### Bug fixes and other improvements

* Make error messages using object names more consistent. In particular, error
  messages now consistently use the fully qualified object name
  (`database_name.schema_name.item_name`).

* **Breaking change.** Disallow `SHOW` commands in the creation of views and
    materialized views ([#20257](https://github.com/MaterializeInc/materialize/issues/20257)). This change should have no user
    impact, but please [let us know](https://materialize.com/s/chat) if you run
    into any issues.
