level_pivot
Speichererweiterung, die LevelDB mit Pivot-Semantik für strukturierte relationale Tabellen über Schlüssel-Wert-Paare umschließt
Maintainer: halgari
Installation und Laden
INSTALL level_pivot FROM community;LOAD level_pivot;Beispiel
-- Attach a LevelDB databaseATTACH '/tmp/mydb' AS kv (TYPE level_pivot, CREATE_IF_MISSING true);
-- Create a pivot table: rows decompose into LevelDB key-value pairs-- Key pattern: users##<group>##<id>##<attribute_name> → attribute_valueCALL level_pivot_create_table('kv', 'users', 'users##{group}##{id}##{attr}', ['group', 'id', 'name', 'email']);
-- Insert dataINSERT INTO kv.users VALUES ('admins', 'u1', 'Alice', 'alice@example.com');INSERT INTO kv.users VALUES ('admins', 'u2', 'Bob', 'bob@example.com');
-- Query with standard SQL (filter pushdown on identity columns)SELECT * FROM kv.users;SELECT * FROM kv.users WHERE "group" = 'admins' AND id = 'u1';Über level_pivot
LevelPivot ist eine DuckDB-Speichererweiterung, die LevelDB mit Pivot- Semantik umschließt. Sie bildet relationale Zeilen auf LevelDB-Schlüssel-Wert-Paare ab, indem konfigurierbare Schlüsselmuster verwendet werden, sodass strukturierte mehrspaltige SQL-Tabellen auf einem Schlüssel-Wert-Speicher möglich sind.
Tabellen werden über level_pivot_create_table() mit einem Schlüsselmuster wie ‘users##{group}##{id}##{attr}’ erzeugt, das festlegt, wie Zeilen in LevelDB-Einträge zerlegt werden. Identitätsspalten ({group}, {id}) bilden das Schlüssel- präfix; Attributspalten (name, email) werden jeweils zu einem eigenen LevelDB-Schlüssel-Wert-Paar.
Wichtige Funktionen:
- Pivot-Modus: zerlegt Zeilen in LevelDB-Einträge pro Attribut
- Raw-Modus: einfacher zweispaltiger Schlüssel-Wert-Zugriff
- Konfigurierbare Schlüsselmuster mit Identitätsspalten und Trennzeichen
- Typisierte Spalten: VARCHAR, BIGINT, INTEGER, DOUBLE, BOOLEAN
- Filter-Pushdown auf Identitätsspalten für effiziente Präfixscans
- Volle DML-Unterstützung: INSERT, INSERT INTO…SELECT, UPDATE, DELETE
- SIMD-optimiertes Schlüsselparsing (AVX2, SSE2, NEON)
- Datenpersistenz über DETACH-/ATTACH-Zyklen
Hinzugefügte Funktionen
| function_name | function_type | description | comment | examples |
|---|---|---|---|---|
| level_pivot_create_table | table | NULL | NULL | |
| level_pivot_dirty_tables | table | NULL | NULL | |
| level_pivot_drop_table | table | NULL | NULL |
Überladene Funktionen
Diese Erweiterung fügt keine Funktionsüberladungen hinzu.
Hinzugefügte Typen
Diese Erweiterung fügt keine Typen hinzu.
Hinzugefügte Einstellungen
Diese Erweiterung fügt keine Einstellungen hinzu.