[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<S: Storage> BPlusTree<S> {
[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<S: Storage> Catalog<S> {
[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<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn update(&mut self, rowid: u64, values: Vec<String>) {
[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<String> {
[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<u8> {
[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<u8>, 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<u8>, 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<u8>, 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<P: AsRef<Path>>(path: P) -> std::io::Result<Self> {
[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<u8> {
[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<u8> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     fn decode(buf: &[u8]) -> Option<Frame> {
[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<u32> {
[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<P: AsRef<Path>>(db_path: P) -> std::io::Result<Self> {
[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<u8>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn needs_checkpoint(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn checkpoint<F>(&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<SelectStmt>),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     Cast { expr: Box<Expr>, 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<String>,
[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<String>,
[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<S: Storage> {
[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<S: Storage> Table<S> {
[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<Row> {
[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<S: Storage> BPlusTree<S> {
[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<S: Storage> Catalog<S> {
[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<String>) {
[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<SelectStmt>),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     Cast { expr: Box<Expr>, 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<String>,
[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<String>,
[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<S: Storage> {
[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<S: Storage> Table<S> {
[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<Row> {
[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<S: Storage> BPlusTree<S> {
[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<S: Storage> Catalog<S> {
[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<String>) {
[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<SelectStmt>),
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 216 |     Cast { expr: Box<Expr>, 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<String>,
[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<String>,
[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<S: Storage> {
[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<S: Storage> Table<S> {
[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<Row> {
[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
