--- title: "Materialize v0.58" date: 2023-06-28 released: true --- ## v0.58.0 #### SQL * Add support for new SQL functions: | Function | Description | | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | | [`datediff`](/sql/functions/datediff/) | Returns the difference between two date, time or timestamp expressions based on the specified date or time part. | | [`pg_cancel_backend`](/sql/functions/#pg_cancel_backend) | Cancels an in-progress query on the specified connection ID. Returns whether the connection ID existed. | * Accept [scalar functions](/sql/functions/#scalar-functions) in the `FROM` clause of a query. * Add support for the PostgreSQL `IS DISTINCT FROM` operator. This operator behaves like `<>`, except that it treats `NULL` like a normal value that compares equal to itself and not equal to all other values. * Allow specifying a comma-separated list of schemas in the `DROP SCHEMA`. * Add [`mz_internal.mz_object_transitive_dependencies`](/sql/system-catalog/mz_internal/#mz_object_transitive_dependencies) to the system catalog. This table describes the transitive dependency structure between all database objects in the system. * Improve and extend the base implementation of **Role-based access control** (RBAC): * Allow specifying multiple role names in the [`GRANT ROLE`](/sql/grant-role) and [`REVOKE ROLE`](/sql/revoke-role) commands. * Add the [`ALTER DEFAULT PRIVILEGES`](/sql/alter-default-privileges/) command, which allows users to configure the default privileges for newly created objects. * Add the `has_system_privilege` function to query role's system privileges, which reports if a specified user has a system privilege. 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.