Subject: FAQ patches

From: Ian Barwick <[email-masked]>
Date: Fri, 14 Feb 2003 22:32:07 +0100

Attached:

1. Minor corrections for the English FAQ
   (also added a line to "Does PostgreSQL have a graphical user interface?"
    mentioning the  http://techdocs.postgresql.org/guides/GUITools ).

2. Update for the German FAQ.

Ian Barwick
[email-masked]

Index: FAQ.html
===================================================================
RCS file: /projects/cvsroot/pgsql-server/doc/src/FAQ/FAQ.html,v
retrieving revision 1.167
diff -c -r1.167 FAQ.html
*** FAQ.html	2003/02/14 14:03:10	1.167
--- FAQ.html	2003/02/14 21:25:02
***************
*** 245,252 ****
      <P>The database server can run on Windows NT and Win2k using
      Cygwin, the Cygnus Unix/NT porting library. See
      <I>pgsql/doc/FAQ_MSWIN</I> in the distribution or the MS Windows FAQ
!     at <A href="http://www.PostgreSQL.org/docs/faq-mswin.html">
!     http://www.PostgreSQL.org/docs/faq-mswin.html</A>.</P>
  
      <p>A native port to MS Win NT/2000/XP is currently being worked
      on.</p>
--- 245,252 ----
      <P>The database server can run on Windows NT and Win2k using
      Cygwin, the Cygnus Unix/NT porting library. See
      <I>pgsql/doc/FAQ_MSWIN</I> in the distribution or the MS Windows FAQ
!     at <A href="http://www.ca.PostgreSQL.org/docs/faq-mswin.html">
!     http://www.ca.PostgreSQL.org/docs/faq-mswin.html</A>.</P>
  
      <p>A native port to MS Win NT/2000/XP is currently being worked
      on.</p>
***************
*** 535,541 ****
      <H4><A name="2.3">2.3</A>) Does PostgreSQL have a graphical user
      interface?</H4>
  
!     Yes, there are several graphical interfaces to PostgreSQL available.
      These include PgAccess <a href="http://www.pgaccess.org">
      http://www.pgaccess.org</a>), PgAdmin II (<a
      href="http://www.pgadmin.org">http://www.pgadmin.org</a>,
--- 535,541 ----
      <H4><A name="2.3">2.3</A>) Does PostgreSQL have a graphical user
      interface?</H4>
  
!     <P>Yes, there are several graphical interfaces to PostgreSQL available.
      These include PgAccess <a href="http://www.pgaccess.org">
      http://www.pgaccess.org</a>), PgAdmin II (<a
      href="http://www.pgadmin.org">http://www.pgadmin.org</a>,
***************
*** 545,552 ****
      http://www.thekompany.com/products/rekall/</a>, proprietary). There is 
      also PHPPgAdmin (<a href="http://phppgadmin.sourceforge.net/">
      http://phppgadmin.sourceforge.net/ </a>), a web-based interface to 
!     PostgreSQL.
  
      <H4><A name="2.4">2.4</A>) What languages are able to communicate with 
      PostgreSQL?</H4>
  
--- 545,554 ----
      http://www.thekompany.com/products/rekall/</a>, proprietary). There is 
      also PHPPgAdmin (<a href="http://phppgadmin.sourceforge.net/">
      http://phppgadmin.sourceforge.net/ </a>), a web-based interface to 
!     PostgreSQL.</P>
  
+     <P>See <a href="http://techdocs.postgresql.org/guides/GUITools">http://techdocs.postgresql.org/guides/GUITools</a> for a more detailed list.</P>
+ 
      <H4><A name="2.4">2.4</A>) What languages are able to communicate with 
      PostgreSQL?</H4>
  
***************
*** 1037,1050 ****
  VARCHAR(n)      varchar         size specifies maximum length, no padding
  CHAR(n)         bpchar          blank padded to the specified fixed length
  TEXT            text            no specific upper limit on length
