[DPWN] Wöchentlicher PostgreSQL Newsletter - 14. Januar 2007

Der Originalartikel befindet sich unter:
http://people.planetpostgresql.org/dfetter/

== Wöchentlicher PostgreSQL Newsletter - 14. Januar 2007 ==

Sicherheitsupdates für 8.2.1, 8.1.6, 8.0.10, 7.4.15 und 7.3.17 sind draussen, ebenfalls Packages für Debian, Fedora, Fink, FreeBSD Red Hat und Ubunto. Schnell upgraden.

== PostgreSQL Produkt Neuigkeiten ==

Another PostgreSQL Diff Tool 1.0.0_beta13 erschienen.
http://pgfoundry.org/projects/apgdiff/

pfm 1.4.3 erschienen.
http://pgfoundry.org/projects/pfm/

mysql2pgsql-1.0.2 erschienen.
http://gborg.postgresql.org/project/mysql2psql/projdisplay.php

PostgreSQL SDBC Driver 0.7.3 ist erschienen:
http://dba.openoffice.org/drivers/postgresql/

Navicat PostgreSQL 7.2.10 für Windows erschienen.
http://pgsql.navicat.com/

Slony-I 1.2.6 ist draussen.
http://slony.info/

audittrail2-beta1 erschienen.
http://pgfoundry.org/projects/audittrail2/

PGCluster 1.5.0rc13 and 1.7.0rc2 erschienen.
http://pgfoundry.org/projects/pgcluster/

== PostgreSQL Lokal ==

