Skip to content

Wöchentlicher PostgreSQL Newsletter - 28. Januar 2007


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

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

Eine andere lebhafte Diskussion geht auf -hackers vor sich über Verbesserungen bei autovacuum.

Andy Astor, CEO von EnterpriseDB hat lautstark abgelehnt, dass es eine Richtlinie für das Sammeln von Emailadressen von PostgreSQL Listen und zum Versenden von Werbematerial gab.

== PostgreSQL Produkt Neuigkeiten ==

Libpqxx 2.6.9 pre-release ist draussen.
http://thaiopensource.org/~jtv/tmp/pqxx/

SQL/PSM 0.1 erschienen.
http://postgresql.interweb.cz/index.php/SQL/PSM

DBI-Link 2.0.0 erschienen.
http://pgfoundry.org/projects/dbi-link/

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

PostgresDAC 2.3.7 erschienen.
http://microolap.com/products/connectivity/postgresdac/download/

Mammoth Replicator 8.0.10-1.7 erschienen.
https://www.commandprompt.com/products/mammothreplicator/

== PostgreSQL Jobs im Januar ==

http://archives.postgresql.org/pgsql-jobs/2007-01/threads.php

== PostgreSQL Lokal ==

Hauptbeitragender Gavin Sherry und Postgres-R Leiter Markus werden auf dem SFPUG Meeting in San Francisco im Hyperic LCCs sprechen.
http://postgresql.meetup.com/1/calendar/5380885/

PostgreSQLFr wird einen Stand auf der SolutionsLinux 2007 in Paris
(Frankreich) vom 30. Januar zum 1. Februar haben. Jean-Paul Argudo,
Schatzmeister der PostgreSQLFr Non-Profit Vereinigung, wird eine
Session über FLOSS Datenbanken halten. Weitere Informationen auf Französisch hier:
http://www.solutionslinux.fr/index.php

Es wird einen 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/

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

== 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 und Devrim GUNDUZ.

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 ==

Andrew Dunstan checkte ein:

- Fix plpython MSVC Build im Non-Debug Modus.

- Repariere Path Probleme im MSVC bison Wrapper. Laut Joachim Wieland.

- In PL/Perl, entferne unnötige und jetzt inakkurate Casts, welche schon mit älterem Code entfernt
werden sollten.

- In PL/Perl, erlaube, das Argumente für spi_prepare sowohl Standardtypen wie auch Typen,
die in pg_type bekannt sind, sein dürfen. Beseitigt Bug #2917. Addiere einige Regression Tests
für diesen Fall.

Michael Meskes checkte ein:

- In ecpg, repariere erwartete Dateien, so das diese wieder im Einklang mit den Tests sind.

- In ecpg, entferne Compiler Warnung aufgrund unnötiger unsigned Deklaration and entferne
einen Regression Test, welcher diesen libc Präzision Bug auf einigen Plattformen auslöst.

Neil Conway checkte ein:

- Benenne den uuid_t Typ nach pg_uuid_t um, um Konflikte mit jedwegen Definitionen on uuid_t zu vermeiden, die von Systemheadern bereitgestellt werden könnten. Dies sollte hoffentlich die Win32 Buildprobleme beseitigen, die Magnus berichtet hat.

- Gevik Babakhani's Patch, der einen neuen Builtin Typ "uuid" addiert. Dies implementiert den UUID Typ, similar zu dem, welcher in RFC 4122 definiert ist. Dieser Patch beinhaltet die Basisimplementierung und Regression Tests. Dokumentation und vielleicht etwas mehr Funktionalität wird später kommen. Catversion erhöht. Review von Peter Eisentraut, Tom Lane und Neil Conway.

