OSDN Git Service

Add new FAQ's.
authorBruce Momjian <bruce@momjian.us>
Thu, 14 Sep 2000 02:21:31 +0000 (02:21 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 14 Sep 2000 02:21:31 +0000 (02:21 +0000)
doc/FAQ_german [new file with mode: 0644]
doc/FAQ_linux_german [new file with mode: 0644]
doc/FAQ_linux_italian [new file with mode: 0644]

diff --git a/doc/FAQ_german b/doc/FAQ_german
new file mode 100644 (file)
index 0000000..0f6afb0
--- /dev/null
@@ -0,0 +1,1075 @@
+
+                  Häufig gestellte Fragen (FAQ) zu PostgreSQL
+                                       
+   Last updated: Sat Jul 10 00:37:57 EDT 1999
+   
+   Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
+   
+   Deutsche Übersetzung von Karsten Schulz (schulz@linux-systemhaus.de)
+   
+   Letzte Aktualisierung der deutschen Übersetzung: Don, den 05.08.1999,
+   09:00 CET
+   
+   Die aktuellste Version dieses Dokuments kann auf der PostgreSQL
+   Website http://www.PostgreSQL.org angesehen werden.
+   
+   Linux-spezifische Fragen werden in
+   http://www.PostgreSQL.org/docs/faq-linux.html beantwortet (deutsche
+   Übersetzung in Arbeit!).
+   
+   Irix-spezifische Fragen werden in
+   http://www.PostgreSQL.org/docs/faq-irix.html beantwortet.
+   
+   HPUX-spezifische Fragen werden in
+   http://www.PostgreSQL.org/docs/faq-hpux.shtml beantwortet.
+     _________________________________________________________________
+   
+                             Allgemeine Fragen
+                                      
+   1.1) Was ist PostgreSQL?
+   1.2) Welches Copyright liegt auf PostgreSQL?
+   1.3) Auf welchen Unix-Plattformen läuft PostgreSQL?
+   1.4) Welche Nicht-Unix-Versionen sind verfügbar?
+   1.5) Woher bekomme ich PostgreSQL?
+   1.6) Wo bekomme ich Support für PostgreSQL?
+   1.7) Was ist die neueste Version von PostgreSQL?
+   1.8) Welche Dokumente sind für PostgreSQL verfügbar?
+   1.9) Wie erfahre ich etwas über bekannte Fehler oder fehlende
+   Eigenschaften von PostgreSQL?
+   1.10) Wie kann ich SQL lernen?
+   1.11) Ist PostgreSQL Y2K (Jahr 2000) fähig?
+   1.12) Wie kann ich am Entwicklerteam teilnehmen?
+   1.13) Wie sende ich einen Fehler-Bericht?
+   1.14) Wie läuft PostgreSQL im Vergleich zu anderen Datenbanksystemen?
+   
+                        Fragen zu Benutzerprogrammen
+                                      
+   2.1) Gibt es ODBC-Treiber für PostgreSQL?
+   2.2) Welche Werkzeuge gibt es, um PostgreSQL-Datenbanken über
+   Webseiten verfügbar zu machen?
+   2.3) Hat PostgreSQL eine grafische Benutzerschnittstelle? Einen
+   Report-Generator? Eine eingebaute Query-Schnittstelle?
+   2.4) Welche Sprachen sind für die Kommunikation mit PostgreSQL
+   verfügbar?
+   
+                           Administrative Fragen
+                                      
+   3.1) Warum schlägt initdb fehl?
+   3.2) Wie installiere ich PostgreSQL woanders als in /usr/local/pgsql?
+   3.3) Wenn ich den postmaster starte, bekomme ich einen Bad System Call
+   oder eine core dumped Meldung. Warum?
+   3.4) Wenn ich versuche, den postmaster zu starten, bekomme ich eine
+   IpcMemoryCreate Fehlermeldungen. Warum?
+   3.5) Wenn ich versuche, den postmaster zu starten, bekomme ich eine
+   IpcSemaphoreCreate Fehlermeldungen. Warum?
+   3.6) Wie verhindere ich, daß andere Hosts auf meine PostgreSQL
+   Datenbanken zugreifen?
+   3.7) Warum kann ich mich nicht von einer anderen Maschine mit meiner
+   Datenbank verbinden?
+   3.8) Warum kann ich nicht als root auf die Datenbank zugreifen?
+   3.9) Alle meine Server stürzen bei gleichzeitigem Tabellenzugriff ab.
+   Warum?
+   3.10) Wie optimiere ich die Datenbankmaschine für bessere Leistung?
+   3.11) Welche Debugging/Fehlersuch-Hilfsmittel sind für PostgreSQL
+   verfügbar?
+   3.12) Ich bekomme die Meldung "Sorry, too many clients", wenn ich eine
+   Verbindung versuche. Warum?
+   3.13) Was sind die pg_psort.XXX Dateien in meinem
+   Datenbank-Verzeichnis?
+   3.14) Wie richte ich eine Benutzergruppe (pg_group) ein?
+   
+                             Fragen zum Betrieb
+                                      
+   4.1) Das System scheint Kommata, Dezimalpunkte und Datumsformate
+   durcheinanderzubringen.
+   4.2) Was ist der genauer Unterschied zwischen Binary Cursors und
+   Normal Cursors?
+   4.3) Wie wähle ich per SELECT nur die ersten paar Zeilen in einem
+   Query aus?
+   4.4) Wie bekomme ich eine Liste der Tabellen oder anderen Dingen, die
+   ich in psql sehen kann
+   4.5) Wie entferne ich eine Spalte von einer Tabelle?
+   4.6) Was ist die Maximalgröße für eine Zeile, eine Tabelle, eine
+   Datenbank?
+   4.7) Wieviel Plattenplatz benötigt eine Datenbank zur Speicherung
+   einer Datendatei mit zeilenweisen Datensätzen?
+   4.8) Wie finde ich heraus, welche Indizes oder Operationen in der
+   Datenbank definiert sind?
+   4.9) Meine Queries sind langsam oder nutzen die Indizes nicht. Warum?
+   4.10) Auf welche Weise kann ich sehen, wie der Query-Optimierer meine
+   Abfrage auswertet?
+   4.11) Was ist ein R-Tree Index?
+   4.12) Was ist "Genetic Query Optimization"?
+   4.13) Wie verfahre ich bei der Suche mit regulären Ausdrücken und bei
+   einer Suche mit Ignorierung der Groß- und Kleinschreibweisen?
+   4.14) Wie ermittle ich in einem Query, daß ein Feld NULL ist?
+   4.15) Was ist der Unterschied zwischen den verschiedenen CHAR-Typen?
+   4.16) Wie erzeuge ich ein serielles Feld mit automatischer Erhöhung
+   des Inhalts?
+   4.17) Was ist ein Oid? Was ist ein Tid?
+   4.18) Was ist die Bedeutung der verschiedenen Ausdrücke, die in
+   PostgreSQL benutzt werden (z.B. attribute, class,...)?
+   4.19) Wieso bekomme ich einen Fehler: "FATAL: palloc failure: memory
+   exhausted?"
+   4.20) Wie kann ich feststellen, welche PostgreSQL-Version ich laufen
+   habe?
+   4.21) Beim Arbeiten mit "Large-Objects" kommt die Fehlermeldung:
+   invalid large obj descriptor. Warum?
+   
+                            PostgreSQL erweitern
+                                      
+   5.1) Ich habe eine benutzerdefinierte Funktion geschrieben. Wenn ich
+   sie in psql aufrufe, kommt ein core dump. Warum?
+   5.2) Was bedeutet die Meldung: NOTICE:PortalHeapMemoryFree: 0x402251d0
+   not in alloc set!?
+   5.3) Wie kann ich ein paar elegante neue Feldtypen und Funktionen zu
+   PostgreSQL beitragen?
+   5.4) Wie schreibe ich eine Funktion in C, die ein Tuple zurückliefert?
+   5.5) Ich habe eine der Quellendateien geändert. Warum macht sich die
+   Änderung beim erneuten Compilerlauf nicht bemerkbar?
+     _________________________________________________________________
+   
+                             Allgemeine Fragen
+                                      
+    1.1) Was ist PostgreSQL?
+    
+   PostgreSQL ist eine Verbesserung des
+   POSTGRES-Datenbank-Managementsystems, ein "Next-Generation"
+   DBMS-Forschungsprototyp. Während PostgreSQL das leistungsfähige
+   Datenmodell und die reichhaltigen Datentypen von POSTGRES beibehält,
+   ersetzt es die PostQuel-Abfragesprache durch eine ausgedehnte
+   Teilmenge von SQL. PostgreSQL ist frei und der komplette Quellcode ist
+   verfügbar.
+   
+   Die PostgreSQL-Entwicklung wird von einem Team von Internet-Entwickler
+   durchgeführt, die alle an der PostgreSQL-Entwicklungs-Mailingliste
+   teilnehmen. Der aktuelle Koordinator ist Marc G. Fournier
+   (scrappy@postgreSQL.org) (siehe unten, wie man sich anmelden kann).
+   Dieses Team ist jetzt für alle aktuellen und zukünftigen Entwicklungen
+   von PostgreSQL verantwortlich.
+   
+   Die Autoren von PostgreSQL 1.01 waren Andrew Yu und Jolly Chen. Viele
+   andere haben zur Portierung, zu den Tests, zur Fehlersuche und zur
+   Verbesserung des Codes beigetragen. Der ursprüngliche Postgres-Code,
+   von dem PostgreSQL abstammt, ist auf die Bemühungen von vielen
+   Studierenden und Diplomanden, sowie Programmierern, die unter der
+   Weisung des Professors Michael Stonebraker an der Universität von
+   Kalifornien, Berkeley arbeiteteten, zurückzuführen.
+   
+   Der ursprüngliche Name der Software bei Berkeley war Postgres. Als die
+   SQL-Funktionalität 1995 hinzugefügt wurde, wurde sein Name zu
+   Postgres95 geändert. Der Name wurde Ende 1996 zu PostgreSQL geändert.
+   
+    1.2) Welches Copyright liegt auf PostgreSQL?
+    
+   PostgreSQL steht unter folgendem COPYRIGHT (Originaltext):
+   
+   PostgreSQL Data Base Management System
+   
+   Copyright (c) 1994-6 Regents of the University of California
+   
+   Permission to use, copy, modify, and distribute this software and its
+   documentation for any purpose, without fee, and without a written
+   agreement is hereby granted, provided that the above copyright notice
+   and this paragraph and the following two paragraphs appear in all
+   copies.
+   
+   IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
+   FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
+   INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND
+   ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN
+   ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+   
+   THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
+   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
+   PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
+   CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
+   UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+   
+   Es gilt die Copyright-Klausel im Original! Informativ folgt hier eine
+   Übersetzung. Die Übersetzung besitzt keinerlei rechtlichen Status.
+   Insbesondere kann sich niemand auf diese Übersetzung berufen:
+   
+   PostgreSQL Datenbank Management System
+   
+   Copyright (c) 1994-6 Regents of the University of California
+   
+   Die Erlaubnis, diese Software und seine Unterlagen für jeden möglichen
+   Zweck, ohne Gebühr und ohne eine schriftliche Vereinbarung zu
+   benutzen, zu kopieren, zu ändern und zu verteilen wird hiermit
+   bewilligt, vorausgesetzt daß der oben genannte Urheberrechtsvermerk
+   und dieser Paragraph und die folgenden zwei Paragraphen in allen
+   Kopien erscheinen.
+   
+   IN KEINEM FALL IST DIE UNIVERSITÄT VON KALIFORNIEN GEGENÜBER JEDEM
+   MÖGLICHEN BETEILIGTEN FÜR DIE DIREKTEN, INDIREKTEN, SPEZIELLEN,
+   BEILÄUFIGEN ODER FOLGESCHÄDEN, EINSCHLIEßLICH DER VERLORENEN PROFITE
+   VERANTWORTLICH, DIE AUS DEM GEBRAUCH VON DIESER SOFTWARE UND SEINEN
+   UNTERLAGEN HERAUS ENTSTEHEN, SELBST WENN DIE UNIVERSITÄT VON
+   KALIFORNIEN VON DER MÖGLICHKEIT SOLCHEN SCHADENS BENACHRICHTIGT WORDEN
+   IST.
+   
+   DIE UNIVERSITÄT VON KALIFORNIEN LEHNT SPEZIELL ALLE MÖGLICHE GARANTIEN
+   AB, EINSCHLIESSLICH, ABER NICHT BEGRENZT AUF, DIE IMPLIZIERTEN
+   GARANTIEN VON GESCHÄFTSNUTZEN UND EIGNUNG ZU EINEM BESTIMMTEN ZWECK.
+   DIE SOFTWARE, DIE NACHSTEHEND BEREITGESTELLT WIRD, BASIERT AUF EINER
+   "SO WIE SIE IST"-GRUNDLAGE, UND DIE UNIVERSITÄT VON KALIFORNIEN HAT
+   KEINE VERPFLICHTUNGEN, WARTUNG, SUPPORT, AKTUALISIERUNGSVORGÄNGE,
+   VERBESSERUNGEN ODER ÄNDERUNGEN ZUR VERFÜGUNG ZU STELLEN.
+   
+    1.3) Auf welchen Unix-Plattformen läuft PostgreSQL?
+    
+   Die Autoren haben PostgreSQL auf folgenden Plattformen kompiliert und
+   getestet (einige dieser Kompilierungen benötigen den C-Compiler gcc):
+     * aix - IBM auf AIX 3.2.5 or 4.x
+     * alpha - DEC Alpha AXP auf Digital Unix 2.0, 3.2, 4.0
+     * BSD44_derived - OS abgeleitet von 4.4-lite BSD (NetBSD, FreeBSD)
+     * bsdi - BSD/OS 2.x, 3.x, 4.x
+     * dgux - DG/UX 5.4R4.11
+     * hpux - HP PA-RISC auf HP-UX 9.*, 10.*
+     * i386_solaris - i386 Solaris
+     * irix5 - SGI MIPS auf IRIX 5.3
+     * linux - Intel i86 Alpha SPARC PPC M68k
+     * sco - SCO 3.2v5 Unixware
+     * sparc_solaris - SUN SPARC auf Solaris 2.4, 2.5, 2.5.1
+     * sunos4 - SUN SPARC auf SunOS 4.1.3
+     * svr4 - Intel x86 auf Intel SVR4 and MIPS
+     * ultrix4 - DEC MIPS auf Ultrix 4.4
+       
+    1.4) Welche Nicht-Unix-Versionen sind verfügbar?
+    
+   Es ist möglich, die libpq C-Bibliothek, psql und andere Schnittstellen
+   und Binaries zu kompilieren, um sie auf der MS-Windows-Plattform
+   laufen zu lassen. In diesem Fall läuft der Client auf MS-Windows und
+   steht über TCP/IP mit einem Server in Verbindung, der auf einer
+   unserer unterstützten Unixplattformen läuft. Es gibt die Datei
+   win31.mak in der Distribution, um die Win32 libpq-Bibliothek und psql
+   zu erzeugen.
+   
+   Der Datenbankserver arbeitet jetzt auch unter Benutzung der Cygnus
+   Unix/NT-Porting-Bibliotheken auf Windows NT. Siehe auch
+   pgsql/doc/README.NT in der Distribution.
+   
+   Es gibt eine weitere Portierung, die U/Win benutzt bei
+   http://surya.wipro.com/uwin/ported.html.
+   
+    1.5) Woher bekomme ich PostgreSQL?
+    
+   Die erste Anlaufadresse für PostgreSQL ist der ftp-Server
+   ftp://ftp.postgreSQL.org/pub
+   
+   Die entsprechenden Spiegelserver sind auf der Hauptwebseite
+   aufgelistet.
+   
+    1.6) Wo bekomme ich Support für PostgreSQL?
+    
+   Es gibt keinen offiziellen Support für PostgreSQL von der Universität
+   von Kalifornien, Berkeley. Der Support wird durch freiwilligen Einsatz
+   geleistet.
+   
+   Die Mailing-Liste ist: pgsql-general@postgreSQL.org. Die Liste ist für
+   PostgreSQL betreffende Themen vorbehalten. Um sich anzumelden, sende
+   eine Email mit folgenden Zeilen im Text (nicht in der Betreffzeile):
+
+        subscribe
+        end
+
+   an pgsql-general-request@postgreSQL.org.
+   
+   Es gibt auch eine Digest-Liste (Eine Liste, die Mails zusammengefasst
+   sendet). Um sich an dieser Digestliste anzumelden, sende eine Email
+   an: pgsql-general-digest-request@postgreSQL.org mit folgendem Text:
+
+        subscribe
+        end
+
+   Die Digests werden an die Mitglieder der Liste geschickt, wenn ca.
+   30kB an Mails zusammengekommen sind.
+   
+   Die Bug-Mailingliste ist verfübar. Um sich an dieser Liste anzumelden,
+   sende eine Email an bugs-request@postgreSQL.org mit folgendem Text:
+   
+
+        subscribe
+        end
+
+   Es gibt ebenfalls eine Entwickler-Diskussionsliste. Um sich an dieser
+   Liste anzumelden, sende eine Email an hackers-request@postgreSQL.org
+   mit diesem Text:
+   
+
+        subscribe
+        end
+
+   Weitere Mailinglisten und Informationen zu PostgreSQL können auf der
+   PostgreSQL-Homepage im WWW gefunden werden:
+   
+     http://postgreSQL.org
+     
+   Es gibt außerdem einen IRC-Channel im EFNet, Kanal #PostgreSQL. Bruce
+   nutzt den Unix-Befehl: irc -c '#PostgreSQL' "$USER" irc.phoenix.net um
+   teilzunehmen
+   
+   Kommerzieller Support für PostgreSQL ist bei http://www.pgsql.com/
+   verfügbar
+   
+    1.7) Was ist die neueste Version von PostgreSQL?
+    
+   Das neueste Release von PostgreSQL ist die Version 6.5.
+   
+   Wir planen alle 4 Monate Hauptreleases herauszugeben.
+   
+    1.8) Welche Dokumente sind für PostgreSQL verfügbar?
+    
+   Einige Handbücher, Man-Pages und einige kleine Testprogramme sind in
+   der Distribution enthalten. Siehe im /doc-Verzeichnis.
+   
+   psql hat einige nette \d-Befehle, um Informationen über Typen,
+   Operatoren, Funktionen, Aggregate, usw. zu zeigen.
+   
+   Die Website enthält sogar noch mehr Unterlagen.
+   
+    1.9) Wie erfahre ich etwas über bekannte Fehler oder fehlende Eigenschaften
+    von PostgreSQL?
+    
+   PostgreSQL unterstützt eine ausgedehnte Untermenge von SQL-92. Siehe
+   unser TODO für eine Auflistung der bekannten Fehler, fehlende
+   Eigenschaften und zukünftige Pläne.
+   
+    1.10) Wie kann ich SQL lernen?
+    
+   Es gibt nette SQL-Tutorials bei http://w3.one.net/~jhoffman/sqltut.htm
+   und bei
+   http://ourworld.compuserve.com/homepages/Graeme_Birchall/DB2_COOK.HTM.
+   
+   Viele unserer User mögen The Practical SQL Handbook, Bowman et al.,
+   Addison Wesley.
+   
+    1.11) Ist PostgreSQL Y2K (Jahr 2000) fähig?
+    
+   Ja, wir können Datumsangaben nach dem Jahr 2000 n.Chr. und vor 2000
+   v.Chr. leicht verarbeiten.
+   
+    1.12) Wie kann ich am Entwicklerteam teilnehmen?
+    
+   Zuerst lade die neuesten Quellen herunter und lies die
+   PostgreSQL-Entwicklerunterlagen auf unserer Website oder in der
+   Distribution. Zweitens melde Dich zu den Mailinglisten pgsql-hackers
+   und pgsql-patches an. Drittens sende qualitativ hochwertige
+   Programmänderungen an die pgsql-patches Mailingliste.
+   
+   Es gibt ungefähr ein Dutzend Leute, die das commit-Recht im
+   PostgreSQL-CVS Archiv haben. Alle haben so viele hochwertige Patches
+   eingebracht, daß es schwer für die CVS-Verwalter war, mitzuhalten. Und
+   wir hatten das Vertrauen, daß die Änderungen, die sie festlegten, sehr
+   wahrscheinlich von hoher Qualität sind.
+   
+    1.13) Wie sende ich einen Fehler-Bericht?
+    
+   Fülle die "Fehler-Vorlage"-Datei (bug.template im doc-Verzeichnis) aus
+   und sende sie an: bugs@postgreSQL.org
+   
+   Überprüfe auch den ftp-Server ftp://ftp.postgreSQL.org/pub, um
+   nachzusehen, ob es eine neuere PostgreSQL-Version oder neue Patches
+   gibt.
+   
+    1.14) Wie läuft PostgreSQL im Vergleich zu anderen Datenbanksystemen?
+    
+   Es gibt verschiedene Methoden, Software zu messen: Eigenschaften,
+   Leistung, Zuverlässigkeit, Support und Preis.
+   
+   Eigenschaften
+          PostgreSQL hat die meisten Eigenschaften, die in großen
+          kommerziellen DBMS's, wie Transaktionen, Sub-SELECTs, Trigger,
+          Views und verfeinertes Locking, vorhanden sind. Wir haben
+          einige Eigenschaften, die andere nicht haben, wie
+          benutzerbestimmte Typen, Vererbung, Regeln, und die
+          Multi-Versionen-Steuerung zum Verringern von konkurrierenden
+          Locks. Wir haben keine referentielle Integrität von externen
+          Schlüsseln oder Outer Joins, aber wir arbeiten an diesen Dingen
+          für unser nächstes Release.
+          
+   Leistung
+          PostgreSQL läuft in zwei Modi. Im normalen fsync-Modus wird
+          jede komplette Transaktion auf die Platte geschrieben und
+          garantiert, daß, selbst wenn das Betriebssystem abstürzt und
+          der Strom ausfällt, die Daten sicher gespeichert wurden. In
+          diesem Modus sind wir langsamer als die meisten kommerziellen
+          Datenbanken, zum Teil, weil wenige von ihnen solch eine
+          konservatives Methode der Datenspeicherung in ihren
+          Standardbetriebsmodi betreiben.
+          
+          Im no-fsync-Modus sind wir normalerweise schneller als
+          kommerzielle Datenbanken. In diesem Modus kann ein
+          Betriebssystemabsturz jedoch Datenkorruption zur Folge haben.
+          Wir arbeiten daran, einen Zwischenmodus zur Verfügung zu
+          stellen, der unter weniger Leistungseinbuße leidet als der
+          fsync-Modus und die Datenintegrität innerhalb 30 Sekunden im
+          Falle eines Betriebssystemabsturzes erlaubt. Der Modus ist
+          durch den Datenbankverwalter auswählbar.
+          
+          Im Vergleich zu MySQL oder schlankeren Datenbanksystemen sind
+          wir hinsichtlich INSERTs/UPDATEs langsamer, weil wir einen
+          Transaktions-Overhead haben. Selbstverständlich hat MySQL kaum
+          eine der Eigenschaften, die oben im Kapitel Eigenschaften
+          erwähnt werden. PostgreSQL ist für Flexibilität und gute
+          Eigenschaften designed, trotzdem fahren wir fort, die Leistung
+          durch Profiling und Quellcodeanalyse zu verbessern.
+          
+   Zuverlässigkeit
+          Wir stellen fest, daß ein DBMS zuverlässig sein muß, oder es
+          ist wertlos. Wir bemühen uns, gut geprüften, beständigen Code
+          freizugeben, der nur ein Minimum an Programmfehler hat. Jede
+          Freigabe hat mindestens einen Monat Betatestphase hinter sich,
+          und unsere Freigabehistorie zeigt, daß wir stabile, solide
+          Versionen freigeben, die im Produktionsbetrieb genutzt werden
+          können. Wir glauben, daß wir im Vergleich mit anderer
+          Datenbanksoftware vorteilhaft dastehen.
+          
+   Support
+          Unsere Mailingliste stellt eine große Gruppe Entwickler und
+          Benutzer zur Behebung aller möglichen anzutreffenden Probleme
+          zur Verfügung. Wir können nicht immer eine Fehlerbehebung
+          garantieren, kommerzielle DBMS's tun dies aber auch nicht.
+          Direkter Zugriff zu den Entwicklern, zur Benutzergemeinschaft,
+          zu den Handbüchern und zum Quellcode bietet häufig
+          höherwertigen PostgreSQL-Support im Vergleich zu anderen
+          DBMS's. Es gibt den kommerziellen "Pro-Ereignis"-Support, der
+          für diejenigen bereitgestellt wird, die ihn benötigen. (siehe
+          Support-Faq),
+          
+   Preis
+          PostgrSQL ist frei verfügbar, sowohl für die kommerzielle, wie
+          für die nicht-kommerzielle Nutzung. Du kannst Deinen Code fast
+          ohne Beschränkungen zu unserem hinzufügen. Die einzigen
+          Beschränkungen werden in der BSD-artigen Lizenz weiter oben
+          aufgeführt.
+     _________________________________________________________________
+   
+                        Fragen zu Benutzerprogrammen
+                                      
+    2.1) Gibt es ODBC-Treiber für PostgreSQL?
+    
+   Es sind zwei ODBC-Treiber verfügbar: PostODBC und OpenLink ODBC.
+   
+   PostODBC ist in der Distribution enthalten. Mehr Informationen können
+   unter http://www.insightdist.com/psqlodbc abgerufen werden.
+   
+   OpenLink ODBC kann unter http://www.openlinksw.com geholt werden. Die
+   Software arbeitet mit OpenLinks Standard-ODBC-Client, so daß
+   PostgreSQL-ODBC auf jeder Client-Plattform zur Verfügung steht, die
+   unterstützt wird (Win, Mac, Unix, VMS).
+   
+   Sie werden dieses Produkt wahrscheinlich an Leute verkaufen, die
+   kommerziellen Qualitäts-Support brauchen, aber es wird immer eine
+   Freeware-Version verfügbar sein. Fragen dazu bitte an
+   postgres95@openlink.co.uk.
+   
+    2.2) Welche Werkzeuge gibt es, um PostgreSQL-Datenbanken über Webseiten
+    verfügbar zu machen?
+    
+   Eine nette Einführung zu Datenbank-gestützten Webseiten kann unter
+   http://www.webtools.com abgerufen werden.
+   
+   Eine weitere gibt es bei http://www.phone.net/home/mwm/hotlist/.
+   
+   Für die Web-Integration ist PHP eine ausgezeichnete Schnittstelle. PHP
+   gibt es bei http://www.php.net
+   
+   PHP ist hervorragend für einfache Anbindungen geeignet. Für komplexere
+   Aufgaben nutzen viele die Perl-Schnittstelle mit CGI.pm.
+   
+   Einen WWW-Gateway, basierend auf WDB, kann man bei
+   http://www.eol.ists.ca/~dunlop/wdb-p95 herunterladen.
+   
+    2.3) Hat PostgreSQL eine grafische Benutzerschnittstelle? Einen
+    Report-Generator? Eine eingebaute Query-Schnittstelle?
+    
+   Wir haben eine nette grafische Benutzerschnittstelle mit Namen
+   pgaccess, welche in der Distribution enthalten ist. pgaccess hat auch
+   einen Reportgenerator. Die Webpage liegt hier:
+   http://www.flex.ro/pgaccess
+   
+   In der Distribution gibt es außerdem ecpg,, welches eine eingebundene
+   SQL-Query-Schnittstelle für C zur Verfügung stellt.
+   
+    2.4) Welche Sprachen sind für die Kommunikation mit PostgreSQL verfügbar?
+    
+   Wir haben:
+     * C(libpq)
+     * C++(libpq++)
+     * Embedded C(ecpg)
+     * Java(jdbc)
+     * Perl(perl5)
+     * ODBC(odbc)
+     * Python(PyGreSQL)
+     * TCL(libpgtcl)
+     * ein rohes C/4GL(contrib/pginterface)
+     * Embedded HTML(PHP from http://www.php.net)
+     _________________________________________________________________
+   
+                           Administrative Fragen
+                                      
+    3.1) Warum schlägt initdb fehl?
+    
+     * überprüfe, daß keine Binaries vorheriger Versionen in Deinem Pfad
+       (PATH-Variable) sind. (Wenn Du die Meldung siehst:
+       WARN:heap_modifytuple: repl is \ 9, ist das das Problem.)
+     * überprüfe, daß der Pfad richtig gesetzt ist
+     * überprüfe, ob der User postgres der Eigentümer der entsprechenden
+       Dateien ist
+       
+    3.2) Wie installiere ich PostgreSQL woanders als in /usr/local/pgsql?
+    
+   Der einfachste Weg ist mittels der --prefix Option beim configure den
+   Pfad anzugeben. Falls Du das vergessen haben solltest, kannst Du die
+   Datei Makefile.global ändern und POSTGRESDIR entsprechend anpassen,
+   oder Du erzeugst ein Makefile.custom und definierst POSTGRESDIR dort.
+   
+    3.3) Wenn ich den postmaster starte, bekomme ich einen Bad System Call oder
+    eine core dumped Meldung. Warum?
+    
+   Das kann verschiedene Ursachen haben. Überprüfe zuerst, ob Dein Kernel
+   System V Extensions enthält. PostgreSQL benötigt die
+   Kernel-Unterstützung für Shared Memory und Semaphoren.
+   
+    3.4) Wenn ich versuche, den postmaster zu starten, bekomme ich
+    IpcMemoryCreate Fehlermeldungen. Warum?
+    
+   Du hast entweder den Kernel nicht für Shared Memory konfiguriert, oder
+   Du mußt den Shared Memory Bereich vergrößern. Die genaue Größe hängt
+   von Deiner Systemarchitektur ab und mit wievielen Puffern und
+   Serverprozessen Du postmaster konfiguriert hast. Für die meisten
+   Systeme, mit Standardangaben für Puffer und Prozessen benötigst Du ein
+   Minimum von ca. 1 MB.
+   
+    3.5) Wenn ich versuche, den postmaster zu starten, bekomme ich
+    IpcSemaphoreCreate Fehlermeldungen. Warum?
+    
+   Falls die Fehlermeldung IpcSemaphoreCreate: semget failed (No space
+   left on device) lautet, dann ist Dein Kernel mit zu wenig Semaphoren
+   konfiguriert. Postgres benötigt eine Semaphore pro möglichen
+   Backend-Prozess. Eine Zwischenlösung wäre, postmaster mit einer
+   geringeren Anzahl an Backend-Prozessen zu starten. Benutze dazu die -N
+   Option mit einem Wert kleiner als die standardmäßigen 32. Eine
+   dauerhafte Lösung wäre es, die Kernel-Parameter SEMMNS und SEMMNI zu
+   erhöhen.
+   
+   Falls die Fehlermeldung anders aussieht, hast Du möglicherweise keine
+   Semaphoren-Unterstützung in Deinem Kernel aktiviert.
+   
+    3.6) Wie verhindere ich, daß andere Hosts auf meine PostgreSQL Datenbanken
+    zugreifen?
+    
+   Die Standardeinstellung ist, daß PostgreSQL Verbindungen von der
+   lokalen Maschine über Unix-Domain-Sockets erlaubt. Andere Maschinen
+   werden keine Verbindung aufbauen können, bis der postmaster mit der -i
+   Option gestartet ist und die Host-basierte Authentizierung in der
+   Datei $PGDATA/pg_hba.conf entsprechend angepasst ist. Das erlaubt
+   TCP/IP-Verbindungen.
+   
+    3.7) Warum kann ich mich nicht von einer anderen Maschine mit meiner
+    Datenbank verbinden?
+    
+   Die Standardeinstellung erlaubt nur Unix-Domain-Socket-Verbindungen
+   der lokalen Maschine. Um TCP/IP Verbindungen zu ermöglichen, stelle
+   sicher, daß der postmaster mit der -i Option gestartet wurde, und füge
+   einen passenden Host-Eintrag in die Datei pgsql/data/pg_hba.conf ein.
+   Siehe auch die pg_hba.conf Man-Page.
+   
+    3.8) Warum kann ich nicht als root auf die Datenbank zugreifen?
+    
+   Du solltest keine Datenbank-Benutzer mit der User-ID 0 (root)
+   erzeugen. Sie werden auf keine Datenbank zugreifen können. Das ist
+   eine Sicherheitsmaßnahme, wegen der Möglichkeit Objekt-Module
+   dynamisch in die Datenbank zu linken.
+   
+    3.9) Alle meine Server stürzen bei gleichzeitigem Tabellenzugriff ab.
+    Warum?
+    
+   Dieses Problem kann durch einen Kernel verursacht werden, der ohne
+   Support für Semaphoren konfiguriert wurde.
+   
+    3.10) Wie optimiere ich die Datenbankmaschine für bessere Leistung?
+    
+   Sicherlich können Indizes Abfragen beschleunigen. Der explain Befehl
+   erlaubt Dir zu sehen, wie PostgreSQL Deine Abfrage interpretiert und
+   welche Indizes benutzt werden.
+   
+   Wenn Du eine Menge INSERTs machst, überprüfe, ob Du sie als
+   Stapelverarbeitung mit dem copy-Befehl abarbeiten kannst. Das ist viel
+   schneller als einzelne INSERTs. Zweitens, SQL-Statements, die nicht in
+   einem begin work/commit Transaktions-Block eingegeben werden, werden
+   als eigene Transaktion behandelt. Überprüfe, ob die Statements nicht
+   in einen einzelnen Transaktions-Block zusammengefasst werden können.
+   Das reduziert den Transaktions-Overhead. Du kannst auch erwägen,
+   Indizes zu löschen und neu zu erstellen, wenn Du große Datenmengen
+   änderst.
+   
+   Es gibt verschiedene Tuning-Maßnahmen, die man ergreifen kann. Du
+   kannst fsync() abschalten, indem Du beim Starten des postmasters die
+   Optionen -o -F angibst. Das hindert fsync()´s daran, nach jeder
+   Transaktion die Daten auf die Platte zu schreiben. Du kannst auch mit
+   der -B Option des postmasters die Anzahl der Shared Memory Puffer für
+   den Backend-Prozess erhöhen. Falls Du diesen Wert zu hoch einstellst,
+   kann es sein, daß der postmaster nicht startet, weil der Shared Memory
+   Speicherplatz Deines Kernels aufgebraucht wird. Jeder Puffer ist 8 kB
+   groß und es gibt standardmäßig 64 Puffer.
+   
+   Du kannst ebenfalls die -S Option des Backends nutzen, um die Größe
+   des Speicherplatzes für temporäres Sortieren zu erhöhen. Der -S Wert
+   wird in Kilobyte gemessen und ist standardmäßig auf 512 kB festgelegt.
+   Es wäre jedoch unklug, den Wert zu hoch anzugeben, da ein Query
+   möglicherweise Speicherplatzmangel verursacht, wenn es viele
+   gleichzeitige Sortierungen durchführen muß.
+   
+   Der cluster Befehl kann benutzt werden, um Daten in Basistabellen zu
+   gruppieren, so daß sie auf einen Index zusammengebracht werden. Siehe
+   auch die cluster(l) Man-Page für weitere Details.
+   
+    3.11) Welche Debugging/Fehlersuch-Hilfsmittel sind für PostgreSQL
+    verfügbar?
+    
+   PostgreSQL hat einige Möglichkeiten, Statusinformationen zu berichten,
+   die nützlich für die Fehlersuche sein können.
+   
+   Erstens, wenn beim configure-Lauf die Option --enable-cassert
+   angegeben wurde, verfolgen viele assert()´s den Fortschritt des
+   Backends und halten das Programm an, wenn etwas Unerwartetes passiert.
+   
+   Postmaster und postgres, haben mehrere Fehlersuch-Optionen zur
+   Verfügung. Stelle zuerst sicher, daß Du den Standard-Output und
+   Fehlerkanal in eine Datei umleitest, wenn Du den postmaster startest,
+   :
+
+        cd /usr/local/pgsql
+        ./bin/postmaster >server.log 2>&1 &
+
+   Das erzeugt eine server.log Datei im PostgreSQL-Verzeichnis. Diese
+   Datei enthält nützliche Informationen über Probleme oder Fehler, die
+   im Server aufgetreten sind. Postmaster hat eine -d Option, die noch
+   detailliertere Informationen liefert. Zur -d Option wird eine Nummer
+   angegeben, die den Debug-Level - also die Menge der berichteten
+   Information - angibt. Achtung, hohe Debug-Level erzeugen schnell große
+   Logdateien!
+   
+   Du kannst tatsächlich das Postgres-Backend auf der Kommandozeile
+   laufen lassen und SQL-Statements direkt eingeben. Diese Vorgehensweise
+   wird aber nur zur Fehlersuche empfohlen. Beachte, daß ein
+   Zeilenumbruch das SQL-Statement beendet, nicht das Semikolon. Wenn Du
+   PostgreSQL mit Debugging-Symbolen kompiliert hast, kannst Du einen
+   Debugger benutzen, um zu beobachten, was passiert. Da das Backend
+   nicht vom postmaster gestartet wurde, läuft es nicht in der gleichen
+   Umgebung und deshalb können einige locking/backend Operationen nicht
+   reproduziert werden. Einige Betriebssysteme können sich an einen
+   Backend-Prozess direkt anhängen, um Probleme zu diagnostizieren.
+   
+   Das Programm postgres hat -s, -A und -t Optionen, die bei der
+   Fehlersuche und Leistungsmessung sehr nützlich sein können. Du kannst
+   das Paket auch mit Profiling kompilieren, um zu sehen, welche
+   Funktionen wieviel Ausführungszeit beanspruchen. Das Backend Profil
+   wird im Verzeichnis pgsql/data/base/dbname abgelegt. Das Client Profil
+   wird in das aktuelle Verzeichnis abgelegt.
+   
+    3.12) Ich bekomme die Meldung "Sorry, too many clients", wenn ich eine
+    Verbindung versuche. Warum?
+    
+   Du mußt die Grenze des postmasters, die festlegt, wieviele
+   gleichzeitige Backend-Prozesse gestartet werden können, hochsetzen.
+   
+   In Postgres 6.5 sind das normalerweise 32 Prozesse. Du kannst diesen
+   Wert dadurch erhöhen, daß Du den postmaster mit einem entsprechenden
+   -N Wert neu startest. In der Standardkonfiguration kannst Du -N auf
+   maximal 1024 setzen. Falls Du mehr brauchst, erhöhe MAXBACKENDS in
+   include/config.h und kompiliere das Paket neu. Du kannst den
+   Standardwert von -N während der Konfiguration setzen, indem Du
+   --with-maxbackends angibst. Anmerkung: Falls Du -N größer als 32
+   einstellst, solltest Du -B auf einen Wert, höher als 64 setzen. Für
+   eine hohe Anzahl an Backend-Prozessen, solltest Du möglicherweise
+   einige Unix-Kernel Parameter ebenfalls erhöhen. Folgendes Parameter
+   solltest Du prüfen: die Maximalgröße der Shared Memory Blocks SHMMAX,
+   die Maximalanzahl der Semaphoren SEMMNS und SEMMNI, die maximale
+   Anzahl von Prozessen NPROC, die maximale Anzahl von Prozessen pro User
+   MAXUPRC, und die Maximalzahl der geöffneten Dateien NFILE und NINODE.
+   Der Grund für die Begrenzung der erlaubten Backend-Prozesse liegt
+   darin, daß verhindert werden soll, daß das System seine freien
+   Ressourcen aufbraucht.
+   
+   In den Postgres-Versionen vor 6.5 war die maximale Anzahl von Backends
+   auf 64 festgelegt und eine Änderung setzte eine erneute Kompilierung
+   voraus, bei der die Konstante MaxBackendId in
+   include/storage/sinvaladt.h. entsprechend angepasst wurde.
+   
+    3.13) Was sind die pg_psort.XXX Dateien in meinem Datenbank-Verzeichnis?
+    
+   Dies sind temporäre Dateien, die durch den Query-Ausführer erzeugt
+   werden. Wenn zum Beispiel eine Sortierung durchgeführt werden muß, um
+   ein ORDER BY auszuführen, und diese Sortierung mehr Platz benötigt,
+   als mit dem Backend-Parameter -S erlaubt wurde, dann werden diese
+   temporären Dateien erzeugt, um die Daten dort zu halten.
+   
+   Die temporären Dateien sollten automatisch gelöscht werden, falls das
+   Backend jedoch während einer Sortierung abstürzt, bleiben sie
+   erhalten. Wenn zu diesem Zeitpunkt keine Transaktion läuft, kannst Du
+   die pg_tempNNN.NN Dateien ohne Gefahr löschen.
+   
+    3.14) Wie richte ich eine Benutzergruppe (pg_group) ein?
+    
+   Zur Zeit gibt es keine einfache Schnittstelle, um Benutzergruppen
+   einzurichten Du mußt explizit die pg_group-Tabelle mittels
+   INSERT/UPDATE modifizieren. Zum Beispiel:
+
+        jolly=> INSERT into pg_group (groname, grosysid, grolist)
+        jolly=>     values ('posthackers', '1234', '{5443, 8261}');
+        INSERT 548224
+        jolly=> grant INSERT on foo to group posthackers;
+        CHANGE
+        jolly=>
+
+   Die Felder in pg_group sind:
+     * groname: der Gruppenname. Dieser Name sollte rein alphanumerisch
+       sein. Keine Unterstriche oder andere Punktionen
+     * grosysid: die Gruppen-ID. Die Gruppen-ID ist ein int4-Feld. Sie
+       sollte eindeutig für jede Gruppe sein.
+     * grolist: die Liste der pg_user IDs, die zu dieser Gruppe gehören.
+       (int4[].)
+     _________________________________________________________________
+   
+                             Fragen zum Betrieb
+                                      
+    4.1) Das System scheint Kommata, Dezimalpunkte und Datumsformate
+    durcheinanderzubringen.
+    
+   Überprüfe die Konfiguration Deiner Locale-Einstellung. PostgreSQL
+   benutzt die Einstellungen des jeweiligen Users und nicht die des
+   postmaster Prozesses. Es gibt postgres und psql SET Befehle, um das
+   Datumsformat zu kontrollieren. Setzte diese entsprechend Deiner
+   Arbeitsumgebung.
+   
+    4.2) Was ist der genauer Unterschied zwischen Binary Cursors und Normal
+    Cursors?
+    
+   Vgl. die declare Man-Page für eine Beschreibung.
+   
+    4.3) Wie wähle ich per SELECT nur die ersten paar Zeilen in einem Query
+    aus?
+    
+   Vgl. die fetch Man-Page, oder benutze SELECT ... LIMIT....
+   
+   Das verhindert nur, daß alle Ergebniszeilen zum Client übermittelt
+   werden. Die komplette Abfrage muß abgearbeitet werden, selbst wenn Du
+   nur die ersten paar Zeilen haben möchtest. Ziehe ein Query in
+   Erwägung, das ein ORDER BY benutzt. Es gibt keine Möglichkeit Zeilen
+   zurückzuliefern, bevor nicht die komplette Abfrage abgearbeitet ist.
+   
+    4.4) Wie bekomme ich eine Liste der Tabellen oder anderen Dingen, die ich
+    in psql sehen kann
+    
+   Du kannst Dir die Datei pgsql/src/bin/psql/psql.c mit dem Quellcode
+   für psql ansehen. Sie enthält die SQL-Befehle, die die
+   Backslash-Kommandos (\) ausführen. Seit Postgres 6.5 kannst Du psql
+   auch mit der -E Option starten. Dadurch gibt psql die Queries aus, die
+   es bei der Ausführung der Befehle benutzt.
+   
+    4.5) Wie entferne ich eine Spalte von einer Tabelle?
+    
+   Wir unterstützen alter table drop column nicht, aber mache es so:
+
+        SELECT ...  -- wähle alle Spalten außer die, die Du entfernen willst
+        INTO TABLE new_table
+        FROM old_table;
+        DROP TABLE old_table;
+        ALTER TABLE new_table RENAME TO old_table;
+
+    4.6) Was ist die Maximalgröße für eine Zeile, eine Tabelle, eine Datenbank?
+    
+   Zeilen sind auf 8 kB begrenzt, aber das kann geändert werden, indem Du
+   in include/config.h die Konstante BLCKSZ änderst. Um Attribute mit
+   mehr als 8 kB zu nutzen, kannst Du auch das "Large Object Interface"
+   benutzen.
+   
+   Zeilen überschreiten keine 8 kB-Grenzen. Eine Zeile mit 5 kB wird 8 kB
+   Speicherplatz benötigen.
+   
+   Tabellen- und Datenbankgrößen haben keine Grenzen. Es gibt viele
+   Datenbanken mit zig Gigabytes und wahrscheinlich einige mit hunderten
+   Gigabyte.
+   
+    4.7) Wieviel Plattenplatz benötigt eine Datenbank zur Speicherung einer
+    Datendatei mit zeilenweisen Datensätzen?
+    
+   Eine Postgres Datenbank kann ungefähr sechseinhalb mal soviel Platz
+   brauchen, wie eine einfache Textdatei.
+   
+   Betrachten wir eine Datei mit 300.000 Zeilen, mit jeweil zwei Integern
+   pro Zeile. Die einfache Textdatei benötigt 2,4 MB Speicherplatz. Die
+   Größe der Postgres Datenbankdatei, die diese Daten enthält, liegt
+   ungefähr bei 14 MB.
+    36 Bytes: jeder Zeilenkopf (ungefähr)
+   + 8 Bytes: zwei Integer-Felder @ jedes 4 Bytes
+   + 4 Bytes: Zeiger auf den Datensatz
+   -----------------------------------------------
+    48 Bytes pro Zeile
+
+   Die Größe einer Datenseite in PostgreSQL ist 8192 Bytes (8 KB), also:
+
+   8192 Bytes pro Seite
+   ---------------------   =  171 Zeilen pro Seite (aufgerundet)
+     48 Bytes pro Zeile
+
+   300000 Datenzeilen
+   -----------------------  =  1755 Datenbankseiten
+      171 Zeilen pro Seite
+
+1755 Datenbankseiten * 8192 Bytes pro Seite  =  14,376,960 Bytes (14MB)
+
+   Indizes haben nicht einen solchen Overhead, sie beinhalten jedoch die
+   Daten, die sie indizieren und können so auch sehr groß werden.
+   
+    4.8) Wie finde ich heraus, welche Indizes oder Operationen in der Datenbank
+    definiert sind?
+    
+   psql hat eine Vielzahl von Backslash Befehlen, um solche Informationen
+   zu zeigen. Benutze \?, um sie zu sehen.
+   
+   Schaue Dir auch die Datei pgsql/src/tutorial/syscat.source. an. Sie
+   illustriert viele der SELECTs, die benötigt werden, um diese
+   Informationen von der Datenbank-Systemtabelle zu erhalten
+   
+    4.9) Meine Queries sind langsam oder nutzen die Indizes nicht. Warum?
+    
+   PostgeSQL pflegt automatische Statistiken nicht. Um die Statistiken zu
+   aktualisieren, mußt Du ein explizites vacuum eingeben. Nach dieser
+   Aktualisierung weiß der Optimierer wieviele Zeilen in der Tabelle sind
+   und kann besser entscheiden, ob Indizes benutzt werden sollten. Der
+   Optimierer benutzt keine Indizes, wenn die Tabelle klein ist, weil ein
+   sequentieller Suchlauf dann schneller sein würde.
+   
+   Benutze den Befehl vacuum analyze für die spaltenspezifische
+   Optimierung. Vacuum analyze ist für komplexe Multi-Join-Abfragen
+   wichtig, damit der Optimierer die Anzahl der Zeilen von jeder Tabelle
+   schätzen und dann die passende Join-Reihenfolge wählen kann. Das
+   Backend verfolgt die Spaltenstatistik nicht selbst, so daß vacuum
+   analyze regelmäßig aufgerufen werden sollte.
+   
+   Indizes werden nicht für ORDER BY Operationen benutzt.
+   
+   Bei der Nutzung von Wildcard-Operatoren wie LIKE oder ~,  können
+   Indizes nur benutzt werden, wenn die Suche mit dem Anfang eines
+   Strings startet. Um also Indizes zu nutzen, sollten LIKE-Suchen nicht
+   mit %, und ~  beginnen (Die Sucheparameter regulärer Ausdrücke sollten
+   mit ^.  beginnen.
+   
+    4.10) Auf welche Weise kann ich sehen, wie der Query-Optimierer meine
+    Abfrage auswertet?
+    
+   Vgl. die EXPLAIN Man-Page.
+   
+    4.11) Was ist ein R-Tree Index?
+    
+   Ein R-Tree Index wird benutzt, um räumliche Daten zu indizieren. Ein
+   Hash-Index kann nicht für Bereichssuchen genutzt werden. Ein B-Tree
+   Index kann nur für Bereichssuchen in eindimensionalen Daten genutzt
+   werden. R-Trees können multi-dimensionale Daten abhandeln. Ein
+   Beispiel: Wenn ein R-Tree Index auf ein Attribut vom Typ POINT
+   gebildet wird, dann kann das System Abfragen wie z.B. "Zeige alle
+   Punkte, die sich in einem umgebenden Rechteck befinden" effizienter
+   beantworten.
+   
+   Die kanonische Veröffentlichung , die das originale R-Tree Design
+   beschreibt ist:
+   
+   Guttman, A. "R-Trees: A Dynamic Index Structure for Spatial
+   Searching." Proc of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data,
+   45-57.
+   
+   Du kannst dieses Werk ebenfalls in Stonebraker's "Readings in Database
+   Systems" finden.
+   
+   Die eingebauten R-Trees können Polygone und Rechtecke verarbeiten.
+   Theoretisch können R-Trees auf eine hohe Anzahl von Dimensionen
+   erweitert werden. Praktisch bedingt diese Erweiterung eine Menge
+   Arbeit und wir haben derzeit keinerlei Dokumentation darüber, wie das
+   zu machen wäre.
+   
+    4.12) Was ist "Genetic Query Optimization"?
+    
+   Das GEQO-Modul in PostgreSQL soll dazu dienen, das Optimierungsproblem
+   beim Joining vieler Tabellen auf der Basis genetischer Algorithmen
+   (GA) zu lösen. Es erlaubt die Behandlung von großen Join-Queries ohne
+   erschöpfende Suche.
+   
+   Für weitere Informationen siehe die Dokumentation.
+   
+    4.13) Wie verfahre ich bei der Suche mit regulären Ausdrücken und bei einer
+    Suche mit Ignorierung der Groß- und Kleinschreibweisen?
+    
+   ~ und ~*  sind wahrscheinlich das, was Du willst. Vgl. psql's \do
+   Befehl.
+   
+    4.14) Wie ermittle ich in einem Query, daß ein Feld NULL ist?
+    
+   Du testest die Spalte mit IS NULL und IS NOT NULL.
+   
+    4.15) Was ist der Unterschied zwischen den verschiedenen CHAR-Typen?
+    
+Typ             interner Name   Bemerkungen
+--------------------------------------------------
+CHAR            char            1 Zeichen
+CHAR(#)         bpchar          mit Leerzeichen gefüllt bis zur angegebenen Län
+ge
+VARCHAR(#)      varchar         Die Größe legt die Maximallänge fest, kein Ausf
+üllen mit Leerzeichen
+TEXT            text            Die Länge wird nur durch die maximale Zeilenlän
+ge beschränkt
+BYTEA           bytea           Bytearray mit variabler Länge
+
+   Du mußt die internen Namen benutzen, wenn Du interne Operationen
+   durchführen willst.
+   
+   Die letzten vier Typen sind "varlena"-Typen (d.h. die ersten vier
+   Bytes geben die Länge an, gefolgt von den Daten). CHAR(#) belegt die
+   maximale Anzahl von Bytes, unabhängig davon, wieviele Daten im Feld
+   gespeichert werden. TEXT, VARCHAR(#) und BYTEA haben alle eine
+   variable Länge auf dem Datenträger, deshalb gibt es einen leichten
+   Geschwindigkeitsnachteil bei der Nutzung dieser Typen. Genauer, der
+   Nachteil gilt für den Zugriff auf alle Spalten nach der ersten Spalte
+   dieses Typs.
+   
+    4.16) Wie erzeuge ich ein serielles Feld mit automatischer Erhöhung des
+    Inhalts?
+    
+   PostgreSQL unterstützt einen SERIAL Datentyp. Er erzeugt automatisch
+   eine Sequenz und einen Index auf die Spalte. Siehe die create_sequence
+   Man-Page für weitere Informationen über Sequenzen. Du kannst aber auch
+   das Oid Feld jeder Zeile als eindeutigen Wert nutzen. Jedoch mußt Du,
+   falls Du Deine Datenbank einmal komplett ausgeben und wieder einlesen
+   willst, die pg_dump's -o oder die copy with oids Option benutzen, um
+   die Oids zu retten.
+   
+    4.17) Was ist ein Oid? Was ist ein Tid?
+    
+   Oids sind PostgreSQLs Antwort auf eindeutige Zeilen-IDs. Jede Zeile,
+   die in PostgreSQL erzeugt wird, bekommt eine eindeutige Oid. Alle
+   Oids, die während initdb erzeugt werden, sind kleiner als 16384 (nach
+   backend/access/transam.h). Alle Oids, die durch den Benutzer erzeugt
+   werden, sind gleich oder größer als dieser Wert. Standardmäßig sind
+   all diese Oids nicht nur innerhalb einer Tabelle oder Datenbank,
+   sondern in der gesamten PostgreSQL Installation eindeutig.
+   
+   PostgreSQL benutzt Oids in seinen internen Systemtabellen, um Zeilen
+   zwischen den Tabellen zu verbinden. Diese Oids können zur
+   Identifikation spezifischer Benutzerzeilen und in Joins genutzt
+   werden. Es wird empfohlen, den Spaltentyp OID zu nutzen, um Oids-Werte
+   zu speichern. Siehe die sql(l) Man-Page, um die anderen internen
+   Spalten kennenzulernen. Du kannst einen Index auf ein Oid-Feld
+   erzeugen, um schnelleren Zugriff zu erreichen.
+   
+   Oids werden allen neuen Zeilen von einem zentralen Bereich, der von
+   allen Datenbanken genutzt wird, zugewiesen. Es gibt keinen Grund,
+   warum Du nicht die Oid ändern, oder eine Kopie der Tabelle mit den
+   originalen Oids anlegen könntest.
+        CREATE TABLE new_table(old_oid oid, mycol int);
+        SELECT INTO new SELECT old_oid, mycol FROM old;
+        COPY new TO '/tmp/pgtable';
+        DELETE FROM new;
+        COPY new WITH OIDS FROM '/tmp/pgtable';
+
+   Tids werden genutzt, um spezifische physische Zeilen mit Block und
+   Versatzwert zu identifizieren. Tids ändern sich, wenn Zeilen geändert
+   oder neu geladen werden. Sie werden von Index-Einträgen genutzt, um
+   die Zeilen physisch zu adressieren.
+   
+    4.18) Was ist die Bedeutung der verschiedenen Ausdrücke, die in PostgreSQL
+    benutzt werden (z.B. attribute, class,...)?
+    
+   Einige der Quelltexte und die ältere Dokumentation nutzen allgemeine
+   Begriffe. Hier sind einige aufgeführt:
+     * row, record, tuple
+     * attribute, field, column
+     * table, class
+     * retrieve, SELECT
+     * replace, UPDATE
+     * append, INSERT
+     * oid, serial value
+     * portal, cursor
+     * range variable, table name, table alias
+       
+    4.19) Wieso bekomme ich einen Fehler: "FATAL: palloc failure: memory
+    exhausted?"
+    
+   Möglicherweise ist der virtuelle Speicher verbraucht oder Dein Kernel
+   hat eine niedrige Grenze für bestimmte Ressourcen. Versuche dieses,
+   bevor Du den postmaster startest:
+
+        ulimit -d 65536
+        limit datasize 64m
+
+   Je nach Deiner eingesetzten Shell mag nur einer dieser Befehle
+   funktionieren. Aber es wird die Grenze des Datensegments für Prozesse
+   erhöhen und vielleicht läuft so Dein Query durch. Dieser Befehl wirkt
+   sich auf den aktuellen Prozess und alle seine Unterprozesse aus, die
+   nach diesem Befehl gestartet werden. Falls Du ein Problem mit dem
+   SQL-CLient hast, weil das Backend zu viele Daten zurückliefert,
+   versuche diesen Befehl, bevor Du den SQL-Client startest.
+   
+    4.20) Wie kann ich feststellen, welche PostgreSQL-Version ich laufen habe?
+    
+   Gib in psql SELECT version(); ein
+   
+    4.21) Beim Arbeiten mit "large-object" kommt die Fehlermeldung: invalid
+    large obj descriptor. Warum?
+    
+   Du solltest die Befehle BEGIN WORK und COMMIT bei jeden Gebrauch von
+   Large Objects benutzen. Also um lo_open ... lo_close.
+   
+   Die Dokumentation hat schon immer darauf hingewiesen, daß lo_open in
+   eine Transaktion eingebunden werden muß, aber die PostgreSQL Versionen
+   vor 6.5 haben diese Regel nicht erzwungen. Statt dessen scheiterten
+   sie gelegentlich, wenn Du diese Regel gebrochen hattest.
+   
+   Das aktuelle PostgreSQL erzwingt diese Regel, indem es die Handles der
+   Large Objects beim COMMIT der Transaktion schließt, was sofort nach
+   dem lo_open passiert, wenn Du nicht innerhalb einer Transaktion bist.
+   So führt der erste Versuch, etwas mit dem Large Object zu machen zu
+   einem invalid large obj descriptor. Also wird der Code, der bisher
+   benutzt wurde, nun diese Fehlermeldung erzeugen, wenn Du keine
+   Transaktionen benutzt hast.
+   
+   Falls Du eine Client-Schnittstelle wie ODBC benutzt, kann es sein, daß
+   Du auto-commit off setzen mußt.
+     _________________________________________________________________
+   
+                            PostgreSQL erweitern
+                                      
+    5.1) Ich habe eine benutzerdefinierte Funktion geschrieben. Wenn ich sie in
+    psql aufrufe, kommt ein core dump. Warum?
+    
+   Dieses Problem kann viele Ursachen haben. Teste deine Funktion zuerst
+   in einem Extra-Testprogramm. Stelle außerdem sicher, daß Deine
+   Funktion nicht etwa elog-Nachrichten sendet, wenn der Client Daten
+   erwartet, wie in den type_in() oder type_out() Funktionen
+   
+    5.2) Was bedeutet die Meldung: NOTICE:PortalHeapMemoryFree: 0x402251d0 not
+    in alloc set!?
+    
+   Du pfreest etwas, das Du nicht palloct hast! Stelle sicher, daß Du
+   nicht malloc/free und palloc/pfree durcheinanderwürfelst.
+   
+    5.3) Wie kann ich ein paar elegante neue Feldtypen und Funktionen zu
+    PostgreSQL beitragen?
+    
+   Sende Deine Erweiterungen zur pgsql-hackers Mailing Liste, und sie
+   werden eventuell im contrib/ Verzeichnis enden.
+   
+    5.4) Wie schreibe ich eine Funktion in C, die einen Tuple zurückliefert?
+    
+   Das erfordert derart extreme Genialität, daß die Autoren es niemals
+   versucht haben, obwohl es im Prinzip zu machen wäre.
+   
+    5.5) Ich habe eine der Quellendateien geändert. Warum macht sich die
+    Änderung beim erneuten Compilerlauf nicht bemerkbar?
+    
+   Die Makefiles finden nicht die richtigen Abhängigkeiten. Du mußt ein
+   make clean und dann ein weiteres make machen.
diff --git a/doc/FAQ_linux_german b/doc/FAQ_linux_german
new file mode 100644 (file)
index 0000000..5f95280
--- /dev/null
@@ -0,0 +1,752 @@
+
+   Häufig gestellte Fragen (FAQ) zu PostgreSQL >= V6.1, Linux-spezifisch
+                                      
+                 Bitte Zusammen mit der normalen FAQ lesen!
+     _________________________________________________________________
+   
+   Letztes Update des Originals: Tue Aug 10 11:15:00 BST 1999
+   Original-FAQ gepflegt durch: Andrew C.R. Martin
+   (martin@biochem.ucl.ac.uk)
+   Original Autor: Andrew C.R. Martin (martin@biochem.ucl.ac.uk)
+   
+   Letztes Update der Übersetzung: Mo, 23. August 1999, 10:00 CEST
+   Übersetzer: Karsten Schulz (schulz@linux-systemhaus.de)
+     _________________________________________________________________
+   
+   Änderungen in dieser Version (* = geändert, + = neu, - = entfernt)
+   
+   +3.11) Wieso bekomme ich einen Fehler wie: IpcMemoryCreate: shmget
+   failed (Permission denied)?
+   
+Diese Datei ist ungefähr wie folgt unterteilt:
+
+   1.*) PostgreSQL kompilieren
+   2.*) Hilfs- und Zusatzprogramme kompilieren
+   3.*) Laufzeit Probleme
+   
+Beantwortete Fragen:
+
+   
+   
+  PostgreSQL kompilieren
+  
+   1.1) Welche Anpassungen müssen in src/Makefile.global oder
+   src/Makefile.custom gemacht werden und gibt es weitere notwendige
+   Änderungen?
+   1.2) Warum habe ich Probleme mit der fehlenden Bibliothek libreadline?
+   1.3) [REDHAT] Warum habe ich Probleme mit der fehlenden Bibliothek
+   libdl und der fehlenden dlfcn.h?
+   1.4) [SLACKWARE 3.1] Warum habe ich Probleme mit der fehlenden
+   Bibliothek libdl und der fehlenden dlfcn.h?
+   1.5) Die Kompilierung des Backends schlägt mit der Meldung fehl, daß
+   die Include-Datei dlfcn.h fehlen würde.
+   1.6) GCC meldet, daß er die Option -fpic ignorieren würde.
+   1.7) Ich bekomme Warnungen, wie: warning: cast from pointer to integer
+   of different size
+   1.8) [SuSE-Linux 4.2-5.3] Wo sind curses und termcap?
+   1.9) Warum bekomme ich Probleme mit ld.so?
+   1.10) Wieso bekomme ich yy_flush_buffer undefined Fehler?
+   1.11) Wie kompiliere ich PostgreSQL auf einem a.out System?
+   1.12) Warum scheitert make mit der Meldung:
+   yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y make:
+   /usr/bin/make: cannot execute binary file
+   1.13) Was sind die Bezüge in der Bibliothek X11_LIB zu libsocket und
+   libnsl in der Datei src/Makefile.global?
+   1.14) [DEBIAN] Wo ist die Bibliothek libtermcap?
+   1.15) [REDHAT] Kann ich PostgreSQL als RPM-Archiv bekommen?
+   1.16) Während ich versuche eine Entwickler-Version unter Linux zu
+   kompilieren, bricht der Vorgang mit folgender Fehlermeldung ab:
+   In file included from /usr/include/sys/sem.h:8,
+   from ipc.c:37:
+   /usr/include/asm/bitops.h:32: warning: no previous prototype for
+   Set_bit'
+   ....
+   make: *** [ipc.o] Error 1
+   1.17) Beim Kompilieren von PostgreSQL bricht der gcc mit einer Signal
+   11 Meldung ab.
+   1.18) Kann ich Version 6.1.1 unter MkLinux installieren?
+   1.19) Warum stoppt make oder bricht sonstwie ab?
+   1.20) Wie kann ich für die Prozessoren 486 oder Pentium optimieren?
+   1.21) Wieso bekomme ich seltsame Ergebnisse beim Drucken von Zeiten
+   (z.B. beim Regressionstest 'timespan')?
+   1.22) Warum bekomme ich keine shared libraries für libpq, wenn ich
+   Version 6.3.2 kompiliere?
+   1.23) Warum scheitert der Kompilierungslauf mit Nachrichten, daß
+   F_BOOLIN, F_BOOLOUT und F_BYTEAIN nicht deklariert seien?
+   
+   
+  Hilfs- und Zusatzprogramme kompilieren
+  
+   2.1) Der Linker findet die Bibliothek libX11 nicht, wenn pgtclsh
+   kompiliert werden soll.
+   
+   
+  Laufzeit Probleme
+  
+   3.1) Ich bekomme die Fehlermeldung _fUnKy_POSTPORT_sTuFf_ undefined,
+   wenn Skripts wie createuser laufen.
+   3.2) Nachdem ich postmaster starte, meldet das System Bad system call
+   (Core dumped)
+   3.3) Wenn ich versuche, den Postmaster zu starten, bekomme ich eine
+   Fehlermeldung wie:
+   Failed Assertion("!(file != 0):(null)", File:
+   "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)
+   !(file != 0) (0)
+   initdb: could not create template database
+   initdb: cleaning up.
+   3.4) Warum funktioniert createuser nicht?
+   3.5) Wieso bekomme ich einen Fehler, wie:
+   IpcMemoryCreate: memKey=155356396 , size=760632 ,
+   permission=384IpcMemoryCreate: shmget(..., create, ...)
+   failed: Invalid argument
+   3.6) Wieso scheitert der Aufruf von psql mit: psql: can't load library
+   'libpq.so.1
+   3.7) Andere seltsame Verhaltensweisen
+   3.8) Wenn PostgreSQL beim Systemhalt lief, führt Linux beim Neustart
+   jedesmal einen Filesystemcheck (fsck) durch
+   3.9) Warum dauert Query 32 in den RegressionsTests so lange?
+   3.10) Warum bekomme ich lustige Rundungsergebnisse in einigen
+   Datums/Zeit-Berechnungen, wie:
+   select '4 hours'::timespan;
+   liefert '3 hours 59 minutes 60 seconds'?
+   +3.11) Wieso bekomme ich einen Fehler wie: IpcMemoryCreate: shmget
+   failed (Permission denied)?
+   
+  Abschnitt 1: PostgreSQL kompilieren
+  
+    1.1) Welche Anpassungen müssen in src/Makefile.global oder
+    src/Makefile.custom gemacht werden und gibt es weitere notwendige
+    Änderungen?
+    
+   Änderungen an den Makefiles werden am einfachsten dadurch gemacht,
+   indem das customize shellscript im src-Verzeichnis aufgerufen wird,
+   das ein Makefile.custom erzeugt.
+   
+   Die einzige andere Änderung, die evtl. zu machen wäre, ist Flex zu
+   ersetzen, wenn Du die Version 2.5.3 hast. Diese Version hat einen
+   Fehler, der sich durch das Scheitern des createuser-Programms äußert.
+   (siehe dazu auch Frage 3.4).
+   
+   Falls Du die Makefiles manuell änderst, musst Du die folgende Variable
+   setzen:
+PORTNAME= linux
+
+   Du musst auch die folgende Variable ändern, damit sie auf Deine
+   Installation passt:
+POSTGRESDIR
+
+   Falls Du die USE_TCL-Option aktivierst, musst Du folgende Variablen
+   setzen:
+TCL_INCDIR=
+TCL_LIBDIR=
+TCL_LIB=
+TK_INCDIR=
+TK_LIBDIR=
+TK_LIB=
+X11_INCDIR=
+X11_LIBDIR=
+X11_LIB=
+
+   Auf meinem Slackware 3.0 System sind das:
+TCL_INCDIR=     /usr/include/tcl
+TCL_LIBDIR=     /usr/lib
+TCL_LIB=        -ltcl
+TK_INCDIR=      /usr/include/tcl
+TK_LIBDIR=      /usr/lib
+TK_LIB=         -ltk
+X11_INCDIR=     /usr/include/X11
+X11_LIBDIR=     /usr/X386/lib
+X11_LIB=        -lX11
+
+   Du solltest auch alle weiteren Änderungen durchführen, die in der
+   Datei INSTALL und in Makefile.global dokumentiert sind.
+   
+    1.2) Warum habe ich Probleme mit der fehlenden Bibliothek libreadline?
+    
+   Linux Systeme kommen in der Regel nicht mit einer installierten GNU
+   readline Bibliothek. Stelle entweder sicher, daß Du die
+   readline-Optionen in src/Makefile.global oder src/Makefile.custom
+   nicht aktivierst oder installiere die GNU readline Bibliothek.
+   Hinweis: Debian Linux (wie FreeBSD) kommt mit einer installierten GNU
+   readline Bibliothek.
+   
+    1.3) [REDHAT] Warum habe ich Probleme mit der fehlenden Bibliothek libdl
+    und der fehlenden dlfcn.h?
+    
+   Das Problem erscheint dadurch, daß in der letzten Phase des
+   Kompilierungsvorgangs Funktionen wie dlopen(), dlclose(), etc. nicht
+   gelinkt werden können.
+   
+   Die libdl Bibliothek wird zum dynamischen Linken von
+   Benutzerfunktionen zur Laufzeit benutzt. Aus irgendwelchen Gründen
+   wurde diese Bibliothek mit der RedHat-Distribution nicht ausgeliefert.
+   Anscheinend ist dies in der letzten RedHat 4.0 (Colgate) geändert
+   worden.
+   
+   RedHat hat nun ein neues ld.so RPM-Archiv auf ihrem ftp-Server. Hole
+   Dir einfach:
+   
+   ftp://ftp.redhat.com/pub/redhat/devel/i386/RedHat/RPMS/ld.so-1.7.14-4.
+   i386.rpm
+   
+   Installiere das RPM-Archiv wie üblich und gut ist!
+   
+   Hinweis: Du mußt configure und make clean nach der Installation der
+   Bibliothek und vor dem erneuten Kompilieren laufen lassen.
+   
+   Es gab einen Bericht über ein zerstörtes System, weil Programme auf
+   diese Bibliothek während des Updates zugegriffen haben (alles in allem
+   nicht weiter überraschend). Konsequenterweise ist es eine gute Idee,
+   das System vor der Installation zu rebooten, um so wenige Programme
+   wie möglich während des Updates laufen zu haben. In den
+   Single-User-Mode zu gehen ist wahrscheinlich auch eine gute Idee!
+   
+   Wenn Du lieber den harten Weg gehen willst, kannst Du die Bibliothek
+   und die Header-Dateien von:
+   
+   ftp://tsx-11.mit.edu/pub/linux/packages/GCC/ld.so-1.7.14.tar.gz
+   
+   holen. Alternativ findest Du vorkompilierte Binaries in
+   distributions/debian/buzz/binary-i386/base/ld.so-1.7.14-4.deb auf dem
+   gleichen ftp-Server oder folge den Instruktionen bei Frage 1.2, die
+   den gleichen Fehler für Slackware 3.1 behandelt.
+   
+   Mache es aber nur auf diese Weise, wenn Du weißt, was Du tust!
+   
+    1.4) [SLACKWARE 3.1] Warum habe ich Probleme mit der fehlenden Bibliothek
+    libdl und der fehlenden dlfcn.h?
+    
+   Das Problem erscheint dadurch, daß in der letzten Phase des
+   Kompilierungsvorgangs Funktionen wie dlopen(), dlclose(), etc. nicht
+   gelinkt werden können.
+   
+   Siehe die Antwort zu Frage 1.3.
+   
+   Slackware bis Version 3.0 war mit dieser Bibliothek und der
+   Include-Datei ausgestattet und ab späten 3.1er-Versionen scheinen sie
+   auch wieder da zu sein. Aber in frühen 3.1er-Versionen (vor dem
+   09.09.96) fehlten sie und es wurden viele CD-ROMs von diesen ersten
+   3.1.er-Versionen gepresst.
+   
+   Es gab einen Bericht über ein zerstörtes System, weil Programme auf
+   diese Bibliothek während des Updates zugegriffen haben (alles in allem
+   nicht weiter überraschend). Konsequenterweise ist es eine gute Idee,
+   das System vor der Installation zu rebooten, um so wenige Programme
+   wie möglich während des Updates laufen zu haben. In den
+   Single-User-Mode zu gehen ist wahrscheinlich auch eine gute Idee!
+   
+   Der einfachste Weg, den Fehler zu beseitigen ist, die Datei ldso.tgz
+   von der a4-Diskette einer aktuelleren Slackware zu nehmen, diese Datei
+   im Wurzelverzeichnis (/) zu entpacken und dann ein
+sh install/doinst.sh
+
+   durchzuführen. Danach ein
+ldconfig
+
+   durchführen.
+   
+   Hinweis: Du mußt configure und make clean nach der Installation der
+   Bibliothek und vor dem erneuten Kompilieren laufen lassen.
+   
+   Falls Du manuell installieren möchtest, installiere zuerst die Datei
+   dlfcn.h in /usr/include. Dann die libdl.so.1.7.14 (oder was immer die
+   letzte Version ist) in /lib. Dann führe folgende Befehle aus:
+cd /lib
+ln -sf libdl.so.1.7.14 libdl.so.1
+ln -sf libdl.so.1 libdl.so
+
+   Auf manchen Systemen (je nach Deiner gcc-Konfiguration) können noch
+   folgende Befehle notwendig sein:
+cd /usr/lib
+ln -sf /lib/libdl.so .
+
+   Und zum Schluß noch ein
+ldconfig
+
+   Hinweis: Du mußt configure und make clean nach der Installation der
+   Bibliothek und vor dem erneuten Kompilieren laufen lassen.
+   
+    1.5) Die Kompilierung des Backends schlägt mit der Meldung fehl, daß die
+    Include-Datei dlfcn.h fehlen würde.
+    
+   Siehe die Antworten zu den Fragen 1.3 und 1.4. Und vergiss nicht,
+   falls Du ein a.out-System benutzt, daß Du das dld-Paket installiert
+   haben muß (welches bei den meisten a.out-Systemen nicht dabei ist), um
+   dlfcn.h zu haben. Siehe Frage 1.11.
+   
+    1.6) GCC meldet, daß er die Option -fpic ignorieren würde.
+    
+   Frühere Versionen des gcc nahmen entweder -fpic oder -fPIC an. Es
+   scheint, daß neuere Versionen (V2.7.2?) -fPIC erfordern. Falls Du ein
+   ELF-System benutzt, kannst das alles ignoriert werden, da -fPIC als
+   Standardvorgabe voreingestellt ist. Du kannst diese Angabe
+   korrigieren, indem Du CFLAGS_SL in der Datei src/Makefile.global
+   änderst.
+   
+    1.7) Ich bekomme Warnungen, wie: warning: cast from pointer to integer of
+    different size
+    
+   Diese Warnungen wurden in früheren Versionen von Postgres95 gesichtet
+   und können ignoriert werden. PostgreSQL V6.0 sollte ohne Warnungen
+   kompiliert werden, außer jenen, die sich auf System-Header-Dateien
+   beziehen (welche auch ignoriert werden können).
+   
+    1.8) [SuSE-Linux 4.2-5.3] Wo sind curses und termcap?
+    
+   SuSE-Linux 4.2 hat ncurses, nicht curses. Version 4.4 scheint beide
+   Bibliotheken zu haben. Bei SuSE-Linux ist außerdem die
+   termcap-Bibliothek in /usr/lib/termcap/ und nicht in /usr/lib.
+   
+      PostgreSQL (bis Version V6.0)
+      
+   Setze den Wert für CURSES_LIB in src/Makefile.custom auf -lncurses
+   (oder erledige das durch das customize script. Füge folgende Zeile zur
+   Datei src/Makefile.custom hinzu:
+LDADD_BE+= -L/usr/lib/termcap
+
+   Möglicherweise mußt Du in der Datei src/bin/psql/Makefile folgende
+   Änderung durchführen:
+ifeq ($(PORTNAME), linux)
+  LD_ADD+=
+
+   ändern in:
+ifeq ($(PORTNAME), linux)
+  LD_ADD+= -ltermcap
+
+      PostgreSQL (V6.1)
+      
+   Das Konfigurationsscript weiß nicht, daß es auch in /usr/lib/termcap
+   nach der termcap-Bibliothek schauen soll. Du solltest dieses
+   Verzeichnis angeben, wenn es nach zusätzlichen Such-Verzeichnissen
+   fragt.
+   
+   Falls das nicht funkitoniert (Ich habe SuSE nicht, um das zu testen),
+   dann solltest Du nach dem ./configure-Lauf die Datei
+   src/Makefile.global ändern und in die LDFLAGS-Zeile den Eintrag
+   -ltermcap (nach -lreadline) hinzufügen. (Alternativ kannst Du auch die
+   Datei src/Makefile.custom ändern, bevor Du ./configure aufrufst.)
+   
+   Einige SuSE-Versionen liefern nur ncurses, deshalb kann es sein, daß
+   Du die Benutzung von ncurses statt curses erzwingen mußt, indem Du
+   -lcurses in -lncurses änderst. (bestätigt für SuSE 5.1)
+   
+      PostgreSQL (V6.4)
+      
+   In PostgreSQL V6.4 überprüft configure sowohl das Vorhandensein von
+   curses, als auch das von ncurses. In der Zwischenzeit kannst Du den
+   patch von Karl Eichwalder (ke@suse.de) anwenden:
+   
+   http://www.PostgreSQL.ORG/mhonarc/pgsql-patches/msg00407.html
+   oder (mit deutschen Bemerkungen):
+   http://www.suse.de/Support/sdb/ke_postgresql-632.html
+   
+   Es gab außerdem einen Bericht, daß beim Update von SuSE 5.0 auf SuSE
+   5.2 der Link von libtermcap.so.2.0.8 auf libtermcap.so nicht gesetzt
+   wurde:
+cd /usr/lib
+ln -s libtermcap.so.2.0.8 libtermcap.so
+
+    1.9) Warum bekomme ich Probleme mit ld.so?
+    
+   Falls Du Probleme mit ld.so bekommst - eine andere Bibliothek, die im
+   ELF-System für dynamisches Laden benötigt wird - dann hast Du Deine
+   Systeminstallation oder wahrscheinlicher ein Linux-Update
+   durcheinandergebracht Siehe die Fragen 1.3/1.4. Möglicherweise mußt Du
+   ld.so.x.y.z in /lib installieren und ldconfig laufen lassen. Die
+   aktuellste Version des ld-Packages ist 1.7.14. Zum Zeitpunkt des
+   Schreibens dieser FAQ ist die Version 1.8 noch experimental.
+   
+    1.10) Wieso bekomme ich yy_flush_buffer undefined Fehler?
+    
+   Das ist nicht wirklich Linux-spezifisch, aber es tritt häufiger auf
+   alten Linux-Systemen auf. Du brauchst eine aktuelle Version von flex
+   (2.5.2. oder neuer), um PostgreSQL zu kompilieren. Beachte, daß flex
+   2.5.3. einen Bug hat, siehe auch Frage 3.4.
+   
+    1.11) Wie kompiliere ich PostgreSQL auf einem a.out System?
+    
+   Als erstes mußt Du die dld-Bibliothek installieren. Diese gibt es auf
+   Sunsite unter Linux/libs/dld.3.2.7.tar.gz
+   (ftp://sunsite.unc.edu/pub/Linux/libs/dld.3.2.7.tar.gz).
+   
+   Dann füge folgende Zeile in src/Makefile.custom hinzu:
+LINUX_ELF=
+
+   oder benutze das customize Skript
+   
+    1.12) Warum scheitert make mit der Meldung:
+    yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y make: /usr/bin/make:
+    cannot execute binary file
+    
+   Das war ein Problem in frühreren Versionen von Postgres95.
+   Standardmäßig benutzt PostgreSQL bison -y anstatt yacc.
+   
+   yacc ist normalerweise als Skript implementiert, das bison -y aufruft.
+   Aus verschiedenen Gründen ist make nicht in der Lage, das Skript
+   auszuführen (verschiedene Versionen von make? Verschiedene Versionen
+   der bash?)
+   
+   Um das zu beheben, ändere einfach die Datei
+   src/mk/port/postgres.mk.linux am Ende. Die Zeile:
+# YACC = bison -y
+
+   wird zu:
+YACC = bison -y
+
+    1.13) Was sind die Bezüge in der Bibliothek X11_LIB zu libsocket und libnsl
+    in der Datei src/Makefile.global?
+    
+   Das war ein Problem in Version 1.08 (Sun Solaris spezifisch). Sie sind
+   behoben in 1.09 und 6.0
+   
+    1.14) [DEBIAN] Wo ist die Bibliothek libtermcap?
+    
+   Debian Linux kommt ohne die termcap-Bibliothek und benutzt ncurses
+   (welche terminfo benutzt). Es gibt keinen Grund, die
+   CURSES_LIB-Variable in src/bin/psql/Makefile zu ändern, da Debian
+   einen Link von libncurses auf libcurses bereitstellt (im Gegensatz zu
+   SuSE, siehe Frage 1.8)
+   
+   Du kannst die Datei src/bin/psql/Makefile wie folgt ändern:
+ifeq ($(PORTNAME), linux)
+  LD_ADD+= -ltermcap
+
+   in
+ifeq ($(PORTNAME), linux)
+  LD_ADD+=
+
+
+    1.15) [REDHAT] Kann ich PostgreSQL als RPM-Archiv bekommen?
+    
+   Ja! Michal Mosiewicz (http://www.pdi.lodz.pl/~mimo) hat ein RPM für
+   PostgreSQL V6.0 auf Intel Architekturen zusammengestellt, welches er
+   nach ftp://ftp.redhat.org/pub/Incoming/Postgres-6.0-1.i386.rpm
+   hochgeladen hat.
+   
+   Das ist eine vorkompilierte Version, das Quelltext-RPM stammt vom
+   03.02.1997.
+   
+    1.16) Während ich versuche eine Entwickler-Version unter Linux zu
+    kompilieren, bricht der Vorgang mit folgender Fehlermeldung ab:
+    In file included from /usr/include/sys/sem.h:8,
+    from ipc.c:37:
+    /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit'
+    ....
+    make: *** [ipc.o] Error 1
+    
+   Das Problem ist, daß Linux keine Prototypen für diese
+   Inline-Funktionen bereithält. Die Lösung liegt darin, das Makefile in
+   .../src/backend/storage/ipc/ zu ändern: Ändere die Zeile:
+CFLAGS+=$(INCLUDE_OPT)
+
+   in
+CFLAGS+=$(INCLUDE_OPT) -Wno-error
+
+   Mache dasselbe dann im ../src/backend/storage/lmgr Verzeichnis.
+   
+    1.17) Beim Kompilieren von PostgreSQL bricht der gcc mit einer Signal 11
+    Meldung ab.
+    
+   Oder genauer: gcc: Internal compiler error: program cc1 got fatal
+   signal 11
+   
+   Das können Hardware/Speicherprobleme sein. PostgreSQL ist ein großes
+   Programm und große gcc-Kompilierungsläfe (wie eben PostgreSQL oder
+   eine Kernel-Kompilierung) beanspruchen den Hauptspeicher wie wenig
+   andere Programme. Dadurch können Fehler auftreten, die in normalen
+   Situationen nicht erscheinen. Niedrigere Betriebssysteme beanspruchen
+   die Hardware ebenfalls nicht in diesem Maße, deshalb kann es sein, daß
+   Du niemals Probleme unter DOS/Windows siehst.
+   
+   Mehr Information zu diesem Problem gibt es unter
+   http://www.BitWizard.nl/sig11/ und in deutsch unter
+   http://www.suse.de/sdb/de/html/kfr_58.html.
+   
+   Laut dieser Sig11-FAQ scheint es ein spezielles Problem mit dem RedHat
+   5.0 gcc auf einem Cyrix-Prozessor zu geben. Siehe bitte dort nach den
+   Details nach.
+   
+    1.18) Kann ich Version 6.1.1 unter MkLinux installieren?
+    
+   Tatsuo Ishii hat das unter MkLinux DR2.1 update2 geschafft, nachdem
+   der kleine Patch von
+   ftp://ftp.sra.co.jp/pub/cmd/postgres/6.1.1/mklinux.patch.gz
+   eingespielt wurde.
+   
+    1.19) Warum stoppt make oder bricht sonstwie ab?
+    
+   Es gibt eine Reihe von Reports darüber, daß gmake zu früh aussteigt
+   oder mit einem Segmentation Fault aussteigt. Das letzte Problem wurde
+   von gmake 3.74 berichtet. Ein Update auf 3.76.1 löste dieses Problem.
+   Wie auch immer, 3.74 arbeitet bei vielen Leuten zur vollsten
+   Zufriedenheit. Kurz gesagt, upgrade Deinen gmake auf die aktuellste
+   Version, bevor Du dieses Problem meldest.
+   
+    1.20) Wie kann ich für die Prozessoren 486 oder Pentium optimieren?
+    
+   Die Standard-Compilerflags führen keine Optimierung für den 486er oder
+   den Pentium-Prozessor durch. Um diese Optimierung zu aktivieren, füge
+   wahlweise eine der folgenden Zeilen der Datei Makefile.custom hinzu:
+CFLAGS+= -m486
+
+   oder
+CFLAGS+= -mpentium
+
+   oder
+CFLAGS+= -mpentiumpro
+
+    1.21) Wieso bekomme ich seltsame Ergebnisse beim Drucken von Zeiten (z.B.
+    beim Regressionstest 'timespan')?
+    
+   Die Zeit erscheint z.B. als: "4 hours 59 mins 60.00 secs" und nicht
+   als "5 hours"
+   
+   Das ist ein Problem mit der glibc2-Bibliothek, die mit RedHat 5.0
+   ausgeliefert wird. Update Deine glibc auf die aktuellste
+   RedHat-Version für v5.0/Hurricane. Alle Versionen vor glibc-2.9.7
+   scheinen dieses Problem zu haben.
+   
+    1.22) Warum bekomme ich keine shared libraries für libpq, wenn ich Version
+    6.3.2 kompiliere?
+    
+   Es gab eine Last-Minute-Änderung der Linux-Konfiguration für Version
+   6.3.2. Siehe für einige Fehlerbehebungen und einen Linux-ELF-Patch in
+   ftp://postgresql.org/pub/patches/ nach.
+   
+    1.23) Warum scheitert der Kompilierungslauf mit Nachrichten, daß F_BOOLIN,
+    F_BOOLOUT und F_BYTEAIN nicht deklariert seien?
+    
+   Die komplette Meldung sieht ungefähr so aus:
+           -I/usr/include/readline -O2 -Wall -Wmissing-prototypes -I..
+        -Wno-error -c bootstrap.c -o bootstrap.o
+        bootstrap.c:160: `F_BOOLIN' undeclared here (not in a function)
+        bootstrap.c:160: initializer element for `Procid[0].inproc' is not
+        constant
+        bootstrap.c:160: `F_BOOLOUT' undeclared here (not in a function)
+        bootstrap.c:160: initializer element for `Procid[0].outproc' is not
+        constant
+        bootstrap.c:161: `F_BYTEAIN' undeclared here (not in a function)
+        bootstrap.c:161: initializer element for `Procid[1].inproc' is not
+        constant
+
+   Solange Du nicht weißt, warum das passiert, ist dieses Problem
+   ziemlich kniffelig, da diese Konstanten anscheinend nirgendwo
+   definiert werden.
+   
+   Die Lösung ist dafür zu sorgen, daß der cpp in Deinem Pfad erreichbar
+   ist, bevor make gestartet wird.
+   
+   Auf Redhat 5.1, ist cpp in /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3
+   
+  Abschnitt 2: Hilfs- und Zusatzprogramme kompilieren
+  
+    2.1) Der Linker findet die Bibliothek libX11 nicht, wenn pgtclsh kompiliert
+    werden soll.
+    
+   Füge folgende Zeile in src/Makefile.custom hinzu:
+X11_LIBDIR = /usr/X11R6/lib
+
+  Abschnitt 3: Laufzeit Probleme
+  
+    3.1) Ich bekomme die Fehlermeldung _fUnKy_POSTPORT_sTuFf_ undefined, wenn
+    Skripts wie createuser laufen.
+    
+   Das ist ein Fehler in Versionen 1.06-1.07 und ist ab Version 1.08 und
+   höher behoben.
+   
+    3.2) Nachdem ich postmaster starte, meldet das System Bad system call (Core
+    dumped)
+    
+   Diese Fehlermeldung deutet an, daß Du keinen Shared-Memory-Support in
+   den Kernel einkompiliert hast. Der Kernel muß mit dieser Option neu
+   kompiliert werden, um diese Eigenschaft hinzuzufügen.
+   
+    3.3) Wenn ich versuche, den Postmaster zu starten, bekomme ich eine
+    Fehlermeldung wie:
+    Failed Assertion("!(file != 0):(null)", File:
+    "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)
+    !(file != 0) (0)
+    initdb: could not create template database
+    initdb: cleaning up.
+    
+   Deine Berechtigungen für die Datei /dev/null sind falsch gesetzt. ein
+   ls -l /dev/null sollte folgende Ausgabe zeigen:
+crw-rw-rw-  1 root  wheel    2,   2 Oct  8 18:41 /dev/null
+
+   Korrigiere die Berechtigungen mit:
+chmod a+rw /dev/null
+
+    3.4) Warum funktioniert createuser nicht?
+    
+   Es gibt ein Problem mit Version 2.5.3 des GNU flex und createuser. Die
+   Möglichkeiten, diesen Fehler zu beheben sind: Entweder auf die
+   flex-Version 2.5.3 zu gehen, auf Version 2.5.4 zu gehen, oder den
+   Patch nach doc/README.flex einzuspielen.
+   
+   Die Version 2.5.4. gibt es unter
+   ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz.
+   
+    3.5) Wieso bekomme ich einen Fehler, wie:
+    IpcMemoryCreate: memKey=155356396 , size=760632 ,
+    permission=384IpcMemoryCreate: shmget(..., create, ...)
+    failed: Invalid argument
+    
+   Du hast keine IPC-Unterstützung in Deinen Linux-Kernel einkompiliert.
+   Der Kernel muß mit dieser Option neu kompiliert werden, um diese
+   Eigenschaft hinzuzufügen.
+   
+    3.6) Wieso scheitert der Aufruf von psql mit: psql: can't load library
+    'libpq.so.1
+    
+   Psql wurde mit dynamischen Zugriff auf die libpq-bibliothek
+   kompiliert. Um dieses Problem zu lösen, solltest Du Dich als root
+   anmelden und die Datei /etc/ld.so.conf editieren. Füge eine Zeile am
+   Ende hinzu, die den Namen des PostgreSQL-Bibliotheken-Verzeichnis
+   enthält (das lib-Verzeichnis im PostgreSQL-Installationsverzeichnis)
+   und rufe den Befehl /sbin/ldconfig -v auf. Alternativ (und falls Du
+   keinen root-Zugriff hast) kannst Du die LD_LIBRARY_PATH-Variable
+   benutzen. Die LD_LIBRARY_PATH-Variable enthält eine durch Doppelpunkt
+   getrennte Liste mit Suchpfaden für Shared-Bibliotheken. Diese Liste
+   wird durchsucht, bevor auf die Informationen von ldconfig zugegriffen
+   wird. Unter der bash sieht das ganze so aus:
+export LD_LIBRARY_PATH='PathToPGSQL'/lib
+
+   unter der tcsh so:
+setenv LD_LIBRARY_PATH 'PathToPGSQL'/lib
+
+   wobei 'PathToPGSQL' das Installationsverzeichnis von PostgreSQL ist.
+   Hinweis: der ldd-Befehl dient dazu, sich die dynamischen Bibliotheken
+   für eine bestimmte ausführbare Datei anzeigen zu lassen.
+   
+    3.7) Andere seltsame Verhaltensweisen
+    
+   Ich bin mir nicht sicher, welche Symptome alle auftreten können, außer
+   daß gar nichts richtig funktioniert, aber es stellte sich heraus, daß
+   man sorgsam darauf achten sollte, daß die richtige Version der
+   libpq-Bibliothek geladen wird. Falls Du alte Versionen in Deinem
+   Bibliothekspfad hast (z.B. in /usr/lib) können diese statt der neueren
+   Version geladen werden. Schaffe diese alten Versionen beiseite und
+   siehe im übrigen Frage 3.6 für weitere Details bezüglich dem Laden von
+   Bibliotheken.
+   
+    3.8) Wenn PostgreSQL beim Systemhalt lief, führt Linux beim Neustart
+    jedesmal einen Filesystemcheck (fsck) durch
+    
+   Es gab darüber einige Berichte und es scheint, daß dies passiert, wenn
+   PostgreSQL von der /etc/inittab gestartet wird, wie im
+   INSTALL-Dokument beschrieben.
+   
+   Deshalb wird Dir empfohlen, den postmaster von einem rc-Skript aus zu
+   starten. Unter einem Slackware-artigem System würdest Du
+   /etc/rc.d/rc.local modifizieren, um den postmaster zu starten.
+   
+   Unter RedHat-artigen Systemen würdest Du ein SysV-artiges Skript in
+   /etc/rc.d/rc3.d basierend auf der /etc/rc.d/init.d Schablonen-Datei
+   erstellen.
+   
+   Es gibt eine Beispieldatei unter dem Verzeichnis
+   contrib/linux/postgres.init.
+   
+   Hier ist noch ein anderes Beispiel von John Robinson welches Du
+   entsprechend anpassen kannst.
+#!/bin/sh
+#
+# postgreSQL.init This shell script takes care of starting and stopping
+#               the PostgreSQL postmaster.
+#
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+# Source networking configuration.
+. /etc/sysconfig/network
+
+# Check that networking is up.
+[ ${NETWORKING} = "no" ] && exit 0
+
+# See how we were called.
+case "$1" in
+  start)
+        # Start daemons.
+        echo -n "Starting postgres Postmaster daemon:"
+        if [ -z "`pidofproc postmaster`" ]
+        then
+                su postgres -c "/usr/local/pgsql/bin/postmaster -D /home/postgr
+eSQL/data -p 5432 &"
+                echo -n " postmaster"
+        else
+                echo -n " (already running)"
+        fi
+        echo
+        touch /var/lock/subsys/postgres
+        ;;
+  stop)
+        # Stop daemons.
+        echo -n "Shutting down postgres Postmaster daemon: "
+        killall -TERM postmaster 2>/dev/null
+        killall -TERM postgres 2>/dev/null
+        echo
+        rm -f /var/lock/subsys/postgres
+        ;;
+  *)
+        echo "Usage: postgres {start|stop}"
+        exit 1
+esac
+
+exit 0
+
+    3.9) Warum dauert Query 32 in den RegressionsTests so lange?
+    
+   Das passiert wegen eines Fehlers in den Regressions-Skripten auf
+   Linux-Kisten. Es gibt - soweit ich weiß - zwei Möglichkeiten, diese
+   Fehler zu umgehen (die Information stammt von Tatsuo Ishii):
+   
+   1. ändere folgende Zeile in regress.sh:
+time postgres -texecutor -tplanner -Q bench < bench.sql
+
+   in
+postgres -texecutor -tplanner -Q bench < bench.sql
+
+   2. nachdem der Test gelaufen ist, entferne eine Zeile ganz am Ende der
+   Datei bench.out, die ungefähr so aussieht:
+85.86user 114.47system 4:49.20elapsed 69%CPU (0avgtext+0avgdata 0maxresident)k
+
+   dann gib folgendes auf der Befehlszeile ein:
+sh ./perquery < bench.out > & bench.out.perquery
+
+    3.10) Warum bekomme ich lustige Rundungsergebnisse in einigen
+    Datums/Zeit-Berechnungen, wie:
+    select '4 hours'::timespan;
+    liefert '3 hours 59 minutes 60 seconds'?
+    
+   Du benutzt neue glibc2-Bibliotheken in einer Version kleiner als
+   2.0.7. Das ist ein mathematisches Rundungsproblem. Aktualisiere Deine
+   Bibliothek.
+   
+    3.11) Wieso bekomme ich einen Fehler wie: IpcMemoryCreate: shmget failed
+    (Permission denied)?
+    
+   Im Detail erscheint der Fehler mit dieser Meldung:
+In detail, a message like this may appear:
+IpcMemoryCreate: shmget failed (Permission denied)
+key=5432010, size=120, permission=700
+IpcMemoryAttach: shmat failed (Permission denied) id=0
+FATAL 1:  AttachSLockMemory: could not attach segment
+
+   Dieser Fehler wird durch nicht gelöschte Segmente im shared memory
+   verursacht. (Du kannst sie mit dem Programm ipcs sehen. Benutze das
+   Programm ipcrm, um sie zu löschen.
+     _________________________________________________________________
+   
+   Author of the english version
+   Dr. Andrew C.R. Martin University College London
+   EMAIL: (Work) martin@biochem.ucl.ac.uk (Home)
+   andrew@stagleys.demon.co.uk
+   URL: http://www.biochem.ucl.ac.uk/~martin
+   Tel: (Work) +44(0)171 419 3890 (Home) +44(0)1372 275775
+   
+   Translator of the german version
+   Karsten Schulz Linux Systemhaus Schulz
+   EMAIL: (Work) schulz@Linux-Systemhaus.de (Home) kaschu@t800.ping.de
+   URL: http://www.Linux-Systemhaus.de/
+   Tel: (Work) +49 231 3944432 (Fax) +49 231 3944435
diff --git a/doc/FAQ_linux_italian b/doc/FAQ_linux_italian
new file mode 100644 (file)
index 0000000..ed9cc60
--- /dev/null
@@ -0,0 +1,695 @@
+
+=======================================================
+Frequently Asked Questions (FAQ) per PostgreSQL >= V6.1
+Specifiche per Linux Os
+DA LEGGERE IN CONGIUNZIONE CON LE NORMALI FAQ
+=======================================================
+Ultimo aggiornamento:           Lunedi' 18 Maggio 11:17:00 GMT 1998
+
+Curatore corrente:          Andrew C.R. Martin (martin@biochem.ucl.ac.uk)
+Autore originale:           Andrew C.R. Martin (martin@biochem.ucl.ac.uk)
+Traduzione FAQ in italiano: Daniele Medri 'MaDriD' (madrid@darshan.org)
+
+Cambiamenti in questa versione (* = modificato, + = nuovo, - = rimosso):
+
++1.21)  Perche' ricevo strani risultati con i tempi di stampa (per esempio
+        nel test di regressione 'timespan'?
+Questo file è diviso approsimativamente nel sequente modo:
+1.*)    Istallare PostgreSQL
+2.*)    Compilare programmi accessori
+3.*)    Problemi di esecuzione
+
+
+Domande risposte:
+1.1)    Quali cambiamenti devo fare a src/Makefile.global o a src/Makefile.cust
+om
+        e ci sono altri cambiamenti necessari?
+1.2)    Perche' ricevo problemi con missing libreadline?
+1.3)    [REDHAT] Perche' ricevo problemi di libdl e dlfcn.h perse?
+1.4)    [SLACKWARE 3.1] Perche' ricevo problemi di libdl e dlfcn.h perse?
+1.5)    La mia compilazione si arresta segnalando la mancanza dell'include file
+        dlfcn.h perso.
+1.6)    GCC reclama una ignorata opzione -fpic
+1.7)    Ricevo messaggi di warning (errore) del tipo
+        warning: cast from pointer to integer of different size
+1.8)    [SuSE-Linux 4.2-4.4] Dove sono curses e termcap?
+1.9)    Perche' ho problemi con  ld.so?
+1.10)   Perche' ricevo errori del tipo `yy_flush_buffer undefined'?
+1.11)   Come posso compilare PostgreSQL su un sistema a.out?
+1.12)   Che cosa fallisce con:
+        yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y
+        make: /usr/bin/make: cannot execute binary file
+1.13)   Quali sono i riferimenti in X11_LIB a libsocket e libnsl in
+        src/Makefile.global?
+1.14)   [DEBIAN] Dov'e' libtermcap?
+1.15)   [REDHAT] Posso trovare PostgreSQL come RPM?
+1.16)   Quando tento di compilare una versione in sviluppo sotto Linux, la
+        compilazione fallisce con il seguente messaggio:
+        In file included from /usr/include/sys/sem.h:8,
+                 from ipc.c:37:
+        /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bi
+t'
+        ....
+        make: *** [ipc.o] Error 1
+1.17)   Quando sto' compilando postgres, gcc riporta un signal 11 e si interrom
+pe.
+1.18)   Posso installare 6.1.1 su MkLinux?
+1.19)   Perche' esce o va in crash?
+1.20)   Come posso ottimizzarlo per un 486 o un processore pentium
+1.21)   Perche' ricevo strani risultati con i tempi di stampa (per esempio
+        nel test di regressione 'timespan'?
+2.1)    Il linker non trova libX11 quando sta' compilando pgtclsh
+3.1)    Ricevo un messaggio tipo  _fUnKy_POSTPORT_sTuFf_ non definito quando
+        lancio uno script come createuser
+3.2)    Lancio postmaster e dopo il sistema dice 'Bad system call(Core
+        dumped)'
+3.3)    Quando tento di lanciare Postmaster, perche' ricevo un errore del tipo
+        Failed Assertion("!(file != 0):(null)", File:
+        "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)
+        !(file != 0) (0)
+        initdb: could not create template database
+        initdb: cleaning up.
+3.4)    Perche' createuser non funziona?
+3.5)    Perche' ricevo un errore del tipo:
+        IpcMemoryCreate: memKey=155356396 , size=760632 ,
+        permission=384IpcMemoryCreate: shmget(..., create, ...)
+        failed: Invalid argument
+3.6)    Perche' psql fallisce con:
+        psql: can't load library 'libpq.so.1'
+3.7)    Altri comportamenti strani
+3.8)    Quando PostgreSQL e' attivo allo shutdown di sistema, Linux
+        esegue al reboot un fsck al disco.
+3.9)    Perche' la Query 32 nel test di regressione pretende molto tempo?
+3.10)   Perche' ricevo dei risultati arrotondati su date/time aritmetici,
+        come
+           select '4 hours'::timespan;
+        returning '3 hours 59 minutes 60 seconds'?
+
+----------------------------------------------------------------------
+Sezione 1:      Compilare PostgreSQL
+----------------------------------------------------------------------
+
+1.1)    Quali cambiamenti devo fare a src/Makefile.global o a
+        src/Makefile.custom e ci sono altri cambiamenti necessari?
+
+        I cambiamenti ai makefiles sono piu'facilmente fatti usando
+        lo script di shell per la personalizzazione che si trova nella
+        directory src che scrive un file Makefile.custom appropriato.
+
+        I soli altri cambiamenti che tu devi fare e rimpiazzare Flex se tu
+        hai una versione 2.5.3, la quale ha dei bug che si manifestano al
+        fallimento di createuser (Vedi domanda 3.4)
+
+        Se tu modifichi i makefiles a mano, tu *devi* settare le seguenti
+        variabili:
+                PORTNAME=       linux
+
+        Tu devi anche cambiare quello che segue per settare la tua propria
+        installazione:
+                POSTGRESDIR
+
+        Se tu cambi sull'opzione USE_TCL, devi settare questo:
+                TCL_INCDIR=
+                TCL_LIBDIR=
+                TCL_LIB=
+                TK_INCDIR=
+                TK_LIBDIR=
+                TK_LIB=
+                X11_INCDIR=
+                X11_LIBDIR=
+                X11_LIB=
+
+        Sul mio sistema Slackware3.0 esse sono:
+                TCL_INCDIR=     /usr/include/tcl
+                TCL_LIBDIR=     /usr/lib
+                TCL_LIB=        -ltcl
+                TK_INCDIR=      /usr/include/tcl
+                TK_LIBDIR=      /usr/lib
+                TK_LIB=         -ltk
+                X11_INCDIR=     /usr/include/X11
+                X11_LIBDIR=     /usr/X386/lib
+                X11_LIB=        -lX11
+
+        Devi fare ogni altro cambiamento necessario come documentato nel
+        file INSTALL e in Makefile.global
+
+
+1.2)    Perche' ricevo problemi con missing libreadline?
+
+        I sistemi Linux in genere non vengono distribuiti con la libreria
+        Gnu readline installata. Si può in ogni caso o disattivare l'opzione
+        di readline in src/Makefile.global o src/Makefile.custom, oppure
+        installare la libreria GNU stessa (readline).
+
+        Nota che Linux Debian (come FreeBSD) esce con le readline installate.
+
+1.3)    [REDHAT] Perche' ricevo problemi di libdl e dlfcn.h perse??
+
+        Questa manifestazione avvisa che non c'e' la capacita' di linkare
+        funzioni come dlopen(), dlclose(), etc. durante l'ultima fase di compil
+azione.
+
+        La libreria libdl e' usata per linkare in maniera dinamica le funzioni
+        e rendere flessibile l'avvio dell'applicativo. Per alcune ragioni quest
+a
+        non era presente nella distribuzione Red Hat. La versione Redhat 4.0
+        (Colgate) a colmato a questa mancanza.
+
+        RedHat ha ora una nuova versione di ld.so in formato RPM nei propri sit
+i FTP.
+        Scaricate:
+
+              ftp://ftp.redhat.com/pub/redhat/devel/i386/RedHat/RPMS/ld.so-1.7.
+14-4.i386.rpm
+
+        Installa il file RPM nella maniera usuale e andra'!
+
+        ATTENZIONE! Devi rilanciare nuovamente il file configure e fare un
+        make clean dopo aver installato la libreria e prima di ricompilare.
+
+        C'e' stata una sola notizia di sistema corrotto da programmi che
+        accedevano a queste librerie mentre venivano aggiornate (nessun altra
+        sorpresa.) Conseguentemente e' una buona idea quella di fare un reboot
+        del sistema prima di installare le nuove librerie e avere pochi
+        processi attivi durante questo upgrade. Lanciare il sistema in
+        modalita' utente singolo (single-user) e' probabilmente una buona idea!
+
+        Se tu vuoi fare la strada piu' dura, puoi ottenere la libreria e
+        l'header file da:
+
+                ftp://tsx-11.mit.edu/pub/linux/packages/GCC/ld.so-1.7.14.tar.gz
+
+        Alternativamente puoi trovare i file binari precompilati in
+        distributions/debian/buzz/binary-i386/base/ld.so-1.7.14-4.deb
+        nel medesimo sito, o seguire le istruzioni date alla domanda 1.2 per
+        correggere lo stesso errore con le aggiornate versioni di Slackware 3.1
+.
+        Non scegliere questo metodo se non sai quello che stai facendo!
+
+
+
+1.4)    [SLACKWARE 3.1] Perche' ricevo problemi di libdl e dlfcn.h perse??
+
+        Questa manifestazione avvisa che non c'e' la capacita' di linkare
+        funzioni come dlopen(), dlclose(), etc. durante l'ultima fase di compil
+azione.
+        Guarda la risposta alla domanda 1.3. Slackware fino alla versione 3.0
+        era provvista di questa libreria e degli include file e ritornarono nel
+l'ultima
+        versione 3.1, ma la prima versione della 3.1 (prima del 9 settembre 199
+6)
+        non aveva queste e molte versioni su CD-ROM erano state stampate
+        con la prima edizione.
+
+        C'e' stata una sola notizia di sistema corrotto da programmi che
+        accedevano a queste librerie mentre venivano aggiornate (nessun altra
+        sorpresa.) Conseguentemente e' una buona idea quella di fare un reboot
+        del sistema prima di installare le nuove librerie e avere pochi
+        processi attivi durante questo upgrade. Lanciare il sistema in
+        modalita' utente singolo (single-user) e' probabilmente una buona idea!
+
+        Per fissare facilmente questo basta ottenere il file ldso.tgz dal quart
+o
+        dischetto della piu' recente distribuzione Slackware e scompattarlo da
+        dalla directory di root (/) e poi lanciare
+
+                sh install/doinst.sh
+
+        per completare l'installazione. Successivamente lanciare
+
+                ldconfig
+
+        ATTENZIONE! Devi rilanciare nuovamente il file configure e fare un
+        make clean dopo aver installato la libreria e prima di ricompilare.
+
+        Se vuoi installarla manualmente bisogna installare prima il file
+        dlfcn.h in /usr/include.
+
+        Secondo, installa il file libdl.so.1.7.14 (o qualsiasi altra versione)
+        in /lib, e poi fai:
+
+                cd /lib
+                ln -sf libdl.so.1.7.14 libdl.so.1
+                ln -sf libdl.so.1 libdl.so
+
+        Su certi sistemi (a seconda della personale configurazione di GCC)
+        e' necessario fare:
+
+                cd /usr/lib
+                ln -sf /lib/libdl.so .
+
+        Finalmente
+
+                ldconfig
+
+        ATTENZIONE! Devi rilanciare nuovamente il file configure e fare un
+        make clean dopo aver installato la libreria e prima di ricompilare.
+
+
+1.5)    La mia compilazione si arresta segnalando la mancanza dell'include file
+        dlfcn.h perso.
+
+        Guarda la risposta 1.3/1.4. Non dimenticare che se stai usando un siste
+ma
+        a.out devi prima avere installato il pacchetto dld (il quale non viene
+        fornito con molti sistemi a.out) per avere dlfcn.h e gli altri.
+        Guarda la domanda 1.11.
+
+
+1.6)    GCC reclama una ignorata opzione -fpic
+
+        Le prime versioni di GCC accettavano entrambe -fpic o -£PIC.
+        Nelle piu' recenti versioni (V2.7.2?) richiede -£PIC.
+        Se tu stai usando una versione ELF di Linux, questa puo' per sicurezza
+        essere ignorata perche' -£PIC e' di default.
+
+        Puoi correggere questa editando il file src/Makefile.global e cambiare
+        CFLAGS_SL
+
+
+1.7)    Ricevo messaggi di warning (errore) del tipo
+        warning: cast from pointer to integer of different size
+
+        Questi appararivano nelle prime versione di Postgres95 e posso per sicu
+rezza
+        essere ignorate. PostgreSQL V6.0 dovrebbe compilare senza warnings
+        ad eccezione di quelli relativi agli header file di sistema (i quali po
+ssono
+        essere ignorati per sicurezza).
+
+1.8)    [SuSE-Linux 4.2-4.4] Dove sono curses e termcap?
+
+        SuSE-Linux 4.2 ha le ncurses ma non le curses. 4.4 ha entrambe.
+        SuSE-Linux ha anche le librerie termcap in /usr/lib/termcap
+        invece di essere in /usr/lib.
+
+        PostgreSQL (fino alla V6.0)
+        -----------------------
+        Setta il valore delle CURSES_LIB in src/Makefile.custom a -lncurses
+        (o fai questo attraverso lo script di personalizzazione).
+        Aggiundi la seguente riga al file src/Makefile.custom:
+
+                LDADD_BE+= -L/usr/lib/termcap
+
+        Devi editare il file src/bin/psql/Makefile e cambiare:
+                ifeq ($(PORTNAME), linux)
+                   LD_ADD+=
+        con:
+                ifeq ($(PORTNAME), linux)
+                   LD_ADD+= -ltermcap
+
+        PostgreSQL (V6.1)
+        -----------------
+        Lo script di configurazone non sa' di cercare nella directory
+        /usr/lib/termcap per le librerie termcap, percio' tu devi specificare
+        questo come una delle directory delle librerie dove cercare.
+
+        Se non funziona (non ho SuSE per verificare che vada)
+        allora lancia configure, edita src/Makefile.global e aggiungi
+        -ltermcap alla linea LDFLAGS
+        (dopo -lreadline). (Alternativamente poi configurare
+        src/Makefile.custom prima di lanciare configure.)
+
+        Alcune versioni di SuSE forniscono solo ncurses, percio' tu devi
+        forzare l'uso delle ncurses piuttosto che le curses cambiando
+        -lcurses con -lncurses. (dimostrato per SuSE 5.1)
+
+
+1.9)    Perche' ho problemi con  ld.so?
+
+        Se tu hai problemi con ld.so, un altra libreria richiesta sotto ELF
+        per il caricamento dinamico, allora hai creato disordine con la tua
+        installazione o fatto un upgrade di Linux.
+
+        Guarda le risposte alle domande 1.3/1.4. Devi installare ld.so.x.y.z in
+        /lib e lanciare ldconfig.
+
+        La piu' recente vesione stabile del pacchetto ld eì 1.7.14
+        Mentre scrivo, la versione 1.8.x di ld e' sperimentale.
+
+1.10)   Perche' ricevo errori del tipo `yy_flush_buffer undefined'?
+
+        Questo non e' specifico per Linux, ma e' comune nelle vecchie istallazi
+one
+        di Linux. Devi avere una versione recente di Flex (2.5.2 o superiore)
+        per compilare PostgreSQL. Nota che Flex 2.5.3 ha dei bug: guarda la
+        domanda 3.4.
+
+1.11)   Come posso compilare PostgreSQL su un sistema a.out?
+
+        Prima, devi installare la libreria dld. Puoi ottenere questa da Sunsite
+ come:
+        Linux/libs/dld.3.2.7.tar.gz
+        (ftp://sunsite.unc.edu/pub/Linux/libs/dld.3.2.7.tar.gz)
+
+        Secondo, aggiungi la seguente linea al file  src/Makefile.custom:
+                LINUX_ELF=
+        (o usa lo script di configurazione)
+
+1.12)   Che cosa fallisce con:
+        yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y
+        make: /usr/bin/make: cannot execute binary file
+
+        Questo e' un problema delle prime versioni di Postgres95. Il default
+        per PostgreSQL e' di usare bison -y piuttosto che yacc.
+
+        yacc e' generalmente implementato come script che invoca bison -y
+        Per alcune ragioni (certe versioni di make? certe versioni di bash?)
+        make non puo' eseguire questo file di script.
+
+        Per correggere questo, edita semplicemente src/mk/port/postgres.mk.linu
+x
+        e alla fine del file cambia:
+                # YACC = bison -y
+        con
+                YACC = bison -y
+
+1.13)   Quali sono i riferimenti in X11_LIB a libsocket e libnsl in
+        src/Makefile.global?
+
+        Questo era un problema nella versione 1.08 (specifica per Sun Solaris)
+        E' stata fissata nella 1.09 e 6.0
+
+1.14)   [DEBIAN] Dov'e'  libtermcap?
+
+        Debian Linux viene distribuita senza librerie termcap e usa ncurses
+        (le quali usano terminfo all'interno). Non c'e' bisogno di cambiare la
+        variabile CURSES_LIB  in src/bin/psql/Makefile peche' Debian provvede
+        con un link da libncurses a libcurses (diversamente da SuSE-Linux --
+        Vedi domanda 1.8).
+
+        Devi editare src/bin/psql/Makefile e commentare i cambiamenti:
+                ifeq ($(PORTNAME), linux)
+                   LD_ADD+= -ltermcap
+        con:
+                ifeq ($(PORTNAME), linux)
+                   LD_ADD+=
+
+
+1.15)   [REDHAT] Posso trovare PostgreSQL come RPM?
+
+        Si! Michal Mosiewicz
+        (http://www.pdi.lodz.pl/~mimo) ha creato un RPM
+        per PostgreSQL V6.0 per architettura Intel uplodata a
+        ftp://ftp.redhat.org/pub/Incoming/Postgres-6.0-1.i386.rpm
+
+        Questa e' una precompilata versione, le sorgenti RPM erano come
+        io ho scritto (3 Febbraio 1997).
+
+1.16)   Quando tento di compilare una versione in sviluppo sotto Linux, la
+        compilazione fallisce con il seguente messaggio:
+        In file included from /usr/include/sys/sem.h:8,
+                 from ipc.c:37:
+        /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bi
+t'
+        ....
+        make: *** [ipc.o] Error 1
+
+        Il problema e' che Linux non prevede prototipi per queste funzioni inli
+ne.
+        La soluzione e' di andare dentro la directory .../src/backend/storage/i
+pc
+        ed editare Makefile.
+        Cambia la linea
+           CFLAGS+=$(INCLUDE_OPT)
+        con
+           CFLAGS+=$(INCLUDE_OPT) -Wno-error
+
+        Fai lo stesso con la directory ../src/backend/storage/lmgr.
+
+1.17)   Quando sto' compilando postgres, gcc riporta un signal 11 e si interrom
+pe.
+        Piu' specificatamente:
+           gcc: Internal compiler error: program cc1 got fatal
+                signal 11
+
+        Questo e' un problema di hardware/memoria. PostgreSQL e' un grande
+        programma, e una larga compilazione con gcc (come la compilazione
+        di PostgreSQL o la compilazione del kernel) stressa la memoria come
+        molti altri programmi, mostrando errori che non appaiono nelle normali
+        operazioni. Sistemi operativi inferiori non riescono a stressare l'hard
+ware
+        in questo modo, per questo non vedrai mai questi errori sotto DOS/Windo
+ws.
+
+        Maggiori informazioni in merito:
+           http://www.bitwizard.nl/sig11
+
+        Da questo Sig11 FAQ, sembra essere un errore specifico con Redhat 5.0
+        lanciando su un processore Cyrix. Guarda il link superiore per i dettag
+li!
+
+1.18)   Posso installare 6.1.1 su MkLinux?
+
+        Tatsuo Ishii  ha fatto questo su MkLinux DR2.1 update2 dopo una piccola
+        patch disponibile presso:
+        ftp://ftp.sra.co.jp/pub/cmd/postgres/6.1.1/mklinux.patch.gz
+
+1.19)   Perche' esce o va in crash??
+
+        Ci sono state diverse segnalazioni di gmake, dove in tutte si usciva
+        subito e c'era una seg faulting. Il problema piu' marcato e' stato
+        riportato con gmake 3.74 - upgradandolo alla 3.76.1 si e' risolto.
+        Comunque, la versione 3.74 e' funzionante per altri tipi di setup.
+        In breve, prova ad upgradare gmake all'ultima versione che puoi trovare
+        prima di riportarlo come un problema.
+
+1.20)   Come posso ottimizzarlo per un 486 o un processore pentium
+
+        Le flags di compilazione per default non permettono l'optimizzazione pe
+r 486
+        o per processori Pentium. Per aggiungerla come ottimizzazione, edita
+        Makefile.custom e aggiungi:
+
+           CFLAGS+= -m486
+
+        o (per i nuovi compilatori che molte persone non stanno usando)
+
+           CFLAGS+= -mpentium
+        o
+           CFLAGS+= -mpentiumpro
+
+1.21)   Perche' ricevo strani risultati con i tempi di stampa (per esempio
+        nel test di regressione 'timespan'?
+        Le ore appaiono come: '4 hours 59 mins 60.00 secs'
+        invece di '5 hours'
+
+        Questo e' un problema con le librerie glibc2 le quali appaiono con
+        RedHat 5.0. Aggiorna le tue glibc con le ultime versioni di RedHat per
+        v5.0/hurricane. Tutto quello che e' anteriore alle glibc-2.0.7 ha
+        questi problemi.
+
+----------------------------------------------------------------------
+Sezione 2:      Compilare programmi accessori
+----------------------------------------------------------------------
+
+2.1)    Il linker non trova libX11 quando sta' compilando pgtclsh
+
+        Aggiungi la seguente riga al file src/Makefile.custom
+                X11_LIBDIR = /usr/X11R6/lib
+
+
+----------------------------------------------------------------------
+Sezione 3:      Problemi di esecuzione
+----------------------------------------------------------------------
+
+3.1)    Ricevo un messaggio tipo  _fUnKy_POSTPORT_sTuFf_ non definito quando
+        lancio uno script come createuser
+
+        Questo e' un bug nella V.1.06-V1.07 di Postgres ed e' fissata con la ve
+rsione
+        1.08 o superiore.
+
+3.2)    Lancio postmaster e dopo il sistema dice 'Bad system call(Core
+        dumped)'
+
+        Questo indica che non hai compilato il supporto per la memoria condivis
+a nel
+        kernel. Devi ricompilare il kernel per aggiungere questa feature.
+
+3.3)    Quando tento di lanciare Postmaster, perche' ricevo un errore del tipo
+        Failed Assertion("!(file != 0):(null)", File:
+        "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)
+        !(file != 0) (0)
+        initdb: could not create template database
+        initdb: cleaning up.
+
+        I permessi sul file /dev/null sono sbagliati.
+
+        ls -l /dev/null should give you something like:
+
+                crw-rw-rw-  1 root  wheel    2,   2 Oct  8 18:41 /dev/null
+
+        Correggi i permessi con:
+
+                chmod a+rw /dev/null
+
+3.4)    Perche' createuser non funziona?
+
+        C'e' un problema con la versione 2.5.3 di GNU Flex e createuser.
+        Le tue opzioni devono recedere a Flex V2.5.2, aggiornale alla V2.5.4 o
+        applica una patch alla V2.5.3 la quale e' fornita in doc/README.flex
+        Puoi ottenere la V.2.5.4 da:
+        ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz
+
+3.5)    Perche' ricevo un errore del tipo:
+        IpcMemoryCreate: memKey=155356396 , size=760632 ,
+        permission=384IpcMemoryCreate: shmget(..., create, ...)
+        failed: Invalid argument
+
+        Non hai compilato il supporto IPC nel kernel di Linux.
+        Devi ricompilare il kernel con questa opzione.
+
+3.6)    Perche' psql fallisce con:
+        psql: can't load library 'libpq.so.1'
+
+        Psql e' stata compilata per linkarsi dinamicamente con la libreria libp
+q.
+
+        Per risolvere questo, devi accedere come root ed editare il file
+                /etc/ld.so.conf
+        Aggiungi una linea singola alla fine, la quale prende il nome della dir
+ectory
+        delle librerie di PostgreSQL (la sottodirectory delle librerie
+        dell'installazione diPostgreSQL) e lancia
+                /sbin/ldconfig -v
+
+        Alternativamente, (e se tu non hai accesso come root), devi usare la
+        variabile di ambiente LD_LIBRARY_PATH.
+
+        La variabile LD_LIBRARY_PATH contiene una lista di paths per ricercare
+le librerie
+        condivise. Questa lista e' ricercata prima delle librerie specificate d
+a ldconfig.
+
+        Percio' sotto Bash, devi fare qualcosa del tipo:
+                export LD_LIBRARY_PATH='PathToPGSQL'/lib
+        o, usando tcsh
+                setenv LD_LIBRARY_PATH 'PathToPGSQL'/lib
+        rimpiazzando 'PathToPGSQL' con l'appropriato path alla tua directory Po
+stgreSQL
+        al top level.
+        Nota che il comando ldd puo' essere eseguito su un programma linkato di
+namicamente
+        alla lista di paths a tutte le librerie condivise sopra, alle quali gli
+ eseguibili
+        dipendono.
+
+
+3.7)    Altri comportamenti strani
+
+        Non sono sicuro quali siano i sintomi che non permettono la corretta es
+ecuzione,
+        ma si puo' ipotizzare che le ragioni vadano oltre il regolare funzionam
+ento del
+        loader dinamico nel caricare la corretta versione delle librerie libpq.
+
+        Se hai una versione vecchia dai una occhiata al path delle librerie
+        (per esempio in /usr/lib) che dovrebbero caricare nelle nuove versioni
+che intendi
+        far girare. Renditi sicuro di prendere queste nel percorso e guarda la
+Domanda 3.6
+        per i dettagli in merito al caricamento dinamico delle librerie.
+
+3.8)    Quando PostgreSQL e' attivo allo shutdown di sistema, Linux
+        esegue al reboot un fsck al disco.
+
+        Ci sono state alcune segnalazioni di questo e sembre essere il
+        risultato di lanciare PostgreSQL dal /etc/inittab come suggerito
+        nel file INSTALL.
+
+        Si raccomanda percio' di lanciare il postmaster da un rc script.
+        Sotto una versione di tipo Slackware, devi modificare /etc/rc.d/rc.loca
+l
+        per lanciare il postmaster. Sotto una versione in stile RedHat
+        devi creare uno script in stile SysV sotto /etc/rc.d/rc3.d basato
+        sul file /etc/rc.d/init.d.
+
+        C'e' un esempio di file in contrib/linux/postgres.init
+
+        Un altro file di esempio è proposto da John Robinson
+         il quale puo' essere modificato a seconda delle esigenze:
+
+#!/bin/sh
+#
+# postgreSQL.init This shell script takes care of starting and stopping
+#               the PostgreSQL postmaster.
+#
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+# Source networking configuration.
+. /etc/sysconfig/network
+
+# Check that networking is up.
+[ ${NETWORKING} = "no" ] && exit 0
+
+# See how we were called.
+case "$1" in
+  start)
+        # Start daemons.
+        echo -n "Starting postgres Postmaster daemon:"
+        if [ -z "`pidofproc postmaster`" ]
+        then
+                su postgres -c "/usr/local/pgsql/bin/postmaster -D /home/postgr
+eSQL/data -p 5432 &"
+                echo -n " postmaster"
+        else
+                echo -n " (already running)"
+        fi
+        echo
+        touch /var/lock/subsys/postgres
+        ;;
+  stop)
+        # Stop daemons.
+        echo -n "Shutting down postgres Postmaster daemon: "
+        killall -TERM postmaster 2>/dev/null
+        killall -TERM postgres 2>/dev/null
+        echo
+        rm -f /var/lock/subsys/postgres
+        ;;
+  *)
+        echo "Usage: postgres {start|stop}"
+        exit 1
+esac
+
+exit 0
+
+
+
+3.9)    Perche' la Query 32 nel test di regressione pretende molto tempo?
+
+        Questo e' un bug nello script di regressione presente su Linux Os.
+        Ci sono due raggiri per evitarli (informazione di Tatsuo Ishii ):
+
+        1. cambia quello che segue in regress.sh:
+                time postgres -texecutor -tplanner -Q bench < bench.sql
+        a:
+                postgres -texecutor -tplanner -Q bench < bench.sql
+
+        2. dopo aver lanciato il test, rimuovi la linea finale di
+        bench.out, qualcosa del tipo:
+                85.86user 114.47system 4:49.20elapsed 69%CPU (0avgtext+0avgdata
+ 0maxresident)k
+        poi digita:
+                sh ./perquery < bench.out > & bench.out.perquery
+
+
+
+3.10)   Perche' ricevo dei risultati arrotondati su date/time aritmetici,
+        come
+           select '4 hours'::timespan;
+        returning '3 hours 59 minutes 60 seconds'?
+
+        Stai usando le nuove librerie glibc2 e hai una versione precedene alla
+        2.0.7. E' un problema di arrotondamento matematico nella libreria.
+        Aggiorna le tue librerie.
+----------------------------------------------------------------------------
+Dr. Andrew C.R. Martin                             University College London
+EMAIL: (Work) martin@biochem.ucl.ac.uk    (Home) andrew@stagleys.demon.co.uk
+URL:   http://www.biochem.ucl.ac.uk/~martin
+Tel:   (Work) +44(0)171 419 3890                    (Home) +44(0)1372 275775
+----------------------------------------------------------------------------
+Daniele Medri 'MaDriD' - e-mail: madrid@darshan.org web: www.darshan.org
+----------------------------------------------------------------------------