Tenzir Node v5.0 makes TQL2 the default and only option throughout Tenzir.
Download the release on GitHub.
Features
Section titled “Features”Implement from_http
Section titled “Implement from_http”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.
Add optimizations for if
Section titled “Add optimizations for if”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.
Implement move operator
Section titled “Implement move operator”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.
Add a hidden field to diagnostics
Section titled “Add a hidden field to diagnostics”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.
Changes
Section titled “Changes”Make TQL2 the default
Section titled “Make TQL2 the default”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.
Implement file_content(path:string)
Section titled “Implement file_content(path:string)”We added a new function file_contents to read bytes from a file with an
absolute path.
Add optimizations for if
Section titled “Add optimizations for if”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.
Bug Fixes
Section titled “Bug Fixes”Add optimizations for if
Section titled “Add optimizations for if”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.