Materialize v0.77

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 (#22896) and remove support for the time type (#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.

Back to top ↑