Skip to main content

dsfb_database/
non_claims.rs

1//! Non-claim charter for DSFB-Database.
2//!
3//! These strings are reproduced verbatim in the CLI banner, in every report
4//! header, and in the abstract of the paper. The test
5//! `tests/non_claim_lock.rs` pins them so that a reviewer can verify
6//! that the operator pitch and the published paper agree byte-for-byte.
7
8/// Seven things this work explicitly does not claim.
9pub const NON_CLAIMS: [&str; 7] = [
10    "DSFB-Database does not optimise queries, replace the query optimiser, or modify execution plans.",
11    "DSFB-Database does not claim causal correctness; motifs represent structural consistency given observed signals, not root causes.",
12    "DSFB-Database does not provide a forecasting or predictive guarantee; precursor structure is structural, not probabilistic.",
13    "DSFB-Database does not provide ground-truth-validated detection on real workloads; we evaluate via injected perturbations, plan-hash concordance, and replay determinism.",
14    "DSFB-Database does not claim a universal SQL grammar; motifs are engine-aware, telemetry-aware, and workload-aware.",
15    "DSFB-Database does not validate that an operator-supplied grammar is appropriate for a non-SQL residual stream; the generic CSV adapter is a worked example, not a universality claim.",
16    "DSFB-Database's live adapters (PostgreSQL via pg_stat_statements; MySQL via performance_schema) emit residuals at a cadence bounded by their polling interval, the engine's response latency, and the operator-configured CPU budget; they do not provide hard-real-time guarantees. Determinism holds only given a persisted tape — two live invocations against the same engine workload will produce different tapes.",
17];
18
19/// Print the non-claim block (used by CLI and embedded in every report).
20pub fn print() {
21    eprintln!("DSFB-Database non-claims (read these before interpreting any output):");
22    for (i, c) in NON_CLAIMS.iter().enumerate() {
23        eprintln!("  {}. {}", i + 1, c);
24    }
25}
26
27/// Render the non-claim block as a single newline-joined string for embedding
28/// in CSV / JSON report headers and in the LaTeX paper.
29pub fn as_block() -> String {
30    NON_CLAIMS
31        .iter()
32        .enumerate()
33        .map(|(i, c)| format!("  {}. {}", i + 1, c))
34        .collect::<Vec<_>>()
35        .join("\n")
36}