biscuit
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
pg_biscuit | 2.4.3 | FTS | MIT | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 2170 | biscuit | No | Yes | No | Yes | No | No | public |
| Related | plpgsql hll rum pg_textsearch |
|---|
Latest stable PGXN distribution and package release is 2.4.3; 2.5.0 is testing; packaged control and SQL default version remain 2.4.1; package name is biscuit.
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 2.4.3 | 1817161514 | pg_biscuit | plpgsql |
| RPM | PIGSTY | 2.4.3 | 1817161514 | biscuit_$v | - |
| DEB | PIGSTY | 2.4.3 | 1817161514 | postgresql-$v-biscuit | - |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 2.4.3 | PIGSTY 2.4.3 | PIGSTY 2.4.3 | N/A | N/A |
| el8.aarch64 | PIGSTY 2.4.3 | PIGSTY 2.4.3 | PIGSTY 2.4.3 | N/A | N/A |
| el9.x86_64 | N/A | N/A | |||
| el9.aarch64 | N/A | N/A | |||
| el10.x86_64 | N/A | N/A | |||
| el10.aarch64 | N/A | N/A | |||
| d12.x86_64 | PIGSTY 2.4.3 d12.x86_64.pg18 : postgresql-18-biscuit postgresql-18-biscuit_2.4.3-1PIGSTY~bookworm_amd64.deb
| PIGSTY 2.4.3 d12.x86_64.pg17 : postgresql-17-biscuit postgresql-17-biscuit_2.4.3-1PIGSTY~bookworm_amd64.deb
| PIGSTY 2.4.3 d12.x86_64.pg16 : postgresql-16-biscuit postgresql-16-biscuit_2.4.3-1PIGSTY~bookworm_amd64.deb
| N/A | N/A |
| d12.aarch64 | PIGSTY 2.4.3 d12.aarch64.pg18 : postgresql-18-biscuit postgresql-18-biscuit_2.4.3-1PIGSTY~bookworm_arm64.deb
| PIGSTY 2.4.3 d12.aarch64.pg17 : postgresql-17-biscuit postgresql-17-biscuit_2.4.3-1PIGSTY~bookworm_arm64.deb
| PIGSTY 2.4.3 d12.aarch64.pg16 : postgresql-16-biscuit postgresql-16-biscuit_2.4.3-1PIGSTY~bookworm_arm64.deb
| N/A | N/A |
| d13.x86_64 | PIGSTY 2.4.3 d13.x86_64.pg18 : postgresql-18-biscuit postgresql-18-biscuit_2.4.3-1PIGSTY~trixie_amd64.deb
| PIGSTY 2.4.3 d13.x86_64.pg17 : postgresql-17-biscuit postgresql-17-biscuit_2.4.3-1PIGSTY~trixie_amd64.deb
| PIGSTY 2.4.3 d13.x86_64.pg16 : postgresql-16-biscuit postgresql-16-biscuit_2.4.3-1PIGSTY~trixie_amd64.deb
| N/A | N/A |
| d13.aarch64 | PIGSTY 2.4.3 d13.aarch64.pg18 : postgresql-18-biscuit postgresql-18-biscuit_2.4.3-1PIGSTY~trixie_arm64.deb
| PIGSTY 2.4.3 d13.aarch64.pg17 : postgresql-17-biscuit postgresql-17-biscuit_2.4.3-1PIGSTY~trixie_arm64.deb
| PIGSTY 2.4.3 d13.aarch64.pg16 : postgresql-16-biscuit postgresql-16-biscuit_2.4.3-1PIGSTY~trixie_arm64.deb
| N/A | N/A |
| u22.x86_64 | PIGSTY 2.4.3 u22.x86_64.pg18 : postgresql-18-biscuit postgresql-18-biscuit_2.4.3-1PIGSTY~jammy_amd64.deb
| PIGSTY 2.4.3 u22.x86_64.pg17 : postgresql-17-biscuit postgresql-17-biscuit_2.4.3-1PIGSTY~jammy_amd64.deb
| PIGSTY 2.4.3 u22.x86_64.pg16 : postgresql-16-biscuit postgresql-16-biscuit_2.4.3-1PIGSTY~jammy_amd64.deb
| N/A | N/A |
| u22.aarch64 | PIGSTY 2.4.3 u22.aarch64.pg18 : postgresql-18-biscuit postgresql-18-biscuit_2.4.3-1PIGSTY~jammy_arm64.deb
| PIGSTY 2.4.3 u22.aarch64.pg17 : postgresql-17-biscuit postgresql-17-biscuit_2.4.3-1PIGSTY~jammy_arm64.deb
| PIGSTY 2.4.3 u22.aarch64.pg16 : postgresql-16-biscuit postgresql-16-biscuit_2.4.3-1PIGSTY~jammy_arm64.deb
| N/A | N/A |
| u24.x86_64 | PIGSTY 2.4.3 u24.x86_64.pg18 : postgresql-18-biscuit postgresql-18-biscuit_2.4.3-1PIGSTY~noble_amd64.deb
| PIGSTY 2.4.3 u24.x86_64.pg17 : postgresql-17-biscuit postgresql-17-biscuit_2.4.3-1PIGSTY~noble_amd64.deb
| PIGSTY 2.4.3 u24.x86_64.pg16 : postgresql-16-biscuit postgresql-16-biscuit_2.4.3-1PIGSTY~noble_amd64.deb
| N/A | N/A |
| u24.aarch64 | PIGSTY 2.4.3 u24.aarch64.pg18 : postgresql-18-biscuit postgresql-18-biscuit_2.4.3-1PIGSTY~noble_arm64.deb
| PIGSTY 2.4.3 u24.aarch64.pg17 : postgresql-17-biscuit postgresql-17-biscuit_2.4.3-1PIGSTY~noble_arm64.deb
| PIGSTY 2.4.3 u24.aarch64.pg16 : postgresql-16-biscuit postgresql-16-biscuit_2.4.3-1PIGSTY~noble_arm64.deb
| N/A | N/A |
| u26.x86_64 | PIGSTY 2.4.3 u26.x86_64.pg18 : postgresql-18-biscuit postgresql-18-biscuit_2.4.3-1PIGSTY~resolute_amd64.deb
| PIGSTY 2.4.3 u26.x86_64.pg17 : postgresql-17-biscuit postgresql-17-biscuit_2.4.3-1PIGSTY~resolute_amd64.deb
| PIGSTY 2.4.3 u26.x86_64.pg16 : postgresql-16-biscuit postgresql-16-biscuit_2.4.3-1PIGSTY~resolute_amd64.deb
| N/A | N/A |
| u26.aarch64 | PIGSTY 2.4.3 u26.aarch64.pg18 : postgresql-18-biscuit postgresql-18-biscuit_2.4.3-1PIGSTY~resolute_arm64.deb
| PIGSTY 2.4.3 u26.aarch64.pg17 : postgresql-17-biscuit postgresql-17-biscuit_2.4.3-1PIGSTY~resolute_arm64.deb
| PIGSTY 2.4.3 u26.aarch64.pg16 : postgresql-16-biscuit postgresql-16-biscuit_2.4.3-1PIGSTY~resolute_arm64.deb
| N/A | N/A |
Build
You can build the RPM / DEB packages for pg_biscuit using pig build:
pig build pkg pg_biscuit # build RPM / DEB packages
Install
You can install pg_biscuit directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
pig repo add pgsql -u # Add repo and update cache
Install the extension using pig or apt/yum/dnf:
pig install pg_biscuit; # Install for current active PG version
pig ext install -y pg_biscuit -v 18 # PG 18
pig ext install -y pg_biscuit -v 17 # PG 17
pig ext install -y pg_biscuit -v 16 # PG 16
dnf install -y biscuit_18 # PG 18
dnf install -y biscuit_17 # PG 17
dnf install -y biscuit_16 # PG 16
apt install -y postgresql-18-biscuit # PG 18
apt install -y postgresql-17-biscuit # PG 17
apt install -y postgresql-16-biscuit # PG 16
Create Extension:
CREATE EXTENSION biscuit CASCADE; -- requires: plpgsql
Usage
Sources:
- PGXN biscuit 2.4.3 distribution
- PGXN 2.4.3 metadata
- PGXN 2.4.3 control file
- PGXN 2.4.3 changelog
- Official documentation
biscuit is an experimental PostgreSQL index access method optimized for pattern filters on text. It targets selective LIKE, ILIKE, NOT LIKE, and NOT ILIKE predicates, including multi-column and expression indexes, while trading additional memory and write work for faster filtering.
Core Workflow
CREATE EXTENSION biscuit;
CREATE INDEX message_body_biscuit_idx
ON message USING biscuit (body);
SELECT id, body
FROM message
WHERE body ILIKE '%timeout%';
Expression indexes work when the query uses the same expression:
CREATE INDEX customer_email_biscuit_idx
ON customer USING biscuit (lower(email));
SELECT *
FROM customer
WHERE lower(email) LIKE '%@example.com';
For predicates spanning several indexed text columns, use a multi-column index and confirm the chosen plan with EXPLAIN (ANALYZE, BUFFERS) on representative data.
Important Objects
biscuitis the index access method used inCREATE INDEX ... USING biscuit.biscuit_operatorsreports the supported operators.biscuit_versionandbiscuit_build_infoexpose build information;biscuit_build_info_jsonreturns it as JSON.biscuit_statusreports the installed build and bitmap configuration.biscuit_index_statsandbiscuit_index_memory_sizeinspect an index and its memory footprint.biscuit_memory_usageis a view of extension memory use.biscuit_has_roaringandbiscuit_roaring_versionreport optional Roaring bitmap support.
Limits and Operations
biscuit is for filtering, not ordered index scans. It does not provide regular-expression or similarity search. Indexes can be larger and more expensive to maintain than a B-tree; benchmark read selectivity, ingest cost, memory use, and vacuum behavior before production use. Keep a conventional index where ordering, equality, uniqueness, or another access method is still required.
The upstream project labels Biscuit as actively developed. PGXN publishes 2.4.3 as a stable distribution, but that archive’s changelog stops at 2.4.2, and its metadata and control file expose SQL extension version 2.4.1. Treat 2.4.3 as a distribution/package refresh: no additional SQL API delta is claimed. The material 2.4.2 change fixes a use-after-free in the index cache plus compiler warnings.
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.