Materialize v0.77
v0.77.0
Sources and sinks
-
Support the
now()
function in theCHECK
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 thetimezone
function and theAT TIME ZONE
operator. These changes follow the PostgreSQL specification. -
Extend
pg_catalog
system catalog coverage to include thepg_timezone_abbrevs
andpg_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 thehumanized_exprs
output modifier to avoid ambiguities when multiple columns have the same name.