PostgreSQL 9.5 Beta 1 freigegeben

  • Die PostgreSQL-Entwickler haben eine erste Vorschau auf die kommende Version 9.5 des freien objektrelationalen Datenbanksystems veröffentlicht. Die Betaversion enthält bereits alle geplanten Funktionen der offiziellen Version 9.5.
    Von Hans-Joachim Baader


    PostgreSQL 9.5 Beta 1 enthält laut den Entwicklern eine lange Reihe von Neuerungen. Bis zur Freigabe der offiziellen Version gegen Ende des Jahres sind ausgiebige Tests erwünscht. Bis auf Korrekturen soll sich am Code nichts mehr ändern, was Auswirkungen auf die Anwender hat.


    in PostgreSQL kann man Tabellen definieren, die auf anderen Datenbank-Servern (FOREIGN) liegen. Bisher musste man die Struktur dieser Tabellen im Detail von Hand festlegen, jetzt kann man sie mit der neuen Anweisung IMPORT FOREIGN SCHEMA auf einen Schlag importieren. FOREIGN-Tabellen können jetzt zudem bei der Definition von lokalen Tabellen erben und umgekehrt.


    Die Zugriffsrechte auf Daten können nun zeilenweise definiert werden. Mit CREATE POLICY lassen sich verschiedene Bedingungen angeben, welcher Benutzer auf Zeilen welchen Inhalts zugreifen darf.


    Die neuen BRIN (Block Range)-Indexe ermöglichen es, wenn definiert, mit sehr wenig zusätzlichem Platzbedarf bestimmte Abfragen um ein Mehrfaches zu beschleunigen. Die neuen Direktiven GROUPING SETS, CUBE und ROLLUP dagegen machen es möglich, Daten in Mengen zu aggregieren, wobei die üblichen Funktionen wie count, sum usw. verwendet werden können.


    JSONB-Daten können nun in SQL-Anweisungen auch geändert werden. Eine weitere bedeutende, aber auch ziemlich komplexe Änderung sind INSERT ... ON CONFLICT-Anweisungen. Diese versuchen zunächst einen Datensatz ganz normal einzufügen. Im Falle eines Konflikts, der normalerweise dadurch entsteht, dass ein Datensatz mit identischen Indexwerten bereits existiert, kann anstelle des INSERT eine UPDATE-Operation spezifiziert werden. Der Vorteil dieser Neuerung gegenüber anderen Verfahren ist, dass sie atomar abläuft. MySQL und wahrscheinlich auch andere Datenbanken besitzen ähnliche Funktionalität, aber mit anderer Syntax.


    Das neue Programm pg_rewind dient bei der Datenbank-Replikation dazu, einen alten primären Server mit einem neuen zu synchronisieren, ohne ein Backup der Datenbank einspielen zu müssen. Weitere Neuerungen sind die Möglichkeit, Tabellen nachträglich zwischen »logged« und »unlogged« umzuschalten, SELECT-Anweisungen mit der SKIP LOCKED-Option, um gerade gesperrte Datensätze auszulassen, Parallelisierung der Vacuum-Operation, Zugriff auf den Zeitstempel, zu dem eine Transaktion committet wurde, »abgekürzte« Schlüssel auf Text-Spalten zur Beschleunigung von Sortieroperationen, die TABLESAMPLE-Direktive zur Selektion einer zufälligen Stichprobe aus einer Tabelle, geringerer Speicherverbrauch sowie diverse Optimierungen der Skalierbarkeit und Geschwindigkeit.


    Die meisten Änderungen kann man in den ausführlichen Anmerkungen zu PostgreSQL 9.5 im Wiki nachlesen. Der Download der Betaversion ist von der Downloadseite möglich.


    Quelle: