LogoLogo
DoltHubBlogDiscordGitHubDolt
  • Introduction
    • What Is Dolt?
    • Installation
      • Linux
      • Windows
      • Mac
      • Build from Source
      • Application Server
      • Docker
      • Upgrading
    • Getting Started
      • Version Controlled Database
      • Git For Data
      • Versioned MySQL Replica
    • Use Cases
      • Data Sharing
      • Data and Model Quality Control
      • Manual Data Curation
      • Version Control for your Application
      • Versioned MySQL Replica
      • Audit
      • Configuration Management
      • Offline First
  • Concepts
    • Dolt
      • Git
        • Commits
        • Log
        • Diff
        • Branch
        • Merge
        • Conflicts
        • Remotes
        • Working Set
      • SQL
        • Databases
        • Schema
        • Tables
        • Primary Keys
        • Types
        • Indexes
        • Views
        • Constraints
        • Triggers
        • Procedures
        • Users/Grants
        • Transactions
        • System Variables
      • RDBMS
        • Server
        • Backups
        • Replication
    • DoltHub/DoltLab
      • Permissions
      • Pull Requests
      • Issues
      • Forks
  • SQL Reference
    • Running the Server
      • Configuration
      • Access Management
      • Branch Permissions
      • Backups
      • Garbage Collection
      • Metrics
      • Replication
      • Troubleshooting
    • Version Control Features
      • Using Branches
      • Merges
      • Querying History
      • Using Remotes
      • Procedures
      • Functions
      • System Tables
      • System Variables
      • Saved Queries
    • SQL Language Support
      • Data Description
      • Expressions, Functions, Operators
      • Supported Statements
      • MySQL Information Schema
      • Collations and Character Sets
      • System Variables
      • Miscellaneous
    • Supported Clients
      • Programmatic
      • SQL Editors
    • Benchmarks and Metrics
      • Correctness
      • Latency
      • Import
  • CLI Reference
    • Commands
    • Git Comparison
  • Architecture
    • Overview
    • Storage Engine
      • Commit Graph
      • Prolly Trees
      • Block Store
    • SQL
      • Go MySQL Server
      • Vitess
  • Guides
    • Cheat Sheet
    • Contributing
      • dolt
      • go-mysql-server
    • MySQL to Dolt Replication
    • Importing Data
    • Integrations
  • Other
    • FAQ
    • Roadmap
    • Versioning
  • Products
    • Hosted Dolt
      • Getting Started
      • Notable Features
      • SQL Workbench
      • Cloning a Hosted Database
      • Using DoltHub as a Remote
      • Infrastructure
    • DoltHub
      • Data Sharing
      • API
        • Authentication
        • SQL
        • CSV
        • Database
        • Hooks
      • Continuous Integration
        • Getting Started
        • Workflow Reference
      • Transform File Uploads
      • Workspaces
    • DoltLab
    • Dolt Workbench
    • DoltgreSQL
Powered by GitBook
On this page
  • Why is it called Dolt? Are you calling me dumb?
  • Dolt is MySQL-compatible. I use Postgres?
  • What does @@autocommit do?
  • What's the difference between COMMIT and DOLT_COMMIT()?
  • I want each of my connected SQL users to get their own branch to make changes on, then merge them back into main when they're done making edits. How do I do that?
  • Does Dolt support transactions?
  • What SQL features / syntax are supported?
  • Does Dolt support my favorite SQL workbench / tool?
  • Why does Dolt use so much disk space?
  • How do I squash the history of a Dolt database? I only want the latest.
  • Does Dolt collect client metrics? How can I disable it?
  • How to silence stats failure logs?

Was this helpful?

Edit on GitHub
Export as PDF
  1. Other

FAQ

PreviousIntegrationsNextRoadmap

Last updated 2 months ago

Was this helpful?

Why is it called Dolt? Are you calling me dumb?

It's named dolt to pay homage to :

Torvalds sarcastically quipped about the name git (which means "unpleasant person" in British English slang): "I'm an egotistical bastard, and I name all my projects after myself. First 'Linux', now 'git'."

We wanted a word meaning "idiot", starting with D for Data, short enough to type on the command line, and not taken in the standard command line lexicon. So, dolt.

Dolt is MySQL-compatible. I use Postgres?

We released a Postgres version of Dolt called .

However, Dolt is a production-grade version controlled database today. . If you are ok with using a MySQL-client, we recommend using Dolt for all use cases. Doltgres is experimental.

What does @@autocommit do?

This is a SQL variable that you can turn on for your SQL session like so:

SET @@autocommit = 1

It's on by default in the MySQL shell, as well as in most clients. But some clients (notably the Python MySQL connector) turn it off by default.

You must commit your changes for them to persist after your session ends, either by setting @@autocommit to on, or by issuing COMMIT statements manually.

What's the difference between COMMIT and DOLT_COMMIT()?

COMMIT is a standard SQL statement that commits a transaction. In dolt, it just flushes any pending changes in the current SQL session to disk, updating the working set. HEAD stays the same, but your working set changes. This means your edits will persist after this session ends.

DOLT_COMMIT() commits the current SQL transaction, then creates a new dolt commit on the current branch. It's the same as if you run dolt commit from the command line.

I want each of my connected SQL users to get their own branch to make changes on, then merge them back into main when they're done making edits. How do I do that?

Does Dolt support transactions?

Yes, it should exactly work the same as MySQL, but with fewer locks for competing writes.

What SQL features / syntax are supported?

Does Dolt support my favorite SQL workbench / tool?

Why does Dolt use so much disk space?

How do I squash the history of a Dolt database? I only want the latest.

dolt clone --depth 1 <database>

Does Dolt collect client metrics? How can I disable it?

Dolt collects anonymous usage metrics and sends them over the network to DoltHub metrics servers. No personally identifiable information is collected. You can disable this behavior by setting the metrics.disabled config key:

dolt config --global --add metrics.disabled true

How to silence stats failure logs?

Statistics caches can be removed from the filesystem to silence warnings with dolt_stats_purge():

call dolt_stats_purge();

Version incompatibilities should not hinder the purge command, but if manual intervention is desirable a specific database's stats cache can be removed from the filestystem:

rm -rf .dolt/stats

We are glad you asked! This is a common use case, and giving each user their own branch is something we've spent a lot of time getting right. For more details on how to use this pattern effectively, see .

It's also possible for different sessions to connect to different branches on the same server. See for details.

Most of them! Check out .

You can check out what we're working on next on our . Paying customers get their feature requests bumped to the front of the line.

Probably! Have you tried it? We have for many popular ORMs and tools.

If you try it and it doesn't work, or in and we'll . Our goal is to be a 100% drop-in replacement for MySQL.

Dolt generates a lot of garbage during some writes, especially during initial import. It's not unusual to get a local storage size of 20x the actual data size after an import. Running dolt gc will remove the garbage and reclaim local storage. See the and the for details.

If you are concerned about the growth of a Dolt database at steady state while running the SQL server, there is to automatically run dolt_gc() as the database grows.

You can perform a shallow of a database by using the --depth flag. If you only want the latest change, specify a depth of 1. The also supports this:

Statistic warnings appear infrequently between dolt version upgrades and do not impact the correctness of database operations. If the error is reproducible please .

Statistics can be recollected at any time to improve join and indexing execution performance. See for more details.

how Linus Torvalds named git
DoltgreSQL
Dolt is 1.0
using branches
using branches
the docs for the full list of supported features
roadmap
blogs and sample code
let us know with an issue
our Discord
fix it in 24 hours
clone
CLI
report the issue
the stats docs
an experimental feature
docs on dolt gc
dolt_gc stored procedure