[INFO] cloning repository https://github.com/Kisechan/db-engine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Kisechan/db-engine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKisechan%2Fdb-engine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKisechan%2Fdb-engine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] aef375866e547f584c968531c6088c791157aa77
[INFO] checking Kisechan/db-engine against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKisechan%2Fdb-engine" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Kisechan/db-engine
[INFO] finished tweaking git repo https://github.com/Kisechan/db-engine
[INFO] tweaked toml for git repo https://github.com/Kisechan/db-engine written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Kisechan/db-engine on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Kisechan/db-engine 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded memmap2 v0.9.8
[INFO] [stderr]   Downloaded anstyle-query v1.1.4
[INFO] [stderr]   Downloaded jiff-static v0.2.15
[INFO] [stderr]   Downloaded jiff v0.2.15
[INFO] [stderr]   Downloaded anstyle-wincon v3.0.10
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 31a1f98f41e6bd707ec4163c14b07193c9edfa74a0fdbbe5b3d1d1733471fe2d
[INFO] running `Command { std: "docker" "start" "31a1f98f41e6bd707ec4163c14b07193c9edfa74a0fdbbe5b3d1d1733471fe2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "31a1f98f41e6bd707ec4163c14b07193c9edfa74a0fdbbe5b3d1d1733471fe2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "31a1f98f41e6bd707ec4163c14b07193c9edfa74a0fdbbe5b3d1d1733471fe2d" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "31a1f98f41e6bd707ec4163c14b07193c9edfa74a0fdbbe5b3d1d1733471fe2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "31a1f98f41e6bd707ec4163c14b07193c9edfa74a0fdbbe5b3d1d1733471fe2d" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling unicode-ident v1.0.19
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]     Checking log v0.4.28
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]     Checking csv-core v0.1.13
[INFO] [stderr]     Checking anstyle v1.0.13
[INFO] [stderr]     Checking colorchoice v1.0.4
[INFO] [stderr]     Checking unicode-width v0.1.14
[INFO] [stderr]     Checking endian-type v0.1.2
[INFO] [stderr]     Checking anstyle-query v1.1.4
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.1
[INFO] [stderr]     Checking unicode-segmentation v1.12.0
[INFO] [stderr]     Checking encode_unicode v1.0.0
[INFO] [stderr]     Checking nibble_vec v0.1.0
[INFO] [stderr]     Checking home v0.5.12
[INFO] [stderr]     Checking jiff v0.2.15
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking radix_trie v0.2.1
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking dirs-sys-next v0.1.2
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking memmap2 v0.9.8
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking dirs-next v2.0.0
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking term v0.7.0
[INFO] [stderr]     Checking fd-lock v4.0.4
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking csv v1.4.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking prettytable-rs v0.10.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking rustyline v14.0.0
[INFO] [stderr]     Checking env_filter v0.1.4
[INFO] [stderr]     Checking env_logger v0.11.8
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking db-engine v1.3.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Literal`
[INFO] [stdout]    --> src/plan/optimizer.rs:265:43
[INFO] [stdout]     |
[INFO] [stdout] 265 |     use crate::sql::ast::{BinaryOperator, Literal};
[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 imports: `ColumnDef`, `DataType`, and `TableSchema`
[INFO] [stdout]    --> src/plan/physical.rs:118:32
[INFO] [stdout]     |
[INFO] [stdout] 118 |     use crate::common::types::{TableSchema, ColumnDef, DataType};
[INFO] [stdout]     |                                ^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write_page` and `read_page` are never used
[INFO] [stdout]    --> src/fm/file_handler.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl FileHandler {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn write_page(&self, page_id: PageId, data: &[u8]) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn read_page(&self, page_id: PageId, buffer: &mut [u8]) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FREE_LIST_SIZE` is never used
[INFO] [stdout]  --> src/fm/file_header.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const FREE_LIST_SIZE: usize = 1024; // 自由列表最大条目数
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_serialized_size` is never used
[INFO] [stdout]   --> src/fm/file_header.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl FileHeader {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn get_serialized_size(&self) -> Result<usize, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `open_file` is never used
[INFO] [stdout]   --> src/fm/file_manager.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl FileManager {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn open_file(path: &str) -> Result<FileHandler, String> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_table_handler`, `get_open_tables`, `is_table_open`, `table_exists`, and `close_all_tables` are never used
[INFO] [stdout]    --> src/rm/table_manager.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl TableManager {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn get_table_handler(&self, table_name: &str) -> Option<&TableHandler> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn get_open_tables(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn is_table_open(&self, table_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn table_exists(&self, table_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn close_all_tables(&mut self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `table_name` and `schema` are never read
[INFO] [stdout]   --> src/rm/table_handler.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct TableHandler {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 11 |     pub table_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 12 |     pub schema: TableSchema,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TableHandler` 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 `get_page_stats` and `get_table_stats` are never used
[INFO] [stdout]    --> src/rm/table_handler.rs:441:12
[INFO] [stdout]     |
[INFO] [stdout]  21 | impl TableHandler {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 441 |     pub fn get_page_stats(&mut self, page_id: PageId) -> Result<crate::pm::page_handler::PageStats, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 459 |     pub fn get_table_stats(&mut self) -> Result<TableStats, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TableStats` is never constructed
[INFO] [stdout]    --> src/rm/table_handler.rs:484:12
[INFO] [stdout]     |
[INFO] [stdout] 484 | pub struct TableStats {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print_summary` is never used
[INFO] [stdout]    --> src/rm/table_handler.rs:493:12
[INFO] [stdout]     |
[INFO] [stdout] 492 | impl TableStats {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 493 |     pub fn print_summary(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_var_ptrs` and `serialized_size` are never used
[INFO] [stdout]   --> src/rm/record_manager.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Record {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn with_var_ptrs(fixed_part: Vec<u8>, var_ptrs: Vec<LongDataPtr>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn serialized_size(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/rm/record_manager.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl RecordManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn abort_transaction(&mut self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn get_current_txid(&self) -> Option<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn get(&mut self, table: &str, rid: RID) -> Result<Record, String> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn get_raw(&mut self, table: &str, rid: RID) -> Result<Vec<u8>, String> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn delete(&mut self, table: &str, rid: RID) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn update(&mut self, table: &str, rid: RID, new_record: &[u8]) -> Result<RID, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn drop_table(&mut self, table: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn close_table(&mut self, table: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     pub fn get_table_stats(&mut self, table_name: &str) -> Result<crate::rm::table_handler::TableStats, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 |     pub fn get_open_tables(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn is_table_open(&self, table: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 393 |     pub fn get_active_txn_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     pub fn store_var_data(&mut self, table: &str, data: &[u8]) -> Result<LongDataPtr, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     pub fn load_var_data(&mut self, table: &str, ptr: &LongDataPtr) -> Result<Vec<u8>, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 455 |     pub fn release_var_data(&mut self, table: &str, ptr: &LongDataPtr) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `abort`, `log_delete`, `log_update`, `crash_recovery`, `get_active_txn_count`, and `get_next_txid` are never used
[INFO] [stdout]    --> src/rm/transaction_logger.rs:81:12
[INFO] [stdout]     |
[INFO] [stdout]  33 | impl TransactionLogger {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn abort(&mut self, txid: u64) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn log_delete(&mut self, txid: u64, table: String, rid: RID) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn log_update(&mut self, txid: u64, table: String, rid: RID, new_data: Vec<u8>) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn crash_recovery(&self) -> Result<Vec<LogRecord>, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub fn get_active_txn_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub fn get_next_txid(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `path`, and `ix_manager` are never read
[INFO] [stdout]   --> src/rm/database_manager.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct DatabaseContext {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 64 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 65 |     pub path: PathBuf,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub ix_manager: IXManager,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_stats` is never used
[INFO] [stdout]    --> src/pm/page_handler.rs:246:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl<'a> PageHandler<'a> {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn get_stats(&self) -> Result<PageStats, String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PageStats` is never constructed
[INFO] [stdout]    --> src/pm/page_handler.rs:285:12
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct PageStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `slot_utilization` is never used
[INFO] [stdout]    --> src/pm/page_handler.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 292 | impl PageStats {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 293 |     pub fn slot_utilization(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_valid_data_page` is never used
[INFO] [stdout]   --> src/pm/page_header.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl PageHeader {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn is_valid_data_page(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `page_id` is never read
[INFO] [stdout]   --> src/pm/long_data.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct LongDataPage<'a> {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 75 |     pub data: &'a mut [u8], // 引用 BufferManager 中的页数据
[INFO] [stdout] 76 |     pub page_id: PageId,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_available_space` and `clear` are never used
[INFO] [stdout]    --> src/pm/long_data.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl<'a> LongDataPage<'a> {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn get_available_space(&self) -> Result<usize, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn clear(&mut self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `deserialize` is never used
[INFO] [stdout]   --> src/ix/node.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl BPTreeNode {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn deserialize(data: &[u8]) -> Result<Self, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ix/errors.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |     IOError(String),
[INFO] [stdout]    |     ------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IXError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 12 -     IOError(String),
[INFO] [stdout] 12 +     IOError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `DuplicateKey`, `PageOverflow`, `PageUnderflow`, and `EOF` are never constructed
[INFO] [stdout]   --> src/ix/errors.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum IXError {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  8 |     DuplicateKey,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]  9 |     KeyNotFound,
[INFO] [stdout] 10 |     PageOverflow,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 11 |     PageUnderflow,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 12 |     IOError(String),
[INFO] [stdout] 13 |     EOF,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IXError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Expression` is never constructed
[INFO] [stdout]   --> src/sql/ast.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub enum SelectField {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 93 |     Expression(String),     // 表达式（简化版）
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SelectField` 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: variant `Plus` is never constructed
[INFO] [stdout]    --> src/sql/ast.rs:180:5
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub enum UnaryOperator {
[INFO] [stdout]     |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 180 |     Plus,   // +（正号）
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UnaryOperator` 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: method `peek` is never used
[INFO] [stdout]    --> src/sql/lexer.rs:188:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | impl Lexer {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 188 |     fn peek(&self) -> Option<char> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `UnsupportedFeature` is never constructed
[INFO] [stdout]   --> src/sql/parser.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub enum ParseError {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 54 |     UnsupportedFeature {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseError` 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: trait `Executor` is never used
[INFO] [stdout]   --> src/exec/iterator.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub trait Executor {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ExecutorBox` is never used
[INFO] [stdout]   --> src/exec/iterator.rs:63:10
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub type ExecutorBox = Box<dyn Executor>;
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SeqScanExecutor` is never constructed
[INFO] [stdout]   --> src/exec/scan.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct SeqScanExecutor {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `make_rid`, `load_page_slot_count`, `is_slot_valid`, `read_record_at_rid`, and `skip_deleted_records` are never used
[INFO] [stdout]    --> src/exec/scan.rs:39:12
[INFO] [stdout]     |
[INFO] [stdout]  33 | impl SeqScanExecutor {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  39 |     pub fn new(table_name: String, table_handler: TableHandler) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  52 |     fn make_rid(&self) -> RID {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     fn load_page_slot_count(&mut self, page_id: u32) -> Result<u16, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     fn is_slot_valid(&mut self, rid: RID) -> Result<bool, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     fn read_record_at_rid(&mut self, rid: RID) -> Result<Vec<u8>, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn skip_deleted_records(&mut self) -> Result<bool, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FilterExecutor` is never constructed
[INFO] [stdout]   --> src/exec/filter.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct FilterExecutor {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `evaluate_predicate` are never used
[INFO] [stdout]   --> src/exec/filter.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl FilterExecutor {
[INFO] [stdout]    | ------------------- associated functions in this implementation
[INFO] [stdout] 18 |     // 创建新的过滤执行器
[INFO] [stdout] 19 |     pub fn new(child: Box<dyn Executor>, predicate: Expression) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn evaluate_predicate(predicate: &Expression, _record: &ExecutorRecord) -> Result<bool, String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `JoinState` is never used
[INFO] [stdout]   --> src/exec/join.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | enum JoinState {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NestedLoopJoinExecutor` is never constructed
[INFO] [stdout]   --> src/exec/join.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct NestedLoopJoinExecutor {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `evaluate_join_condition`, `merge_records`, and `reset_right_scan` are never used
[INFO] [stdout]   --> src/exec/join.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl NestedLoopJoinExecutor {
[INFO] [stdout]    | --------------------------- associated items in this implementation
[INFO] [stdout] 38 |     // 创建新的 Join 执行器
[INFO] [stdout] 39 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     fn evaluate_join_condition(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     fn merge_records(left: &ExecutorRecord, right: &ExecutorRecord) -> ExecutorRecord {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     fn reset_right_scan(&mut self) -> Result<(), String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `RowsAffected` is never constructed
[INFO] [stdout]   --> src/exec/statement_executor.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub enum ExecutionResult {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 75 |     RowsAffected(usize),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExecutionResult` 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: variants `LexerError`, `ParserError`, `ExecutionError`, and `NoDatabaseSelected` are never constructed
[INFO] [stdout]    --> src/exec/statement_executor.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout]  98 | pub enum ExecutorError {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 102 |     LexerError(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 103 |     ParserError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 104 |     ExecutionError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 105 |     NoDatabaseSelected,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExecutorError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LogicalPlan` is never used
[INFO] [stdout]   --> src/plan/logical.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum LogicalPlan {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `JoinType` is never used
[INFO] [stdout]   --> src/plan/logical.rs:50:10
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub enum JoinType {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `node_type`, `height`, `table_names`, and `format_tree` are never used
[INFO] [stdout]    --> src/plan/logical.rs:70:12
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl LogicalPlan {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout]  69 |     // 获取当前计划节点的类型名称（用于调试）
[INFO] [stdout]  70 |     pub fn node_type(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn height(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn table_names(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn format_tree(&self, indent: usize) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `TableNotFound`, `ColumnNotFound`, `InvalidColumnRef`, `NoFromClause`, and `EmptySelectFields` are never constructed
[INFO] [stdout]   --> src/plan/planner.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum PlannerError {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] 13 |     // 表不存在
[INFO] [stdout] 14 |     TableNotFound(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 15 |     // 列不存在
[INFO] [stdout] 16 |     ColumnNotFound(String, String), // (column_name, table_name)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     // 无效的列引用
[INFO] [stdout] 18 |     InvalidColumnRef(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |     // 没有 FROM 子句
[INFO] [stdout] 20 |     NoFromClause,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 21 |     // SELECT 字段为空
[INFO] [stdout] 22 |     EmptySelectFields,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlannerError` 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: struct `Planner` is never constructed
[INFO] [stdout]   --> src/plan/planner.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct Planner {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `plan_select`, `verify_table_exists`, `verify_column_exists`, `extract_projection_columns`, and `extract_columns_from_expression` are never used
[INFO] [stdout]    --> src/plan/planner.rs:54:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl Planner {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  53 |     // 创建新的规划器
[INFO] [stdout]  54 |     pub fn new(catalog: CatalogManager) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn plan_select(&self, stmt: &SelectStmt) -> Result<LogicalPlan, PlannerError> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn verify_table_exists(&self, table_name: &str) -> Result<(), PlannerError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn verify_column_exists(&self, table_name: &str, column_name: &str) -> Result<(), PlannerError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn extract_projection_columns(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     fn extract_columns_from_expression(&self, expr: &Expression) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Optimizer` is never constructed
[INFO] [stdout]   --> src/plan/optimizer.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Optimizer;
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/plan/optimizer.rs:15:12
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl Optimizer {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout]  14 |     // 优化逻辑计划
[INFO] [stdout]  15 |     pub fn optimize(plan: LogicalPlan) -> LogicalPlan {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  35 |     fn pushdown_predicates(plan: LogicalPlan) -> LogicalPlan {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     fn handle_filter(child: LogicalPlan, predicate: Expression) -> LogicalPlan {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn pushdown_filter_over_join(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     fn extract_table_names(plan: &LogicalPlan) -> HashSet<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     fn extract_columns_from_expression(expr: &Expression) -> HashSet<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     fn column_belongs_to_table(column: &str, tables: &HashSet<String>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `TableNotFound` and `Other` are never constructed
[INFO] [stdout]   --> src/plan/physical.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum PhysicalPlannerError {
[INFO] [stdout]    |          -------------------- variants in this enum
[INFO] [stdout] 15 |     // 表不存在或无法打开
[INFO] [stdout] 16 |     TableNotFound(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 17 |     // 其他错误
[INFO] [stdout] 18 |     Other(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PhysicalPlannerError` 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: struct `PhysicalPlanner` is never constructed
[INFO] [stdout]   --> src/plan/physical.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct PhysicalPlanner {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `plan`, `convert_to_executor`, and `create_seq_scan_executor` are never used
[INFO] [stdout]   --> src/plan/physical.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl PhysicalPlanner {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 40 |     // 创建新的物理规划器
[INFO] [stdout] 41 |     pub fn new(table_manager: TableManager) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn plan(&mut self, logical_plan: LogicalPlan) -> Result<ExecutorBox, PhysicalPlannerError> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn convert_to_executor(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     fn create_seq_scan_executor(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write_page` and `read_page` are never used
[INFO] [stdout]    --> src/fm/file_handler.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl FileHandler {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn write_page(&self, page_id: PageId, data: &[u8]) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn read_page(&self, page_id: PageId, buffer: &mut [u8]) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FREE_LIST_SIZE` is never used
[INFO] [stdout]  --> src/fm/file_header.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const FREE_LIST_SIZE: usize = 1024; // 自由列表最大条目数
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_serialized_size` is never used
[INFO] [stdout]   --> src/fm/file_header.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl FileHeader {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn get_serialized_size(&self) -> Result<usize, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `open_file` is never used
[INFO] [stdout]   --> src/fm/file_manager.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl FileManager {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn open_file(path: &str) -> Result<FileHandler, String> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_table_handler`, `get_open_tables`, `is_table_open`, `table_exists`, and `close_all_tables` are never used
[INFO] [stdout]    --> src/rm/table_manager.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl TableManager {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn get_table_handler(&self, table_name: &str) -> Option<&TableHandler> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn get_open_tables(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn is_table_open(&self, table_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn table_exists(&self, table_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn close_all_tables(&mut self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `table_name` and `schema` are never read
[INFO] [stdout]   --> src/rm/table_handler.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct TableHandler {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 11 |     pub table_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 12 |     pub schema: TableSchema,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TableHandler` 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 `get_page_stats` and `get_table_stats` are never used
[INFO] [stdout]    --> src/rm/table_handler.rs:441:12
[INFO] [stdout]     |
[INFO] [stdout]  21 | impl TableHandler {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 441 |     pub fn get_page_stats(&mut self, page_id: PageId) -> Result<crate::pm::page_handler::PageStats, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 459 |     pub fn get_table_stats(&mut self) -> Result<TableStats, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TableStats` is never constructed
[INFO] [stdout]    --> src/rm/table_handler.rs:484:12
[INFO] [stdout]     |
[INFO] [stdout] 484 | pub struct TableStats {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print_summary` is never used
[INFO] [stdout]    --> src/rm/table_handler.rs:493:12
[INFO] [stdout]     |
[INFO] [stdout] 492 | impl TableStats {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 493 |     pub fn print_summary(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `serialized_size` is never used
[INFO] [stdout]   --> src/rm/record_manager.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Record {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn serialized_size(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/rm/record_manager.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl RecordManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn abort_transaction(&mut self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn get_current_txid(&self) -> Option<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn get(&mut self, table: &str, rid: RID) -> Result<Record, String> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn get_raw(&mut self, table: &str, rid: RID) -> Result<Vec<u8>, String> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn delete(&mut self, table: &str, rid: RID) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn update(&mut self, table: &str, rid: RID, new_record: &[u8]) -> Result<RID, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn drop_table(&mut self, table: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn close_table(&mut self, table: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     pub fn get_table_stats(&mut self, table_name: &str) -> Result<crate::rm::table_handler::TableStats, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 |     pub fn get_open_tables(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn is_table_open(&self, table: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 393 |     pub fn get_active_txn_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     pub fn store_var_data(&mut self, table: &str, data: &[u8]) -> Result<LongDataPtr, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     pub fn load_var_data(&mut self, table: &str, ptr: &LongDataPtr) -> Result<Vec<u8>, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 455 |     pub fn release_var_data(&mut self, table: &str, ptr: &LongDataPtr) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `abort`, `log_delete`, `log_update`, `crash_recovery`, `get_active_txn_count`, and `get_next_txid` are never used
[INFO] [stdout]    --> src/rm/transaction_logger.rs:81:12
[INFO] [stdout]     |
[INFO] [stdout]  33 | impl TransactionLogger {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn abort(&mut self, txid: u64) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn log_delete(&mut self, txid: u64, table: String, rid: RID) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn log_update(&mut self, txid: u64, table: String, rid: RID, new_data: Vec<u8>) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn crash_recovery(&self) -> Result<Vec<LogRecord>, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub fn get_active_txn_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub fn get_next_txid(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `path`, and `ix_manager` are never read
[INFO] [stdout]   --> src/rm/database_manager.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct DatabaseContext {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 64 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 65 |     pub path: PathBuf,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub ix_manager: IXManager,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_stats` is never used
[INFO] [stdout]    --> src/pm/page_handler.rs:246:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl<'a> PageHandler<'a> {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn get_stats(&self) -> Result<PageStats, String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PageStats` is never constructed
[INFO] [stdout]    --> src/pm/page_handler.rs:285:12
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub struct PageStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `slot_utilization` is never used
[INFO] [stdout]    --> src/pm/page_handler.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 292 | impl PageStats {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 293 |     pub fn slot_utilization(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_valid_data_page` is never used
[INFO] [stdout]   --> src/pm/page_header.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl PageHeader {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn is_valid_data_page(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `page_id` is never read
[INFO] [stdout]   --> src/pm/long_data.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct LongDataPage<'a> {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 75 |     pub data: &'a mut [u8], // 引用 BufferManager 中的页数据
[INFO] [stdout] 76 |     pub page_id: PageId,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_available_space` and `clear` are never used
[INFO] [stdout]    --> src/pm/long_data.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl<'a> LongDataPage<'a> {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn get_available_space(&self) -> Result<usize, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn clear(&mut self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ix/errors.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |     IOError(String),
[INFO] [stdout]    |     ------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IXError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 12 -     IOError(String),
[INFO] [stdout] 12 +     IOError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `DuplicateKey`, `PageOverflow`, `PageUnderflow`, and `EOF` are never constructed
[INFO] [stdout]   --> src/ix/errors.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum IXError {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  8 |     DuplicateKey,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]  9 |     KeyNotFound,
[INFO] [stdout] 10 |     PageOverflow,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 11 |     PageUnderflow,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 12 |     IOError(String),
[INFO] [stdout] 13 |     EOF,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IXError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Expression` is never constructed
[INFO] [stdout]   --> src/sql/ast.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub enum SelectField {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 93 |     Expression(String),     // 表达式（简化版）
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SelectField` 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: variant `Plus` is never constructed
[INFO] [stdout]    --> src/sql/ast.rs:180:5
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub enum UnaryOperator {
[INFO] [stdout]     |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 180 |     Plus,   // +（正号）
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UnaryOperator` 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: method `peek` is never used
[INFO] [stdout]    --> src/sql/lexer.rs:188:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | impl Lexer {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 188 |     fn peek(&self) -> Option<char> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `UnsupportedFeature` is never constructed
[INFO] [stdout]   --> src/sql/parser.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub enum ParseError {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 54 |     UnsupportedFeature {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseError` 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: method `close` is never used
[INFO] [stdout]   --> src/exec/iterator.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub trait Executor {
[INFO] [stdout]    |           -------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 57 |     fn close(&mut self) -> Result<(), String> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `table_name` is never read
[INFO] [stdout]   --> src/exec/scan.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct SeqScanExecutor {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 22 |     table_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `join_type` is never read
[INFO] [stdout]   --> src/exec/join.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct NestedLoopJoinExecutor {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     join_type: JoinType,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_right_scan` is never used
[INFO] [stdout]   --> src/exec/join.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl NestedLoopJoinExecutor {
[INFO] [stdout]    | --------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     fn reset_right_scan(&mut self) -> Result<(), String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `RowsAffected` is never constructed
[INFO] [stdout]   --> src/exec/statement_executor.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub enum ExecutionResult {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 75 |     RowsAffected(usize),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExecutionResult` 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: variants `LexerError`, `ParserError`, `ExecutionError`, and `NoDatabaseSelected` are never constructed
[INFO] [stdout]    --> src/exec/statement_executor.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout]  98 | pub enum ExecutorError {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 102 |     LexerError(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 103 |     ParserError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 104 |     ExecutionError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 105 |     NoDatabaseSelected,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExecutorError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Right` and `Full` are never constructed
[INFO] [stdout]   --> src/plan/logical.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub enum JoinType {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 53 |     Right,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 54 |     Full,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JoinType` 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: variant `InvalidColumnRef` is never constructed
[INFO] [stdout]   --> src/plan/planner.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum PlannerError {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 18 |     InvalidColumnRef(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlannerError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `memmap2`
[INFO] [stderr]  --> Cargo.toml:5:1
[INFO] [stderr]   |
[INFO] [stderr] 5 | memmap2 = "0.9"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `memmap2`
[INFO] [stderr] warning: unused dependency `nom`
[INFO] [stderr]  --> Cargo.toml:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | nom = "7.1"
[INFO] [stderr]   | ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: consider removing the dependency on `nom`
[INFO] [stderr] warning: `db-engine` (manifest) generated 2 warnings
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.50s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.28.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "31a1f98f41e6bd707ec4163c14b07193c9edfa74a0fdbbe5b3d1d1733471fe2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "31a1f98f41e6bd707ec4163c14b07193c9edfa74a0fdbbe5b3d1d1733471fe2d", kill_on_drop: false }`
[INFO] [stdout] 31a1f98f41e6bd707ec4163c14b07193c9edfa74a0fdbbe5b3d1d1733471fe2d
