Eine sehr interessante Präsentation hat Markus Winand offenbar gerade auf der FOSDEM-Konferenz gehalten. Dafür spricht jedenfalls der Foliensatz dazu, den man auf seiner Webseite findet. Darin zeigt er, was seit SQL-92 alles an interessanten Features für SQL verfügbar wurde und liefert vor allem auch Informationen dazu, wann diese Möglichkeiten in den verbreitetsten RDBMS eingeführt wurden. Unter den vorgestellten Features sind:
- Lateral Join
- With clause (aka "subquery factoring" aka "common table expression (CTE)"; in postgres wird die CTE immer materialisiert, ein predicate pushdown ist also nicht möglich. Dafür erlaubt postgres DML-Operationen in der CTE, deren Ergebnisse via returning clause weitergegeben werden.
- Recursive with clause: zur Umsetzung hierarchischer Abfragen (wozu Oracle lange Zeit ausschließlich die connect by Syntax anbot).
- Filter clause: die in SQL-2003 angesprochene Möglichkeit, einen Filter für Gruppenfunktionen zu definieren -
die bislang in keinem RDBMS realisiert ist. Markus Winand hat mich via Twitter darauf hingewiesen, dass ich seine Slides in dem Fall falsch interpretiert habe: in Postgres 9.4 ist Filter implementiert. Ein Beispiel dazu findet man bei Hubert Lubaczewski. - Over mit Group by
- Over mit Order by
- Within group
- Fetch first
- Offset: wovon der Herr Winand offenbar gar nichts hält.
- Without overlaps: was offenbar in der Bereich der temporal features fällt.
Zu den meisten Punkten habe ich hier gelegentlich etwas geschrieben, spare mir aber die Verknüpfung. Möglicherweise sollte ich zu SQL-Syntax-Elementen mal ein zielgenaues Tag spendieren...
Keine Kommentare:
Kommentar veröffentlichen