[INFO] cloning repository https://github.com/theforecastingcompany/ts-indexer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/theforecastingcompany/ts-indexer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftheforecastingcompany%2Fts-indexer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftheforecastingcompany%2Fts-indexer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0ad6c84c9112bd773bd6338d707fe0ccaf6f1747
[INFO] checking theforecastingcompany/ts-indexer against master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftheforecastingcompany%2Fts-indexer" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/theforecastingcompany/ts-indexer
[INFO] finished tweaking git repo https://github.com/theforecastingcompany/ts-indexer
[INFO] tweaked toml for git repo https://github.com/theforecastingcompany/ts-indexer written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/theforecastingcompany/ts-indexer on toolchain 779e19d8baa3e3625bd4fc5c85cbb2ad47b43155
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/theforecastingcompany/ts-indexer 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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded array-init-cursor v0.2.1
[INFO] [stderr]   Downloaded polars v0.36.2
[INFO] [stderr]   Downloaded polars-row v0.36.2
[INFO] [stderr]   Downloaded polars-utils v0.36.2
[INFO] [stderr]   Downloaded polars-compute v0.36.2
[INFO] [stderr]   Downloaded aws-smithy-checksums v0.63.5
[INFO] [stderr]   Downloaded aws-smithy-eventstream v0.60.10
[INFO] [stderr]   Downloaded aws-smithy-json v0.61.4
[INFO] [stderr]   Downloaded aws-sdk-sso v1.78.0
[INFO] [stderr]   Downloaded aws-sdk-ssooidc v1.79.0
[INFO] [stderr]   Downloaded aws-sdk-sts v1.80.0
[INFO] [stderr]   Downloaded polars-parquet v0.36.2
[INFO] [stderr]   Downloaded polars-core v0.36.2
[INFO] [stderr]   Downloaded rust_decimal v1.37.2
[INFO] [stderr]   Downloaded aws-config v1.8.3
[INFO] [stderr]   Downloaded aws-smithy-runtime v1.8.5
[INFO] [stderr]   Downloaded aws-smithy-runtime-api v1.8.5
[INFO] [stderr]   Downloaded argminmax v0.6.3
[INFO] [stderr]   Downloaded polars-ops v0.36.2
[INFO] [stderr]   Downloaded aws-sdk-s3 v1.100.0
[INFO] [stderr]   Downloaded polars-error v0.36.2
[INFO] [stderr]   Downloaded polars-time v0.36.2
[INFO] [stderr]   Downloaded polars-sql v0.36.2
[INFO] [stderr]   Downloaded aws-runtime v1.5.9
[INFO] [stderr]   Downloaded aws-sigv4 v1.3.3
[INFO] [stderr]   Downloaded crc-fast v1.3.0
[INFO] [stderr]   Downloaded polars-arrow v0.36.2
[INFO] [stderr]   Downloaded aws-smithy-http-client v1.0.6
[INFO] [stderr]   Downloaded polars-lazy v0.36.2
[INFO] [stderr]   Downloaded polars-pipe v0.36.2
[INFO] [stderr]   Downloaded polars-io v0.36.2
[INFO] [stderr]   Downloaded polars-plan v0.36.2
[INFO] [stderr]   Downloaded aws-smithy-http v0.62.2
[INFO] [stderr]   Downloaded aws-credential-types v1.2.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6c407a244c38ea0881e1c775880eb542f5b106f112e9ef6a7885f639e8779b87
[INFO] running `Command { std: "docker" "start" "-a" "6c407a244c38ea0881e1c775880eb542f5b106f112e9ef6a7885f639e8779b87", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6c407a244c38ea0881e1c775880eb542f5b106f112e9ef6a7885f639e8779b87", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6c407a244c38ea0881e1c775880eb542f5b106f112e9ef6a7885f639e8779b87", kill_on_drop: false }`
[INFO] [stdout] 6c407a244c38ea0881e1c775880eb542f5b106f112e9ef6a7885f639e8779b87
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 86c9e886a4917cae14e9caaa270d28caef2cc394c6c8673a3a48c0a4dcd134fb
[INFO] running `Command { std: "docker" "start" "-a" "86c9e886a4917cae14e9caaa270d28caef2cc394c6c8673a3a48c0a4dcd134fb", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking hashbrown v0.15.4
[INFO] [stderr]    Compiling cc v1.2.30
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking outref v0.5.2
[INFO] [stderr]     Checking vsimd v0.8.0
[INFO] [stderr]     Checking bytes-utils v0.1.4
[INFO] [stderr]     Checking time v0.3.41
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]    Compiling target-features v0.1.6
[INFO] [stderr]    Compiling bytemuck_derive v1.10.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling aws-lc-rs v1.13.3
[INFO] [stderr]     Checking array-init-cursor v0.2.1
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]    Compiling smartstring v1.0.1
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking der v0.6.1
[INFO] [stderr]     Checking tokio v1.47.0
[INFO] [stderr]     Checking signal-hook-mio v0.2.4
[INFO] [stderr]     Checking planus v0.3.1
[INFO] [stderr]     Checking base64-simd v0.8.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling polars-utils v0.36.2
[INFO] [stderr]     Checking base64ct v1.8.0
[INFO] [stderr]     Checking indexmap v2.10.0
[INFO] [stderr]     Checking simdutf8 v0.1.5
[INFO] [stderr]    Compiling polars-arrow v0.36.2
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking arrow-format v0.8.1
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking dyn-clone v1.0.19
[INFO] [stderr]     Checking spki v0.6.0
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]    Compiling rustls v0.23.29
[INFO] [stderr]     Checking pkcs8 v0.9.0
[INFO] [stderr]     Checking half v2.6.0
[INFO] [stderr]     Checking crypto-bigint v0.4.9
[INFO] [stderr]     Checking ff v0.12.1
[INFO] [stderr]     Checking bytemuck v1.23.1
[INFO] [stderr]     Checking fast-float v0.2.0
[INFO] [stderr]     Checking streaming-iterator v0.1.9
[INFO] [stderr]     Checking atoi_simd v0.15.6
[INFO] [stderr]     Checking ethnum v1.5.2
[INFO] [stderr]     Checking foreign_vec v0.1.0
[INFO] [stderr]     Checking group v0.12.1
[INFO] [stderr]     Checking sec1 v0.3.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling aws-lc-sys v0.30.0
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]    Compiling zstd-sys v2.0.15+zstd.1.5.7
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking arrow-schema v55.2.0
[INFO] [stderr]     Checking rustls-native-certs v0.6.3
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking rustls-native-certs v0.8.1
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking signature v1.6.4
[INFO] [stderr]     Checking comfy-table v7.1.4
[INFO] [stderr]    Compiling polars-compute v0.36.2
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]    Compiling aws-types v1.3.8
[INFO] [stderr]    Compiling lz4-sys v1.11.1+lz4-1.10.0
[INFO] [stderr]     Checking atoi v2.0.0
[INFO] [stderr]     Checking lexical-util v1.0.6
[INFO] [stderr]    Compiling polars-core v0.36.2
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking elliptic-curve v0.12.3
[INFO] [stderr]     Checking rfc6979 v0.3.1
[INFO] [stderr]     Checking polars-error v0.36.2
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking crypto-bigint v0.5.5
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]    Compiling polars-ops v0.36.2
[INFO] [stderr]     Checking ecdsa v0.14.8
[INFO] [stderr]    Compiling snap v1.1.1
[INFO] [stderr]     Checking arrow-buffer v55.2.0
[INFO] [stderr]     Checking xxhash-rust v0.8.15
[INFO] [stderr]     Checking argminmax v0.6.3
[INFO] [stderr]     Checking uuid v1.17.0
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]     Checking lexical-write-integer v1.0.5
[INFO] [stderr]     Checking p256 v0.11.1
[INFO] [stderr]     Checking lexical-parse-integer v1.0.5
[INFO] [stderr]     Checking streaming-decompression v0.1.2
[INFO] [stderr]    Compiling filetime v0.2.25
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]     Checking now v0.1.3
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling seq-macro v0.3.6
[INFO] [stderr]     Checking parquet-format-safe v0.2.4
[INFO] [stderr]     Checking lexical-parse-float v1.0.5
[INFO] [stderr]     Checking lexical-write-float v1.0.5
[INFO] [stderr]     Checking memmap2 v0.7.1
[INFO] [stderr]    Compiling polars-plan v0.36.2
[INFO] [stderr]     Checking arrow-data v55.2.0
[INFO] [stderr]     Checking xmlparser v0.13.6
[INFO] [stderr]     Checking crc v3.3.0
[INFO] [stderr]    Compiling strum_macros v0.25.3
[INFO] [stderr]     Checking lexical-core v1.0.5
[INFO] [stderr]    Compiling polars-lazy v0.36.2
[INFO] [stderr]     Checking aws-smithy-xml v0.60.10
[INFO] [stderr]    Compiling instability v0.3.9
[INFO] [stderr]    Compiling rust_decimal v1.37.2
[INFO] [stderr]     Checking arrow-array v55.2.0
[INFO] [stderr]     Checking crc-fast v1.3.0
[INFO] [stderr]     Checking colored v2.2.0
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]    Compiling xattr v1.5.1
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]    Compiling tar v0.4.44
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]    Compiling polars v0.36.2
[INFO] [stderr]    Compiling indoc v2.0.6
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking glob v0.3.2
[INFO] [stderr]    Compiling multiversion-macros v0.7.4
[INFO] [stderr]     Checking clap_builder v4.5.41
[INFO] [stderr]     Checking crossterm v0.25.0
[INFO] [stderr]     Checking arrow-select v55.2.0
[INFO] [stderr]     Checking arrow-row v55.2.0
[INFO] [stderr]     Checking arrow-arith v55.2.0
[INFO] [stderr]     Checking compact_str v0.8.1
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking aws-smithy-async v1.2.5
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking unicode-truncate v1.1.0
[INFO] [stderr]     Checking drawille v0.3.0
[INFO] [stderr]     Checking arrow-cast v55.2.0
[INFO] [stderr]     Checking arrow-string v55.2.0
[INFO] [stderr]     Checking arrow-ord v55.2.0
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking fuzzy-matcher v0.3.7
[INFO] [stderr]    Compiling clap_derive v4.5.41
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking multiversion v0.7.4
[INFO] [stderr]     Checking aws-smithy-types v1.3.2
[INFO] [stderr]     Checking h2 v0.4.11
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]    Compiling serde_json v1.0.141
[INFO] [stderr]     Checking strum v0.27.2
[INFO] [stderr]     Checking rgb v0.8.52
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking hashlink v0.10.0
[INFO] [stderr]     Checking newline-converter v0.3.0
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]     Checking ratatui v0.28.1
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking textplots v0.8.7
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking tracing-subscriber v0.3.19
[INFO] [stderr]     Checking arrow v55.2.0
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking inquire v0.7.5
[INFO] [stderr]     Checking aws-smithy-runtime-api v1.8.5
[INFO] [stderr]     Checking aws-smithy-eventstream v0.60.10
[INFO] [stderr]     Checking aws-smithy-json v0.61.4
[INFO] [stderr]     Checking aws-smithy-query v0.60.7
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking sysinfo v0.30.13
[INFO] [stderr]    Compiling libduckdb-sys v1.3.2
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking aws-smithy-http v0.62.2
[INFO] [stderr]     Checking aws-credential-types v1.2.4
[INFO] [stderr]     Checking aws-smithy-observability v0.1.3
[INFO] [stderr]     Checking clap v4.5.41
[INFO] [stderr]     Checking aws-sigv4 v1.3.3
[INFO] [stderr]     Checking aws-smithy-checksums v0.63.5
[INFO] [stderr]     Checking duckdb v1.3.2
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking hyper-util v0.1.16
[INFO] [stderr]     Checking polars-row v0.36.2
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking lz4 v1.28.1
[INFO] [stderr]     Checking polars-parquet v0.36.2
[INFO] [stderr]     Checking polars-time v0.36.2
[INFO] [stderr]     Checking rustls-webpki v0.103.4
[INFO] [stderr]     Checking polars-io v0.36.2
[INFO] [stderr]     Checking tokio-rustls v0.26.2
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking aws-smithy-http-client v1.0.6
[INFO] [stderr]     Checking aws-smithy-runtime v1.8.5
[INFO] [stderr]     Checking aws-runtime v1.5.9
[INFO] [stderr]     Checking aws-sdk-sts v1.80.0
[INFO] [stderr]     Checking aws-sdk-ssooidc v1.79.0
[INFO] [stderr]     Checking aws-sdk-sso v1.78.0
[INFO] [stderr]     Checking aws-sdk-s3 v1.100.0
[INFO] [stderr]     Checking aws-config v1.8.3
[INFO] [stderr]     Checking ts-indexer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Dataset` and `IndexingStatus`
[INFO] [stdout]  --> src/cli/commands.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::db::{Database, ColumnType, Dataset, IndexingStatus};
[INFO] [stdout]   |                                       ^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Write` and `self`
[INFO] [stdout]     --> src/cli/commands.rs:1115:23
[INFO] [stdout]      |
[INFO] [stdout] 1115 |         use std::io::{self, Write};
[INFO] [stdout]      |                       ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]     --> src/cli/commands.rs:1116:13
[INFO] [stdout]      |
[INFO] [stdout] 1116 |         use std::collections::HashMap;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]     --> src/db/mod.rs:1703:35
[INFO] [stdout]      |
[INFO] [stdout] 1703 |         use tracing::{info, warn, debug};
[INFO] [stdout]      |                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EnhancedDatasetColumnInfo`
[INFO] [stdout]  --> src/plotting/mod.rs:5:78
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::db::{TimeSeriesPoint, ColumnType, FeatureMetadata, TimestampInfo, EnhancedDatasetColumnInfo};
[INFO] [stdout]   |                                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Dataset` and `IndexingStatus`
[INFO] [stdout]  --> src/cli/commands.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::db::{Database, ColumnType, Dataset, IndexingStatus};
[INFO] [stdout]   |                                       ^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Write` and `self`
[INFO] [stdout]     --> src/cli/commands.rs:1115:23
[INFO] [stdout]      |
[INFO] [stdout] 1115 |         use std::io::{self, Write};
[INFO] [stdout]      |                       ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]     --> src/cli/commands.rs:1116:13
[INFO] [stdout]      |
[INFO] [stdout] 1116 |         use std::collections::HashMap;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]     --> src/db/mod.rs:1703:35
[INFO] [stdout]      |
[INFO] [stdout] 1703 |         use tracing::{info, warn, debug};
[INFO] [stdout]      |                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EnhancedDatasetColumnInfo`
[INFO] [stdout]  --> src/plotting/mod.rs:5:78
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::db::{TimeSeriesPoint, ColumnType, FeatureMetadata, TimestampInfo, EnhancedDatasetColumnInfo};
[INFO] [stdout]   |                                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]    --> src/plotting/mod.rs:436:9
[INFO] [stdout]     |
[INFO] [stdout] 436 |     use chrono::Utc;
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/db/mod.rs:1454:13
[INFO] [stdout]      |
[INFO] [stdout] 1454 |         let mut time_series_records: Vec<TimeSeriesRecord> = Vec::new();
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/db/mod.rs:1454:13
[INFO] [stdout]      |
[INFO] [stdout] 1454 |         let mut time_series_records: Vec<TimeSeriesRecord> = Vec::new();
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `io::Write`
[INFO] [stdout]   --> src/cli/interactive.rs:19:61
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::{collections::{HashMap, HashSet}, fs::OpenOptions, io::Write, time::Duration};
[INFO] [stdout]    |                                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `polars::prelude`
[INFO] [stdout]   --> src/db/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use polars::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_dataset`
[INFO] [stdout]    --> src/cli/interactive.rs:840:80
[INFO] [stdout]     |
[INFO] [stdout] 840 | ...                   if let (Some(current_series), Some(current_dataset)) = 
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_dataset`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `io::Write`
[INFO] [stdout]   --> src/cli/interactive.rs:19:61
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::{collections::{HashMap, HashSet}, fs::OpenOptions, io::Write, time::Duration};
[INFO] [stdout]    |                                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `polars::prelude`
[INFO] [stdout]   --> src/db/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use polars::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/cli/commands.rs:363:47
[INFO] [stdout]     |
[INFO] [stdout] 363 |     async fn display_detailed_progress(&self, db: &Database, progress: &crate::db::IndexingProgress) -> Result<()> {
[INFO] [stdout]     |                                               ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `progress`
[INFO] [stdout]    --> src/cli/commands.rs:363:62
[INFO] [stdout]     |
[INFO] [stdout] 363 |     async fn display_detailed_progress(&self, db: &Database, progress: &crate::db::IndexingProgress) -> Result<()> {
[INFO] [stdout]     |                                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_progress`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/cli/commands.rs:606:40
[INFO] [stdout]     |
[INFO] [stdout] 606 |     async fn show_detailed_info(&self, db: &Database) -> Result<()> {
[INFO] [stdout]     |                                        ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group`
[INFO] [stdout]    --> src/cli/commands.rs:854:112
[INFO] [stdout]     |
[INFO] [stdout] 854 | ...sPlotter, dataset_name: &str, group: &DatasetGroup) -> Result<()> {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_group`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]     --> src/cli/commands.rs:1133:48
[INFO] [stdout]      |
[INFO] [stdout] 1133 |     async fn show_enhanced_feature_mode(&self, db: &Database, plotter: &TimeSeriesPlotter, dataset_name: &str, series_id: &str, enhanced_...
[INFO] [stdout]      |                                                ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `plotter`
[INFO] [stdout]     --> src/cli/commands.rs:1133:63
[INFO] [stdout]      |
[INFO] [stdout] 1133 | ..._mode(&self, db: &Database, plotter: &TimeSeriesPlotter, dataset_name: &str, series_id: &str, enhanced_info: &crate::db::EnhancedDatas...
[INFO] [stdout]      |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_plotter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `feature`
[INFO] [stdout]     --> src/cli/commands.rs:1301:29
[INFO] [stdout]      |
[INFO] [stdout] 1301 |                 if let Some(feature) = option_map.get(&feature_choice) {
[INFO] [stdout]      |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_feature`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_dataset`
[INFO] [stdout]    --> src/cli/interactive.rs:840:80
[INFO] [stdout]     |
[INFO] [stdout] 840 | ...                   if let (Some(current_series), Some(current_dataset)) = 
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_dataset`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/cli/commands.rs:363:47
[INFO] [stdout]     |
[INFO] [stdout] 363 |     async fn display_detailed_progress(&self, db: &Database, progress: &crate::db::IndexingProgress) -> Result<()> {
[INFO] [stdout]     |                                               ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `progress`
[INFO] [stdout]    --> src/cli/commands.rs:363:62
[INFO] [stdout]     |
[INFO] [stdout] 363 |     async fn display_detailed_progress(&self, db: &Database, progress: &crate::db::IndexingProgress) -> Result<()> {
[INFO] [stdout]     |                                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_progress`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time_series_records`
[INFO] [stdout]     --> src/db/mod.rs:1454:13
[INFO] [stdout]      |
[INFO] [stdout] 1454 |         let mut time_series_records: Vec<TimeSeriesRecord> = Vec::new();
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_time_series_records`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]    --> src/cli/commands.rs:606:40
[INFO] [stdout]     |
[INFO] [stdout] 606 |     async fn show_detailed_info(&self, db: &Database) -> Result<()> {
[INFO] [stdout]     |                                        ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group`
[INFO] [stdout]    --> src/cli/commands.rs:854:112
[INFO] [stdout]     |
[INFO] [stdout] 854 | ...sPlotter, dataset_name: &str, group: &DatasetGroup) -> Result<()> {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_group`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]     --> src/cli/commands.rs:1133:48
[INFO] [stdout]      |
[INFO] [stdout] 1133 |     async fn show_enhanced_feature_mode(&self, db: &Database, plotter: &TimeSeriesPlotter, dataset_name: &str, series_id: &str, enhanced_...
[INFO] [stdout]      |                                                ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `plotter`
[INFO] [stdout]     --> src/cli/commands.rs:1133:63
[INFO] [stdout]      |
[INFO] [stdout] 1133 | ..._mode(&self, db: &Database, plotter: &TimeSeriesPlotter, dataset_name: &str, series_id: &str, enhanced_info: &crate::db::EnhancedDatas...
[INFO] [stdout]      |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_plotter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `feature`
[INFO] [stdout]     --> src/cli/commands.rs:1301:29
[INFO] [stdout]      |
[INFO] [stdout] 1301 |                 if let Some(feature) = option_map.get(&feature_choice) {
[INFO] [stdout]      |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_feature`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `feature`
[INFO] [stdout]     --> src/cli/interactive.rs:1918:17
[INFO] [stdout]      |
[INFO] [stdout] 1918 |         for (i, feature) in self.features_list.iter().enumerate() {
[INFO] [stdout]      |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_feature`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time_series_records`
[INFO] [stdout]     --> src/db/mod.rs:1454:13
[INFO] [stdout]      |
[INFO] [stdout] 1454 |         let mut time_series_records: Vec<TimeSeriesRecord> = Vec::new();
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_time_series_records`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timestamp_info`
[INFO] [stdout]     --> src/db/mod.rs:1121:17
[INFO] [stdout]      |
[INFO] [stdout] 1121 |             let timestamp_info = Some(TimestampInfo {
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `feature`
[INFO] [stdout]     --> src/cli/interactive.rs:1918:17
[INFO] [stdout]      |
[INFO] [stdout] 1918 |         for (i, feature) in self.features_list.iter().enumerate() {
[INFO] [stdout]      |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_feature`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timestamp_info`
[INFO] [stdout]     --> src/db/mod.rs:1121:17
[INFO] [stdout]      |
[INFO] [stdout] 1121 |             let timestamp_info = Some(TimestampInfo {
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/plotting/mod.rs:183:92
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn format_time_axis_markers(&self, start_time: DateTime<Utc>, end_time: DateTime<Utc>, width: usize) -> String {
[INFO] [stdout]     |                                                                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/plotting/mod.rs:183:92
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn format_time_axis_markers(&self, start_time: DateTime<Utc>, end_time: DateTime<Utc>, width: usize) -> String {
[INFO] [stdout]     |                                                                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/cli/commands.rs:554:18
[INFO] [stdout]      |
[INFO] [stdout]  553 | impl DebugCommand {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout]  554 |     pub async fn execute(self) -> Result<()> {
[INFO] [stdout]      |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  588 |     async fn show_sample_data(&self, db: &Database) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  606 |     async fn show_detailed_info(&self, db: &Database) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  618 |     fn filter_series_direct(&self, series: &[crate::search::EnhancedSearchResult], filter_term: &str) -> Vec<crate::search::EnhancedSearc...
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  630 |     fn show_series_direct_help(&self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  641 |     fn show_interactive_help(&self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  653 |     async fn display_dataset_level(&self, hierarchical_results: &std::collections::HashMap<String, DatasetGroup>, db: &Database, plotter:...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  751 |     fn clear_screen(&self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  756 |     fn filter_datasets(&self, datasets: &std::collections::HashMap<String, DatasetGroup>, filter_term: &str) -> std::collections::HashMap...
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  770 |     fn show_dataset_stats(&self, datasets: &std::collections::HashMap<String, DatasetGroup>) -> Result<()> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  800 |     async fn show_series_level(&self, db: &Database, plotter: &TimeSeriesPlotter, dataset_name: &str, group: &DatasetGroup) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  854 |     async fn show_enhanced_series_level(&self, db: &Database, plotter: &TimeSeriesPlotter, dataset_name: &str, group: &DatasetGroup) -> R...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  966 |     fn filter_series(&self, series: &[crate::search::EnhancedSearchResult], filter_term: &str) -> Vec<crate::search::EnhancedSearchResult> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  974 |     fn show_sort_options(&self, series: &mut Vec<crate::search::EnhancedSearchResult>) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1012 |     async fn show_series_preview(&self, db: &Database, dataset_name: &str, series_id: &str) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1055 |     fn show_series_stats(&self, series: &[crate::search::EnhancedSearchResult]) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1100 |     fn show_series_help(&self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1114 |     async fn show_enhanced_column_level(&self, db: &Database, plotter: &TimeSeriesPlotter, dataset_name: &str, series_id: &str) -> Result...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1129 |     fn extract_dataset_id_from_series<'a>(&self, series_id: &'a str) -> &'a str {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1133 |     async fn show_enhanced_feature_mode(&self, db: &Database, plotter: &TimeSeriesPlotter, dataset_name: &str, series_id: &str, enhanced_...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1317 |     async fn show_legacy_column_mode(&self, db: &Database, plotter: &TimeSeriesPlotter, dataset_name: &str, series_id: &str) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1480 |     async fn handle_column_comparison(&self, input: &str, option_map: &std::collections::HashMap<usize, (&&crate::db::ColumnMetadata, &Co...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1536 |     fn calculate_correlation(&self, data1: &[crate::db::TimeSeriesPoint], data2: &[crate::db::TimeSeriesPoint]) -> f64 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1567 |     async fn plot_all_columns(&self, option_map: &std::collections::HashMap<usize, (&&crate::db::ColumnMetadata, &ColumnType)>, db: &Data...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1596 |     async fn export_column_data(&self, _option_map: &std::collections::HashMap<usize, (&&crate::db::ColumnMetadata, &ColumnType)>, _db: &...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1631 |     fn show_column_stats(&self, columns: &[crate::db::ColumnMetadata]) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1661 |     fn show_column_help(&self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1673 |     async fn display_column_data(&self, column: &crate::db::ColumnMetadata, column_type: &ColumnType, db: &Database, plotter: &TimeSeries...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1851 |     async fn show_column_level(&self, db: &Database, plotter: &TimeSeriesPlotter, dataset_name: &str, series_id: &str) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2018 |     async fn run_traditional_search(&self, search_engine: SearchEngine) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HierarchicalView` is never used
[INFO] [stdout]     --> src/cli/commands.rs:2296:6
[INFO] [stdout]      |
[INFO] [stdout] 2296 | enum HierarchicalView {
[INFO] [stdout]      |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DatasetGroup` is never constructed
[INFO] [stdout]     --> src/cli/commands.rs:2303:8
[INFO] [stdout]      |
[INFO] [stdout] 2303 | struct DatasetGroup {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/cli/commands.rs:2312:8
[INFO] [stdout]      |
[INFO] [stdout] 2311 | impl SearchCommand {
[INFO] [stdout]      | ------------------ methods in this implementation
[INFO] [stdout] 2312 |     fn group_results_hierarchically(&self, results: &[crate::search::EnhancedSearchResult]) -> std::collections::HashMap<String, DatasetG...
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2378 |     fn get_dataset_info(&self, dataset_id: &str) -> Option<(i64, i64)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2388 |     fn get_all_series_for_dataset(&self, db: &Database, dataset_id: &str) -> Result<Vec<crate::search::EnhancedSearchResult>> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2431 |     fn display_hierarchical_view(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2519 |     async fn handle_feature_metadata_display(&self, input: &str, option_map: &std::collections::HashMap<usize, &&crate::db::FeatureMetada...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2536 |     fn validate_all_features(&self, features: &[crate::db::FeatureMetadata]) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2562 |     async fn export_enhanced_feature_data(&self, enhanced_info: &crate::db::EnhancedDatasetColumnInfo, series_id: &str) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2600 |     async fn display_enhanced_feature_data(&self, feature: &crate::db::FeatureMetadata, db: &Database, plotter: &TimeSeriesPlotter, serie...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2666 |     fn show_enhanced_feature_help(&self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DatasetStats` is never constructed
[INFO] [stdout]     --> src/cli/commands.rs:2796:8
[INFO] [stdout]      |
[INFO] [stdout] 2796 | struct DatasetStats {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `humanize_duration` is never used
[INFO] [stdout]     --> src/cli/commands.rs:2805:4
[INFO] [stdout]      |
[INFO] [stdout] 2805 | fn humanize_duration(duration: chrono::Duration) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FeatureDataState` is never used
[INFO] [stdout]   --> src/cli/interactive.rs:42:6
[INFO] [stdout]    |
[INFO] [stdout] 42 | enum FeatureDataState {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `features`, and `count` are never read
[INFO] [stdout]   --> src/cli/interactive.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | struct FeatureCategory {
[INFO] [stdout]    |        --------------- fields in this struct
[INFO] [stdout] 73 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 74 |     features: Vec<FeatureMetadata>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 75 |     count: usize,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FeatureCategory` 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: fields `series_id`, `dataset_id`, and `categories` are never read
[INFO] [stdout]   --> src/cli/interactive.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 79 | struct SeriesFeatures {
[INFO] [stdout]    |        -------------- fields in this struct
[INFO] [stdout] 80 |     series_id: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 81 |     dataset_id: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 82 |     categories: Vec<FeatureCategory>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SeriesFeatures` 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 `new`, `generate_sample_data`, `fetch_feature_data`, `get_feature_data`, `complete_feature_data_fetch`, and `retry_feature_fetch` are never used
[INFO] [stdout]     --> src/cli/interactive.rs:127:12
[INFO] [stdout]      |
[INFO] [stdout]  126 | impl InteractiveFinder {
[INFO] [stdout]      | ---------------------- associated items in this implementation
[INFO] [stdout]  127 |     pub fn new(db: Database) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  195 |     fn generate_sample_data() -> Vec<(f64, f64)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  223 |     async fn fetch_feature_data(&self, series_id: &str, feature_name: &str) -> Result<Vec<(f64, f64)>> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  266 |     fn get_feature_data(&mut self, feature_name: &str) -> FeatureDataState {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1825 |     pub fn complete_feature_data_fetch(&mut self, feature_name: &str, result: Result<Vec<(f64, f64)>>) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1902 |     pub fn retry_feature_fetch(&mut self, feature_name: &str) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/db/mod.rs:118:12
[INFO] [stdout]      |
[INFO] [stdout]  106 | impl Database {
[INFO] [stdout]      | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  118 |     pub fn in_memory() -> Result<Self> {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  485 |     pub fn get_series_for_dataset(&self, dataset_id: &str, limit: Option<usize>) -> Result<Vec<SearchResult>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  594 |     pub fn get_datasets_to_index(&self) -> Result<Vec<String>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  615 |     pub fn get_datasets_by_status(&self, status: IndexingStatus) -> Result<Vec<Dataset>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  914 |     pub fn discover_data_columns(&self, dataset_id: &str) -> Result<Vec<String>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1258 |     pub fn is_file_cached(&self, file_path: &str) -> Result<bool> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1377 |     fn cache_all_series_from_dataframe(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1766 |     pub fn get_dataset_progress_details(&self) -> Result<Vec<(String, i64, i64)>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1772 |     pub fn get_sample_data(&self, dataset_id: &str, limit: usize) -> Result<Vec<serde_json::Value>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_column_type` is never used
[INFO] [stdout]     --> src/db/mod.rs:1906:12
[INFO] [stdout]      |
[INFO] [stdout] 1904 | impl FeatureMetadata {
[INFO] [stdout]      | -------------------- method in this implementation
[INFO] [stdout] 1905 |     /// Convert to legacy ColumnType for backward compatibility
[INFO] [stdout] 1906 |     pub fn to_column_type(&self) -> ColumnType {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `errors` is never read
[INFO] [stdout]   --> src/indexer/mod.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct IndexingStats {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub errors: usize,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total` is never read
[INFO] [stdout]   --> src/indexer/mod.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct DatasetTask {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub total: usize,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DatasetTask` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `shared`, `index_data`, and `index_data_parallel` are never used
[INFO] [stdout]   --> src/indexer/mod.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl Indexer {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn shared(db: Database, s3_client: S3Client) -> Arc<Self> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub async fn index_data(
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub async fn index_data_parallel(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Timer` is never constructed
[INFO] [stdout]    --> src/monitoring/mod.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub struct Timer {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `elapsed`, and `elapsed_ms` are never used
[INFO] [stdout]    --> src/monitoring/mod.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl Timer {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 193 |     pub fn new(name: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn elapsed(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn elapsed_ms(&self) -> u128 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TimeSeriesPlotter` is never constructed
[INFO] [stdout]  --> src/plotting/mod.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct TimeSeriesPlotter;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/plotting/mod.rs:12:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl TimeSeriesPlotter {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  11 |     /// Create a new plotter instance
[INFO] [stdout]  12 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  17 |     pub fn plot_time_series(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn show_static_value(&self, column_name: &str, value: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn plot_multiple_series(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn get_optimal_dimensions(&self) -> (usize, usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     fn format_duration(&self, duration: Duration) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn format_time_axis_markers(&self, start_time: DateTime<Utc>, end_time: DateTime<Utc>, width: usize) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn create_preview_plot(&self, data: &[TimeSeriesPoint], column_name: &str) -> Result<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn display_feature_metadata(&self, feature: &FeatureMetadata) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn display_timestamp_info(&self, timestamp_info: &TimestampInfo) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_column_type` is never used
[INFO] [stdout]    --> src/plotting/mod.rs:277:12
[INFO] [stdout]     |
[INFO] [stdout] 277 |     pub fn format_column_type(column_type: &ColumnType) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_feature_attribute` is never used
[INFO] [stdout]    --> src/plotting/mod.rs:288:12
[INFO] [stdout]     |
[INFO] [stdout] 288 |     pub fn format_feature_attribute(attribute: &crate::db::FeatureAttribute) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_temporality` is never used
[INFO] [stdout]    --> src/plotting/mod.rs:298:12
[INFO] [stdout]     |
[INFO] [stdout] 298 |     pub fn format_temporality(temporality: &crate::db::Temporality) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_modality` is never used
[INFO] [stdout]    --> src/plotting/mod.rs:306:12
[INFO] [stdout]     |
[INFO] [stdout] 306 |     pub fn format_modality(modality: &crate::db::Modality) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_scope` is never used
[INFO] [stdout]    --> src/plotting/mod.rs:314:12
[INFO] [stdout]     |
[INFO] [stdout] 314 |     pub fn format_scope(scope: &crate::db::Scope) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_value_histogram` is never used
[INFO] [stdout]    --> src/plotting/mod.rs:322:12
[INFO] [stdout]     |
[INFO] [stdout] 322 |     pub fn create_value_histogram(values: &[f64], bins: usize) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `completion_percentage` is never used
[INFO] [stdout]   --> src/progress/mod.rs:95:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl IndexerProgress {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn completion_percentage(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `elapsed_time` is never used
[INFO] [stdout]    --> src/progress/mod.rs:217:12
[INFO] [stdout]     |
[INFO] [stdout] 186 | impl ProgressState {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn elapsed_time(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileMetadata` is never constructed
[INFO] [stdout]   --> src/s3/mod.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct FileMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FileFormat` is never used
[INFO] [stdout]   --> src/s3/mod.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum FileFormat {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/s3/mod.rs:207:18
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl S3Client {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub async fn stream_download_object(&self, key: &str, progress_bar: Option<&ProgressBar>) -> Result<Vec<u8>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub async fn parallel_download(&self, keys: &[String], max_concurrent: usize) -> Result<Vec<(String, Vec<u8>)>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     async fn download_single_object(client: &Client, bucket: &str, key: &str) -> Result<Vec<u8>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub async fn object_exists(&self, key: &str) -> Result<bool> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 528 |     pub fn extract_dataset_name(&self, key: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 548 |     pub async fn find_case_sensitive_dataset_dir(&self, data_prefix: &str, dataset_name: &str) -> Result<Option<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 633 |     pub fn detect_file_format(&self, key: &str) -> FileFormat {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_progress_bar` is never used
[INFO] [stdout]     --> src/s3/mod.rs:1140:8
[INFO] [stdout]      |
[INFO] [stdout] 1140 | pub fn create_progress_bar(total: u64, message: &str) -> ProgressBar {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_suggestions` and `get_filter_options` are never used
[INFO] [stdout]    --> src/search/mod.rs:269:18
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl SearchEngine {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub async fn get_suggestions(&self, partial_query: &str, limit: usize) -> Result<Vec<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub async fn get_filter_options(&self) -> Result<FilterOptions> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FilterOptions` is never constructed
[INFO] [stdout]    --> src/search/mod.rs:320:12
[INFO] [stdout]     |
[INFO] [stdout] 320 | pub struct FilterOptions {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_filtered_search_query` is never used
[INFO] [stdout]    --> src/search/mod.rs:336:8
[INFO] [stdout]     |
[INFO] [stdout] 336 | pub fn create_filtered_search_query(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/monitoring/mod.rs:247:9
[INFO] [stdout]     |
[INFO] [stdout] 247 |         GLOBAL_MONITOR.as_ref().unwrap()
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/cli/commands.rs:554:18
[INFO] [stdout]      |
[INFO] [stdout]  553 | impl DebugCommand {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout]  554 |     pub async fn execute(self) -> Result<()> {
[INFO] [stdout]      |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  588 |     async fn show_sample_data(&self, db: &Database) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  606 |     async fn show_detailed_info(&self, db: &Database) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  618 |     fn filter_series_direct(&self, series: &[crate::search::EnhancedSearchResult], filter_term: &str) -> Vec<crate::search::EnhancedSearc...
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  630 |     fn show_series_direct_help(&self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  641 |     fn show_interactive_help(&self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  653 |     async fn display_dataset_level(&self, hierarchical_results: &std::collections::HashMap<String, DatasetGroup>, db: &Database, plotter:...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  751 |     fn clear_screen(&self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  756 |     fn filter_datasets(&self, datasets: &std::collections::HashMap<String, DatasetGroup>, filter_term: &str) -> std::collections::HashMap...
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  770 |     fn show_dataset_stats(&self, datasets: &std::collections::HashMap<String, DatasetGroup>) -> Result<()> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  800 |     async fn show_series_level(&self, db: &Database, plotter: &TimeSeriesPlotter, dataset_name: &str, group: &DatasetGroup) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  854 |     async fn show_enhanced_series_level(&self, db: &Database, plotter: &TimeSeriesPlotter, dataset_name: &str, group: &DatasetGroup) -> R...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  966 |     fn filter_series(&self, series: &[crate::search::EnhancedSearchResult], filter_term: &str) -> Vec<crate::search::EnhancedSearchResult> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  974 |     fn show_sort_options(&self, series: &mut Vec<crate::search::EnhancedSearchResult>) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1012 |     async fn show_series_preview(&self, db: &Database, dataset_name: &str, series_id: &str) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1055 |     fn show_series_stats(&self, series: &[crate::search::EnhancedSearchResult]) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1100 |     fn show_series_help(&self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1114 |     async fn show_enhanced_column_level(&self, db: &Database, plotter: &TimeSeriesPlotter, dataset_name: &str, series_id: &str) -> Result...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1129 |     fn extract_dataset_id_from_series<'a>(&self, series_id: &'a str) -> &'a str {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1133 |     async fn show_enhanced_feature_mode(&self, db: &Database, plotter: &TimeSeriesPlotter, dataset_name: &str, series_id: &str, enhanced_...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1317 |     async fn show_legacy_column_mode(&self, db: &Database, plotter: &TimeSeriesPlotter, dataset_name: &str, series_id: &str) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1480 |     async fn handle_column_comparison(&self, input: &str, option_map: &std::collections::HashMap<usize, (&&crate::db::ColumnMetadata, &Co...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1536 |     fn calculate_correlation(&self, data1: &[crate::db::TimeSeriesPoint], data2: &[crate::db::TimeSeriesPoint]) -> f64 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1567 |     async fn plot_all_columns(&self, option_map: &std::collections::HashMap<usize, (&&crate::db::ColumnMetadata, &ColumnType)>, db: &Data...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1596 |     async fn export_column_data(&self, _option_map: &std::collections::HashMap<usize, (&&crate::db::ColumnMetadata, &ColumnType)>, _db: &...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1631 |     fn show_column_stats(&self, columns: &[crate::db::ColumnMetadata]) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1661 |     fn show_column_help(&self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1673 |     async fn display_column_data(&self, column: &crate::db::ColumnMetadata, column_type: &ColumnType, db: &Database, plotter: &TimeSeries...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1851 |     async fn show_column_level(&self, db: &Database, plotter: &TimeSeriesPlotter, dataset_name: &str, series_id: &str) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2018 |     async fn run_traditional_search(&self, search_engine: SearchEngine) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HierarchicalView` is never used
[INFO] [stdout]     --> src/cli/commands.rs:2296:6
[INFO] [stdout]      |
[INFO] [stdout] 2296 | enum HierarchicalView {
[INFO] [stdout]      |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DatasetGroup` is never constructed
[INFO] [stdout]     --> src/cli/commands.rs:2303:8
[INFO] [stdout]      |
[INFO] [stdout] 2303 | struct DatasetGroup {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/cli/commands.rs:2312:8
[INFO] [stdout]      |
[INFO] [stdout] 2311 | impl SearchCommand {
[INFO] [stdout]      | ------------------ methods in this implementation
[INFO] [stdout] 2312 |     fn group_results_hierarchically(&self, results: &[crate::search::EnhancedSearchResult]) -> std::collections::HashMap<String, DatasetG...
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2378 |     fn get_dataset_info(&self, dataset_id: &str) -> Option<(i64, i64)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2388 |     fn get_all_series_for_dataset(&self, db: &Database, dataset_id: &str) -> Result<Vec<crate::search::EnhancedSearchResult>> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2431 |     fn display_hierarchical_view(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2519 |     async fn handle_feature_metadata_display(&self, input: &str, option_map: &std::collections::HashMap<usize, &&crate::db::FeatureMetada...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2536 |     fn validate_all_features(&self, features: &[crate::db::FeatureMetadata]) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2562 |     async fn export_enhanced_feature_data(&self, enhanced_info: &crate::db::EnhancedDatasetColumnInfo, series_id: &str) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2600 |     async fn display_enhanced_feature_data(&self, feature: &crate::db::FeatureMetadata, db: &Database, plotter: &TimeSeriesPlotter, serie...
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2666 |     fn show_enhanced_feature_help(&self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DatasetStats` is never constructed
[INFO] [stdout]     --> src/cli/commands.rs:2796:8
[INFO] [stdout]      |
[INFO] [stdout] 2796 | struct DatasetStats {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `humanize_duration` is never used
[INFO] [stdout]     --> src/cli/commands.rs:2805:4
[INFO] [stdout]      |
[INFO] [stdout] 2805 | fn humanize_duration(duration: chrono::Duration) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FeatureDataState` is never used
[INFO] [stdout]   --> src/cli/interactive.rs:42:6
[INFO] [stdout]    |
[INFO] [stdout] 42 | enum FeatureDataState {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `features`, and `count` are never read
[INFO] [stdout]   --> src/cli/interactive.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | struct FeatureCategory {
[INFO] [stdout]    |        --------------- fields in this struct
[INFO] [stdout] 73 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 74 |     features: Vec<FeatureMetadata>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 75 |     count: usize,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FeatureCategory` 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: fields `series_id`, `dataset_id`, and `categories` are never read
[INFO] [stdout]   --> src/cli/interactive.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 79 | struct SeriesFeatures {
[INFO] [stdout]    |        -------------- fields in this struct
[INFO] [stdout] 80 |     series_id: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 81 |     dataset_id: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 82 |     categories: Vec<FeatureCategory>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SeriesFeatures` 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 `new`, `generate_sample_data`, `fetch_feature_data`, `get_feature_data`, `complete_feature_data_fetch`, and `retry_feature_fetch` are never used
[INFO] [stdout]     --> src/cli/interactive.rs:127:12
[INFO] [stdout]      |
[INFO] [stdout]  126 | impl InteractiveFinder {
[INFO] [stdout]      | ---------------------- associated items in this implementation
[INFO] [stdout]  127 |     pub fn new(db: Database) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  195 |     fn generate_sample_data() -> Vec<(f64, f64)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  223 |     async fn fetch_feature_data(&self, series_id: &str, feature_name: &str) -> Result<Vec<(f64, f64)>> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  266 |     fn get_feature_data(&mut self, feature_name: &str) -> FeatureDataState {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1825 |     pub fn complete_feature_data_fetch(&mut self, feature_name: &str, result: Result<Vec<(f64, f64)>>) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1902 |     pub fn retry_feature_fetch(&mut self, feature_name: &str) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/db/mod.rs:118:12
[INFO] [stdout]      |
[INFO] [stdout]  106 | impl Database {
[INFO] [stdout]      | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  118 |     pub fn in_memory() -> Result<Self> {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  485 |     pub fn get_series_for_dataset(&self, dataset_id: &str, limit: Option<usize>) -> Result<Vec<SearchResult>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  594 |     pub fn get_datasets_to_index(&self) -> Result<Vec<String>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  615 |     pub fn get_datasets_by_status(&self, status: IndexingStatus) -> Result<Vec<Dataset>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  914 |     pub fn discover_data_columns(&self, dataset_id: &str) -> Result<Vec<String>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1258 |     pub fn is_file_cached(&self, file_path: &str) -> Result<bool> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1377 |     fn cache_all_series_from_dataframe(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1766 |     pub fn get_dataset_progress_details(&self) -> Result<Vec<(String, i64, i64)>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1772 |     pub fn get_sample_data(&self, dataset_id: &str, limit: usize) -> Result<Vec<serde_json::Value>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_column_type` is never used
[INFO] [stdout]     --> src/db/mod.rs:1906:12
[INFO] [stdout]      |
[INFO] [stdout] 1904 | impl FeatureMetadata {
[INFO] [stdout]      | -------------------- method in this implementation
[INFO] [stdout] 1905 |     /// Convert to legacy ColumnType for backward compatibility
[INFO] [stdout] 1906 |     pub fn to_column_type(&self) -> ColumnType {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `errors` is never read
[INFO] [stdout]   --> src/indexer/mod.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct IndexingStats {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub errors: usize,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total` is never read
[INFO] [stdout]   --> src/indexer/mod.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct DatasetTask {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub total: usize,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DatasetTask` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `shared`, `index_data`, and `index_data_parallel` are never used
[INFO] [stdout]   --> src/indexer/mod.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl Indexer {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn shared(db: Database, s3_client: S3Client) -> Arc<Self> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub async fn index_data(
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub async fn index_data_parallel(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Timer` is never constructed
[INFO] [stdout]    --> src/monitoring/mod.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub struct Timer {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `elapsed`, and `elapsed_ms` are never used
[INFO] [stdout]    --> src/monitoring/mod.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl Timer {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 193 |     pub fn new(name: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn elapsed(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn elapsed_ms(&self) -> u128 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `plot_multiple_series`, `get_optimal_dimensions`, `create_preview_plot`, `display_feature_metadata`, and `display_timestamp_info` are never used
[INFO] [stdout]    --> src/plotting/mod.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl TimeSeriesPlotter {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn plot_multiple_series(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn get_optimal_dimensions(&self) -> (usize, usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn create_preview_plot(&self, data: &[TimeSeriesPoint], column_name: &str) -> Result<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn display_feature_metadata(&self, feature: &FeatureMetadata) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn display_timestamp_info(&self, timestamp_info: &TimestampInfo) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_column_type` is never used
[INFO] [stdout]    --> src/plotting/mod.rs:277:12
[INFO] [stdout]     |
[INFO] [stdout] 277 |     pub fn format_column_type(column_type: &ColumnType) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_feature_attribute` is never used
[INFO] [stdout]    --> src/plotting/mod.rs:288:12
[INFO] [stdout]     |
[INFO] [stdout] 288 |     pub fn format_feature_attribute(attribute: &crate::db::FeatureAttribute) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_temporality` is never used
[INFO] [stdout]    --> src/plotting/mod.rs:298:12
[INFO] [stdout]     |
[INFO] [stdout] 298 |     pub fn format_temporality(temporality: &crate::db::Temporality) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_modality` is never used
[INFO] [stdout]    --> src/plotting/mod.rs:306:12
[INFO] [stdout]     |
[INFO] [stdout] 306 |     pub fn format_modality(modality: &crate::db::Modality) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_scope` is never used
[INFO] [stdout]    --> src/plotting/mod.rs:314:12
[INFO] [stdout]     |
[INFO] [stdout] 314 |     pub fn format_scope(scope: &crate::db::Scope) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `elapsed_time` is never used
[INFO] [stdout]    --> src/progress/mod.rs:217:12
[INFO] [stdout]     |
[INFO] [stdout] 186 | impl ProgressState {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn elapsed_time(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileMetadata` is never constructed
[INFO] [stdout]   --> src/s3/mod.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct FileMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FileFormat` is never used
[INFO] [stdout]   --> src/s3/mod.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum FileFormat {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/s3/mod.rs:207:18
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl S3Client {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub async fn stream_download_object(&self, key: &str, progress_bar: Option<&ProgressBar>) -> Result<Vec<u8>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub async fn parallel_download(&self, keys: &[String], max_concurrent: usize) -> Result<Vec<(String, Vec<u8>)>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     async fn download_single_object(client: &Client, bucket: &str, key: &str) -> Result<Vec<u8>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub async fn object_exists(&self, key: &str) -> Result<bool> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 528 |     pub fn extract_dataset_name(&self, key: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 548 |     pub async fn find_case_sensitive_dataset_dir(&self, data_prefix: &str, dataset_name: &str) -> Result<Option<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 633 |     pub fn detect_file_format(&self, key: &str) -> FileFormat {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_progress_bar` is never used
[INFO] [stdout]     --> src/s3/mod.rs:1140:8
[INFO] [stdout]      |
[INFO] [stdout] 1140 | pub fn create_progress_bar(total: u64, message: &str) -> ProgressBar {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_suggestions` and `get_filter_options` are never used
[INFO] [stdout]    --> src/search/mod.rs:269:18
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl SearchEngine {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub async fn get_suggestions(&self, partial_query: &str, limit: usize) -> Result<Vec<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub async fn get_filter_options(&self) -> Result<FilterOptions> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FilterOptions` is never constructed
[INFO] [stdout]    --> src/search/mod.rs:320:12
[INFO] [stdout]     |
[INFO] [stdout] 320 | pub struct FilterOptions {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_filtered_search_query` is never used
[INFO] [stdout]    --> src/search/mod.rs:336:8
[INFO] [stdout]     |
[INFO] [stdout] 336 | pub fn create_filtered_search_query(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/monitoring/mod.rs:247:9
[INFO] [stdout]     |
[INFO] [stdout] 247 |         GLOBAL_MONITOR.as_ref().unwrap()
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 09s
[INFO] running `Command { std: "docker" "inspect" "86c9e886a4917cae14e9caaa270d28caef2cc394c6c8673a3a48c0a4dcd134fb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "86c9e886a4917cae14e9caaa270d28caef2cc394c6c8673a3a48c0a4dcd134fb", kill_on_drop: false }`
[INFO] [stdout] 86c9e886a4917cae14e9caaa270d28caef2cc394c6c8673a3a48c0a4dcd134fb
