1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
[]
= "spg-engine"
= { = true }
= { = true }
= { = true }
= { = true }
= "Execution engine for SPG: glues spg-sql parsing to spg-storage. Foreign keys, joins, vectors, cold tier."
= { = true }
= ["database-implementations"]
= ["spg", "sql", "engine", "executor", "no-std"]
[]
= { = true }
= { = true }
= { = true }
= { = true }
# v7.37.42-arena Phase 2 — per-query Bump arena for the SCALARSQ
# streaming executor's row scratch + projection buffer. Keeps the
# Vec<Value> outer alloc off the heap and bulk-resets at query end.
= { = true }
# v7.17.0 Phase 3.P0-71 — `mysql_native_password` auth verifier
# stores SHA1(SHA1(password)) per user. RustCrypto's `sha1` is
# the smallest dep that lands a no_std-friendly SHA-1 in the
# workspace.
= { = "0.10", = false }
# v7.17.0 Phase 3.P0-72 — `caching_sha2_password` auth verifier
# stores SHA256(SHA256(password)) per user.
= { = "0.10", = false }
# v7.37.17 (17.6 siblings) — PG built-in md5() function. RustCrypto's
# `md-5` is the standard no_std-friendly MD5 impl; already in the
# lock graph transitively (via `sqlx-postgres` etc.), so no new
# vendored surface — just a direct dep now.
= { = "0.10", = false }
# v7.37.17 (17.6 siblings) — pgcrypto's hmac(data, key, algo) —
# uses RustCrypto's `hmac` (already transitively in the lock graph
# via sqlx-postgres) with the sha1/sha2/md-5 backends we ship.
= { = "0.12", = false }
# v7.37.17 (17.6 siblings) — trig + advanced math functions.
# `libm` is pure-Rust no_std C math library port, already
# transitively in the workspace via wasmtime/other crates.
= { = "0.2", = false }
# v7.37.17 (17.6 siblings) — PG 13+ normalize(text, form) Unicode
# normalization. Already transitively in the lock graph.
= { = "0.1", = false }
= { = true }
= { = true }
[]
# v7.38 元机制 D — `std` feature gates `EnvConfig::from_env()` so the
# engine stays `#![no_std]`-compatible. Default-on for the hosted
# embedders (spg-server, spg-embedded, tests); downstream bare-metal
# users can opt out via `default-features = false`.
= ["std"]
= []
# v7.37.16 — the in-place MVCC write path is ON BY DEFAULT (the
# v7.37.15 gate flipped after the full evidence chain: both engine
# matrices green, gate-on full gate ×2, DELETE beats PG18, autovacuum
# landed). This feature builds with the LEGACY physical-delete path as
# the default instead — the regression matrix for the old behaviour
# (`cargo test -p spg-engine --features mvcc-inplace-off`). Runtime
# opt-out for operators: `SPG_MVCC_INPLACE=0`.
= []
# v7.38 P0 元机制 A — injection_points framework.
#
# Default OFF for release builds: every `injection_point!()` macro
# call expands to `let _ = (...);` (consumes the payload exprs but
# generates no runtime code; verified by `cargo asm` to leave no
# push/pop/branch in optimised builds). With the feature ON the
# macro routes to `testkit::injection::__trigger`, which looks up
# the current engine's `InjectionStore` via a thread-local and runs
# the attached action (wait/wakeup/error/notice). Test binaries
# enable it via dev-deps; CI runs `cargo test --features
# injection-points`. See `.claude/notes/v7.38-injection-points-design.md`.
= []
# v7.37.9 T3 — diagnostic perf counters for Step VM / aggregate hot
# paths. Default OFF for release builds: every `bump_counter!(...)`
# macro call expands to `let _ = (...);` (no runtime code). With the
# feature ON the macro routes to the underlying `AtomicU64::fetch_add`.
# Used by the `xtests/dogfood_replay/src/bin/counter_dump.rs`
# diagnostic binary to attribute Class A / B / C cascade cost; not
# useful in production where the counters add ~3-4 ms/query overhead
# (3.5M atomic Relaxed adds × ~1 ns).
= []
[]
= true
[]
# v7.39 (tz epic) — the e2e suite injects the std-side tzdb the way
# the server/embedded hosts do.
= { = true }
= { = true }
# v7.38 P0 元机制 A — dev-cycle `cargo test` automatically opts in
# to the injection-points framework so unit / e2e tests can attach
# `wait` / `wakeup` / `error` / `notice` actions to any
# `injection_point!()` site. Release builds (no dev-deps) keep the
# feature off; macros expand to no-ops.
= { = ".", = ["injection-points"] }
[[]]
= "execute"
= false