Databases

✓ functional

See which engines SQLly can connect to today and how it keeps their differences from getting in your way.

SQLly understands 30 database engines. Twenty connect today through native Rust drivers, grouped around the four wire protocols those engines actually speak. The remaining ten are fully profiled: SQLly knows their capabilities, quoting, row limits, and type storage, with live connectors still to come.

Every engine has a capability profile. Whether it connects today or not, each engine describes its supported operations and keywords, identifier quoting, row limits, upserts, and type mappings. That is how one action can produce the right dialect for each engine.

Connect today - native drivers

Wire-compatible engines share a driver: PostgreSQL-protocol engines use the PostgreSQL connector, and the MySQL family shares MySQL's. Compatibility stays explicit, so a hosted or distributed engine says which first-party wire it uses.

TDS - SQL Server family

EngineSQL dialectNotes
Microsoft SQL ServerT-SQLFirst-party. Default schema dbo, [bracket] quoting, SELECT TOP n.
Azure SQL DatabaseT-SQLManaged SQL Server; Entra ID sign-in and Azure discovery supported.

PostgreSQL wire

EngineCompatible withNotes
PostgreSQL-First-party. Default schema public, "double-quote" quoting, LIMIT, ILIKE, RETURNING, ON CONFLICT upsert.
CockroachDBPostgreSQLDistributed SQL over the pg wire.
YugabyteDBPostgreSQLDistributed SQL over the pg wire.
Amazon Aurora PostgreSQLPostgreSQLAWS-managed pg-compatible edition.
Amazon RDS for PostgreSQLPostgreSQLAWS-managed PostgreSQL.
Azure Database for PostgreSQLPostgreSQLFlexible server. TLS required.
Google Cloud SQL for PostgreSQLPostgreSQLGCP-managed PostgreSQL.
NeonPostgreSQLServerless PostgreSQL. TLS required.
SupabasePostgreSQLSupabase-hosted PostgreSQL.

MySQL wire

EngineCompatible withNotes
MySQL-First-party. `backtick` quoting, LIMIT, ON DUPLICATE KEY upsert.
MariaDBMySQLAdds sequences and RETURNING.
Amazon Aurora MySQLMySQLAWS-managed MySQL-compatible edition.
Amazon RDS for MySQLMySQLAWS-managed MySQL.
Azure Database for MySQLMySQLFlexible server. TLS required.
Google Cloud SQL for MySQLMySQLGCP-managed MySQL.
PlanetScaleMySQLVitess-based. TLS required.
TiDBMySQLDistributed SQL; no stored procedures.

In-process file

EngineSQL dialectNotes
SQLiteSQLiteFile or in-memory database, opened directly. Dates and UUIDs are text-encoded; no stored procedures.

Modeled - drivers on the way

These engines are fully described in the capability model, so SQLly can generate their SQL, quoting, and type mappings. They do not yet have native connectors, which means a live connection from the app is not available today.

EngineConnects viaSQL dialect
Oracle DatabaseOracle NetOracle (FETCH FIRST, MERGE)
IBM Db2DRDAOracle-family
IBM InformixDRDAOracle-family (SELECT FIRST n)
Microsoft AccessODBC / ACESQL Server-family (reduced surface)
SnowflakeHTTP APIPostgreSQL-family (QUALIFY, MERGE)
Databricks SQLHTTP APIPostgreSQL-family (Spark SQL)
Google Cloud SpannerHTTP APIPostgreSQL-family (GoogleSQL, INSERT OR UPDATE)
DuckDBIn-process filePostgreSQL-family
TeradataProprietaryOracle-family (SELECT TOP n, QUALIFY)
SAP HANAProprietaryOracle-family

One intent, per-engine SQL

Because engine rules live in the model, one UI action can render the right dialect wherever you run it. Row limiting is a familiar example: “view top 1000 rows” becomes:

PatternRendered SQLEngines
TOPSELECT TOP 1000 …SQL Server, Azure SQL, Access, Teradata
LIMIT… LIMIT 1000PostgreSQL & MySQL lineages, SQLite, DuckDB, Snowflake
FETCH FIRST… FETCH FIRST 1000 ROWS ONLYOracle, Db2
FIRSTSELECT FIRST 1000 …Informix

The same per-engine handling covers identifier quoting, string, boolean, and binary literals, upserts (ON CONFLICT, ON DUPLICATE KEY, or MERGE), and how all 15 logical types map to native storage.