v0.77.md 2.2 KB


title: "Materialize v0.77" date: 2023-11-15 released: true

patch: 1

v0.77.0

Sources and sinks

  • Support the now() function in the CHECK expression of webhook sources. This allows rejecting requests when a timestamp included in the headers is too far behind Materialize's clock, which is often recommended by webhook providers to help revent replay attacks.

Example

  CREATE SOURCE webhook_with_time_based_rejection
  IN CLUSTER webhook_cluster
  FROM WEBHOOK
	  BODY FORMAT TEXT
	  CHECK (
	    WITH (HEADERS)
	    (headers->'timestamp'::text)::timestamp + INTERVAL '30s' >= now()
	  );

SQL

  • Support using timezone abbreviations in contexts where timezone input is accepted.

Example

  SELECT timezone_offset('America/New_York', '2023-11-05T06:00:00+00')
  ----
  (EST,-05:00:00,00:00:00)
  • Add mz_internal.mz_materialization_lag to the system catalog. This view describes the difference between the input frontiers and the output frontier for each materialized view, index, and sink in the system. For hydrated dataflows, this lag roughly corresponds to the time it takes for updates at the inputs to be reflected in the output.

Bug fixes and other improvements

  • Breaking change. Fix timezone offset parsing {{% gh 22896 %}} and remove support for the time type {{% gh 22960 %}} in the timezone function and the AT TIME ZONE operator. These changes follow the PostgreSQL specification.

  • Extend pg_catalog system catalog coverage to include the pg_timezone_abbrevs and pg_timezone_names views. This is useful to support custom timezone abbreviation logic while timezone support doesn't land in Materialize.

  • Improve the output format of EXPLAIN...PLAN AS TEXT when the humanized_exprs output modifier to avoid ambiguities when multiple columns have the same name.