- "char"          char            one character
  BYTEA           bytea           variable-length byte array (null-byte safe)
  </PRE>
  
      <P>You will see the internal name when examining system catalogs
      and in some error messages.</P>
  
!     <P>The last four types above are "varlena" types (i.e., the first
      four bytes on disk are the length, followed by the data). Thus the
      actual space used is slightly greater than the declared size.
      However, these data types are also subject to compression or being
--- 1039,1052 ----
  VARCHAR(n)      varchar         size specifies maximum length, no padding
  CHAR(n)         bpchar          blank padded to the specified fixed length
  TEXT            text            no specific upper limit on length
  BYTEA           bytea           variable-length byte array (null-byte safe)
+ "char"          char            one character
  </PRE>
  
      <P>You will see the internal name when examining system catalogs
      and in some error messages.</P>
  
!     <P>The first four types above are "varlena" types (i.e., the first
      four bytes on disk are the length, followed by the data). Thus the
      actual space used is slightly greater than the declared size.
      However, these data types are also subject to compression or being
***************
*** 1058,1065 ****
      same length. <SMALL>CHAR(n)</SMALL> pads with blanks to the specified
      length, while <SMALL>VARCHAR(n)</SMALL> only stores the characters
      supplied.  <SMALL>BYTEA</SMALL> is for storing binary data,
!     particularly values that include <SMALL>NULL</SMALL> bytes. These
!     types have similar performance characteristics.</P>
  
      <H4><A name="4.15.1">4.15.1</A>) How do I create a
      serial/auto-incrementing field?</H4>
--- 1060,1067 ----
      same length. <SMALL>CHAR(n)</SMALL> pads with blanks to the specified
      length, while <SMALL>VARCHAR(n)</SMALL> only stores the characters
      supplied.  <SMALL>BYTEA</SMALL> is for storing binary data,
!     particularly values that include <SMALL>NULL</SMALL> bytes. All the
!     types described here have similar performance characteristics.</P>
  
      <H4><A name="4.15.1">4.15.1</A>) How do I create a
      serial/auto-incrementing field?</H4>
Index: FAQ_german.html
===================================================================
RCS file: /projects/cvsroot/pgsql-server/doc/src/FAQ/FAQ_german.html,v
retrieving revision 1.6
diff -c -r1.6 FAQ_german.html
*** FAQ_german.html	2002/12/18 04:46:17	1.6
--- FAQ_german.html	2003/02/14 21:25:21
***************
*** 14,29 ****
  
      <p>Deutsche Übersetzung von Ian Barwick (<a href="mailto:[email-masked]">[email-masked]</a>).</p>
  
!     <p>Letzte Aktualisierung der deutschen Übersetzung: So., den 15.12.2002, 18:00 CET</p>
  
      <p>Die aktuellste Version dieses Dokuments liegt auf der PostgreSQL Website:</p>
      <ul>
!       <li><a href="http://www.PostgreSQL.org/docs/faq-english.html">http://www.PostgreSQL.org/docs/faq-english.html</a> (engl.)</li>
!       <li><a href="http://www.PostgreSQL.org/docs/faq-german.html">http://www.PostgreSQL.org/docs/faq-german.html</a> (dt.)</li>
      </ul>
      <p>Übersetzungen dieses Dokuments in andere Sprachen sowie plattform-
      spezifische FAQs können unter
!     <a href="http://www.PostgreSQL.org/users-lounge/docs/faq.html">http://www.PostgreSQL.org/users-lounge/docs/faq.html</a>
      eingesehen werden.</p>
  
  <hr />
--- 14,29 ----
  
      <p>Deutsche Übersetzung von Ian Barwick (<a href="mailto:[email-masked]">[email-masked]</a>).</p>
  
!     <p>Letzte Aktualisierung der deutschen Übersetzung: Fr., den 14.02.2003, 22:30 CET</p>
  
      <p>Die aktuellste Version dieses Dokuments liegt auf der PostgreSQL Website:</p>
      <ul>
