AmberDB

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

5.23.1  2026-09-02
        - [DISTRIBUTION & METADATA] Unified Versioning and MetaCPAN Curation:
          * Unified $VERSION across all internal and standalone modules to 5.23.1 for consistent release identification and stack-trace debugging.
          * Added no_index -> file specification in Makefile.PL for internal engine modules (Base, Cache, Index, Transact, Locale::Currency), curating the MetaCPAN release page to highlight the 6 public standalone modules.
          * Excluded wiki/ documentation directory from CPAN distribution package (via MANIFEST.SKIP), reducing tarball size by ~30% and eliminating 246 redundant packaging entries.
          * Updated main AmberDB abstract to "High-performance embedded NoSQL database engine for Perl".

5.23.0  2026-09-02
        - [ARCHITECTURE & ID SIMPLIFICATION] Pure 64-bit Binary Engine & Deprecation of 8-Byte ASCII IDs:
          * Deprecated 8-byte ASCII IDs (a8) across binary index structures in favor of pure 64-bit Big-Endian unsigned integer packing (Q>*), guaranteeing O(1) binary slicing with fixed 8-byte record strides.
          * Simplified bin_encode() and bin_decode() by removing fragile \0 byte auto-detection and string unpacking heuristics.
          * Removed legacy id_type schema attribute across all modules and test suites; standard relational tables strictly enforce positive integer numeric IDs.
        - [STORAGE & PER-TABLE SIMPLE MODE] Hybrid Multi-Model Architecture with use_simple => 1:
          * Introduced per-table use_simple => 1 attribute allowing key-value tables with arbitrary string keys up to 255 bytes (UUIDs, session tokens, emails, slugs, etc.) alongside standard relational tables.
          * Preserved canonical physical table path ($dbase_dir/table/$table.db) for use_simple tables in standard database mode.
          * Selective schema sanitization: tables with use_simple => 1 strip indexing, columnar, and caching definitions (blocks, match_block, search_block, facet_block, sort_block, record_index, use_cache, cache_ttl) to achieve zero index/cache I/O ...
          * Enabled keep_deleted => 1 archiving (.del) on use_simple tables.
        - [RDBM & INTEGRITY] Foreign Key and Cross-Table Isolation:
          * Prohibited standard relational tables from binding foreign keys (RDBM) to use_simple tables in rdbm_target() and _resolve_field_value().
        - [TESTS & VERIFICATION] Dedicated Test Coverage:
          * Added comprehensive test suite t/amberdb_table_use_simple.t verifying arbitrary string keys, schema sanitization, zero index file creation, keep_deleted archiving, and RDBM isolation.

Changes  view on Meta::CPAN

          * Implemented hash_diff($hash1, $hash2) in AmberDB::Array with safe shallow copying, ensuring input hash structures are never mutated.
          * Removed legacy internal _hash_diff from AmberDB::Tools and switched to $adb->hash_diff directly.
          * Added unit test coverage for hash_diff in t/amberdb_array.t.

5.22.2  2026-09-01
        - [CROSS-PLATFORM & CI] Universal GitHub Actions CI Matrix:
          * Configured multi-platform CI matrix testing on Linux (ubuntu-latest), macOS (macos-latest), and Windows (windows-latest) across Perl 5.16 through 5.40.
          * Configured official Strawberry Perl distribution in CI for native Berkeley DB / DB_File binary compatibility and prevented Git Bash PATH collisions.
        - [STORAGE & TRANSACTIONS] Safe Directory Scanner and Windows File Sharing:
          * Introduced dir_files($dir, [$pattern], [%opts]) helper method in AmberDB::Base for cross-platform, safe file discovery supporting wildcards (*.db, txn_*.txn) and compiled regular expressions (qr/../).
          * Refactored AmberDB::Transact and AmberDB::Tools (dir_tables, all_tables, del_table) to use dir_files, completely removing fragile glob usage.
          * Fixed Windows NTFS file sharing collision in transact_recover: journal lines are now read directly from open locked handles, preventing secondary open permission denied errors.
        - [TESTS & STABILITY] Test Concurrency and Monotonic Sequence:
          * Hardened t/amberdb_transact.t orphan recovery subtest to use strictly monotonic table_autoid record IDs (65) and authentic transaction lifecycle simulation.
          * Guaranteed complete handle and lock cleanup with $adb->close_all() in crash recovery test scenarios.

5.22.1  2026-09-01
        - [DOCS] Documentation and Synopsis Fixes:
          * Fixed synopsis and API example signatures across documentation and POD.
          * Updated README.md installation instructions with streamlined CPAN/cpanm cross-platform support.
          * Fixed character encoding and wide-character warnings in test suite schemas.

docs/EN.AmberDB_User-Guide.md  view on Meta::CPAN

# 1. Rebuild all indexes for a table
$tools->set_index("catalog_product");

# 2. Rebuild indexes across all tables in database
$tools->index_alltables();

# 3. Verify index consistency
my @records = $adb->read_all("catalog_product", { no_index => 1 });
my $diff    = $tools->check_readall("catalog_product", @records);

# 4. Vacuum Table (Removes fragmentation and shrinks .db file)
$tools->vacuum("catalog_product", 1); # 1 = automatically reindex after vacuum

# 5. Export / Import CSV
$tools->tie2csv("catalog_product");
$tools->csv2tie("catalog_product");

# 6. Batch Reindex / Convert All Database Tables
my $converted_report = $tools->convert_tables();

# 7. Delete Table and All Secondary Index Files from Disk



( run in 0.644 second using v1.01-cache-2.11-cpan-b16cb0d3907 )