report setzt Zellwerte in <!befehl!> maskiert ein, screen verlangt gültige Variablennamen, lock/unlock nutzen /tmp/rdb-locks-<UID> mit flock, vilock sperrt per Hardlink. EDITOR darf Argumente haben. Doku und Tests ergänzt.
6.4 KiB
6.4 KiB
Changelog
Alle wichtigen Änderungen stehen hier. Das Format folgt
Keep a Changelog, die Versionsnummern
folgen Semantic Versioning. Die Version steht in
lib/rdb/version.rb; rdb --version zeigt sie an.
[Unveröffentlicht]
Hinzugefügt
doc/handbuch.txt: der Text des gedruckten Handbuchs „COHERENT /rdb Relational Database Manager“ (346 Seiten), per OCR aus dem Scan, mit PDF- und Buchseiten.demo/handbuch/: die Beispiele aus dem Lehrbuchteil (Kapitel 2, 3, 6, 7, 10, 11, 15) mit ihren Tabellen.beispiele.txthält Befehl und gedruckte Ausgabe,test/handbuch_test.rbvergleicht sie;mise run testführt ihn mit aus. Druckfehler des Buchs und Stellen, an denen wir abweichen, sind dort vermerkt.
Geändert
searchundseekohne Schlüsselspalte nehmen die Spaltennamen aus dem Kopf einer Schlüsseltabelle auf der Standardeingabe (search -mh mailtable < name, Handbuch S. 105). Vorher galt immer die erste Spalte der Datentabelle.gregorian -uschreibt den Monat ohne führende Null (6/01/89), wie im Handbuch.meanschreibt einen ganzzahligen Mittelwert ohne.00(4786, Handbuch S. 26).
Sicherheit
report: Spaltenwerte in<!befehl <Spalte>!>wurden unmaskiert in einen Shell-Aufruf eingesetzt, eine Zelle konnte so Befehle ausführen. Sie werden jetzt mitShellwords.escapeeingesetzt.screen: Spaltennamen, die keine gültigen Shell-Variablennamen sind, brechen mit einer Meldung ab, statt ins erzeugte Skript zu gelangen.lock/unlock: Sperrdateien liegen in/tmp/rdb-locks-<UID>/(Modus 0700, Besitzer und Symlinks geprüft) statt lose in/tmp; Lesen und Schreiben laufen unterflock.vilock: die Sperre wird atomar über einen Hardlink genommen (vorherexist?undrenamemit Lücke dazwischen).
Behoben
EDITORmit Argumenten (nvim -f) invilockundupdate.rdbwurde als ein Programmname behandelt; der Editor startete nie.- Spaltennamen, die
justifymit Leerzeichen aufgefüllt hat, wurden nicht mehr gefunden:column Namelieferte eine leere Spalte,indexbrach ab. Leerraum um die Namen im Kopf zählt jetzt nicht mehr.
[0.7.0] - 2026-10-12
Hinzugefügt
column -d Spalte ...(undproject -d) löscht Spalten: alle anderen bleiben in ihrer Reihenfolge. Fehler bei unbekannter Spalte oder wenn alle gelöscht würden. Dazu Abschnitt inman/column.man, Beispiel intestall.cmdsund Tests.- Kantonstarife 2026 für
tax:demo/taxCH_AI2026,taxCH_AR2026,taxCH_SG2026,taxCH_GR2026(PräfixtaxCH_für die Schweiz; einfache Staatssteuer für Alleinstehende, vor Steuerfuss, Gemeinde und Kirche), erzeugt mittools/gen_tax_tables.rb. Mit Tests, Beispiel intestall.cmdsund Erklärung zum Steuerfuss im README.
Behoben
rdb man dashline(undheadline,backup,dbase,accounting_ter) zeigte als Überschrift eine Makrozeile (dashline -- .PP). Themen-Seiten ohne Beschreibung nehmen jetzt den Titel aus der.TH-Zeile.splittable -0und mehr als 676 Stücke endeten mit einem Ruby-Abbruch (im zweiten Fall nach 676 geschriebenen Dateien). Jetzt eine Fehlermeldung, und es wird vorher geprüft, damit nichts halb geschrieben wird.
[0.6.0] - 2026-10-11
Hinzugefügt
- Steuertabellen 2026 für
tax:demo/taxDE2026,taxAT2026,taxCH2026(nur Bundessteuer),taxLI2026(nur Landessteuer), erzeugt mittools/gen_tax_tables.rb, mit Tests.
Geändert
record: 0 und 1 sind die erste Zeile, negative Zahlen zählen vom Ende (-1letzte,-2vorletzte ...). Außerhalb der Tabelle kommt eine leere Tabelle, Text und Dezimalzahlen sind ein Fehler. (Vorher lieferten 0, -1 und Text ungewollt Zeilen vom Ende.)testall.cmdsundman/record.manzeigen es.- README und
man/row.manerklären, warumselectin bash/zsh/ksh einen Syntaxfehler gibt und wie man es trotzdem aufruft.
Behoben
rdb manzeigte\\selectin den Man-Pages als\elect: ein doppelter Backslash wird jetzt zuerst geschützt.
[0.5.0] - 2026-10-11
Hinzugefügt
pick: Tabelle auf dem Terminal durchblättern, filtern und eine oder mehrere Zeilen (-m) auswählen; die Auswahl geht als Tabelle auf die Standardausgabe.-knimmt die Tasten aus einem String. Dazuman/pick.man, Beispiele intestall.cmdsund Tests (auch mit Pseudo-Terminal).
[0.4.0] - 2026-10-11
Hinzugefügt
mask: Eingabemaske mit eigener Oberfläche (Felder mit Breite, Schaltflächen, Rahmen-b,-szeigt das Bild ohne Terminal). Schreibt die Eingabe als Tabelle auf die Standardausgabe. Die Vorlage kommt wie beiscreenvon der Standardeingabe (mask < entry). Dazuman/mask.man,demo/maskformund Tests (auch mit Pseudo-Terminal).demo/entry: beschriftete Eingabemaske fürscreen(README erklärt den Unterschied zuform).
[0.3.0] - 2026-10-11
Hinzugefügt
demo/testall.cmdsenthält zu jedem der 134 Befehle ein ausführbares Beispiel, gegliedert durch Überschriften (##-Zeilen werden mit ausgegeben,#-Zeilen sind stille Kommentare). Ein Test prüft, dass kein Befehl fehlt.
Geändert
testallläuft in einer temporären Kopie vondemo/; schreibende Beispiele (append,delete,close...) verändern die Demodaten nicht mehr. Die Befehle lesen von einer leeren Standardeingabe.salenimmt das Datum ausNEXTDATE(wiegetjournal,close), sonst von heute.lockführt die Sperrdatei pro Pfad statt pro Dateiname, so stören sich gleichnamige Tabellen in verschiedenen Ordnern nicht.
[0.2.0] - 2026-10-11
Hinzugefügt
RDB_ICASE=1ignoriert Groß-/Kleinschreibung bei Spaltennamen. Ein exakter Treffer gewinnt, mehrere Treffer sind ein Fehler; awk-Wörter und Funktionsaufrufe bleiben unberührt.- Man-Pages von
row,compute,column,sorttable,jointable,rename,validateundrdbmit dem Abschnitt „Case of Column Names“. rdb man -g: Man-Page mit groff formatiert, dazuman/rdb.tmacmit den MWC-Makros (.DM,.DE,.PC...).rdb --version,CHANGELOG.md.
Geändert
columnschreibt den Kopf in der Schreibweise der Tabelle, wenn die Spalte existiert.demo/ledgerunddemo/chartverwenden echte Tabs.
[0.1.0] - 2026-10-11
Hinzugefügt
- Erster Nachbau von /rdb in Ruby: ein Programm
bin/rdbmit Symlinks für alle dokumentierten Befehle (Relational, Text, Konvertierung, Schnellzugriff, Berichte, Terminal, /act), 137 Man-Pages, Demo-Daten, 76 Tests, mise-Setup.