---
title: 0.19.0
noindex: true
---

<Note>
  `0.19.0` contains breaking changes to a few query functions: `paradedb.score`,
  `paradeb.snippet`, and `paradedb.more_like_this`. These functions have been
  renamed to `pdb.score`, `pdb.snippet`, and `pdb.more_like_this`.
</Note>

## New Features 🎉

### Broadened Aggregate Pushdown Support

The [custom aggregate scan](/documentation/aggregates) has pushdown support for several new query types. The first is `FILTER`,
which is analogous to the Elastic filters aggregation. It allows a single query to efficiently collect aggregates over multiple
`WHERE` clauses:

```sql
SELECT
  COUNT(*) FILTER (WHERE category @@@ 'electronics') AS electronics,
  COUNT(*) FILTER (WHERE category @@@ 'books') AS books,
  AVG(price) FILTER (WHERE status @@@ 'available') AS avg_available_price
FROM products
GROUP BY brand;
```

The second is pushdown support for `COALESCE` within an aggregate:

```sql
SELECT AVG(COALESCE(price, 0)) FROM products WHERE status @@@ 'available';
```

And the third is support for `COUNT` over a specific field (previously, only `COUNT(*)` was pushed down):

```sql
SELECT COUNT(price) FROM products WHERE status @@@ 'available';
```

### Logical Replication Support

Previously, logical replication was an enterprise-only feature. We have made this feature available in ParadeDB Community,
which means that ParadeDB Community can now run as a logical replica.

<Note>Logical replication in ParadeDB is supported for PG17+ only.</Note>

### New v2 API Capabilities

We have made significant progress on the new [v2 API](/documentation/overview). A non-exhaustive list of additions includes:

- A new way to specify index configuration options like [tokenizers](/documentation/tokenizers/overview) and [token filters](/documentation/token-filters/overview) without the
  old JSON string syntax
- First class support for [multiple tokenizers per field](/documentation/tokenizers/multiple-per-field)
- New token filters like [alpha numeric only](/documentation/token-filters/alphanumeric) and [token length](/documentation/token-filters/token-length)
- A new way to cast queries to [fuzzy](/documentation/full-text/fuzzy), [slop](/documentation/full-text/phrase#adding-slop), and [boost](/documentation/sorting/boost)
- An improved [more like this](/documentation/query-builder/specialized/more-like-this) function

## Performance Improvements 🚀

### Write Throughput

We have made significant improvements to ParadeDB's write throughput, especially for single-row updates. The first change is a new
["mutable segment" data structure](https://github.com/paradedb/paradedb/pull/3203), designed to incur the minimal possible overhead during a single-row write. The overhead of tokenizing,
serializing, and flushing an immutable segment is now completely gone for these single-row writes.

The second is a new [free space map data structure](https://github.com/paradedb/paradedb/pull/3252), backed by an AVL tree. This data structure was designed to minimize lock contention
during heavy, concurrent writes.

The full changelog is available [on the GitHub Release](https://github.com/paradedb/paradedb/releases/tag/v0.19.0).
