Skip to content

0.5.0 File persistence, man, BTREE and auto-testing#1

Merged
quirinpa merged 6 commits intomainfrom
alpha-0.5.0
Oct 24, 2025
Merged

0.5.0 File persistence, man, BTREE and auto-testing#1
quirinpa merged 6 commits intomainfrom
alpha-0.5.0

Conversation

@quirinpa
Copy link
Copy Markdown
Member

@quirinpa quirinpa commented Oct 24, 2025

This PR adds a test workflow, man page generation, persistent storage, a CLI tool (migrated from libqdb - to be deprecated), and adds sorted iteration.

  • Leverage Doxygen to make man pages
  • Refactor from unsigneduint32_t across API.
  • Implemented persistent storage:
    • qmap_save() writes all tracked databases to disk.
    • Multiple databases per file supported.
    • Changed qmap_open syntax to include filename and database.
  • Added B-tree–like sorted index (QM_SORTED):
    • Rebuilt when dirty and a sorted search is requested.
  • Complete Doxygen annotations (for automatic man page gen).
  • Fixed the previous info a little bit.
  • Expanded coverage to test file persistence. And sorted iteration.

@quirinpa quirinpa self-assigned this Oct 24, 2025
@quirinpa quirinpa force-pushed the alpha-0.5.0 branch 2 times, most recently from dc6e1c9 to aa26977 Compare October 24, 2025 09:39
@quirinpa quirinpa changed the title 0.5.0 File save / load and BTREE search 0.5.0 File save / load and BTREE search (and auto-testing) Oct 24, 2025
@quirinpa quirinpa changed the title 0.5.0 File save / load and BTREE search (and auto-testing) 0.5.0 File persistence, man, BTREE and auto-testing Oct 24, 2025
@quirinpa quirinpa merged commit d550376 into main Oct 24, 2025
1 check passed
quirinpa added a commit that referenced this pull request Feb 23, 2026
- Bug #1 FIX: Fixed QM_MIRROR + QM_MULTIVALUE persistence by always
  setting mdbs[hd]=1 regardless of database name. This ensures
  maps are properly registered for save operations.

- Bug #3 FIX: Fixed QM_RANGE iteration to return all duplicates
  by reordering conditions in qmap_iter(). Now checks QM_MULTIVALUE
  first to use QMAP_BSEARCH_FIRST instead of QMAP_BSEARCH_ANY.

- Added regression test for Bug #3

- Updated BUGS.md to reflect fixes and known limitations

Bug #2 (qmap_assoc + QM_MULTIVALUE) remains as known limitation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant