HeliosDB Nano v3.19.1 Release Notes
HeliosDB Nano v3.19.1 Release Notes
Release Date: 2026-04-25 Theme: UUID literal coercion fix at PK index lookup (#205)
Highlights
Resolves the CloudV2 admin_db “INSERT-then-SELECT-misses-the-row” bug. Root cause was a planner literal-typing bug: SELECT … WHERE id = '<uuid>' against a UUID-typed PK emitted Value::String("<uuid>") regardless of the column’s declared type. The ART point-lookup encoded the search key by Value variant, so Value::String and Value::Uuid produced different encoded keys → the lookup missed every row.
Fixed
Three patches land the fix:
src/sql/executor/mod.rs::try_index_point_lookup— coerces the literal to the PK column’s type before the ART lookup. New helpercoerce_literal_to_column_typehandles String → UUID / Date / Timestamp.src/lib.rs::fast_parse_one_value— same coercion at the fast-select parse layer forSELECT *queries.src/storage/simd_filter.rs::compare_eq— Uuid ↔ String cross-type case so the SIMD post-walk filter also matches.
Regression Coverage
Two new tests:
tests/uuid_where_repro.rs— direct API.tests/persistence_repro.rs— wire protocol, no longer#[ignore]d.
All 1842 lib tests + every prior integration suite remain green.
CloudV2 Follow-Ups
With this fix in place:
- Revert admin_db SELECT-all workarounds.
- Drop the daily restart cron.
- Graduate
cloud-v2.heliosdb.comto production.
Migration
No breaking changes. Drop-in upgrade from v3.19.0.
If you were applying client-side workarounds for missed UUID PK lookups (broad SELECT then filter, daily restart cron, manual UUID coercion in the application layer), those can be removed.
Compatibility Matrix
| Component | Version |
|---|---|
| PostgreSQL wire | 14, 15, 16 |
| MySQL wire | 5.7, 8.0 |
| MCP protocol | 1.0 |