[INFO] cloning repository https://github.com/ccckmit/sql4 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ccckmit/sql4" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fccckmit%2Fsql4", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fccckmit%2Fsql4'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 20a2ae63c92dd4daf66bed65358bfe4a6ceda40b [INFO] testing ccckmit/sql4 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fccckmit%2Fsql4" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/ccckmit/sql4 [INFO] finished tweaking git repo https://github.com/ccckmit/sql4 [INFO] tweaked toml for git repo https://github.com/ccckmit/sql4 written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/ccckmit/sql4 on toolchain 1.100.0-beta.1 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/ccckmit/sql4 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] fcbac40c1409013e63d169fc16008e975aba882725acc2e9deb4b8f41f3241d9 [INFO] running `Command { std: "docker" "start" "fcbac40c1409013e63d169fc16008e975aba882725acc2e9deb4b8f41f3241d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fcbac40c1409013e63d169fc16008e975aba882725acc2e9deb4b8f41f3241d9", 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" "fcbac40c1409013e63d169fc16008e975aba882725acc2e9deb4b8f41f3241d9" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fcbac40c1409013e63d169fc16008e975aba882725acc2e9deb4b8f41f3241d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fcbac40c1409013e63d169fc16008e975aba882725acc2e9deb4b8f41f3241d9" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling sql4 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: associated items `open`, `is_empty`, `flush`, and `alloc_node` are never used [INFO] [stdout] --> src/btree/tree.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl BPlusTree { [INFO] [stdout] | ----------------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn open(order: usize, storage: S, root: usize, size: usize) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn is_empty(&self) -> bool { self.size == 0 } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 77 | pub fn root_page(&self) -> usize { self.root } [INFO] [stdout] 78 | pub fn flush(&mut self) { self.storage.flush(); } [INFO] [stdout] | ^^^^^ [INFO] [stdout] 79 | [INFO] [stdout] 80 | fn alloc_node(&mut self, node: Node) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `open`, `root_page`, `flush`, `reload`, and `load_all` are never used [INFO] [stdout] --> src/catalog/catalog.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl Catalog { [INFO] [stdout] | --------------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn open(storage: S, root_page: usize) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn root_page(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn flush(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn reload(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | fn load_all(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_meta` is never used [INFO] [stdout] --> src/catalog/meta.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn decode_meta(bytes: &[u8]) -> TableMeta { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_str` is never used [INFO] [stdout] --> src/catalog/meta.rs:93:4 [INFO] [stdout] | [INFO] [stdout] 93 | fn decode_str(buf: &[u8]) -> (String, usize) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tag_datatype` is never used [INFO] [stdout] --> src/catalog/meta.rs:108:4 [INFO] [stdout] | [INFO] [stdout] 108 | fn tag_datatype(tag: u8) -> DataType { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `insert_with_id`, `update`, `delete`, and `row_count` are never used [INFO] [stdout] --> src/fts/fts_table.rs:137:12 [INFO] [stdout] | [INFO] [stdout] 113 | impl FtsTable { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn insert_with_id(&mut self, rowid: u64, values: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn update(&mut self, rowid: u64, values: Vec) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | pub fn delete(&mut self, rowid: u64) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 169 | pub fn row_count(&self) -> usize { self.storage.len() } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `search_and`, `search_or`, `doc_count`, and `term_count` are never used [INFO] [stdout] --> src/fts/index.rs:183:12 [INFO] [stdout] | [INFO] [stdout] 94 | impl InvertedIndex { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 183 | pub fn search_and(&mut self, terms: &[&str]) -> Vec<(u64, f64)> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 212 | pub fn search_or(&mut self, terms: &[&str]) -> Vec<(u64, f64)> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 301 | pub fn doc_count(&self) -> u64 { self.n_docs } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 302 | [INFO] [stdout] 303 | pub fn term_count(&mut self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `terms` is never used [INFO] [stdout] --> src/fts/tokenizer.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 61 | impl Tokenizer { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn terms(&self, text: &str) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PAGE_SIZE` is never used [INFO] [stdout] --> src/pager/codec.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | pub const PAGE_SIZE: usize = 4096; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NONE_PAGE` is never used [INFO] [stdout] --> src/pager/codec.rs:22:7 [INFO] [stdout] | [INFO] [stdout] 22 | const NONE_PAGE: u32 = 0xFFFF_FFFF; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_node` is never used [INFO] [stdout] --> src/pager/codec.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn encode_node(node: &Node) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_key` is never used [INFO] [stdout] --> src/pager/codec.rs:67:4 [INFO] [stdout] | [INFO] [stdout] 67 | fn encode_key(buf: &mut Vec, key: &Key) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_bytes` is never used [INFO] [stdout] --> src/pager/codec.rs:82:4 [INFO] [stdout] | [INFO] [stdout] 82 | fn encode_bytes(buf: &mut Vec, data: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_node` is never used [INFO] [stdout] --> src/pager/codec.rs:91:8 [INFO] [stdout] | [INFO] [stdout] 91 | pub fn decode_node(page: &[u8]) -> Node { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_key` is never used [INFO] [stdout] --> src/pager/codec.rs:149:4 [INFO] [stdout] | [INFO] [stdout] 149 | fn decode_key(buf: &[u8]) -> (Key, usize) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_bytes` is never used [INFO] [stdout] --> src/pager/codec.rs:163:4 [INFO] [stdout] | [INFO] [stdout] 163 | fn decode_bytes(buf: &[u8]) -> (Vec, usize) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `page_count`, `flush`, `begin_txn`, `commit_txn`, and `rollback_txn` are never used [INFO] [stdout] --> src/pager/storage.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub trait Storage { [INFO] [stdout] | ------- methods in this trait [INFO] [stdout] ... [INFO] [stdout] 17 | fn page_count(&self) -> usize; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 18 | fn flush(&mut self); [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | fn begin_txn(&mut self) {} [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 22 | fn commit_txn(&mut self) {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 23 | fn rollback_txn(&mut self) {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DiskStorage` is never constructed [INFO] [stdout] --> src/pager/storage.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 72 | pub struct DiskStorage { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAGIC` is never used [INFO] [stdout] --> src/pager/storage.rs:80:7 [INFO] [stdout] | [INFO] [stdout] 80 | const MAGIC: &[u8; 8] = b"SQL4DB\0\0"; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VERSION` is never used [INFO] [stdout] --> src/pager/storage.rs:81:7 [INFO] [stdout] | [INFO] [stdout] 81 | const VERSION: u32 = 2; // 升版以包含 catalog_root 欄位 [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HEADER_OFFSET` is never used [INFO] [stdout] --> src/pager/storage.rs:82:7 [INFO] [stdout] | [INFO] [stdout] 82 | const HEADER_OFFSET: u64 = PAGE_SIZE as u64; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/pager/storage.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 84 | impl DiskStorage { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 85 | pub fn open>(path: P) -> std::io::Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn set_catalog_root(&mut self, root: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | fn write_header(&mut self) -> std::io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | fn read_header(&mut self) -> std::io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | fn page_offset(page_id: usize) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 146 | fn read_page_from_file(&mut self, page_id: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 155 | fn write_page_to_file(&mut self, page_id: u32, data: &[u8]) -> std::io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `WAL_MAGIC` is never used [INFO] [stdout] --> src/pager/wal.rs:38:7 [INFO] [stdout] | [INFO] [stdout] 38 | const WAL_MAGIC: &[u8; 8] = b"SQL4WAL\0"; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `WAL_VERSION` is never used [INFO] [stdout] --> src/pager/wal.rs:39:7 [INFO] [stdout] | [INFO] [stdout] 39 | const WAL_VERSION: u32 = 1; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `WAL_HEADER_SIZE` is never used [INFO] [stdout] --> src/pager/wal.rs:40:7 [INFO] [stdout] | [INFO] [stdout] 40 | const WAL_HEADER_SIZE: usize = 32; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FRAME_HEADER_SIZE` is never used [INFO] [stdout] --> src/pager/wal.rs:41:7 [INFO] [stdout] | [INFO] [stdout] 41 | const FRAME_HEADER_SIZE: usize = 24; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FRAME_SIZE` is never used [INFO] [stdout] --> src/pager/wal.rs:42:7 [INFO] [stdout] | [INFO] [stdout] 42 | const FRAME_SIZE: usize = FRAME_HEADER_SIZE + PAGE_SIZE; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FRAME_TYPE_DATA` is never used [INFO] [stdout] --> src/pager/wal.rs:44:7 [INFO] [stdout] | [INFO] [stdout] 44 | const FRAME_TYPE_DATA: u32 = 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FRAME_TYPE_COMMIT` is never used [INFO] [stdout] --> src/pager/wal.rs:45:7 [INFO] [stdout] | [INFO] [stdout] 45 | const FRAME_TYPE_COMMIT: u32 = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CHECKPOINT_THRESHOLD` is never used [INFO] [stdout] --> src/pager/wal.rs:48:7 [INFO] [stdout] | [INFO] [stdout] 48 | const CHECKPOINT_THRESHOLD: usize = 100; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Frame` is never constructed [INFO] [stdout] --> src/pager/wal.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | struct Frame { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `encode` and `decode` are never used [INFO] [stdout] --> src/pager/wal.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 61 | impl Frame { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 62 | fn encode(&self) -> Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | fn decode(buf: &[u8]) -> Option { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compute_checksum` is never used [INFO] [stdout] --> src/pager/wal.rs:89:4 [INFO] [stdout] | [INFO] [stdout] 89 | fn compute_checksum(data: &[u8]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_wal_header` is never used [INFO] [stdout] --> src/pager/wal.rs:99:4 [INFO] [stdout] | [INFO] [stdout] 99 | fn write_wal_header(file: &mut File, frame_count: u32) -> std::io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_wal_frame_count` is never used [INFO] [stdout] --> src/pager/wal.rs:110:4 [INFO] [stdout] | [INFO] [stdout] 110 | fn read_wal_frame_count(file: &mut File) -> std::io::Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Wal` is never constructed [INFO] [stdout] --> src/pager/wal.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 121 | pub struct Wal { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/pager/wal.rs:135:12 [INFO] [stdout] | [INFO] [stdout] 133 | impl Wal { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 134 | /// 開啟或建立 WAL 檔案,並 replay 已提交的 frame [INFO] [stdout] 135 | pub fn open>(db_path: P) -> std::io::Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn begin(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub fn commit(&mut self) -> std::io::Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 202 | pub fn rollback(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub fn read_page(&self, page_id: u32) -> Option<&[u8]> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 219 | pub fn write_page(&mut self, page_id: u32, data: Vec) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 234 | pub fn needs_checkpoint(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 240 | pub fn checkpoint(&mut self, mut write_back: F) -> std::io::Result<()> [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 257 | fn write_frame(&mut self, page_id: u32, frame_type: u32, txn_id: u32, data: &[u8]) -> std::io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 274 | fn replay(&mut self) -> std::io::Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Full` is never constructed [INFO] [stdout] --> src/parser/ast.rs:72:25 [INFO] [stdout] | [INFO] [stdout] 71 | pub enum JoinKind { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] 72 | Inner, Left, Right, Full, Cross, Natural, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `JoinKind` 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 `Default` is never constructed [INFO] [stdout] --> src/parser/ast.rs:141:5 [INFO] [stdout] | [INFO] [stdout] 137 | pub enum ColumnConstraint { [INFO] [stdout] | ---------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 141 | Default(Expr), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ColumnConstraint` 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 `Subquery` and `Cast` are never constructed [INFO] [stdout] --> src/parser/ast.rs:213:5 [INFO] [stdout] | [INFO] [stdout] 171 | pub enum Expr { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 213 | Subquery(Box), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | Cast { expr: Box, to: SqlType }, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Expr` 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 `Null` is never constructed [INFO] [stdout] --> src/parser/lexer.rs:14:35 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum Token { [INFO] [stdout] | ----- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 14 | Index, On, Primary, Key, Not, Null, Unique, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Token` 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: associated items `empty`, `row_count`, and `display` are never used [INFO] [stdout] --> src/planner/executor.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl ResultSet { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 23 | pub fn empty() -> Self { Self::default() } [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn row_count(&self) -> usize { self.rows.len() } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 33 | [INFO] [stdout] 34 | pub fn display(&self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `alias` is never read [INFO] [stdout] --> src/planner/plan.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 12 | SeqScan { [INFO] [stdout] | ------- field in this variant [INFO] [stdout] 13 | table: String, [INFO] [stdout] 14 | alias: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Plan` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `alias` is never read [INFO] [stdout] --> src/planner/plan.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 19 | IndexScan { [INFO] [stdout] | --------- field in this variant [INFO] [stdout] 20 | table: String, [INFO] [stdout] 21 | alias: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Plan` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `stmt` is never read [INFO] [stdout] --> src/planner/plan.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 104 | CreateIndex { [INFO] [stdout] | ----------- field in this variant [INFO] [stdout] 105 | stmt: crate::parser::ast::CreateIndexStmt, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Plan` 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 `is_active` is never used [INFO] [stdout] --> src/planner/transaction.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 34 | impl TransactionManager { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn is_active(&self) -> bool { self.state == TxnState::Active } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Check` and `ForeignKey` are never constructed [INFO] [stdout] --> src/planner/constraints.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum Constraint { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 20 | Check { expr_sql: String }, // CHECK 運算式(原始 SQL) [INFO] [stdout] | ^^^^^ [INFO] [stdout] 21 | ForeignKey { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Constraint` 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: associated function `from_schema` is never used [INFO] [stdout] --> src/planner/constraints.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 34 | impl TableConstraints { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn from_schema(schema: &Schema) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_fk_on_delete` is never used [INFO] [stdout] --> src/planner/constraints.rs:112:8 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn check_fk_on_delete( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_by_name`, `get`, and `display` are never used [INFO] [stdout] --> src/table/row.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl Row { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn get_by_name<'a>(&'a self, schema: &Schema, name: &str) -> Option<&'a Value> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn get(&self, idx: usize) -> Option<&Value> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn display(&self, schema: &Schema) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `not_null` is never used [INFO] [stdout] --> src/table/schema.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl Column { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn not_null(mut self) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> src/table/table.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct Table { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 26 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `open`, `range`, `is_empty`, and `flush` are never used [INFO] [stdout] --> src/table/table.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl Table { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn open(name: &str, schema: Schema, storage: S, root: usize, size: usize) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn range(&mut self, start: &Key, end: &Key) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn is_empty(&self) -> bool { self.tree.is_empty() } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn flush(&mut self) { self.tree.flush(); } [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `release` profile [optimized] target(s) in 6.30s [INFO] running `Command { std: "docker" "inspect" "fcbac40c1409013e63d169fc16008e975aba882725acc2e9deb4b8f41f3241d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fcbac40c1409013e63d169fc16008e975aba882725acc2e9deb4b8f41f3241d9" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling sql4 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: methods `is_empty` and `alloc_node` are never used [INFO] [stdout] --> src/btree/tree.rs:76:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl BPlusTree { [INFO] [stdout] | ----------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn is_empty(&self) -> bool { self.size == 0 } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | fn alloc_node(&mut self, node: Node) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reload` is never used [INFO] [stdout] --> src/catalog/catalog.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl Catalog { [INFO] [stdout] | --------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn reload(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `insert_with_id` and `row_count` are never used [INFO] [stdout] --> src/fts/fts_table.rs:137:12 [INFO] [stdout] | [INFO] [stdout] 113 | impl FtsTable { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn insert_with_id(&mut self, rowid: u64, values: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 169 | pub fn row_count(&self) -> usize { self.storage.len() } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `term_count` is never used [INFO] [stdout] --> src/fts/index.rs:303:12 [INFO] [stdout] | [INFO] [stdout] 94 | impl InvertedIndex { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 303 | pub fn term_count(&mut self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `page_count` is never used [INFO] [stdout] --> src/pager/storage.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub trait Storage { [INFO] [stdout] | ------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 17 | fn page_count(&self) -> usize; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `write_page_to_file` is never used [INFO] [stdout] --> src/pager/storage.rs:155:8 [INFO] [stdout] | [INFO] [stdout] 84 | impl DiskStorage { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 155 | fn write_page_to_file(&mut self, page_id: u32, data: &[u8]) -> std::io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `wal_path` is never read [INFO] [stdout] --> src/pager/wal.rs:122:5 [INFO] [stdout] | [INFO] [stdout] 121 | pub struct Wal { [INFO] [stdout] | --- field in this struct [INFO] [stdout] 122 | wal_path: PathBuf, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Full` is never constructed [INFO] [stdout] --> src/parser/ast.rs:72:25 [INFO] [stdout] | [INFO] [stdout] 71 | pub enum JoinKind { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] 72 | Inner, Left, Right, Full, Cross, Natural, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `JoinKind` 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 `Default` is never constructed [INFO] [stdout] --> src/parser/ast.rs:141:5 [INFO] [stdout] | [INFO] [stdout] 137 | pub enum ColumnConstraint { [INFO] [stdout] | ---------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 141 | Default(Expr), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ColumnConstraint` 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 `Subquery` and `Cast` are never constructed [INFO] [stdout] --> src/parser/ast.rs:213:5 [INFO] [stdout] | [INFO] [stdout] 171 | pub enum Expr { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 213 | Subquery(Box), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | Cast { expr: Box, to: SqlType }, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Expr` 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 `Null` is never constructed [INFO] [stdout] --> src/parser/lexer.rs:14:35 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum Token { [INFO] [stdout] | ----- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 14 | Index, On, Primary, Key, Not, Null, Unique, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Token` 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 `display` is never used [INFO] [stdout] --> src/planner/executor.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl ResultSet { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn display(&self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `alias` is never read [INFO] [stdout] --> src/planner/plan.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 12 | SeqScan { [INFO] [stdout] | ------- field in this variant [INFO] [stdout] 13 | table: String, [INFO] [stdout] 14 | alias: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Plan` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `alias` is never read [INFO] [stdout] --> src/planner/plan.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 19 | IndexScan { [INFO] [stdout] | --------- field in this variant [INFO] [stdout] 20 | table: String, [INFO] [stdout] 21 | alias: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Plan` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `stmt` is never read [INFO] [stdout] --> src/planner/plan.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 104 | CreateIndex { [INFO] [stdout] | ----------- field in this variant [INFO] [stdout] 105 | stmt: crate::parser::ast::CreateIndexStmt, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Plan` 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 `Check` and `ForeignKey` are never constructed [INFO] [stdout] --> src/planner/constraints.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum Constraint { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 20 | Check { expr_sql: String }, // CHECK 運算式(原始 SQL) [INFO] [stdout] | ^^^^^ [INFO] [stdout] 21 | ForeignKey { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Constraint` 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: associated function `from_schema` is never used [INFO] [stdout] --> src/planner/constraints.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 34 | impl TableConstraints { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn from_schema(schema: &Schema) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_fk_on_delete` is never used [INFO] [stdout] --> src/planner/constraints.rs:112:8 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn check_fk_on_delete( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get` and `display` are never used [INFO] [stdout] --> src/table/row.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl Row { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn get(&self, idx: usize) -> Option<&Value> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn display(&self, schema: &Schema) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> src/table/table.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct Table { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 26 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `open`, `range`, `is_empty`, and `flush` are never used [INFO] [stdout] --> src/table/table.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl Table { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn open(name: &str, schema: Schema, storage: S, root: usize, size: usize) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn range(&mut self, start: &Key, end: &Key) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn is_empty(&self) -> bool { self.tree.is_empty() } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn flush(&mut self) { self.tree.flush(); } [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `release` profile [optimized] target(s) in 11.03s [INFO] running `Command { std: "docker" "inspect" "fcbac40c1409013e63d169fc16008e975aba882725acc2e9deb4b8f41f3241d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fcbac40c1409013e63d169fc16008e975aba882725acc2e9deb4b8f41f3241d9" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }` [INFO] [stderr] warning: methods `is_empty` and `alloc_node` are never used [INFO] [stderr] --> src/btree/tree.rs:76:12 [INFO] [stderr] | [INFO] [stderr] 11 | impl BPlusTree { [INFO] [stderr] | ----------------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 76 | pub fn is_empty(&self) -> bool { self.size == 0 } [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 80 | fn alloc_node(&mut self, node: Node) -> usize { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: method `reload` is never used [INFO] [stderr] --> src/catalog/catalog.rs:121:12 [INFO] [stderr] | [INFO] [stderr] 39 | impl Catalog { [INFO] [stderr] | --------------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 121 | pub fn reload(&mut self) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `insert_with_id` and `row_count` are never used [INFO] [stderr] --> src/fts/fts_table.rs:137:12 [INFO] [stderr] | [INFO] [stderr] 113 | impl FtsTable { [INFO] [stderr] | ------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 137 | pub fn insert_with_id(&mut self, rowid: u64, values: Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 169 | pub fn row_count(&self) -> usize { self.storage.len() } [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `term_count` is never used [INFO] [stderr] --> src/fts/index.rs:303:12 [INFO] [stderr] | [INFO] [stderr] 94 | impl InvertedIndex { [INFO] [stderr] | ------------------ method in this implementation [INFO] [stderr] ... [INFO] [stderr] 303 | pub fn term_count(&mut self) -> usize { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `page_count` is never used [INFO] [stderr] --> src/pager/storage.rs:17:8 [INFO] [stderr] | [INFO] [stderr] 13 | pub trait Storage { [INFO] [stderr] | ------- method in this trait [INFO] [stderr] ... [INFO] [stderr] 17 | fn page_count(&self) -> usize; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `write_page_to_file` is never used [INFO] [stderr] --> src/pager/storage.rs:155:8 [INFO] [stderr] | [INFO] [stderr] 84 | impl DiskStorage { [INFO] [stderr] | ---------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 155 | fn write_page_to_file(&mut self, page_id: u32, data: &[u8]) -> std::io::Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `wal_path` is never read [INFO] [stderr] --> src/pager/wal.rs:122:5 [INFO] [stderr] | [INFO] [stderr] 121 | pub struct Wal { [INFO] [stderr] | --- field in this struct [INFO] [stderr] 122 | wal_path: PathBuf, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `Full` is never constructed [INFO] [stderr] --> src/parser/ast.rs:72:25 [INFO] [stderr] | [INFO] [stderr] 71 | pub enum JoinKind { [INFO] [stderr] | -------- variant in this enum [INFO] [stderr] 72 | Inner, Left, Right, Full, Cross, Natural, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `JoinKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `Default` is never constructed [INFO] [stderr] --> src/parser/ast.rs:141:5 [INFO] [stderr] | [INFO] [stderr] 137 | pub enum ColumnConstraint { [INFO] [stderr] | ---------------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 141 | Default(Expr), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ColumnConstraint` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variants `Subquery` and `Cast` are never constructed [INFO] [stderr] --> src/parser/ast.rs:213:5 [INFO] [stderr] | [INFO] [stderr] 171 | pub enum Expr { [INFO] [stderr] | ---- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 213 | Subquery(Box), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 216 | Cast { expr: Box, to: SqlType }, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `Null` is never constructed [INFO] [stderr] --> src/parser/lexer.rs:14:35 [INFO] [stderr] | [INFO] [stderr] 10 | pub enum Token { [INFO] [stderr] | ----- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 14 | Index, On, Primary, Key, Not, Null, Unique, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Token` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `display` is never used [INFO] [stderr] --> src/planner/executor.rs:34:12 [INFO] [stderr] | [INFO] [stderr] 22 | impl ResultSet { [INFO] [stderr] | -------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 34 | pub fn display(&self) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `alias` is never read [INFO] [stderr] --> src/planner/plan.rs:14:9 [INFO] [stderr] | [INFO] [stderr] 12 | SeqScan { [INFO] [stderr] | ------- field in this variant [INFO] [stderr] 13 | table: String, [INFO] [stderr] 14 | alias: Option, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Plan` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `alias` is never read [INFO] [stderr] --> src/planner/plan.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 19 | IndexScan { [INFO] [stderr] | --------- field in this variant [INFO] [stderr] 20 | table: String, [INFO] [stderr] 21 | alias: Option, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Plan` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `stmt` is never read [INFO] [stderr] --> src/planner/plan.rs:105:9 [INFO] [stderr] | [INFO] [stderr] 104 | CreateIndex { [INFO] [stderr] | ----------- field in this variant [INFO] [stderr] 105 | stmt: crate::parser::ast::CreateIndexStmt, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Plan` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variants `Check` and `ForeignKey` are never constructed [INFO] [stderr] --> src/planner/constraints.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 17 | pub enum Constraint { [INFO] [stderr] | ---------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 20 | Check { expr_sql: String }, // CHECK 運算式(原始 SQL) [INFO] [stderr] | ^^^^^ [INFO] [stderr] 21 | ForeignKey { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Constraint` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated function `from_schema` is never used [INFO] [stderr] --> src/planner/constraints.rs:40:12 [INFO] [stderr] | [INFO] [stderr] 34 | impl TableConstraints { [INFO] [stderr] | --------------------- associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 40 | pub fn from_schema(schema: &Schema) -> Self { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `check_fk_on_delete` is never used [INFO] [stderr] --> src/planner/constraints.rs:112:8 [INFO] [stderr] | [INFO] [stderr] 112 | pub fn check_fk_on_delete( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `get` and `display` are never used [INFO] [stderr] --> src/table/row.rs:44:12 [INFO] [stderr] | [INFO] [stderr] 33 | impl Row { [INFO] [stderr] | -------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 44 | pub fn get(&self, idx: usize) -> Option<&Value> { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 49 | pub fn display(&self, schema: &Schema) -> String { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `name` is never read [INFO] [stderr] --> src/table/table.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 25 | pub struct Table { [INFO] [stderr] | ----- field in this struct [INFO] [stderr] 26 | pub name: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `open`, `range`, `is_empty`, and `flush` are never used [INFO] [stderr] --> src/table/table.rs:42:12 [INFO] [stderr] | [INFO] [stderr] 31 | impl Table { [INFO] [stderr] | ------------------------- associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 42 | pub fn open(name: &str, schema: Schema, storage: S, root: usize, size: usize) -> Self { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 66 | pub fn range(&mut self, start: &Key, end: &Key) -> Vec { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 92 | pub fn is_empty(&self) -> bool { self.tree.is_empty() } [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 95 | pub fn flush(&mut self) { self.tree.flush(); } [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `sql4` (bin "sql4" test) generated 21 warnings [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.05s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/release/build/sql4/2c47f588442af657/out/sql4-2c47f588442af657) [INFO] [stdout] [INFO] [stdout] running 170 tests [INFO] [stdout] test btree::tree::tests::test_insert_and_search ... ok [INFO] [stdout] test btree::tree::tests::test_text_key ... ok [INFO] [stdout] test catalog::catalog::tests::drop_table ... ok [INFO] [stdout] test catalog::catalog::tests::multiple_tables ... ok [INFO] [stdout] test catalog::catalog::tests::update_meta ... ok [INFO] [stdout] test btree::tree::tests::test_disk_storage_persist ... ok [INFO] [stdout] test btree::tree::tests::test_range_search ... ok [INFO] [stdout] test catalog::catalog::tests::create_duplicate_fails ... ok [INFO] [stdout] test catalog::catalog::tests::disk_catalog_persist ... ok [INFO] [stdout] test btree::tree::tests::test_update ... ok [INFO] [stdout] test btree::tree::tests::test_delete ... ok [INFO] [stdout] test fts::fts_table::tests::parse_query_and ... ok [INFO] [stdout] test fts::index::tests::bm25_ordering ... ok [INFO] [stdout] test fts::fts_table::tests::parse_query_or ... ok [INFO] [stdout] test fts::fts_table::tests::parse_query_phrase ... ok [INFO] [stdout] test btree::tree::tests::test_insert_many_triggers_split ... ok [INFO] [stdout] test catalog::meta::tests::roundtrip_meta ... ok [INFO] [stdout] test fts::fts_table::tests::update_then_search ... ok [INFO] [stdout] test catalog::catalog::tests::create_and_get ... ok [INFO] [stdout] test fts::index::tests::mixed_language_search ... ok [INFO] [stdout] test fts::fts_table::tests::column_filter ... ok [INFO] [stdout] test fts::index::tests::doc_count ... ok [INFO] [stdout] test fts::fts_table::tests::delete_then_search ... ok [INFO] [stdout] test fts::index::tests::update_document ... ok [INFO] [stdout] test fts::tokenizer::tests::cjk_bigram ... ok [INFO] [stdout] test fts::fts_table::tests::search_and ... ok [INFO] [stdout] test fts::tokenizer::tests::english_basic ... ok [INFO] [stdout] test fts::tokenizer::tests::english_lowercase ... ok [INFO] [stdout] test fts::tokenizer::tests::english_punctuation ... ok [INFO] [stdout] test fts::fts_table::tests::search_phrase ... ok [INFO] [stdout] test fts::tokenizer::tests::dedup_terms ... ok [INFO] [stdout] test fts::tokenizer::tests::fullwidth_ascii ... ok [INFO] [stdout] test fts::tokenizer::tests::empty_string ... ok [INFO] [stdout] test fts::fts_table::tests::search_cjk ... ok [INFO] [stdout] test fts::tokenizer::tests::mixed_text ... ok [INFO] [stdout] test fts::tokenizer::tests::japanese ... ok [INFO] [stdout] test fts::fts_table::tests::search_no_result ... ok [INFO] [stdout] test fts::tokenizer::tests::numbers_and_letters ... ok [INFO] [stdout] test fts::tokenizer::tests::korean ... ok [INFO] [stdout] test interface::repl::tests::dot_schema ... ok [INFO] [stdout] test fts::index::tests::search_and ... ok [INFO] [stdout] test fts::tokenizer::tests::cjk_single_char ... ok [INFO] [stdout] test fts::index::tests::search_and_no_result ... ok [INFO] [stdout] test fts::fts_table::tests::search_single_term ... ok [INFO] [stdout] test fts::index::tests::search_or ... ok [INFO] [stdout] test fts::index::tests::search_english_term ... ok [INFO] [stdout] test fts::index::tests::remove_document ... ok [INFO] [stdout] test fts::fts_table::tests::search_or ... ok [INFO] [stdout] test fts::fts_table::tests::score_ordering ... ok [INFO] [stdout] test interface::repl::tests::aligned_output ... ok [INFO] [stdout] test interface::repl::tests::dot_tables_empty ... ok [INFO] [stdout] test interface::repl::tests::extract_match_query_test ... ok [INFO] [stdout] test interface::repl::tests::fts_or_query ... ok [INFO] [stdout] test interface::repl::tests::fts_match_cjk ... ok [INFO] [stdout] test interface::repl::tests::split_values_test ... ok [INFO] [stdout] test interface::repl::tests::history_tracking ... ok [INFO] [stdout] test pager::codec::tests::roundtrip_internal ... ok [INFO] [stdout] test interface::repl::tests::create_and_select ... ok [INFO] [stdout] test pager::storage::tests::catalog_root_persists ... ok [INFO] [stdout] test interface::repl::tests::fts_and_query ... ok [INFO] [stdout] test pager::codec::tests::roundtrip_leaf_integer ... ok [INFO] [stdout] test pager::codec::tests::roundtrip_leaf_text ... ok [INFO] [stdout] test fts::index::tests::search_cjk_term ... ok [INFO] [stdout] test interface::repl::tests::fts_create_and_search ... ok [INFO] [stdout] test pager::storage::tests::disk_crash_recovery ... ok [INFO] [stdout] test pager::storage::tests::disk_rollback ... ok [INFO] [stdout] test pager::wal::tests::checkpoint_clears_wal ... ok [INFO] [stdout] test pager::storage::tests::memory_alloc_write_read ... ok [INFO] [stdout] test pager::storage::tests::disk_write_and_read ... ok [INFO] [stdout] test pager::wal::tests::auto_commit_mode ... ok [INFO] [stdout] test parser::parser::tests::create_table ... ok [INFO] [stdout] test pager::wal::tests::replay_after_crash ... ok [INFO] [stdout] test parser::parser::tests::create_table_if_not_exists ... ok [INFO] [stdout] test parser::parser::tests::delete_stmt ... ok [INFO] [stdout] test pager::wal::tests::write_and_read_in_txn ... ok [INFO] [stdout] test parser::lexer::tests::basic_select ... ok [INFO] [stdout] test parser::parser::tests::drop_table ... ok [INFO] [stdout] test parser::lexer::tests::escaped_quote ... ok [INFO] [stdout] test parser::parser::tests::expr_between ... ok [INFO] [stdout] test parser::lexer::tests::line_comment ... ok [INFO] [stdout] test parser::parser::tests::expr_in_list ... ok [INFO] [stdout] test parser::lexer::tests::numbers ... ok [INFO] [stdout] test parser::lexer::tests::keywords_case_insensitive ... ok [INFO] [stdout] test pager::wal::tests::rollback_discards_dirty ... ok [INFO] [stdout] test interface::repl::tests::multi_statement ... ok [INFO] [stdout] test pager::wal::tests::partial_txn_not_replayed ... ok [INFO] [stdout] test parser::lexer::tests::operators ... ok [INFO] [stdout] test parser::lexer::tests::quoted_ident ... ok [INFO] [stdout] test parser::parser::tests::create_index ... ok [INFO] [stdout] test parser::parser::tests::select_order_limit ... ok [INFO] [stdout] test pager::wal::tests::checksum_corruption_ignored ... ok [INFO] [stdout] test parser::lexer::tests::string_literal ... ok [INFO] [stdout] test parser::parser::tests::function_call ... ok [INFO] [stdout] test parser::parser::tests::expr_is_null ... ok [INFO] [stdout] test parser::parser::tests::expr_like ... ok [INFO] [stdout] test parser::parser::tests::insert_multi_rows ... ok [INFO] [stdout] test parser::parser::tests::insert_with_columns ... ok [INFO] [stdout] test parser::parser::tests::select_star ... ok [INFO] [stdout] test parser::parser::tests::join_stmt ... ok [INFO] [stdout] test parser::parser::tests::select_where ... ok [INFO] [stdout] test planner::constraints::tests::composite_unique ... ok [INFO] [stdout] test parser::parser::tests::multi_statement ... ok [INFO] [stdout] test parser::parser::tests::transaction ... ok [INFO] [stdout] test planner::constraints::tests::from_ast_unique ... ok [INFO] [stdout] test parser::parser::tests::update_stmt ... ok [INFO] [stdout] test planner::constraints::tests::from_ast_not_null ... ok [INFO] [stdout] test planner::constraints::tests::not_null_fails ... ok [INFO] [stdout] test planner::constraints::tests::not_null_passes ... ok [INFO] [stdout] test planner::constraints::tests::unique_allows_multiple_nulls ... ok [INFO] [stdout] test planner::constraints::tests::unique_passes ... ok [INFO] [stdout] test planner::constraints::tests::unique_fails_on_duplicate ... ok [INFO] [stdout] test planner::datetime::tests::add_months ... ok [INFO] [stdout] test planner::datetime::tests::add_years ... ok [INFO] [stdout] test planner::datetime::tests::date_add_days ... ok [INFO] [stdout] test planner::datetime::tests::date_basic ... ok [INFO] [stdout] test planner::datetime::tests::date_start_of_year ... ok [INFO] [stdout] test planner::datetime::tests::date_start_of_month ... ok [INFO] [stdout] test planner::datetime::tests::date_subtract_days ... ok [INFO] [stdout] test planner::datetime::tests::datetime_basic ... ok [INFO] [stdout] test planner::datetime::tests::now_returns_string ... ok [INFO] [stdout] test planner::executor::tests::cte_basic ... ok [INFO] [stdout] test planner::executor::tests::drop_table ... ok [INFO] [stdout] test planner::datetime::tests::strftime_format ... ok [INFO] [stdout] test planner::executor::tests::select_count ... ok [INFO] [stdout] test planner::executor::tests::ifnull_coalesce ... ok [INFO] [stdout] test planner::executor::tests::select_limit_offset ... ok [INFO] [stdout] test planner::executor::tests::select_projection ... ok [INFO] [stdout] test planner::executor::tests::select_max_min ... ok [INFO] [stdout] test planner::executor::tests::select_order_by ... ok [INFO] [stdout] test planner::datetime::tests::julianday_epoch ... ok [INFO] [stdout] test planner::executor::tests::not_null_constraint ... ok [INFO] [stdout] test planner::executor::tests::datetime_functions ... ok [INFO] [stdout] test planner::datetime::tests::strftime_time ... ok [INFO] [stdout] test planner::executor::tests::inner_join ... ok [INFO] [stdout] test planner::executor::tests::create_and_select_all ... ok [INFO] [stdout] test planner::executor::tests::select_where_like ... ok [INFO] [stdout] test planner::executor::tests::string_functions ... ok [INFO] [stdout] test planner::datetime::tests::time_basic ... ok [INFO] [stdout] test planner::executor::tests::select_where_between ... ok [INFO] [stdout] test planner::executor::tests::select_where_eq ... ok [INFO] [stdout] test planner::executor::tests::cte_chained ... ok [INFO] [stdout] test planner::executor::tests::delete_row ... ok [INFO] [stdout] test planner::executor::tests::select_where_in ... ok [INFO] [stdout] test planner::executor::tests::nullif_test ... ok [INFO] [stdout] test planner::executor::tests::math_functions ... ok [INFO] [stdout] test planner::executor::tests::scalar_subquery ... ok [INFO] [stdout] test planner::executor::tests::string_functions_extended ... ok [INFO] [stdout] test planner::executor::tests::update_row ... ok [INFO] [stdout] test planner::executor::tests::subquery_in_where ... ok [INFO] [stdout] test planner::executor::tests::transaction_stmts ... ok [INFO] [stdout] test planner::executor::tests::unique_constraint ... ok [INFO] [stdout] test planner::planner::tests::delete_plan ... ok [INFO] [stdout] test planner::planner::tests::index_scan_on_pk ... ok [INFO] [stdout] test planner::planner::tests::insert_plan ... ok [INFO] [stdout] test planner::planner::tests::insert_unknown_table ... ok [INFO] [stdout] test planner::planner::tests::seq_scan ... ok [INFO] [stdout] test planner::planner::tests::order_limit ... ok [INFO] [stdout] test planner::planner::tests::update_plan ... ok [INFO] [stdout] test planner::planner::tests::join_plan ... ok [INFO] [stdout] test planner::transaction::tests::begin_commit_cycle ... ok [INFO] [stdout] test planner::planner::tests::seq_scan_with_filter ... ok [INFO] [stdout] test planner::planner::tests::transaction_plan ... ok [INFO] [stdout] test planner::transaction::tests::commit_without_begin_fails ... ok [INFO] [stdout] test planner::transaction::tests::double_begin_fails ... ok [INFO] [stdout] test planner::transaction::tests::rollback_without_begin_fails ... ok [INFO] [stdout] test planner::transaction::tests::rollback_returns_snapshot ... ok [INFO] [stdout] test table::serialize::tests::roundtrip_all_types ... ok [INFO] [stdout] test table::serialize::tests::roundtrip_null ... ok [INFO] [stdout] test table::serialize::tests::roundtrip_unicode_text ... ok [INFO] [stdout] test table::serialize::tests::row_get_by_name ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 170 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "fcbac40c1409013e63d169fc16008e975aba882725acc2e9deb4b8f41f3241d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fcbac40c1409013e63d169fc16008e975aba882725acc2e9deb4b8f41f3241d9", kill_on_drop: false }` [INFO] [stdout] fcbac40c1409013e63d169fc16008e975aba882725acc2e9deb4b8f41f3241d9