limbo/core
Preston Thorpe 850450cf03
Some checks are pending
Python / configure-strategy (push) Waiting to run
Dart/Flutter / test (blacksmith-4vcpu-ubuntu-2404) (push) Waiting to run
Build and push limbo-sim image / deploy (push) Waiting to run
C compat Tests / test (push) Waiting to run
Dart/Flutter / test (windows-latest) (push) Waiting to run
Dart/Flutter / precompile (blacksmith-4vcpu-ubuntu-2404) (push) Waiting to run
Dart/Flutter / precompile (macOS-latest) (push) Waiting to run
Dart/Flutter / precompile (windows-latest) (push) Waiting to run
Dart/Flutter / publish (push) Waiting to run
Dotnet Tests / test (push) Waiting to run
Run long fuzz tests and stress test / run-fuzz-tests (push) Waiting to run
Run long fuzz tests and stress test / run-long-fuzz-tests (push) Waiting to run
Run long fuzz tests and stress test / simple-stress-test (push) Waiting to run
Build & Publish Go Driver / Build Rust and run Go tests (push) Waiting to run
Build & Publish Go Driver / Publish Go driver (push) Blocked by required conditions
Java Tests / test (push) Waiting to run
Build & publish @tursodatabase/database / db-bindings-aarch64-apple-darwin - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / db-bindings-aarch64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / db-bindings-wasm32-wasip1-threads - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / db-bindings-x86_64-pc-windows-msvc - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / db-bindings-x86_64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-aarch64-apple-darwin - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-aarch64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-wasm32-wasip1-threads - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-x86_64-pc-windows-msvc - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-x86_64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / Test DB bindings on Linux-x64-gnu - node@20 (push) Blocked by required conditions
Build & publish @tursodatabase/database / Test DB bindings on browser@20 (push) Blocked by required conditions
Build & publish @tursodatabase/database / Publish (push) Blocked by required conditions
Python / sdist (push) Waiting to run
Python / Release (push) Blocked by required conditions
Python / test (push) Blocked by required conditions
Python / lint (push) Waiting to run
Python / linux (x86_64) (push) Waiting to run
Python / macos-arm64 (aarch64) (push) Waiting to run
Rust / simulator (push) Waiting to run
Rust / test-limbo (push) Waiting to run
Rust / test-sqlite (push) Waiting to run
Rust / cargo-fmt-check (push) Waiting to run
Rust / build-native (blacksmith-4vcpu-ubuntu-2404) (push) Waiting to run
Rust / build-native (macos-latest) (push) Waiting to run
Rust / build-native (windows-latest) (push) Waiting to run
Rust / clippy (push) Waiting to run
Rust Benchmarks+Nyrkiö / vfs-bench-compile (push) Waiting to run
Rust Benchmarks+Nyrkiö / bench (push) Waiting to run
Rust Benchmarks+Nyrkiö / clickbench (push) Waiting to run
Rust Benchmarks+Nyrkiö / tpc-h-criterion (push) Waiting to run
Rust Benchmarks+Nyrkiö / tpc-h (push) Waiting to run
Merge 'add readonly checks to ensure we do not change the header' from Pedro Muniz
## Description
Add some readonly checks in header validation and `pragma journal_mode`
. Depends on #4279 being merged first, to avoid conflicts here.
<!--
Please include a summary of the changes and the related issue.
-->
## Motivation and context
Close #4270
<!--
Please include relevant motivation and context.
Link relevant issues here.
-->
## Description of AI Usage
AI again did most of the work here, as it is pretty basic stuff and
mostly boilerplate. The main usefullness for AI here was to write the
tests to check for these edge cases.
**Prompt:**
```
I want to Make sure readonly databases cannot modify header page on Database open nor call `pragma journal mode` to update the journal mode. I need you
to implement the necessary checks to ensure we can still continue working normally and emit warnings to show that we cannot change to mvcc. Lastly add
tests in `header_version.rs` to prove your modifications works.
```
<!--
Please disclose how AI was used to help create this PR. For example, you
can share prompts,
specific tools, or ways of working that you took advantage of. You can
also share whether the
creation of the PR was mainly driven by AI, or whether it was used for
assistance.
This is a good way of sharing knowledge to other contributors about how
we can work more efficiently with
AI tools. Note that the use of AI is encouraged, but the committer is
still fully responsible for understanding
and reviewing the output.
-->

Reviewed-by: Pere Diaz Bou <pere-altea@homail.com>
Reviewed-by: Preston Thorpe <preston@turso.tech>

Closes #4280
2025-12-18 17:06:08 -05:00
..
benches chore: remove experimental_indexes feature flags 2025-12-08 13:00:37 +02:00
ext chore: remove experimental_indexes feature flags 2025-12-08 13:00:37 +02:00
functions fix unicode char boundary related panic in parse_modifier() 2025-12-11 17:18:11 +02:00
incremental core: change some panics to errors 2025-12-11 17:18:11 +02:00
index_method refine comment 2025-12-10 16:02:42 +04:00
io add tests for completions 2025-12-17 17:44:02 -03:00
json fix(json): properly serialize infinite values 2025-12-16 10:15:29 +00:00
mvcc add btree_resident field in RowVersion to track if the insert and deletion is originally from a btree 2025-12-17 10:55:25 -03:00
numeric feat: add CAST to fuzzer 2025-09-24 18:06:55 -03:00
storage Merge 'Simplify slot bitmap to remove complex unused optimizations' from Preston Thorpe 2025-12-18 13:05:23 -05:00
time
translate Merge 'triggers: don't rewrite qualified table names' from Pavan Nambi 2025-12-18 09:26:46 +02:00
vdbe add readonly checks to ensure we do not change the header 2025-12-18 10:54:58 -03:00
vector fix clippy 2025-11-28 16:08:11 +05:30
assert.rs
build.rs do not run build.rs on debug mode 2025-10-16 01:22:54 -03:00
Cargo.toml Improve Android compatibility 2025-12-06 23:37:40 +01:00
error.rs Add LimboError::CheckpointFailed to track errors occurring specifically in checkpoint 2025-12-16 10:41:54 -05:00
fast_lock.rs remove some unnecessary unsafe impls 2025-09-21 13:29:59 -03:00
function.rs Add scalar functions to properly support analyze behavior 2025-12-09 19:45:06 -05:00
info.rs
lib.rs add readonly checks to ensure we do not change the header 2025-12-18 10:54:58 -03:00
parameters.rs rename methods in core a little bit 2025-11-27 14:12:47 +04:00
pragma.rs support table_xinfo pragma 2025-11-20 17:38:10 +04:00
pseudo.rs clippy 2025-10-09 19:00:40 +03:00
schema.rs Get mutable reference to table in Schema so we can modify it with 2025-12-11 13:19:34 -03:00
series.rs Replace ConstraintInfo::plan_info with ConstraintInfo::index 2025-08-05 05:48:29 +02:00
state_machine.rs mvcc: simplify StateMachine 2025-09-22 16:37:31 +03:00
stats.rs Add scalar functions to properly support analyze behavior 2025-12-09 19:45:06 -05:00
types.rs fix/mvcc: seek() must seek from both mv store and btree 2025-12-05 11:53:16 +02:00
util.rs fix(core/util): fix integer/float equivalence in numeric string comparison 2025-12-16 23:49:18 +00:00
uuid.rs
vtab.rs fix bug 2025-12-03 02:37:59 +04:00