mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-27 21:14:21 +01:00
Changes ALTER TABLE operations to use only MV store and not go through pager, because pager is only used during checkpoint. - Exclusive transaction is required for DDL operations: trying to execute one inside a `BEGIN CONCURRENT` transaction will return an error. It's simply too complicated for now to try to make them concurrently transactional. - Not doing schema changes via pager means that in MV rollback, the connection must rollback its private schema separately, since pager rollback is not invoked. - To simplify MVCC semantics, if any transaction committed a schema change after a transaction started, it cannot commit and will abort with `SchemaUpdated` error - To mimic regular SQLite transaction behavior, if a transaction tries to promote to exclusive transaction, it will fail with `Busy` error if there were any committed transactions after the read transaction started. Reviewed-by: Pere Diaz Bou <pere-altea@homail.com> Closes #3333