!       <li><a href="http://www.ca.PostgreSQL.org/docs/faq-english.html">http://www.ca.PostgreSQL.org/docs/faq-english.html</a> (engl.)</li>
!       <li><a href="http://www.ca.PostgreSQL.org/docs/faq-german.html">http://www.ca.PostgreSQL.org/docs/faq-german.html</a> (dt.)</li>
      </ul>
      <p>Übersetzungen dieses Dokuments in andere Sprachen sowie plattform-
      spezifische FAQs können unter
!     <a href="http://www.ca.PostgreSQL.org/users-lounge/docs/faq.html">http://www.ca.PostgreSQL.org/users-lounge/docs/faq.html</a>
      eingesehen werden.</p>
  
  <hr />
***************
*** 213,219 ****
      (Unix/NT-Portierungsbibliotheken) auf Windows NT/2000 zum Laufen
      gebracht werden. Hierzu bitte lesen Sie die in der Distribution
      enthaltene Datei <em>pgsql/doc/FAQ_MSWIN</em> oder die MS-Windows-FAQ unter
!     <a href="http://www.PostgreSQL.org/docs/faq-mswin.html">http://www.PostgreSQL.org/docs/faq-mswin.html</a>.</p>
  
      <p>Eine eigenständige Portierung auf MS Win NT/2000/XP befindet sich
      in Vorbereitung.</p>
--- 213,219 ----
      (Unix/NT-Portierungsbibliotheken) auf Windows NT/2000 zum Laufen
      gebracht werden. Hierzu bitte lesen Sie die in der Distribution
      enthaltene Datei <em>pgsql/doc/FAQ_MSWIN</em> oder die MS-Windows-FAQ unter
!     <a href="http://www.ca.PostgreSQL.org/docs/faq-mswin.html">http://www.ca.PostgreSQL.org/docs/faq-mswin.html</a>.</p>
  
      <p>Eine eigenständige Portierung auf MS Win NT/2000/XP befindet sich
      in Vorbereitung.</p>
***************
*** 270,281 ****
  
      <p>Eine Liste von Unternehmen, die Support für PostgreSQL auf kommerzieller
      Basis leisten, kann unter
!       <a href="http://www.PostgreSQL.org/users-lounge/commercial-support.html">http://www.PostgreSQL.org/users-lounge/commercial-support.html</a>
      eingesehen werden.</p>
  
      <h4><a name="1.7">1.7</a>) Was ist die neueste Version von PostgreSQL?</h4>
  
!     <p>Die neueste Version von PostgreSQL ist 7.3.</p>
  
      <p>Wir planen alle 4 Monate eine neue Version herauszugeben.</p>
  
--- 270,281 ----
  
      <p>Eine Liste von Unternehmen, die Support für PostgreSQL auf kommerzieller
      Basis leisten, kann unter
!       <a href="http://www.ca.PostgreSQL.org/users-lounge/commercial-support.html">http://www.ca.PostgreSQL.org/users-lounge/commercial-support.html</a>
      eingesehen werden.</p>
  
      <h4><a name="1.7">1.7</a>) Was ist die neueste Version von PostgreSQL?</h4>
  
!     <p>Die neueste Version von PostgreSQL ist 7.3.2 .</p>
  
      <p>Wir planen alle 4 Monate eine neue Version herauszugeben.</p>
  
***************
*** 665,675 ****
      erlaubter Backend-Prozesse wird verhindert, dass System-Ressourcen
      durch PostgreSQL aufgebraucht werden.</p>
  
-     <p>In den PostgreSQL-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 <em>MaxBackendId</em> in <em>include/storage/sinvaladt.h</em>
-     entsprechend angepasst werden mußte.
- 
      <h4><a name="3.9">3.9</a>) Was befindet sich im Verzeichnis <em>pgsql_tmp/</em>?</h4>
  
      <p>Dieses Verzeichnis enthält temporäre Dateien, die durch den <em>query executor</em>
