From 6d06dce2bbaf4e934867fe1fda6aa5448dcdc462 Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Thu, 2 Oct 2025 11:39:04 +0300 Subject: [PATCH] docs: Add section on MVCC limitations Document limitations in MVCC pointed out by Jussi. --- docs/manual.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/manual.md b/docs/manual.md index 64d0fbac2..dfbf5c757 100644 --- a/docs/manual.md +++ b/docs/manual.md @@ -70,7 +70,6 @@ curl --proto '=https' --tlsv1.2 -LsSf \ https://github.com/tursodatabase/turso/releases/latest/download/turso_cli-installer.sh | sh ``` -Or alternatively, on MacOS, you can use Homebrew: ``` brew install turso @@ -103,6 +102,17 @@ Turso aims towards full SQLite compatibility but has the following limitations: For more detailed list of SQLite compatibility, please refer to [COMPAT.md](../COMPAT.md). +#### MVCC limitations + +The MVCC implementation is experimental and has the following limitations: + +* Indexes cannot be created and databases with indexes cannot be used. +* All the data is eagerly loaded from disk to memory on first access so using big databases may take a long time to start, and will consume a lot of memory +* Only `PRAGMA wal_checkpoint(TRUNCATE)` is supported and it blocks both readers and writers +* Many features may not work, work incorrectly, and/or cause a panic. +* Queries may return incorrect results +* If a database is written to using MVCC and then opened again without MVCC, the changes are not visible unless first checkpointed + ## The SQL shell The `tursodb` command provides an interactive SQL shell, similar to `sqlite3`. You can start it in in-memory mode as follows: