Skip to content

TQL2, Always

Tenzir Node v5.0 makes TQL2 the default and only option throughout Tenzir.

Download the release on GitHub.

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.

By @raxyte in #5114.

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.

By @dominiklohmann in #5110.

Fix panic in head 0 | write_json arrays_of_objects=true

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

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

By @dominiklohmann in #5115.

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.

By @raxyte in #5117.

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.

By @dominiklohmann in #5119.

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.

By @dominiklohmann in #5086.

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

By @raxyte in #5111.

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.

By @dominiklohmann in #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.

By @dominiklohmann in #5110.

Last updated: