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.