--- title: "Materialize v0.99" date: 2024-05-15 released: true patch: 2 --- ## v0.99 #### Sources and sinks * **Private preview.** Support exporting objects and query results to Amazon s3 using the [`COPY TO`](/sql/copy-to/) command and [`AWS connections`](/sql/create-connection/#aws). Both CSV and Parquet are supported as file formats. **Syntax** ```mzsql CREATE CONNECTION s3_conn TO AWS (ASSUME ROLE ARN = 'arn:aws:iam::000000000000:role/Materializes3Exporter'); COPY mv TO 's3://mz-to-s3/' WITH ( AWS CONNECTION = aws_role_assumption, FORMAT = 'parquet' ); ``` It's important to note that this command isn't supported in the SQL Shell yet, but will be in the next release {{% gh 27114 %}}. * Support ingesting datetime columns as text via the `TEXT COLUMNS` option in the [MySQL source](/sql/create-source/mysql/) to work around MySQL's _zero_ value for datetime types (`0000-00-00`, `0000-00-00 00:00:00`), as well as other differences in the range of supported values between MySQL and PostgreSQL. #### SQL * **Private preview.** Support setting a history retention period for sources, tables, materialized views, and indexes via the new [`RETAIN HISTORY`](/transform-data/patterns/durable-subscriptions/#history-retention-period) option. This is useful to implement [durable subscriptions](/transform-data/patterns/durable-subscriptions/). **Syntax** ```mzsql ALTER MATERIALIZED VIEW winning_bids SET (RETAIN HISTORY FOR '2hr'); ``` ```mzsql ALTER MATERIALIZED VIEW winning_bids RESET (RETAIN HISTORY); ``` * Add [`mz_internal.mz_history_retention_strategies`](https://materialize.com/docs/sql/system-catalog/mz_internal/#mz_history_retention_strategies) to the system catalog. This table describes the history retention strategies for tables, sources, indexes, and materialized views that are configured with a history retention period. * Add [`mz_internal.mz_materialized_view_refreshes`](https://materialize.com/docs/sql/system-catalog/mz_internal/#mz_materialized_view_refreshes) to the system catalog. This table shows the time of the last successfully completed refresh and the time of the next scheduled refresh for each materialized view with a refresh strategy other than `on-commit`. #### Bug fixes and other improvements * Allow `interval` types to be cast to `mz_timestamp` {{% gh 26970 %}}. * Move the `mz_cluster_replica_sizes` system catalog table from the `mz_internal schema` to `mz_catalog`, making the table definition stable. Any queries referencing the `mz_internal.mz_cluster_replica_sizes` catalog table must be adjusted to use `mz_catalog.mz_cluster_replica_sizes` instead.