PostgreSQL compatibility
Versions, drivers, and what is not permitted
This is real PostgreSQL, not a reimplementation of its wire protocol. Anything that speaks to PostgreSQL speaks to it.
Versions
PostgreSQL 15, 16, 17 and 18. The version is chosen when the database is created and defaults to the newest.
Drivers
Any PostgreSQL client works. There is no HiveOps driver to install, and there would be no reason for one.
| Language | Driver |
|---|---|
| Command line | psql |
| Node.js | pg, postgres.js |
| Python | psycopg, asyncpg |
| Go | pgx, lib/pq |
| Java | The PostgreSQL JDBC driver |
| Ruby | pg |
| Rust | tokio-postgres |
Point any of them at the connection URL from your app user's page. See Connecting.
What is not permitted
A database is a database, not a server you administer. Some things are therefore out of reach.
No superuser. App users are given capabilities, which are group roles carrying specific privileges. None of them is superuser, and superuser is not available on request.
No CREATE DATABASE. Creating a database needs a role attribute that is never granted. Create
databases through the console, where they get a region, a version and an endpoint.
No DROP DATABASE. Dropping one needs ownership that stays with the owner role. Delete through
the console.
No replication. The replication attribute is not granted.
Everything inside a database is yours: schemas, tables, views, functions, procedures, indexes, types and extensions your capability allows.
Connection limits
An app user can carry a connection limit, which caps how many connections that login holds at once. See App users.
If your application opens and closes connections per request, use a connection pooler in the application. PostgreSQL connections are not cheap, and a pool is the normal answer regardless of who is hosting the database.