--- 665,670 ----
***************
*** 861,866 ****
--- 856,865 ----
  </pre>
      <p>(Die Aggregatfunktionen MIN() und MAX() verwenden keine Indizes). </p>
  
+     <p>Sollte es danach aussehen, also ob der Optimierer irrtümlich einen sequentiellen 
+     Scan ausführt, führen Sie <small>SET enable_seqscan TO 'off'</small> aus und prüfen
+     Sie, ob die Indexabfrage dadurch scheller geworden ist.</p>
+ 
      <p>Bei der Nutzung von Wildcard-Operatoren wie <small>LIKE</small> oder <small>~</small>, können
      Indizes nur unter bestimmten Umständen verwendet werden:</p>
    <ul>
***************
*** 946,975 ****
      <h4><a name="4.14">4.14</a>) Was ist der Unterschied zwischen den verschiedenen <small>CHAR</small>-Typen?</h4><pre>
  Typ           interner Name   Bemerkungen
  -------------------------------------------------
- "char"        char            1 Zeichen
- CHAR(n)       bpchar          mit Leerzeichen gefüllt bis zur angegebenen Länge
  VARCHAR(n)    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änge
                                 beschränkt
  BYTEA         bytea           Bytearray mit variabler Länge
  </pre>
      <p>Der <em>interne Name</em> kommt vor allem in den Systemkatalogen und in manchen
      Fehlermeldungen vor.</p>
  
!     <p>Die letzten vier Typen sind "<em>varlena</em>"-Typen (d.h. die ersten vier
      Bytes geben die Länge an, gefolgt von den Daten). Daher ist der tatsächlich
      belegte Platz immer etwas mehr als die deklarierte Feldgröße. Allerdings
      wird unter Umständen auf diese Datentypen Datenkompression durch das <small>TOAST</small>-
      Verfahren angewendet, womit der tatsächlich belegte Platz auch geringer
      als erwartet ausfallen kann.</p>
  
!     <p><small>CHAR(n)</small> ist geeignet für die Speicherung von Zeichenketten ähnlicher Länge.
!     VARCHAR(n) ist geeignet für Zeichenketten abweichender Längen, setzt jedoch
!     eine maximale Länge. <small>TEXT</small> setzt keine Längengrenze, allerdings gibt es
!     eine systembedingte Obergrenze von 1 GB. <small>BYTEA</small> ist für binäre Daten,
!     besonders für Werte, die <small>NULL</small>-Bytes haben. Die erwähnten Typen weisen
!     ähnliche Performanzeigenschaften auf.</p>
  
      <h4><a name="4.15.1">4.15.1</a>) Wie erzeuge ich ein serielles Feld mit automatischer Erhöhung des
      Werts?</h4>
--- 945,980 ----
      <h4><a name="4.14">4.14</a>) Was ist der Unterschied zwischen den verschiedenen <small>CHAR</small>-Typen?</h4><pre>
  Typ           interner Name   Bemerkungen
  -------------------------------------------------
  VARCHAR(n)    varchar         die Größe legt die Maximallänge fest; kein
                                 Ausfüllen mit Leerzeichen
+ CHAR(n)       bpchar          mit Leerzeichen gefüllt bis zur angegebenen Länge
  TEXT          text            Die Länge wird nur durch die maximale Zeilenlänge
                                 beschränkt
  BYTEA         bytea           Bytearray mit variabler Länge
+ "char"        char            1 Zeichen
  </pre>
      <p>Der <em>interne Name</em> kommt vor allem in den Systemkatalogen und in manchen
      Fehlermeldungen vor.</p>
  
