mirror of
https://github.com/tursodatabase/limbo.git
synced 2025-08-04 10:08:20 +00:00
![]() Currently in the main translation logic after planning and optimization, we don't _really_ need to pass a &mut Vec<WhereTerm> around anymore, except for the fact that virtual table constraint resolution is done ad-hoc in `init_loop()`. Even there, the only thing we mutate is `WhereTerm::consumed` which is a boolean indicating that the term has been "used up" by the optimizer and shouldn't be evaluated as a normal where clause condition anymore. In the upcoming branch for WHERE clause subqueries, I want to store immutable references to WHERE clause expressions in `Resolver`, but this is unfortunately not possible if we still use the aforementioned mutable references. Hence, we can temporarily make `WhereTerm::consumed` a `Cell<bool>` which allows us to pass an immutable reference to `init_loop()`, and the `Cell` can be removed once the virtual table constraint resolution is moved to an earlier part of the query processing pipeline. |
||
---|---|---|
.. | ||
benches | ||
ext | ||
functions | ||
io | ||
json | ||
mvcc | ||
numeric | ||
storage | ||
translate | ||
vdbe | ||
vector | ||
build.rs | ||
Cargo.toml | ||
error.rs | ||
fast_lock.rs | ||
function.rs | ||
info.rs | ||
lib.rs | ||
numeric.rs | ||
parameters.rs | ||
pseudo.rs | ||
result.rs | ||
schema.rs | ||
types.rs | ||
util.rs |