[INFO] cloning repository https://github.com/parisxmas/ForgeDB
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/parisxmas/ForgeDB" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fparisxmas%2FForgeDB", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fparisxmas%2FForgeDB'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d5b70b4af3e3b3abe42f75a32f46ec259b896216
[INFO] testing parisxmas/ForgeDB against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fparisxmas%2FForgeDB" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/parisxmas/ForgeDB
[INFO] finished tweaking git repo https://github.com/parisxmas/ForgeDB
[INFO] tweaked toml for git repo https://github.com/parisxmas/ForgeDB written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/parisxmas/ForgeDB on toolchain f9988fefd3add01f414f52b414308e7872622fee
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/parisxmas/ForgeDB 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" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded stacker v0.1.23
[INFO] [stderr]   Downloaded recursive v0.1.1
[INFO] [stderr]   Downloaded recursive-proc-macro-impl v0.1.1
[INFO] [stderr]   Downloaded cc v1.2.57
[INFO] [stderr]   Downloaded psm v0.1.30
[INFO] [stderr]   Downloaded sqlparser v0.61.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 82defc55e3150ba1acf9ad0e407798b82a9bc67033c6be78a338db8d3ca6ba10
[INFO] running `Command { std: "docker" "start" "-a" "82defc55e3150ba1acf9ad0e407798b82a9bc67033c6be78a338db8d3ca6ba10", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "82defc55e3150ba1acf9ad0e407798b82a9bc67033c6be78a338db8d3ca6ba10", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "82defc55e3150ba1acf9ad0e407798b82a9bc67033c6be78a338db8d3ca6ba10", kill_on_drop: false }`
[INFO] [stdout] 82defc55e3150ba1acf9ad0e407798b82a9bc67033c6be78a338db8d3ca6ba10
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fb87a46ac4f4f18f55bc7247dcdc6ee13338c1a639d59b9c640fd84ef7787d1e
[INFO] running `Command { std: "docker" "start" "-a" "fb87a46ac4f4f18f55bc7247dcdc6ee13338c1a639d59b9c640fd84ef7787d1e", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling stacker v0.1.23
[INFO] [stderr]    Compiling recursive-proc-macro-impl v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling ar_archive_writer v0.5.1
[INFO] [stderr]    Compiling psm v0.1.30
[INFO] [stderr]    Compiling recursive v0.1.1
[INFO] [stderr]    Compiling sqlparser v0.61.0
[INFO] [stderr]    Compiling forgedb v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/index/clustered.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::HashMap;
[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: `std::collections::HashMap`
[INFO] [stdout]  --> src/server/tds_protocol.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IsolationLevel`
[INFO] [stdout]   --> src/database.rs:21:72
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::txn::{TransactionManager, TxnContext, UndoLog, LockManager, IsolationLevel};
[INFO] [stdout]    |                                                                        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group_key`
[INFO] [stdout]     --> src/executor/aggregate.rs:1051:10
[INFO] [stdout]      |
[INFO] [stdout] 1051 |     for (group_key, accs) in &group_order {
[INFO] [stdout]      |          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_group_key`
[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/executor/create_index.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let mut btree = if columns.len() > 1 {
[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: `dummy_rid`
[INFO] [stdout]    --> src/executor/grace_hash_join.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let dummy_rid = RID { page_id: PageId(0), slot_id: 0 };
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dummy_rid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_heap`
[INFO] [stdout]    --> src/executor/insert.rs:222:37
[INFO] [stdout]     |
[INFO] [stdout] 222 | ...                   let parent_heap = crate::storage::heap_file::HeapFile::new(
[INFO] [stdout]     |                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_heap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/index/clustered.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     let n = leaf_num_keys(page) as usize;
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ver_off`
[INFO] [stdout]    --> src/server/tds_protocol.rs:281:13
[INFO] [stdout]     |
[INFO] [stdout] 281 |         let ver_off = data_offset; data_offset += 6;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ver_off`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enc_off`
[INFO] [stdout]    --> src/server/tds_protocol.rs:287:13
[INFO] [stdout]     |
[INFO] [stdout] 287 |         let enc_off = data_offset; data_offset += 1;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enc_off`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pkt_type`
[INFO] [stdout]    --> src/server/tds_protocol.rs:330:14
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let (pkt_type, payload) = self.read_packet()?;
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pkt_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/server/tds_protocol.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 |         for (idx, stmt_sql) in statements.iter().enumerate() {
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `upper`
[INFO] [stdout]    --> src/server/tds_protocol.rs:605:13
[INFO] [stdout]     |
[INFO] [stdout] 605 |         let upper = s.to_uppercase();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_upper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tuple/tuple.rs:414:13
[INFO] [stdout]     |
[INFO] [stdout] 414 |         let mut pos = bitmap_len;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/tuple/tuple.rs:414:13
[INFO] [stdout]     |
[INFO] [stdout] 414 |         let mut pos = bitmap_len;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/database.rs:311:17
[INFO] [stdout]     |
[INFO] [stdout] 311 |             let mut cursors = self.cursors.lock().unwrap();
[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/database.rs:487:37
[INFO] [stdout]     |
[INFO] [stdout] 487 |                         if let Some(mut full_log) = tm.take_undo_log(txn_id) {
[INFO] [stdout]     |                                     ----^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `upper`
[INFO] [stdout]     --> src/database.rs:1744:13
[INFO] [stdout]      |
[INFO] [stdout] 1744 |         let upper = text.to_uppercase();
[INFO] [stdout]      |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_upper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `value_eq` is never used
[INFO] [stdout]    --> src/executor/aggregate.rs:791:4
[INFO] [stdout]     |
[INFO] [stdout] 791 | fn value_eq(a: &Value, b: &Value) -> bool {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `distinct` is never read
[INFO] [stdout]    --> src/executor/aggregate.rs:928:36
[INFO] [stdout]     |
[INFO] [stdout] 928 |     Agg { func: String, arg: Expr, distinct: bool },
[INFO] [stdout]     |     --- field in this variant      ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StreamColDesc` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `send_result_set`, `build_column_definition`, and `find_column_index_by_name` are never used
[INFO] [stdout]    --> src/server/mysql_protocol.rs:385:8
[INFO] [stdout]     |
[INFO] [stdout] 184 | impl ConnectionHandler {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 385 |     fn send_result_set(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     fn build_column_definition(&self, col_name: &str, rows: &[Vec<Value>]) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 474 |     fn find_column_index_by_name(&self, _col_name: &str, _rows: &[Vec<Value>]) -> Option<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TDS_PRELOGIN` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const TDS_PRELOGIN: u8 = 18;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TDS_LOGIN7` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const TDS_LOGIN7: u8 = 16;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOKEN_INFO` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const TOKEN_INFO: u8 = 0xAB;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOKEN_DONEPROC` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const TOKEN_DONEPROC: u8 = 0xFE;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOKEN_DONEINPROC` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const TOKEN_DONEINPROC: u8 = 0xFF;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOKEN_ORDER` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const TOKEN_ORDER: u8 = 0xA9;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DONE_MORE` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:43:7
[INFO] [stdout]    |
[INFO] [stdout] 43 | const DONE_MORE: u16 = 0x0001;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TDS_TYPE_BIGVARCHAR` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const TDS_TYPE_BIGVARCHAR: u8 = 0xA7;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse_login7_database` is never used
[INFO] [stdout]    --> src/server/tds_protocol.rs:369:8
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl TdsConnection {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 369 |     fn parse_login7_database(payload: &[u8]) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pool_size` is never read
[INFO] [stdout]   --> src/storage/concurrent_bpm.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct ConcurrentBufferPool {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pool_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `columns_sql` is never read
[INFO] [stdout]   --> src/database.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct PartitionMeta {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     columns_sql: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PartitionMeta` 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: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]     --> src/sql/parser.rs:1349:32
[INFO] [stdout]      |
[INFO] [stdout] 1349 |                     for dup in &arg_list.duplicate_treatment {
[INFO] [stdout]      |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]      |
[INFO] [stdout] 1349 -                     for dup in &arg_list.duplicate_treatment {
[INFO] [stdout] 1349 +                     while let Some(dup) = &arg_list.duplicate_treatment {
[INFO] [stdout]      |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]      |
[INFO] [stdout] 1349 -                     for dup in &arg_list.duplicate_treatment {
[INFO] [stdout] 1349 +                     if let Some(dup) = &arg_list.duplicate_treatment {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 35.72s
[INFO] running `Command { std: "docker" "inspect" "fb87a46ac4f4f18f55bc7247dcdc6ee13338c1a639d59b9c640fd84ef7787d1e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fb87a46ac4f4f18f55bc7247dcdc6ee13338c1a639d59b9c640fd84ef7787d1e", kill_on_drop: false }`
[INFO] [stdout] fb87a46ac4f4f18f55bc7247dcdc6ee13338c1a639d59b9c640fd84ef7787d1e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 58b2af0c9f7072014f45fe78dccc511bb1cfd8a1a2f45757024f3926fe52fa84
[INFO] running `Command { std: "docker" "start" "-a" "58b2af0c9f7072014f45fe78dccc511bb1cfd8a1a2f45757024f3926fe52fa84", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/index/clustered.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::HashMap;
[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: `std::collections::HashMap`
[INFO] [stdout]  --> src/server/tds_protocol.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IsolationLevel`
[INFO] [stdout]   --> src/database.rs:21:72
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::txn::{TransactionManager, TxnContext, UndoLog, LockManager, IsolationLevel};
[INFO] [stdout]    |                                                                        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group_key`
[INFO] [stdout]     --> src/executor/aggregate.rs:1051:10
[INFO] [stdout]      |
[INFO] [stdout] 1051 |     for (group_key, accs) in &group_order {
[INFO] [stdout]      |          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_group_key`
[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/executor/create_index.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let mut btree = if columns.len() > 1 {
[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: `dummy_rid`
[INFO] [stdout]    --> src/executor/grace_hash_join.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let dummy_rid = RID { page_id: PageId(0), slot_id: 0 };
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dummy_rid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_heap`
[INFO] [stdout]    --> src/executor/insert.rs:222:37
[INFO] [stdout]     |
[INFO] [stdout] 222 | ...                   let parent_heap = crate::storage::heap_file::HeapFile::new(
[INFO] [stdout]     |                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_heap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/index/clustered.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     let n = leaf_num_keys(page) as usize;
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ver_off`
[INFO] [stdout]    --> src/server/tds_protocol.rs:281:13
[INFO] [stdout]     |
[INFO] [stdout] 281 |         let ver_off = data_offset; data_offset += 6;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ver_off`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enc_off`
[INFO] [stdout]    --> src/server/tds_protocol.rs:287:13
[INFO] [stdout]     |
[INFO] [stdout] 287 |         let enc_off = data_offset; data_offset += 1;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enc_off`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pkt_type`
[INFO] [stdout]    --> src/server/tds_protocol.rs:330:14
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let (pkt_type, payload) = self.read_packet()?;
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pkt_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/server/tds_protocol.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 |         for (idx, stmt_sql) in statements.iter().enumerate() {
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `upper`
[INFO] [stdout]    --> src/server/tds_protocol.rs:605:13
[INFO] [stdout]     |
[INFO] [stdout] 605 |         let upper = s.to_uppercase();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_upper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tuple/tuple.rs:414:13
[INFO] [stdout]     |
[INFO] [stdout] 414 |         let mut pos = bitmap_len;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/tuple/tuple.rs:414:13
[INFO] [stdout]     |
[INFO] [stdout] 414 |         let mut pos = bitmap_len;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/database.rs:311:17
[INFO] [stdout]     |
[INFO] [stdout] 311 |             let mut cursors = self.cursors.lock().unwrap();
[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/database.rs:487:37
[INFO] [stdout]     |
[INFO] [stdout] 487 |                         if let Some(mut full_log) = tm.take_undo_log(txn_id) {
[INFO] [stdout]     |                                     ----^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `upper`
[INFO] [stdout]     --> src/database.rs:1744:13
[INFO] [stdout]      |
[INFO] [stdout] 1744 |         let upper = text.to_uppercase();
[INFO] [stdout]      |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_upper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `value_eq` is never used
[INFO] [stdout]    --> src/executor/aggregate.rs:791:4
[INFO] [stdout]     |
[INFO] [stdout] 791 | fn value_eq(a: &Value, b: &Value) -> bool {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `distinct` is never read
[INFO] [stdout]    --> src/executor/aggregate.rs:928:36
[INFO] [stdout]     |
[INFO] [stdout] 928 |     Agg { func: String, arg: Expr, distinct: bool },
[INFO] [stdout]     |     --- field in this variant      ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StreamColDesc` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `send_result_set`, `build_column_definition`, and `find_column_index_by_name` are never used
[INFO] [stdout]    --> src/server/mysql_protocol.rs:385:8
[INFO] [stdout]     |
[INFO] [stdout] 184 | impl ConnectionHandler {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 385 |     fn send_result_set(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     fn build_column_definition(&self, col_name: &str, rows: &[Vec<Value>]) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 474 |     fn find_column_index_by_name(&self, _col_name: &str, _rows: &[Vec<Value>]) -> Option<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TDS_PRELOGIN` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const TDS_PRELOGIN: u8 = 18;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TDS_LOGIN7` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const TDS_LOGIN7: u8 = 16;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOKEN_INFO` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const TOKEN_INFO: u8 = 0xAB;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOKEN_DONEPROC` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const TOKEN_DONEPROC: u8 = 0xFE;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOKEN_DONEINPROC` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const TOKEN_DONEINPROC: u8 = 0xFF;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOKEN_ORDER` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const TOKEN_ORDER: u8 = 0xA9;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DONE_MORE` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:43:7
[INFO] [stdout]    |
[INFO] [stdout] 43 | const DONE_MORE: u16 = 0x0001;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TDS_TYPE_BIGVARCHAR` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const TDS_TYPE_BIGVARCHAR: u8 = 0xA7;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse_login7_database` is never used
[INFO] [stdout]    --> src/server/tds_protocol.rs:369:8
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl TdsConnection {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 369 |     fn parse_login7_database(payload: &[u8]) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pool_size` is never read
[INFO] [stdout]   --> src/storage/concurrent_bpm.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct ConcurrentBufferPool {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pool_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `columns_sql` is never read
[INFO] [stdout]   --> src/database.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct PartitionMeta {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     columns_sql: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PartitionMeta` 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: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]     --> src/sql/parser.rs:1349:32
[INFO] [stdout]      |
[INFO] [stdout] 1349 |                     for dup in &arg_list.duplicate_treatment {
[INFO] [stdout]      |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]      |
[INFO] [stdout] 1349 -                     for dup in &arg_list.duplicate_treatment {
[INFO] [stdout] 1349 +                     while let Some(dup) = &arg_list.duplicate_treatment {
[INFO] [stdout]      |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]      |
[INFO] [stdout] 1349 -                     for dup in &arg_list.duplicate_treatment {
[INFO] [stdout] 1349 +                     if let Some(dup) = &arg_list.duplicate_treatment {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling forgedb v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `AtomicBool` and `AtomicI64`
[INFO] [stdout]   --> tests/acid_compliance_test.rs:12:25
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::atomic::{AtomicBool, AtomicI64, AtomicUsize, Ordering};
[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/integration_test.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let (_dir, mut db) = new_db();
[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: variable does not need to be mutable
[INFO] [stdout]   --> tests/integration_test.rs:44:16
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let (_dir, mut db) = new_db();
[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]   --> tests/integration_test.rs:65:16
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let (_dir, mut db) = new_db();
[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]   --> tests/integration_test.rs:88:16
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:105:16
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:134:16
[INFO] [stdout]     |
[INFO] [stdout] 134 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:156:16
[INFO] [stdout]     |
[INFO] [stdout] 156 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:172:16
[INFO] [stdout]     |
[INFO] [stdout] 172 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:203:16
[INFO] [stdout]     |
[INFO] [stdout] 203 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:230:16
[INFO] [stdout]     |
[INFO] [stdout] 230 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:247:16
[INFO] [stdout]     |
[INFO] [stdout] 247 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:263:16
[INFO] [stdout]     |
[INFO] [stdout] 263 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:288:16
[INFO] [stdout]     |
[INFO] [stdout] 288 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:306:16
[INFO] [stdout]     |
[INFO] [stdout] 306 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:339:13
[INFO] [stdout]     |
[INFO] [stdout] 339 |         let mut db = Database::new(&path).unwrap();
[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]    --> tests/integration_test.rs:351:13
[INFO] [stdout]     |
[INFO] [stdout] 351 |         let mut db = Database::open(&path).unwrap();
[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]    --> tests/integration_test.rs:361:16
[INFO] [stdout]     |
[INFO] [stdout] 361 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:386:16
[INFO] [stdout]     |
[INFO] [stdout] 386 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:411:16
[INFO] [stdout]     |
[INFO] [stdout] 411 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:431:16
[INFO] [stdout]     |
[INFO] [stdout] 431 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:447:16
[INFO] [stdout]     |
[INFO] [stdout] 447 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:481:16
[INFO] [stdout]     |
[INFO] [stdout] 481 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:500:16
[INFO] [stdout]     |
[INFO] [stdout] 500 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:523:16
[INFO] [stdout]     |
[INFO] [stdout] 523 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:547:16
[INFO] [stdout]     |
[INFO] [stdout] 547 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:564:16
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:577:16
[INFO] [stdout]     |
[INFO] [stdout] 577 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:595:16
[INFO] [stdout]     |
[INFO] [stdout] 595 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:617:16
[INFO] [stdout]     |
[INFO] [stdout] 617 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:629:16
[INFO] [stdout]     |
[INFO] [stdout] 629 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:641:16
[INFO] [stdout]     |
[INFO] [stdout] 641 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:651:16
[INFO] [stdout]     |
[INFO] [stdout] 651 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:662:16
[INFO] [stdout]     |
[INFO] [stdout] 662 |     let (_dir, mut db) = new_db();
[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]    --> tests/integration_test.rs:675:16
[INFO] [stdout]     |
[INFO] [stdout] 675 |     let (_dir, mut db) = new_db();
[INFO] [stdout]     |                ----^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/index/clustered.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::HashMap;
[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: `std::collections::HashMap`
[INFO] [stdout]  --> src/server/tds_protocol.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IsolationLevel`
[INFO] [stdout]   --> src/database.rs:21:72
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::txn::{TransactionManager, TxnContext, UndoLog, LockManager, IsolationLevel};
[INFO] [stdout]    |                                                                        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `errors`
[INFO] [stdout]     --> tests/acid_compliance_test.rs:1434:13
[INFO] [stdout]      |
[INFO] [stdout] 1434 |         let errors = Arc::clone(&errors);
[INFO] [stdout]      |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_errors`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group_key`
[INFO] [stdout]     --> src/executor/aggregate.rs:1051:10
[INFO] [stdout]      |
[INFO] [stdout] 1051 |     for (group_key, accs) in &group_order {
[INFO] [stdout]      |          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_group_key`
[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/executor/create_index.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let mut btree = if columns.len() > 1 {
[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: `dummy_rid`
[INFO] [stdout]    --> src/executor/grace_hash_join.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let dummy_rid = RID { page_id: PageId(0), slot_id: 0 };
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dummy_rid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_heap`
[INFO] [stdout]    --> src/executor/insert.rs:222:37
[INFO] [stdout]     |
[INFO] [stdout] 222 | ...                   let parent_heap = crate::storage::heap_file::HeapFile::new(
[INFO] [stdout]     |                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_heap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/index/btree.rs:550:13
[INFO] [stdout]     |
[INFO] [stdout] 550 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[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/index/btree.rs:568:13
[INFO] [stdout]     |
[INFO] [stdout] 568 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[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/index/btree.rs:589:13
[INFO] [stdout]     |
[INFO] [stdout] 589 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[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/index/btree.rs:612:13
[INFO] [stdout]     |
[INFO] [stdout] 612 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[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/index/btree.rs:648:13
[INFO] [stdout]     |
[INFO] [stdout] 648 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Varchar(120), TableId(0), 0).unwrap();
[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/index/btree.rs:671:13
[INFO] [stdout]     |
[INFO] [stdout] 671 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[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/index/btree.rs:696:13
[INFO] [stdout]     |
[INFO] [stdout] 696 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[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/index/btree.rs:725:13
[INFO] [stdout]     |
[INFO] [stdout] 725 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[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/index/btree.rs:752:13
[INFO] [stdout]     |
[INFO] [stdout] 752 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[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/index/btree.rs:783:13
[INFO] [stdout]     |
[INFO] [stdout] 783 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[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/index/btree.rs:821:13
[INFO] [stdout]     |
[INFO] [stdout] 821 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Varchar(50), TableId(0), 0).unwrap();
[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/index/btree.rs:849:13
[INFO] [stdout]     |
[INFO] [stdout] 849 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/index/clustered.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     let n = leaf_num_keys(page) as usize;
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/index/clustered.rs:663:13
[INFO] [stdout]     |
[INFO] [stdout] 663 |         let mut idx = ClusteredIndex::create(&mut bpm, 0).unwrap();
[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/index/clustered.rs:680:13
[INFO] [stdout]     |
[INFO] [stdout] 680 |         let mut idx = ClusteredIndex::create(&mut bpm, 0).unwrap();
[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/index/clustered.rs:699:13
[INFO] [stdout]     |
[INFO] [stdout] 699 |         let mut idx = ClusteredIndex::create(&mut bpm, 0).unwrap();
[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/index/clustered.rs:719:13
[INFO] [stdout]     |
[INFO] [stdout] 719 |         let mut idx = ClusteredIndex::create(&mut bpm, 0).unwrap();
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ver_off`
[INFO] [stdout]    --> src/server/tds_protocol.rs:281:13
[INFO] [stdout]     |
[INFO] [stdout] 281 |         let ver_off = data_offset; data_offset += 6;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ver_off`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enc_off`
[INFO] [stdout]    --> src/server/tds_protocol.rs:287:13
[INFO] [stdout]     |
[INFO] [stdout] 287 |         let enc_off = data_offset; data_offset += 1;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enc_off`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pkt_type`
[INFO] [stdout]    --> src/server/tds_protocol.rs:330:14
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let (pkt_type, payload) = self.read_packet()?;
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pkt_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/server/tds_protocol.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 |         for (idx, stmt_sql) in statements.iter().enumerate() {
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `upper`
[INFO] [stdout]    --> src/server/tds_protocol.rs:605:13
[INFO] [stdout]     |
[INFO] [stdout] 605 |         let upper = s.to_uppercase();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_upper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tuple/tuple.rs:414:13
[INFO] [stdout]     |
[INFO] [stdout] 414 |         let mut pos = bitmap_len;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/tuple/tuple.rs:414:13
[INFO] [stdout]     |
[INFO] [stdout] 414 |         let mut pos = bitmap_len;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/database.rs:311:17
[INFO] [stdout]     |
[INFO] [stdout] 311 |             let mut cursors = self.cursors.lock().unwrap();
[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/database.rs:487:37
[INFO] [stdout]     |
[INFO] [stdout] 487 |                         if let Some(mut full_log) = tm.take_undo_log(txn_id) {
[INFO] [stdout]     |                                     ----^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `upper`
[INFO] [stdout]     --> src/database.rs:1744:13
[INFO] [stdout]      |
[INFO] [stdout] 1744 |         let upper = text.to_uppercase();
[INFO] [stdout]      |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_upper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `value_eq` is never used
[INFO] [stdout]    --> src/executor/aggregate.rs:791:4
[INFO] [stdout]     |
[INFO] [stdout] 791 | fn value_eq(a: &Value, b: &Value) -> bool {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `distinct` is never read
[INFO] [stdout]    --> src/executor/aggregate.rs:928:36
[INFO] [stdout]     |
[INFO] [stdout] 928 |     Agg { func: String, arg: Expr, distinct: bool },
[INFO] [stdout]     |     --- field in this variant      ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StreamColDesc` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `send_result_set`, `build_column_definition`, and `find_column_index_by_name` are never used
[INFO] [stdout]    --> src/server/mysql_protocol.rs:385:8
[INFO] [stdout]     |
[INFO] [stdout] 184 | impl ConnectionHandler {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 385 |     fn send_result_set(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     fn build_column_definition(&self, col_name: &str, rows: &[Vec<Value>]) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 474 |     fn find_column_index_by_name(&self, _col_name: &str, _rows: &[Vec<Value>]) -> Option<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TDS_PRELOGIN` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const TDS_PRELOGIN: u8 = 18;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TDS_LOGIN7` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const TDS_LOGIN7: u8 = 16;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOKEN_INFO` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const TOKEN_INFO: u8 = 0xAB;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOKEN_DONEPROC` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const TOKEN_DONEPROC: u8 = 0xFE;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOKEN_DONEINPROC` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const TOKEN_DONEINPROC: u8 = 0xFF;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOKEN_ORDER` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const TOKEN_ORDER: u8 = 0xA9;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DONE_MORE` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:43:7
[INFO] [stdout]    |
[INFO] [stdout] 43 | const DONE_MORE: u16 = 0x0001;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TDS_TYPE_BIGVARCHAR` is never used
[INFO] [stdout]   --> src/server/tds_protocol.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const TDS_TYPE_BIGVARCHAR: u8 = 0xA7;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse_login7_database` is never used
[INFO] [stdout]    --> src/server/tds_protocol.rs:369:8
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl TdsConnection {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 369 |     fn parse_login7_database(payload: &[u8]) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pool_size` is never read
[INFO] [stdout]   --> src/storage/concurrent_bpm.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct ConcurrentBufferPool {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pool_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `columns_sql` is never read
[INFO] [stdout]   --> src/database.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct PartitionMeta {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     columns_sql: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PartitionMeta` 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: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]     --> src/sql/parser.rs:1349:32
[INFO] [stdout]      |
[INFO] [stdout] 1349 |                     for dup in &arg_list.duplicate_treatment {
[INFO] [stdout]      |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]      |
[INFO] [stdout] 1349 -                     for dup in &arg_list.duplicate_treatment {
[INFO] [stdout] 1349 +                     while let Some(dup) = &arg_list.duplicate_treatment {
[INFO] [stdout]      |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]      |
[INFO] [stdout] 1349 -                     for dup in &arg_list.duplicate_treatment {
[INFO] [stdout] 1349 +                     if let Some(dup) = &arg_list.duplicate_treatment {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 14.66s
[INFO] running `Command { std: "docker" "inspect" "58b2af0c9f7072014f45fe78dccc511bb1cfd8a1a2f45757024f3926fe52fa84", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "58b2af0c9f7072014f45fe78dccc511bb1cfd8a1a2f45757024f3926fe52fa84", kill_on_drop: false }`
[INFO] [stdout] 58b2af0c9f7072014f45fe78dccc511bb1cfd8a1a2f45757024f3926fe52fa84
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ead8be603babdcf07c9a1d5c4ef0080908287e08d81819e5ce18f70c52f90787
[INFO] running `Command { std: "docker" "start" "-a" "ead8be603babdcf07c9a1d5c4ef0080908287e08d81819e5ce18f70c52f90787", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/index/clustered.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/server/tds_protocol.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `IsolationLevel`
[INFO] [stderr]   --> src/database.rs:21:72
[INFO] [stderr]    |
[INFO] [stderr] 21 | use crate::txn::{TransactionManager, TxnContext, UndoLog, LockManager, IsolationLevel};
[INFO] [stderr]    |                                                                        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `group_key`
[INFO] [stderr]     --> src/executor/aggregate.rs:1051:10
[INFO] [stderr]      |
[INFO] [stderr] 1051 |     for (group_key, accs) in &group_order {
[INFO] [stderr]      |          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_group_key`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/executor/create_index.rs:70:9
[INFO] [stderr]    |
[INFO] [stderr] 70 |     let mut btree = if columns.len() > 1 {
[INFO] [stderr]    |         ----^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dummy_rid`
[INFO] [stderr]    --> src/executor/grace_hash_join.rs:104:9
[INFO] [stderr]     |
[INFO] [stderr] 104 |     let dummy_rid = RID { page_id: PageId(0), slot_id: 0 };
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dummy_rid`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `parent_heap`
[INFO] [stderr]    --> src/executor/insert.rs:222:37
[INFO] [stderr]     |
[INFO] [stderr] 222 | ...                   let parent_heap = crate::storage::heap_file::HeapFile::new(
[INFO] [stderr]     |                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_heap`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n`
[INFO] [stderr]    --> src/index/clustered.rs:121:9
[INFO] [stderr]     |
[INFO] [stderr] 121 |     let n = leaf_num_keys(page) as usize;
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ver_off`
[INFO] [stderr]    --> src/server/tds_protocol.rs:281:13
[INFO] [stderr]     |
[INFO] [stderr] 281 |         let ver_off = data_offset; data_offset += 6;
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ver_off`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `enc_off`
[INFO] [stderr]    --> src/server/tds_protocol.rs:287:13
[INFO] [stderr]     |
[INFO] [stderr] 287 |         let enc_off = data_offset; data_offset += 1;
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enc_off`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pkt_type`
[INFO] [stderr]    --> src/server/tds_protocol.rs:330:14
[INFO] [stderr]     |
[INFO] [stderr] 330 |         let (pkt_type, payload) = self.read_packet()?;
[INFO] [stderr]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pkt_type`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `idx`
[INFO] [stderr]    --> src/server/tds_protocol.rs:408:14
[INFO] [stderr]     |
[INFO] [stderr] 408 |         for (idx, stmt_sql) in statements.iter().enumerate() {
[INFO] [stderr]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `upper`
[INFO] [stderr]    --> src/server/tds_protocol.rs:605:13
[INFO] [stderr]     |
[INFO] [stderr] 605 |         let upper = s.to_uppercase();
[INFO] [stderr]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_upper`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/tuple/tuple.rs:414:13
[INFO] [stderr]     |
[INFO] [stderr] 414 |         let mut pos = bitmap_len;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pos`
[INFO] [stderr]    --> src/tuple/tuple.rs:414:13
[INFO] [stderr]     |
[INFO] [stderr] 414 |         let mut pos = bitmap_len;
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/database.rs:311:17
[INFO] [stderr]     |
[INFO] [stderr] 311 |             let mut cursors = self.cursors.lock().unwrap();
[INFO] [stderr]     |                 ----^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/database.rs:487:37
[INFO] [stderr]     |
[INFO] [stderr] 487 |                         if let Some(mut full_log) = tm.take_undo_log(txn_id) {
[INFO] [stderr]     |                                     ----^^^^^^^^
[INFO] [stderr]     |                                     |
[INFO] [stderr]     |                                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `upper`
[INFO] [stderr]     --> src/database.rs:1744:13
[INFO] [stderr]      |
[INFO] [stderr] 1744 |         let upper = text.to_uppercase();
[INFO] [stderr]      |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_upper`
[INFO] [stderr] 
[INFO] [stderr] warning: function `value_eq` is never used
[INFO] [stderr]    --> src/executor/aggregate.rs:791:4
[INFO] [stderr]     |
[INFO] [stderr] 791 | fn value_eq(a: &Value, b: &Value) -> bool {
[INFO] [stderr]     |    ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `distinct` is never read
[INFO] [stderr]    --> src/executor/aggregate.rs:928:36
[INFO] [stderr]     |
[INFO] [stderr] 928 |     Agg { func: String, arg: Expr, distinct: bool },
[INFO] [stderr]     |     --- field in this variant      ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `StreamColDesc` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `send_result_set`, `build_column_definition`, and `find_column_index_by_name` are never used
[INFO] [stderr]    --> src/server/mysql_protocol.rs:385:8
[INFO] [stderr]     |
[INFO] [stderr] 184 | impl ConnectionHandler {
[INFO] [stderr]     | ---------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 385 |     fn send_result_set(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 417 |     fn build_column_definition(&self, col_name: &str, rows: &[Vec<Value>]) -> Vec<u8> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 474 |     fn find_column_index_by_name(&self, _col_name: &str, _rows: &[Vec<Value>]) -> Option<usize> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TDS_PRELOGIN` is never used
[INFO] [stderr]   --> src/server/tds_protocol.rs:21:7
[INFO] [stderr]    |
[INFO] [stderr] 21 | const TDS_PRELOGIN: u8 = 18;
[INFO] [stderr]    |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TDS_LOGIN7` is never used
[INFO] [stderr]   --> src/server/tds_protocol.rs:22:7
[INFO] [stderr]    |
[INFO] [stderr] 22 | const TDS_LOGIN7: u8 = 16;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TOKEN_INFO` is never used
[INFO] [stderr]   --> src/server/tds_protocol.rs:33:7
[INFO] [stderr]    |
[INFO] [stderr] 33 | const TOKEN_INFO: u8 = 0xAB;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TOKEN_DONEPROC` is never used
[INFO] [stderr]   --> src/server/tds_protocol.rs:35:7
[INFO] [stderr]    |
[INFO] [stderr] 35 | const TOKEN_DONEPROC: u8 = 0xFE;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TOKEN_DONEINPROC` is never used
[INFO] [stderr]   --> src/server/tds_protocol.rs:36:7
[INFO] [stderr]    |
[INFO] [stderr] 36 | const TOKEN_DONEINPROC: u8 = 0xFF;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TOKEN_ORDER` is never used
[INFO] [stderr]   --> src/server/tds_protocol.rs:39:7
[INFO] [stderr]    |
[INFO] [stderr] 39 | const TOKEN_ORDER: u8 = 0xA9;
[INFO] [stderr]    |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DONE_MORE` is never used
[INFO] [stderr]   --> src/server/tds_protocol.rs:43:7
[INFO] [stderr]    |
[INFO] [stderr] 43 | const DONE_MORE: u16 = 0x0001;
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TDS_TYPE_BIGVARCHAR` is never used
[INFO] [stderr]   --> src/server/tds_protocol.rs:51:7
[INFO] [stderr]    |
[INFO] [stderr] 51 | const TDS_TYPE_BIGVARCHAR: u8 = 0xA7;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `parse_login7_database` is never used
[INFO] [stderr]    --> src/server/tds_protocol.rs:369:8
[INFO] [stderr]     |
[INFO] [stderr] 153 | impl TdsConnection {
[INFO] [stderr]     | ------------------ associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 369 |     fn parse_login7_database(payload: &[u8]) -> Option<String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `pool_size` is never read
[INFO] [stderr]   --> src/storage/concurrent_bpm.rs:36:5
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub struct ConcurrentBufferPool {
[INFO] [stderr]    |            -------------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 36 |     pool_size: usize,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `columns_sql` is never read
[INFO] [stderr]   --> src/database.rs:33:5
[INFO] [stderr]    |
[INFO] [stderr] 25 | struct PartitionMeta {
[INFO] [stderr]    |        ------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 33 |     columns_sql: String,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PartitionMeta` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]     --> src/sql/parser.rs:1349:32
[INFO] [stderr]      |
[INFO] [stderr] 1349 |                     for dup in &arg_list.duplicate_treatment {
[INFO] [stderr]      |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]      |
[INFO] [stderr] 1349 -                     for dup in &arg_list.duplicate_treatment {
[INFO] [stderr] 1349 +                     while let Some(dup) = &arg_list.duplicate_treatment {
[INFO] [stderr]      |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]      |
[INFO] [stderr] 1349 -                     for dup in &arg_list.duplicate_treatment {
[INFO] [stderr] 1349 +                     if let Some(dup) = &arg_list.duplicate_treatment {
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/index/btree.rs:550:13
[INFO] [stderr]     |
[INFO] [stderr] 550 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/index/btree.rs:568:13
[INFO] [stderr]     |
[INFO] [stderr] 568 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/index/btree.rs:589:13
[INFO] [stderr]     |
[INFO] [stderr] 589 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/index/btree.rs:612:13
[INFO] [stderr]     |
[INFO] [stderr] 612 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/index/btree.rs:648:13
[INFO] [stderr]     |
[INFO] [stderr] 648 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Varchar(120), TableId(0), 0).unwrap();
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/index/btree.rs:671:13
[INFO] [stderr]     |
[INFO] [stderr] 671 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/index/btree.rs:696:13
[INFO] [stderr]     |
[INFO] [stderr] 696 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/index/btree.rs:725:13
[INFO] [stderr]     |
[INFO] [stderr] 725 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/index/btree.rs:752:13
[INFO] [stderr]     |
[INFO] [stderr] 752 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/index/btree.rs:783:13
[INFO] [stderr]     |
[INFO] [stderr] 783 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/index/btree.rs:821:13
[INFO] [stderr]     |
[INFO] [stderr] 821 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Varchar(50), TableId(0), 0).unwrap();
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/index/btree.rs:849:13
[INFO] [stderr]     |
[INFO] [stderr] 849 |         let mut idx = BTreeIndex::create(&mut bpm, DataType::Integer, TableId(0), 0).unwrap();
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/index/clustered.rs:663:13
[INFO] [stderr]     |
[INFO] [stderr] 663 |         let mut idx = ClusteredIndex::create(&mut bpm, 0).unwrap();
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/index/clustered.rs:680:13
[INFO] [stderr]     |
[INFO] [stderr] 680 |         let mut idx = ClusteredIndex::create(&mut bpm, 0).unwrap();
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/index/clustered.rs:699:13
[INFO] [stderr]     |
[INFO] [stderr] 699 |         let mut idx = ClusteredIndex::create(&mut bpm, 0).unwrap();
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/index/clustered.rs:719:13
[INFO] [stderr]     |
[INFO] [stderr] 719 |         let mut idx = ClusteredIndex::create(&mut bpm, 0).unwrap();
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: `forgedb` (lib) generated 33 warnings (run `cargo fix --lib -p forgedb` to apply 18 suggestions)
[INFO] [stderr] warning: `forgedb` (lib test) generated 49 warnings (33 duplicates) (run `cargo fix --lib -p forgedb --tests` to apply 16 suggestions)
[INFO] [stderr] warning: unused imports: `AtomicBool` and `AtomicI64`
[INFO] [stderr]   --> tests/acid_compliance_test.rs:12:25
[INFO] [stderr]    |
[INFO] [stderr] 12 | use std::sync::atomic::{AtomicBool, AtomicI64, AtomicUsize, Ordering};
[INFO] [stderr]    |                         ^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `errors`
[INFO] [stderr]     --> tests/acid_compliance_test.rs:1434:13
[INFO] [stderr]      |
[INFO] [stderr] 1434 |         let errors = Arc::clone(&errors);
[INFO] [stderr]      |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_errors`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/integration_test.rs:13:16
[INFO] [stderr]    |
[INFO] [stderr] 13 |     let (_dir, mut db) = new_db();
[INFO] [stderr]    |                ----^^
[INFO] [stderr]    |                |
[INFO] [stderr]    |                help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/integration_test.rs:44:16
[INFO] [stderr]    |
[INFO] [stderr] 44 |     let (_dir, mut db) = new_db();
[INFO] [stderr]    |                ----^^
[INFO] [stderr]    |                |
[INFO] [stderr]    |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/integration_test.rs:65:16
[INFO] [stderr]    |
[INFO] [stderr] 65 |     let (_dir, mut db) = new_db();
[INFO] [stderr]    |                ----^^
[INFO] [stderr]    |                |
[INFO] [stderr]    |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/integration_test.rs:88:16
[INFO] [stderr]    |
[INFO] [stderr] 88 |     let (_dir, mut db) = new_db();
[INFO] [stderr]    |                ----^^
[INFO] [stderr]    |                |
[INFO] [stderr]    |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:105:16
[INFO] [stderr]     |
[INFO] [stderr] 105 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:134:16
[INFO] [stderr]     |
[INFO] [stderr] 134 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:156:16
[INFO] [stderr]     |
[INFO] [stderr] 156 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:172:16
[INFO] [stderr]     |
[INFO] [stderr] 172 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:203:16
[INFO] [stderr]     |
[INFO] [stderr] 203 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:230:16
[INFO] [stderr]     |
[INFO] [stderr] 230 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:247:16
[INFO] [stderr]     |
[INFO] [stderr] 247 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:263:16
[INFO] [stderr]     |
[INFO] [stderr] 263 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:288:16
[INFO] [stderr]     |
[INFO] [stderr] 288 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:306:16
[INFO] [stderr]     |
[INFO] [stderr] 306 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:339:13
[INFO] [stderr]     |
[INFO] [stderr] 339 |         let mut db = Database::new(&path).unwrap();
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:351:13
[INFO] [stderr]     |
[INFO] [stderr] 351 |         let mut db = Database::open(&path).unwrap();
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:361:16
[INFO] [stderr]     |
[INFO] [stderr] 361 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:386:16
[INFO] [stderr]     |
[INFO] [stderr] 386 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:411:16
[INFO] [stderr]     |
[INFO] [stderr] 411 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:431:16
[INFO] [stderr]     |
[INFO] [stderr] 431 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:447:16
[INFO] [stderr]     |
[INFO] [stderr] 447 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:481:16
[INFO] [stderr]     |
[INFO] [stderr] 481 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:500:16
[INFO] [stderr]     |
[INFO] [stderr] 500 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:523:16
[INFO] [stderr]     |
[INFO] [stderr] 523 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:547:16
[INFO] [stderr]     |
[INFO] [stderr] 547 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:564:16
[INFO] [stderr]     |
[INFO] [stderr] 564 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:577:16
[INFO] [stderr]     |
[INFO] [stderr] 577 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:595:16
[INFO] [stderr]     |
[INFO] [stderr] 595 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:617:16
[INFO] [stderr]     |
[INFO] [stderr] 617 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:629:16
[INFO] [stderr]     |
[INFO] [stderr] 629 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:641:16
[INFO] [stderr]     |
[INFO] [stderr] 641 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:651:16
[INFO] [stderr]     |
[INFO] [stderr] 651 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:662:16
[INFO] [stderr]     |
[INFO] [stderr] 662 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_test.rs:675:16
[INFO] [stderr]     |
[INFO] [stderr] 675 |     let (_dir, mut db) = new_db();
[INFO] [stderr]     |                ----^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: `forgedb` (test "acid_compliance_test") generated 2 warnings (run `cargo fix --test "acid_compliance_test" -p forgedb` to apply 2 suggestions)
[INFO] [stderr] warning: `forgedb` (test "integration_test") generated 34 warnings (run `cargo fix --test "integration_test" -p forgedb` to apply 34 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/forgedb-c6e4dae81f1a95cb)
[INFO] [stdout] 
[INFO] [stdout] running 249 tests
[INFO] [stdout] test executor::eval::tests::test_abs ... ok
[INFO] [stdout] test executor::eval::tests::test_between_at_boundary ... ok
[INFO] [stdout] test catalog::catalog::tests::test_create_table ... ok
[INFO] [stdout] test catalog::catalog::tests::test_persist_and_load_round_trip ... ok
[INFO] [stdout] test catalog::catalog::tests::test_get_table_case_insensitive ... ok
[INFO] [stdout] test catalog::catalog::tests::test_drop_nonexistent_errors ... ok
[INFO] [stdout] test catalog::catalog::tests::test_get_table_by_id ... ok
[INFO] [stdout] test executor::eval::tests::test_between_null_returns_null ... ok
[INFO] [stdout] test executor::eval::tests::test_between_out_of_range ... ok
[INFO] [stdout] test executor::eval::tests::test_cast_int_to_float ... ok
[INFO] [stdout] test executor::eval::tests::test_cast_int_to_varchar ... ok
[INFO] [stdout] test catalog::catalog::tests::test_drop_table ... ok
[INFO] [stdout] test catalog::catalog::tests::test_load_missing_file_returns_empty ... ok
[INFO] [stdout] test executor::eval::tests::test_between_in_range ... ok
[INFO] [stdout] test executor::eval::tests::test_case_no_match_no_else ... ok
[INFO] [stdout] test executor::eval::tests::test_case_searched ... ok
[INFO] [stdout] test executor::eval::tests::test_cast_float_to_int ... ok
[INFO] [stdout] test executor::eval::tests::test_cast_null ... ok
[INFO] [stdout] test executor::eval::tests::test_cast_varchar_to_int ... ok
[INFO] [stdout] test executor::eval::tests::test_column_ref ... ok
[INFO] [stdout] test executor::eval::tests::test_cast_to_boolean ... ok
[INFO] [stdout] test executor::eval::tests::test_ceil_floor ... ok
[INFO] [stdout] test executor::eval::tests::test_is_null ... ok
[INFO] [stdout] test executor::eval::tests::test_in_not_found ... ok
[INFO] [stdout] test executor::eval::tests::test_length ... ok
[INFO] [stdout] test executor::eval::tests::test_left_right ... ok
[INFO] [stdout] test executor::eval::tests::test_like_match_empty ... ok
[INFO] [stdout] test executor::eval::tests::test_like_case_insensitive ... ok
[INFO] [stdout] test executor::eval::tests::test_like_match_exact ... ok
[INFO] [stdout] test executor::eval::tests::test_like_match_percent ... ok
[INFO] [stdout] test executor::eval::tests::test_like_match_underscore ... ok
[INFO] [stdout] test executor::eval::tests::test_like_null_returns_null ... ok
[INFO] [stdout] test executor::eval::tests::test_like_percent_both_sides ... ok
[INFO] [stdout] test executor::eval::tests::test_lpad_rpad ... ok
[INFO] [stdout] test executor::eval::tests::test_like_underscore ... ok
[INFO] [stdout] test executor::eval::tests::test_literal ... ok
[INFO] [stdout] test executor::eval::tests::test_mod_function ... ok
[INFO] [stdout] test executor::eval::tests::test_like_percent_suffix ... ok
[INFO] [stdout] test executor::eval::tests::test_modulo ... ok
[INFO] [stdout] test executor::eval::tests::test_like_no_match ... ok
[INFO] [stdout] test executor::eval::tests::test_not_in ... ok
[INFO] [stdout] test executor::eval::tests::test_concat_null ... ok
[INFO] [stdout] test executor::eval::tests::test_modulo_by_zero ... ok
[INFO] [stdout] test executor::eval::tests::test_in_found ... ok
[INFO] [stdout] test catalog::catalog::tests::test_list_tables ... ok
[INFO] [stdout] test executor::eval::tests::test_greatest_least ... ok
[INFO] [stdout] test executor::eval::tests::test_not_like ... ok
[INFO] [stdout] test executor::eval::tests::test_null_comparison_returns_null ... ok
[INFO] [stdout] test executor::eval::tests::test_nullif ... ok
[INFO] [stdout] test executor::eval::tests::test_power_sqrt ... ok
[INFO] [stdout] test executor::eval::tests::test_reverse ... ok
[INFO] [stdout] test executor::eval::tests::test_sign ... ok
[INFO] [stdout] test executor::eval::tests::test_subquery_returns_error ... ok
[INFO] [stdout] test catalog::catalog::tests::test_next_table_id_persists ... ok
[INFO] [stdout] test executor::eval::tests::test_trim_functions ... ok
[INFO] [stdout] test executor::eval::tests::test_round ... ok
[INFO] [stdout] test executor::eval::tests::test_substring ... ok
[INFO] [stdout] test executor::temp_storage::tests::test_serialize_deserialize_row ... ok
[INFO] [stdout] test executor::temp_storage::tests::test_write_read_rows ... ok
[INFO] [stdout] test executor::eval::tests::test_upper_lower ... ok
[INFO] [stdout] test executor::external_sort::tests::test_external_sort_small ... ok
[INFO] [stdout] test executor::temp_storage::tests::test_temp_file_cleanup ... ok
[INFO] [stdout] test catalog::catalog::tests::test_create_duplicate_table_errors ... ok
[INFO] [stdout] test index::btree::tests::test_insert_and_search_single ... ok
[INFO] [stdout] test executor::grace_hash_join::tests::test_grace_hash_join_inner ... ok
[INFO] [stdout] test executor::eval::tests::test_comparison ... ok
[INFO] [stdout] test executor::eval::tests::test_concat_operator ... ok
[INFO] [stdout] test executor::eval::tests::test_in_null_expr_returns_null ... ok
[INFO] [stdout] test index::btree_page::tests::test_internal_init ... ok
[INFO] [stdout] test index::btree_page::tests::test_internal_get_all_entries ... ok
[INFO] [stdout] test index::btree::tests::test_varchar_keys ... ok
[INFO] [stdout] test index::btree_page::tests::test_leaf_get_all_entries ... ok
[INFO] [stdout] test index::btree_page::tests::test_leaf_init ... ok
[INFO] [stdout] test index::btree_page::tests::test_leaf_insert_and_search ... ok
[INFO] [stdout] test index::btree_page::tests::test_leaf_full ... ok
[INFO] [stdout] test index::btree_page::tests::test_leaf_delete ... ok
[INFO] [stdout] test index::btree_page::tests::test_internal_insert_and_search ... ok
[INFO] [stdout] test index::btree_page::tests::test_leaf_sorted_insert ... ok
[INFO] [stdout] test index::btree_page::tests::test_leaf_next_leaf ... ok
[INFO] [stdout] test executor::eval::tests::test_case_simple ... ok
[INFO] [stdout] test executor::eval::tests::test_replace ... ok
[INFO] [stdout] test planner::cost_model::tests::test_greedy_join_order ... ok
[INFO] [stdout] test planner::cost_model::tests::test_join_cardinality ... ok
[INFO] [stdout] test planner::cost_model::tests::test_index_scan_cost ... ok
[INFO] [stdout] test planner::cost_model::tests::test_prefer_index_scan_high_selectivity ... ok
[INFO] [stdout] test index::clustered::tests::test_clustered_insert_and_search ... ok
[INFO] [stdout] test planner::cost_model::tests::test_prefer_seq_scan_low_selectivity ... ok
[INFO] [stdout] test planner::cost_model::tests::test_seq_scan_cost ... ok
[INFO] [stdout] test planner::planner::tests::test_plan_delete_with_where ... ok
[INFO] [stdout] test planner::planner::tests::test_plan_drop_table ... ok
[INFO] [stdout] test index::clustered::tests::test_clustered_delete ... ok
[INFO] [stdout] test planner::planner::tests::test_plan_select_simple ... ok
[INFO] [stdout] test planner::planner::tests::test_plan_create_table ... ok
[INFO] [stdout] test planner::planner::tests::test_plan_group_by ... ok
[INFO] [stdout] test planner::planner::tests::test_plan_select_with_order_by_and_limit ... ok
[INFO] [stdout] test planner::planner::tests::test_plan_select_with_join ... ok
[INFO] [stdout] test planner::planner::tests::test_plan_update_with_where ... ok
[INFO] [stdout] test planner::planner::tests::test_plan_select_with_where ... ok
[INFO] [stdout] test planner::statistics::tests::test_selectivity_eq ... ok
[INFO] [stdout] test index::btree::tests::test_range_scan_unbounded ... ok
[INFO] [stdout] test planner::statistics::tests::test_selectivity_eq_no_stats ... ok
[INFO] [stdout] test planner::statistics::tests::test_table_stats_default ... ok
[INFO] [stdout] test server::auth::tests::test_sha1_abc ... ok
[INFO] [stdout] test server::auth::tests::test_empty_response_fails ... ok
[INFO] [stdout] test server::auth::tests::test_sha1_empty ... ok
[INFO] [stdout] test planner::statistics::tests::test_selectivity_range ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_encode_lenenc_int_small ... ok
[INFO] [stdout] test server::auth::tests::test_validate_native_password ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_encode_lenenc_int_three_byte ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_encode_lenenc_int_two_byte_max ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_encode_lenenc_int_two_byte ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_encode_lenenc_str_empty ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_encode_lenenc_str_non_empty ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_eof_packet_format ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_read_null_terminated_string_no_nul ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_err_packet_format ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_read_null_terminated_string ... ok
[INFO] [stdout] test sql::parser::tests::test_case_expression ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_encode_lenenc_int_boundary_values ... ok
[INFO] [stdout] test sql::parser::tests::test_create_table_tsql_types ... ok
[INFO] [stdout] test sql::parser::tests::test_distinct ... ok
[INFO] [stdout] test sql::parser::tests::test_drop_table ... ok
[INFO] [stdout] test sql::parser::tests::test_group_by ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_ok_packet_format ... ok
[INFO] [stdout] test sql::parser::tests::test_insert_with_columns ... ok
[INFO] [stdout] test sql::parser::tests::test_arithmetic_in_select ... ok
[INFO] [stdout] test sql::parser::tests::test_is_not_null_expression ... ok
[INFO] [stdout] test sql::parser::tests::test_is_null_expression ... ok
[INFO] [stdout] test sql::parser::tests::test_select_top ... ok
[INFO] [stdout] test sql::parser::tests::test_select_star ... ok
[INFO] [stdout] test sql::parser::tests::test_delete_with_where ... ok
[INFO] [stdout] test sql::parser::tests::test_insert_without_columns ... ok
[INFO] [stdout] test sql::parser::tests::test_left_join ... ok
[INFO] [stdout] test sql::parser::tests::test_select_with_join ... ok
[INFO] [stdout] test sql::parser::tests::test_select_with_order_by ... ok
[INFO] [stdout] test sql::parser::tests::test_select_with_where ... ok
[INFO] [stdout] test storage::buffer_pool::tests::test_eviction ... ok
[INFO] [stdout] test index::btree::tests::test_delete ... ok
[INFO] [stdout] test sql::parser::tests::test_union ... ok
[INFO] [stdout] test sql::parser::tests::test_update_with_where ... ok
[INFO] [stdout] test storage::buffer_pool::tests::test_flush_all ... ok
[INFO] [stdout] test storage::buffer_pool::tests::test_unpin_error_on_missing_page ... ok
[INFO] [stdout] test storage::buffer_pool::tests::test_no_free_frames_error ... ok
[INFO] [stdout] test storage::buffer_pool::tests::test_flush_page ... ok
[INFO] [stdout] test storage::buffer_pool::tests::test_new_page_and_fetch ... ok
[INFO] [stdout] test storage::disk_manager::tests::test_create_and_allocate ... ok
[INFO] [stdout] test storage::disk_manager::tests::test_persistence ... ok
[INFO] [stdout] test storage::heap_file::tests::test_delete ... ok
[INFO] [stdout] test storage::concurrent_bpm::tests::test_basic_new_and_fetch ... ok
[INFO] [stdout] test storage::heap_file::tests::test_insert_and_get ... ok
[INFO] [stdout] test storage::heap_file::tests::test_multiple_pages ... ok
[INFO] [stdout] test storage::disk_manager::tests::test_read_write_page ... ok
[INFO] [stdout] test storage::heap_page::tests::test_free_space_decreases ... ok
[INFO] [stdout] test storage::heap_file::tests::test_update_in_place ... ok
[INFO] [stdout] test storage::heap_page::tests::test_init ... ok
[INFO] [stdout] test index::btree::tests::test_negative_integers ... ok
[INFO] [stdout] test storage::heap_page::tests::test_insert_and_get ... ok
[INFO] [stdout] test storage::heap_page::tests::test_get_tuple_invalid_slot ... ok
[INFO] [stdout] test storage::heap_page::tests::test_multiple_inserts ... ok
[INFO] [stdout] test storage::heap_page::tests::test_next_page_id ... ok
[INFO] [stdout] test storage::heap_file::tests::test_update_larger ... ok
[INFO] [stdout] test storage::heap_page::tests::test_update_tuple_fits ... ok
[INFO] [stdout] test storage::page::tests::test_new_page ... ok
[INFO] [stdout] test storage::page::tests::test_reset_page ... ok
[INFO] [stdout] test storage::table_iterator::tests::test_empty_table ... ok
[INFO] [stdout] test storage::heap_page::tests::test_delete_tuple ... ok
[INFO] [stdout] test storage::table_iterator::tests::test_iterate_across_pages ... ok
[INFO] [stdout] test storage::heap_page::tests::test_page_full ... ok
[INFO] [stdout] test storage::heap_page::tests::test_update_tuple_too_large ... ok
[INFO] [stdout] test storage::heap_page::tests::test_slot_reuse ... ok
[INFO] [stdout] test storage::concurrent_bpm::tests::test_concurrent_reads ... ok
[INFO] [stdout] test storage::table_iterator::tests::test_iterate_all ... ok
[INFO] [stdout] test tuple::schema::tests::test_get_column_case_insensitive ... ok
[INFO] [stdout] test tuple::tuple::tests::error_truncated_data ... ok
[INFO] [stdout] test tuple::tuple::tests::non_nullable_null_uses_default ... ok
[INFO] [stdout] test tuple::schema::tests::test_column_count ... ok
[INFO] [stdout] test tuple::schema::tests::test_get_column_not_found ... ok
[INFO] [stdout] test storage::table_iterator::tests::test_iterate_skips_deleted ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_boolean ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_empty_varchar ... ok
[INFO] [stdout] test tuple::tuple::tests::error_type_mismatch ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_float ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_all_types_present ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_mixed_with_nulls ... ok
[INFO] [stdout] test tuple::tuple::tests::error_wrong_value_count ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_integer ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_many_columns_bitmap ... ok
[INFO] [stdout] test storage::concurrent_bpm::tests::test_concurrent_different_pages ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_null ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_negative_integer ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_unicode_varchar ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_varchar_between_fixed ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_varchar ... ok
[INFO] [stdout] test tuple::types::tests::test_arithmetic_float ... ok
[INFO] [stdout] test tuple::types::tests::test_arithmetic_integer ... ok
[INFO] [stdout] test tuple::types::tests::test_arithmetic_mixed ... ok
[INFO] [stdout] test tuple::types::tests::test_arithmetic_type_error ... ok
[INFO] [stdout] test tuple::types::tests::test_compare_cross_numeric ... ok
[INFO] [stdout] test tuple::types::tests::test_compare_null_is_none ... ok
[INFO] [stdout] test tuple::types::tests::test_compare_same_type ... ok
[INFO] [stdout] test tuple::types::tests::test_data_type ... ok
[INFO] [stdout] test tuple::types::tests::test_display ... ok
[INFO] [stdout] test tuple::types::tests::test_div_by_zero ... ok
[INFO] [stdout] test tuple::types::tests::test_is_null ... ok
[INFO] [stdout] test tuple::types::tests::test_sort_key_null_sorts_first ... ok
[INFO] [stdout] test tuple::types::tests::test_sort_key_ordering_floats ... ok
[INFO] [stdout] test tuple::types::tests::test_sort_key_ordering_integers ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_mixed_types ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_multiple_varchars ... ok
[INFO] [stdout] test txn::lock_manager::tests::test_shared_locks_compatible ... ok
[INFO] [stdout] test txn::mvcc::tests::test_encode_decode_header ... ok
[INFO] [stdout] test txn::mvcc::tests::test_encode_decode_header_zero ... ok
[INFO] [stdout] test txn::mvcc::tests::test_invisible_created_after_snapshot ... ok
[INFO] [stdout] test tuple::types::tests::test_compare_incompatible_types ... ok
[INFO] [stdout] test txn::mvcc::tests::test_invisible_deleted_by_committed_txn ... ok
[INFO] [stdout] test txn::mvcc::tests::test_invisible_deleted_by_own_txn ... ok
[INFO] [stdout] test txn::mvcc::tests::test_visible_committed_before_snapshot ... ok
[INFO] [stdout] test txn::mvcc::tests::test_visible_created_by_own_txn ... ok
[INFO] [stdout] test txn::mvcc::tests::test_visible_deleted_by_active_txn ... ok
[INFO] [stdout] test txn::mvcc::tests::test_visible_deleted_by_future_txn ... ok
[INFO] [stdout] test txn::mvcc::tests::test_committed_in_window_visible ... ok
[INFO] [stdout] test txn::mvcc::tests::test_invisible_created_by_active_txn ... ok
[INFO] [stdout] test txn::mvcc::tests::test_all_xmin_xmax_combinations ... ok
[INFO] [stdout] test txn::transaction::tests::test_abort_non_active_txn_fails ... ok
[INFO] [stdout] test txn::transaction::tests::test_begin_commit_writes_records ... ok
[INFO] [stdout] test txn::transaction::tests::test_commit_non_active_txn_fails ... ok
[INFO] [stdout] test txn::transaction::tests::test_page_write_record_round_trips ... ok
[INFO] [stdout] test txn::transaction::tests::test_recovery_skips_aborted_writes ... ok
[INFO] [stdout] test txn::transaction::tests::test_recovery_replays_committed_writes ... ok
[INFO] [stdout] test txn::transaction::tests::test_checkpoint_truncates_wal ... ok
[INFO] [stdout] test txn::wal::tests::test_abort_record ... ok
[INFO] [stdout] test txn::wal::tests::test_begin_commit_records ... ok
[INFO] [stdout] test txn::wal::tests::test_multiple_record_types ... ok
[INFO] [stdout] test txn::undo::tests::test_undo_log_push_and_reverse ... ok
[INFO] [stdout] test txn::undo::tests::test_empty_undo_log ... ok
[INFO] [stdout] test txn::wal::tests::test_page_write_round_trip ... ok
[INFO] [stdout] test txn::wal::tests::test_checkpoint_and_truncate ... ok
[INFO] [stdout] test txn::lock_manager::tests::test_exclusive_blocks_shared ... ok
[INFO] [stdout] test txn::lock_manager::tests::test_timeout ... ok
[INFO] [stdout] test index::clustered::tests::test_clustered_scan_all ... ok
[INFO] [stdout] test txn::lock_manager::tests::test_deadlock_detection ... ok
[INFO] [stdout] test index::btree::tests::test_insert_reverse_order ... ok
[INFO] [stdout] test index::btree::tests::test_range_scan ... ok
[INFO] [stdout] test index::btree::tests::test_insert_many_and_search_all ... ok
[INFO] [stdout] test index::btree::tests::test_delete_many ... ok
[INFO] [stdout] test index::btree::tests::test_internal_node_split ... ok
[INFO] [stdout] test index::clustered::tests::test_clustered_splits ... ok
[INFO] [stdout] test index::btree::tests::test_leaf_split ... ok
[INFO] [stdout] test index::btree::tests::test_large_scale_10k has been running for over 60 seconds
[INFO] [stdout] test index::btree::tests::test_large_scale_10k ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 249 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 95.84s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/forgedb-server.rs (/opt/rustwide/target/debug/deps/forgedb_server-4e82f3a330b710e9)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/acid_compliance_test.rs (/opt/rustwide/target/debug/deps/acid_compliance_test-f25aaeca883812e0)
[INFO] [stdout] 
[INFO] [stdout] running 60 tests
[INFO] [stdout] test test_acid_08_commit_without_begin_noop ... ok
[INFO] [stdout] test test_acid_06_atomicity_rollback_undoes_update ... ok
[INFO] [stdout] test test_acid_10_begin_inside_begin_implicit_commit ... ok
[INFO] [stdout] test test_acid_09_rollback_without_begin_noop ... ok
[INFO] [stdout] test test_acid_05_atomicity_commit_persists_inserts ... ok
[INFO] [stdout] test test_acid_20_isolation_read_own_writes_in_session ... ok
[INFO] [stdout] test test_acid_03_atomicity_multi_row_insert ... ok
[INFO] [stdout] test test_acid_04_atomicity_rollback_undoes_inserts ... ok
[INFO] [stdout] test test_acid_07_atomicity_rollback_undoes_delete ... ok
[INFO] [stdout] test test_acid_24_durability_delete_survives_restart ... ok
[INFO] [stdout] test test_acid_18_isolation_own_writes_visible ... ok
[INFO] [stdout] test test_acid_25_durability_multi_table_restart ... ok
[INFO] [stdout] test test_acid_02_atomicity_constraint_violation_leaves_no_partial ... ok
[INFO] [stdout] test test_acid_23_durability_update_survives_restart ... ok
[INFO] [stdout] test test_acid_21_durability_insert_survives_restart ... ok
[INFO] [stdout] test test_acid_17_isolation_sum_monotonic_during_inserts ... ok
[INFO] [stdout] test test_acid_22_durability_large_batch_survives_restart ... ok
[INFO] [stdout] test test_acid_15_consistency_sum_invariant_100_threads ... ok
[INFO] [stdout] test test_acid_16_isolation_readers_see_consistent_state ... ok
[INFO] [stdout] test test_acid_13_consistency_multi_table_relationships ... ok
[INFO] [stdout] test test_acid_32_complex_multi_join_aggregate ... ok
[INFO] [stdout] test test_acid_26_stress_100_mixed_read_write ... ok
[INFO] [stdout] test test_acid_36_session_multi_insert_commit ... ok
[INFO] [stdout] test test_acid_19_isolation_no_phantom_rows ... ok
[INFO] [stdout] test test_acid_14_consistency_concurrent_counter_increment ... ok
[INFO] [stdout] test test_acid_31_complex_group_by_concurrent ... ok
[INFO] [stdout] test test_acid_12_consistency_not_null_concurrent ... ok
[INFO] [stdout] test test_acid_01_atomicity_100_concurrent_inserts ... ok
[INFO] [stdout] test test_acid_37_session_insert_delete_commit ... ok
[INFO] [stdout] test test_acid_11_consistency_balance_transfer_100_threads ... ok
[INFO] [stdout] test test_acid_38_session_insert_update_commit ... ok
[INFO] [stdout] test test_acid_40_session_read_accumulated_changes ... ok
[INFO] [stdout] test test_acid_39_session_multi_op_rollback ... ok
[INFO] [stdout] test test_acid_30_stress_100_concurrent_joins ... ok
[INFO] [stdout] test test_acid_29_stress_100_concurrent_complex_queries ... ok
[INFO] [stdout] test test_acid_48_edge_wide_rows_concurrent ... ok
[INFO] [stdout] test test_acid_33_complex_left_join_concurrent ... ok
[INFO] [stdout] test test_acid_35_complex_distinct_order_by ... ok
[INFO] [stdout] test test_acid_42_concurrent_multi_table_insert ... ok
[INFO] [stdout] test test_acid_46_edge_empty_table_concurrent ... ok
[INFO] [stdout] test test_acid_34_complex_case_expression_concurrent ... ok
[INFO] [stdout] test test_acid_47_edge_null_handling_concurrent ... ok
[INFO] [stdout] test test_acid_45_concurrent_string_functions ... ok
[INFO] [stdout] test test_acid_49_edge_concurrent_math_expressions ... ok
[INFO] [stdout] test test_acid_44_concurrent_like_queries ... ok
[INFO] [stdout] test test_acid_43_concurrent_complex_where ... ok
[INFO] [stdout] test test_acid_55_limit_correctness_concurrent ... ok
[INFO] [stdout] test test_acid_53_aggregate_consistency ... ok
[INFO] [stdout] test test_acid_56_union_concurrent ... ok
[INFO] [stdout] test test_acid_58_multi_column_order_by ... ok
[INFO] [stdout] test test_acid_41_mixed_insert_update_read_100 ... ok
[INFO] [stdout] test test_acid_57_self_join_concurrent ... ok
[INFO] [stdout] test test_acid_51_grand_stress_100_threads ... ok
[INFO] [stdout] test test_acid_54_order_by_correctness_concurrent ... ok
[INFO] [stdout] test test_acid_50_edge_concurrent_null_functions ... ok
[INFO] [stdout] test test_acid_27_stress_100_concurrent_update_different_rows ... ok
[INFO] [stdout] test test_acid_59_read_your_writes_concurrent ... ok
[INFO] [stdout] test test_acid_52_sustained_throughput ... ok
[INFO] [stdout] test test_acid_28_stress_100_concurrent_delete_different_rows ... ok
[INFO] [stdout] test test_acid_60_bulk_insert_stress ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 60 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 11.88s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration_test.rs (/opt/rustwide/target/debug/deps/integration_test-35735b52cc86d720)
[INFO] [stdout] 
[INFO] [stdout] running 33 tests
[INFO] [stdout] test test_drop_table ... ok
[INFO] [stdout] test test_delete_all_rows ... ok
[INFO] [stdout] test test_like_expression ... ok
[INFO] [stdout] test test_left_join ... ok
[INFO] [stdout] test test_describe_table ... ok
[INFO] [stdout] test test_join ... ok
[INFO] [stdout] test test_limit_offset ... ok
[INFO] [stdout] test test_comparison_operators ... ok
[INFO] [stdout] test test_between_expression ... ok
[INFO] [stdout] test test_in_expression ... ok
[INFO] [stdout] test test_insert_with_explicit_columns ... ok
[INFO] [stdout] test test_delete ... ok
[INFO] [stdout] test test_arithmetic_expressions ... ok
[INFO] [stdout] test test_count_aggregate ... ok
[INFO] [stdout] test test_and_or_where ... ok
[INFO] [stdout] test test_create_table_and_insert ... ok
[INFO] [stdout] test test_mysql_create_table_with_auto_increment ... ok
[INFO] [stdout] test test_multiple_insert_rows ... ok
[INFO] [stdout] test test_mysql_bigint_type ... ok
[INFO] [stdout] test test_set_and_use ... ok
[INFO] [stdout] test test_mysql_create_table_with_engine ... ok
[INFO] [stdout] test test_persistence_across_restart ... ok
[INFO] [stdout] test test_null_handling ... ok
[INFO] [stdout] test test_select_with_where ... ok
[INFO] [stdout] test test_update_all_rows ... ok
[INFO] [stdout] test test_select_with_projection ... ok
[INFO] [stdout] test test_order_by ... ok
[INFO] [stdout] test test_select_all ... ok
[INFO] [stdout] test test_show_tables ... ok
[INFO] [stdout] test test_select_top ... ok
[INFO] [stdout] test test_transaction_stubs ... ok
[INFO] [stdout] test test_sum_avg_min_max ... ok
[INFO] [stdout] test test_update ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/memory_leak_test.rs (/opt/rustwide/target/debug/deps/memory_leak_test-45edb994b8062226)
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test test_leak_savepoints_cleaned_on_commit ... ok
[INFO] [stdout] test test_leak_prepared_stmt_deallocate ... ok
[INFO] [stdout] test test_leak_procedure_drop ... ok
[INFO] [stdout] test test_leak_sequence_create_many_drop_all ... ok
[INFO] [stdout] test test_leak_many_procedures_drop_all ... ok
[INFO] [stdout] test test_leak_savepoints_cleaned_on_abort ... ok
[INFO] [stdout] test test_leak_savepoints_cleaned_on_rollback ... ok
[INFO] [stdout] test test_leak_sequence_create_drop ... ok
[INFO] [stdout] test test_leak_cursor_deallocated ... ok
[INFO] [stdout] test test_leak_many_cursors_all_deallocated ... ok
[INFO] [stdout] test test_leak_many_sessions_commit ... ok
[INFO] [stdout] test test_leak_plan_cache_bounded ... ok
[INFO] [stdout] test test_leak_many_sessions_rollback ... ok
[INFO] [stdout] test test_leak_plan_cache_invalidated_on_ddl ... ok
[INFO] [stdout] test test_leak_stress_procedures_create_exec_drop ... ok
[INFO] [stdout] test test_leak_user_drop ... ok
[INFO] [stdout] test test_leak_stress_sequences_create_use_drop ... ok
[INFO] [stdout] test test_leak_stress_cursors_create_use_close ... ok
[INFO] [stdout] test test_leak_stress_1000_queries_cache_bounded ... ok
[INFO] [stdout] test test_leak_concurrent_transactions_no_orphans ... ok
[INFO] [stdout] test test_leak_transaction_commit_cleans_resources ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/mssql_compat_test.rs (/opt/rustwide/target/debug/deps/mssql_compat_test-f73ccc37aa38f702)
[INFO] [stdout] 
[INFO] [stdout] running 100 tests
[INFO] [stdout] test test_acid_87_atomicity ... ok
[INFO] [stdout] test test_ddl_01_create_table_with_identity ... ok
[INFO] [stdout] test test_acid_90_not_null_defaults ... ok
[INFO] [stdout] test test_acid_89_durability_shutdown ... ok
[INFO] [stdout] test test_acid_82_update_consistency ... ok
[INFO] [stdout] test test_acid_88_durability_reopen ... ok
[INFO] [stdout] test test_ddl_04_not_null_constraints ... ok
[INFO] [stdout] test test_ddl_02_create_table_nvarchar_max ... ok
[INFO] [stdout] test test_ddl_09_drop_if_exists ... ok
[INFO] [stdout] test test_ddl_08_drop_table ... ok
[INFO] [stdout] test test_acid_84_sequential_transaction ... ok
[INFO] [stdout] test test_acid_81_read_after_write ... ok
[INFO] [stdout] test test_concurrency_94_concurrent_count ... ok
[INFO] [stdout] test test_acid_85_concurrent_reads ... ok
[INFO] [stdout] test test_ddl_10_wide_table ... ok
[INFO] [stdout] test test_acid_86_writer_reader_isolation ... ok
[INFO] [stdout] test test_acid_83_delete_consistency ... ok
[INFO] [stdout] test test_ddl_12_describe ... ok
[INFO] [stdout] test test_concurrency_95_no_data_loss ... ok
[INFO] [stdout] test test_ddl_05_default_values ... ok
[INFO] [stdout] test test_ddl_13_multiple_creates ... ok
[INFO] [stdout] test test_ddl_03_create_table_multiple_types ... ok
[INFO] [stdout] test test_concurrency_91_concurrent_insert ... ok
[INFO] [stdout] test test_ddl_06_primary_key ... ok
[INFO] [stdout] test test_concurrency_93_mixed_read_write ... ok
[INFO] [stdout] test test_ddl_07_create_if_not_exists ... ok
[INFO] [stdout] test test_delete_68_non_existent ... ok
[INFO] [stdout] test test_concurrency_92_concurrent_select ... ok
[INFO] [stdout] test test_edge_97_long_varchar ... ok
[INFO] [stdout] test test_ddl_11_show_tables ... ok
[INFO] [stdout] test test_ddl_15_reserved_word_columns ... ok
[INFO] [stdout] test test_edge_96_empty_table ... ok
[INFO] [stdout] test test_delete_62_single_row ... ok
[INFO] [stdout] test test_delete_65_verify_empty ... ok
[INFO] [stdout] test test_insert_17_explicit_columns ... ok
[INFO] [stdout] test test_insert_16_single_row_all_columns ... ok
[INFO] [stdout] test test_delete_63_with_where ... ok
[INFO] [stdout] test test_insert_26_special_characters ... ok
[INFO] [stdout] test test_ddl_14_recreate_after_drop ... ok
[INFO] [stdout] test test_insert_27_unicode ... ok
[INFO] [stdout] test test_delete_64_all_rows ... ok
[INFO] [stdout] test test_insert_19_default_values ... ok
[INFO] [stdout] test test_insert_24_empty_string ... ok
[INFO] [stdout] test test_insert_18_null_values ... ok
[INFO] [stdout] test test_insert_22_coerce_string_to_int ... ok
[INFO] [stdout] test test_insert_20_batch_insert ... ok
[INFO] [stdout] test test_insert_23_coerce_int_to_varchar ... ok
[INFO] [stdout] test test_insert_29_datetime ... ok
[INFO] [stdout] test test_join_75_right ... ok
[INFO] [stdout] test test_join_73_left ... ok
[INFO] [stdout] test test_join_79_self_reference ... ok
[INFO] [stdout] test test_insert_25_large_text ... ok
[INFO] [stdout] test test_insert_21_auto_increment_ids ... ok
[INFO] [stdout] test test_join_76_aliases ... ok
[INFO] [stdout] test test_edge_98_100_columns ... ok
[INFO] [stdout] test test_delete_66_reuse_after_delete ... ok
[INFO] [stdout] test test_edge_100_complex_query ... ok
[INFO] [stdout] test test_select_33_alias ... ok
[INFO] [stdout] test test_join_74_left_null_fill ... ok
[INFO] [stdout] test test_join_71_inner ... ok
[INFO] [stdout] test test_select_32_specific_columns ... ok
[INFO] [stdout] test test_select_34_where_eq ... ok
[INFO] [stdout] test test_join_72_inner_with_where ... ok
[INFO] [stdout] test test_join_78_three_tables ... ok
[INFO] [stdout] test test_join_77_qualified_columns ... ok
[INFO] [stdout] test test_insert_28_bigint_values ... ok
[INFO] [stdout] test test_join_80_aggregate_after_join ... ok
[INFO] [stdout] test test_select_31_star ... ok
[INFO] [stdout] test test_select_36_where_comparison ... ok
[INFO] [stdout] test test_select_43_in_list ... ok
[INFO] [stdout] test test_select_40_like_contains ... ok
[INFO] [stdout] test test_select_39_where_and_or_combined ... ok
[INFO] [stdout] test test_select_44_not_in ... ok
[INFO] [stdout] test test_select_45_between ... ok
[INFO] [stdout] test test_select_38_where_or ... ok
[INFO] [stdout] test test_select_37_where_and ... ok
[INFO] [stdout] test test_select_49_order_by_desc ... ok
[INFO] [stdout] test test_select_35_where_neq ... ok
[INFO] [stdout] test test_select_53_count_column_excludes_nulls ... ok
[INFO] [stdout] test test_select_42_like_underscore ... ok
[INFO] [stdout] test test_select_41_like_prefix ... ok
[INFO] [stdout] test test_select_50_order_by_multi ... ok
[INFO] [stdout] test test_select_47_is_not_null ... ok
[INFO] [stdout] test test_update_59_expression ... ok
[INFO] [stdout] test test_select_46_is_null ... ok
[INFO] [stdout] test test_select_48_order_by_asc ... ok
[INFO] [stdout] test test_update_61_verify_replacement ... ok
[INFO] [stdout] test test_select_52_count_star ... ok
[INFO] [stdout] test test_select_51_top_limit ... ok
[INFO] [stdout] test test_select_55_expression ... ok
[INFO] [stdout] test test_select_54_aggregates ... ok
[INFO] [stdout] test test_update_69_type_coercion ... ok
[INFO] [stdout] test test_update_67_non_existent ... ok
[INFO] [stdout] test test_update_60_set_null ... ok
[INFO] [stdout] test test_update_70_sequential_verify ... ok
[INFO] [stdout] test test_update_58_all_rows ... ok
[INFO] [stdout] test test_update_57_multiple_rows ... ok
[INFO] [stdout] test test_update_56_single_row ... ok
[INFO] [stdout] test test_insert_30_bulk_1000 ... ok
[INFO] [stdout] test test_edge_99_10k_rows ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 100 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.24s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/production_features_test.rs (/opt/rustwide/target/debug/deps/production_features_test-011a9af2a2210ad2)
[INFO] [stdout] 
[INFO] [stdout] running 48 tests
[INFO] [stdout] test test_case_simple ... ok
[INFO] [stdout] test test_concat_function ... ok
[INFO] [stdout] test test_coalesce ... ok
[INFO] [stdout] test test_ceil_floor ... ok
[INFO] [stdout] test test_distinct_with_order_by ... ok
[INFO] [stdout] test test_distinct_basic ... ok
[INFO] [stdout] test test_group_by_avg ... ok
[INFO] [stdout] test test_explain_select ... ok
[INFO] [stdout] test test_distinct_all_same ... ok
[INFO] [stdout] test test_case_searched ... ok
[INFO] [stdout] test test_alter_table_add_column ... ok
[INFO] [stdout] test test_count_distinct ... ok
[INFO] [stdout] test test_explain_join ... ok
[INFO] [stdout] test test_full_outer_join ... ok
[INFO] [stdout] test test_cross_join ... ok
[INFO] [stdout] test test_abs ... ok
[INFO] [stdout] test test_alter_table_drop_column ... ok
[INFO] [stdout] test test_group_by_count ... ok
[INFO] [stdout] test test_group_by_having_sum ... ok
[INFO] [stdout] test test_greatest_least ... ok
[INFO] [stdout] test test_group_by_multiple_columns ... ok
[INFO] [stdout] test test_group_by_min_max ... ok
[INFO] [stdout] test test_group_by_with_order_by ... ok
[INFO] [stdout] test test_group_by_having ... ok
[INFO] [stdout] test test_nullif ... ok
[INFO] [stdout] test test_nested_functions ... ok
[INFO] [stdout] test test_multiple_aggregates_no_group ... ok
[INFO] [stdout] test test_lpad_rpad ... ok
[INFO] [stdout] test test_replace ... ok
[INFO] [stdout] test test_mod_function ... ok
[INFO] [stdout] test test_power_sqrt ... ok
[INFO] [stdout] test test_implicit_cross_join ... ok
[INFO] [stdout] test test_substring ... ok
[INFO] [stdout] test test_group_by_with_case ... ok
[INFO] [stdout] test test_trim ... ok
[INFO] [stdout] test test_sign ... ok
[INFO] [stdout] test test_union_all ... ok
[INFO] [stdout] test test_round ... ok
[INFO] [stdout] test test_group_by_with_limit ... ok
[INFO] [stdout] test test_group_by_with_join ... ok
[INFO] [stdout] test test_if_function ... ok
[INFO] [stdout] test test_union_distinct ... ok
[INFO] [stdout] test test_group_by_sum ... ok
[INFO] [stdout] test test_left_right ... ok
[INFO] [stdout] test test_length ... ok
[INFO] [stdout] test test_upper_lower ... ok
[INFO] [stdout] test test_modulo_operator ... ok
[INFO] [stdout] test test_reverse ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 48 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.65s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/tier1_features_test.rs (/opt/rustwide/target/debug/deps/tier1_features_test-6091c7f222bfa84e)
[INFO] [stdout] 
[INFO] [stdout] running 40 tests
[INFO] [stdout] test test_auth_reject_wrong_password ... ok
[INFO] [stdout] test test_auth_validate ... ok
[INFO] [stdout] test test_cost_model_prefer_index_high_selectivity ... ok
[INFO] [stdout] test test_cost_model_prefer_seq_scan_low_selectivity ... ok
[INFO] [stdout] test test_acid_rollback_statement ... ok
[INFO] [stdout] test test_auth_no_password_fallback ... ok
[INFO] [stdout] test test_acid_durability_begin_commit ... ok
[INFO] [stdout] test test_analyze_populates_stats ... ok
[INFO] [stdout] test test_analyze_table_basic ... ok
[INFO] [stdout] test test_acid_atomicity_dml_auto_transaction ... ok
[INFO] [stdout] test test_acid_durability_auto_commit ... ok
[INFO] [stdout] test test_acid_failed_dml_aborts_transaction ... ok
[INFO] [stdout] test test_acid_unique_constraint_enforced ... ok
[INFO] [stdout] test test_acid_atomicity_duplicate_key_rejected ... ok
[INFO] [stdout] test test_acid_consistency_not_null_with_default ... ok
[INFO] [stdout] test test_basic_insert_select_with_mvcc_tables ... ok
[INFO] [stdout] test test_mvcc_invisible_uncommitted ... ok
[INFO] [stdout] test test_join_basic ... ok
[INFO] [stdout] test test_begin_commit ... ok
[INFO] [stdout] test test_join_reordering ... ok
[INFO] [stdout] test test_mvcc_deleted_by_committed ... ok
[INFO] [stdout] test test_mvcc_own_insert_visible ... ok
[INFO] [stdout] test test_mvcc_visibility_unit ... ok
[INFO] [stdout] test test_delete_with_mvcc_tables ... ok
[INFO] [stdout] test test_sha1_correctness ... ok
[INFO] [stdout] test test_temp_file_row_serialization ... ok
[INFO] [stdout] test test_undo_log_basic ... ok
[INFO] [stdout] test test_multiple_operations_sequence ... ok
[INFO] [stdout] test test_read_context_concurrent_selects ... ok
[INFO] [stdout] test test_rollback_is_accepted ... ok
[INFO] [stdout] test test_index_scan_after_analyze ... ok
[INFO] [stdout] test test_update_with_mvcc_tables ... ok
[INFO] [stdout] test test_left_join ... ok
[INFO] [stdout] test test_concurrent_table_operations ... ok
[INFO] [stdout] test test_queries_work_without_analyze ... ok
[INFO] [stdout] test test_limit_pushdown_with_filter ... ok
[INFO] [stdout] test test_large_sort_correctness ... ok
[INFO] [stdout] test test_sort_descending ... ok
[INFO] [stdout] test test_limit_pushdown_seq_scan ... ok
[INFO] [stdout] test test_analyze_then_query ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.56s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests forgedb
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "ead8be603babdcf07c9a1d5c4ef0080908287e08d81819e5ce18f70c52f90787", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ead8be603babdcf07c9a1d5c4ef0080908287e08d81819e5ce18f70c52f90787", kill_on_drop: false }`
[INFO] [stdout] ead8be603babdcf07c9a1d5c4ef0080908287e08d81819e5ce18f70c52f90787
