Skip to content

Apr 17, 2025 · @raxyte · #5117

We added a new move operator that moves a field into another, effectively a smart renaming such as ctx.message=status.msg moves the values from status.msg into the field message of a record ctx and drops status.msg.

Apr 16, 2025 · @dominiklohmann · #5110

The mo suffix allows for specifying durations in terms of months. For example, 3mo returns a duration equivalent to three months. The unit has alternative spellings month and months, and is defined as one twelfth of a year.

Apr 16, 2025 · @dominiklohmann · #5119

The output of the diagnostics operator now includes an additional hidden field that is set to true for pipelines that are not visible on the Pipelines page of the Tenzir Platform, e.g., because they’re run under-the-hood by the platform or interactively in the Explorer.

Fix panic in head 0 | write_json arrays_of_objects=true

Section titled “Fix panic in head 0 | write_json arrays_of_objects=true”

Apr 15, 2025 · @dominiklohmann · #5115

write_json arrays_of_objects=true now works correctly with an empty input, returning an empty JSON array instead of running into a panic.

Apr 14, 2025 · @raxyte · #5114

from_http <host:port>, server=true creates an HTTP/1.1 server that listens on a specified hostname and port. In the future, the load_http operator’s HTTP client will be integrated with this operator as well, eventually superseding load_http.

Apr 16, 2025 · @dominiklohmann · #5110

1y in TQL now equals 365.2425 days, which is the average length of a year in the Gregorian calendar. This aligns the duration literal with the years function and how the Tenzir Platform renders durations.

Apr 9, 2025 · @raxyte · #5111

We added a new function file_contents to read bytes from a file with an absolute path.

Apr 8, 2025 · @dominiklohmann · #5086

TQL2 is now the default and only option for writing pipelines with Tenzir. The environment variable TENZIR_TQL2, the configuration option tenzir.tql2 have no more effect. Using the command-line option --tql2 results in an error.

Apr 16, 2025 · @dominiklohmann · #5110

Operators that interact with state in the node that is not local to the pipeline, e.g., context::update, now properly work when used inside an if statement. Previously, pipelines of the form if … { context::update … } failed at runtime.

Branches in if statement no longer run on a single thread, and instead properly participate in the thread pool. This fixes performance problems when running complex pipelines inside branches. Note that this causes the output of the if operator to be unordered between its branches.

Literal values of type time in expressions failed to parse when they used subsecond prevision or a time-zone offset. This no longer happens.