Supported Statements
Data manipulation statements
Statement | Supported | Notes and limitations |
---|---|---|
| ✅ | |
| ✅ | |
| ✅ | |
| ❌ | |
| ✅ | No support for referring to more than one table in a single |
| ❌ | |
| ❌ | Use |
| ✅ | Including support for |
| ✅ | |
| ❌ | Use |
| ✅ | |
| ✅ | Most select statements, including |
| ✅ | Selecting from a table as of any known revision or commit timestamp is supported. |
| ❌ | Row-level locks are not supported. |
| ✅ | Subqueries work, but must be given aliases. Some limitations apply. |
| ✅ | |
| ✅ | |
| ✅ | No support for referring to more than one table in a single |
| ✅ | |
| ✅ | |
| ✅ | Charset/Collation specification not supported. |
Data definition statements
Statement | Supported | Notes and limitations |
---|---|---|
| ✅ | |
| ✅ | |
| ✅ | |
| ✅ | |
| ❌ | |
| 🟠 | Name and order changes are supported. Some but not all type changes are supported. |
| ❌ | |
| ✅ | Moving events across databases using RENAME TO clause is not supported yet. |
| ❌ | Indexes can be created and dropped, but not altered. |
| ✅ | |
| ✅ | Not all |
| 🟠 | Some type changes are supported but not all. |
| ❌ | Views can be created and dropped, but not altered. |
| ✅ | |
| ✅ | Creates a new dolt database rooted relative to the server directory |
| ✅ | |
| ❌ | |
| ✅ | |
| ✅ | Creates a new dolt database rooted relative to the server directory |
| ✅ | |
| ✅ | |
| ✅ | |
| ✅ | |
| ✅ | |
| ✅ | |
| ✅ | |
| ✅ | Deletes the dolt data directory. This is unrecoverable. |
| ✅ | |
| ❌ | |
| ✅ | |
| ✅ | Deletes the dolt data directory. This is unrecoverable. |
| ✅ | |
| ❌ | |
| ✅ | |
| ✅ | |
| ✅ | |
| ✅ | |
| ✅ | |
| ❌ | |
| ❌ | Database names are read-only, but can be configured in the server config. |
| ❌ | |
| ✅ | |
| ✅ | |
| ❌ | |
| ❌ | |
| ✅ | |
| ✅ | |
| ✅ | |
| ✅ | |
| ❌ | |
| ❌ | |
| 🟠 | Database privileges, table privileges, and role assumption are not yet implemented. |
| ❌ | |
| ✅ | |
| ❌ | |
| ✅ | |
| ✅ | |
| ✅ |
|
| ✅ |
Transactional statements
Dolt supports atomic transactions like other SQL databases. It's also possible for clients to connect to different heads, which means they will never see each other's edits until a merge between heads is performed. See Using Branches for more detail.
Dolt has two levels of persistence:
The SQL transaction layer, where a
COMMIT
statement atomically updates the working set for the connected headThe Dolt commit layer, where commits are added to the Dolt commit graph with an author, a parent commit, etc.
Statement | Supported | Notes and limitations |
---|---|---|
| ✅ | Synonym for |
| ✅ | |
| ✅ |
|
| ❌ |
|
| ✅ | |
| ✅ | |
| ✅ | |
| ✅ | |
| ✅ | |
| ❌ | Different isolation levels are not yet supported. |
| ✅ | |
| 🟠 |
|
Prepared statements
Statement | Supported | Notes and limitations |
---|---|---|
| ✅ | Prepared statements do not work inside of a STORED PROCEDURE. |
| ✅ | Execute statments do not work inside of a STORED PROCEDURE. |
Access management statements
More information on how Dolt handles access management may be found in the access management page.
Statement | Supported | Notes and limitations |
---|---|---|
| ❌ | |
| ✅ | |
| 🟠 | Only supports basic user creation with an optional password |
| ✅ | |
| ✅ | |
| 🟠 | Only handles static privileges down to the table level |
| ❌ | |
| 🟠 | Only handles static privileges down to the table level |
| ❌ | |
| ❌ | |
| ❌ |
Session management statements
Statement | Supported | Notes and limitations |
---|---|---|
| ✅ | |
| ✅ | |
| ✅ | |
| ✅ |
Utility statements
Statement | Supported | Notes and limitations |
---|---|---|
| ✅ | |
| ✅ |
Compound statements
Statement | Supported | Notes and limitations |
---|---|---|
| ✅ | |
| 🟠 | Labels are only supported for |
| ✅ | Fully supports declaring variables. |
| ✅ | |
| 🟠 | Partially supports handling the |
| ✅ | |
| ✅ | |
| ✅ | |
| ✅ | |
| ✅ | |
| ✅ | |
| ✅ | |
| ✅ | |
| ❌ | |
| ❌ | |
| ✅ | |
| ✅ | |
| ✅ |
Last updated