Fehler behoben: Umlaute, Latin-1, Fehlermeldungen, atomares Schreiben
Spaltennamen mit Umlauten in Ausdrücken, Latin-1-Dateien als UTF-8, Fehler als eine Zeile (RDB_DEBUG=1 für Backtrace), Werte mit Tab oder Zeilenumbruch abgelehnt, Tabellen und Indexe über Temp-Datei und rename, update.rdb gibt den Satz bei Editorfehler zurück, sorttable -r stabil.
This commit is contained in:
+13
-3
@@ -27,7 +27,7 @@ Stand: 2026-10-30, Version 0.7.0. Die 114 Tests und der Handbuch-Test liefen gr
|
||||
Race zwischen `File.exist?` und `rename`; nach `kill -9` bleibt `LOCK…` liegen.
|
||||
**Behoben:** atomare Sperre über `File.link`. Offen: nach `kill -9` bleibt `LOCK…` liegen.
|
||||
|
||||
## Fehler
|
||||
## Fehler (1–8 behoben, 9 teilweise)
|
||||
|
||||
1. **Umlaute in Spaltennamen (bestätigt).** `to_awk` erkennt nur `[A-Za-z_#]`
|
||||
und ASCII-`\w`. `row 'Über > 3'` scheitert mit awk-Fehler. Relevant für die
|
||||
@@ -62,6 +62,16 @@ Stand: 2026-10-30, Version 0.7.0. Die 114 Tests und der Handbuch-Test liefen gr
|
||||
ignoriert; `total`/`mean` lehnen `1e3` ab; eine Zeile aus lauter leeren
|
||||
Zellen gilt als gelöscht ([fast.rb:21](../lib/rdb/fast.rb)).
|
||||
|
||||
**Stand der Behebung:** 1 (Umlaute: Unicode-fähiger Umsetzer), 2 (Latin-1 wird als UTF-8
|
||||
gelesen), 3 (Fehler als eine Zeile, `RDB_DEBUG=1` für den Backtrace), 4 (`EDITOR` mit
|
||||
Argumenten, Editorfehler wird gemeldet), 5 (Satz wird in jedem Fall zurückgeschrieben),
|
||||
6 (`Rdb.check_cells!`), 7 (`Rdb.write_file`: temporäre Datei plus `rename`) und 8
|
||||
(Sortierschlüssel ohne Leerzeichen) sind behoben, jeweils mit Test.
|
||||
Bei 9 ist nur `sorttable -r` behoben. Bewusst offen: `-nrf` gilt global (so beschreibt es
|
||||
das Handbuch), `jointable -n` ist unklar spezifiziert, `1e3` als Zahl und die Zeile aus
|
||||
leeren Zellen als „gelöscht“ sind Eigenheiten des Formats. Bei 8 bleibt `-x` (Faltung) beim
|
||||
Index ohne Entsprechung in der Suche offen.
|
||||
|
||||
## Verbesserungspotential
|
||||
|
||||
1. **Indexe sind nicht schnell.** Jede Suche liest Tabelle und Indexdatei
|
||||
@@ -88,5 +98,5 @@ Stand: 2026-10-30, Version 0.7.0. Die 114 Tests und der Handbuch-Test liefen gr
|
||||
|
||||
## Empfohlene Reihenfolge
|
||||
|
||||
Die Schwachstellen sind erledigt. Weiter mit: Umlaute (Fehler 1), Encoding (2), Top-Level-Rescue (3), `report`-Einschleusung
|
||||
(Schwachstelle 1); danach Hash-Funktion und Index-Lesezugriffe.
|
||||
Schwachstellen und Fehler sind erledigt. Weiter mit: Hash-Funktion und
|
||||
Index-Lesezugriffe (Verbesserung 1 und 2), dann Float-Geld.
|
||||
|
||||
Reference in New Issue
Block a user