# Tenzir Node v5.3.0

This release brings forth improvements to HTTP support in Tenzir, supporting requests as transformations and paginating APIs.

## 🚀 Features

### Implement `from_http` client

Jun 2, 2025 · [@raxyte](https://github.com/raxyte) · [#5177](https://github.com/tenzir/tenzir/pull/5177)

The `from_http` operator now supports HTTP client functionality. This allows sending HTTP/1.1 requests, including support for custom methods, headers, payloads, pagination, retries, and connection timeouts. The operator can be used to fetch data from HTTP APIs and ingest it directly into pipelines.

Make a simple GET request auto-selecting the parser:

```tql
from_http "https://api.example.com/data"
```

Post data to some API:

```tql
from_http "https://api.example.com/submit", payload={foo: "bar"}.print_json(),
          headers={"Content-Type": "application/json"}
```

Paginating APIs:

```tql
from_http "https://api.example.com/items",
          paginate=(x => x.next_url if x.has_more? == true)
```

### Introduce lambda functions

May 29, 2025 · [@dominiklohmann](https://github.com/dominiklohmann) · [#5150](https://github.com/tenzir/tenzir/pull/5150)

TQL now supports lambda expressions. They are supported in the `where` and `map` functions on list, and on the newly added `count_if` aggregation function. Instead of `[1, 2, 3].map(x, x + 1)`, use `[1, 2, 3].map(x => x + 1)`. This subtle change makes it obvious that the expression is not evaluated on the entire list, but rather on each element individually.

The `count_if` aggregation function counts the number of elements in a list that satisfy a given predicate. For example, `[1, 2, 3].count_if(x => x > 1)` returns `2`.

### Implement `http` operator

May 23, 2025 · [@raxyte](https://github.com/raxyte) · [#5188](https://github.com/tenzir/tenzir/pull/5188)

We implemented the `http` operator that allows making HTTP/1.1 requests to a URL. The operator also allows paginate APIs based on the responses.

## 🔧 Changes

### `load_http` deprecated

Jun 2, 2025 · [@raxyte](https://github.com/raxyte) · [#5177](https://github.com/tenzir/tenzir/pull/5177)

The `from` operator now dispatches to `from_http` for `http[s]` URLs.

The `load_http` operator is now deprecated in favor of `from_http`.

## 🐞 Bug Fixes

### Fix a crash in `to_clickhouse`

Jun 3, 2025 · [@IyeOnline](https://github.com/IyeOnline) · [#5231](https://github.com/tenzir/tenzir/pull/5231)

We fixed an issue when trying to send lists in `to_clickhouse` that would cause the ClickHouse server to drop the connection.

### Fix evaluation of `null if true else …`

May 29, 2025 · [@dominiklohmann](https://github.com/dominiklohmann) · [#5150](https://github.com/tenzir/tenzir/pull/5150)

The expression `null if true else 42` previously returned `42`. It now correctly returns `null`.

### Fix a segfault in `save_amqp` on connection loss

May 26, 2025 · [@IyeOnline](https://github.com/IyeOnline) · [#5226](https://github.com/tenzir/tenzir/pull/5226)

We fixed a crash in `save_amqp` when trying to send a message after the connection was lost.

### Fix overflow warning for `-9223372036854775808`

May 24, 2025 · [@jachris](https://github.com/jachris) · [#5223](https://github.com/tenzir/tenzir/pull/5223)

The lowest 64-bit integer, `-9223372036854775808`, no longer causes an overflow warning.

[ Download on GitHub ](https://github.com/tenzir/tenzir/releases/tag/v5.3.0)

[Get the release artifacts and source code.](https://github.com/tenzir/tenzir/releases/tag/v5.3.0)