Montag, Februar 02, 2015

SQL Features in unterschiedlichen RDBMS

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