title: "Materialize v0.30" date: 2022-11-02 released: true
Fix a bug that could cause updates in sinks to appear as
two separate records, instead of consolidated into a single update record {{%
gh 15748 %}}. Previously, updates for multiple keys that occurred at the same
timestamp would either emit a deletion tombstone followed by a record with the
new value (ENVELOPE UPSERT
), or a {"before": "OLDVALUE", "after": null}
record followed by a {"before": null, "after": "NEWVALUE"}
record (ENVELOPE
DEBEZIUM
).
Improve error message for unsupported types in the PostgreSQL source, specifying the table and column containing an unsupported type:
CREATE SOURCE pg_source
FROM POSTGRES CONNECTION pg_connection (PUBLICATION 'mz_source')
FOR ALL TABLES
WITH (SIZE = '3xsmall');
ERROR: column "person.current_mood" uses unrecognized type
DETAIL: type with OID 211538 is unknown
HINT: You may be using an unsupported type in Materialize, such as an enum. Try excluding the table from the publication.
Fine-grained control for casting unsupported types into valid Materialize types is a work in progress {{% gh 15716 %}}.
When using both signed and unsigned integers as inputs to a function, cast the
inputs to a larger lossless type rather than double
. For
example, when determining equality between integer
(32-bit signed integer) and uint4
(32-bit unsigned
integer), both values are now cast to bigint
(64-bit signed integer). Previously both values would be cast to
double
(64-bit floating point number).
Improve the performance of DDL statements, especially when many DDL statements are run within the same 24 hour period.
Add an xlarge
size for sources and sinks.