-
Notifications
You must be signed in to change notification settings - Fork 0
File unq
Turkce Dokumantasyon | English Documentation
Category: Physical File Formats
Subsystem: Indexing & Uniqueness Subsystem (AmberDB::Index)
Entry Type: Authoritative Storage File Format
The .unq (Unique & Dictionary Index) file is an authoritative bidirectional dictionary table (dbstore/tables/${table}_${block}.unq) that simultaneously enforces field uniqueness constraints (valid => "unique") and transparently maps textual attribute labels (e.g. Brands, Publishers, Variant names) to compact integer identifiers.
AmberDB standardizes on .unq (superseding legacy .str) to prevent confusion with .srt (Sort indexes) and unify uniqueness enforcement.
.unq Bidirectional Key Mapping Architecture
1. String to ID: s:Penguin Books ──> 10
2. ID to String: n:10 ──> Penguin Books
3. Auto Last ID: lastid ──> 10
-
Uniqueness Enforcement (
valid => "unique"):- For unique attributes (such as emails, usernames, SKUs, or barcodes), the engine checks
s:$valuein the.unqindex duringinsert_idandmodify_id. - Conflicts immediately raise validation errors.
- For unique attributes (such as emails, usernames, SKUs, or barcodes), the engine checks
-
Relational String Resolution (
rdbm):- When text labels are supplied for relational fields or facet filters, the engine resolves or registers dictionary IDs via
.unqlookups.
- When text labels are supplied for relational fields or facet filters, the engine resolves or registers dictionary IDs via
AmberDB — High-Performance Schema-Driven NoSQL Database Engine for Perl.
Copyright 2005-2026 Maruf Cetin. Released under the Artistic License 2.0.
CPAN · GitHub Repository · Issue Tracker
- Berkeley DB (DB_File) Engine
- AmberDB Table Schema
- Global Flags
- Table Schema Flags
- Directory Structure
- File Structure (Extensions)
- Repeat Blocks
- Auto-Increment ID
- ASCII ID
- Relational Records
- Record Anatomy
- JOIN-Free Architecture
- Packed Binary Index
- Strict 2PL Locking
- Undo Journal & Rollback
- Tiered Junk Indexing
- Disjunctive Faceting
- Phonetic Accent Search
- 2-Pillar Disaster Recovery
- RAM-Disk Acceleration
- In-Memory Schema Mutation
- Simple Mode
- new
- config
- set_datadir
- insert_id
- insert_list
- modify_id
- modify_list
- delete_id
- delete_list
- read_id
- read_all
- read_list
- exist_id
- exist_list
- exist_table
- table_count
- table_keys
- table_lastid
- table_attr
- table_create
- field_fetch
- field_filter
- search_table
- facet_menu
- field_fltkeys
- field_allfltkeys
- facet_rules
- slug_read
- slug_fetch
- transact_start
- transact_end
- transact_commit
- transact_rollback
- transact_recover
- flock_open
- flock_close
- cache_setup
- cache_read
- cache_write
- cache_delete
- cache_preload
- cache_ensure
- buffer_write
- buffer_read
- buffer_delete
- recs_scan
- recs_get
- recs_put
- recs_del
- locale_uc
- locale_lc
- locale_sort
- locale_to_ascii
- locale_num2text
- locale_format_currency
- locale_format_date
- array_sort
- array_punch
- array_filter
- array_sublist
- deep_copy
- log_owner
- use_counter
- use_junk
- keep_deleted
- auto_id
- buffer_write
- simple
- no_write
- no_backup
- jnktype
- keys_only
- id_type
- language
- .db · .table · .dbase
- .inx · .fld · .src
- .fac · .srt · .slg
- .unq · .del · .aut
- .cnt · .txn · .amberdb
- .csv · .cache · .tmp