!     <p>Die ersten vier Typen sind "<em>varlena</em>"-Typen (d.h. die ersten vier
      Bytes geben die Länge an, gefolgt von den Daten). Daher ist der tatsächlich
      belegte Platz immer etwas mehr als die deklarierte Feldgröße. Allerdings
      wird unter Umständen auf diese Datentypen Datenkompression durch das <small>TOAST</small>-
      Verfahren angewendet, womit der tatsächlich belegte Platz auch geringer
      als erwartet ausfallen kann.</p>
+ 
+     <p>Für die Speicherung von Zeichenketten variabler Länge empfiehlt sich <small>VARCHAR(n)</small>. 
+     Die maximale Länge eines <small>VARCHAR(n)</small>-Felds wird bei der Tabellendefinition
+     festgelegt. <small>TEXT</small> setzt keine Längengrenze, allerdings gibt es
+     eine systembedingte Obergrenze von 1 GB. 
+ 
+     <p><small>CHAR(n)</small> ist geeignet für die Speicherung von Zeichenketten, die alle 
+     die gleiche Länge haben. Bitte beachten Sie, dass <small>CHAR(n)</small> automatisch Zeichenketten
+     bis zur definierten Feldlänge mit Leerzeichen ausfüllt, während bei <small>VARCHAR(n)</small> nur
+     die tatsächlich eingegebene Zeichenkette gespeichert wird.</p>
  
!     <p><small>BYTEA</small> ist für binäre Daten, besonders für Werte, die <small>NULL</small>-Bytes haben. </p>
!     <p>Die hier erwähnten Typen weisen ähnliche Performanzeigenschaften auf.</p>
  
      <h4><a name="4.15.1">4.15.1</a>) Wie erzeuge ich ein serielles Feld mit automatischer Erhöhung des
      Werts?</h4>
***************
*** 1043,1049 ****
      Lücken in der Sequenznummerierung verursacht.</p>

!     <h4><a name="4.17">4.16</a>) Was ist ein <small>OID</small>? Was ist ein <small>TID</small>?</h4>
  
      <p>OIDs sind PostgreSQLs Antwort auf eindeutige Zeilen-IDs. Jede Zeile,
      die in PostgreSQL erzeugt wird, bekommt eine eindeutige OID. Alle
--- 1048,1054 ----
      Lücken in der Sequenznummerierung verursacht.</p>

!     <h4><a name="4.16">4.16</a>) Was ist ein <small>OID</small>? Was ist ein <small>TID</small>?</h4>
  
      <p>OIDs sind PostgreSQLs Antwort auf eindeutige Zeilen-IDs. Jede Zeile,
      die in PostgreSQL erzeugt wird, bekommt eine eindeutige OID. Alle
***************
*** 1156,1162 ****
  </pre>
      <p> Damit diese Abfrage effizient durchgeführt wird, sollte für '<em>spalte2</em>'
      ein Index angelegt worden sein. Die Einschränkung von Abfragen mit <small>IN</small>
!     soll in einer künftigen PotsgreSQL-Version behoben werden.</p>
  
      <h4><a name="4.23">4.23</a>) Wie führe ich einen <small>OUTER JOIN</small> durch?</h4>
  
--- 1161,1167 ----
  </pre>
      <p> Damit diese Abfrage effizient durchgeführt wird, sollte für '<em>spalte2</em>'
      ein Index angelegt worden sein. Die Einschränkung von Abfragen mit <small>IN</small>
!     wird in der nächsten PostgreSQL-Version (7.4) behoben werden.</p>
  
      <h4><a name="4.23">4.23</a>) Wie führe ich einen <small>OUTER JOIN</small> durch?</h4>

---

From: Bruce Momjian <[email-masked]>
Date: Tue, 18 Feb 2003 00:08:13 -0500 (EST)

Patches applied.  Thanks.

---------------------------------------------------------------------------

> 2. Update for the German FAQ.

[ Attachment, skipping... ]

[ Attachment, skipping... ]

> 
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [email-masked]               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073