New: prepared statements, UPDATE and DELETE, and key lookups that seek — 0.143 ms through the gateway.Read the update

Compare · PostgreSQL

The same wire protocol. A much smaller database.

psql and PostgreSQL drivers connect to UltraFabric today with a token as the password. Behind the protocol is a deliberately small SQL subset with one property PostgreSQL does not have: every plan is checked for tenant isolation before it runs. No benchmark against PostgreSQL has been run yet.

Measured

What exists, and what does not

The only SQL numbers in the repository are through UltraFabric's own gateway. They say how UltraFabric behaves, not how it compares.

pgbench against UltraFabric's gateway, prepared statements

Loopback TCP → gateway → node, shared development host, 23 Oct 2026, commit 4362b9d. No PostgreSQL run on this host exists; the "before" column is UltraFabric one day earlier, without key seeks.

StatementClientsAvg msBeforeStmts/s
Primary-key SELECT10.1435.526,984
Primary-key SELECT80.76741.710,608
GROUP BY with count and sum15.385.64189
Single-row INSERT10.9221.061,149
Single-row INSERT86.176.81,296

No comparative claim. The roadmap's target for the transactional engine is at or above PostgreSQL 17 on single-node OLTP (pgbench and a TPC-C-like run). It will be measured on a dedicated benchmark host with the raw results published. Until then this page makes no speed claim against PostgreSQL.

Works today

CREATE TABLE with a primary key and NOT NULL; INSERT, UPDATE and DELETE as atomic statements; SELECT with WHERE, inner and left joins, GROUP BY, count/sum/avg/min/max, ORDER BY, LIMIT, OFFSET; key lookups and ranges that read only the matching rows.

Built

Next

BEGIN/COMMIT/ROLLBACK on the engine's snapshot transactions, RETURNING, ON CONFLICT, pg_catalog and information_schema, then one real application's suite.

In progress

Migration

Copy-and-follow from PostgreSQL with reverse change capture for rollback is designed for the first-hosted-tenant phase.

Planned

Login

RS256 token as the password, verified at the gateway (issuer, audience, expiry) and again at the node; a token signed with another key is refused with 28P01. Accepted only over TLS or from the same machine.

Built
Honest reading

Where PostgreSQL is ahead

A comparison that hides the other side's strengths is advertising. These are the points a buyer would find anyway.

Transactions

PostgreSQL has BEGIN, COMMIT, ROLLBACK, savepoints and serializable isolation. UltraFabric's storage engine has snapshot-isolation transactions, but SQL cannot open one yet: each statement is its own atomic step, and several writes in one query string are refused.

The whole language and the ecosystem

Subqueries, WITH, UNION, DISTINCT, HAVING, window functions, SQL functions such as upper(), RETURNING and ON CONFLICT all fail with 0A000 on UltraFabric today. Extensions, tooling and three decades of operational knowledge have no counterpart.

pg_catalog and information_schema

Database GUIs and ORMs read these when they connect. UltraFabric does not serve them yet; that is the next SQL phase.

Replication, backups, a hosted service

All planned for later phases. UltraFabric has not had a long soak test, a run on dedicated hardware, or a backup restored for real.

What UltraFabric adds

What PostgreSQL does not offer

Built and tested today, not planned.

Isolation verified on every plan

Every data node checks every plan before executing a single operator: tenant-isolated, policy-filtered, masked above the requester's clearance. The optimizer, cache and gateway are untrusted plan authors. PostgreSQL's row-level security is a policy you write and can forget.

Built

Tenant as a hidden key range

Tables carry a tenant key you can neither read, filter on nor write. Primary keys are unique per tenant; two tenants can both hold an order 1. Schema changes need a separate operator credential that can never read tenant data.

Built

Row and columnar tables in one SQL

CREATE TABLE … WITH (storage = columnar) gives an append-only column-oriented table with the same types, SQL and check as a row table.

Built

Identity checked twice

The token is verified at the gateway and again at the data node, which never takes the gateway's word for who is asking. The node itself never listens on the network.

Built
Compatibility

Status today

Protocol yes, SQL partly, catalog not yet

The gateway serves the simple query protocol psql uses and the extended protocol most drivers use by default, with $1 parameters in text and binary formats; the Go driver pgx runs in its default mode in the end-to-end test. Types: smallint, int, bigint, real, double precision, numeric(p,s), text, boolean, uuid, date, timestamp, bytea, with no silent lossy conversion. Numbers follow PostgreSQL's typing, and errors come back as PostgreSQL SQLSTATEs (23505, 42P01, 42703, 42883, 23502, 42501, 22012, 22003, 53200). Everything unsupported fails at once with 0A000 and names the feature. The full list is in SQL and psql.

The gate for the SQL phase is one real application's test suite passing against UltraFabric unchanged. It has not passed yet.

Has UltraFabric been benchmarked against PostgreSQL?

No. The only pgbench runs are against UltraFabric's own gateway, with no PostgreSQL baseline on the same host. The roadmap's target, at or above PostgreSQL 17 on single-node OLTP, will be measured on a dedicated benchmark host and published with the raw results; until then no comparative number exists.

Will my ORM work?

Not yet. ORMs read the pg_catalog and information_schema tables when they connect and need BEGIN/COMMIT; both are the next SQL phase, whose gate is one real application's test suite passing unchanged.

Can I migrate a PostgreSQL database today?

No. Copy-and-follow migration with reverse change capture for rollback is designed for the first-hosted-tenant phase and is not built.

Run the same benchmark yourself.

Every report names its commit, tool invocation and raw result file. Early-access teams receive the scripts with the build.