- Magnus Haganders Patch, der einige VC++ Compiler Warnungen zermahlt. Markiere float Literale
mit dem "f" Suffix, um sie von Doubles zu unterscheiden. Sorge dafür, das einige Funktionsdeklarationen
und Definitionen den "const" Qualifier mehr konsistent nutzen. Ignoriere Warnung 4102 ("Unreferenziertes
Label"), denn diese Warnungen werden immer von bison-generiertem Code ausgegeben.

- Magnus Haganders Patch, der einen setlocal Befehl an den Anfang von build.bat setzt. Dies ist
notwendig, um mit buildenv.bat sauber umgehen zu können, so das PATH (als Beispiel) nicht unendlich
expandiert. Laut einem Report von Joachim Wieland.

Peter Eisentraut checkte ein:

- In pgsql/src/backend/utils/adt/xml.c, reaktiviere libxml Speichermanagement via palloc,
jetzt da ich denke, das ich die Bedingungen, unter denen dies sicher ist, klassifiziert habe
(Siehe Source Code Kommentare).

- In pgsql/src/backend/utils/adt/xml.c, addiere angehängtes Nullbyte in Unicode codepoint Umwandlung.

- Verschiedene Reparaturen in der Logik der XML Funktionen: Addiere neuen SQL Befehl SET XML OPTION
(auch über die reguläre GUC erreichbar), um die DOKUMENT vs. CONTENT Option bei impliziten Parse- und
Serialisieroperationen zu kontrollieren. Subtile Korrekturen beim Handhaben von selbstständigen
Properties in xmlroot(). Erlaube xmlroot() in Inhaltsfragmenten zu arbeiten. Subtile Korrekturen
beim Handhaben der Versions Properties in xmlconcat(). Code Refaktoring zum Produzieren von XML
Deklarationen.

- Vereinfache die Handhabung von XML Fehlermeldungen: nutze einfach den
String, den libxml liefert, als detaillierte Nachricht. Laut
<http://archives.postgresql.org/pgsql-hackers/2006-12/msg01087.php>.
Zum Umwandeln von Fehlercodes in Nachrichten müssen wir jetzt nur noch die
Codes bearbeiten, die wir selbst setzen.

Alvaro Herrera checkte ein:

- Magnus Haganders Patch welcher für vcbuild nach den Änderungen an pg_proc.h
notwendig ist (sind die gleichen Änderungen wie für gen_fmgrtab.sh im Unix Build).

Tom Lane checkte ein:

- Verbessere Hash Joins um Input Tuples unmittelbar zu streichen, wenn sie nicht matchen können, weil sie einen Null Join Key enthalten (und der Join Operator ist als strict bekannt). Verbessert die Performance signifikant, wenn der innere Join jede Menge Nulls enthält, laut Bug #2930.

- Entferne unnötigen Checkpoint von PL Regression Tests. Dies war einstmals praktisch um zu verhindern, dass Core Dumps verschwinden, aber ist jetzt unnötig denn (a) wir entfernen cores in individuellen DB Unterverzeichnissen nicht mehr und (b) CREATE DATABASE forciert sowieso einen internen Checkpoint.

- Entferne einige unnötige Konversationen in build_regtype_array().

- Repariere Versehen beim Erstellen von "append relations". Wir sollten rel->tuples aufsetzen, sowieso rel->rows, denn einige Erwartungsfunktionen erwarten beide gesetzt um valid in jeder baserel zu sein. Nach einem Bericht von Dave Dutcher.

- Einige kleine Verbesserungen in der Genauigkeit von plpgsql Fehlerstellen Berichte; inspiriert von den irreführenden CONTEXT Zeilen im kürzlichen Bugreport von Stefan Kaltenbrunner. Erlaube ebenfalls Übersetzungen von Statement-Type Namen in diesen Nachrichten.

- Repariere plpgsql's "simple expression" Auswertungsmechanismus so dass er sicher agiert, wenn Subtraktionen vorhanden sind. Um sicherzustellen, dass alle ExprContext Shutdown Callbacks zur richtigen Zeit aufgerufen werden, brauchen wir einen extra EState für jeden Transaktionslevel. Nach dem "TupleDesc reference leak" Fehlerbericht von Stefan Kaltenbrunner. Obgleich ich überzeugt bin, dass der Code bis zurück zu 8.0 falsch ist, sieht es nicht so aus, dass es einen Weg gibt, das Problem vor 8.2 zu manifestieren, 8.0 und 8.1 nutzen den ExprContextCallback Mechanismus nur zum Abarbeiten von Set-returning Funktionen, was nicht irgendwie brauchbar in einer "simple expression" ausgeführt werden kann. So kein Backpatch für bevor 8.2 --- das Risiko unvorhersehbarer Bruchstellen gegenüber den Chancen, etwas zu reparieren, überwiegt.

- Deat, kann kein zusätzliches Argument in log_error einfügen. Ist ein zusätzlicher sprintf Pushup es wert, sicherzustellen, das wir etwas sinnvolles für Out-of-Range Existatus reporten können?

- Räume mit kaputter Nutzung von HAVE_DECL_SYS_SIGLIST und inkonsistent/schlecht formatierten Fehlermeldungen auf.

- Addiere eine Verzögerung beim Start des stats Tests, so dass jedwege vorherige stats Aktivität stillgelegt ist. Möglicherweise wird dies den großen Anstieg nicht reproduzierbarer stats Test Fehler korrigieren, welche wir seit dem defaultmässigen Anschalten von stats_row_level bemerkt haben.

- Abteilung des zweiten Gedankens: der IQ von estimate_array_length() muss aktuell mit dem von scalararraysel() gehalten werden, andernfalls zählen Erwartungen, die zählen sollten, ev. nicht. Infolgedessen bringe der Funktion Binär-kompatible Fälle bei.

- Repariere scalararraysel() um mit Binär-kompatiblen Fällen umzugehen, z.B. text[] versus varchar[]. Dieses Übersehen erklärt womöglich Ryan Holmes kürzliche Beschwerde --- er bekam eine generische Selektivitätserwartung anstatt irgendetwas intelligentem.

- Korrigiere einen alten Logikfehler im Btree Page Splitting: wenn ein Split an exakt der Stelle erachtet wird an der ein neues Item eingefügt werden soll, nutzte die Kalkulation eine falsche Größe für den "high key" der neuen Page. Dies konnte zu einem unbrauchbaren Split führen, resultierend in einem "Panic: kann keinen Eintrag zum linken Geschwisterteil addieren" (oder "rechtes Geschwisterteil") Fehler. Obwohl dieser Fehler schon eine sehr lange Zeit dort ist, ist es sehr schwer, einen Fehler vor 8.2 zu erzeugen, da dort generell sehr viel freier Platz auf beiden Seiten des gewählten Splits war. In 8.2, wo der vom User festgelegte Füllfaktor bestimmt, wieviel Platz der Code versucht freizulassen, ist ein unbrauchbarer Split sehr viel eher möglich. Bericht von Joe Conway, Diagnose und Fix von Heikki Linnakangas.

- Backporte Änderungen vom 16. und 17. Januar um wartende fsync Anforderungen während DROp TABLE und DROP DATABASE zu "entfernen". Sollte unerwartete "Zugriff verweigert" Fehler unter Windows verhindern und ist ebenfalls sauberer auf anderen Plattformen, da wir nicht länger darauf vertrauen müssen, dass ENOENT während eines fsync Versuches in Ordnung ist. Patches bis zurück für 8.1; laut kürzlicher Diskussion denke ich wir machen uns keine Sorgen mehr über Windows-spezifische Fragen mit 8.0.

- Unter Windows, nutze pgwin32_waitforsinglesocket() statt select() um auf Input beim Stats Collector zu warten. Unsere select() Emulation ist offensichtlich fehlerhaft für UDP Sockets :-(. Dies sollte Probleme mit Stats Collection lösen (und infolgedessen autovacuum) die unter mehr als minimalem Load versagen.

- Bekomme pg_utf_mblen(), pg_utf2wchar_with_len(), und utf2ucs() alle auf die gleiche Seite über die maximale UTF8 Sequenzlänge die wir unterstützen (4 Bytes seit 8.1.3, 3 vorher). pg_utf2wchar_with_len wurde niemals für 4-Byte Unterstützung aktualisiert und hatte auf jeden Fall ein Risiko für einen Buffer-Overrun denn es konnte mehrere pg_wchars produzieren von dem, was mblen für ein UTF8 Zeichen hält. Der einzige Grund, warum wie kein großes Sicherheitsloch haben ist, dass die meisten Aufrufer einen Worst-Case Ausgabebuffer reservieren; die einzige Ausnahme in erschienenen Versionen sieht wie pre-8.2 iwchareq() (m.a.W. LIKE) aus, welches gecrasht werden kann durch Ausnullen der Returnadresse --- but AFAIC kann dies nicht weiter ausgenutzt werden als für einen Crash, durch die Unfähigkeit, kontrollieren zu können, was hier geschrieben wird. Nach einem Bericht von James Russel und Michael Fuhr. Pre-8.1 Risiko ist viel geringer, aber ich denke, das Verhalten von pg_utf2wchar_with_len mit einem nicht kompletten letzten Zeichen riskiert einen Buffer Overrun, also gibt es ebenfalls einen Backpatch dieser Logik. Dieser Patch stellt auch sicher, das UTF8 Sequenzen, die die unterstützte Länger überschreiten (welche auch immer das ist) immer als Fehlerfall betrachtet werden, anstatt sie als gültige kürzere Sequenz an einigen Plätzen zu behandeln.

- Entspanne ein Assert(), dass als zu strikt empfunden wurde in einigen Situationen, wenn unions mit Typen, die typmods enthalten, beteiligt waren. Varianten dieses Fehlverhaltens waren in 8.1 und später bekannt; bin nicht sicher, ob sie in 8.0 und 7.4 möglich sind, aber da der Code soweit zurück existiert, patche ich einfach alle. Nach einem Bericht von Brian Hurt.

- Aktualisiere xindex.sgml um Operator Familien zu diskutieren.

- Aktualisiere pg_dump um Unterstützung für das Dumpen von Operator Familien.

- Addiere CREATE/ALTER/DROP OPERATOR FAMILY Befehle, auch COMMENT ON OPERATOR FAMILY; und addiere
FAMILY Option zu CREATE OPERATOR CLASS um das Addieren einer Klasse zu einer bereits existierenden
Klasse zu erlauben. Laut vorangegangener Diskussion. Mann, was für ein ermüdendes Copy&Paste.

- Füge die Planer Möglichkeit, die Ergebnisse von mergejoinscansel() zu cachen, wieder ein, welche ich beim ersten Umschreiben von EquivalenceClass entfernt hatte um den Patch etwas zu vereinfachen. Aber es ist weiterhin wichtig --- in einem 4-Wege Joinproblem hat mergejoinscansel() 40% der Planerzeit gebraucht laut gprof. Verbessere ebenfalls den EquivalenceClass Code um Join RestrictInfos wieder zu benutzen statt für jeden in Betracht gezogenen Join neue zu erzeugen. Dies sichert etwas Speicher aber viel wichtiger verbessert die Effektivität für Caching Planer Infos in Restrictinfos.

Bruce Momjian checkte ein:

- Nutze autoconfs Built-in sys_siglist Makro AC_DECL_SYS_SIGLIST statt unser eigenes zu erzeugen.

- Addiere signal.h für sys_siglist Referenz.

- Nutze sys_siglist[] um die Signalnamen für Signal Exits auszugeben, statt nur die Nummern.

- Modifiziere SGML makefile um 'gmake draft' zu erlauben, ein Draft HTML zu bauen, so das 'draft'
jetzt ein Target ist und nicht länger ein Modifier.

- Addiere zu TODO: "Erzwinge typmod für Funktionseingaben, Funktionsergebnisse und Parameter für
spi_prepare'd Statements, die von PLs aufgerufen werden."

- Addiere zu TODO: "Ziehe in Erwägung, dass der Backgrund Writer die Transaktionsstatusbits updated,
bevor die Pages geschrieben werden."

- Addiere zu TODO: "Ziehe in Erwägung, NUM_CLOG_BUFFERS zu vergrößern."

- Aktualisiere Installationsbeschreibung für ein Update um darzulegen, dass dump/restore nicht
benötigt wird. Von Peter.

- Kontrolliere openjade Draft-Modus durch die Variable DRAFT, statt dass das Version Tag 'devel' ist.

- Aktualisiere Wortlaut für die Installation, wenn geupgraded wird, um zwischen Major Release Upgrades
und Minor Updates zu unterscheiden.

- Modifiziere Draft SGML Instruktionen um DRAFT=Y zu nutzen, denn Rekursion hat verursacht, das HTML doppelt aufgerufen wurde --- kein Weg, das Makefile zu verlassen, wenn die Rekursion zurückkehrt.

- Aktualisiere BSD/OS Plattform für 8.2.

- In TODO, addiere URL um Tuples bis auf den Header zu schrumpfen.

- Aktualisiere Win32 Exception Kommentar.

- Aktualisiere pg_dumpall -f Optionsbeschreibung.

- In TODO, markiere als erledigt: "Addiere eine GUC Variable um den Tablespace für temporäre Objekte pg_dumpall zu kontrollieren", nach Albert Cervera Arenys Patch.

- Albert Cervera Arenys Patch mit Dokumentation von Jaime Casanova um GUC temp_tablespace zu addieren um eine Default Location für temporäre Opjekte bereitzustellen.

- Geigneter detoast Zugriff auf Bytea Feld pg_trigger.tgargs. Der alte Code könnte einen Servercrash verursachen. Backpatch für 8.2.X.

- Dave Pages Patch, der eine "Ausgabedatei" Option für pg_dumpall addiert, speziell nützlich für Win32, wo die Ausgabeumleitung für Childprozesse (pg_dump) nicht funktioniert.

- Entferne Entwicklerliste von TODO, jetzt, da wir URLs haben um auf Diskussionen zu referenzieren.

- In TODO, markiere als erledigt, "Addiere -f zu pg_dumpall" per Patch von Dave Page.

- Dave Pages Patch welcher es pg_dumpall erlaubt einen Datenbanknamen anzugeben statt dem Default 'template1'.

- Dave Pages Patch welcher --tablespaces-only und --roles-only Optionen zu pg_dumpall addiert.

- Simon Riggs Patch um WAL Logging zu verhindern, wenn COPY in der gleichen Transaktion fertig ist, die es erzeugt hat.

- Magnus Haganders Patch der das Bauen von ecpg abschaltet, wenn MSVC genutzt wird und pthreads nicht spezifiziert sind.

- In pgsql/src/include/port/win32.h, addiere Kommentar über die Exception Liste in beiden winnt.h und ntstatus.h.

- Entferne Newline von Fehlermeldung denn URL ist weg.

- Ziehe die Nutzung von FormatMessage() zurück, das tut Fehlerwerte, keine Exception Werte. Zeige auf /include/ntstatus.h für eine Exception Liste, statt auf eine URL.

- Gib sinnvolle Fehlertexte für abnormale Prozessexits unter Win32 statt Hexcodes aus, nutze FormatMessage().

- In FAQ, aktualisiere Bruce Momjians Email Adresse.

- Nutze errhint() für WIN32 SIGTERM Messages, wenn möglich.

- In pgsql/src/include/port/win32.h, Setze Hexvalues in Großschreibung.

- Wenn system() unter Win32 versagt, berichte dies als eine Exception, schreibe den Exception Wert in Hex und gib eine URL aus, wo der Wert nachgeschaut werden kann.

== Abgelehnte Patches (bis jetzt) ==

Guido Goldsteins Patch um PL/PythonU Funktionen zu korrigieren; liefert true/false für Booleans zurück statt 1/0. Dies hilft, wenn Trigger Funktionen erstellt werden, die SQL ausgeben. Dies brach auch die meisten Maschinen auf der Buildfarm, da es nur mit Python 2.3 oder höher funktioniert.

Magnus haganders erste Version seines Patches um Warnungen, generiert von VC++ aufzuräumen. Er war zu groß und invasiv und hatte einige Fehler. Er arbeitet an der nächsten Version.

== Eingesandte Patches ==

Arul Shaji sandte eine andere Version seiner Implementation von pg_get_domaindef ein.

Gevik Babakhani sandte eine andere Version seines uuid Patches ein. Peter Eisentraut gab Feedback. Gevik sandte eine andere Version aufgrund der Kommentare ein und addierte Tests.

Jeremy Drake sandte ein paar Versionen seines Patches welches unprivilegierten Usern CREATE LANGUAGE für trustes Languages erlaubt die schon in pg_pltemplate vorhanden sind.

Teodor Sigaev sandte einen Dokumentation Patch ein der das docbook mit Instruktionen für FreeBSD aktualisiert, und einen weiteren, der eine Tabelle mit paarweisen Kompatibilitäten zwischen den verschiedenen Lockmides addiert.

Andrew Dunstan sandte einen Patch ein, der es Leuten erlaubt, die Aliase in pg_type für Parameter in PL/Tcl und PL/PythonU zu nutzen, z.B. integer statt int4.

Pavan Deolasee sandte einen Patch ein welcher den Code zum Verfolgen der ctid Kettenpfade etwas verbessert, wenn dieser und der nächste Tuple im Pfad im gleichen Block sind.

Alvaro Herrera sandte einen Patch ein, der autovacuum in zwei Prozessfamilien separiert, einer ist der "Launcher", zuständig für Statistikauswertungen und Entscheidungen, wann der Worker gestartet werden soll. Der andere ist der Worker, welcher vom Postmaster unter dem Kommando des Launchers gestartet wird, und ausführt, was der Launcher ihm sagt (durch Setzen von Informationen im Shared Memory).

Pavel Stehule sandte einen Patch ein um Support für ANSI SQL scrollbare Cursor in SPI und PL/PgSQL zu addieren.

Jeremy Drake sandte eine andere Version seines Patches welcher es erlaubt PLs zu installieren ohne Superuser zu sein.
  • Twitter
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 28. Januar 2007 at del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • Digg Wöchentlicher PostgreSQL Newsletter - 28. Januar 2007
  • Bloglines Wöchentlicher PostgreSQL Newsletter - 28. Januar 2007
  • Technorati Wöchentlicher PostgreSQL Newsletter - 28. Januar 2007
  • Fark this: Wöchentlicher PostgreSQL Newsletter - 28. Januar 2007
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 28. Januar 2007 at YahooMyWeb
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 28. Januar 2007 at Furl.net
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 28. Januar 2007 at reddit.com
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 28. Januar 2007 at blinklist.com
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 28. Januar 2007 at Spurl.net
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 28. Januar 2007 at Simpy.com
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 28. Januar 2007 at blogmarks
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 28. Januar 2007 with wists
  • wong it!
  • Bookmark using any bookmark manager!
  • Stumble It!
  • Identi.ca

Wöchentlicher PostgreSQL Newsletter - 21. Januar 2007


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

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

Nach einem Mißverständnis über ihre Praxis des Sammelns von Emailadressen aus den PostgreSQL Mailinglisten und dem Versenden von Werbeemails war EnterpriseDB freundlich genug und hat seine Politik geändert.

== PostgreSQL Produkt Neuigkeiten ==

Apgdiff 1.0.0beta15 erschienen.
http://pgfoundry.org/projects/apgdiff/

Pgtclng 1.6.0 erschienen.
http://pgfoundry.org/projects/pgtclng/

postgresql-dbi-link 2.0beta1 ist jetzt in Fedora Core Extras 7, wird bald in Fedora Core Extras 6 erscheinen.
http://people.planetpostgresql.org/devrim/index.php?/archives/78-Pushed-dbi-link-into-Fedora-Extras.html

PostGIS ist jetzt in Fedora Core Extras.
http://people.planetpostgresql.org/devrim/index.php?/archives/79-PostGIS-is-in-Fedora-Core-Extras.html

phpPgAdmin 4.1 erschienen. RPMs für Fedora Core 5, 6 und 7 sind verfügbar.
http://phppgadmin.sourceforge.net/?page=download

EnterpriseDB bietet jetzt Support Packages für die Main Branches von PostgreSQL an.
http://www.enterprisedb.com/products/postgre_pricing.do

pgAdmin3 1.6.2 erschienen.
http://www.pgadmin.org/download/

== PostgreSQL Jobs im Januar ==

http://archives.postgresql.org/pgsql-jobs/2007-01/threads.php

== PostgreSQL Lokal ==

Danke schön an Gavin Sherry für das veranstalten der PostgreSQL Miniconf in Linuxconf.au.
http://www.gavinsherry.org/blog/index.php?/archives/1-PostgreSQL-miniconf-success.html

PostgreSQLFr wird einen Stand auf der SolutionsLinux 2007 in Paris (Frankreich) vom 30. Januar zum 1. Februar haben. Jean-Paul Argudo, Schatzmeister der PostgreSQLFr Non-Profit Vereinigung, wird eine Session über FLOSS Datenbanken halten. Weitere Informationen auf Französisch hier:
http://www.solutionslinux.fr/index.php

Österreich hat eine neue PostgreSQL Community Webseite.
http://community.postgresql.at/

Es wird einen 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/

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

== 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

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 ==

Peter Eisentraut checkte ein:

- Entferne einige ungenutzte Variablen von den ecpg Regression Tests.

- In pgsql/src/interfaces/ecpg/test/Makefile.regress, füge libpg Link wieder ein, aber stelle sicher, dass das libpg In-Tree Verzeichnis vor den Systemverzeichnissen erwähnt wird.

- Aktualisiere erwartete Build Zeit.

- Entferne Vorkommen eines alten Depend Targets.

- Das libpg Library Verzeichnis war hier am falschen Platz erwähnt, was dazu führen konnte, dass die vorher installierte libpg genutzt wurde. Wir müssen hier aber libpg gar nicht linken, so entferne dies.

- Baue nur ecpg Testcode, wenn der Test ausgeführt werden soll, innerhalb weiteren Testcodes.

- Repariere xmlconcat Regression Tests.

- Repariere xmlconcat, indem die XML Deklarationen richtig zusammengefügt werden. Addiere Aggregatfunktion xmlagg.

- Addiere Unterstützung für das Umwandeln von binären Werten (bytea) in XML Werte, mit dem neuen GUC Parameter "xmlbinary" wird das Ausgabe Encoding kontrolliert, wie im SQL/XML Standard vorgesehen.

- Nutze optional xml2-config um den Installationspfad für libxml zu finden.

- Räume Encoding in den XML Typen auf: Im Text Modus werden Deklarationen ignoriert und entfernt, im Binary Modus werden sie, wie im XML Standard spezifiert, behandelt.

Bruce Momjian checkte ein:

- Aktualisiere Dokumentation, wie template1 gelöscht werden kann.

- Addiere URL für bitmap Index zu TODO.

- Addiere URL für "dead space map" zu TODO.

- Addiere Dokumentation über Memory und Zeiteinheiten zu postgresql.conf. Backpatch für 8.2 für neue initdbs.

- Aktualisiere Dokumentation über postgresqlconf um die Default Einheiten, die zur postgresql.conf Datei passen, zu erwähnen. Addiere auch Einheiten zu Beschreibungen, bei denen diese fehlt. Wortverbesserungen. Erwähne pg_settings.unit als Weg, wie Standardeinstellungen gefunden werden können. Backpatch für 8.2.x.

- Verändere max_fsm_pages in postgresql.conf.sample um ein typisches Beispiel zu zeigen, anstatt den Wert zu hoch anzusetzen.

- Dokumentiere, das zum Entfernen von template1 datistemplate auf 'false' gesetzt sein muss. Backpatch für 8.2.

- Verschiebe Code, der LOG Fehlerlevel zwischen ERROR und PANIC setzt, in die neue Funktion is_log_level_output(), für aufgeräumten Code.

- Addiere Entwicklerwiki URL zu TODO.

- Zu TODO addiert: "Erlaube mehrfache Vacuum so das große Tabellen nicht kleine Tabellen ausbremsen" und "Verbessere Kontrolle von Auto-Vacvuum".

- Addiere zu TOTO die URL für GUIDs/UUIDs (Globally/Universally Unique Identifiers)

- Markiere TODO Eintrag "Autovacuum standardmäßig aktiviert" als erledigt.

Tom Lane checkte ein:

- Passe pgbench an, so das es nicht über Nicht-Select-Queries spuckt, die Tuples zurückliefern, was grundsätzlich mit eigenen Scripts möglich ist (RETURNING, EXPLAIN, ect.).

- Addiere COST und ROWS Optionen zu CREATE/ALTER FUNCTION, plus zugrundeliegende pg_proc Columns procost und prorows, um einfache Useranpassungen der erwarteten Kosten eines Funktionsaufrufes zu erlauben und zusätzlich die Kontrolle über die erwartete Anzahl Zeilen einer Set-Returning Funktion. Wir werden dies ev. erweitern, um Funktions-spezifische Bewertungsroutinen zu erlauben, aber der Konsens sieht so aus, das wir erst einmal einfache Konstantenbewertung versuchen. Im Detail liefert dies einen relativ einfachen Weg um die Anordnung von verschiedenen WHERE Klauseln, die zu einer Plan Node hinzugefügt werden, zu kontrollieren, was eine gute Sache ist im Hinblick auf die Tatsache, das die letzten EquivalenceClass Planer Änderungen dies nicht so einfach vorhersagen lassen wie vorher.

- Schreibe einige lsyscache Routinen um, um doppelten Code zu entfernen und einige syscache Aufrufe in make_pathkey_from_sortinfo() einzusparen.

- Vereinfache pg_am representation von ordering-capable Zugriffsmethoden: liefere nur einen Boolean 'amcanorder', anstatt Felder die die Strategienummern des Sortoperators spezifizieren. Wir haben entschieden, ordering-capable AMs zu verlangen, um btree-kompatible Strategienummern zu nutzen, also waren die alten Felder Overkill (und irreführend über das, was erlaubt war).

- In pgsql/src/backend/utils/error/elog.c, nutze nicht 'int' wenn 'bool' gemeint ist.

- Repariere kaputtes Markup in pgsql/doc/src/sgml/installation.sgml.

- Schreibe die Planer pathkey Datenstruktur um, um eine separate, explizite Darstellung von equivalenten Klassen von Variablen zu erstellen.

- Addiere einen Hinweis, dass is_pseudo_constant_clause() nicht auf Constraints prüft. Das ist für derzeitige Anwendung OK aber könnte eines Tages Probleme verursachen.

- Erweitere den gestrigen Patch so das der bgwriter auch darüber informiert wird, wartende fsyncs während eines DROP DATABASE zu vergessen. Offensichtlich notwendig im Nachhinein :-(

- Überprüfe bgwriters fsync-Anfragen Mechanismus um die Robustheit zu verbessern, wenn eine Tabelle gelöscht wird. Ein Backend, das eine Datei löschen möchte, schickt nun eine "entferne fsync" Anfrage an den bgwriter um anhängende Requests zu entfernen. Es gibt immer noch eine Race Condition, wenn der bgwriter einen fsync versucht, wenn der unlink stattgefunden hat, aber wir können dies lösen, indem wir die Request Queue erneut überprüfen, um zu sehen, ob ein Revoke Request eingetroffen ist. Dies beseitigt die vorherige Problemlösung mit der Annahme, dass ein ENOENT Fehler okay ist und lässt uns die Tatsache handhaben, dass es unter Windows auch EACCES ohne fragwürdige Annahmen sein könnte. Nach einer Idee von mir mit Verbesserungen von Magnus. Der HEAD Patch ist nicht sauber für 8.2 anwendbar, aber ich schaue später nach einem Backport. In der Zwischenzeit kann dies mit etwas Testing unter Windows laufen; ich war in der Lage, es durch den Code Pfad mit ENOENT zu schicken, aber dies beweist nicht, das dies auch das Windows Problem beseitigt.

- Repariere fehlerhaften Zugriffscheck im information_schema.key_column_usage View: hat einen pg_constraint OID überprüft statt einen pg_class OID, was zu einem "relation with OID nnnnn does not exist" Fehler für jeden, der nicht Eigentümer der Tabelle war, führte. Laut Bug #2848 von Laurence Rowe. Hinweis: für existierende 8.2 Installtionen beseitigt ein simpler Versionsupdate nicht das Problem, der einfachste Fix ist, den View mit der korrekten Definition mit CREATE OR REPLACE zu ändern.

Alvaro Herrera checkte ein:

- Repariere pg_regress Bruchstelle für PL und contrib Tests, indem nicht verlangt wird, das "input" und "output" Verzeichnisse vorhanden sind.

- Magnus Haganders's Patch, mit einigen Änderungen, welcher die sed Rules in den Regression Tests für pg_regress ändert, um die generierten Dateien zu erstellen und es ermöglicht, diese Tests in Visual C++ laufen zu lassen. Die Tests funktionieren weiterhin in VPATH und normalen Builds.

- Schalte Autovacuum in der Standardkonfiguration ein, siehe Diskussion.

- Arrangiere, das Autovacuum gekillt wird, wenn ein anderer Prozess alleine Zugriff benötigt, wie DROP DATABASE. Dies erlaubt, dass die Regression Tests mit eingeschaltetem Autovacuum durchlaufen, was letztendlich ermöglicht, das wir Autovacuum per Default aktivieren können.

Neil Conway checkte ein:

- Aktualisere Doks für die letzte Änderung beim setseed() Rückgabewert.

- Lasse setseed() void zurückliefern, statt int4 ohne weitere Nutzung. Laut pgsql-patches Diskussion vom 20. September 2006. Erhöhe die catversion.

- Liste deaktivierte Trigger separat in psql's "\d <Tabelle>" Ausgabe. Vorher wurden deaktivierte Trigger nicht anders dargestellt als aktivierte, was irreführend war. Patch von Brendan Jurd.

- Schreibe die Index AM API leicht um: verschiebe currentItemData und currentMarkData von IndexScanDesc in die opaque Strukturen für die AMs, die diese Informationen benötigen (derzeit gist und hash). Patch von Heikki Linnakangas, Änderungen von Neil Conway.

- Regression Tests für large Objects. Patch von Jeremy Drake.

- Bringe psql's \lo Slash Befehle bei, den Quiet Mode zu respektieren und die Ausgabe in HTML im HTML Mode zu liefern. Patch von Jeremy Drake.

- Addiere fehlendes Copyright Material, lasse ruleutils.c das Standardlayout für Header Kommentare nutzen.

- Erweitere den width_bucket() Regression Test, um unnötige Abhängigkeiten von der Plattform Floating Point Implementation zu vermeiden. Nach einem Report von Stefan Kaltenbrunner.

- vcbuild Aktualisierungen von Magnus Hagander: nach Markos Patch wird jetzt pgcrypto wieder ohne zlib gebaut, aktualisiere README mit xml Info, prüft xml Abhängigkeiten auf xslt und iconv, deaktiviert eine unnötige Warnung über __cdelc() und addiert buildenv.bat Aufrufe von allen anderen bat Dateien, um Dinge wie Pfade für flex/bison zu setzen. (Kann dies nicht vor dem Aufruf setzen, das funktioniert nicht immer, wenn vom GUI aus gebaut wird)

- Implementiere width_bucket für den float8 Datentyp.

- Kleinere Verbesserungen für die TODO Liste. Addiere einige URLs für einige existierende TODO Einträge, und trage wieder einen Punkt für "erwartete Anzahl" Fähigkeiten ein.

- Korrigiere eine kleine Inkorrektheit in der pg_dumpall Referenzseite: -g dumped Rollen und Tablespaces, nicht länger User und Gruppen. Von Dave Page. Backport zu 8.2 und 8.1.

Teodor Sigaev checkte ein:

- Repariere Lokalisierungssupport für Multibyte Encoding und C Lokale. Leicht modifizierter Patch von Tatsuo Ishii.

== Abgelehnte Patches (bis jetzt) ==

Niemand wurde diese Woche enttäuscht :-)

== Eingesandte Patches ==

Greg Sabino Mullane sandte einen Patch, welcher es pg_dump erlaubt, DDL Systemobjekte sauber formatiert auszugeben.

Gurjeet Singh sandte neue Versionen seines pg_post_planner_plugin, um DDL für Systemobjekte sauber formatiert auszugeben.

Magnus Hagander sandte einen Patch für das vcbuiild Script, welches pgcrypto wieder ohne zlib baut, aktualisiert README mit xml Info, prüft xml Abhängigkeiten auf xslt und iconv, deaktiviert eine unnötige Warnung über __cdelc() und addiert buildenv.bat Aufrufe von allen anderen bat Dateien, um Dinge wie Pfade für flex/bison zu setzen. (Kann dies nicht vor dem Aufruf setzen, das funktioniert nicht immer, wenn vom GUI aus gebaut wird)

Dave Page sandte einen Patch, welcher -f (--file=FILENAME) und -l (--default-database=) zu pg_dumpall addiert.

ITAGAKI Takahiro sandte einen Patch, welcher O_DIRECT Unterstützung für Windows addiert.

Arul Shaji sandte einen Patch, welcher pg_get_domaindef(oid) implementiert.

Gevik Babakhani sandte seinen Patch für die Implementierung des UUID Datentypes erneut ein.

  • Twitter
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 21. Januar 2007 at del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • Digg Wöchentlicher PostgreSQL Newsletter - 21. Januar 2007
  • Bloglines Wöchentlicher PostgreSQL Newsletter - 21. Januar 2007
  • Technorati Wöchentlicher PostgreSQL Newsletter - 21. Januar 2007
  • Fark this: Wöchentlicher PostgreSQL Newsletter - 21. Januar 2007
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 21. Januar 2007 at YahooMyWeb
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 21. Januar 2007 at Furl.net
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 21. Januar 2007 at reddit.com
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 21. Januar 2007 at blinklist.com
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 21. Januar 2007 at Spurl.net
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 21. Januar 2007 at Simpy.com
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 21. Januar 2007 at blogmarks
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 21. Januar 2007 with wists
  • wong it!
  • Bookmark using any bookmark manager!
  • Stumble It!
  • Identi.ca

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 8) 9 10 11 12) statt (((1 2 3 4 5 6 7 8) (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.
  • Twitter
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 14. Januar 2007 at del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • Digg Wöchentlicher PostgreSQL Newsletter - 14. Januar 2007
  • Bloglines Wöchentlicher PostgreSQL Newsletter - 14. Januar 2007
  • Technorati Wöchentlicher PostgreSQL Newsletter - 14. Januar 2007
  • Fark this: Wöchentlicher PostgreSQL Newsletter - 14. Januar 2007
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 14. Januar 2007 at YahooMyWeb
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 14. Januar 2007 at Furl.net
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 14. Januar 2007 at reddit.com
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 14. Januar 2007 at blinklist.com
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 14. Januar 2007 at Spurl.net
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 14. Januar 2007 at Simpy.com
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 14. Januar 2007 at blogmarks
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 14. Januar 2007 with wists
  • wong it!
  • Bookmark using any bookmark manager!
  • Stumble It!
  • Identi.ca

Wöchentlicher PostgreSQL Newsletter - 7. Januar 2007


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

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

Die Planungsgruppe für PGCon 2007 wurde angekündigt.
http://archives.postgresql.org/pgsql-advocacy/2007-01/msg00014.php

== PostgreSQL Produkt Neuigkeiten ==

Sicherheitsupdates für 8.2.1, 8.1.6, 8.0.10, 7.4.15 und 7.3.17 werden bald herausgegeben, ebenfalls Packete für Red Hat, Fedora, Debian und Ubuntu. Fertigmachen zum schnellstmöglichen Updaten.

== PostgreSQL Lokal ==

Meredith Patterson präsentiert: Verhindern von SQL Injection mit Libdejector
am Dienstag, den 9. Januar 2007 um 19:30 in San Mateo, Kalifornien. RSVP unter folgender URL.
http://postgresql.meetup.com/1/calendar/5324165/

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

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 ==

Peter Eisentraut checkte ein:

- Rücke Kommentare in Makefiles ein so das sie nicht in der Ausgabe erscheinen.

- erlaube XML Deklarationen in XML Fragmenten. Wir brauchen dafür einen kleinen handgeschriebenen Parser für die XML Deklarationen, denn libxml scheint dies nicht zu erlauben.

- Ersetze xmlroot mit einer richtig funktionierenden Version die die Werte parst, Begriffe setzt und Werte zurück serialisiert (anstatt eine willkürliche Nummer hinzuzufügen wie zuvor). Das libxml Speichermanagement über palloc musste deaktiviert werden, da es crashte wenn libxml versucht hat, auch Speicher zuzugreifen, den PostgreSQL zuvor bereits freigegegen hat. Dies benötigt weiteres Nachdenken.

Andrew Dunstan checkte ein:

- Rufe setrlimit wenn möglich in pg_regress auf um das Erstellen von Corefiles zu ermöglichen und stelle einen Schalter für das gleiche Verhalten in pg_ctl bereit.

Tom Lane checkte ein:

- Repariere einen übersehenen Fehler in der Handhabung von Row-vergleichenden Index Schlüsseln: wenn die Zeile nicht genau dem Index entspricht, müssen wir unsere anfänglich gewählte Positionierungsstrategie ändern. Als Beispiel: gegeben sei ein Index auf (f1,f2,f3) und eine WHERE Bedingung "ROW(2,3) > ROW(2,3), der Code extrahiert die anfängliche Positionsbedingung "f1 > 2", was falsch ist ... es muss "f1 >= 2" sein, andernfalls werden einige Zeilen, die der WHERE Bedingung entsprechen, nicht zurückgeliefert. Patch wird nur auf 8.2 angewandt, ich werde es in HEAD später korrigieren als Teil der geplanten Index Verbesserungen (umgekehrtes Sortieren und NULL FIRST/LAST).

- Repariere filtered_base_yylex() um base_yylval und base_yylloc bei einem Lookahead zu speichern und zu restaurieren. Dieser Mangel war Ursache für verschiedene kuriose Fehlverhalten wenn jemand versucht hat, "with" als einen normalen Bezeichner zu verwenden.

- Verweise auf GUC Variablen aus der HISTORY haben in vergangenen Branches nicht funktioniert.

- Füge ERANGE Tests in dpow() wieder ein. Es gibt Plattformen, die das benötigen, wie mein HPPA ...

- Greg Sabino Mullane's Patch um fehlende Referenzen zu pg_shdescription zu addieren.

- Magnus Hagander's Patch welcher AddDefine korrigiert um Quotes sauber zu handhaben.

- Zwicke pg_dumpall um GRANT CONNECT ON DATABASE ... TO PUBLIC zu addieren, wenn Datenbank Privilegien von einem Pre-8.2 Server gedumpt werden. Dies stellt sicher, das die neu geladene Datenbank das selbe Verhalten sicherstellt wie in der vorherigen Installation, z.B. jeder hat Connect Rechte. Nach einem Hinweis von L Bayuk.

- Greg Stark's Patch welcher einige kleine Fehler in Kommentaren beseitigt.

- Repariere fehlerhafte Implementierung von -s in postmaster.c (der Schalter nimmt keine Argumente an). Addiere einige Kommentare das Code an drei verschiedenen Stellen aktuell gehalten werden muss. Repariere fehlerhafte Beschreibung des -S Schalters (er setzt work_mem nicht silent_mode), und erledige einige kleinere Änderungen in postgres-ref.

- Repariere regex_fixed_prefix() um vernünftig mit Regexp Pattern der Form '^(foo)$' umzugehen. Vorher konnten diese niemals in Indexscans umgewandelt werden. Die letzten Änderungen an psql und pg_dump generieren solche Pattern (beziehungsweise für \d Kommandos und -t und relevante Schalter) deshalb repräsentierten sie einen großen Performance Hit für Leute mit einem großen pg_class Kalatog, wie gesehen in einer Nachricht von Erik Jones. Wenn wir schon dabei sind, sei mehr paranoid über case-sensitive Vergleiche in Multibyte Encodings und repariere einige andere Ecken in denen ein Regexp zu liberal interpretiert werden könnte.

- Repariere fehlerhafte Tests in pow/exp.

- Repariere btree_gist für neue größere Money Typen.

- Räume smgr.c/md.c APIs aufgrund einer Diskussion mehrere Monate zuvor auf. Anstatt das md.c ein success/failure Flag an smgr.c zurückliefert, welches bloss geloggt wird, lasse md.c die Tatsache selber loggen. Dies erlaubt bessere Fehlermessages, besonders in Situationen mit "short read" oder "short write" über die sich Peter beschwert hat. Entferne ebenfalls den Hack um mdread() zu erlauben, Null zurückzuliefern wenn über das Fileende hinaus gelesen wurde: dies ist nun eine Fehlerbedingung ausser in InRecovery oder wenn damages_pages = true gesetzt ist. (Hash Indexe haben dies Verhalten verlangt, aber jetzt nicht mehr.) Stelle auch sicher, das mdwrite() genutzt wird um existierende Blöcke neu zu schreiben während mdextend() genutzt wird um die Relation zu erweitern. Diese Einschränkung befreit uns von dem alten Ad-Hoc Schutz gegen das Erstellen großer Dateien bei einer zufälligen Referenz auf eine falsche Blocknummer: wir erstellen neue Segmente nur in mdextend() nicht in mdwrite() oder mdread(). (Ebenfalls, in InRecovery erlauben wir es dennoch, denn wir müssen das Updaten von Blocks erlauben die später gekürzt werden.) Räume ebenfalls den originalen makeshift Patch für Bug #2737 auf: verschiebe die Zuständigkeit für das Auffüllen von Relation Segmenten auf eine volle Länge in md.c.

- Addiere einen Regression Test für ALTER SET TABLESPACE; dies ist ein komplett separater Codepfad in tablecmds.c der früher nicht überprüft wurde.

Bruce Momjian checkte ein:

- Entferne von TODO: "Erlaube die Bezeichnerlänge über eine Configure Option zu vergrößern"

- TODO Updates für den MONEY Datentyp.

- In TODO, markiere als erledigt: "Erlaube es userdefinierten Typen 'typmod' Parameter zu akzeptieren"

- Addiere zum TODO: "Nutze konsistente long/short Kommandozeilen Optionen --- pg_ctl braucht lange, pg_config hat keine kurzen, postgres hat nicht genügend lange, und so weiter."

- Addiere zu TODO: "Ziehe in Betracht, den -C String in einzelne Queries zu parsen und jeden in seiner eigenen Transaktion auszuführen" und "Ziehe in Betracht, keine mehrfachen Queries in PQexec() zu erlauben um eine zusätzliche Barriere für SQL Injection Attacken zu schaffen"

- Wende Fix für pow() und exp() an so das diese ERANGE nutzen wenn das Ergebnis nicht 0 ist.

- Verschiebe INDEX Vererbung in eine separate TODO Listen Sektion.

- Euler Taveira de Oliveira's Patch welcher initdb erlaubt, das pg_xlog Verzeichnis anzugeben. TODO als erledigt markiert :)

- Dokumentiere Probleme mit Release Links in frühen Branches.

- Prüfe auf ERANGE ebenfalls in exp(). Verbessere Dokumentation für ecpg Regression Tests.

- Verbessere dpow() Prüfung auf ERANGE Überlauf bei HPPA.

- Entferne zusätzliches Zeichen welches bei "top" addiert war.

- Repariere Markup denn lc_numeric hat kein SGML Tag in diesem Release.

- Repariere markup denn ältere Versionen konnten die Referenz Sektion nicht verlinken.

- Dokumentiere das wir die ecpg Regression Dateien aktualisieren müssen wenn wir die Library Versionsnummer aktualisieren.

- Aktualisiere ecpg Regression Ausgabe für neue Library Versionsnummer.

- Stefan Kaltenbrunner's Patch zur Aktualisierung des float dpow() Kommentars welche Plattformen ein Problem mit Nan haben.

- Ändere Tab zu Leerzeichen Erwähnung in FAQ_DEV.

- Einfache Zuweisung von Inf zu pow Nan (keine Beachtung des Vorzeichens).

- Aktualisiere pow() Tests um zu prüfen das errno==EDOM und result==Nan, und dokumentiere warum dies passieren kann. Entferne exp() errno Prüfung da unnötig.

- Versuche richtige Überlauf/Unterlauf Nachrichten zurückzuliefern für Plattformen die nur Nan zurückliefern und errno setzen für pow/exp Überlauf/Unterlauf.

- Für float4/8, entferne errno Prüfungen für pow() und exp() denn nur einige Plattformen setzen errno und wir haben bereits ein Prüfmakro das Überläufe/Unterläufe entdeckt, so das keine Notwendigkeit für plattformspezifischen Code mehr besteht.

- In pgsql/src/test/regress/expected/inet.out, aktualisiere Ergebnis für neuen Inet Fehlermessage Wortlaut.

- Adjustiere Netzwerk errmsg("Ergebnis ist ausserhalb des Bereiches") Meldung um konsistent mit anderen Bereichen zu sein.

- Einige Plattformen setzen errno bei pow(), exp() Überlauf, einige tun dies nicht, so wenn isinf(), falle zurück auf unsere eigenen Infinity Prüfungen.

- finite() wird nicht länger genutzt, entferne Plattform spezifische Infrastruktur.

- Glen Parker's Patch welcher n_live_tuples und n_dead_tuples zu pg_stat_all_tables addiert. Der Grund ist um autovacuum-esq bedingte Vacuum und Clustering Operationen zu erlauben und dies durch SQL herauszufinden. Catalog Version aktualisiert.

- Addiere #include <float.h> für Plattformen die dies immer noch benötigen.

- Repariere float4/8 um infinity und Nan gleich zu behandeln, z.B. Infinity ist ein gültiges Ergebnis einer Berechnung wenn eine der Eingaben Infinity war. Der vorherige Code nahm an, dass das zurückgelieferte Infinity ein Überlauf war. Handhabe Überlauf/Unterlauf gleich, und addiere Prüfungen für Aggregat Überläufe. Konsequenterweise beuge vor so das Inf/Nan nicht in Integer Datentypen gecastet werden können. Repariere INT_MIN % -1 um einen Überlauf zu verhindern. Aktualisiere Regression Ergebnisse für den neuen Fehlertext. Laut einem Report von Roman Kononov.

== Abgelehnte Patches (bis jetzt) ==

Niemand wurde diese Woche enttäuscht :-)

== Eingesandte Patches ==

Simon Riggs sandte eine Version ein, dann eine korrigierte Version eines Patches die eine GUC Variable wall_checksum addiert, aufgrund einer Diskussion.
http://archives.postgresql.org/pgsql-hackers/2006-10/msg01299.php

Bill Moran sandte zwei Revisionen seines Patches ein um die Nutzung von temporären Dateien zu loggen.

Gurjeet Singh sandte eine andere Revision seines "Index Advisor" Patches ein, diesmal mit einigen Bugfixes und einer Verbesserung der Größen Bewertungs Funktion. Er enthält auch einen Workaround um ein früheres Problem in xact.c zu umgehen; er gibt nun vor, ein PL/xxx Modul zu sein durch umgeben von BIST()/RARCST() Aufrufe in einem SPI_connect()/SPI_finish() Block.

Heikki Linnakangas sandte einen Patch ein der das t_natts Feld umbenennt zu t_infomask2, mit 11 Bits reserviert für die Anzahl Attribute und die anderen 5 Bits verfügbar für zukünftige Erweiterungen. Dies ist beabsichtigt um den Fakt zu addressieren, das der Tuple Header voll wird, darum können im Gegenzug der Phantom Command IDs Patch und der HOT Patch nicht parallel existieren.

  • Twitter
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 7. Januar 2007 at del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • Digg Wöchentlicher PostgreSQL Newsletter - 7. Januar 2007
  • Bloglines Wöchentlicher PostgreSQL Newsletter - 7. Januar 2007
  • Technorati Wöchentlicher PostgreSQL Newsletter - 7. Januar 2007
  • Fark this: Wöchentlicher PostgreSQL Newsletter - 7. Januar 2007
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 7. Januar 2007 at YahooMyWeb
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 7. Januar 2007 at Furl.net
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 7. Januar 2007 at reddit.com
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 7. Januar 2007 at blinklist.com
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 7. Januar 2007 at Spurl.net
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 7. Januar 2007 at Simpy.com
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 7. Januar 2007 at blogmarks
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 7. Januar 2007 with wists
  • wong it!
  • Bookmark using any bookmark manager!
  • Stumble It!
  • Identi.ca

Wöchentlicher PostgreSQL Newsletter - 1. Januar 2007

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

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




Ein frohes neues Jahr vom wöchentlichen PostgreSQL Newsletter!

Chad Wagner hat einige Foren zusammengestellt, um über PostgreSQL zu diskutieren.
http://www.postgresqlforums.com/forums/

Hier sind einige Instruktionen, um einen Sun Cluster mit PostgreSQL zu installieren.
http://docs.sun.com/app/docs/doc/819-5578?q=+postgresql


== PostgreSQL Produkt Neuigkeiten ==

phpPgAdmin 4.1-Beta-1 erschienen.
http://phppgadmin.sourceforge.net

pgadmin3 1.6.1 RPMs für Fedora Core 6 und 7 wurden erstellt. Sie sind auf der
PostgreSQL FTP Seite zu finden.

postgis 1.2.0 ist jetzt in Fedora Core Extras 6.

== PostgreSQL Lokal ==

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

Der Wöchentliche PostgreSQL Newsletter sendet ein herzliches Willkommen
an die Indonesische PostgreSQL Community.
http://tech.groups.yahoo.com/group/postgresql_indo/

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

== Angewandte Patches ==

ISHII Tatsuo checkte ein:

- In pgsql/contrib/pgbench/pgbench.c, nutze srandom() statt srand(). pgbench ruft random() später auf, darum sollte srandom() benutzt werden. Auf den meisten Plattformen ist srandom() identisch zu srand(), so das der Bug nur Windows User betrifft. Laut Bugreport von Akio Ishida.

Teodor Sigaev checkte ein:

- In pgsql/contrib/tsearch2/dict_thesaurus.c, beseitige Speicher Reallokation Fehler.

Tom Lane checkte ein:

- Problem in meinen Operator-Family Änderungen gefunden: beim Holen von pg_opclass durch LookupOpclassInfo() habe ich pg_opclass_oid_index in einen kritischen System Index umgeändert. Jedoch kann das Problem nur auftreten beim ersten Versuch des Backends, die opclass Daten zu laden und dann auch nur, wenn pg_internal.init erfolgreich geladen war und einen relcache Flush auftrat. Dies machte es unmöglich den Fehler in seriellen Tests zu reproduzieren und auch nur sehr schwer bei parallelen Tests. Memo an mich: wenn Cache Löschen Szenarios betrachtet werden, muss der interne Cache von LookupOpclassInfo ebenfalls deaktiviert werden.

- Unterstütze Modifier für User-definierte Typen und packe das meiste Wissen über typmod Darstellungen für Standard Typen in Type-spezifische typmod I/O-Funktionen. Von Teodor Sigaev, mit einigen Änderungen von Tom Lane.

- Magnus Hagander sandte einen Patch der Unterstützung für das kürzlich hinzugefügte XML Backend im MSVC Build hinzufügt. Der meiste Configteil war bereits in contrib/xml2 vorhanden, aber es war notwendig, die Includes und Defines für das Backend auch hinzuzufügen.

- Magnus Haganders Patch um Unterstützung für XML Build Optionen zu den MSVC Build Scripts hinzuzufügen.

- Fixe mehrfache Fehlerstellen im letzten XML Patch.

- Repariere btrees initiales ScanKey Bearbeiten um redundante oder gegensätzliche Keys entdecken zu können, auch in Cross-Datentyp Szenarien. Dies ist ein anderer Vorteil der opfamily Änderungen: wir können die benötigten Vergleichsoperatoren jetzt finden.

- Entferne Warnung über Vermeidung von Cross-Type Operatoren in Contraints die für Constraint Ausschluß vorgesehen waren. Wir können solche Flle nun beweisen ...

- Aktiviere btree_predicate_proof() um Beweise für die Beteiligung von Cross-Data-Type Eigenschaften zu erzeugen. Es sieht so aus, als sei das meiste Zeug schon im letzten Commit gewesen, wir müssten lediglich die Schleusen öffnen.

- In tsearch2, addiere einen Schutz um Coredumps zu vermeiden, wenn Version 8.2 von rank_cd() mit der SQL Definition von Version 8.1 genutzt wird. Laut Bugreport von Rajesh Kumar Mallah, so ein DBA Fehler sieht nicht unwahrscheinlich aus und die Kosten für das Prüfen sind nicht sehr hoch verglichen mit den Kosten für das Ausführen der Funktion. (Es wäre besser gewesen, wenn der C Name der Funktion geändert worden wäre so das sie nicht von der alten SQL Definition aufgerufen werden kann, aber nun ist es zu spät für den 8.2 Branch.)

- In psql, rufe fflush für die \o Datei auf, wenn gegeben, nach jedem Backslash Befehl.
Wir tun dies bereits für herkömmliche SQL Befehle, so sieht es konsistent aus, dies auch für Backslash Befehle zu tun. Von Rajesh Kumar Mallah.

- export.list Änderungen zurücksetzen für genauere Studien.

- Nutze eine mehr Rückwärtskompatible Syntax für exports.list unter Linux. Von Thorkil Olesen.

- Verbessere den Memory Management Code um ineffektives verhalten zu vermeiden wenn ein Kontext eine kleine maxBlockSize hat: die maximale Request Größe die wir als einen "chunk" behandeln muss limitiert werden um in maxBlockSize zu passen. Andernfalls runden wir die Request Größe auf das nächste Vielfache von 2 auf, verbrauchen Speicher, was ein bischen sinnlos ist wenn wir die Blöcke nicht groß genug machen, um zusätzliche Sachen darin zu speichern. Das Beispiel dafür ist das lokale Buffermanagement, welches wiederholt 8k Blöcke (ein BLCKSZ Buffer) in TopMemoryContext anfordert, welches eine maxBlockSize von 8k hat, weil die meisten Teilanforderungen dort klein sind. Dies führt dazu, das jeder lokale Buffer eigentlich 16k Speicher verbraucht, was sich aufsummiert, wenn Tausende davon genutzt werden. Ich neige dazu, localbuf.c zu ändern um die Requests zu sammeln, dies würde dieses einzelne Fehlverhalten zu verhindern, aber das Hauptproblem zu beseitigen sieht auch sinnvoll aus.

- In psql, printe kombinierte Zeichen (solche die eine Nulllänge bei PQdsplen() haben) normal, anstatt sie mit \uXXXX Sequenzen zu ersetzen. Nimm an, das sie in Fakt Null Zeichen auf dem Bildschirm für das Formatieren verbrauchen. Von Michael Fuhr und folgender Diskussion.

- In der Dokumentation für Rules, nutze eine FROM Klausel in den Beispiel UPDATE Befehlen wo dies angemessen ist. Entferne auch ein lange Zeit überfälliges Statement dass da keine Prüfung für unendliche Rekursion in View Rules ist.

- Repariere kaputtes Markup in der Monitorung Dokumentation.

- Repariere Fehler beim Zugriff auf einen bereits freigegebenen Tuple Zeiger in einem Plan der HashAggregate über einem SubqueryScan nutzt (dies ist ein bekannter Fall, da können noch mehr sein). Dieser Bug ist in Releases vor 8.2 nur verborgen, da diese nicht versuchen auf tupletable Slots während ExecDropTupleTable zuzugreifen. Der letzte kleinste Fix sieht so aus, dass Subqueries sich den Speicherkontext mit dem Parent Queries teilen, so das tupdescs die gleiche Lebensdauer haben wie der Parent Query. Da sind Kommentare im Code um zu vergegenwärtigen das noch weiter gegangen werden kann und gar kein eigener EState für den Child gebraucht wird, aber dies erfordert weiteres Überdenken für Executor Zugriffe auf die Range Tabellen und dies mag ich derzeit nicht angehen. Laut Bugreport von Jean-Pierre Pelletier.

- Repariere Bug #2839: die verschiedenen ExecReScan Funktionen müssen ps_TupFromTlist in Planknoten zurücksetzen, wenn sie es benutzen. Dies wurde bereits richtig in Join Knoten und Ergebnis Knoten genutzt aber nicht in den Relation-Scan Knoten. Dieser Fehler würde zu falschen Ergebnissen führen wenn eine Set-Returning Funktion in der Zielliste eines Subqueries auftaucht, als Beispiel in einem EXISTS(). Dieser Bug war seit jeher vorhanden :-( ... erstaunlich das er nie zuvor berichtet wurde.

- Repariere Bug #2836: SPI_execute_plan lieferte Null zurück, wenn keiner der Querytrees als canSetTag markiert wurde. Während es selbstverständlich richtig ist das letzte Resultset zurückzuliefern, das als canSetTag markiert ist, war es weniger klar, was zu tun ist wenn keiner davon da war. Da plpgsql sich beschwert wenn Null zurückgeliefert wird, ist das 8.2.0 Verhalten nicht gut. Ich habe es repariert indem ich den vorherigen Zustand wiederhergestellt habe, wo das letzte Query Ergebnis zurückgeliefert wird, wenn keine canSetTag Queries vorhanden sind.

- Enferne falsches Semikolon in einem PL/PgSQL Beispiel, von Joachim Wieland.

Bruce Momjian checkte ein:

- Klärende Worte wann ctid geändert wird bei VACUUM FULL.

- Addiere TLS Thread URL zur TODO:
http://archives.postgresql.org/pgsql-hackers/2006-12/msg01213.php

- Entferne missverstandenen TODO: "Addiere ein GUC um zu kontrollieren ob BEGIN in einer Transaktion soll die Transaktion abbrechen."

- Entferne von TODO, "verschiebe GPL-lizensiertes /contrib/userlock und
/contrib/dbmirror/clean_pending.pl" da sie komplett sind.

- Räume pgindent Verhalten für Kommentare nach einem 'else' auf indem mehrzeilige Kommentare in die nächste Zeile verschoben werden.

- In den Docs, nutze "dead" statt "expired" für vacuum-fähige Zeilen.

Peter Eisentraut checkte ein:

- De-Escape XML namen beim Reverse-Kompilieren von XML Ausdrücken.

- Addiere Sende und Empfang Funktionen für XML Typ.

- Handhabe Inhalt und Dokument Optionen in xmlparse() richtig.


== Abgelehnte Patches (bis jetzt) ==

Niemand wurde diese Woche enttäuscht :-)


== Schwebende Patches ==

Euler Taveira de Oliveira sandte einen Patch der dir erlaubt das xlog Verzeichnis zum initdb Zeitpunkt anzugeben. Er benutzt Symlinks um dies zu bewerkstelligen und erstellt oder setzt zugriffsrechte passend für das Verzeichnis.

Dhanaraj M sandte einen Patch ein der es erlaubt, die Bezeichner Länge mittels einer configure Option zu ändern.

ITAGAKI Takahiro sandte einen Patch für den TODO Eintrag "erstelle eine Bitmap der Seiten, die Vacuum benötigen" (aka Toter Platz Karte) ein.

Albert Cervera Areny sandte eine neue Version seines Patches der Tablespaces für temporäre Objekte und Sort Dateien ermöglicht.

Simon Riggs sandte zwei weitere Revisionen seines pg_standby Patches.

Andrew Dunstan sandte einen Patch für pg_ctl ein der es core dumpen lässt.

Magnus Hagander sandte seinen work-in-progress Patch um pg_regress zu ermöglichen, komplett ausserhalb von msys unter Win32 zu laufen.

Magnus Hagander sandte einen einzeiligen Patch für src/tools/msvc/Project.pm der die Möglichkeit addiert um defines zu handhaben, die Textwerte setzen - " muss in XML gequotet werden.
  • Twitter
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 1. Januar 2007 at del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • Digg Wöchentlicher PostgreSQL Newsletter - 1. Januar 2007
  • Bloglines Wöchentlicher PostgreSQL Newsletter - 1. Januar 2007
  • Technorati Wöchentlicher PostgreSQL Newsletter - 1. Januar 2007
  • Fark this: Wöchentlicher PostgreSQL Newsletter - 1. Januar 2007
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 1. Januar 2007 at YahooMyWeb
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 1. Januar 2007 at Furl.net
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 1. Januar 2007 at reddit.com
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 1. Januar 2007 at blinklist.com
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 1. Januar 2007 at Spurl.net
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 1. Januar 2007 at Simpy.com
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 1. Januar 2007 at blogmarks
  • Bookmark Wöchentlicher PostgreSQL Newsletter - 1. Januar 2007 with wists
  • wong it!
  • Bookmark using any bookmark manager!
  • Stumble It!
  • Identi.ca