Materialize v0.30
v0.30.0
-
Fix a bug that could cause updates in sinks to appear as two separate records, instead of consolidated into a single update record (#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 (#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 betweeninteger
(32-bit signed integer) anduint4
(32-bit unsigned integer), both values are now cast tobigint
(64-bit signed integer). Previously both values would be cast todouble
(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.