SQL
What it is
A bucket’s tables are one transactional store that also answers analytical queries. You write ordinary SQL over the Postgres wire; the plane decides how to store and serve it. There is no engine to provision, no capability to switch on and no schema registry: create the bucket, connect, run CREATE TABLE.
psql · psycopg · Prisma · SQLAlchemy · GORM · SQLx · node-postgres
│
▼ pg.uk-lon-1.dodil.io:5432 dbname = <bucket>
┌───────────────────┐
│ tables gateway │ auth, TLS, per-bucket isolation
└─────────┬─────────┘
▼
┌───────────────────┐
│ your bucket │ Delta Lake tables
│ s3://<bucket>/ │ (also readable by any Delta tool)
└───────────────────┘It is a system of record. OLTP workloads such as a double-entry ledger run directly on it, with the same isolation contract you would build against Postgres: snapshot reads, SELECT … FOR UPDATE guards, serialization failures you retry. It is also a warehouse: GROUP BY, window functions, joins and CTEs run over the same rows with no copy and no sync.
Who it is for
- Application developers who want Postgres semantics without running Postgres. Your ORM’s migrations and CRUD work; the compatibility pages list the exact differences.
- Teams that ingest documents and want structured rows to appear automatically. A table can be bound to a pipeline template so that rows materialize as files land in the bucket — see Pipelines.
- Analysts and data engineers who want the rows in an open format. Every table is a real Delta Lake table in your bucket; external Delta readers can scan it.
Start here
Pick the question you have:
| Question | Page |
|---|---|
| How do I connect and run my first statements? | Quickstart · Connect |
Is NUMERIC exact? What does INTEGER become? Is VARCHAR(n) enforced? | Data types |
| Which statements work, which are refused, which are accepted with a notice? | Statements |
| Which constraints are actually enforced? | Constraints |
What happens when two transactions touch the same row? What does FOR UPDATE guarantee? | Transactions & concurrency |
Is ADD COLUMN online? How do indexes work? | Schema changes |
| Which SQLSTATE do I retry? | Errors & SQLSTATEs |
What does information_schema report? | Catalog |
| What is different from Postgres, today? | Limits & differences |
| I have an existing Postgres app. What breaks? | Migrating from Postgres |
| How does it actually store and serve data? | How it works |
| I am not on the Postgres wire. | gRPC & HTTP API · CLI |
| Show me a complete example. | Recipes — a ledger, idempotent writes, a pipeline-bound table |