[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 try#b8e88e5ddf5521a9f43ee3f62a702388c713e4bb for pr-155114
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fparisxmas%2FForgeDB" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/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-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/parisxmas/ForgeDB on toolchain b8e88e5ddf5521a9f43ee3f62a702388c713e4bb
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "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" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2ef82036017a2eb3d9360677cb66243900271a5d05288216d4783d7933057b56
[INFO] running `Command { std: "docker" "start" "-a" "2ef82036017a2eb3d9360677cb66243900271a5d05288216d4783d7933057b56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2ef82036017a2eb3d9360677cb66243900271a5d05288216d4783d7933057b56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2ef82036017a2eb3d9360677cb66243900271a5d05288216d4783d7933057b56", kill_on_drop: false }`
[INFO] [stdout] 2ef82036017a2eb3d9360677cb66243900271a5d05288216d4783d7933057b56
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4b98bb73acb5371d4e2bda274b324085c1f2573dee365f849a1b0e28071358d8
[INFO] running `Command { std: "docker" "start" "-a" "4b98bb73acb5371d4e2bda274b324085c1f2573dee365f849a1b0e28071358d8", 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 39.74s
[INFO] running `Command { std: "docker" "inspect" "4b98bb73acb5371d4e2bda274b324085c1f2573dee365f849a1b0e28071358d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4b98bb73acb5371d4e2bda274b324085c1f2573dee365f849a1b0e28071358d8", kill_on_drop: false }`
[INFO] [stdout] 4b98bb73acb5371d4e2bda274b324085c1f2573dee365f849a1b0e28071358d8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c39ecfd3ca951590c189e5f4c93dcf46a1fdfa14769749c94afdfdc503e235a5
[INFO] running `Command { std: "docker" "start" "-a" "c39ecfd3ca951590c189e5f4c93dcf46a1fdfa14769749c94afdfdc503e235a5", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling bitflags v2.11.0
[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 15.12s
[INFO] running `Command { std: "docker" "inspect" "c39ecfd3ca951590c189e5f4c93dcf46a1fdfa14769749c94afdfdc503e235a5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c39ecfd3ca951590c189e5f4c93dcf46a1fdfa14769749c94afdfdc503e235a5", kill_on_drop: false }`
[INFO] [stdout] c39ecfd3ca951590c189e5f4c93dcf46a1fdfa14769749c94afdfdc503e235a5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d154e407cb53b10bcc2a30363736b305b875ab3562fec624d732bb8bce6d5b9d
[INFO] running `Command { std: "docker" "start" "-a" "d154e407cb53b10bcc2a30363736b305b875ab3562fec624d732bb8bce6d5b9d", 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.14s
[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_in_range ... ok
[INFO] [stdout] test executor::eval::tests::test_between_null_returns_null ... ok
[INFO] [stdout] test catalog::catalog::tests::test_create_table ... ok
[INFO] [stdout] test catalog::catalog::tests::test_drop_nonexistent_errors ... ok
[INFO] [stdout] test catalog::catalog::tests::test_next_table_id_persists ... ok
[INFO] [stdout] test executor::eval::tests::test_between_out_of_range ... ok
[INFO] [stdout] test catalog::catalog::tests::test_create_duplicate_table_errors ... ok
[INFO] [stdout] test catalog::catalog::tests::test_drop_table ... ok
[INFO] [stdout] test catalog::catalog::tests::test_get_table_by_id ... ok
[INFO] [stdout] test catalog::catalog::tests::test_load_missing_file_returns_empty ... ok
[INFO] [stdout] test catalog::catalog::tests::test_list_tables ... ok
[INFO] [stdout] test catalog::catalog::tests::test_persist_and_load_round_trip ... ok
[INFO] [stdout] test executor::eval::tests::test_between_at_boundary ... ok
[INFO] [stdout] test executor::eval::tests::test_case_no_match_no_else ... ok
[INFO] [stdout] test catalog::catalog::tests::test_get_table_case_insensitive ... ok
[INFO] [stdout] test executor::eval::tests::test_cast_float_to_int ... ok
[INFO] [stdout] test executor::eval::tests::test_case_simple ... ok
[INFO] [stdout] test executor::eval::tests::test_ceil_floor ... ok
[INFO] [stdout] test executor::eval::tests::test_cast_int_to_varchar ... ok
[INFO] [stdout] test executor::eval::tests::test_concat_operator ... ok
[INFO] [stdout] test executor::eval::tests::test_greatest_least ... ok
[INFO] [stdout] test executor::eval::tests::test_concat_null ... ok
[INFO] [stdout] test executor::eval::tests::test_in_null_expr_returns_null ... ok
[INFO] [stdout] test executor::eval::tests::test_case_searched ... ok
[INFO] [stdout] test executor::eval::tests::test_cast_null ... ok
[INFO] [stdout] test executor::eval::tests::test_cast_to_boolean ... ok
[INFO] [stdout] test executor::eval::tests::test_cast_varchar_to_int ... ok
[INFO] [stdout] test executor::eval::tests::test_cast_int_to_float ... ok
[INFO] [stdout] test executor::eval::tests::test_in_not_found ... ok
[INFO] [stdout] test executor::eval::tests::test_is_null ... ok
[INFO] [stdout] test executor::eval::tests::test_like_case_insensitive ... ok
[INFO] [stdout] test executor::eval::tests::test_like_match_underscore ... ok
[INFO] [stdout] test executor::eval::tests::test_like_match_empty ... ok
[INFO] [stdout] test executor::eval::tests::test_column_ref ... ok
[INFO] [stdout] test executor::eval::tests::test_left_right ... ok
[INFO] [stdout] test executor::eval::tests::test_like_underscore ... ok
[INFO] [stdout] test executor::eval::tests::test_length ... ok
[INFO] [stdout] test executor::eval::tests::test_like_no_match ... ok
[INFO] [stdout] test executor::eval::tests::test_like_percent_both_sides ... ok
[INFO] [stdout] test executor::eval::tests::test_like_match_exact ... ok
[INFO] [stdout] test executor::eval::tests::test_comparison ... ok
[INFO] [stdout] test executor::eval::tests::test_like_null_returns_null ... ok
[INFO] [stdout] test executor::eval::tests::test_lpad_rpad ... ok
[INFO] [stdout] test executor::eval::tests::test_like_match_percent ... ok
[INFO] [stdout] test executor::eval::tests::test_in_found ... ok
[INFO] [stdout] test executor::eval::tests::test_modulo ... ok
[INFO] [stdout] test executor::eval::tests::test_not_like ... ok
[INFO] [stdout] test executor::eval::tests::test_like_percent_suffix ... ok
[INFO] [stdout] test executor::eval::tests::test_literal ... ok
[INFO] [stdout] test executor::eval::tests::test_reverse ... ok
[INFO] [stdout] test executor::eval::tests::test_replace ... ok
[INFO] [stdout] test executor::eval::tests::test_subquery_returns_error ... ok
[INFO] [stdout] test executor::eval::tests::test_modulo_by_zero ... ok
[INFO] [stdout] test executor::eval::tests::test_null_comparison_returns_null ... ok
[INFO] [stdout] test executor::eval::tests::test_power_sqrt ... ok
[INFO] [stdout] test executor::eval::tests::test_nullif ... ok
[INFO] [stdout] test executor::eval::tests::test_round ... ok
[INFO] [stdout] test executor::eval::tests::test_not_in ... ok
[INFO] [stdout] test executor::eval::tests::test_mod_function ... ok
[INFO] [stdout] test executor::eval::tests::test_sign ... ok
[INFO] [stdout] test executor::eval::tests::test_substring ... ok
[INFO] [stdout] test executor::eval::tests::test_trim_functions ... ok
[INFO] [stdout] test executor::eval::tests::test_upper_lower ... 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::external_sort::tests::test_external_sort_small ... ok
[INFO] [stdout] test executor::temp_storage::tests::test_temp_file_cleanup ... 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 index::btree_page::tests::test_internal_init ... ok
[INFO] [stdout] test index::btree_page::tests::test_internal_insert_and_search ... ok
[INFO] [stdout] test index::btree_page::tests::test_leaf_delete ... 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_sorted_insert ... ok
[INFO] [stdout] test index::btree::tests::test_varchar_keys ... ok
[INFO] [stdout] test index::clustered::tests::test_clustered_insert_and_search ... ok
[INFO] [stdout] test index::btree_page::tests::test_leaf_next_leaf ... ok
[INFO] [stdout] test planner::cost_model::tests::test_greedy_join_order ... ok
[INFO] [stdout] test planner::cost_model::tests::test_index_scan_cost ... ok
[INFO] [stdout] test planner::cost_model::tests::test_join_cardinality ... ok
[INFO] [stdout] test planner::cost_model::tests::test_prefer_index_scan_high_selectivity ... 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_create_table ... 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::btree::tests::test_delete ... ok
[INFO] [stdout] test planner::planner::tests::test_plan_group_by ... ok
[INFO] [stdout] test planner::planner::tests::test_plan_select_simple ... ok
[INFO] [stdout] test index::btree_page::tests::test_leaf_full ... 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 index::btree_page::tests::test_internal_get_all_entries ... 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_no_stats ... ok
[INFO] [stdout] test server::auth::tests::test_empty_response_fails ... ok
[INFO] [stdout] test server::auth::tests::test_sha1_abc ... ok
[INFO] [stdout] test planner::statistics::tests::test_selectivity_range ... ok
[INFO] [stdout] test server::auth::tests::test_sha1_empty ... ok
[INFO] [stdout] test server::auth::tests::test_validate_native_password ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_encode_lenenc_int_boundary_values ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_encode_lenenc_int_small ... 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 ... 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_str_empty ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_eof_packet_format ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_encode_lenenc_str_non_empty ... ok
[INFO] [stdout] test planner::statistics::tests::test_table_stats_default ... ok
[INFO] [stdout] test index::clustered::tests::test_clustered_delete ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_err_packet_format ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_ok_packet_format ... ok
[INFO] [stdout] test sql::parser::tests::test_case_expression ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_read_null_terminated_string_no_nul ... ok
[INFO] [stdout] test sql::parser::tests::test_create_table_tsql_types ... ok
[INFO] [stdout] test sql::parser::tests::test_delete_with_where ... ok
[INFO] [stdout] test planner::statistics::tests::test_selectivity_eq ... ok
[INFO] [stdout] test sql::parser::tests::test_arithmetic_in_select ... ok
[INFO] [stdout] test server::mysql_protocol::tests::test_read_null_terminated_string ... 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 index::btree::tests::test_range_scan_unbounded ... ok
[INFO] [stdout] test sql::parser::tests::test_is_null_expression ... ok
[INFO] [stdout] test sql::parser::tests::test_left_join ... ok
[INFO] [stdout] test sql::parser::tests::test_insert_without_columns ... ok
[INFO] [stdout] test sql::parser::tests::test_select_star ... ok
[INFO] [stdout] test sql::parser::tests::test_insert_with_columns ... ok
[INFO] [stdout] test sql::parser::tests::test_select_top ... ok
[INFO] [stdout] test sql::parser::tests::test_select_with_join ... ok
[INFO] [stdout] test sql::parser::tests::test_is_not_null_expression ... ok
[INFO] [stdout] test sql::parser::tests::test_union ... ok
[INFO] [stdout] test storage::buffer_pool::tests::test_eviction ... ok
[INFO] [stdout] test storage::buffer_pool::tests::test_flush_all ... ok
[INFO] [stdout] test sql::parser::tests::test_update_with_where ... ok
[INFO] [stdout] test storage::buffer_pool::tests::test_flush_page ... 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_new_page_and_fetch ... ok
[INFO] [stdout] test storage::buffer_pool::tests::test_no_free_frames_error ... ok
[INFO] [stdout] test storage::concurrent_bpm::tests::test_basic_new_and_fetch ... ok
[INFO] [stdout] test storage::buffer_pool::tests::test_unpin_error_on_missing_page ... ok
[INFO] [stdout] test index::clustered::tests::test_clustered_scan_all ... ok
[INFO] [stdout] test storage::disk_manager::tests::test_create_and_allocate ... ok
[INFO] [stdout] test storage::heap_file::tests::test_insert_and_get ... ok
[INFO] [stdout] test storage::disk_manager::tests::test_persistence ... ok
[INFO] [stdout] test storage::concurrent_bpm::tests::test_concurrent_different_pages ... ok
[INFO] [stdout] test storage::disk_manager::tests::test_read_write_page ... ok
[INFO] [stdout] test storage::heap_page::tests::test_delete_tuple ... ok
[INFO] [stdout] test storage::heap_page::tests::test_get_tuple_invalid_slot ... ok
[INFO] [stdout] test storage::heap_file::tests::test_update_in_place ... ok
[INFO] [stdout] test storage::heap_file::tests::test_update_larger ... ok
[INFO] [stdout] test storage::heap_file::tests::test_delete ... ok
[INFO] [stdout] test storage::heap_page::tests::test_init ... ok
[INFO] [stdout] test storage::heap_page::tests::test_insert_and_get ... 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_page::tests::test_slot_reuse ... ok
[INFO] [stdout] test storage::heap_file::tests::test_multiple_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::page::tests::test_reset_page ... ok
[INFO] [stdout] test storage::table_iterator::tests::test_empty_table ... ok
[INFO] [stdout] test storage::table_iterator::tests::test_iterate_all ... ok
[INFO] [stdout] test storage::table_iterator::tests::test_iterate_skips_deleted ... 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::page::tests::test_new_page ... ok
[INFO] [stdout] test storage::heap_page::tests::test_free_space_decreases ... ok
[INFO] [stdout] test storage::table_iterator::tests::test_iterate_across_pages ... ok
[INFO] [stdout] test storage::heap_page::tests::test_update_tuple_fits ... ok
[INFO] [stdout] test tuple::tuple::tests::error_truncated_data ... ok
[INFO] [stdout] test tuple::tuple::tests::error_type_mismatch ... ok
[INFO] [stdout] test tuple::schema::tests::test_get_column_case_insensitive ... ok
[INFO] [stdout] test storage::concurrent_bpm::tests::test_concurrent_reads ... ok
[INFO] [stdout] test tuple::tuple::tests::non_nullable_null_uses_default ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_float ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_integer ... ok
[INFO] [stdout] test tuple::tuple::tests::error_wrong_value_count ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_many_columns_bitmap ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_mixed_with_nulls ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_multiple_varchars ... 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::round_trip_unicode_varchar ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_negative_integer ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_mixed_types ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_all_types_present ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_null ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_varchar ... ok
[INFO] [stdout] test tuple::tuple::tests::round_trip_varchar_between_fixed ... ok
[INFO] [stdout] test tuple::types::tests::test_arithmetic_integer ... ok
[INFO] [stdout] test tuple::types::tests::test_arithmetic_float ... 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_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_sort_key_null_sorts_first ... ok
[INFO] [stdout] test tuple::types::tests::test_compare_cross_numeric ... ok
[INFO] [stdout] test tuple::types::tests::test_sort_key_ordering_floats ... ok
[INFO] [stdout] test tuple::types::tests::test_compare_same_type ... ok
[INFO] [stdout] test tuple::types::tests::test_compare_null_is_none ... ok
[INFO] [stdout] test tuple::types::tests::test_sort_key_ordering_integers ... ok
[INFO] [stdout] test txn::mvcc::tests::test_all_xmin_xmax_combinations ... ok
[INFO] [stdout] test tuple::types::tests::test_compare_incompatible_types ... ok
[INFO] [stdout] test tuple::types::tests::test_is_null ... ok
[INFO] [stdout] test txn::mvcc::tests::test_committed_in_window_visible ... ok
[INFO] [stdout] test txn::mvcc::tests::test_invisible_created_after_snapshot ... ok
[INFO] [stdout] test txn::mvcc::tests::test_encode_decode_header ... ok
[INFO] [stdout] test txn::mvcc::tests::test_invisible_created_by_active_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_encode_decode_header_zero ... 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_checkpoint_truncates_wal ... ok
[INFO] [stdout] test txn::mvcc::tests::test_invisible_deleted_by_committed_txn ... ok
[INFO] [stdout] test txn::transaction::tests::test_commit_non_active_txn_fails ... ok
[INFO] [stdout] test txn::transaction::tests::test_recovery_replays_committed_writes ... 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::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_begin_commit_records ... ok
[INFO] [stdout] test txn::wal::tests::test_abort_record ... ok
[INFO] [stdout] test txn::wal::tests::test_checkpoint_and_truncate ... ok
[INFO] [stdout] test txn::wal::tests::test_multiple_record_types ... ok
[INFO] [stdout] test txn::wal::tests::test_page_write_round_trip ... 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 txn::lock_manager::tests::test_shared_locks_compatible ... ok
[INFO] [stdout] test index::btree::tests::test_range_scan ... ok
[INFO] [stdout] test index::btree::tests::test_insert_reverse_order ... ok
[INFO] [stdout] test index::btree::tests::test_negative_integers ... ok
[INFO] [stdout] test index::btree::tests::test_insert_many_and_search_all ... ok
[INFO] [stdout] test index::btree::tests::test_internal_node_split ... ok
[INFO] [stdout] test index::btree::tests::test_delete_many ... ok
[INFO] [stdout] test index::clustered::tests::test_clustered_splits ... ok
[INFO] [stdout] test txn::lock_manager::tests::test_deadlock_detection ... FAILED
[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] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- txn::lock_manager::tests::test_deadlock_detection stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'txn::lock_manager::tests::test_deadlock_detection' (256) panicked at src/txn/lock_manager.rs:303:9:
[INFO] [stdout] assertion failed: matches!(result, Err(LockError::Deadlock(_)))
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5cec1aa84bca - std[fce30c26ee6459b]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5cec1aa84bca - std[fce30c26ee6459b]::backtrace_rs::backtrace::trace_unsynchronized::<std[fce30c26ee6459b]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5cec1aa84bca - std[fce30c26ee6459b]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5cec1aa84bca - <<std[fce30c26ee6459b]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[d17f6591d688f3bd]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5cec1aa9b22a - <core[d17f6591d688f3bd]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5cec1aa9b22a - core[d17f6591d688f3bd]::fmt::write
[INFO] [stdout]    6:     0x5cec1aa89652 - std[fce30c26ee6459b]::io::default_write_fmt::<alloc[dad09f3a48280dba]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x5cec1aa89652 - <alloc[dad09f3a48280dba]::vec::Vec<u8> as std[fce30c26ee6459b]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x5cec1aa6190f - <std[fce30c26ee6459b]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5cec1aa6190f - std[fce30c26ee6459b]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5cec1aa7c1c9 - std[fce30c26ee6459b]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5cec1a5b8cdc - <alloc[dad09f3a48280dba]::boxed::Box<dyn for<'a, 'b> core[d17f6591d688f3bd]::ops::function::Fn<(&'a std[fce30c26ee6459b]::panic::PanicHookInfo<'b>,), Output = ()> + core[d17f6591d688f3bd]::marker::Sync + core[d17f6591d688f3bd]::marker::Send> as core[d17f6591d688f3bd]::ops::function::Fn<(&std[fce30c26ee6459b]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x5cec1a5b8cdc - test[9653f4f1d2ca1489]::test_main_inner::<test[9653f4f1d2ca1489]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5cec1aa7c442 - <alloc[dad09f3a48280dba]::boxed::Box<dyn for<'a, 'b> core[d17f6591d688f3bd]::ops::function::Fn<(&'a std[fce30c26ee6459b]::panic::PanicHookInfo<'b>,), Output = ()> + core[d17f6591d688f3bd]::marker::Sync + core[d17f6591d688f3bd]::marker::Send> as core[d17f6591d688f3bd]::ops::function::Fn<(&std[fce30c26ee6459b]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x5cec1aa7c442 - std[fce30c26ee6459b]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5cec1aa619fa - std[fce30c26ee6459b]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x5cec1aa569a9 - std[fce30c26ee6459b]::sys::backtrace::__rust_end_short_backtrace::<std[fce30c26ee6459b]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5cec1aa626dd - __rustc[de152adb51f02556]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5cec1aa9b9bc - core[d17f6591d688f3bd]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5cec1aa9b982 - core[d17f6591d688f3bd]::panicking::panic
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x5cec1a5a3d92 - forgedb[e0da2a70e25da2ec]::txn::lock_manager::tests::test_deadlock_detection
[INFO] [stdout]                                at /opt/rustwide/workdir/src/txn/lock_manager.rs:303:9
[INFO] [stdout]   21:     0x5cec1a59f307 - forgedb[e0da2a70e25da2ec]::txn::lock_manager::tests::test_deadlock_detection::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/txn/lock_manager.rs:280:33
[INFO] [stdout]   22:     0x5cec1a5a83b6 - <forgedb[e0da2a70e25da2ec]::txn::lock_manager::tests::test_deadlock_detection::{closure#0} as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5cec1a5abfbb - <fn() -> core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String> as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5cec1a5abfbb - test[9653f4f1d2ca1489]::__rust_begin_short_backtrace::<core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>, fn() -> core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x5cec1a5b97ab - test[9653f4f1d2ca1489]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x5cec1a5b97ab - <core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<test[9653f4f1d2ca1489]::run_test_in_process::{closure#0}> as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x5cec1a5b97ab - std[fce30c26ee6459b]::panicking::catch_unwind::do_call::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<test[9653f4f1d2ca1489]::run_test_in_process::{closure#0}>, core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x5cec1a5b97ab - std[fce30c26ee6459b]::panicking::catch_unwind::<core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>, core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<test[9653f4f1d2ca1489]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x5cec1a5b97ab - std[fce30c26ee6459b]::panic::catch_unwind::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<test[9653f4f1d2ca1489]::run_test_in_process::{closure#0}>, core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x5cec1a5b97ab - test[9653f4f1d2ca1489]::run_test_in_process
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x5cec1a5b97ab - test[9653f4f1d2ca1489]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x5cec1a5b2ec4 - test[9653f4f1d2ca1489]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x5cec1a5b2ec4 - std[fce30c26ee6459b]::sys::backtrace::__rust_begin_short_backtrace::<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x5cec1a5bc3b2 - std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked::<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x5cec1a5bc3b2 - <core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x5cec1a5bc3b2 - std[fce30c26ee6459b]::panicking::catch_unwind::do_call::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x5cec1a5bc3b2 - std[fce30c26ee6459b]::panicking::catch_unwind::<(), core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x5cec1a5bc3b2 - std[fce30c26ee6459b]::panic::catch_unwind::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x5cec1a5bc3b2 - std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked::<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x5cec1a5bc3b2 - <std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1} as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x5cec1aa83fff - <alloc[dad09f3a48280dba]::boxed::Box<dyn core[d17f6591d688f3bd]::ops::function::FnOnce<(), Output = ()> + core[d17f6591d688f3bd]::marker::Send> as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   42:     0x5cec1aa83fff - <std[fce30c26ee6459b]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x7763f1e67aa4 - <unknown>
[INFO] [stdout]   44:     0x7763f1ef4a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     txn::lock_manager::tests::test_deadlock_detection
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 248 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 94.35s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "d154e407cb53b10bcc2a30363736b305b875ab3562fec624d732bb8bce6d5b9d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d154e407cb53b10bcc2a30363736b305b875ab3562fec624d732bb8bce6d5b9d", kill_on_drop: false }`
[INFO] [stdout] d154e407cb53b10bcc2a30363736b305b875ab3562fec624d732bb8bce6d5b9d