Die Deutsche PostgreSQL Usergruppe ( http://www.pgug.de ) erstellt drei neue Flyer in Englisch und Deutsch. Die Themen werden sein: 1) PostgreSQL allgemein, 2) PG und Replikation, 3) PG im Vergleich zu anderen. Wenn du Material hinzufügen oder dich beteiligen möchtest, wende dich an info at pgug dot de.

Bitte übermittle deine Vorschläge für die PGCon 2007. PGCon wird in Ottawa, Ontaria in Kanada sein. Einsendeschluss für Einreichungen ist der 19. Januar.
http://www.pgcon.org/2007/submissions.php

Es wird ein PostgreSQL Stand auf der FOSDEM am 24. und 25. Februar in Brüssel, Belgien sein. Viele der üblichen Verdächtigen von den EU PostgreSQL Communities werden dort sein. Kontaktiere de@postgresql.org um teilzunehmen.
http://www.fosdem.org/2007/

Pavel Stehule wird einen Kurs über Stored Procedures in PostgreSQL halten. Termin ist der 11. Januar 2007 in Prag, Sprache ist Tschechisch.
http://www.root.cz/zpravicky/skoleni-o-ulozenych-procedurach-v-postgresql/

Die Italienische PostgreSQL Community wird einen PostgreSQL Tag im
Sommer abhalten. Bookmarke den folgenden Link, um teilzunehmen.
http://www.pgday.it

Gavin Sherry veranstaltet eine PostgreSQL Minikonferenz in Sydney am
Dienstag dem 16. Januar 2007.
http://lca2007.linux.org.au/Miniconfs/PostgreSQL Wenn du teilnehmen
möchtest, maile gavin AT alcove . com . au

== PostgreSQL in den News ==

Planet PostgreSQL: http://www.planetpostgresql.org/

General Bits, Archive und gelegentliche News Artikel:
http://www.varlena.com/GeneralBits/

Dieser wöchentliche PostgreSQL Newsletter wurde erstellt von David Fetter,
Devrim GUNDUZ und Robert Treat

Um deine Beiträge für die nächste Ausgabe zu übermitteln, sende diese an david@fetter.org bis Sonntag, 15:00 Uhr Pazifischer Zeit.

== Angewandte Patches ==

Alvaro Herrera checkte ein:

  • Marko Kreen’s Patch um unnötige DISABLE_ZLIB defines in pgcrypto mit HAVE_ZLIB aus dem Core zu ersetzen.

  • Repariere autovacuum um zu vermeiden, das nicht-permanente Xids in nicht konnektierbaren Datenbanken verbleiben. Patch nur für die 8.1 Branch, da der neue 8.2 (und HEAD) Code dieses Problem nicht hat.


    Michael Meskes checkte ein:

  • Passe MinGW erwartete Datei an neues Setup an, erstelle erwartete Datei mit richtiger Portnummer.

  • Vereinfache ecpg Regression Handling, addiere Patch von Joachim Wieland mit einem Workaround für einen Fehler in der OpenBSD Test Suite.

  • In ecpg, wende Joachim’s Patch für eine --regression Option an. Sorge dafür, das diese Option die .c Dateien markiert, so das keine Umgebungsvariable mehr notwendig ist. Habe eine spezielle MinGW Datei mit dieser speziellen Fehlermeldung erstellt. Schreibe den Port nicht in das Logfile wenn Regression Tests laufen.

Neil Conway checkte ein:

  • Füge eine Notiz zur Dokumentation hinzu die NANs Gleichheit und Sortierverhalten beschreibt. Laut einer kürzlichen -hackers Diskussion, dies ist erwähnenswert, da das Postgres Verhalten von den meisten NaN Implementierungen abweicht, IEEE754 eingeschlossen.

  • Ein Patch von Magnus Hagander und Joachim Wieland für pgsql/src/tools/msvc/gendef.pl welcher zwei Probleme beseitigt: gendef funktioniert von Visual Studio aus - nutze eine temporäre Datei statt einer Umleitung, denn aus einigen Gründen kann man Umleitungen nicht von innerhalb nutzen und gendef muss nur *.obj Dateien bearbeiten, oder du bekommst komische Fehlermeldungen in einigen Build Szenarien wenn es versucht, ein Logfile abzuarbeiten.

  • Dieser Patch für pgsql/src/tools/msvc/build.bat schaltet umfangreiche Ausgaben beim Bauen aller Projekte an. Dies ist der selbe Ausgabelevel wie vorher beim Bauen eines einzelnen Projektes genutzt wurde, und es ist wirklich notwendig, vernünftige Informationen über das, was passiert, zu erhalten (andernfalls erscheinen bloss “starte Build von foo” und “fertig mit foo”, mehr oder weniger).

ISHII Tatsuo checkte ein:

  • Backporte Patch für Versionen 8.0, 7.4 und 7.3. Dieser Patch ruft srandom() statt srand() auf. pgbench ruft random() später auf, so es sollte srandom() aufgerufen haben. Auf den meisten Plattformen mit Ausnahme von Windows ist srandom() identisch zu srand(), so das der Fehler nur Windows user betrifft. Nach einem Bugreport von Akio Ishida.

  • In contrib/pgbench, backporte Patch. Rufe srandom() statt srand() auf. pgbench ruft random() später auf, daher sollte es srandom() aufgerufen haben. Auf den meisten Plattformen mit Ausnahme von Windows ist srandom() identisch zu srand(), so das der Fehler nur Windows user betrifft. Nach einem Bugreport von Akio Ishida.

  • In contrib/pgbench, ändere Copyright Jahr.

Bruce Momjian checkte ein:

  • Entferne komplette und nicht länger benötigte Einträge von der TODO Liste, inklusive “Repariere Speicherleck bei Exceptions” (erledigt), “erlaube constraint_exclusion für UNIONs wie für Vererbung , erlaube es für UPDATE und DELETE Statements und erlaube die Nutzung für alle Statements mit einem kleinen Performance Nachteil” (erledigt), “Addiere estimated_count() um den erwarteten Wert von COUNT() zurückzugeben” (nicht länger gewünscht).

  • Update to_char(“CC”) Beschreibung.

  • Update Fehlertext Wortlaute in pgsql/src/backend/parser/analyze.c.

  • Update ORDER BY UNION Funktion/Ausdrücke Wortlaute (wieder).

  • Update UNION/INTERSECT/EXCEPT ORDER BY Fehler Wortlaute für Ausdrücke/Funktionen.

  • verbessere Fehler Wortlaute von ORDER BY in UNION welches neue Ausdrücke in ORDER BY erzeugt.

  • Zu TODO: “Addiere URL Eintrag für psql -c Änderungen”
    http://archives.postgresql.org/pgsql-hackers/2007-01/msg00291.php

  • Zu TODO: “Repariere Begrenzungen für Transaktionen für CREATE DATABASE und andere Befehle”
    http://archives.postgresql.org/pgsql-hackers/2007-01/msg00133.php

  • Zu TODO: “Addiere URL für PQexec() um mehrfache Queries zu verbieten”
    http://archives.postgresql.org/pgsql-hackers/2007-01/msg00184.php

  • Zu TODO: “Erweitere Zeitzonen Code um 64-Bit Werte zu erlauben so das wir Jahre über 2038 hinaus darstellen können.”
    http://archives.postgresql.org/pgsql-hackers/2006-09/msg01363.php

  • Zu TODO: “Verschiebe NAMEDATALEN von postgres_ext.h nach pg_config_manual.h und ziehe in Betracht, es in zukünftigen Versionen mehr konfigurierbar zu gestalten.”

  • L Bayuk’s Patch welches es BCC erlaubt libpq und psql zu compilieren.

  • Für pg_ctl -w, addiere Referenz zu zusätzlichen Umgebungsvariablen und pgpass.

  • Entferne SGML makefile.SECONDARY Tag so das die HTML Regeln vernünftig arbeiten können, Dokumentation/Kommentar Verbesserungen.

  • Verbessere SGML Build Regeln für Nicht-HTML Ausgaben, von Peter Eisentraut.

  • Update Copyright Script um Leerzeichen um Gedankenstriche zu erlauben.

  • In SGML Makefile, setze richtige Targets für rekursive Aufrufe.

  • Addiere “Verbessere Merge Join Performance durch Erlauben von Setzen/Wiederherstellen von Tuple Sources” zur TODO Liste.

  • Michael Fuhr’s Patch um die UTF-8 RFC Referenz zu updaten. RFC 2044 war obsolet bei RFC 2279, welcher wiederum obsolet bei RFC 3629 war.

  • Baue SGML Dokumentation mehrmals wenn notwendig, um richtige Indicies zu haben; Addiere ‘draft’ Option, um dies abzuschalten.

  • Habe log_temp_files be in Kilobytes, entferne Trace Aufruf.

  • Entferne trace Makro vom neuen log_temp_files, bis es besser erforscht wurde.

  • Heikki Linnakangas’s Patch welcher fünf andere Tuple Stats anschaltet durch Nutzung der High Bits des nattr Feldes, und benenne das Feld um.

  • Im TODO, markiere als erledigt: “Addiere Möglichkeit um die Nutzung von temporären Sort Dateien zu überwachen”

  • Bruce Moran’s Patch welcher eine GUC Variable log_temp_files für das Logging von temporären Dateien addiert.

  • In TODO, markiere als erledigt: “Erlaube das Erstellen von Indicies mit gemischtem ascending/descending.” Tom Lane’s ORDER BY … NULL FIRST/LAST Patch implementiert dies.


    Tom Lane checkte ein:

  • Repariere Handling des CC (Century) Formats in to_date/to_char. Entsprechend der Standard Konvention ist das 21. Jahrhundert von 2001-2100, nicht von 2000-2099. Siehe Bug #2885 von Akio Iwaasa. Patch für 8.2, aber nicht weiter, da dies eine größere Änderung ist; Benutzer der älteren Versionen sind möglicherweise mehr an Stabilität interessiert.

  • Füge einige Notizen zu pgsql/src/backend/access/nbtree/README hinzu über die grundlegenden mathematischen Gesetze welche das System für wahr hält in der btree Operator Familie. Dies ist hauptsächlich um mein eigenes Denken über das, was der Planer für Optimierungen annehmen darf, klarzustellen. (Staub von einem alten Abstact-Algebra Buch blasend…)

  • Repariere ein Performance Problem in Datenbanken mit einer großen Anzahl von Tabellen (oder anderen Typen von pg_class Einträgen): die Funktion pgstat_vacuum_tabstat, von VACUUM beim Start aufgerufen, hatte Laufzeitabhängigkeiten über die Einträge in der stats Tabelle und der Anzahl pg_class Zeilen; in anderen Worten O(N^2) wenn die Stats Kollektor Informationen einigermassen komplett waren. Ersetze Listensuche mit einer Hashtabelle und stelle O(N) Verhalten wieder her. Nach einem bericht von kim at myemma.com. Patch für 8.1; 8.0 und vorherige Versionen nutzen hier einen anderen Code.

  • Bringe nodeMergejoin bei, wie DESC und/oder NULLS FIRST Sortierungen zu handhaben sind. Soweit nur durch Hacks im Planer getestet.

  • Stelle sicher, das BYTE_ORDER in 64-Bit Builds unter Solaris definiert ist, von Stefan Kaltenbrunner.

  • Ändere die planner-to-executor API so das der Planer dem Executor die Vergleichsoperatoren mitteilt, die für einen Plan für Tuple Vergleiche genutzt werden (Agg, Group, Unique, SetOp). Vormals hat der Executer die Default Vergleichsoperatoren nachgeschaut, aber das war schlecht, da es möglich ist, dass die Daten, die in eine Node eingebracht werden, nach einer Nicht-Standard Operatorclass sortiert wird und diese Klasse eine inkompatible Meinung für Vergleichen hat. Der Planer kennt die Sortierreihenfolge und kann demzufolge die richtigen Vergleichsoperatoren liefern. Ebenso verschiebt diese Änderung mehrere Katalogsuchen from Executor in den Planer, was die Startzeit von prepared Queries ein bischen verbessern sollte. Ändere den Planer und entferne einige hochmütige Annahmen darüber, das wir immer in der Lage sind, die Default Operatoren zu nutzen. Addiere ebenfalls “nulls first/last” Informationen zur Plan Node für einen Merge Join – weder der Executor noch der Planer können dies bis jetzt nutzen, aber wenigstens ist die API schon bereit.

  • Kleinere Änderungen in der Dokumentation für ORDER BY; im Detail zeige den geläufigen Fehler auf, das ORDER BY x, y DESC nicht das gleiche ist wie ORDER BY x DESC, y DESC.

  • In pgsql/src/backend/access/hash/README, addiere ein Zitat über Seltzer und Yigit’s Usenix '91 Papier über Hash Table Management. Dieses Papier beschreibt deutlich viele der Ideen, die in unserem derzeitigen Hashing Code genutzt werden, but soweit ich herausfinden konnte, ist keine direkte Code Abhängigkeit gegeben. (Mike Olsen erinnert sich an Diskussionen über dieses Papier auf Postgres Treffen aber denkt, das (dieses Papier) “die Postgres Implementierung nur im Design informierte”.) Ehre wem Ehre gebührt, auch wenn dies fünfzehn Jahre später geschieht.

  • Magnus Hagander’s Patch für pgsql/src/tools/msvc welcher vcbuild repariert und das Bauen ohne OpenSSL und/oder zlib erlaubt.

  • In pgsql/src/tools/msvc, addiere README mit vcbuild Dokumentation von Magnus Hagander und Dave Page.

  • pltcl Regression Tests muss eine opclass erstellen, nicht nur einen Operator.

  • Unterstütze ORDER BY … NULLS FIRST/LAST, und addiere ASC/DESC/NULLS FIRST/NULLS LAST per-Spalte Optionen für btree-Indicies. Der Planer unterstützt das bisher nur sehr rudimentär, er weiss bisher nicht, wie er Merge Joins mit nicht-Standard Sortieroptionen planen soll. die Dokumentation ist ebenfalls sehr rudimentär. Ich verbessere dieses Zeug später. Merke inkompatible Änderung im Verhalten an: ORDER BY … USING wird jetzt abgelehnt, wenn der Operator nicht Mitglied einer kleiner-gleich oder größer-gleich Gruppe eines btree Operators ist. Dies verhindert ungesundes Verhalten, wenn ein Operator, der kein ordentliches Sortverhalten unterstützt, ausgewählt wird.

  • Bearbeite Joinlist erstellung um keine unnützen Ein-Element Subqueries zu erstellen, wenn ein JOIN Tree durch join_collapse_limit zusammenbricht. Als Beispiel eine Liste mit 11 LEFT JOINs mit limit 8 produziert jetzt etwas wie ((1 2 3 4 5 6 7

9 10 11 12) statt (((1 2 3 4 5 6 7

(9)) 10 11 12). Die letztere Struktur ist nur für einen FULL JOIN notwendig. Bemerkt bei dem Studium eines Beispiels von Shane Ambler.

  • Entferne sehr alten cost_hashjoin Hack um Hash Joins mit erwarteter größerer Innen Relation zu entmutigen (war mal verboten). Es gibt mehrere Fälle, in denen dies Sinn macht, und in anderen Fällen sollte die Kostenvorhersage dies handhaben können. Mache einige kleinere Änderungen in der Vorhersage um diese ein Stück realer zu bekommen. Nach einem Beispiel von Shane Ambler. Berichtige ebenfalls einen übersehenen Fehler im originalen Patch um seq_page_cost zu addieren: die Kosten, um einen Hash Join auf der Platte zu verteilen sollten von seq_page_cost eingeteilt werden.

D’Arcy Cain checkte ein:

  • erweitere den Money Typ auf 64 Bits.

Peter Eisentraut checkte ein:

  • Berichtige Reverse Compilation von IS DOCUMENT Ausdrücken.

  • Addiere Unterstützung für xmlval IS DOCUMENT Ausdrücken.

  • In pgsql/src/backend/parser/parse_expr.c, Beseitige Compiler Warnung.

  • Benutze XML Ausgabe Escaping ebenfalls in XMLFOREST.

  • Erlaube willkürliche Datentypen als Inhalt von XMLELEMENT. Der originale Zwang zum Typ xml war ein Fehler. Escape Werte so das sie zulässige XML Character Daten darstellen.

  • Benutze libxml’s xmlwriter API um XML Elemente zu erzeugen, statt unseren eigenen Tanz aufzuführen. Dies erledigt einen besseren Job beim Quoten und Escapen von Werten.

  • Verhindere doppelte Attributnamen in XMLELEMENT.

  • Etwas Feintuning in xmlpi Ecken: korrigiere Fehlercodes, erledige Syntax Checks in der richtigen Reihenfolge und entferne führende Leerzeichen von Argumenten.

  • Prüfe und dokumentiere minimal benötigte Version von libxml.

== Abgelehnte Patches (bis jetzt) ==

Niemand wurde diese Woche enttäuscht

== Eingesandte Patches ==

Magnus Hagander sandte einen Patch ein, der Builds mit vcbuild repariert und so Builds ohne OpenSSL erlaubt und libz sollte tun, was verlangt wird. Das deaktiviert die sslinfo und pgcrypto Module, denn diese benötigen die Bibliothek, um überhaupt zu bauen.

Michael Fuhr sandte einen Patch ein, um die UTF-8 RFC Referenz zu updaten. RFC 2044 war obsolet bei RFC 2279, welcher wiederum obsolet bei RFC 3629 war.

Simon Riggs sandte zwei versionen seines Patches, die es erlauben, WAL Files in COPY Transaktionen überhaupt nicht zu schreiben.

Gurjeet Singh sandte eine andere Revision seines “Index Advisor” Patches ein.

Magnus Hagander sandte einen Patch, welcher gendef in Visual Studio korrigiert.

Magnus Hagander sandte einen Patch ein, der umfangreiche Ausgaben beim Bauen aller Projekte anschaltet. Dies ist der selbe Ausgabelevel wie vorher beim Bauen eines einzelnen Projektes genutzt wurde, und es ist wirklich notwendig, vernünftige Informationen über das, was passiert, zu erhalten (andernfalls erscheinen bloss “starte Build von foo” und “fertig mit foo”, mehr oder weniger).

Neil Conway sandte einen Dokumentation Patch ein, der PostgreSQLs Handling von NaN Werten erläutert.

Dave Page sandte einen Patch ein, der pg_dumpall Role und Tablespaces dumpen lässt.

Pavel Stehule sandte einen Patch ein der Unterstützung für scrollbare Cursor für SPI addiert.


Zum Artikel im Blog…

Datum: Wed, 17 Jan 2007 01:06:38 +0100