[INFO] cloning repository https://github.com/goodjin/sqllite-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/goodjin/sqllite-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgoodjin%2Fsqllite-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgoodjin%2Fsqllite-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d088d6f4e893f9affd050b064aaec5f6ebcc0c2b
[INFO] testing goodjin/sqllite-rust against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgoodjin%2Fsqllite-rust" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/goodjin/sqllite-rust
[INFO] finished tweaking git repo https://github.com/goodjin/sqllite-rust
[INFO] tweaked toml for git repo https://github.com/goodjin/sqllite-rust written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/goodjin/sqllite-rust on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/goodjin/sqllite-rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded endian-type v0.1.2
[INFO] [stderr]   Downloaded rustyline v14.0.0
[INFO] [stderr]   Downloaded nibble_vec v0.1.0
[INFO] [stderr]   Downloaded fd-lock v4.0.4
[INFO] [stderr]   Downloaded cc v1.2.58
[INFO] [stderr]   Downloaded radix_trie v0.2.1
[INFO] [stderr]   Downloaded nix v0.28.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] dde143fca2d1c1a1068016711f2ddaad41ff62c3da6b705227fb5391af34ffba
[INFO] running `Command { std: "docker" "start" "dde143fca2d1c1a1068016711f2ddaad41ff62c3da6b705227fb5391af34ffba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dde143fca2d1c1a1068016711f2ddaad41ff62c3da6b705227fb5391af34ffba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "dde143fca2d1c1a1068016711f2ddaad41ff62c3da6b705227fb5391af34ffba" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dde143fca2d1c1a1068016711f2ddaad41ff62c3da6b705227fb5391af34ffba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "dde143fca2d1c1a1068016711f2ddaad41ff62c3da6b705227fb5391af34ffba" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling endian-type v0.1.2
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling nibble_vec v0.1.0
[INFO] [stderr]    Compiling radix_trie v0.2.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling fd-lock v4.0.4
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling rustyline v14.0.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling sqllite-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `PAGE_SIZE`
[INFO] [stdout]  --> src/pager/checksum.rs:9:32
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::pager::page::{Page, PAGE_SIZE};
[INFO] [stdout]   |                                ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::pager::header::DatabaseHeader`
[INFO] [stdout]   --> src/pager/checksum.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::pager::header::DatabaseHeader;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ForeignKeyChecker`
[INFO] [stdout]   --> src/storage/btree_database.rs:11:57
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::storage::foreign_key::{ForeignKeyConstraint, ForeignKeyChecker};
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/storage/prefix_page.rs:491:28
[INFO] [stdout]     |
[INFO] [stdout] 491 |             if total > 0 { (compressed * 100 / total) } else { 0 },
[INFO] [stdout]     |                            ^                        ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 491 -             if total > 0 { (compressed * 100 / total) } else { 0 },
[INFO] [stdout] 491 +             if total > 0 { compressed * 100 / total } else { 0 },
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Value`
[INFO] [stdout]  --> src/storage/mvcc_wrapper.rs:9:67
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::storage::{BtreeDatabase, Record, Result, StorageError, Value};
[INFO] [stdout]   |                                                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Expression`
[INFO] [stdout]   --> src/executor/plan_cache.rs:11:35
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::sql::ast::{SelectStmt, Expression};
[INFO] [stdout]    |                                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JoinType`, `Join`, and `SelectColumn`
[INFO] [stdout]  --> src/executor/query_optimizer.rs:9:57
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::sql::ast::{SelectStmt, Expression, BinaryOp, Join, JoinType, SelectColumn};
[INFO] [stdout]   |                                                         ^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CostEstimator`, `IndexSelector`, `JoinOrder`, `JoinReorderer`, and `StatsCatalog`
[INFO] [stdout]   --> src/executor/query_optimizer.rs:13:37
[INFO] [stdout]    |
[INFO] [stdout] 13 |     QueryOptimizer, StatsCollector, CostEstimator, JoinReorderer,
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 14 |     IndexSelector, StatsCatalog, JoinOrder
[INFO] [stdout]    |     ^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ColumnStats`, `PredicateType`, and `StatsCollector`
[INFO] [stdout]   --> src/optimizer/cost_model.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | use super::stats::{ColumnStats, TableStats, StatsCollector, PredicateType, StatsCatalog};
[INFO] [stdout]    |                    ^^^^^^^^^^^              ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Value`
[INFO] [stdout]   --> src/optimizer/join_reorder.rs:17:37
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::storage::{BtreeDatabase, Value};
[INFO] [stdout]    |                                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Join`
[INFO] [stdout]   --> src/optimizer/join_reorder.rs:18:23
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::sql::ast::{Join, Expression, BinaryOp};
[INFO] [stdout]    |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PlanCost`
[INFO] [stdout]   --> src/optimizer/join_reorder.rs:19:40
[INFO] [stdout]    |
[INFO] [stdout] 19 | use super::cost_model::{CostEstimator, PlanCost, JoinAlgorithm};
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PredicateType`, `StatsCatalog`, `StatsCollector`, and `TableStats`
[INFO] [stdout]   --> src/optimizer/join_reorder.rs:20:20
[INFO] [stdout]    |
[INFO] [stdout] 20 | use super::stats::{StatsCollector, PredicateType, StatsCatalog, TableStats};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Record` and `Value`
[INFO] [stdout]   --> src/optimizer/index_selection.rs:14:37
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::storage::{BtreeDatabase, Value, Record, BPlusTreeIndex};
[INFO] [stdout]    |                                     ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TableStats`
[INFO] [stdout]   --> src/optimizer/index_selection.rs:16:65
[INFO] [stdout]    |
[INFO] [stdout] 16 | use super::stats::{StatsCollector, PredicateType, StatsCatalog, TableStats};
[INFO] [stdout]    |                                                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PlanCost`
[INFO] [stdout]   --> src/optimizer/index_selection.rs:17:40
[INFO] [stdout]    |
[INFO] [stdout] 17 | use super::cost_model::{CostEstimator, PlanCost};
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/optimizer/index_selection.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AggregateFunc`, `JoinType`, and `Join`
[INFO] [stdout]   --> src/optimizer/subquery.rs:15:71
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::sql::ast::{Expression, BinaryOp, SelectStmt, SelectColumn, Join, JoinType, AggregateFunc, SubqueryExpr};
[INFO] [stdout]    |                                                                       ^^^^  ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Value`
[INFO] [stdout]   --> src/concurrency/snapshot.rs:24:30
[INFO] [stdout]    |
[INFO] [stdout] 24 | use crate::storage::{Record, Value};
[INFO] [stdout]    |                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `WindowFrameBound`, `WindowFrame`, and `WindowSpec`
[INFO] [stdout]  --> src/window/mod.rs:6:35
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::sql::ast::{WindowFunc, WindowSpec, WindowFrame, WindowFrameBound, OrderBy};
[INFO] [stdout]   |                                   ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::storage::Value`
[INFO] [stdout]  --> src/fts/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::storage::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]   --> src/storage/async_wal.rs:13:15
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::io::{Read, Seek, SeekFrom, Write};
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]   --> src/concurrency/mvcc.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::ops::Deref;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_page_id`
[INFO] [stdout]    --> src/pager/prefetch.rs:229:41
[INFO] [stdout]     |
[INFO] [stdout] 229 |     fn update_access_pattern(&mut self, current_page_id: PageId) {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_page_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pager/prefetch.rs:491:16
[INFO] [stdout]     |
[INFO] [stdout] 491 |     pub fn new(mut inner: Pager, config: PrefetchConfig) -> Self {
[INFO] [stdout]     |                ----^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> src/storage/btree_core.rs:90:26
[INFO] [stdout]    |
[INFO] [stdout] 90 |                     let (k, v) = page.get_record_at(mid)?;
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base`
[INFO] [stdout]    --> src/storage/prefix_compression.rs:238:14
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let (base, deltas) = Self::compress(values);
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_table`
[INFO] [stdout]   --> src/storage/foreign_key.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let parent_table = db.get_table(&fk.ref_table)
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/storage/foreign_key.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let mut results = Vec::new();
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/storage/foreign_key.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |         db: &BtreeDatabase,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fk`
[INFO] [stdout]    --> src/storage/foreign_key.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |         fk: &ForeignKeyConstraint,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_fk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_key`
[INFO] [stdout]    --> src/storage/foreign_key.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         parent_key: &[u8],
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `child_key`
[INFO] [stdout]    --> src/storage/foreign_key.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |         child_key: &[u8],
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_child_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record`
[INFO] [stdout]    --> src/storage/foreign_key.rs:201:18
[INFO] [stdout]     |
[INFO] [stdout] 201 |     fn build_key(record: &Record, columns: &[String]) -> Result<Vec<u8>> {
[INFO] [stdout]     |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/storage/foreign_key.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         db: &mut BtreeDatabase,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]    --> src/storage/foreign_key.rs:219:9
[INFO] [stdout]     |
[INFO] [stdout] 219 |         table: &str,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record_id`
[INFO] [stdout]    --> src/storage/foreign_key.rs:220:9
[INFO] [stdout]     |
[INFO] [stdout] 220 |         record_id: u64,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fk`
[INFO] [stdout]    --> src/storage/foreign_key.rs:221:9
[INFO] [stdout]     |
[INFO] [stdout] 221 |         fk: &ForeignKeyConstraint,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_fk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/storage/foreign_key.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 228 |         db: &mut BtreeDatabase,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]    --> src/storage/foreign_key.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |         table: &str,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record_id`
[INFO] [stdout]    --> src/storage/foreign_key.rs:230:9
[INFO] [stdout]     |
[INFO] [stdout] 230 |         record_id: u64,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fk`
[INFO] [stdout]    --> src/storage/foreign_key.rs:231:9
[INFO] [stdout]     |
[INFO] [stdout] 231 |         fk: &ForeignKeyConstraint,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_fk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/storage/foreign_key.rs:238:9
[INFO] [stdout]     |
[INFO] [stdout] 238 |         db: &mut BtreeDatabase,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]    --> src/storage/foreign_key.rs:239:9
[INFO] [stdout]     |
[INFO] [stdout] 239 |         table: &str,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record_id`
[INFO] [stdout]    --> src/storage/foreign_key.rs:240:9
[INFO] [stdout]     |
[INFO] [stdout] 240 |         record_id: u64,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fk`
[INFO] [stdout]    --> src/storage/foreign_key.rs:241:9
[INFO] [stdout]     |
[INFO] [stdout] 241 |         fk: &ForeignKeyConstraint,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_fk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_key`
[INFO] [stdout]    --> src/storage/foreign_key.rs:242:9
[INFO] [stdout]     |
[INFO] [stdout] 242 |         new_key: &[u8],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table_name`
[INFO] [stdout]    --> src/storage/foreign_key.rs:288:14
[INFO] [stdout]     |
[INFO] [stdout] 288 |         for (table_name, fk, op, record) in &self.pending {
[INFO] [stdout]     |              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_record`
[INFO] [stdout]    --> src/storage/foreign_key.rs:294:45
[INFO] [stdout]     |
[INFO] [stdout] 294 |                 FkCheckOp::Delete { record: parent_record } => {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pending_writes`
[INFO] [stdout]   --> src/storage/mvcc_wrapper.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let pending_writes = {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pending_writes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/sql/tokenizer.rs:242:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |             "JSON" => Token::Json,
[INFO] [stdout]     |             ------ matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 242 |             "JSON" => Token::Json,
[INFO] [stdout]     |             ^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/index/hnsw.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |         let offset = slot_index * NODE_SLOT_SIZE;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/index/pushdown.rs:211:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |         Expression::Binary { left, op, right } => {
[INFO] [stdout]     |         -------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 211 |         Expression::Binary { left, op: BinaryOp::Equal, right } => {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pager`
[INFO] [stdout]    --> src/index/pushdown.rs:267:23
[INFO] [stdout]     |
[INFO] [stdout] 267 |     fn load_page_keys(pager: &mut Pager, page_id: PageId) -> Result<Vec<(Value, Vec<u64>)>> {
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_pager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `page_id`
[INFO] [stdout]    --> src/index/pushdown.rs:267:42
[INFO] [stdout]     |
[INFO] [stdout] 267 |     fn load_page_keys(pager: &mut Pager, page_id: PageId) -> Result<Vec<(Value, Vec<u64>)>> {
[INFO] [stdout]     |                                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_page_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query`
[INFO] [stdout]    --> src/index/pushdown.rs:328:25
[INFO] [stdout]     |
[INFO] [stdout] 328 |     pub fn can_pushdown(query: &str, indexed_columns: &[String]) -> Option<(String, IndexFilter)> {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `indexed_columns`
[INFO] [stdout]    --> src/index/pushdown.rs:328:38
[INFO] [stdout]     |
[INFO] [stdout] 328 |     pub fn can_pushdown(query: &str, indexed_columns: &[String]) -> Option<(String, IndexFilter)> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_indexed_columns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/executor/phase5.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |         mut records: Vec<Record>,
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table_name`
[INFO] [stdout]    --> src/executor/phase5.rs:342:9
[INFO] [stdout]     |
[INFO] [stdout] 342 |         table_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `match_expr`
[INFO] [stdout]    --> src/executor/phase5.rs:343:9
[INFO] [stdout]     |
[INFO] [stdout] 343 |         match_expr: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_match_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table_name`
[INFO] [stdout]    --> src/executor/phase5.rs:351:9
[INFO] [stdout]     |
[INFO] [stdout] 351 |         table_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_x`
[INFO] [stdout]    --> src/executor/phase5.rs:352:9
[INFO] [stdout]     |
[INFO] [stdout] 352 |         min_x: f64,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_min_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_x`
[INFO] [stdout]    --> src/executor/phase5.rs:353:9
[INFO] [stdout]     |
[INFO] [stdout] 353 |         max_x: f64,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_max_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_y`
[INFO] [stdout]    --> src/executor/phase5.rs:354:9
[INFO] [stdout]     |
[INFO] [stdout] 354 |         min_y: f64,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_min_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_y`
[INFO] [stdout]    --> src/executor/phase5.rs:355:9
[INFO] [stdout]     |
[INFO] [stdout] 355 |         max_y: f64,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_max_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table_name`
[INFO] [stdout]    --> src/executor/phase5.rs:363:9
[INFO] [stdout]     |
[INFO] [stdout] 363 |         table_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/executor/phase5.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 364 |         x: f64,
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/executor/phase5.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 365 |         y: f64,
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/executor/phase5.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 366 |         k: usize,
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/executor/query_optimizer.rs:150:68
[INFO] [stdout]     |
[INFO] [stdout] 150 |             if let Expression::Binary { left, op: BinaryOp::Equal, right } = expr {
[INFO] [stdout]     |                                                                    ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]     --> src/executor/mod.rs:2180:42
[INFO] [stdout]      |
[INFO] [stdout] 2180 |                 SelectColumn::Expression(expr, Some(alias)) => {
[INFO] [stdout]      |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/executor/mod.rs:2436:13
[INFO] [stdout]      |
[INFO] [stdout] 2436 |         let mut merged_ctes = outer.ctes.clone();
[INFO] [stdout]      |             ----^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record`
[INFO] [stdout]    --> src/optimizer/stats.rs:525:62
[INFO] [stdout]     |
[INFO] [stdout] 525 |     pub fn update_stats_after_insert(stats: &mut TableStats, record: &Record) {
[INFO] [stdout]     |                                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `avg_row_size`
[INFO] [stdout]    --> src/optimizer/cost_model.rs:228:14
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let (avg_row_size, page_count) = if let Some(stats) = self.get_table_stats(table_name) {
[INFO] [stdout]     |              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_avg_row_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_count`
[INFO] [stdout]    --> src/optimizer/cost_model.rs:322:13
[INFO] [stdout]     |
[INFO] [stdout] 322 |         let row_count = self.get_row_estimate(table_name, db);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stats`
[INFO] [stdout]    --> src/optimizer/cost_model.rs:350:38
[INFO] [stdout]     |
[INFO] [stdout] 350 |         let range_rows = if let Some(stats) = self.get_table_stats(table_name) {
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `columns`
[INFO] [stdout]    --> src/optimizer/cost_model.rs:380:9
[INFO] [stdout]     |
[INFO] [stdout] 380 |         columns: &[crate::sql::ast::SelectColumn],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_columns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_count`
[INFO] [stdout]    --> src/optimizer/cost_model.rs:383:13
[INFO] [stdout]     |
[INFO] [stdout] 383 |         let row_count = self.get_row_estimate(table_name, db);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table_stats`
[INFO] [stdout]    --> src/optimizer/join_reorder.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 317 |         table_stats: &HashMap<String, JoinTableStats>,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/optimizer/join_reorder.rs:484:9
[INFO] [stdout]     |
[INFO] [stdout] 484 |         db: &BtreeDatabase,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conditions`
[INFO] [stdout]    --> src/optimizer/join_reorder.rs:486:9
[INFO] [stdout]     |
[INFO] [stdout] 486 |         conditions: &[JoinCondition],
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conditions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/optimizer/index_selection.rs:254:35
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn estimate_index_cost(&self, index: &BPlusTreeIndex, selectivity: f64) -> f64 {
[INFO] [stdout]     |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col_stats`
[INFO] [stdout]    --> src/optimizer/index_selection.rs:331:29
[INFO] [stdout]     |
[INFO] [stdout] 331 |                 if let Some(col_stats) = table_stats.get_column(column_name) {
[INFO] [stdout]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/optimizer/index_selection.rs:347:44
[INFO] [stdout]     |
[INFO] [stdout] 347 |             Expression::Binary { left, op, right } => {
[INFO] [stdout]     |                                            ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `alias`
[INFO] [stdout]    --> src/optimizer/subquery.rs:114:51
[INFO] [stdout]     |
[INFO] [stdout] 114 |             if let SelectColumn::Expression(expr, alias) = col {
[INFO] [stdout]     |                                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_alias`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/optimizer/subquery.rs:610:9
[INFO] [stdout]     |
[INFO] [stdout] 610 |     let mut analyzer = SubqueryAnalyzer::new();
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/concurrency/mvcc.rs:130:17
[INFO] [stdout]     |
[INFO] [stdout] 130 |             let mut new_node = Owned::new(VersionNode::new(version.clone()));
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lock`
[INFO] [stdout]    --> src/concurrency/optimistic_lock.rs:322:13
[INFO] [stdout]     |
[INFO] [stdout] 322 |         let lock = self.get_or_create_lock(&key);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_lock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]    --> src/concurrency/optimistic_lock.rs:473:13
[INFO] [stdout]     |
[INFO] [stdout] 473 |         let version = self.lock_manager.acquire_read_lock(tx_id, key.clone())?;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `snapshot`
[INFO] [stdout]    --> src/concurrency/optimistic_lock.rs:479:17
[INFO] [stdout]     |
[INFO] [stdout] 479 |             let snapshot = &tx.snapshot;
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_snapshot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left_bbox`
[INFO] [stdout]    --> src/rtree/mod.rs:201:13
[INFO] [stdout]     |
[INFO] [stdout] 201 |         let left_bbox = Self::compute_bbox(&left_entries);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_left_bbox`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left_bbox`
[INFO] [stdout]    --> src/rtree/mod.rs:222:13
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let left_bbox = Self::compute_bbox(&left_entries);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_left_bbox`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `request_time` is never read
[INFO] [stdout]    --> src/pager/prefetch.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout]  99 | struct PrefetchRequest {
[INFO] [stdout]     |        --------------- field in this struct
[INFO] [stdout] 100 |     page_id: PageId,
[INFO] [stdout] 101 |     request_time: Instant,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PrefetchRequest` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrefetchResult` is never constructed
[INFO] [stdout]    --> src/pager/prefetch.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | struct PrefetchResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `latency_history` is never read
[INFO] [stdout]    --> src/pager/prefetch.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub struct PagePrefetcher {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 146 |     latency_history: VecDeque<u64>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `adjust_window_size` is never used
[INFO] [stdout]    --> src/pager/prefetch.rs:292:8
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl PagePrefetcher {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 292 |     fn adjust_window_size(&mut self, latency_ms: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `view_schema_page` is never read
[INFO] [stdout]    --> src/storage/btree_database.rs:283:5
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub struct BtreeDatabase {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 283 |     view_schema_page: PageId, // Page for storing view metadata
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `commit_id` is never read
[INFO] [stdout]    --> src/storage/wal.rs:206:5
[INFO] [stdout]     |
[INFO] [stdout] 205 | struct PendingCommit {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] 206 |     commit_id: u64,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PendingCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `last_page_id` and `sequential_count` are never read
[INFO] [stdout]    --> src/storage/btree_cache.rs:202:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | struct AccessPattern {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout] 202 |     last_page_id: Option<PageId>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 203 |     sequential_count: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AccessPattern` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_pattern_track` is never read
[INFO] [stdout]    --> src/storage/btree_cache.rs:295:5
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub struct BtreeNodeCache {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 295 |     max_pattern_track: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evict_lru` is never used
[INFO] [stdout]    --> src/storage/btree_cache.rs:526:8
[INFO] [stdout]     |
[INFO] [stdout] 304 | impl BtreeNodeCache {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 526 |     fn evict_lru(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `build_key` and `key_is_null` are never used
[INFO] [stdout]    --> src/storage/foreign_key.rs:201:8
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl ForeignKeyChecker {
[INFO] [stdout]     | ---------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 201 |     fn build_key(record: &Record, columns: &[String]) -> Result<Vec<u8>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     fn key_is_null(key: &[u8]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `page_size` is never read
[INFO] [stdout]   --> src/storage/async_wal.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct AsyncWalWriter {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 73 |     page_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `page_size` is never read
[INFO] [stdout]   --> src/storage/async_wal.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 79 | struct WriterState {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 89 |     page_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse_select` is never used
[INFO] [stdout]   --> src/sql/parser.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl<'a> Parser<'a> {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn parse_select(&mut self) -> Result<Statement> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `commit_id` is never read
[INFO] [stdout]   --> src/transaction/manager.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct PendingTransaction {
[INFO] [stdout]    |        ------------------ field in this struct
[INFO] [stdout] 87 |     commit_id: u64,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PendingTransaction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_async` is never used
[INFO] [stdout]    --> src/transaction/manager.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | impl WalMode {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn is_async(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_parent` is never used
[INFO] [stdout]    --> src/index/btree.rs:395:4
[INFO] [stdout]     |
[INFO] [stdout] 395 | fn read_parent(page: &Page) -> PageId {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeDist` is never constructed
[INFO] [stdout]   --> src/index/hnsw.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct NodeDist {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pager` and `current_page` are never read
[INFO] [stdout]    --> src/index/pushdown.rs:238:5
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub struct IndexScanIterator<'a> {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 238 |     pager: &'a mut Pager,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 239 |     current_page: PageId,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Update` and `Delete` are never constructed
[INFO] [stdout]   --> src/executor/mod.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | enum TransactionLogEntry {
[INFO] [stdout]    |      ------------------- variants in this enum
[INFO] [stdout] 25 |     Insert { table: String, rowid: u64 },
[INFO] [stdout] 26 |     Update { table: String, rowid: u64, old_record: Record },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 27 |     Delete { table: String, old_record: Record },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TransactionLogEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `query_planner` is never read
[INFO] [stdout]   --> src/executor/mod.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct Executor {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     query_planner: QueryPlanner,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `optimizer` and `stats_collector` are never read
[INFO] [stdout]   --> src/executor/query_optimizer.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct ExecutorQueryOptimizer {
[INFO] [stdout]    |            ---------------------- fields in this struct
[INFO] [stdout] 32 |     optimizer: QueryOptimizer,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 33 |     stats_collector: StatsCollector,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cost_estimator` is never read
[INFO] [stdout]    --> src/optimizer/join_reorder.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub struct JoinReorderer {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 105 |     cost_estimator: CostEstimator,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `can_use_index` is never used
[INFO] [stdout]    --> src/optimizer/join_reorder.rs:543:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl JoinReorderer {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 543 |     fn can_use_index(&self, db: &BtreeDatabase, condition: &JoinCondition) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cost_estimator` is never read
[INFO] [stdout]   --> src/optimizer/index_selection.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct IndexSelector {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 78 |     cost_estimator: CostEstimator,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `running` and `bg_thread` are never read
[INFO] [stdout]   --> src/concurrency/gc.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct GarbageCollector {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 96 |     running: AtomicBool,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 97 |     /// Background thread handle
[INFO] [stdout] 98 |     bg_thread: Mutex<Option<std::thread::JoinHandle<()>>>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `mvcc` are never read
[INFO] [stdout]    --> src/concurrency/mvcc.rs:554:5
[INFO] [stdout]     |
[INFO] [stdout] 552 | pub struct LockFreeMvccTable<T: Clone> {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 553 |     /// Table name
[INFO] [stdout] 554 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 558 |     mvcc: Arc<MvccManager>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `storage` is never read
[INFO] [stdout]    --> src/concurrency/optimistic_lock.rs:449:5
[INFO] [stdout]     |
[INFO] [stdout] 443 | pub struct OptimisticMvccManager {
[INFO] [stdout]     |            --------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 449 |     storage: Arc<CowStorage<Vec<u8>>>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CACHE_LINE_SIZE` is never used
[INFO] [stdout]   --> src/concurrency/snapshot.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | const CACHE_LINE_SIZE: usize = 64;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/concurrency/snapshot.rs:251:5
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub struct LockFreeMvccTable {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 250 |     /// Table name
[INFO] [stdout] 251 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `min_entries` are never read
[INFO] [stdout]    --> src/rtree/mod.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct RtreeIndex {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 110 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     min_entries: usize,  // Minimum entries per node (except root)
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RtreeIndex` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 40.15s
[INFO] running `Command { std: "docker" "inspect" "dde143fca2d1c1a1068016711f2ddaad41ff62c3da6b705227fb5391af34ffba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "dde143fca2d1c1a1068016711f2ddaad41ff62c3da6b705227fb5391af34ffba" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling zerocopy-derive v0.8.42
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling sqllite-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stdout] warning: unused import: `PAGE_SIZE`
[INFO] [stdout]  --> src/pager/checksum.rs:9:32
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::pager::page::{Page, PAGE_SIZE};
[INFO] [stdout]   |                                ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::pager::header::DatabaseHeader`
[INFO] [stdout]   --> src/pager/checksum.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::pager::header::DatabaseHeader;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ForeignKeyChecker`
[INFO] [stdout]   --> src/storage/btree_database.rs:11:57
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::storage::foreign_key::{ForeignKeyConstraint, ForeignKeyChecker};
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/storage/prefix_page.rs:491:28
[INFO] [stdout]     |
[INFO] [stdout] 491 |             if total > 0 { (compressed * 100 / total) } else { 0 },
[INFO] [stdout]     |                            ^                        ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 491 -             if total > 0 { (compressed * 100 / total) } else { 0 },
[INFO] [stdout] 491 +             if total > 0 { compressed * 100 / total } else { 0 },
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Value`
[INFO] [stdout]  --> src/storage/mvcc_wrapper.rs:9:67
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::storage::{BtreeDatabase, Record, Result, StorageError, Value};
[INFO] [stdout]   |                                                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Expression`
[INFO] [stdout]   --> src/executor/plan_cache.rs:11:35
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::sql::ast::{SelectStmt, Expression};
[INFO] [stdout]    |                                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JoinType`, `Join`, and `SelectColumn`
[INFO] [stdout]  --> src/executor/query_optimizer.rs:9:57
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::sql::ast::{SelectStmt, Expression, BinaryOp, Join, JoinType, SelectColumn};
[INFO] [stdout]   |                                                         ^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CostEstimator`, `IndexSelector`, `JoinOrder`, `JoinReorderer`, and `StatsCatalog`
[INFO] [stdout]   --> src/executor/query_optimizer.rs:13:37
[INFO] [stdout]    |
[INFO] [stdout] 13 |     QueryOptimizer, StatsCollector, CostEstimator, JoinReorderer,
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 14 |     IndexSelector, StatsCatalog, JoinOrder
[INFO] [stdout]    |     ^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ColumnStats`, `PredicateType`, and `StatsCollector`
[INFO] [stdout]   --> src/optimizer/cost_model.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | use super::stats::{ColumnStats, TableStats, StatsCollector, PredicateType, StatsCatalog};
[INFO] [stdout]    |                    ^^^^^^^^^^^              ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Value`
[INFO] [stdout]   --> src/optimizer/join_reorder.rs:17:37
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::storage::{BtreeDatabase, Value};
[INFO] [stdout]    |                                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Join`
[INFO] [stdout]   --> src/optimizer/join_reorder.rs:18:23
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::sql::ast::{Join, Expression, BinaryOp};
[INFO] [stdout]    |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PlanCost`
[INFO] [stdout]   --> src/optimizer/join_reorder.rs:19:40
[INFO] [stdout]    |
[INFO] [stdout] 19 | use super::cost_model::{CostEstimator, PlanCost, JoinAlgorithm};
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PredicateType`, `StatsCatalog`, `StatsCollector`, and `TableStats`
[INFO] [stdout]   --> src/optimizer/join_reorder.rs:20:20
[INFO] [stdout]    |
[INFO] [stdout] 20 | use super::stats::{StatsCollector, PredicateType, StatsCatalog, TableStats};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Record` and `Value`
[INFO] [stdout]   --> src/optimizer/index_selection.rs:14:37
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::storage::{BtreeDatabase, Value, Record, BPlusTreeIndex};
[INFO] [stdout]    |                                     ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TableStats`
[INFO] [stdout]   --> src/optimizer/index_selection.rs:16:65
[INFO] [stdout]    |
[INFO] [stdout] 16 | use super::stats::{StatsCollector, PredicateType, StatsCatalog, TableStats};
[INFO] [stdout]    |                                                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PlanCost`
[INFO] [stdout]   --> src/optimizer/index_selection.rs:17:40
[INFO] [stdout]    |
[INFO] [stdout] 17 | use super::cost_model::{CostEstimator, PlanCost};
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/optimizer/index_selection.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AggregateFunc`, `JoinType`, and `Join`
[INFO] [stdout]   --> src/optimizer/subquery.rs:15:71
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::sql::ast::{Expression, BinaryOp, SelectStmt, SelectColumn, Join, JoinType, AggregateFunc, SubqueryExpr};
[INFO] [stdout]    |                                                                       ^^^^  ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Value`
[INFO] [stdout]   --> src/concurrency/snapshot.rs:24:30
[INFO] [stdout]    |
[INFO] [stdout] 24 | use crate::storage::{Record, Value};
[INFO] [stdout]    |                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `WindowFrameBound`, `WindowFrame`, and `WindowSpec`
[INFO] [stdout]  --> src/window/mod.rs:6:35
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::sql::ast::{WindowFunc, WindowSpec, WindowFrame, WindowFrameBound, OrderBy};
[INFO] [stdout]   |                                   ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::storage::Value`
[INFO] [stdout]  --> src/fts/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::storage::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]   --> src/storage/async_wal.rs:13:15
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::io::{Read, Seek, SeekFrom, Write};
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]   --> src/concurrency/mvcc.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::ops::Deref;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_page_id`
[INFO] [stdout]    --> src/pager/prefetch.rs:229:41
[INFO] [stdout]     |
[INFO] [stdout] 229 |     fn update_access_pattern(&mut self, current_page_id: PageId) {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_page_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pager/prefetch.rs:491:16
[INFO] [stdout]     |
[INFO] [stdout] 491 |     pub fn new(mut inner: Pager, config: PrefetchConfig) -> Self {
[INFO] [stdout]     |                ----^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> src/storage/btree_core.rs:90:26
[INFO] [stdout]    |
[INFO] [stdout] 90 |                     let (k, v) = page.get_record_at(mid)?;
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base`
[INFO] [stdout]    --> src/storage/prefix_compression.rs:238:14
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let (base, deltas) = Self::compress(values);
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_table`
[INFO] [stdout]   --> src/storage/foreign_key.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let parent_table = db.get_table(&fk.ref_table)
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/storage/foreign_key.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let mut results = Vec::new();
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/storage/foreign_key.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |         db: &BtreeDatabase,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fk`
[INFO] [stdout]    --> src/storage/foreign_key.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |         fk: &ForeignKeyConstraint,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_fk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_key`
[INFO] [stdout]    --> src/storage/foreign_key.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         parent_key: &[u8],
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `child_key`
[INFO] [stdout]    --> src/storage/foreign_key.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |         child_key: &[u8],
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_child_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record`
[INFO] [stdout]    --> src/storage/foreign_key.rs:201:18
[INFO] [stdout]     |
[INFO] [stdout] 201 |     fn build_key(record: &Record, columns: &[String]) -> Result<Vec<u8>> {
[INFO] [stdout]     |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/storage/foreign_key.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         db: &mut BtreeDatabase,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]    --> src/storage/foreign_key.rs:219:9
[INFO] [stdout]     |
[INFO] [stdout] 219 |         table: &str,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record_id`
[INFO] [stdout]    --> src/storage/foreign_key.rs:220:9
[INFO] [stdout]     |
[INFO] [stdout] 220 |         record_id: u64,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fk`
[INFO] [stdout]    --> src/storage/foreign_key.rs:221:9
[INFO] [stdout]     |
[INFO] [stdout] 221 |         fk: &ForeignKeyConstraint,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_fk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/storage/foreign_key.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 228 |         db: &mut BtreeDatabase,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]    --> src/storage/foreign_key.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |         table: &str,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record_id`
[INFO] [stdout]    --> src/storage/foreign_key.rs:230:9
[INFO] [stdout]     |
[INFO] [stdout] 230 |         record_id: u64,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fk`
[INFO] [stdout]    --> src/storage/foreign_key.rs:231:9
[INFO] [stdout]     |
[INFO] [stdout] 231 |         fk: &ForeignKeyConstraint,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_fk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/storage/foreign_key.rs:238:9
[INFO] [stdout]     |
[INFO] [stdout] 238 |         db: &mut BtreeDatabase,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]    --> src/storage/foreign_key.rs:239:9
[INFO] [stdout]     |
[INFO] [stdout] 239 |         table: &str,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record_id`
[INFO] [stdout]    --> src/storage/foreign_key.rs:240:9
[INFO] [stdout]     |
[INFO] [stdout] 240 |         record_id: u64,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fk`
[INFO] [stdout]    --> src/storage/foreign_key.rs:241:9
[INFO] [stdout]     |
[INFO] [stdout] 241 |         fk: &ForeignKeyConstraint,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_fk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_key`
[INFO] [stdout]    --> src/storage/foreign_key.rs:242:9
[INFO] [stdout]     |
[INFO] [stdout] 242 |         new_key: &[u8],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table_name`
[INFO] [stdout]    --> src/storage/foreign_key.rs:288:14
[INFO] [stdout]     |
[INFO] [stdout] 288 |         for (table_name, fk, op, record) in &self.pending {
[INFO] [stdout]     |              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_record`
[INFO] [stdout]    --> src/storage/foreign_key.rs:294:45
[INFO] [stdout]     |
[INFO] [stdout] 294 |                 FkCheckOp::Delete { record: parent_record } => {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pending_writes`
[INFO] [stdout]   --> src/storage/mvcc_wrapper.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let pending_writes = {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pending_writes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/sql/tokenizer.rs:242:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |             "JSON" => Token::Json,
[INFO] [stdout]     |             ------ matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 242 |             "JSON" => Token::Json,
[INFO] [stdout]     |             ^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/index/hnsw.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |         let offset = slot_index * NODE_SLOT_SIZE;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/index/pushdown.rs:211:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |         Expression::Binary { left, op, right } => {
[INFO] [stdout]     |         -------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 211 |         Expression::Binary { left, op: BinaryOp::Equal, right } => {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pager`
[INFO] [stdout]    --> src/index/pushdown.rs:267:23
[INFO] [stdout]     |
[INFO] [stdout] 267 |     fn load_page_keys(pager: &mut Pager, page_id: PageId) -> Result<Vec<(Value, Vec<u64>)>> {
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_pager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `page_id`
[INFO] [stdout]    --> src/index/pushdown.rs:267:42
[INFO] [stdout]     |
[INFO] [stdout] 267 |     fn load_page_keys(pager: &mut Pager, page_id: PageId) -> Result<Vec<(Value, Vec<u64>)>> {
[INFO] [stdout]     |                                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_page_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query`
[INFO] [stdout]    --> src/index/pushdown.rs:328:25
[INFO] [stdout]     |
[INFO] [stdout] 328 |     pub fn can_pushdown(query: &str, indexed_columns: &[String]) -> Option<(String, IndexFilter)> {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `indexed_columns`
[INFO] [stdout]    --> src/index/pushdown.rs:328:38
[INFO] [stdout]     |
[INFO] [stdout] 328 |     pub fn can_pushdown(query: &str, indexed_columns: &[String]) -> Option<(String, IndexFilter)> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_indexed_columns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/executor/phase5.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |         mut records: Vec<Record>,
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table_name`
[INFO] [stdout]    --> src/executor/phase5.rs:342:9
[INFO] [stdout]     |
[INFO] [stdout] 342 |         table_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `match_expr`
[INFO] [stdout]    --> src/executor/phase5.rs:343:9
[INFO] [stdout]     |
[INFO] [stdout] 343 |         match_expr: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_match_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table_name`
[INFO] [stdout]    --> src/executor/phase5.rs:351:9
[INFO] [stdout]     |
[INFO] [stdout] 351 |         table_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_x`
[INFO] [stdout]    --> src/executor/phase5.rs:352:9
[INFO] [stdout]     |
[INFO] [stdout] 352 |         min_x: f64,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_min_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_x`
[INFO] [stdout]    --> src/executor/phase5.rs:353:9
[INFO] [stdout]     |
[INFO] [stdout] 353 |         max_x: f64,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_max_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_y`
[INFO] [stdout]    --> src/executor/phase5.rs:354:9
[INFO] [stdout]     |
[INFO] [stdout] 354 |         min_y: f64,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_min_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_y`
[INFO] [stdout]    --> src/executor/phase5.rs:355:9
[INFO] [stdout]     |
[INFO] [stdout] 355 |         max_y: f64,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_max_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table_name`
[INFO] [stdout]    --> src/executor/phase5.rs:363:9
[INFO] [stdout]     |
[INFO] [stdout] 363 |         table_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/executor/phase5.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 364 |         x: f64,
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/executor/phase5.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 365 |         y: f64,
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/executor/phase5.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 366 |         k: usize,
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/executor/query_optimizer.rs:150:68
[INFO] [stdout]     |
[INFO] [stdout] 150 |             if let Expression::Binary { left, op: BinaryOp::Equal, right } = expr {
[INFO] [stdout]     |                                                                    ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]     --> src/executor/mod.rs:2180:42
[INFO] [stdout]      |
[INFO] [stdout] 2180 |                 SelectColumn::Expression(expr, Some(alias)) => {
[INFO] [stdout]      |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/executor/mod.rs:2436:13
[INFO] [stdout]      |
[INFO] [stdout] 2436 |         let mut merged_ctes = outer.ctes.clone();
[INFO] [stdout]      |             ----^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record`
[INFO] [stdout]    --> src/optimizer/stats.rs:525:62
[INFO] [stdout]     |
[INFO] [stdout] 525 |     pub fn update_stats_after_insert(stats: &mut TableStats, record: &Record) {
[INFO] [stdout]     |                                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `avg_row_size`
[INFO] [stdout]    --> src/optimizer/cost_model.rs:228:14
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let (avg_row_size, page_count) = if let Some(stats) = self.get_table_stats(table_name) {
[INFO] [stdout]     |              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_avg_row_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_count`
[INFO] [stdout]    --> src/optimizer/cost_model.rs:322:13
[INFO] [stdout]     |
[INFO] [stdout] 322 |         let row_count = self.get_row_estimate(table_name, db);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stats`
[INFO] [stdout]    --> src/optimizer/cost_model.rs:350:38
[INFO] [stdout]     |
[INFO] [stdout] 350 |         let range_rows = if let Some(stats) = self.get_table_stats(table_name) {
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `columns`
[INFO] [stdout]    --> src/optimizer/cost_model.rs:380:9
[INFO] [stdout]     |
[INFO] [stdout] 380 |         columns: &[crate::sql::ast::SelectColumn],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_columns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_count`
[INFO] [stdout]    --> src/optimizer/cost_model.rs:383:13
[INFO] [stdout]     |
[INFO] [stdout] 383 |         let row_count = self.get_row_estimate(table_name, db);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table_stats`
[INFO] [stdout]    --> src/optimizer/join_reorder.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 317 |         table_stats: &HashMap<String, JoinTableStats>,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/optimizer/join_reorder.rs:484:9
[INFO] [stdout]     |
[INFO] [stdout] 484 |         db: &BtreeDatabase,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conditions`
[INFO] [stdout]    --> src/optimizer/join_reorder.rs:486:9
[INFO] [stdout]     |
[INFO] [stdout] 486 |         conditions: &[JoinCondition],
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conditions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/optimizer/index_selection.rs:254:35
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn estimate_index_cost(&self, index: &BPlusTreeIndex, selectivity: f64) -> f64 {
[INFO] [stdout]     |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col_stats`
[INFO] [stdout]    --> src/optimizer/index_selection.rs:331:29
[INFO] [stdout]     |
[INFO] [stdout] 331 |                 if let Some(col_stats) = table_stats.get_column(column_name) {
[INFO] [stdout]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/optimizer/index_selection.rs:347:44
[INFO] [stdout]     |
[INFO] [stdout] 347 |             Expression::Binary { left, op, right } => {
[INFO] [stdout]     |                                            ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `alias`
[INFO] [stdout]    --> src/optimizer/subquery.rs:114:51
[INFO] [stdout]     |
[INFO] [stdout] 114 |             if let SelectColumn::Expression(expr, alias) = col {
[INFO] [stdout]     |                                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_alias`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/optimizer/subquery.rs:610:9
[INFO] [stdout]     |
[INFO] [stdout] 610 |     let mut analyzer = SubqueryAnalyzer::new();
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/concurrency/mvcc.rs:130:17
[INFO] [stdout]     |
[INFO] [stdout] 130 |             let mut new_node = Owned::new(VersionNode::new(version.clone()));
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lock`
[INFO] [stdout]    --> src/concurrency/optimistic_lock.rs:322:13
[INFO] [stdout]     |
[INFO] [stdout] 322 |         let lock = self.get_or_create_lock(&key);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_lock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]    --> src/concurrency/optimistic_lock.rs:473:13
[INFO] [stdout]     |
[INFO] [stdout] 473 |         let version = self.lock_manager.acquire_read_lock(tx_id, key.clone())?;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `snapshot`
[INFO] [stdout]    --> src/concurrency/optimistic_lock.rs:479:17
[INFO] [stdout]     |
[INFO] [stdout] 479 |             let snapshot = &tx.snapshot;
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_snapshot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left_bbox`
[INFO] [stdout]    --> src/rtree/mod.rs:201:13
[INFO] [stdout]     |
[INFO] [stdout] 201 |         let left_bbox = Self::compute_bbox(&left_entries);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_left_bbox`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left_bbox`
[INFO] [stdout]    --> src/rtree/mod.rs:222:13
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let left_bbox = Self::compute_bbox(&left_entries);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_left_bbox`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `request_time` is never read
[INFO] [stdout]    --> src/pager/prefetch.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout]  99 | struct PrefetchRequest {
[INFO] [stdout]     |        --------------- field in this struct
[INFO] [stdout] 100 |     page_id: PageId,
[INFO] [stdout] 101 |     request_time: Instant,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PrefetchRequest` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrefetchResult` is never constructed
[INFO] [stdout]    --> src/pager/prefetch.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | struct PrefetchResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `latency_history` is never read
[INFO] [stdout]    --> src/pager/prefetch.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub struct PagePrefetcher {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 146 |     latency_history: VecDeque<u64>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `adjust_window_size` is never used
[INFO] [stdout]    --> src/pager/prefetch.rs:292:8
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl PagePrefetcher {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 292 |     fn adjust_window_size(&mut self, latency_ms: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `view_schema_page` is never read
[INFO] [stdout]    --> src/storage/btree_database.rs:283:5
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub struct BtreeDatabase {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 283 |     view_schema_page: PageId, // Page for storing view metadata
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `commit_id` is never read
[INFO] [stdout]    --> src/storage/wal.rs:206:5
[INFO] [stdout]     |
[INFO] [stdout] 205 | struct PendingCommit {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] 206 |     commit_id: u64,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PendingCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `last_page_id` and `sequential_count` are never read
[INFO] [stdout]    --> src/storage/btree_cache.rs:202:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | struct AccessPattern {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout] 202 |     last_page_id: Option<PageId>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 203 |     sequential_count: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AccessPattern` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_pattern_track` is never read
[INFO] [stdout]    --> src/storage/btree_cache.rs:295:5
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub struct BtreeNodeCache {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 295 |     max_pattern_track: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evict_lru` is never used
[INFO] [stdout]    --> src/storage/btree_cache.rs:526:8
[INFO] [stdout]     |
[INFO] [stdout] 304 | impl BtreeNodeCache {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 526 |     fn evict_lru(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `build_key` and `key_is_null` are never used
[INFO] [stdout]    --> src/storage/foreign_key.rs:201:8
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl ForeignKeyChecker {
[INFO] [stdout]     | ---------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 201 |     fn build_key(record: &Record, columns: &[String]) -> Result<Vec<u8>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     fn key_is_null(key: &[u8]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `page_size` is never read
[INFO] [stdout]   --> src/storage/async_wal.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct AsyncWalWriter {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 73 |     page_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `page_size` is never read
[INFO] [stdout]   --> src/storage/async_wal.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 79 | struct WriterState {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 89 |     page_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse_select` is never used
[INFO] [stdout]   --> src/sql/parser.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl<'a> Parser<'a> {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn parse_select(&mut self) -> Result<Statement> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `commit_id` is never read
[INFO] [stdout]   --> src/transaction/manager.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct PendingTransaction {
[INFO] [stdout]    |        ------------------ field in this struct
[INFO] [stdout] 87 |     commit_id: u64,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PendingTransaction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_async` is never used
[INFO] [stdout]    --> src/transaction/manager.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | impl WalMode {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn is_async(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_parent` is never used
[INFO] [stdout]    --> src/index/btree.rs:395:4
[INFO] [stdout]     |
[INFO] [stdout] 395 | fn read_parent(page: &Page) -> PageId {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeDist` is never constructed
[INFO] [stdout]   --> src/index/hnsw.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct NodeDist {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pager` and `current_page` are never read
[INFO] [stdout]    --> src/index/pushdown.rs:238:5
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub struct IndexScanIterator<'a> {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 238 |     pager: &'a mut Pager,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 239 |     current_page: PageId,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Update` and `Delete` are never constructed
[INFO] [stdout]   --> src/executor/mod.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | enum TransactionLogEntry {
[INFO] [stdout]    |      ------------------- variants in this enum
[INFO] [stdout] 25 |     Insert { table: String, rowid: u64 },
[INFO] [stdout] 26 |     Update { table: String, rowid: u64, old_record: Record },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 27 |     Delete { table: String, old_record: Record },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TransactionLogEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `query_planner` is never read
[INFO] [stdout]   --> src/executor/mod.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct Executor {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     query_planner: QueryPlanner,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `optimizer` and `stats_collector` are never read
[INFO] [stdout]   --> src/executor/query_optimizer.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct ExecutorQueryOptimizer {
[INFO] [stdout]    |            ---------------------- fields in this struct
[INFO] [stdout] 32 |     optimizer: QueryOptimizer,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 33 |     stats_collector: StatsCollector,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cost_estimator` is never read
[INFO] [stdout]    --> src/optimizer/join_reorder.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub struct JoinReorderer {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 105 |     cost_estimator: CostEstimator,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `can_use_index` is never used
[INFO] [stdout]    --> src/optimizer/join_reorder.rs:543:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl JoinReorderer {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 543 |     fn can_use_index(&self, db: &BtreeDatabase, condition: &JoinCondition) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cost_estimator` is never read
[INFO] [stdout]   --> src/optimizer/index_selection.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct IndexSelector {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 78 |     cost_estimator: CostEstimator,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `running` and `bg_thread` are never read
[INFO] [stdout]   --> src/concurrency/gc.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct GarbageCollector {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 96 |     running: AtomicBool,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 97 |     /// Background thread handle
[INFO] [stdout] 98 |     bg_thread: Mutex<Option<std::thread::JoinHandle<()>>>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `mvcc` are never read
[INFO] [stdout]    --> src/concurrency/mvcc.rs:554:5
[INFO] [stdout]     |
[INFO] [stdout] 552 | pub struct LockFreeMvccTable<T: Clone> {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 553 |     /// Table name
[INFO] [stdout] 554 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 558 |     mvcc: Arc<MvccManager>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `storage` is never read
[INFO] [stdout]    --> src/concurrency/optimistic_lock.rs:449:5
[INFO] [stdout]     |
[INFO] [stdout] 443 | pub struct OptimisticMvccManager {
[INFO] [stdout]     |            --------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 449 |     storage: Arc<CowStorage<Vec<u8>>>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CACHE_LINE_SIZE` is never used
[INFO] [stdout]   --> src/concurrency/snapshot.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | const CACHE_LINE_SIZE: usize = 64;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/concurrency/snapshot.rs:251:5
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub struct LockFreeMvccTable {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 250 |     /// Table name
[INFO] [stdout] 251 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `min_entries` are never read
[INFO] [stdout]    --> src/rtree/mod.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct RtreeIndex {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 110 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     min_entries: usize,  // Minimum entries per node (except root)
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RtreeIndex` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::NamedTempFile`
[INFO] [stdout]    --> src/pager/prefetch.rs:696:9
[INFO] [stdout]     |
[INFO] [stdout] 696 |     use tempfile::NamedTempFile;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PAGE_SIZE`
[INFO] [stdout]  --> src/pager/checksum.rs:9:32
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::pager::page::{Page, PAGE_SIZE};
[INFO] [stdout]   |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::pager::header::DatabaseHeader`
[INFO] [stdout]   --> src/pager/checksum.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::pager::header::DatabaseHeader;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]     --> src/storage/btree_core.rs:1321:21
[INFO] [stdout]      |
[INFO] [stdout] 1321 |     use std::time::{Duration, Instant};
[INFO] [stdout]      |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ForeignKeyChecker`
[INFO] [stdout]   --> src/storage/btree_database.rs:11:57
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::storage::foreign_key::{ForeignKeyConstraint, ForeignKeyChecker};
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/storage/prefix_page.rs:491:28
[INFO] [stdout]     |
[INFO] [stdout] 491 |             if total > 0 { (compressed * 100 / total) } else { 0 },
[INFO] [stdout]     |                            ^                        ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 491 -             if total > 0 { (compressed * 100 / total) } else { 0 },
[INFO] [stdout] 491 +             if total > 0 { compressed * 100 / total } else { 0 },
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Expression`
[INFO] [stdout]   --> src/executor/plan_cache.rs:11:35
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::sql::ast::{SelectStmt, Expression};
[INFO] [stdout]    |                                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ColumnDef` and `DataType`
[INFO] [stdout]    --> src/executor/plan_cache.rs:358:41
[INFO] [stdout]     |
[INFO] [stdout] 358 |     use crate::sql::ast::{SelectColumn, ColumnDef, DataType};
[INFO] [stdout]     |                                         ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JoinType`, `Join`, and `SelectColumn`
[INFO] [stdout]  --> src/executor/query_optimizer.rs:9:57
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::sql::ast::{SelectStmt, Expression, BinaryOp, Join, JoinType, SelectColumn};
[INFO] [stdout]   |                                                         ^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CostEstimator`, `IndexSelector`, `JoinOrder`, `JoinReorderer`, and `StatsCatalog`
[INFO] [stdout]   --> src/executor/query_optimizer.rs:13:37
[INFO] [stdout]    |
[INFO] [stdout] 13 |     QueryOptimizer, StatsCollector, CostEstimator, JoinReorderer,
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 14 |     IndexSelector, StatsCatalog, JoinOrder
[INFO] [stdout]    |     ^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ColumnStats`, `PredicateType`, and `StatsCollector`
[INFO] [stdout]   --> src/optimizer/cost_model.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | use super::stats::{ColumnStats, TableStats, StatsCollector, PredicateType, StatsCatalog};
[INFO] [stdout]    |                    ^^^^^^^^^^^              ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Value`
[INFO] [stdout]   --> src/optimizer/join_reorder.rs:17:37
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::storage::{BtreeDatabase, Value};
[INFO] [stdout]    |                                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Join`
[INFO] [stdout]   --> src/optimizer/join_reorder.rs:18:23
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::sql::ast::{Join, Expression, BinaryOp};
[INFO] [stdout]    |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PlanCost`
[INFO] [stdout]   --> src/optimizer/join_reorder.rs:19:40
[INFO] [stdout]    |
[INFO] [stdout] 19 | use super::cost_model::{CostEstimator, PlanCost, JoinAlgorithm};
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PredicateType`, `StatsCatalog`, `StatsCollector`, and `TableStats`
[INFO] [stdout]   --> src/optimizer/join_reorder.rs:20:20
[INFO] [stdout]    |
[INFO] [stdout] 20 | use super::stats::{StatsCollector, PredicateType, StatsCatalog, TableStats};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Value`
[INFO] [stdout]   --> src/optimizer/index_selection.rs:14:37
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::storage::{BtreeDatabase, Value, Record, BPlusTreeIndex};
[INFO] [stdout]    |                                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TableStats`
[INFO] [stdout]   --> src/optimizer/index_selection.rs:16:65
[INFO] [stdout]    |
[INFO] [stdout] 16 | use super::stats::{StatsCollector, PredicateType, StatsCatalog, TableStats};
[INFO] [stdout]    |                                                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PlanCost`
[INFO] [stdout]   --> src/optimizer/index_selection.rs:17:40
[INFO] [stdout]    |
[INFO] [stdout] 17 | use super::cost_model::{CostEstimator, PlanCost};
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/optimizer/index_selection.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AggregateFunc`, `JoinType`, and `Join`
[INFO] [stdout]   --> src/optimizer/subquery.rs:15:71
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::sql::ast::{Expression, BinaryOp, SelectStmt, SelectColumn, Join, JoinType, AggregateFunc, SubqueryExpr};
[INFO] [stdout]    |                                                                       ^^^^  ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `WindowFrameBound`, `WindowFrame`, and `WindowSpec`
[INFO] [stdout]  --> src/window/mod.rs:6:35
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::sql::ast::{WindowFunc, WindowSpec, WindowFrame, WindowFrameBound, OrderBy};
[INFO] [stdout]   |                                   ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::storage::Value`
[INFO] [stdout]  --> src/fts/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::storage::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: out of range hex escape
[INFO] [stdout]   --> tests/string_boundary_tests.rs:86:10
[INFO] [stdout]    |
[INFO] [stdout] 86 |         "\x80",         // Extended
[INFO] [stdout]    |          ^^^^ must be a character in the range [\x00-\x7f]
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you want to write a byte literal, use `b'\x80'`
[INFO] [stdout]    = help: if you want to write a Unicode character, use `'\u{80}'`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: out of range hex escape
[INFO] [stdout]   --> tests/string_boundary_tests.rs:87:10
[INFO] [stdout]    |
[INFO] [stdout] 87 |         "\xFF",         // Max byte
[INFO] [stdout]    |          ^^^^ must be a character in the range [\x00-\x7f]
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you want to write a byte literal, use `b'\xFF'`
[INFO] [stdout]    = help: if you want to write a Unicode character, use `'\u{FF}'`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Snapshot`, `Transaction`, and `TxId`
[INFO] [stdout]   --> tests/concurrent_mvcc_test.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     Snapshot, Transaction, TxId,
[INFO] [stdout]    |     ^^^^^^^^  ^^^^^^^^^^^  ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqllite_rust::sql::ast::*`
[INFO] [stdout]  --> tests/executor_boundary_tests.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use sqllite_rust::sql::ast::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/transaction_tests.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut tm = TransactionManager::new_sync(&path, 4096).unwrap();
[INFO] [stdout]    |             ----^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `:`, `@`, or `|`, found keyword `in`
[INFO] [stdout]   --> tests/property/storage_props.rs:28:38
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn record_serde_roundtrip(values in prop::collection::vec(value_strategy(), 0..20)) {
[INFO] [stdout]    |                                      ^^ expected one of `:`, `@`, or `|`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: an inner attribute is not permitted in this context
[INFO] [stdout]   --> tests/property/storage_props.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | /     #![proptest_config(ProptestConfig {
[INFO] [stdout] 19 | |         cases: 1000,
[INFO] [stdout] 20 | |         failure_persistence: Some(Box::new(
[INFO] [stdout] 21 | |             FileFailurePersistence::WithSource("regressions")
[INFO] [stdout] 22 | |         )),
[INFO] [stdout] 23 | |         .. ProptestConfig::default()
[INFO] [stdout] 24 | |     })]
[INFO] [stdout]    | |_______^
[INFO] [stdout] ...
[INFO] [stdout] 28 | /     fn record_serde_roundtrip(values in prop::collection::vec(value_strategy(), 0..20)) {
[INFO] [stdout] 29 | |         let record = Record::new(values.clone());
[INFO] [stdout] 30 | |         let bytes = record.serialize();
[INFO] [stdout] 31 | |         let deserialized = Record::deserialize(&bytes).unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 37 | |     }
[INFO] [stdout]    | |_____- the inner attribute doesn't annotate this function
[INFO] [stdout]    |
[INFO] [stdout]    = note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found keyword `fn`
[INFO] [stdout]    --> tests/property/storage_props.rs:28:5
[INFO] [stdout]     |
[INFO] [stdout]  28 |     fn record_serde_roundtrip(values in prop::collection::vec(value_strategy(), 0..20)) {
[INFO] [stdout]     |     ^^ expected expression
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/proptest-1.11.0/src/sugar.rs:225:6
[INFO] [stdout]     |
[INFO] [stdout] 225 |     ($config:expr, |($($parm:pat in $strategy:expr),+ $(,)?)| $body:expr) => { {
[INFO] [stdout]     |      ------------ while parsing argument for this `expr` macro fragment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `:`, `@`, or `|`, found keyword `in`
[INFO] [stdout]   --> tests/property/sql_props.rs:19:35
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn simple_select_parses(table in "[a-zA-Z_][a-zA-Z0-9_]{0,30}") {
[INFO] [stdout]    |                                   ^^ expected one of `:`, `@`, or `|`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: an inner attribute is not permitted in this context
[INFO] [stdout]   --> tests/property/sql_props.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | /     #![proptest_config(ProptestConfig {
[INFO] [stdout] 10 | |         cases: 1000,
[INFO] [stdout] 11 | |         failure_persistence: Some(Box::new(
[INFO] [stdout] 12 | |             FileFailurePersistence::WithSource("regressions")
[INFO] [stdout] 13 | |         )),
[INFO] [stdout] 14 | |         .. ProptestConfig::default()
[INFO] [stdout] 15 | |     })]
[INFO] [stdout]    | |_______^
[INFO] [stdout] ...
[INFO] [stdout] 19 | /     fn simple_select_parses(table in "[a-zA-Z_][a-zA-Z0-9_]{0,30}") {
[INFO] [stdout] 20 | |         let sql = format!("SELECT * FROM {}", table);
[INFO] [stdout] 21 | |         let _ = Parser::parse(&sql);
[INFO] [stdout] 22 | |         prop_assert!(true);
[INFO] [stdout] 23 | |     }
[INFO] [stdout]    | |_____- the inner attribute doesn't annotate this function
[INFO] [stdout]    |
[INFO] [stdout]    = note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found keyword `fn`
[INFO] [stdout]    --> tests/property/sql_props.rs:19:5
[INFO] [stdout]     |
[INFO] [stdout]  19 |     fn simple_select_parses(table in "[a-zA-Z_][a-zA-Z0-9_]{0,30}") {
[INFO] [stdout]     |     ^^ expected expression
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/proptest-1.11.0/src/sugar.rs:225:6
[INFO] [stdout]     |
[INFO] [stdout] 225 |     ($config:expr, |($($parm:pat in $strategy:expr),+ $(,)?)| $body:expr) => { {
[INFO] [stdout]     |      ------------ while parsing argument for this `expr` macro fragment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: an inner attribute is not permitted in this context
[INFO] [stdout]    --> tests/property/transaction_props.rs:392:5
[INFO] [stdout]     |
[INFO] [stdout] 392 | /     #![proptest_config(ProptestConfig {
[INFO] [stdout] 393 | |         cases: 300,
[INFO] [stdout] 394 | |         .. ProptestConfig::default()
[INFO] [stdout] 395 | |     })]
[INFO] [stdout]     | |_______^
[INFO] [stdout] ...
[INFO] [stdout] 399 | /     fn empty_transaction_correctness() {
[INFO] [stdout] 400 | |         let ops: Vec<i64> = vec![];
[INFO] [stdout] 401 | |         let result: i64 = ops.iter().sum();
[INFO] [stdout] 402 | |         prop_assert_eq!(result, 0);
[INFO] [stdout] 403 | |     }
[INFO] [stdout]     | |_____- the inner attribute doesn't annotate this function
[INFO] [stdout]     |
[INFO] [stdout]     = note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found keyword `fn`
[INFO] [stdout]    --> tests/property/transaction_props.rs:399:5
[INFO] [stdout]     |
[INFO] [stdout] 399 |     fn empty_transaction_correctness() {
[INFO] [stdout]     |     ^^ expected expression
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/proptest-1.11.0/src/sugar.rs:225:6
[INFO] [stdout]     |
[INFO] [stdout] 225 |     ($config:expr, |($($parm:pat in $strategy:expr),+ $(,)?)| $body:expr) => { {
[INFO] [stdout]     |      ------------ while parsing argument for this `expr` macro fragment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: an inner attribute is not permitted in this context
[INFO] [stdout]    --> tests/property/mvcc_props.rs:346:5
[INFO] [stdout]     |
[INFO] [stdout] 346 | /     #![proptest_config(ProptestConfig {
[INFO] [stdout] 347 | |         cases: 300,
[INFO] [stdout] 348 | |         .. ProptestConfig::default()
[INFO] [stdout] 349 | |     })]
[INFO] [stdout]     | |_______^
[INFO] [stdout] ...
[INFO] [stdout] 353 | /     fn empty_version_chain_handling() {
[INFO] [stdout] 354 | |         let versions: Vec<(u64, i64)> = vec![];
[INFO] [stdout] 355 | |         prop_assert!(versions.is_empty());
[INFO] [stdout] 356 | |     }
[INFO] [stdout]     | |_____- the inner attribute doesn't annotate this function
[INFO] [stdout]     |
[INFO] [stdout]     = note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found keyword `fn`
[INFO] [stdout]    --> tests/property/mvcc_props.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn empty_version_chain_handling() {
[INFO] [stdout]     |     ^^ expected expression
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/proptest-1.11.0/src/sugar.rs:225:6
[INFO] [stdout]     |
[INFO] [stdout] 225 |     ($config:expr, |($($parm:pat in $strategy:expr),+ $(,)?)| $body:expr) => { {
[INFO] [stdout]     |      ------------ while parsing argument for this `expr` macro fragment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PageId`
[INFO] [stdout]  --> tests/pager_boundary_tests.rs:5:39
[INFO] [stdout]   |
[INFO] [stdout] 5 | use sqllite_rust::pager::page::{Page, PageId};
[INFO] [stdout]   |                                       ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `:`, `@`, or `|`, found keyword `in`
[INFO] [stdout]    --> tests/property/record_props.rs:258:35
[INFO] [stdout]     |
[INFO] [stdout] 258 |     fn extreme_integer_handling(n in prop::sample::select(&[i64::MIN, i64::MAX, -1, 0, 1])) {
[INFO] [stdout]     |                                   ^^ expected one of `:`, `@`, or `|`
[INFO] [stdout]     |
[INFO] [stdout] help: there is a keyword `fn` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 258 |     fn extreme_integer_handling(fn in prop::sample::select(&[i64::MIN, i64::MAX, -1, 0, 1])) {
[INFO] [stdout]     |                                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: an inner attribute is not permitted in this context
[INFO] [stdout]    --> tests/property/record_props.rs:251:5
[INFO] [stdout]     |
[INFO] [stdout] 251 | /     #![proptest_config(ProptestConfig {
[INFO] [stdout] 252 | |         cases: 500,
[INFO] [stdout] 253 | |         .. ProptestConfig::default()
[INFO] [stdout] 254 | |     })]
[INFO] [stdout]     | |_______^
[INFO] [stdout] ...
[INFO] [stdout] 258 | /     fn extreme_integer_handling(n in prop::sample::select(&[i64::MIN, i64::MAX, -1, 0, 1])) {
[INFO] [stdout] 259 | |         let v = Value::Integer(n);
[INFO] [stdout] 260 | |         let bytes = v.serialize();
[INFO] [stdout] 261 | |         let restored = Value::deserialize(&bytes).unwrap();
[INFO] [stdout] 262 | |         prop_assert_eq!(v, restored);
[INFO] [stdout] 263 | |     }
[INFO] [stdout]     | |_____- the inner attribute doesn't annotate this function
[INFO] [stdout]     |
[INFO] [stdout]     = note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found keyword `fn`
[INFO] [stdout]    --> tests/property/record_props.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 258 |     fn extreme_integer_handling(n in prop::sample::select(&[i64::MIN, i64::MAX, -1, 0, 1])) {
[INFO] [stdout]     |     ^^ expected expression
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/proptest-1.11.0/src/sugar.rs:225:6
[INFO] [stdout]     |
[INFO] [stdout] 225 |     ($config:expr, |($($parm:pat in $strategy:expr),+ $(,)?)| $body:expr) => { {
[INFO] [stdout]     |      ------------ while parsing argument for this `expr` macro fragment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `:`, `@`, or `|`, found keyword `in`
[INFO] [stdout]    --> tests/property/pager_props.rs:167:20
[INFO] [stdout]     |
[INFO] [stdout] 167 |         start_page in 1u32..1000,
[INFO] [stdout]     |                    ^^ expected one of `:`, `@`, or `|`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `:`, `@`, or `|`, found keyword `in`
[INFO] [stdout]    --> tests/property/pager_props.rs:168:15
[INFO] [stdout]     |
[INFO] [stdout] 168 |         count in 1usize..20
[INFO] [stdout]     |               ^^ expected one of `:`, `@`, or `|`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: an inner attribute is not permitted in this context
[INFO] [stdout]    --> tests/property/pager_props.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 | /     #![proptest_config(ProptestConfig {
[INFO] [stdout] 160 | |         cases: 500,
[INFO] [stdout] 161 | |         .. ProptestConfig::default()
[INFO] [stdout] 162 | |     })]
[INFO] [stdout]     | |_______^
[INFO] [stdout] ...
[INFO] [stdout] 166 | /     fn prefetch_page_order(
[INFO] [stdout] 167 | |         start_page in 1u32..1000,
[INFO] [stdout] 168 | |         count in 1usize..20
[INFO] [stdout] 169 | |     ) {
[INFO] [stdout] ...   |
[INFO] [stdout] 176 | |     }
[INFO] [stdout]     | |_____- the inner attribute doesn't annotate this function
[INFO] [stdout]     |
[INFO] [stdout]     = note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found keyword `fn`
[INFO] [stdout]    --> tests/property/pager_props.rs:166:5
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn prefetch_page_order(
[INFO] [stdout]     |     ^^ expected expression
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/proptest-1.11.0/src/sugar.rs:225:6
[INFO] [stdout]     |
[INFO] [stdout] 225 |     ($config:expr, |($($parm:pat in $strategy:expr),+ $(,)?)| $body:expr) => { {
[INFO] [stdout]     |      ------------ while parsing argument for this `expr` macro fragment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: an inner attribute is not permitted in this context
[INFO] [stdout]    --> tests/property/pager_props.rs:301:5
[INFO] [stdout]     |
[INFO] [stdout] 301 | /     #![proptest_config(ProptestConfig {
[INFO] [stdout] 302 | |         cases: 300,
[INFO] [stdout] 303 | |         .. ProptestConfig::default()
[INFO] [stdout] 304 | |     })]
[INFO] [stdout]     | |_______^
[INFO] [stdout] ...
[INFO] [stdout] 308 | /     fn zero_page_number_handling() {
[INFO] [stdout] 309 | |         let page_num = 0u32;
[INFO] [stdout] 310 | |         // 页面号0通常表示无效页面
[INFO] [stdout] 311 | |         prop_assert_eq!(page_num, 0);
[INFO] [stdout] 312 | |     }
[INFO] [stdout]     | |_____- the inner attribute doesn't annotate this function
[INFO] [stdout]     |
[INFO] [stdout]     = note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found keyword `fn`
[INFO] [stdout]    --> tests/property/pager_props.rs:308:5
[INFO] [stdout]     |
[INFO] [stdout] 308 |     fn zero_page_number_handling() {
[INFO] [stdout]     |     ^^ expected expression
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/proptest-1.11.0/src/sugar.rs:225:6
[INFO] [stdout]     |
[INFO] [stdout] 225 |     ($config:expr, |($($parm:pat in $strategy:expr),+ $(,)?)| $body:expr) => { {
[INFO] [stdout]     |      ------------ while parsing argument for this `expr` macro fragment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: an inner attribute is not permitted in this context
[INFO] [stdout]    --> tests/property/index_props.rs:335:5
[INFO] [stdout]     |
[INFO] [stdout] 335 | /     #![proptest_config(ProptestConfig {
[INFO] [stdout] 336 | |         cases: 300,
[INFO] [stdout] 337 | |         .. ProptestConfig::default()
[INFO] [stdout] 338 | |     })]
[INFO] [stdout]     | |_______^
[INFO] [stdout] ...
[INFO] [stdout] 342 | /     fn empty_key_index_handling() {
[INFO] [stdout] 343 | |         let index = BPlusTreeIndex::new(
[INFO] [stdout] 344 | |             "idx".to_string(),
[INFO] [stdout] 345 | |             "table".to_string(),
[INFO] [stdout] ...   |
[INFO] [stdout] 351 | |         prop_assert!(result.is_none());
[INFO] [stdout] 352 | |     }
[INFO] [stdout]     | |_____- the inner attribute doesn't annotate this function
[INFO] [stdout]     |
[INFO] [stdout]     = note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found keyword `fn`
[INFO] [stdout]    --> tests/property/index_props.rs:342:5
[INFO] [stdout]     |
[INFO] [stdout] 342 |     fn empty_key_index_handling() {
[INFO] [stdout]     |     ^^ expected expression
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/proptest-1.11.0/src/sugar.rs:225:6
[INFO] [stdout]     |
[INFO] [stdout] 225 |     ($config:expr, |($($parm:pat in $strategy:expr),+ $(,)?)| $body:expr) => { {
[INFO] [stdout]     |      ------------ while parsing argument for this `expr` macro fragment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MvccStats` and `MvccTable`
[INFO] [stdout]   --> tests/isolation_level_test.rs:16:79
[INFO] [stdout]    |
[INFO] [stdout] 16 | use sqllite_rust::concurrency::{MvccDatabase, MvccManager, LockFreeMvccTable, MvccTable, MvccStats};
[INFO] [stdout]    |                                                                               ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sqllite-rust` (test "string_boundary_tests") due to 2 previous errors
[INFO] [stdout] error[E0433]: cannot find module or crate `base64` in this scope
[INFO] [stdout]   --> tests/serde_boundary_tests.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     use base64::{Engine as _, engine::general_purpose};
[INFO] [stdout]    |         ^^^^^^ use of unresolved module or unlinked crate `base64`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `base64`, use `cargo add base64` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0432]: unresolved import `base64`
[INFO] [stdout]   --> tests/serde_boundary_tests.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     use base64::{Engine as _, engine::general_purpose};
[INFO] [stdout]    |         ^^^^^^ use of unresolved module or unlinked crate `base64`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `base64`, use `cargo add base64` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: an inner attribute is not permitted in this context
[INFO] [stdout]    --> tests/property/optimizer_props.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 | /     #![proptest_config(ProptestConfig {
[INFO] [stdout] 311 | |         cases: 300,
[INFO] [stdout] 312 | |         .. ProptestConfig::default()
[INFO] [stdout] 313 | |     })]
[INFO] [stdout]     | |_______^
[INFO] [stdout] ...
[INFO] [stdout] 317 | /     fn empty_table_query_optimization() {
[INFO] [stdout] 318 | |         let rows = 0usize;
[INFO] [stdout] 319 | |         let cost = 0.0f64;
[INFO] [stdout] ...   |
[INFO] [stdout] 323 | |         prop_assert_eq!(cost, 0.0);
[INFO] [stdout] 324 | |     }
[INFO] [stdout]     | |_____- the inner attribute doesn't annotate this function
[INFO] [stdout]     |
[INFO] [stdout]     = note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found keyword `fn`
[INFO] [stdout]    --> tests/property/optimizer_props.rs:317:5
[INFO] [stdout]     |
[INFO] [stdout] 317 |     fn empty_table_query_optimization() {
[INFO] [stdout]     |     ^^ expected expression
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/proptest-1.11.0/src/sugar.rs:225:6
[INFO] [stdout]     |
[INFO] [stdout] 225 |     ($config:expr, |($($parm:pat in $strategy:expr),+ $(,)?)| $body:expr) => { {
[INFO] [stdout]     |      ------------ while parsing argument for this `expr` macro fragment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: an inner attribute is not permitted in this context
[INFO] [stdout]    --> tests/property/concurrency_props.rs:342:5
[INFO] [stdout]     |
[INFO] [stdout] 342 | /     #![proptest_config(ProptestConfig {
[INFO] [stdout] 343 | |         cases: 300,
[INFO] [stdout] 344 | |         .. ProptestConfig::default()
[INFO] [stdout] 345 | |     })]
[INFO] [stdout]     | |_______^
[INFO] [stdout] ...
[INFO] [stdout] 349 | /     fn single_thread_no_lock_overhead() {
[INFO] [stdout] 350 | |         // 单线程不需要锁
[INFO] [stdout] 351 | |         let threads = 1;
[INFO] [stdout] 352 | |         prop_assert_eq!(threads, 1);
[INFO] [stdout] 353 | |     }
[INFO] [stdout]     | |_____- the inner attribute doesn't annotate this function
[INFO] [stdout]     |
[INFO] [stdout]     = note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found keyword `fn`
[INFO] [stdout]    --> tests/property/concurrency_props.rs:349:5
[INFO] [stdout]     |
[INFO] [stdout] 349 |     fn single_thread_no_lock_overhead() {
[INFO] [stdout]     |     ^^ expected expression
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/proptest-1.11.0/src/sugar.rs:225:6
[INFO] [stdout]     |
[INFO] [stdout] 225 |     ($config:expr, |($($parm:pat in $strategy:expr),+ $(,)?)| $body:expr) => { {
[INFO] [stdout]     |      ------------ while parsing argument for this `expr` macro fragment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `snapshot`
[INFO] [stdout]   --> tests/concurrent_mvcc_test.rs:90:17
[INFO] [stdout]    |
[INFO] [stdout] 90 |             let snapshot = mvcc.get_snapshot(tx);
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_snapshot`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> tests/numeric_boundary_tests.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |     let b = i32::MAX;
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: incorrect NaN comparison, NaN cannot be directly compared to itself
[INFO] [stdout]    --> tests/numeric_boundary_tests.rs:298:13
[INFO] [stdout]     |
[INFO] [stdout] 298 |     assert!(f64::NAN != f64::NAN);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(invalid_nan_comparisons)]` on by default
[INFO] [stdout] help: use `f32::is_nan()` or `f64::is_nan()` instead
[INFO] [stdout]     |
[INFO] [stdout] 298 -     assert!(f64::NAN != f64::NAN);
[INFO] [stdout] 298 +     assert!(!f64::NAN.is_nan());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proptest::test_runner::FileFailurePersistence`
[INFO] [stdout]  --> tests/property/storage_props.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use proptest::test_runner::FileFailurePersistence;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proptest::test_runner::FileFailurePersistence`
[INFO] [stdout]  --> tests/property/sql_props.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use proptest::test_runner::FileFailurePersistence;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqllite_rust::sql::tokenizer::Tokenizer`
[INFO] [stdout]  --> tests/property/sql_props.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sqllite_rust::sql::tokenizer::Tokenizer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sqllite-rust` (test "serde_boundary_tests") due to 2 previous errors
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> tests/integration_dml_tests.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |     let result = executor.execute_sql("INSERT OR REPLACE INTO users VALUES (1, 'NewAlice', 1)");
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_first_value` is never used
[INFO] [stdout]   --> tests/integration_dml_tests.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn get_first_value(result: ExecuteResult, col_idx: usize) -> Option<Value> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&MvccVersion<std::string::String>>`
[INFO] [stdout]    --> tests/mvcc_boundary_tests.rs:706:5
[INFO] [stdout]     |
[INFO] [stdout] 706 |     assert_eq!(v1, v2);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     std::option::Option<&MvccVersion<std::string::String>>
[INFO] [stdout]     |     std::option::Option<&MvccVersion<std::string::String>>
[INFO] [stdout]     |
[INFO] [stdout] note: `MvccVersion<std::string::String>` does not implement `PartialEq`
[INFO] [stdout]    --> src/concurrency/mvcc.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | pub struct Version<T: Clone> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `MvccVersion<std::string::String>` is defined in another crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/index_tests.rs:339:9
[INFO] [stdout]     |
[INFO] [stdout] 339 |     let mut pager = Pager::open(&path).unwrap();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pager`
[INFO] [stdout]    --> tests/index_tests.rs:339:9
[INFO] [stdout]     |
[INFO] [stdout] 339 |     let mut pager = Pager::open(&path).unwrap();
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pager`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reader_id`
[INFO] [stdout]    --> tests/isolation_level_test.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 287 |     for reader_id in 0..10 {
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reader_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `violations`
[INFO] [stdout]    --> tests/isolation_level_test.rs:292:13
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let violations = consistency_violations.clone();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_violations`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:246:31
[INFO] [stdout]     |
[INFO] [stdout] 246 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:249:31
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:261:31
[INFO] [stdout]     |
[INFO] [stdout] 261 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `snapshot1`
[INFO] [stdout]    --> tests/mvcc_boundary_tests.rs:437:9
[INFO] [stdout]     |
[INFO] [stdout] 437 |     let snapshot1 = manager.get_snapshot(tx1);
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_snapshot1`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `snapshot2`
[INFO] [stdout]    --> tests/mvcc_boundary_tests.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |     let snapshot2 = manager.get_snapshot(tx2);
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_snapshot2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:275:31
[INFO] [stdout]     |
[INFO] [stdout] 275 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `v.data` which is behind a shared reference
[INFO] [stdout]    --> tests/mvcc_boundary_tests.rs:752:32
[INFO] [stdout]     |
[INFO] [stdout] 752 |     assert_eq!(version.map(|v| v.data), Some("v0".to_string()));
[INFO] [stdout]     |                                ^^^^^^ move occurs because `v.data` has type `std::string::String`, which does not implement the `Copy` trait
[INFO] [stdout]     |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 752 |     assert_eq!(version.map(|v| v.data.clone()), Some("v0".to_string()));
[INFO] [stdout]     |                                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:285:35
[INFO] [stdout]     |
[INFO] [stdout] 285 |             let _ = Parser::parse(&sql);
[INFO] [stdout]     |                     ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0369, E0507.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0369`.
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:297:31
[INFO] [stdout]     |
[INFO] [stdout] 297 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sqllite-rust` (test "mvcc_boundary_tests") due to 2 previous errors; 2 warnings emitted
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:300:31
[INFO] [stdout]     |
[INFO] [stdout] 300 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:309:31
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:317:31
[INFO] [stdout]     |
[INFO] [stdout] 317 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:325:31
[INFO] [stdout]     |
[INFO] [stdout] 325 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:333:31
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:341:31
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:349:31
[INFO] [stdout]     |
[INFO] [stdout] 349 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:352:31
[INFO] [stdout]     |
[INFO] [stdout] 352 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:361:31
[INFO] [stdout]     |
[INFO] [stdout] 361 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:369:31
[INFO] [stdout]     |
[INFO] [stdout] 369 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:377:31
[INFO] [stdout]     |
[INFO] [stdout] 377 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:385:31
[INFO] [stdout]     |
[INFO] [stdout] 385 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:393:31
[INFO] [stdout]     |
[INFO] [stdout] 393 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:404:31
[INFO] [stdout]     |
[INFO] [stdout] 404 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:412:31
[INFO] [stdout]     |
[INFO] [stdout] 412 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:420:31
[INFO] [stdout]     |
[INFO] [stdout] 420 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/property/sql_props.rs:428:31
[INFO] [stdout]     |
[INFO] [stdout] 428 |         let _ = Parser::parse(&sql);
[INFO] [stdout]     |                 ------------- ^^^^ types differ in mutability
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Parser<'_>`
[INFO] [stdout]                        found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/sql/parser.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  25 |     pub fn parse(&mut self) -> Result<Statement> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0689]: can't call method `is_power_of_two` on ambiguous numeric type `{integer}`
[INFO] [stdout]   --> tests/property/pager_props.rs:28:27
[INFO] [stdout]    |
[INFO] [stdout] 25 |         size in prop::sample::select(&[512, 1024, 2048, 4096, 8192, 16384])
[INFO] [stdout]    |         ---- you must specify a type for this binding, like `i32`
[INFO] [stdout] ...
[INFO] [stdout] 28 |         prop_assert!(size.is_power_of_two());
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `before`
[INFO] [stdout]    --> tests/property/transaction_props.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let before = constraint(initial);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_before`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `write_ts`
[INFO] [stdout]   --> tests/property/mvcc_props.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |         write_ts in any::<u64>(),
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_write_ts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `read_ts`
[INFO] [stdout]   --> tests/property/mvcc_props.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |         read_ts in any::<u64>()
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_read_ts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reader_count`
[INFO] [stdout]    --> tests/property/mvcc_props.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout] 200 |         reader_count in 2usize..100
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reader_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uncommitted_ts`
[INFO] [stdout]    --> tests/property/mvcc_props.rs:328:9
[INFO] [stdout]     |
[INFO] [stdout] 328 |         uncommitted_ts in any::<u64>(),
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uncommitted_ts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other_read_ts`
[INFO] [stdout]    --> tests/property/mvcc_props.rs:329:9
[INFO] [stdout]     |
[INFO] [stdout] 329 |         other_read_ts in any::<u64>(),
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_other_read_ts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `page_id`
[INFO] [stdout]   --> tests/property/pager_props.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |         page_id in 1u32..1000,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_page_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `selectivity`
[INFO] [stdout]   --> tests/property/optimizer_props.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         selectivity in 0.01f64..1.0
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selectivity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu_tuple_cost`
[INFO] [stdout]    --> tests/property/optimizer_props.rs:181:9
[INFO] [stdout]     |
[INFO] [stdout] 181 |         cpu_tuple_cost in 0.0001f64..0.1,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cpu_tuple_cost`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu_index_tuple_cost`
[INFO] [stdout]    --> tests/property/optimizer_props.rs:182:9
[INFO] [stdout]     |
[INFO] [stdout] 182 |         cpu_index_tuple_cost in 0.0001f64..0.1
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cpu_index_tuple_cost`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `work_mem`
[INFO] [stdout]    --> tests/property/optimizer_props.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         work_mem in 1usize..1000 // MB
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_work_mem`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sort_width`
[INFO] [stdout]    --> tests/property/optimizer_props.rs:226:9
[INFO] [stdout]     |
[INFO] [stdout] 226 |         sort_width in 10usize..1000
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sort_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]   --> src/storage/async_wal.rs:13:15
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::io::{Read, Seek, SeekFrom, Write};
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]   --> src/concurrency/mvcc.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::ops::Deref;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> tests/property/concurrency_props.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |             (3, 1) | (1, 3) | (3, 3) | (1, 1) => true,
[INFO] [stdout]    |             --------------------------------- matches all the relevant values
[INFO] [stdout] 29 |             (3, 3) => true,
[INFO] [stdout]    |             ^^^^^^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> tests/property/concurrency_props.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |             (3, 1) | (1, 3) | (3, 3) | (1, 1) => true,
[INFO] [stdout]    |             --------------------------------- matches all the relevant values
[INFO] [stdout] 41 |             (3, 3) => true,
[INFO] [stdout]    |             ^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_page_id`
[INFO] [stdout]    --> src/pager/prefetch.rs:229:41
[INFO] [stdout]     |
[INFO] [stdout] 229 |     fn update_access_pattern(&mut self, current_page_id: PageId) {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_page_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pager/prefetch.rs:491:16
[INFO] [stdout]     |
[INFO] [stdout] 491 |     pub fn new(mut inner: Pager, config: PrefetchConfig) -> Self {
[INFO] [stdout]     |                ----^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `readers`
[INFO] [stdout]    --> tests/property/concurrency_props.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |         readers in 1usize..100
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_readers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> tests/property/concurrency_props.rs:216:13
[INFO] [stdout]     |
[INFO] [stdout] 210 |             (0, 0) => true, // 无锁
[INFO] [stdout]     |             ------ matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 216 |             (0, 0) => true,
[INFO] [stdout]     |             ^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid`
[INFO] [stdout]    --> tests/property/concurrency_props.rs:209:13
[INFO] [stdout]     |
[INFO] [stdout] 209 |         let valid = match (table_lock, row_lock) {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_valid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current`
[INFO] [stdout]    --> tests/property/concurrency_props.rs:286:13
[INFO] [stdout]     |
[INFO] [stdout] 286 |         let current = initial + released - acquired;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0689.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sqllite-rust` (test "property_tests") due to 49 previous errors; 21 warnings emitted
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> src/storage/btree_core.rs:90:26
[INFO] [stdout]    |
[INFO] [stdout] 90 |                     let (k, v) = page.get_record_at(mid)?;
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/storage/btree_core.rs:1174:13
[INFO] [stdout]      |
[INFO] [stdout] 1174 |         let mut btree = create_test_btree(&mut pager);
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base`
[INFO] [stdout]    --> src/storage/prefix_compression.rs:238:14
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let (base, deltas) = Self::compress(values);
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_table`
[INFO] [stdout]   --> src/storage/foreign_key.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let parent_table = db.get_table(&fk.ref_table)
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/storage/foreign_key.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let mut results = Vec::new();
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/storage/foreign_key.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |         db: &BtreeDatabase,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fk`
[INFO] [stdout]    --> src/storage/foreign_key.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |         fk: &ForeignKeyConstraint,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_fk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_key`
[INFO] [stdout]    --> src/storage/foreign_key.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         parent_key: &[u8],
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `child_key`
[INFO] [stdout]    --> src/storage/foreign_key.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |         child_key: &[u8],
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_child_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record`
[INFO] [stdout]    --> src/storage/foreign_key.rs:201:18
[INFO] [stdout]     |
[INFO] [stdout] 201 |     fn build_key(record: &Record, columns: &[String]) -> Result<Vec<u8>> {
[INFO] [stdout]     |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/storage/foreign_key.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         db: &mut BtreeDatabase,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]    --> src/storage/foreign_key.rs:219:9
[INFO] [stdout]     |
[INFO] [stdout] 219 |         table: &str,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record_id`
[INFO] [stdout]    --> src/storage/foreign_key.rs:220:9
[INFO] [stdout]     |
[INFO] [stdout] 220 |         record_id: u64,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fk`
[INFO] [stdout]    --> src/storage/foreign_key.rs:221:9
[INFO] [stdout]     |
[INFO] [stdout] 221 |         fk: &ForeignKeyConstraint,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_fk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/storage/foreign_key.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 228 |         db: &mut BtreeDatabase,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]    --> src/storage/foreign_key.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |         table: &str,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record_id`
[INFO] [stdout]    --> src/storage/foreign_key.rs:230:9
[INFO] [stdout]     |
[INFO] [stdout] 230 |         record_id: u64,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fk`
[INFO] [stdout]    --> src/storage/foreign_key.rs:231:9
[INFO] [stdout]     |
[INFO] [stdout] 231 |         fk: &ForeignKeyConstraint,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_fk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/storage/foreign_key.rs:238:9
[INFO] [stdout]     |
[INFO] [stdout] 238 |         db: &mut BtreeDatabase,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]    --> src/storage/foreign_key.rs:239:9
[INFO] [stdout]     |
[INFO] [stdout] 239 |         table: &str,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record_id`
[INFO] [stdout]    --> src/storage/foreign_key.rs:240:9
[INFO] [stdout]     |
[INFO] [stdout] 240 |         record_id: u64,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_record_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fk`
[INFO] [stdout]    --> src/storage/foreign_key.rs:241:9
[INFO] [stdout]     |
[INFO] [stdout] 241 |         fk: &ForeignKeyConstraint,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_fk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_key`
[INFO] [stdout]    --> src/storage/foreign_key.rs:242:9
[INFO] [stdout]     |
[INFO] [stdout] 242 |         new_key: &[u8],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table_name`
[INFO] [stdout]    --> src/storage/foreign_key.rs:288:14
[INFO] [stdout]     |
[INFO] [stdout] 288 |         for (table_name, fk, op, record) in &self.pending {
[INFO] [stdout]     |              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_record`
[INFO] [stdout]    --> src/storage/foreign_key.rs:294:45
[INFO] [stdout]     |
[INFO] [stdout] 294 |                 FkCheckOp::Delete { record: parent_record } => {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pending_writes`
[INFO] [stdout]   --> src/storage/mvcc_wrapper.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let pending_writes = {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pending_writes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/sql/tokenizer.rs:242:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |             "JSON" => Token::Json,
[INFO] [stdout]     |             ------ matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 242 |             "JSON" => Token::Json,
[INFO] [stdout]     |             ^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/index/hnsw.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |         let offset = slot_index * NODE_SLOT_SIZE;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/index/pushdown.rs:211:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |         Expression::Binary { left, op, right } => {
[INFO] [stdout]     |         -------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 211 |         Expression::Binary { left, op: BinaryOp::Equal, right } => {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pager`
[INFO] [stdout]    --> src/index/pushdown.rs:267:23
[INFO] [stdout]     |
[INFO] [stdout] 267 |     fn load_page_keys(pager: &mut Pager, page_id: PageId) -> Result<Vec<(Value, Vec<u64>)>> {
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_pager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `page_id`
[INFO] [stdout]    --> src/index/pushdown.rs:267:42
[INFO] [stdout]     |
[INFO] [stdout] 267 |     fn load_page_keys(pager: &mut Pager, page_id: PageId) -> Result<Vec<(Value, Vec<u64>)>> {
[INFO] [stdout]     |                                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_page_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query`
[INFO] [stdout]    --> src/index/pushdown.rs:328:25
[INFO] [stdout]     |
[INFO] [stdout] 328 |     pub fn can_pushdown(query: &str, indexed_columns: &[String]) -> Option<(String, IndexFilter)> {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `indexed_columns`
[INFO] [stdout]    --> src/index/pushdown.rs:328:38
[INFO] [stdout]     |
[INFO] [stdout] 328 |     pub fn can_pushdown(query: &str, indexed_columns: &[String]) -> Option<(String, IndexFilter)> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_indexed_columns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/executor/phase5.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |         mut records: Vec<Record>,
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table_name`
[INFO] [stdout]    --> src/executor/phase5.rs:342:9
[INFO] [stdout]     |
[INFO] [stdout] 342 |         table_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `match_expr`
[INFO] [stdout]    --> src/executor/phase5.rs:343:9
[INFO] [stdout]     |
[INFO] [stdout] 343 |         match_expr: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_match_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table_name`
[INFO] [stdout]    --> src/executor/phase5.rs:351:9
[INFO] [stdout]     |
[INFO] [stdout] 351 |         table_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_x`
[INFO] [stdout]    --> src/executor/phase5.rs:352:9
[INFO] [stdout]     |
[INFO] [stdout] 352 |         min_x: f64,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_min_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_x`
[INFO] [stdout]    --> src/executor/phase5.rs:353:9
[INFO] [stdout]     |
[INFO] [stdout] 353 |         max_x: f64,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_max_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_y`
[INFO] [stdout]    --> src/executor/phase5.rs:354:9
[INFO] [stdout]     |
[INFO] [stdout] 354 |         min_y: f64,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_min_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_y`
[INFO] [stdout]    --> src/executor/phase5.rs:355:9
[INFO] [stdout]     |
[INFO] [stdout] 355 |         max_y: f64,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_max_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table_name`
[INFO] [stdout]    --> src/executor/phase5.rs:363:9
[INFO] [stdout]     |
[INFO] [stdout] 363 |         table_name: &str,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/executor/phase5.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 364 |         x: f64,
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/executor/phase5.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 365 |         y: f64,
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/executor/phase5.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 366 |         k: usize,
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/executor/query_optimizer.rs:150:68
[INFO] [stdout]     |
[INFO] [stdout] 150 |             if let Expression::Binary { left, op: BinaryOp::Equal, right } = expr {
[INFO] [stdout]     |                                                                    ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/executor/query_optimizer.rs:364:26
[INFO] [stdout]     |
[INFO] [stdout] 364 |         let (table, col, val) = result.unwrap();
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]     --> src/executor/mod.rs:2180:42
[INFO] [stdout]      |
[INFO] [stdout] 2180 |                 SelectColumn::Expression(expr, Some(alias)) => {
[INFO] [stdout]      |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/executor/mod.rs:2436:13
[INFO] [stdout]      |
[INFO] [stdout] 2436 |         let mut merged_ctes = outer.ctes.clone();
[INFO] [stdout]      |             ----^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prepared2`
[INFO] [stdout]     --> src/executor/mod.rs:4407:13
[INFO] [stdout]      |
[INFO] [stdout] 4407 |         let prepared2 = executor.prepare("SELECT * FROM users WHERE id = ?").unwrap();
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prepared2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record`
[INFO] [stdout]    --> src/optimizer/stats.rs:525:62
[INFO] [stdout]     |
[INFO] [stdout] 525 |     pub fn update_stats_after_insert(stats: &mut TableStats, record: &Record) {
[INFO] [stdout]     |                                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `avg_row_size`
[INFO] [stdout]    --> src/optimizer/cost_model.rs:228:14
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let (avg_row_size, page_count) = if let Some(stats) = self.get_table_stats(table_name) {
[INFO] [stdout]     |              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_avg_row_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_count`
[INFO] [stdout]    --> src/optimizer/cost_model.rs:322:13
[INFO] [stdout]     |
[INFO] [stdout] 322 |         let row_count = self.get_row_estimate(table_name, db);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stats`
[INFO] [stdout]    --> src/optimizer/cost_model.rs:350:38
[INFO] [stdout]     |
[INFO] [stdout] 350 |         let range_rows = if let Some(stats) = self.get_table_stats(table_name) {
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `columns`
[INFO] [stdout]    --> src/optimizer/cost_model.rs:380:9
[INFO] [stdout]     |
[INFO] [stdout] 380 |         columns: &[crate::sql::ast::SelectColumn],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_columns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_count`
[INFO] [stdout]    --> src/optimizer/cost_model.rs:383:13
[INFO] [stdout]     |
[INFO] [stdout] 383 |         let row_count = self.get_row_estimate(table_name, db);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table_stats`
[INFO] [stdout]    --> src/optimizer/join_reorder.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 317 |         table_stats: &HashMap<String, JoinTableStats>,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/optimizer/join_reorder.rs:484:9
[INFO] [stdout]     |
[INFO] [stdout] 484 |         db: &BtreeDatabase,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conditions`
[INFO] [stdout]    --> src/optimizer/join_reorder.rs:486:9
[INFO] [stdout]     |
[INFO] [stdout] 486 |         conditions: &[JoinCondition],
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conditions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/optimizer/join_reorder.rs:774:13
[INFO] [stdout]     |
[INFO] [stdout] 774 |         let db = create_test_db();
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/optimizer/index_selection.rs:254:35
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn estimate_index_cost(&self, index: &BPlusTreeIndex, selectivity: f64) -> f64 {
[INFO] [stdout]     |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col_stats`
[INFO] [stdout]    --> src/optimizer/index_selection.rs:331:29
[INFO] [stdout]     |
[INFO] [stdout] 331 |                 if let Some(col_stats) = table_stats.get_column(column_name) {
[INFO] [stdout]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/optimizer/index_selection.rs:347:44
[INFO] [stdout]     |
[INFO] [stdout] 347 |             Expression::Binary { left, op, right } => {
[INFO] [stdout]     |                                            ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `alias`
[INFO] [stdout]    --> src/optimizer/subquery.rs:114:51
[INFO] [stdout]     |
[INFO] [stdout] 114 |             if let SelectColumn::Expression(expr, alias) = col {
[INFO] [stdout]     |                                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_alias`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/optimizer/subquery.rs:610:9
[INFO] [stdout]     |
[INFO] [stdout] 610 |     let mut analyzer = SubqueryAnalyzer::new();
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/concurrency/mvcc.rs:130:17
[INFO] [stdout]     |
[INFO] [stdout] 130 |             let mut new_node = Owned::new(VersionNode::new(version.clone()));
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lock`
[INFO] [stdout]    --> src/concurrency/optimistic_lock.rs:322:13
[INFO] [stdout]     |
[INFO] [stdout] 322 |         let lock = self.get_or_create_lock(&key);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_lock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]    --> src/concurrency/optimistic_lock.rs:473:13
[INFO] [stdout]     |
[INFO] [stdout] 473 |         let version = self.lock_manager.acquire_read_lock(tx_id, key.clone())?;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `snapshot`
[INFO] [stdout]    --> src/concurrency/optimistic_lock.rs:479:17
[INFO] [stdout]     |
[INFO] [stdout] 479 |             let snapshot = &tx.snapshot;
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_snapshot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]    --> src/concurrency/optimistic_lock.rs:680:13
[INFO] [stdout]     |
[INFO] [stdout] 680 |         let version = manager.acquire_read_lock(1, b"key1".to_vec()).unwrap();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left_bbox`
[INFO] [stdout]    --> src/rtree/mod.rs:201:13
[INFO] [stdout]     |
[INFO] [stdout] 201 |         let left_bbox = Self::compute_bbox(&left_entries);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_left_bbox`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left_bbox`
[INFO] [stdout]    --> src/rtree/mod.rs:222:13
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let left_bbox = Self::compute_bbox(&left_entries);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_left_bbox`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `request_time` is never read
[INFO] [stdout]    --> src/pager/prefetch.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout]  99 | struct PrefetchRequest {
[INFO] [stdout]     |        --------------- field in this struct
[INFO] [stdout] 100 |     page_id: PageId,
[INFO] [stdout] 101 |     request_time: Instant,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PrefetchRequest` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrefetchResult` is never constructed
[INFO] [stdout]    --> src/pager/prefetch.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | struct PrefetchResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `latency_history` is never read
[INFO] [stdout]    --> src/pager/prefetch.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub struct PagePrefetcher {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 146 |     latency_history: VecDeque<u64>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `adjust_window_size` is never used
[INFO] [stdout]    --> src/pager/prefetch.rs:292:8
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl PagePrefetcher {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 292 |     fn adjust_window_size(&mut self, latency_ms: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `view_schema_page` is never read
[INFO] [stdout]    --> src/storage/btree_database.rs:283:5
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub struct BtreeDatabase {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 283 |     view_schema_page: PageId, // Page for storing view metadata
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `commit_id` is never read
[INFO] [stdout]    --> src/storage/wal.rs:206:5
[INFO] [stdout]     |
[INFO] [stdout] 205 | struct PendingCommit {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] 206 |     commit_id: u64,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PendingCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `last_page_id` and `sequential_count` are never read
[INFO] [stdout]    --> src/storage/btree_cache.rs:202:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | struct AccessPattern {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout] 202 |     last_page_id: Option<PageId>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 203 |     sequential_count: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AccessPattern` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_pattern_track` is never read
[INFO] [stdout]    --> src/storage/btree_cache.rs:295:5
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub struct BtreeNodeCache {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 295 |     max_pattern_track: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evict_lru` is never used
[INFO] [stdout]    --> src/storage/btree_cache.rs:526:8
[INFO] [stdout]     |
[INFO] [stdout] 304 | impl BtreeNodeCache {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 526 |     fn evict_lru(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `build_key` and `key_is_null` are never used
[INFO] [stdout]    --> src/storage/foreign_key.rs:201:8
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl ForeignKeyChecker {
[INFO] [stdout]     | ---------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 201 |     fn build_key(record: &Record, columns: &[String]) -> Result<Vec<u8>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     fn key_is_null(key: &[u8]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `page_size` is never read
[INFO] [stdout]   --> src/storage/async_wal.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct AsyncWalWriter {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 73 |     page_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `page_size` is never read
[INFO] [stdout]   --> src/storage/async_wal.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 79 | struct WriterState {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 89 |     page_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse_select` is never used
[INFO] [stdout]   --> src/sql/parser.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl<'a> Parser<'a> {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn parse_select(&mut self) -> Result<Statement> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `commit_id` is never read
[INFO] [stdout]   --> src/transaction/manager.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct PendingTransaction {
[INFO] [stdout]    |        ------------------ field in this struct
[INFO] [stdout] 87 |     commit_id: u64,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PendingTransaction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_async` is never used
[INFO] [stdout]    --> src/transaction/manager.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | impl WalMode {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn is_async(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_parent` is never used
[INFO] [stdout]    --> src/index/btree.rs:395:4
[INFO] [stdout]     |
[INFO] [stdout] 395 | fn read_parent(page: &Page) -> PageId {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeDist` is never constructed
[INFO] [stdout]   --> src/index/hnsw.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct NodeDist {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pager` and `current_page` are never read
[INFO] [stdout]    --> src/index/pushdown.rs:238:5
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub struct IndexScanIterator<'a> {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 238 |     pager: &'a mut Pager,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 239 |     current_page: PageId,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Update` and `Delete` are never constructed
[INFO] [stdout]   --> src/executor/mod.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | enum TransactionLogEntry {
[INFO] [stdout]    |      ------------------- variants in this enum
[INFO] [stdout] 25 |     Insert { table: String, rowid: u64 },
[INFO] [stdout] 26 |     Update { table: String, rowid: u64, old_record: Record },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 27 |     Delete { table: String, old_record: Record },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TransactionLogEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `query_planner` is never read
[INFO] [stdout]   --> src/executor/mod.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct Executor {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     query_planner: QueryPlanner,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `optimizer` and `stats_collector` are never read
[INFO] [stdout]   --> src/executor/query_optimizer.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct ExecutorQueryOptimizer {
[INFO] [stdout]    |            ---------------------- fields in this struct
[INFO] [stdout] 32 |     optimizer: QueryOptimizer,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 33 |     stats_collector: StatsCollector,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_db` is never used
[INFO] [stdout]    --> src/executor/query_optimizer.rs:280:8
[INFO] [stdout]     |
[INFO] [stdout] 280 |     fn create_test_db() -> BtreeDatabase {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cost_estimator` is never read
[INFO] [stdout]    --> src/optimizer/join_reorder.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub struct JoinReorderer {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 105 |     cost_estimator: CostEstimator,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `can_use_index` is never used
[INFO] [stdout]    --> src/optimizer/join_reorder.rs:543:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl JoinReorderer {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 543 |     fn can_use_index(&self, db: &BtreeDatabase, condition: &JoinCondition) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cost_estimator` is never read
[INFO] [stdout]   --> src/optimizer/index_selection.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct IndexSelector {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 78 |     cost_estimator: CostEstimator,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `running` and `bg_thread` are never read
[INFO] [stdout]   --> src/concurrency/gc.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct GarbageCollector {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 96 |     running: AtomicBool,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 97 |     /// Background thread handle
[INFO] [stdout] 98 |     bg_thread: Mutex<Option<std::thread::JoinHandle<()>>>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `mvcc` are never read
[INFO] [stdout]    --> src/concurrency/mvcc.rs:554:5
[INFO] [stdout]     |
[INFO] [stdout] 552 | pub struct LockFreeMvccTable<T: Clone> {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 553 |     /// Table name
[INFO] [stdout] 554 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 558 |     mvcc: Arc<MvccManager>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `storage` is never read
[INFO] [stdout]    --> src/concurrency/optimistic_lock.rs:449:5
[INFO] [stdout]     |
[INFO] [stdout] 443 | pub struct OptimisticMvccManager {
[INFO] [stdout]     |            --------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 449 |     storage: Arc<CowStorage<Vec<u8>>>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CACHE_LINE_SIZE` is never used
[INFO] [stdout]   --> src/concurrency/snapshot.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | const CACHE_LINE_SIZE: usize = 64;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/concurrency/snapshot.rs:251:5
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub struct LockFreeMvccTable {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 250 |     /// Table name
[INFO] [stdout] 251 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `min_entries` are never read
[INFO] [stdout]    --> src/rtree/mod.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct RtreeIndex {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 110 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     min_entries: usize,  // Minimum entries per node (except root)
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RtreeIndex` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]     --> src/executor/mod.rs:4291:25
[INFO] [stdout]      |
[INFO] [stdout] 4291 |                 assert!(query_result.rows.len() >= 0);
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]     --> src/executor/mod.rs:4534:17
[INFO] [stdout]      |
[INFO] [stdout] 4534 |         assert!(combined.plan.hit_count >= 0);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "dde143fca2d1c1a1068016711f2ddaad41ff62c3da6b705227fb5391af34ffba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dde143fca2d1c1a1068016711f2ddaad41ff62c3da6b705227fb5391af34ffba", kill_on_drop: false }`
[INFO] [stdout] dde143fca2d1c1a1068016711f2ddaad41ff62c3da6b705227fb5391af34ffba
