]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Brand 7.4.2. Release notes still need work.
authorBruce Momjian <bruce@momjian.us>
Fri, 5 Mar 2004 19:57:22 +0000 (19:57 +0000)
committerBruce Momjian <bruce@momjian.us>
Fri, 5 Mar 2004 19:57:22 +0000 (19:57 +0000)
16 files changed:
INSTALL
configure
configure.in
doc/FAQ_DEV
doc/FAQ_MSWIN
doc/FAQ_german
doc/FAQ_polish
doc/FAQ_russian
doc/bug.template
doc/src/FAQ/FAQ.html
doc/src/FAQ/FAQ_DEV.html
doc/src/FAQ/FAQ_german.html
doc/src/FAQ/FAQ_polish.html
doc/src/FAQ/FAQ_russian.html
src/include/pg_config.h.win32
src/interfaces/libpq/libpq.rc

diff --git a/INSTALL b/INSTALL
index a455e0cd0e1f9ad8af5361f6d7b5f5045a05b32b..5da100ca143baa5649e7fa4ccddc58086fd5ba69 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -180,7 +180,7 @@ Substitute your paths appropriately.
       need to do this.
       To make the backup, you can use the "pg_dumpall" command from the version
       you are currently running. For best results, however, try to use the
-      "pg_dumpall" command from PostgreSQL 7.4.1, since this version contains
+      "pg_dumpall" command from PostgreSQL 7.4.2, since this version contains
       bug fixes and improvements over older versions. While this advice might
       seem idiosyncratic since you haven't installed the new version yet, it is
       advisable to follow it if you plan to install the new version in parallel
@@ -212,7 +212,7 @@ Substitute your paths appropriately.
 
         mv /usr/local/pgsql /usr/local/pgsql.old
 
-After you have installed PostgreSQL 7.4.1, create a new database directory and
+After you have installed PostgreSQL 7.4.2, create a new database directory and
 start the new server. Remember that you must execute these commands while
 logged in to the special database user account (which you already have if you
 are upgrading).
index 40824514fb39f3049b72a9c4bb5291f76fd1de7b..0f0a19e3096ad3916bc4769de662e9bd15bb1480 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.53 for PostgreSQL 7.4.1.
+# Generated by GNU Autoconf 2.53 for PostgreSQL 7.4.2.
 #
 # Report bugs to <pgsql-bugs@postgresql.org>.
 #
@@ -258,8 +258,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='PostgreSQL'
 PACKAGE_TARNAME='postgresql'
-PACKAGE_VERSION='7.4.1'
-PACKAGE_STRING='PostgreSQL 7.4.1'
+PACKAGE_VERSION='7.4.2'
+PACKAGE_STRING='PostgreSQL 7.4.2'
 PACKAGE_BUGREPORT='pgsql-bugs@postgresql.org'
 
 ac_unique_file="src/backend/access/common/heaptuple.c"
@@ -769,7 +769,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures PostgreSQL 7.4.1 to adapt to many kinds of systems.
+\`configure' configures PostgreSQL 7.4.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -830,7 +830,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of PostgreSQL 7.4.1:";;
+     short | recursive ) echo "Configuration of PostgreSQL 7.4.2:";;
    esac
   cat <<\_ACEOF
 
@@ -950,7 +950,7 @@ fi
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-PostgreSQL configure 7.4.1
+PostgreSQL configure 7.4.2
 generated by GNU Autoconf 2.53
 
 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
@@ -967,7 +967,7 @@ cat >&5 <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by PostgreSQL $as_me 7.4.1, which was
+It was created by PostgreSQL $as_me 7.4.2, which was
 generated by GNU Autoconf 2.53.  Invocation command line was
 
   $ $0 $@
@@ -17990,7 +17990,7 @@ _ASBOX
 } >&5
 cat >&5 <<_CSEOF
 
-This file was extended by PostgreSQL $as_me 7.4.1, which was
+This file was extended by PostgreSQL $as_me 7.4.2, which was
 generated by GNU Autoconf 2.53.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18052,7 +18052,7 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-PostgreSQL config.status 7.4.1
+PostgreSQL config.status 7.4.2
 configured by $0, generated by GNU Autoconf 2.53,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
index b26c5fe10845a9522ce344da9d042e54c18debfe..3c16a5ac7056834b3bebbd0d4efd075b5304339e 100644 (file)
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-dnl $Header: /cvsroot/pgsql/configure.in,v 1.301.2.5 2004/02/11 17:32:09 momjian Exp $
+dnl $Header: /cvsroot/pgsql/configure.in,v 1.301.2.6 2004/03/05 19:57:20 momjian Exp $
 dnl
 dnl Developers, please strive to achieve this order:
 dnl
@@ -21,7 +21,7 @@ dnl The GNU folks apparently haven't heard that some people don't use
 dnl Texinfo. Use this sorcery to use "docdir" instead of "infodir".
 m4_define([info], [doc])
 m4_define([infodir], [docdir])
-AC_INIT([PostgreSQL], [7.4.1], [pgsql-bugs@postgresql.org])
+AC_INIT([PostgreSQL], [7.4.2], [pgsql-bugs@postgresql.org])
 m4_undefine([infodir])
 m4_undefine([info])
 AC_SUBST(docdir)
index cbed280b6cb66322c8bfdb6cda3bb2bba7fd33f6..ae1b932268f748953c0cc864c367631bef1d72c1 100644 (file)
@@ -1,12 +1,12 @@
 
           Developer's Frequently Asked Questions (FAQ) for PostgreSQL
                                        
-   Last updated: Sat Nov 29 23:56:43 EST 2003
+   Last updated: Tue Feb 10 10:16:31 EST 2004
    
    Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
    
-   The most recent version of this document can be viewed at the
-   postgreSQL Web site, http://www.PostgreSQL.org.
+   The most recent version of this document can be viewed at
+   http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html.
      _________________________________________________________________
    
                              General Questions
index 34cf67b71c39a9d9c4a069f6eabfdedb7850d665..d753fedd5f8e4c8b3d3089b22e982094b3ed7824 100644 (file)
@@ -1,7 +1,7 @@
 How to install PostgreSQL on Windows
 ====================================
 
-$Date: 2003/12/13 16:57:36 $
+$Date: 2004/03/05 19:57:20 $
 
 PostgreSQL requires the appropriate subset of Cygwin DLLs to be
 installed in order that it functions under Windows.
index 32cb546415261acc6ca36769d28571b8dd8d3e76..7ae89316772975ee92dd6d5494e9ed569a926dc0 100644 (file)
@@ -5,8 +5,8 @@
    
    Deutsche Übersetzung von Ian Barwick (barwick@gmx.net).
    
-   Letzte Aktualisierung der deutschen Übersetzung: Di., den 02.09.2003,
-   10:00 CET
+   Letzte Aktualisierung der deutschen Übersetzung: Fr., den 02.01.2004,
+   07:30 CET
    
    Die aktuellste Version dieses Dokuments liegt auf der PostgreSQL
    Website:
    
    Weitere Informationen zum Status von PostgreSQL auf der
    Microsoft-Plattform befinden sich unter
-   http://techdocs.postgresql.org/guides/Windows (en.).
+   http://techdocs.postgresql.org/guides/Windows (en.) sowie
+   http://momjian.postgresql.org/main/writings/pgsql/win32.html (en.).
    
    Eine Portierung für Novell Netware 6 gibt es unter
    http://forge.novell.com.
    
      http://www.PostgreSQL.org
      
-   Es gibt außerdem einen IRC-Channel bei EFNet und bei OpenProjects,
-   Channel #PostgreSQL. Der FAQ-Autor Bruce Momjian nutzt den
-   Unix-Befehl: irc -c '#PostgreSQL' "$USER" irc.phoenix.net um daran
-   teilzunehmen.
+   Es gibt außerdem einen IRC-Channel bei EFNet und bei Freenode, Channel
+   #PostgreSQL. Unter UNIX/Linux können Sie mit z.B. irc -c '#PostgreSQL'
+   "$USER" irc.phoenix.net bzw. irc -c '#PostgreSQL' "$USER"
+   irc.freenode.net. daran teilnehmen.
    
    Eine Liste von Unternehmen, die Support für PostgreSQL auf
    kommerzieller Basis leisten, kann unter
    
     1.7) Was ist die neueste Version von PostgreSQL?
     
-   Die neueste Version von PostgreSQL ist 7.3.4 .
+   Die neueste Version von PostgreSQL ist 7.4.1 .
    
    Die Freigabe einer neuen Version erfolgt im Schnitt ca. dreimal pro
    Jahr.
           PostgreSQL weist eine Performanz auf, die mit der von
           kommerziellen und anderen Open-Source-Datenbanken vergleichbar
           ist. In manchen Bereichen ist es schneller, in anderen
-          langsamen. Im Vergleich zu MySQL oder abgespeckten
-          Datenbank-Systemen sind INSERT- und UPDATE-Anweisungen aufgrund
-          des Transaktionsaufwands langsamer. MySQL hat allerdings keine
-          der oben erwähnten Eigenschaften. PostgreSQL setzt auf
-          Zuverlässigkeit und Funktionsumfang, obwohl selbstredend
-          ständig an Performanz- Verbesserungen gearbeitet wird. Ein
-          interessanter Vergleich zwischen PostgreSQL und MySQL befindet
-          sich unter dieser URL:
+          langsamer.
+          
+          Im Vergleich zu MySQL oder abgespeckten Datenbank-Systemen ist
+          PostgreSQL in Lastsituationen - z.B. bei zeitgleichen Zugriffen
+          durch mehrere Nutzer, komplexen Abfragen oder gleichzeitigen
+          Lese- und Schreibzugriffen schneller. MySQL ist nur bei
+          einfacheren SELECT-Abfragen mit wenigen Nutzern schneller.
+          MySQL hat allerdings wenige der oben erwähnten Eigenschaften.
+          PostgreSQL setzt auf Zuverlässigkeit und Funktionsumfang, dabei
+          wird selbstredend ständig an Performanz-Verbesserungen
+          gearbeitet. Ein interessanter Vergleich zwischen PostgreSQL und
+          MySQL befindet sich unter dieser URL:
           http://openacs.org/philosophy/why-not-mysql.html
           
    Zuverlässigkeit
     2.3) Hat PostgreSQL eine grafische Benutzerschnittstelle?
     
    Es gibt mehrere grafische Schnittstellen für PostgreSQL, darunter
-   PgAccess ( http://www.pgaccess.org), PgAdmin II
-   (http://www.pgadmin.org, nur für Win32), RHDB Admin
-   (http://sources.redhat.com/rhdb/ ) und Rekall (
-   http://www.thekompany.com/products/rekall/, proprietär). Es gibt
-   außerdem PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ), eine
-   web-basierte Schnittstelle.
+   PgAccess ( http://www.pgaccess.org), PgAdmin III
+   (http://www.pgadmin.org, RHDB Admin (http://sources.redhat.com/rhdb/ )
+   und Rekall ( http://www.thekompany.com/products/rekall/, proprietär).
+   Es gibt außerdem PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ),
+   eine web-basierte Schnittstelle.
    
     2.4) Welche Programmiersprachen und Schnittstellen gibt es?
     
    Es bestehen folgende Obergrenzen:
     Maximale Größe eine Datenbank?           unbeschränkt (es existieren
                                                Datenbanken mit 4TB)
-    Maximale Größe einer Tabelle?            16 TB
+    Maximale Größe einer Tabelle?            32 TB
     Maximale Größe einer Zeile?              1,6 TB
     Maximale Größe einer Spalte?             1 GB
     Maximale Anzahl von Zeilen in einer Tabelle?
    verfügbaren Platten- und Speicherressourcen eingeschränkt sind.
    Extreme Größen können zu Leistungseinbußen führen.
    
-   Die maximale Tabellengröße von 16 TB benötigt keine
+   Die maximale Tabellengröße von 32 TB benötigt keine
    Large-File-Unterstützung im Betriebssystem. Große Tabellen werden in
    Dateien mit einer Größe von 1 GB aufgeteilt, wodurch etwaige
    dateisystem-bedingte Beschränkungen nicht relevant sind.
@@ -1016,7 +1020,7 @@ BYTEA         bytea           Bytearray mit variabler L
     Werts?
     
    PostgreSQL bietet einen SERIAL-Datentyp. Dieser erzeugt automatisch
-   eine Sequenz und einen Index auf die angegebene Spalte. Zum Beispiel:
+   eine Sequenz auf die angegebene Spalte. Zum Beispiel:
       CREATE TABLE person (
           id   SERIAL,
           name TEXT
@@ -1028,7 +1032,6 @@ BYTEA         bytea           Bytearray mit variabler L
         id   INT4 NOT NULL DEFAULT nextval('person_id_seq'),
         name TEXT
       );
-      CREATE UNIQUE INDEX person_id_key ON person ( id );
 
    umgewandelt.
    
@@ -1175,10 +1178,10 @@ BYTEA         bytea           Bytearray mit variabler L
     4.22) Warum sind meine Unterabfragen (subqueries), die IN verwenden, so
     langsam?
     
-   Derzeit werden Unterabfragen mit der äusseren Abfrage verbunden, indem
-   für jede Reihe der äusseren Query die Ergebnisse der Unterabfrage
-   sequentiell geprüft werden. Um dies zu vermeiden, kann man IN durch
-   EXISTS ersetzen, z.B.:
+   In Versionen vor 7.4 werden Unterabfragen mit der äusseren Abfrage
+   verbunden, in dem für jede Reihe der äusseren Query die Ergebnisse der
+   Unterabfrage sequentiell geprüft werden. Um dies zu vermeiden, kann
+   man IN durch EXISTS ersetzen, z.B.:
       SELECT *
         FROM tabelle_1
        WHERE spalte1 IN (SELECT spalte2 FROM tabelle_2)
@@ -1189,8 +1192,9 @@ BYTEA         bytea           Bytearray mit variabler L
        WHERE EXISTS (SELECT spalte2 FROM tabelle_2 WHERE spalte1 = spalte2)
 
    Damit diese Abfrage effizient durchgeführt wird, sollte für 'spalte2'
-   ein Index angelegt worden sein. Die Einschränkung von Abfragen mit IN
-   wird in der nächsten PostgreSQL-Version (7.4) behoben werden.
+   ein Index angelegt worden sein. Ab PostgreSQL 7.4 IN verwendet die
+   gleichen Methoden wie die normale Tabellenverknüpfung und ist daher
+   soger EXISTS vorzuziehen.
    
     4.23) Wie führe ich einen OUTER JOIN durch?
     
@@ -1344,6 +1348,3 @@ BYTEA         bytea           Bytearray mit variabler L
    Verständnisfragen zum Inhalt der FAQ freue ich mich. Ich nehme auch
    allgemeine Fragen zu PostgreSQL gerne entgegen, verweise jedoch auf
    die Mailing-Listen als schnelle und zuverlässige Anlaufstellen.
-   
-   Diese Übersetzung basiert teilweise auf einer früheren Übersetzung von
-   Karsten Schulz (schulz@linux-systemhaus.de).
index d89b8ea7abebcd1ac9f72a04761cdd3661cb9846..f98902093c5d77cb49fc062a7710e0897581e5a0 100644 (file)
@@ -1,18 +1,19 @@
 
                  Frequently Asked Questions (FAQ) o PostgreSQL
                                        
-   Ostatnia aktualizacja: Thu Apr 18 00:44:51 EDT 2002
+   Ostatnia aktualizacja: Sobota Luty 7 22:16:21 EST 2004
+   
+   Ostatnia aktualizacja tl/umaczenia: Piatek Marzec 5 19:31:12 EST 2004
    
    Obecny maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
    
    Tl/umaczenie: Marcin Mazurek (m.mazurek@netsync.pl)
    
    Najbardziej aktualna wersje tego dokumentu mozna znalezc pod adresem:
-   http://www.PostgreSQL.org/docs/faq-english.html.
+   http://www.PostgreSQL.org/docs/faqs/FAQ.html.
    
    Odpowiedzi na pytania dotyczace konkretnych systemów operacyjnych
-   mozna znalezc pod adresem:
-   http://www.PostgreSQL.org/users-lounge/docs/faq.html.
+   mozna znalezc pod adresem: http://www.PostgreSQL.org/docs/index.html.
      _________________________________________________________________
    
                                Pytania ogólne
    2.1) Czy sa jakies driwery ODBC dla PostgreSQL?
    2.2) Jakie istnieja narzedzia pozwalajace na dostep do PostgreSQL
    przez www?
-   2.3) Czy istnieje jakies GUI dla PostgreSQL? Narzedzie do
-   raportowania? Interfejs dla "embedded query language"?
+   2.3) Czy istnieje jakies GUI dla PostgreSQL?
    2.4) Za pomoca jakich jezyków programowania mozna sie komunikowac z
    PostgreSQL?
    
-                           Pytania administratora
+                      Pytania dotyczace administracji
                                       
    3.1) Jak moge zainstalowac PostgreSQL w innej lokalizacji niz
    /usr/local/pgsql?
    3.2) Podczas startu postmaster'a, otrzymuje komunikat: Bad System Call
    lub "core dumped". Dlaczego?
-   3.3) Podczas startu postmaster'a, otrzymuje komunikato bl/edzie:
+   3.3) Podczas startu postmaster'a, otrzymuje komunikat o bl/edzie:
    IpcMemoryCreate. Dlaczego?
    3.4) Podczas startu postmaster'a, otrzymuje komunikat o bl/edzie:
    IpcSemaphoreCreate. Dlaczego?
@@ -61,8 +61,9 @@
    3.7) Jakie sa mozliwosci wyszukiwania bl/edów?
    3.8) Skad sie bierze komunikat: "Sorry, too many clients" podczas
    próby pol/aczenia sie z baza danych?
-   3.9) Co to za pliki typu pg_sorttempNNN.NN , które znajduja sie w
-   katalogu z plikami bazy danych?
+   3.9) Jakie pliki znajduja sie w pg_temp?
+   3.10) Dlaczego konieczne jest przy upgradzie PostgreSQL korzystanie ze
+   skryptów dump i restore?
    
                        Pytania dotyczace uzytkowania
                                       
@@ -72,7 +73,7 @@
    zapytania?
    4.3) Jak moge uzyskac liste wszystkich tabel czy innych rzeczy pod
    psql?
-   4.4) Jak usunac kolumne z tabeli?
+   4.4) Jak usunac kolumne z tabeli lub zmienic jej typ?
    4.5) Jaki jest maksymalny rozmiar dla rzedu, tabeli i bazy danych?
    4.6) Jak duzo miejsca w bazie danych jest potrzebne aby przechowac
    dane ze zwyczajnego pliku tekstowego?
    4.23) Jak wykonac "outer join"?
    4.24) Jak wykonywac zapytanie uzywajace kilku baz danych jednoczesnie?
    4.25) Jak zwrócic w funkcji wiele rzedów lub kolumn?
+   4.26) Dlaczego nie moge w sposób pewny tworzyc/usuwac tabel
+   tymczasowych w funkcjach PL/PgSQL?
+   4.27) Jakie sa mozliwosci replikacji w PostgreSQL?
+   4.28) Jakie mozliwosci szyfrowania oferuje PostgreSQL?
    
                            Rozwijanie PostgreSQL
                                       
                                       
     1.1) Co to jest PostgreSQL? Jak to wymawiac?
     
-   PostgreSQL wymawia sie Post-Gres-kju-el.
+   PostgreSQL wymawia sie Post-Gres-kju-el. Czesto podczas rozmów uzywany
+   jest termin "Postgres"
    
    PostgreSQL jest rozszerzeniem systemu zarzadzania bazami danych -
    POSTGRES, kolejna generacja rozwojowego prototypu DBMS. Mimo, ze
    Rozwój PostgreSQL jest prowadzony przez grupe ludzi z Internetu,
    komunikujacych sie poprzez mailowe listy dyskusyjne PostgreSQL.
    Obecnym koordynatorem jest Marc G. Fournier (scrappy@PostgreSQL.org).
-   (Zobacz ponizej jak sie przyl/aczyc). Ta grupa ludzi jest
-   odpowiedzialna za cal/y rozwój PostgreSQL.
+   (Zobacz pytanie 1.6 jak sie przyl/aczyc). Ta grupa ludzi jest
+   odpowiedzialna za cal/y rozwój PostgreSQL. PostgreSQL jest projektem
+   nie kontrolowanym przez zadna firme, aby wziac udzial/ w jego rozwoju
+   sprawdz, http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html
    
    Autorami PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. Wiele innych
-   osób pomogl/o przy portowaniu, testowaniu, debugowaniu, i rozwijaniu
+   osób pomogl/o przy portowaniu, testowaniu, debugowaniu i rozwijaniu
    kodu. Oryginalny kod Postgresa, na którym zostal/ oparty PostgreSQL,
    byl/ wysil/kiem studentów oraz pracowników pracujacych pod
    kierownictwem profesora Michael'a Stonebraker'a z University of
     
    Klient
    
-   Mozliwa jest kompilacja bibliteki C libpq C, psql oraz innych
+   Mozliwa jest kompilacja bibliteki C libpq, psql oraz innych
    interfejsów i uruchamianie ich na platformie MS Windows. W tym wypadku
    klient jest uruchamiany na MS Windows a z serwerem komunikuje sie
    poprzez TCP/IP. Serwer moze dzial/ac na dowolnej wspieranej platformie
-   Unixowej. Plik win31.mak jest dol/aczony do zródel/, aby mozna byl/o
+   Unixowej. Plik win32.mak jest dol/aczony do zródel/, aby mozna byl/o
    stworzyc biblioteke libpq oraz program psql dzial/ajace w srodowisku
    Win32. PostgreSQL moze sie takze komunikowac z klientami ODBC.
    
    
    Serwer moze byc uruchamiany na Windows NT i Win2k uzywajac bibliotek
    Cygwin, Cygnus Unix/NT. W pliku pgsql/doc/FAQ_MSWIN znajdujacym sie w
-   zródl/ach lub pod adresem: MS Windows FAQ na naszych stronach. Nie
-   planujemy tworzyc portu przeznaczonego docelowo dla platformy
-   Microsoft.
+   zródl/ach lub pod adresem:
+   http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN na naszych
+   stronach.
+   
+   Obecnie prowadzone sa prace nad stworzeniem wersji dla MS Win
+   NT/200/XP. Jesli chcesz sie dowiedziec o obecnym statusie tych prac
+   zobacz http://techdocs.postgresql.org/guides/Windows and
+   http://momjian.postgresql.org/main/writings/pgsql/win32.html.
+   
+   Istnieje takze port pod Novell Netware 6 dostepny pod adresem
+   http://forge.novell.com.
    
     1.5) Skad mozna sciagnac PostgreSQL?
     
    irc.phoenix.net.
    
    Lista firm oferujacych wsparcie na zasadach komercyjnych znajduje sie
-   pod adresem:
-   http://www.postgresql.org/users-lounge/commercial-support.html.
+   pod adresem: http://techdocs.postgresql.org/companies.php.
    
     1.7) Jaka jest ostatnia dostepna wersja?
     
-   Ostatnia dostepna wersja PostgreSQL to 7.2.1.
+   Ostatnia dostepna wersja PostgreSQL to 7.4.1.
    
-   Planujemy publikowanie kolejnych wersji co cztery miesiace.
+   Planujemy publikowanie kolejnych wersji co szesc do osmiu miesiecy.
    
     1.8) Jaka dokumentacja jest dostepna?
     
    Kilka manuali, stron podecznika man, oraz kilka przykl/adów do
    testowania sa zal/aczone w samej dystrybucji. Znajduja sie one w
    katalogu /doc. Manual moze byc takze przegladany poprzez strony www
-   pod adresem http://www.PostgreSQL.org/users-lounge/docs/.
+   pod adresem http://www.PostgreSQL.org/docs.
    
    Istnieja takze dwie ksiazki dostepne online pod adresami
    http://www.PostgreSQL.org/docs/awbook.html i
    http://www.commandprompt.com/ppbook/. Lista ksiazek o PostgreSQL,
    które mozna kupic znajduje sie pod adresem
-   http://www.postgresql.org/books/. Zbiór technicznych artykul/ów o
-   PostgreSQL znajduje sie pod adresem http://techdocs.postgresql.org/.
+   http://techdocs.PostgreSQL.org/techdocs/bookreviews.php. Zbiór
+   technicznych artykul/ów o PostgreSQL znajduje sie pod adresem
+   http://techdocs.postgresql.org/.
    
    psql posiada kilka wbudowanych polecen \d, za pomoca których mozna
-   sprawdzic informacje dotyczace typów, operatorów, funkcji, aggregatów
+   sprawdzic informacje dotyczace typów, operatorów, funkcji, agregatów
    itd.
    
    Na naszej stronie mozna znalezc duzo wiecej dokumentacji.
    Jest okol/o 12 osób, które maja uprawnienia do commit'owania w CVS
    PostgreSQL'a. Kazdy z nich submitowal/ tak wiele wysokiej jakosci
    patchy, ze stal/o sie niemozliwe dla obecnych commiterów byc z nimi na
-   biezaco, majac pewnosc ze sa to poprawki wysokiej jakosci.
+   biezaco, wiec musielismy im ufac i miec pewnosc, ze ich poprawki sa
+   wysokiej jakosci.
    
     1.13) Jak moge zgl/aszac bl/edy?
     
           integrity, oraz wyrafinowany system blokowania. Mamy takze
           wl/asciowsci których inni nie posiadaja, jak typy definiowane
           przez uzytkownika, dziedziczenie, rules, multi-version
-          concurrency control, która redukuje problemy z blokowaiem (lock
-          contention).
+          concurrency control, która redukuje problemy z blokowaniem
+          (lock contention).
           
    Wydajnosc
-          PostgreSQL dzial/a w dwóch trybach. Standardowy tryb fsync
-          zrzuca kazda zakonczona transakcje na dysk, gwarantujac w ten
-          sposób to, ze jesli system operacyjny sie zawiesi lub straci
-          zasilanie wciagu kilku nastepnych sekund, wszystkie Twoje dane
-          zostana bezpiecznie zapisane na dysku. W tym trybie, jestesmy
-          wolniejsi niz wiekszosc komercyjnych baz danych, czesciowo
-          dlatego ze niewiele z nich wykonuje taki sposób zapisywania
-          danych jako domyslne ustawienie. W trybie no-fsync z regul/y
-          jestesmy szybsi niz komercyjne bazy danych, chociaz w tym
-          wypadku zawieszenie sie systemu moze spowodowac uszkodzenie
-          danych. Pracujemy nad tym, aby stworzyc posredni tryb, który
-          powoduje mniejsza redukcje wydajnosci niz tryb fsync i pozwoli
-          na integralnosc danych w przeciagu 30 sekund do zal/amania sie
-          systemu operacyjnego.
-          Porównujac do MySQL czy innych prostych baz danych, jestesmy
-          wolniejsi przy wykonywaniu insertów/updatów przez narzut
-          spowodowany przez transakcje. Oczywiscie MySQL nie posiada
-          zadnej z wymienionych wyzej mozliwosci. PostgreSQL zostal/
-          zbudowany aby byc DBMS elastycznym i bogatym z róznorakie
-          mozliwosci, aczkolwiek dbamy, aby poprawiac jego wydajnosc
-          poprzez analize kodu zródl/owego i profilowanie. Ciekawe
-          porównanie PostgreSQL i MySQL mozna znalezc pod adresem
-          http://openacs.org/why-not-mysql.html
-          Kazde pol/aczenie klienta jest obsl/ugiwane przez nas poprzez
-          stworzenie nowego procesu Unixowego. Procesy backendu dziela
-          bufory danych oraz informacje o blokadach. Uzywajac wielu
-          procesorów, rózne backendy moga bez problemu dzial/ac na
-          róznych procesorach.
+          Wydajnosc PostgreSQL jest podobna do innych komercyjnych i open
+          source baz danych. W niektórych sytuacjach jest szybszy w
+          niektórych wolniejszy. W porównianiu do MySQL lub mniejszych
+          baz danych jestesmy szybsi przy wielu uzytkownikach,
+          skomplikowaych zapytaniach i duzym obciazeniu podczas. MySQL
+          jest szybszy dla prostych SELECTów wykonywanych przez niewielu
+          uzytkowników. Spowodowane jest to narzutem, który sie pojawia
+          przy transakcjach. Oczywiscie MySQL nie ma wiekszosci z
+          rozwiazan opisanych powyzej w sekcji Mozliwosci . PostgreSQL
+          zostal/ stworzony z mysla o stabilnosci, oraz szerokiej gamie
+          mozliwosci, ale mimo to staramy sie w kazdej wersji poprawiac
+          jego wydajnosc. Ciekawe porównanie PostgreSQL i MySQL mozna
+          znalezc pod adresem
+          http://openacs.org/philosophy/why-not-mysql.html Dodatkowo,
+          MySQL jest firma, która dystrybuuje jej produkty poprzez zasade
+          Open Source i wymaga wykupienia licencji w przypadku tworzenia
+          close-source software, co ie ma miejsca w przypadku PostgreSQL.
           
    Stabilnosc
           Zdajemy sobie sprawe, ze DBMS musi byc stabilny, w przeciwnym
           wypadku jest bez wartosci. Staramy sie publikowac kod stabilny,
           dobrze przetestowany, z minimum mozliwych bl/edów. Kazde
-          wydanie poprzedza conajmniej miesiac testów wersji beta.
+          wydanie poprzedza co najmniej miesiac testów wersji beta.
           Patrzac na historie wydan PostgreSQL widac, ze dostarczamy
           stabilne, dobrze sprawdzone wersje, które sa gotowe do uzycia w
           srodowisku produkcyjnym. Myslimy, ze proces publikowania
     1.15) W jaki sposób moge wesprzec finansowo PostgreSQL?
     
    PostgreSQL korzysta z najlepszej infrastruktury od samego poczatku
-   istnienia projektu, tzn. szesciu lat. Wszystko to zawdzieczamy
-   Marc'owi Fournier'owi, który stworzyl/ ta infrastrukture i zarzadza
-   nia od lat.
+   istnienia projektu, czyli roku 1996 kiedy rozpoczelismy prace.
+   Wszystko to zawdzieczamy Marc'owi Fournier'owi, który stworzyl/ ta
+   infrastrukture i zarzadza nia od lat.
    
    Wysokiej jakosci infrastruktura jest bardzo wazna dla kazdego projektu
    open-source. Zapobiega przerwom w rozwoju projektu i jakimkolwiek
    tanie. Istnieje wiele róznych miesiecznych, czy jednorazowych
    wydatków, które trzeba ponosic aby wszystko dzial/al/o jak nalezy.
    Jesli Ty, badz Twoja firma moze wspomóc finansowo rozwój PostgreSQL
-   odwiedz adres: http://www.pgsql.com/pg_goodies gdzie opisane jest jak
+   odwiedz adres: http://store.pgsql.com/shopping/ gdzie opisane jest jak
    to zrobic.
    
    Chociaz na stronie wspomniana jest nazwa PostgreSQL Inc, "datki" sa
    wysl/ac czek na adres kontaktowy.
      _________________________________________________________________
    
+   Jesli mozesz sie pochwalic udanymi wdrozeniami PostgreSQL, prosimy
+   abys zgl/osil/ nam to na stronie: http://advocacy.postgresql.org.
+   
                            User Client Questions
                                       
     2.1) Czy sa jakies driwery ODBC dla PostgreSQL?
     
    Dostepne sa dwa driwery ODBC: PsqlODBC i OpenLink ODBC.
    
-   PsqlODBC jest dol/aczony do zródel/. Wiecej informacji na jego temat
-   mozesz znalezc pod adresem: ftp://ftp.PostgreSQL.org/pub/odbc/.
+   Mozesz pobrac PsqlODBC z adresu
+   http://gborg.postgresql.org/project/psqlodbc/projdisplay.php
    
    OpenLink ODBC moze byc pobrany z adresu: http://www.openlinksw.com.
    Wspól/pracuje ze standardowym oprogramowaniem klienckim ODBC wiec w
    ten sposób mozesz korzystac z PostgreSQL ODBC dostepnego na kazdej
-   plaformie która wspiera (Win, Mac, Unix, VMS).
+   pltaformie która wspiera (Win, Mac, Unix, VMS).
    
    Autorzy beda prawdopodobnie sprzedawac ten produkt osobom które
    wymagaja komercyjnego wsparcia, ale wersja darmowa bedzie zawsze
    dostepna. Wszystkie pytania mozesz wysyl/ac na adres:
    postgres95@openlink.co.uk.
    
-   Sprawdz takze rozdzial/ o ODBC w "Programmer's Guide".
-   
     2.2) Jakie istnieja narzedzia pozwalajace na dostep do PostgreSQL przez
     www?
     
    Dobry podrecznik dla poczatkujacych o dostepie do bazy danych przez
    www mozesz znalezc pod adresem: http://www.webreview.com
    
-   Inny znajduje sie pod adresem: http://www.phone.net/home/mwm/hotlist/.
-   
    Do integracji z www, swietnym rozwiazaniem jest PHP. Mozesz znalezc
    wiecej informacji na ten temat pod adresem http://www.php.net.
    
    Wiele osób w przypadku skomplikowanych rozwiazan uzywa Perl'a i
-   modul/u CGI.pl.
+   modul/u CGI.pl lub mod_perl.
    
-    2.3) Czy istnieje jakies GUI dla PostgreSQL? Narzedzie do raportowania?
-    Interfejs dla "embedded query language"?
+    2.3) Czy istnieje jakies GUI dla PostgreSQL?
     
-   Mamy cal/kiem mil/y interfejs graficzny, który zostal/ nazwany
-   pgaccess i jest on dostarczany jako czesc zródel/. pgaccess posiada
-   takze generator raportów. Mozna go znalezc pod adresem
-   http://www.flex.ro/pgaccess
+   Tak, istnieje kilka interfejsów graficznych dla PostgreSQL. Wsród nich
+   PgAccess ( http://www.pgaccess.org), PgAdmin III
+   (http://www.pgadmin.org), RHDB Admin (http://sources.redhat.com/rhdb/
+   ) oraz Rekall ( http://www.thekompany.com/products/rekall/,
+   komercyjny). Istnieje takze PHPPgAdmin (
+   http://phppgadmin.sourceforge.net/ ), webowy interfejs dla PostgreSQL.
    
-   Udostepnilismy takze ecpg, który jest "embedded SQL query language
-   interface" dla jezyka C.
+   Wiecej informacji na ten temat znajduje sie pod adresem See
+   http://techdocs.postgresql.org/guides/GUITools.
    
     2.4) Za pomoca jakich jezyków programowania mozna sie komunikowac z
     PostgreSQL?
     
-   Mamy wsparcie dla:
+   Najbardziej popularne jezyki posiiadaja wl/asny interfejs dla
+   PostgreSQL. Sprawdz liste rozszerzen dla intersujacego Ciebie jezyka
+   programowania.
+   
+   Ze zródl/ami PostreSQL dystrubuowane sa interfejsy dla nastepujacych
+   jezyków programowania:
      * C (libpq)
-     * C++ (libpq++)
      * Embedded C (ecpg)
      * Java (jdbc)
-     * Perl (perl5)
-     * ODBC (odbc)
      * Python (PyGreSQL)
      * TCL (libpgtcl)
-     * C Easy API (libpgeasy)
-     * Embedded HTML (PHP z http://www.php.net)
+       
+   Inne interfejsy sa dostepne pod adresem: http://gborg.postgresql.org w
+   sekcji Drivers/Interfaces.
      _________________________________________________________________
    
-                           Pytania administratora
+                      Pytania dotyczace administracji
                                       
     3.1) Jak moge zainstalowac PostgreSQL w innej lokalizacji niz
     /usr/local/pgsql?
    pojedyncze INSERTy. Po drugie polecenia SQL nie zawarte w bloku
    okreslajacym transakcje - BEGIN WORK/COMMIT, sa traktowane jako
    pojedyncza transakcja. Rozwaz wykonanie kilku polecen/zdan SQL w
-   jednym bloku transakcji. To redukuje narzut powodowany przez
+   jednym bloku transakcji. To redukuje narzut nakl/adany przez
    transakcje. Przy duzych zmianach w danych, warto usunac i stworzyc na
    nowo indeksy.
    
    limit na maksymalna liczbe procesów backendu to obawa o wyczerpanie
    zasobów systemu.
    
-   W wersjach PostgreSQL wczesniejszych niz 6.5, maksymalna liczba
-   backendów byl/a ustawiona na 64, a zmiana tej wartosci wymaga
-   rekompliacji po zmianie stal/ej MaxBackendId w pliku
-   include/storage/sinvaladt.h.
-   
-    3.9) Co to sa za pliki typu: pg_sorttempNNN.NN, które znajduja sie w
-    katalogu z plikami bazy danych?
+    3.9) Jakie pliki znajduja sie w pg_temp?
     
-   Sa to tymczasowe pliki utworzone przez executor. Dla przykl/adu, jesli
-   jakas operacja sortowania jest wymagana do wykonania ORDER BY, a samo
-   sortowanie wymaga wiecej miejsca niz paratmetr backendu -S ustawil/ do
-   wykorzystania, wtedy tymczasowe pliki sa uzywane do przechowywania
-   tych danych.
+   Katalog ten zawiera tymczasowe pliki utworzone przez executor. Dla
+   przykl/adu, jesli jakas operacja sortowania jest wymagana do wykonania
+   ORDER BY, a samo sortowanie wymaga wiecej miejsca niz parametr
+   backendu -S ustawil/ do wykorzystania, wtedy tymczasowe pliki sa
+   uzywane do przechowywania tych danych.
    
    Pliki tymczasowe powinny byc usuniete automatycznie, ale mogl/o sie to
    nie stac jesli proces backendu w miedzyczasie nie zakonczyl/ sie
    poprawnie podczas operacji sortowania. Jesli w danym momencie nie
    dzial/aja zadne procesy backendów mozesz spokojnie usunac pliki
    pg_tempNNN.NN.
+   
+    3.9) Dlaczego konieczne jest przy upgradzie PostgreSQL korzystanie ze
+    skryptów dump i restore?
+    
+   Twórcy PostgreSQL dokonuja jedynie mal/ych zmian pomiedzy mal/ymi
+   upgradami wersji, np z 7.2 do 7.2.1, wtedy upgrade nie wymaga
+   korzystania z dump i restore. Przy wiekszych zmianach, np. z wersji
+   7.2 do 7.3, czesto zmianymaja wpl/yw na format przechowywanych danych.
+   Zmiany te sa na tyle skomplikowane, ze nie utrzymujemy zgodosci z
+   poprzednimi wersjami PostgreSQL. dump pozwala na wydostanie danych w
+   takiej postaci, w której l/atwe jest ich zaimportowanie do nowszych
+   wersji bez kl/opotu.
+   
+   W wydaniach gdzie zmiany nie dotycza formatu danych na dysku, mozna
+   wykorzystac skryptu pg_upgrade, do upgradu bez uzycia dump/restore.
+   Dokumentacja do danego wydania zawiera informacje czy mozliwe jest
+   uzycie pg_upgrade.
      _________________________________________________________________
    
                          Pytania dotyczace uzywania
    pierwszych rzedów, byc moze bedzie koniecznosc wykonania zapytania do
    momentu az zostana znalezione pozadane wyniki.
    
+   Aby otrzymac losowy rzad, uzyj:
+    SELECT col
+    FROM tab
+    ORDER BY random()
+    LIMIT 1;
+        
+
     4.3) Jak moge uzyskac liste wszystkich tabel czy innych rzeczy pod psql?
     
    Mozesz sprawdzic zawartosc zródel/ psql, a konkretnie plik
    wtedy po wykonaniu polecenia z backslashem wyswietlane bedzie
    zapytanie, które w rzeczywistosci jest wykonywane.
    
-    4.4) Jak usunac kolumne z tabeli?
+    4.4) Jak usunac kolumne z tabeli lub zmienic jej typ?
     
-   Nie mamy zaimplementowanego ALTER TABLE DROP COLUMN, ale mozesz zrobic
-   tak:
-    SELECT ...  -- wybierz zawartosc wszystkich kolumn poza ta jedna której chc
-esz sie pozbyc
+   DROP COLUMNT zostal/o dodane w wersji 7.3 przy poleceniu ALTER TABLE
+   DROP COLUMN. We wczesniejszych wersjach mozesz zrobic tak:
+         BEGIN;
+         LOCAL TABLE old_table;
+    SELECT ...  -- wybierz wszystkie kolumny poza ta jedna której chcesz sie po
+zbyc
     INTO TABLE new_table
     FROM old_table;
     DROP TABLE old_table;
     ALTER TABLE new_table RENAME TO old_table;
 
+   Aby zmienic typ danych kolumny mozesz zrobic tak:
+   BEGIN;
+   ALTER TABLE tab ADD COLUMN new_col new_data_type;
+   UPDATE tab SET new_col = CAST(old_col AS new_data_type);
+   ALTER TABLE tab DROP COLUMN old_col;
+   COMMIT;
+        
     4.5) Jaki jest maksymalny rozmiar dla rzedu, tabeli i bazy danych?
     
    Oto wszystkie ograniczenia:
-    Maksymalny rozmiar dla bazdy danych?     nieograniczony ( istnieja bazy dan
-ych o wielkosci 500 GB databases )
-    Maksymalny rozmiar dla tabeli?           16 TB
-    Maksymalny rozmiar dla rzedu?            nieograniczony w 7.1 i pózniejszyc
-h
-    Maksymalny rozmiar pola?                 1 GB w 7.1 and later
+    Maksymalny rozmiar dla bazdy danych?     nieograniczony ( istnieja
+         bazy danych o wielkosci 32 TB databases )
+    Maksymalny rozmiar dla tabeli?           32 TB
+    Maksymalny rozmiar dla rzedu?            1.6 TB
+    Maksymalny rozmiar pola?                 1 GB
     Maksymalna liczba rzedów w tabeli?       nieograniczona
-    Maksymalna liczba kolumn w tabeli?    250-1600 w zalezonosci od typów kolum
-n
-    Makasymalna liczba indeksów na tabeli?    nieograniczona
+    Maksymalna liczba kolumn w tabeli?       250-1600 w zalezonosci od typów ko
+lumn
+    Makasymalna liczba indeksów na tabeli?   nieograniczona
 
    Oczywiscie "nieograniczony" nie jest prawda tak do konca, istnieja
    ograniczenia wynikajace z dostepnego miejsca na dysku, pamieci/swapa.
    Kiedy wielkosci te beda bardzo duze moze odbic sie to na wydajnosci.
    
-   Maksymalny rozmiar tabeli, czyli 16 TB nie wymaga od systemu
+   Maksymalny rozmiar tabeli, czyli 32 TB nie wymaga od systemu
    operacyjnego wsparcia dla duzych plików. Duze tabele sa przechowywane
    jako pliki o rozmiarze 1 GB, wiec ograniczenia co do wielkosci plików
    narzucone przez system plików nie sa istotne.
@@ -786,6 +821,9 @@ n
    zawieraja pewne dane, wiec w pewnych przypadkach moga byc cal/kiem
    duze.
    
+   NULLe sa przechowywane jako mapy bitowe, wiec uzywaja bardzo mal/o
+   miejsca.
+   
     4.7) Jak moge sprawdzic jakie tabele, klucze, bazy danych i uzytkownicy sa
     utworzeni?
     
@@ -821,14 +859,32 @@ n
    sortowanie jest zazwyczaj szybsze nie wyszukiwanie za pomoca indeksu
    na duzej tabeli.
    Jakkolwiek LIMIT w pol/aczeniu z ORDER BY czesto bedzie wykorzystywal/
-   indeksów poniewaz jedynie mal/a czesc z tabeli jest zwracana.
+   indeksy poniewaz jedynie mal/a czesc z tabeli jest zwracana. W
+   rzeczywistosci, chociaz MAX() i MIN() nie uzywaja indeksów, mozliwe
+   jest aby zwrócic te wartosci uzywajac indeksów poprzez uzycie ORDER BY
+   i LIMIT.
+    SELECT col
+    FROM tab
+    ORDER BY col [ DESC ]
+    LIMIT 1;
+        
+   Jesli uwazasz, ze optimizer myli sie wybierajac sequential scan, uzyj
+   SET enable_seqscan TO 'off' i uruchom testy aby sprawdzic czy wtym
+   wypadku zapytanie bedzie szybciej wykonywane.
    
    Kiedy uzywa sie operatorów dopasujacych takich jak LIKE lub ~, indeksy
-   beda uzywane jedynie jesli poczatek wyszukiwania jest oparty na
-   poczatku l/ancucha tekstu. Dlatego, aby uzywac indeksów, dopasowania
-   operatorem LIKE nie moga sie zaczynac %, a dopasowania operatorem ~
-   (dopasowania regularne) musza sie zaczynac znakiem specjalnym ^.
-   
+   beda uzywane jedynie w pewnych wypadkach:
+     * Poczatek wyszukiwania jest oparty na poczatku l/ancucha tekstu.
+          + wzorce LIKE nie moga sie zaczynac %
+          + dopasowania operatorem ~ (dopasowania regularne) musza sie
+            zaczynac znakiem specjalnym ^.
+     * Poczatek wyszukiwania nie moze sie zaczynac od klas znaków, np.
+       [a-e].
+     * Case-insensitive searches such as ILIKE and ~* do not utilise
+       indexes. Instead, use functional indexes, which are described in
+       section 4.12.
+     * Standardowe locale C musi byc uzyte przy wykonywaniu initdb
+       
     4.9) Jak moge sprawdzic w jakis sposób "query optimizer" wykonuje moje
     zapytanie?
     
@@ -869,13 +925,12 @@ n
    queries) bez wykorzystywania zasobozernego wyszukiwania.
    
     4.12) Jak moge uzywac wyrazen regularnych w zapytaniach i zapytan
-    case-insensitive w wyrazeniach regularnych? jak korzystac z indeksów dla
+    case-insensitive w wyrazeniach regularnych? Jak korzystac z indeksów dla
     zapytan case-insensitive?
     
    Operator ~ moze byc wykorzystywany do wyszukiwania za pomoca wyrazen
    regularnych, a ~* do wyszukiwania case-insensitive z wyrazeniami
-   regularnymi. Wariant case-insensitive dla LIKE zostal/ nazwany ILIKE i
-   jest dostepny w PostgreSQL 7.1 i pózniejszych wersjach.
+   regularnymi. Wariant case-insensitive dla LIKE zostal/ nazwany ILIKE.
    
    Porównania case-insensitive sa zazwyczaj wykonywane w nastepujacy
    sposób:
@@ -897,31 +952,35 @@ n
     
 Type            Nazwa wewnetrzna   Uwagi
 --------------------------------------------------
-"char"          char                      1 znak
-CHAR(#)         bpchar             wypel/niane pustymi znakami do podanej dl/ug
-osci
-VARCHAR(#)      varchar            rozmiar okresla maksymalna dl/ugosc, nie ma
+VARCHAR(n)      varchar            rozmiar okresla maksymalna dl/ugosc, nie ma
 tutaj wypel/niania
+CHAR(n)         bpchar             wypel/niane pustymi znakami do podanej dl/ug
+osci
 TEXT            text               bez limitu na dl/ugosc l/ancucha
 BYTEA           bytea              zmiennej dl/ugosci tablica bajtów (null-byte
  safe)
+"char"          char                      1 znak
 
    Jesli bedziesz przegladac katalogi systemowe lub komunikaty o bl/edach
    czesto spotkasz sie z podanymi powyzej nazwami wewnetrznymi.
    
-   Ostatnie cztery typy powyzej to tzw typy "varlena" (np. pierwsze
+   Pierwsze cztery typy powyzej to tzw typy "varlena" (np. pierwsze
    cztery bajty na dysku to dl/ugosc, po których jest data). Dlatego
    faktyczna dl/ugosc takiego l/ancucha jest troche wieksza niz
    zadeklarowany rozmiar. Te typy takze podlegaja kompresji lub moga byc
    przechowywane out-of-line jako TOAST, wiec faktyczne zuzycie miejsca
    na dysku moze byc mniejsze niz oczekiwane.
-   
-   CHAR() jast najlepszym typem do przechowywania l/ancuchów o tej samej
-   dl/ugosci. VARCHAR() jest najodpowiedniejszy do przechowywania
-   l/ancuchów o róznej dl/ugosci ale okresla on maksymalna jego dl/ugosc.
-   TEXT jest najlepszy dla l/ancuchów o dowolnej dl/ugosci, nie
-   przekraczajacej 1GB. BYTEA sl/uzy do przechowywania danych binarnych,
-   w szczególnosci dla danych zawierajacych NULL bajty.
+   VARCHAR(n) jest najodpowiedniejszy do przechowywania l/ancuchów o
+   róznej dl/ugosci ale okresla on maksymalna jego dl/ugosc. TEXT jest
+   najlepszy dla l/ancuchów o dowolnej dl/ugosci, nie przekraczajacej
+   1GB.
+   
+   CHAR(n) jast najlepszym typem do przechowywania l/ancuchów o tej samej
+   dl/ugosci. CHAR(n) wypel/nia dane do zadanej dl/ugosci, podczas gdy
+   VARCHAR(n) przechowuje jedynie dane dostarczone. BYTEA sl/uzy do
+   przechowywania danych binarnych, w szczególnosci dla danych
+   zawierajacych NULL bajty. Wszystkie typy opisane tutaj maja podobne
+   charakterystyki jesli chodzi o wydajnosc.
    
     4.15.1) Jak moge utworzyc pole które samo zwieksza swoja wartosc?
     
@@ -1039,16 +1098,16 @@ BYTEA           bytea              zmiennej dl/ugosci tablica bajt
      * range variable, table name, table alias
        
    Liste terminów zwiazanych z bazami danych mozesz znalezc pod tym
-   adresem:http://www.comptechnews.com/~reaster/dbdesign.html
+   adresem:http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/
+   glossary/glossary.html.
    
     4.18) Skad bierze sie ten bl/ad "ERROR: Memory exhausted in
     AllocSetAlloc()"?
     
-   Jesli uzywasz wersji starszej niz 7.1, upgrade moze rozwiazac ten
-   problem. Jest takze mozliwe, ze po prostu wyczerpal/a Ci sie pamiec
-   wirtualna (virtual memory) w systemie lub Twój kernel ma zbyt nisko
-   ustawione limity dla pewnych zasobów. Spróbuj wykonac nastepujace
-   polecenia zanim uruchomisz postmaster'a:
+   Prawdopodobnie wyczerpal/a Ci sie pamiec wirtualna (virtual memory) w
+   systemie lub Twój kernel ma zbyt nisko ustawione limity dla pewnych
+   zasobów. Spróbuj wykonac nastepujace polecenia zanim uruchomisz
+   postmaster'a:
     ulimit -d 262144
     limit datasize 256m
 
@@ -1087,24 +1146,31 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
 
     4.22) Dlaczego zapytania uzywajace IN sa takie wolne?
     
-   Obecnie l/aczymy podzapytania w outer queries poprzez sekwencyjne
-   przeszukiwanie wyników podzapytania dla kazdego rzedu z outer query.
-   Mozna to ominac zastepujac IN przez EXISTS:
+   W wersjach wczesniejszych niz 7.4 l/aczymy podzapytania w outer
+   queries poprzez sekwencyjne przeszukiwanie wyników podzapytania dla
+   kazdego rzedu z outer query. Jesli podzapytanie zwraca jedynie kilka
+   rzedów a zewnetrzne zapytanie zwraca ich wiele, IN jest najszybsze.
+   Aby przyspieszyc inne zapytania mozna zastapic IN przez EXISTS:
 SELECT *
     FROM tab
-    WHERE col1 IN (SELECT col2 FROM TAB2)
+    WHERE col IN (SELECT subcol FROM subtab)
 
    na:
 SELECT *
     FROM tab
-    WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2)
+    WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col)
 
-   Mamy zamiar poprawic to ograniczenie w przyszl/ych wydaniach.
+   Aby to rozwiazanie byl/o szybkie, subcol powinna byc kolumna
+   indeksowana.
+   
+   W wersji 7.4 i pózniejszych, IN w rzeczywistosci uzywa tej samej
+   wyrafinowanej techniki l/aczenia jak normalne zapytania i jest
+   preferowane nad uzywaniem EXISTS.
    
     4.23) Jak wykonac "outer join"?
     
-   PostgreSQL 7.1 i pózniejsze wersje maja zaimplementowane outer join
-   wykorzystujac standardowa skl/adnie SQL. Ponizej dwa przykl/ady:
+   PostgreSQL ma zaimplementowane outer join wykorzystujac standardowa
+   skl/adnie SQL. Ponizej dwa przykl/ady:
     SELECT *
     FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
 
@@ -1113,7 +1179,7 @@ SELECT *
     FROM t1 LEFT OUTER JOIN t2 USING (col);
 
    Te dwa identyczne zapytania l/acza kolumne t1.col z kolumna t2.col,
-   ale takze zwróca niepol/aczone rzedy w t1 (te które nie pasuja w t2).
+   ale takze zwróca niepol/aczone rzedy w t1 (te, które nie pasuja w t2).
    RIGHT join dodal/by niepol/aczone rzedy z tabeli t2. FULL join
    zwrócil/by rzedy plus dodatkowo wszystkie rzedy z tabel t1 i t2.
    Sl/owo OUTER jest opcjonalne i jest dodawane domyslnie przy LEFT,
@@ -1138,37 +1204,75 @@ SELECT *
    katalogi systemowe, nie jest do konca jasne jak zapytanie pomiedzy
    róznymi bazami danych powinno sie zachowywac.
    
-   Oczywiscie klient moze l/aczyc sie z róznymi bazami danych i l/aczyc
-   informacje w ten sposób uzyskana.
+   contrib/dblink pozwala na wykonywanie zapytan poprzez rózne bazy
+   danych wywol/ujac odpowiednie funkcje. Oczywiscie klient moze l/aczyc
+   sie z róznymi bazami danych i l/aczyc informacje w ten sposób uzyskana
+   po stronie klienta.
    
     4.25) Jak zwrócic w funkcji wiele rzedów lub kolumn?
     
-   Mozesz zwracac zbiory z funkcji PL/pgSQL uzywajac refcursors. Zobacz
-   http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html,
-   sekcje 23.7.3.3.
+   Mozesz w l/atwy sposób zwracac wiele rzedów lub kolumn uzywajac
+   funkcji z:
+   http://techdocs.postgresql.org/guides/SetReturningFunctions.
    
+    4.26) Dlaczego nie moge w sposób pewny tworzyc/usuwac tabel tymczasowych w
+    funkcjach PL/PgSQL?
+    
+   PL/PgSQL przechowuje w cache zawartosc funkcji, niepozadanym efektem
+   tego jest to, ze gdy taka funkcja korzysta z tabel tymczasowych, które
+   sa pózniej kasowane i odtwarzane, a funkcja wywol/ywana jest
+   ponownie,jej wywol/anie nie powiedzie sie poniewaz cachowana funkcja
+   wciaz bedzie wskazywac na stara tablice tymczasowa. Rozwiazaniem tego
+   problemu jest uzywanie EXECUTE aby korzystac z tabel tymczasowych w
+   PL/PgSQL. To spowoduje, ze zapytanie bedzie parsowane przy kazdym
+   wywol/aniu funkcji.
+   
+    4.27) Jakie sa mozliwosci replikacji w PostgreSQL?
+    
+    Jest kilka opcji aby stosowac replikacje typu master/slave. Ten typ pozwala
+    jedynie masterowi na dokonywanie zmian w bazie danych, a slave moze jedynie
+    te zmiany odczytywac. Na stronie
+    http://gborg.PostgreSQL.org/genpage?replication_research znajduje sie ich
+    lista. Replikacja typu multi-master jest w trakcie prac, opis projektu
+    znajduje sie pod adresem:
+    http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
+    4.28) Jakie mozliwosci szyfrowania oferuje PostgreSQL?
+    
+     * contrib/pgcrypto zawiera wiele funkcji za pomoca, których mozemy
+       uzywac kryptografii w zapytaniach SQL.
+     * Aby szyfrowac transmisje od klienta do serwera, ten musi miec
+       ustawiona opcje ssl na true w pliku postgresql.conf, odpowiedni
+       wpis host lub hostssl musi wystepowac w pliku pg_hba.conf, oraz
+       sslmode nie moze byc wyl/aczone w kliencie. (Warto zwrócic uwage,
+       ze mozliwe jest takze uzywanie transportów szyfrujaców przez
+       strony trzecie, takie jak stunnel lub ssh, poza natywnym wsparciem
+       dla SSL przez PostgreSQL).
+     * Hasl/a uzytkowników bazy danych sa automatycznie szyfrowane od
+       wersji 7.3. W poprzednich wersjach, nalezy ta funkcjonalnosc
+       poprzez wl/aczenie opcji PASSWORD_ENCRYPTION w postgresql.conf.
+     * Serwer moze dzial/ac uzywajac szyfrowanego systemu plików.
+       
                            Rozwijanie PostgreSQL
                                       
     5.1) Napisal/em wl/asna funkcje. Kiedy uzyje jej w psql, program zrzuca
     pamiec (dump core)?
     
-   Problem moze byc spowodowany przez bardzo wiele rzeczy. Spróbuj
-   najpierw przetestowac Twoja funkcje w samodzielnie dzial/ajacym
-   programie.
-   
+    Problem moze byc spowodowany przez bardzo wiele rzeczy. Spróbuj najpierw
+    przetestowac Twoja funkcje w samodzielnie dzial/ajacym programie.
     5.2) Jak moge dodac/zgl/osic nowe typy czy funkcje do PostgreSQL?
     
-   Wyslij Twoje propozycje na liste mailowa pgsql-hackers, wtedy
-   prawdopodobnie Twój kod znajdzie sie w katalogu contrib/.
-   
+    Wyslij Twoje propozycje na liste mailowa pgsql-hackers, wtedy
+    prawdopodobnie Twój kod znajdzie sie w katalogu contrib/.
     5.3) Jak napisac funkcje C zwracajaca krotke (tuple)?
     
-   To wymaga wysil/ku tak olbrzymiego, ze nawet autorzy nigdy tego nie
-   prubowali, chociaz z zalozen wynika, ze jest to mozliwe.
-   
+    W wersjach PostgreSQL od numeru 7.3, funckje zwracajace tabele sa w pelni
+    wspierane w C, PL/PgSQL i SQL. Sprawdz w Programmer's Guide aby uzyskac
+    wiecej informacji. Przykl/ad funkcji napisanej w C zwracajacej tabele
+    zostal/ umieszczony w contrib/tablefunc.
     5.4) Zmienil/em plik zródl/owy. Dlaczego po rekompilacji nie widac zmiany?
     
-   Pliki Makefiles nie maja dorzuconych odpowiednich zaleznosci dla
-   plików nagl/ówkowych (include files). Wykonaj najpierw make clean, a
-   nastepnie ponownie make. Jesli uzywasz GCC mozesz uzyc opcji
-   --enable-depend przy wykonywaniu configure aby
+    Pliki Makefiles nie maja dorzuconych odpowiednich zaleznosci dla plików
+    nagl/ówkowych (include files). Wykonaj najpierw make clean, a nastepnie
+    ponownie make. Jesli uzywasz GCC mozesz uzyc opcji --enable-depend przy
+    wykonywaniu configure aby kompilator mógl/ okreslic zaleznosci
+    samodzielnie.
index ff526bb66f9a1575c86fcba5dbd713f5128fd1fe..169d167083070293530cceecfee1f204f1ec1f67 100644 (file)
@@ -1,7 +1,7 @@
 
                Otvety na chasto zadavaemye voprosy po PostgreSQL
                                        
-   Data poslednego obnovleniya: Sreda 19 noyabrya 11:50:04 EDT 2003
+   Data poslednego obnovleniya: Vtornik 6 yanvarya 16:42:01 EDT 2003
    
    Anglijskij variant soprovozhdaet: Bryus Mom'yan (Bruce Momjian)
    (pgman@candle.pha.pa.us)
@@ -23,7 +23,7 @@
    1.4) Suschestvuyut li versii portirovannye ne na Unix sistemy?
    1.5) Gde mozhno vzyat' PostgreSQL?
    1.6) Gde poluchit' podderzhku?
-   1.7) Kakaya poslednyaya versiya?
+   1.7) Kakaya versiya poslednyaya?
    1.8) Kakaya dokumentaciya imeetsya v nalichii?
    1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih
    vozmozhnostyah?
    
      http://www.PostgreSQL.org
      
-   Esche suschestvuet IRC kanal na EFNet i Freenode, s nazvaniem
+   Esche suschestvuet IRC kanal na Freenode i EFNet, s nazvaniem
    #PostgreSQL. YA ispol'zuyu dlya podklyucheniya k `etomu kanalu komandu
    Unix irc -c '#PostgreSQL' "$USER" irc.phoenix.net. ili irc -c
    '#PostgreSQL' "$USER" irc.freenode.net.
    
     1.7) Kakaya poslednyaya versiya?
     
-   Poslednij vypusk PostgreSQL - `eto versiya 7.4.
+   Poslednij vypusk PostgreSQL - `eto versiya 7.4.1
    
    My planiruem vypuskat' novye versii kazhdye 6-8 mesyacev.
    
     2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya?
     
    Da, suschestvuet neskol'ko graficheskih interfejsov dlya PostgreSQL.
-   `Eto PgAccess (http://www.pgaccess.org, PgAdmin III
-   (http://www.pgadmin.org, Win32-only), RHDB Admin (
-   http://sources.redhat.com/rhdb/) i Rekall (
-   http://www.thekompany.com/products/rekall/, kommercheskij). Takzhe
-   est' PHPPgAdmin ( http://phppgadmin.sourceforge.net/) - interfejs k
-   PostgreSQL, osnovannyj na Web.
+   `Eto PgAccess (http://www.pgaccess.org), PgAdmin III
+   (http://www.pgadmin.org), RHDB Admin (http://sources.redhat.com/rhdb/)
+   i Rekall ( http://www.thekompany.com/products/rekall/, kommercheskij).
+   Takzhe est' PHPPgAdmin ( http://phppgadmin.sourceforge.net/) -
+   interfejs k PostgreSQL, osnovannyj na Web.
    
     2.4) Kakie yazyki mogut vzaimodejstvovat' s PostgreSQL?
     
index 7ce4c6b958db09c490eceb4197b16c4437db61e1..13d13403869356f0272a4b6a183384a67c3c81a5 100644 (file)
@@ -27,7 +27,7 @@ System Configuration
 
   Operating System (example: Linux 2.4.18)     :
 
-  PostgreSQL version (example: PostgreSQL-7.4.1):   PostgreSQL-7.4.1
+  PostgreSQL version (example: PostgreSQL-7.4.2):   PostgreSQL-7.4.2
 
   Compiler used (example:  gcc 2.95.2)         :
 
index 764d2d82d0957a17b6b6ce93ee47af94066b9508..7ff1653ef1cbd1e2362b6bdf4b2ea755785ba0bf 100644 (file)
   alink="#0000ff">
     <H1>Frequently Asked Questions (FAQ) for PostgreSQL</H1>
 
-    <P>Last updated: Sat Nov 29 23:54:03 EST 2003</P>
+    <P>Last updated: Sat Feb  7 22:16:21 EST 2004</P>
 
     <P>Current maintainer: Bruce Momjian (<A href=
     "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
     </P>
 
-    <P>The most recent version of this document can be viewed at <A
-    href=
+    <P>The most recent version of this document can be viewed at <A href=
     "http://www.PostgreSQL.org/docs/faqs/FAQ.html">http://www.PostgreSQL.org/docs/faqs/FAQ.html</A>.</P>
 
     <P>Platform-specific questions are answered at <A href=
 
     <H4><A name="1.1">1.1</A>) What is PostgreSQL? How is it pronounced?</H4>
 
-    <P>PostgreSQL is pronounced <I>Post-Gres-Q-L</I>.</P>
+    <P>PostgreSQL is pronounced <I>Post-Gres-Q-L</I>.  The name "Postgres" is
+    also used in conversation.</P>
 
     <P>PostgreSQL is an enhancement of the POSTGRES database management
     system, a next-generation <SMALL>DBMS</SMALL> research prototype.
     developers who all subscribe to the PostgreSQL development mailing
     list. The current coordinator is Marc G. Fournier (<A href=
     "mailto:scrappy@PostgreSQL.org">scrappy@PostgreSQL.org</A>). (See
-    section <a href="#1.6">1.6</a> on how to join). This team is now 
-    responsible for all development of PostgreSQL.</P>
+    section <a href="#1.6">1.6</a> on how to join). This team is now
+    responsible for all development of PostgreSQL.  It is a community
+    project and is not controlled by any company.  To get involved, see
+    the developer's FAQ,<A href=
+    "http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html">http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html</A>
+    </P>
 
     <P>The authors of PostgreSQL 1.01 were Andrew Yu and Jolly Chen.
     Many others have contributed to the porting, testing, debugging,
       <A href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A>
     </BLOCKQUOTE>
 
-    <P>There is also an IRC channel on EFNet and Freenode,
+    <P>There is also an IRC channel on Freenode and EFNet,
     channel <I>#PostgreSQL</I>. You can use the Unix command <CODE>irc -c
     '#PostgreSQL' "$USER" irc.phoenix.net.</CODE> or <CODE>irc -c
     '#PostgreSQL' "$USER" irc.freenode.net.</CODE></P>
 
     <H4><A name="1.7">1.7</A>) What is the latest release?</H4>
 
-    <P>The latest release of PostgreSQL is version 7.4.</P>
+    <P>The latest release of PostgreSQL is version 7.4.1.</P>
 
     <P>We plan to have major releases every six to eight months.</P>
 
       release. There is an interesting Web page comparing PostgreSQL to
       MySQL at <A href="http://openacs.org/philosophy/why-not-mysql.html">
       http://openacs.org/philosophy/why-not-mysql.html</A>  Also, MySQL is
-      is a company that distributes its products via open source, not an
+      is a company that distributes its products via open source, and requires
+      a commercial license for close-source software, not an
       open source development community like PostgreSQL.<BR>
 
       <BR>
     <P>Indexes do not require as much overhead, but do contain the data
     that is being indexed, so they can be large also.</P>
 
-    <P><SMALL>NULL</SMALL>s are stored in bitmaps, so they
+    <P><SMALL>NULL</SMALL>s are stored as bitmaps, so they
     use very little space.</P>
     
     <H4><A name="4.7">4.7</A>) How do I find out what tables, indexes,
index 538d4d1b08d9b40ff6989deb4b79ebcd618af8cc..9775e6c262b726ee9cfa345ce37404a70d2cd446 100644 (file)
     <H1>Developer's Frequently Asked Questions (FAQ) for
     PostgreSQL</H1>
 
-    <P>Last updated: Sat Nov 29 23:56:43 EST 2003</P>
+    <P>Last updated: Tue Feb 10 10:16:31 EST 2004</P>
 
     <P>Current maintainer: Bruce Momjian (<A href=
     "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
     </P>
 
-    <P>The most recent version of this document can be viewed at the
-    postgreSQL Web site, <A href=
-    "http://www.PostgreSQL.org">http://www.PostgreSQL.org</A>.<BR>
-    </P>
+    <P>The most recent version of this document can be viewed at <A href=
+    "http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html">http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html</A>.</P>
+
     <HR>
     <BR>
      
index 5042cdfdca979c2b1d7eb3c06052ebee429f5926..afa1087f146f248e63491be35f02a9e07193d506 100644 (file)
@@ -14,7 +14,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p>
 
     <p>Deutsche Übersetzung von Ian Barwick (<a href="mailto:barwick@gmx.net">barwick@gmx.net</a>).</p>
 
-    <p>Letzte Aktualisierung der deutschen Übersetzung: Di., den 02.09.2003, 10:00 CET</p>
+    <p>Letzte Aktualisierung der deutschen Übersetzung: Fr., den 02.01.2004, 07:30 CET</p>
 
     <p>Die aktuellste Version dieses Dokuments liegt auf der PostgreSQL Website:</p>
     <ul>
@@ -220,7 +220,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p>
     in der Vorbereitung.</p>
 
     <p>Weitere Informationen zum Status von PostgreSQL auf der Microsoft-Plattform
-    befinden sich unter <a href="http://techdocs.postgresql.org/guides/Windows">http://techdocs.postgresql.org/guides/Windows</a> (en.).</p>
+    befinden sich unter <a href="http://techdocs.postgresql.org/guides/Windows">http://techdocs.postgresql.org/guides/Windows</a> (en.) sowie  <a href="http://momjian.postgresql.org/main/writings/pgsql/win32.html"> http://momjian.postgresql.org/main/writings/pgsql/win32.html</a> (en.).</p>
 
     <p>Eine Portierung für Novell Netware 6 gibt es unter <a href="http://forge.novell.com">http://forge.novell.com</a>.</p>
 
@@ -273,9 +273,10 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p>
 <blockquote>
 <a href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</a>
 </blockquote>
-    <p>Es gibt außerdem einen IRC-Channel bei EFNet und bei OpenProjects, Channel
-    <em>#PostgreSQL</em>. Der FAQ-Autor Bruce Momjian nutzt den Unix-Befehl:
-    <small>irc -c '#PostgreSQL' "$USER" irc.phoenix.net</small> um daran teilzunehmen.</p>
+    <p>Es gibt außerdem einen IRC-Channel bei EFNet und bei Freenode, Channel
+    <em>#PostgreSQL</em>. Unter UNIX/Linux können Sie mit z.B.
+    <small>irc -c '#PostgreSQL' "$USER" irc.phoenix.net</small> bzw. <small>irc -c
+    '#PostgreSQL' "$USER" irc.freenode.net.</small> daran teilnehmen.</p>
 
     <p>Eine Liste von Unternehmen, die Support für PostgreSQL auf kommerzieller
     Basis leisten, kann unter
@@ -284,7 +285,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</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.4 .</p>
+    <p>Die neueste Version von PostgreSQL ist 7.4.1 .</p>
 
     <p>Die Freigabe einer neuen Version erfolgt im Schnitt ca. dreimal pro Jahr.</p>
 
@@ -374,13 +375,15 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p>
       <dt><b>Performanz</b></dt>
       <dd><p>PostgreSQL weist eine Performanz auf, die mit der von kommerziellen
           und anderen Open-Source-Datenbanken vergleichbar ist. In
-          manchen Bereichen ist es schneller, in anderen langsamen. Im
-          Vergleich zu MySQL oder abgespeckten Datenbank-Systemen sind
-          INSERT- und UPDATE-Anweisungen aufgrund des Transaktionsaufwands
-          langsamer. MySQL hat allerdings keine der oben erwähnten
-          Eigenschaften. PostgreSQL setzt auf Zuverlässigkeit und
-          Funktionsumfang, obwohl selbstredend ständig an Performanz-
-          Verbesserungen gearbeitet wird. Ein interessanter Vergleich
+          manchen Bereichen ist es schneller, in anderen langsamer.</p>
+          <p>Im Vergleich zu MySQL oder abgespeckten Datenbank-Systemen 
+          ist PostgreSQL in Lastsituationen - z.B. bei zeitgleichen
+          Zugriffen durch mehrere Nutzer, komplexen Abfragen oder gleichzeitigen
+          Lese- und Schreibzugriffen schneller. MySQL ist nur bei einfacheren
+          SELECT-Abfragen mit wenigen Nutzern schneller.  MySQL hat allerdings 
+          wenige der oben erwähnten Eigenschaften. PostgreSQL setzt auf 
+          Zuverlässigkeit und Funktionsumfang, dabei wird selbstredend ständig 
+          an Performanz-Verbesserungen gearbeitet. Ein interessanter Vergleich
           zwischen PostgreSQL und MySQL befindet sich unter dieser URL:
             <a href="http://openacs.org/philosophy/why-not-mysql.html">http://openacs.org/philosophy/why-not-mysql.html</a></p>
       </dd>
@@ -479,9 +482,8 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p>
    
     <p>Es gibt mehrere grafische Schnittstellen für PostgreSQL, darunter
     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>,
-    nur für Win32), RHDB Admin (<a
+    PgAdmin III (<a
+    href="http://www.pgadmin.org">http://www.pgadmin.org</a>, RHDB Admin (<a
     href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/
     </a>) und Rekall (<a href="http://www.thekompany.com/products/rekall/">
     http://www.thekompany.com/products/rekall/</a>, proprietär). Es gibt 
@@ -785,7 +787,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p>
 <pre>
     Maximale Größe eine Datenbank?           unbeschränkt (es existieren
                                                Datenbanken mit 4TB)
-    Maximale Größe einer Tabelle?            16 TB
+    Maximale Größe einer Tabelle?            32 TB
     Maximale Größe einer Zeile?              1,6 TB
     Maximale Größe einer Spalte?             1 GB
     Maximale Anzahl von Zeilen in einer Tabelle?
@@ -799,7 +801,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p>
     verfügbaren Platten- und Speicherressourcen eingeschränkt sind.
     Extreme Größen können zu Leistungseinbußen führen.</p>
    
-    <p>Die maximale Tabellengröße von 16 TB benötigt keine Large-File-Unterstützung
+    <p>Die maximale Tabellengröße von 32 TB benötigt keine Large-File-Unterstützung
     im Betriebssystem. Große Tabellen werden in Dateien mit einer Größe von
     1 GB aufgeteilt, wodurch etwaige dateisystem-bedingte Beschränkungen nicht
     relevant sind.</p>
@@ -1012,7 +1014,7 @@ BYTEA         bytea           Bytearray mit variabler L
     Werts?</h4>
 
     <p>PostgreSQL bietet einen <small>SERIAL</small>-Datentyp. Dieser erzeugt automatisch
-    eine Sequenz und einen Index auf die angegebene Spalte. Zum Beispiel:</p>
+    eine Sequenz auf die angegebene Spalte. Zum Beispiel:</p>
 <pre>
       CREATE TABLE person (
           id   SERIAL,
@@ -1025,7 +1027,6 @@ BYTEA         bytea           Bytearray mit variabler L
         id   INT4 NOT NULL DEFAULT nextval('person_id_seq'),
         name TEXT
       );
-      CREATE UNIQUE INDEX person_id_key ON person ( id );
 </pre><p>    umgewandelt.</p>
 
     <p>Die <em>create_sequence</em> Man-Page liefert weitere Informationen über Sequenzen.
@@ -1180,8 +1181,8 @@ BYTEA         bytea           Bytearray mit variabler L
     <h4><a name="4.22">4.22</a>) Warum sind meine Unterabfragen (subqueries), die IN verwenden,
     so langsam?</h4>
 
-    <p>Derzeit werden Unterabfragen mit der äusseren Abfrage verbunden, indem
-    für jede Reihe der äusseren Query die Ergebnisse der Unterabfrage
+    <p>In Versionen vor 7.4 werden Unterabfragen mit der äusseren Abfrage verbunden, 
+    in dem für jede Reihe der äusseren Query die Ergebnisse der Unterabfrage
     sequentiell geprüft werden. Um dies zu vermeiden, kann man <small>IN</small> durch
     <small>EXISTS</small> ersetzen, z.B.:</p>
 <pre>
@@ -1196,8 +1197,10 @@ BYTEA         bytea           Bytearray mit variabler L
        WHERE EXISTS (SELECT spalte2 FROM tabelle_2 WHERE spalte1 = spalte2)
 </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>
+    ein Index angelegt worden sein. Ab PostgreSQL 7.4 <small>IN</small> verwendet
+    die gleichen Methoden wie die normale Tabellenverknüpfung und ist daher soger
+    <small>EXISTS</small> vorzuziehen.
+    </p>
 
     <h4><a name="4.23">4.23</a>) Wie führe ich einen <small>OUTER JOIN</small> durch?</h4>
 
@@ -1355,8 +1358,6 @@ BYTEA         bytea           Bytearray mit variabler L
     entgegen, verweise jedoch auf die Mailing-Listen als schnelle und zuverlässige
     Anlaufstellen.</p>
 
-    <p>Diese Übersetzung basiert teilweise auf einer früheren Übersetzung von Karsten
-    Schulz (<a href="mailto:schulz@linux-systemhaus.de">schulz@linux-systemhaus.de</a>).</p>
 </body>
 </html>
 
index 56a052cf66f547b6d51c78683ca3937389df6a00..85e04fbaf75c3b4f3038ac0beabcc6c76b3995b8 100644 (file)
@@ -15,7 +15,9 @@
 
        <H1>Frequently Asked Questions (FAQ) o PostgreSQL</H1>
 
-    <P>Ostatnia aktualizacja: Thu Apr 18 00:44:51 EDT 2002</P>
+    <P>Ostatnia aktualizacja: Sobota Luty 7 22:16:21 EST 2004</P>
+
+        <P>Ostatnia aktualizacja t³umaczenia: Pi±tek Marzec 5 19:31:12 EST 2004</P>
 
     <P>Obecny maintainer: Bruce Momjian (<A href=
     "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
     "mailto:m.mazurek@netsync.pl">m.mazurek@netsync.pl</A>)<BR>
     </P>
 
-
     <P>Najbardziej aktualn± wersjê tego dokumentu mo¿na znale¼æ pod
         adresem:
         <A href=
-    "http://www.Postgresql.org/docs/faq-english.html">http://www.PostgreSQL.org/docs/faq-english.html</A>.</P>
+    "http://www.Postgresql.org/docs/faqs/FAQ.html">http://www.PostgreSQL.org/docs/faqs/FAQ.html</A>.</P>
 
     <P>Odpowiedzi na pytania dotycz±ce konkretnych systemów operacyjnych
         mo¿na znale¼æ pod adresem: 
         <A href=
-    "http://www.PostgreSQL.org/users-lounge/docs/faq.html">http://www.PostgreSQL.org/users-lounge/docs/faq.html</A>.</P>
+    "http://www.PostgreSQL.org/docs/index.html">http://www.PostgreSQL.org/docs/index.html</A>.</P>
     <HR>
 
     <H2 align="center">Pytania ogólne</H2>
     PostgreSQL?<BR>
      <A href="#2.2">2.2</A>) Jakie istniej± narzêdzia pozwalaj±ce na dostêp do
          PostgreSQL przez www?<BR>
-     <A href="#2.3">2.3</A>) Czy istnieje jakie¶ GUI dla PostgreSQL?
-    Narzêdzie do raportowania? Interfejs dla "embedded query language"?<BR>
+     <A href="#2.3">2.3</A>) Czy istnieje jakie¶ GUI dla PostgreSQL?<BR>
      <A href="#2.4">2.4</A>) Za pomoc± jakich jêzyków programowania mo¿na
          siê komunikowaæ z PostgreSQL?<BR>
      
 
-    <H2 align="center">Pytania administratora</H2>
+    <H2 align="center">Pytania dotycz±ce administracji</H2>
     <A href="#3.1">3.1</A>) Jak mogê zainstalowaæ PostgreSQL w innej 
                        lokalizacji ni¿ <I>/usr/local/pgsql</I>?<BR>
      <A href="#3.2">3.2</A>) Podczas startu <I>postmaster'a</I>,
          otrzymujê komunikat:
     <I>Bad System Call</I> lub "core dumped". Dlaczego?<BR>
      <A href="#3.3">3.3</A>) Podczas startu <I>postmaster'a</I>, 
-     otrzymujê komunikato b³êdzie: <I>IpcMemoryCreate</I>. Dlaczego?<BR>
+     otrzymujê komunikat o b³êdzie: <I>IpcMemoryCreate</I>. Dlaczego?<BR>
      <A href="#3.4">3.4</A>) Podczas startu <I>postmaster'a</I>,
      otrzymujê komunikat o b³êdzie: <I>IpcSemaphoreCreate</I>. Dlaczego?<BR>
      <A href="#3.5">3.5</A>) W jaki sposób mogê kontrolowaæ po³±czenia z
@@ -87,9 +87,9 @@
      <A href="#3.7">3.7</A>) Jakie s± mo¿liwo¶ci wyszukiwania b³êdów?<BR>
      <A href="#3.8">3.8</A>) Sk±d siê bierze komunikat: <I>"Sorry, too many
     clients"</I> podczas próby po³±czenia siê z baz± danych?<BR>
-     <A href="#3.9">3.9</A>) Co to za pliki typu <I>pg_sorttempNNN.NN</I>
-    , które znajduj± siê w katalogu z plikami bazy danych?<BR>
-     
+     <A href="#3.9">3.9</A>) Jakie pliki znajduj± siê w <I>pg_temp</I>?<BR>
+     <A href="#3.10">3.10</A>) Dlaczego konieczne jest przy upgradzie
+         PostgreSQL korzystanie ze skryptów dump i restore?<BR>
 
     <H2 align="center">Pytania dotycz±ce u¿ytkowania</H2>
     <A href="#4.1">4.1</A>) Jaka jest ró¿nica pomiêdzy kursorami
@@ -98,7 +98,8 @@
          jedynie kilka pierwszych wyników zapytania?<BR>
      <A href="#4.3">4.3</A>) Jak mogê uzyskaæ listê wszystkich tabel czy
          innych rzeczy pod <I>psql</I>?<BR>
-     <A href="#4.4">4.4</A>) Jak usun±æ kolumnê z tabeli?<BR>
+     <A href="#4.4">4.4</A>) Jak usun±æ kolumnê z tabeli lub zmieniæ jej
+         typ?<BR>
      <A href="#4.5">4.5</A>) Jaki jest maksymalny rozmiar dla rzêdu,
          tabeli i bazy danych?<BR>
      <A href="#4.6">4.6</A>) Jak du¿o miejsca w bazie danych jest
          baz danych jednocze¶nie?<BR>
      <A href="#4.25">4.25</A>) Jak zwróciæ w funkcji wiele rzêdów lub
          kolumn?<BR>
-     
-
+     <A href="#4.26">4.26</A>) Dlaczego nie mogê w sposób pewny
+         tworzyæ/usuwaæ tabel tymczasowych w funkcjach PL/PgSQL?<BR>
+     <A href="#4.27">4.27</A>) Jakie s± mo¿liwo¶ci replikacji w
+         PostgreSQL?<BR>
+     <A href="#4.28">4.28</A>) Jakie mo¿liwo¶ci szyfrowania oferuje
+         PostgreSQL?<BR>
+    
     <H2 align="center">Rozwijanie PostgreSQL</H2>
     <A href="#5.1">5.1</A>) Napisa³em w³asn± funkcjê. Kiedy u¿yjê jej w
         <I>psql</I>, program zrzuca pamiêæ (dump core)?<BR>
 
     <H4><A name="1.1">1.1</A>) Co to jest PostgreSQL? Jak to wymawiaæ?</H4>
 
-    <P>PostgreSQL wymawia siê <I>Post-Gres-kju-el</I>.</P>
+    <P>PostgreSQL wymawia siê <I>Post-Gres-kju-el</I>. Czêsto podczas
+        rozmów u¿ywany jest termin "Postgres"</P>
 
     <P>PostgreSQL jest rozszerzeniem systemu zarz±dzania bazami danych -
         POSTGRES, kolejn± generacj± rozwojowego prototypu <SMALL>DBMS</SMALL>.
         komunikuj±cych siê poprzez mailowe listy dyskusyjne PostgreSQL.
     Obecnym koordynatorem jest Marc G. Fournier (<A href=
     "mailto:scrappy@PostgreSQL.org">scrappy@PostgreSQL.org</A>). (Zobacz
-        poni¿ej jak siê przy³±czyæ). Ta grupa ludzi jest odpowiedzialna za
-        ca³y rozwój PostgreSQL.</P>
+        pytanie <A href="#1.6">1.6</A> jak siê przy³±czyæ). Ta grupa ludzi jest 
+        odpowiedzialna za ca³y rozwój PostgreSQL. PostgreSQL jest projektem
+        nie kontrolowanym przez ¿adn± firmê, aby wzi±æ udzia³ w jego rozwoju
+        sprawd¼, <A href="http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html">
+        http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html</a></P>
 
     <P>Autorami PostgreSQL 1.01 byli Andrew Yu and Jolly Chen.
-        Wiele innych osób pomog³o przy portowaniu, testowaniu, debugowaniu, i
+        Wiele innych osób pomog³o przy portowaniu, testowaniu, debugowaniu i
         rozwijaniu kodu. Oryginalny kod Postgresa, na którym zosta³ oparty
         PostgreSQL, by³ wysi³kiem studentów oraz pracowników pracuj±cych pod
         kierownictwem profesora Michael'a Stonebraker'a z University of
 
     <P><STRONG>Klient</STRONG></P>
 
-    <P>Mo¿liwa jest kompilacja bibliteki C <I>libpq</I> C, psql oraz
+    <P>Mo¿liwa jest kompilacja bibliteki C <I>libpq</I>, psql oraz
         innych interfejsów i uruchamianie ich na platformie MS Windows. W tym
         wypadku klient jest uruchamiany na MS Windows a z serwerem komunikuje siê
         poprzez TCP/IP. Serwer mo¿e dzia³aæ na dowolnej wspieranej platformie 
-        Unixowej. Plik <I>win31.mak</I> jest do³±czony
+        Unixowej. Plik <I>win32.mak</I> jest do³±czony
         do ¼róde³, aby mo¿na by³o stworzyæ bibliotekê <I>libpq</I> oraz
         program <I>psql</I> dzia³aj±ce w ¶rodowisku Win32. PostgreSQL mo¿e siê 
         tak¿e komunikowaæ z klientami <SMALL>ODBC</SMALL>.</P>
     <P>Serwer mo¿e byæ uruchamiany na Windows NT i Win2k u¿ywaj±c
         bibliotek Cygwin, Cygnus Unix/NT. W pliku <I>pgsql/doc/FAQ_MSWIN</I>
         znajduj±cym siê w ¼ród³ach lub pod adresem: <A href=
-    "http://www.postgresql.org/docs/faq-mswin.html">MS Windows FAQ</A>
-    na naszych stronach. Nie planujemy tworzyæ portu przeznaczonego
-        docelowo dla platformy Microsoft.</P>
+    "http://www.postgresql.org/docs/faqs/text/FAQ_MSWIN">http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN</A> na naszych stronach.<P>
+        Obecnie prowadzone s± prace nad stworzeniem wersji dla MS Win
+        NT/200/XP. Je¶li chcesz siê dowiedzieæ o obecnym statusie tych prac
+        zobacz <A
+        href="http://techdocs.postgresql.org/guides/Windows">http://techdocs.postgresql.org/guides/Windows</A> and
+        <A
+        href="http://momjian.postgresql.org/main/writings/pgsql/win32.html">http://momjian.postgresql.org/main/writings/pgsql/win32.html</A>.
+        </P>
+        <P>
+        Istnieje tak¿e port pod Novell Netware 6 dostêpny pod adresem <A
+        href="http://forge.novell.com">http://forge.novell.com</A>.
+        </P>
 
     <H4><A name="1.5">1.5</A>) Sk±d mo¿na ¶ci±gn±æ PostgreSQL?</H4>
 
     '#PostgreSQL' "$USER" irc.phoenix.net.</CODE></P>
 
     <P>Lista firm oferuj±cych wsparcie na zasadach komercyjnych znajduje
-        siê pod adresem: <A href=
-    "http://www.postgresql.org/users-lounge/commercial-support.html">http://www.postgresql.org/users-lounge/commercial-support.html</A>.</P>
+        siê pod adresem: <A href= "http://techdocs.postgresql.org/companies.php">http://techdocs.postgresql.org/companies.php</A>.</P>
 
     <H4><A name="1.7">1.7</A>) Jaka jest ostatnia dostêpna wersja?</H4>
 
-    <P>Ostatnia dostêpna wersja PostgreSQL to 7.2.1.</P>
+    <P>Ostatnia dostêpna wersja PostgreSQL to 7.4.1.</P>
 
-    <P>Planujemy publikowanie kolejnych wersji co cztery miesi±ce.</P>
+    <P>Planujemy publikowanie kolejnych wersji co sze¶æ do o¶miu miesiêcy.</P>
 
     <H4><A name="1.8">1.8</A>) Jaka dokumentacja jest dostêpna?</H4>
 
         testowania s± za³±czone w samej dystrybucji. Znajduj± siê one w
         katalogu <I>/doc</I>. Manual mo¿e byæ tak¿e przegl±dany poprzez
         strony www pod adresem <A href=
-    "http://www.PostgreSQL.org/users-lounge/docs/">http://www.PostgreSQL.org/users-lounge/docs/</A>.</P>
-
+    "http://www.PostgreSQL.org/docs">http://www.PostgreSQL.org/docs</A>.</P>
+       
     <P>Istniej± tak¿e dwie ksi±¿ki dostêpne online pod adresami
         <A href=
     "http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</A>
     "http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</A>.
     Lista ksi±¿ek o PostgreSQL, które mo¿na kupiæ znajduje siê pod adresem
         <A href=
-    "http://www.postgresql.org/books/">http://www.postgresql.org/books/</A>.
+    "http://techdocs.PostgreSQL.org/techdocs/bookreviews.php">
+        http://techdocs.PostgreSQL.org/techdocs/bookreviews.php</A>.
     Zbiór technicznych artyku³ów o PostgreSQL znajduje siê pod adresem <A
     href=
-    "http://techdocs.postgresql.org/">http://techdocs.postgresql.org/</A>.</P>
+    "http://techdocs.PostgreSQL.org">http://techdocs.postgresql.org/</A>.</P>
 
     <P><I>psql</I> posiada kilka wbudowanych poleceñ \d, za pomoca których
         mo¿na sprawdziæ informacje dotycz±ce typów, operatorów, funkcji,
-        aggregatów itd.</P>
+        agregatów itd.</P>
 
     <P>Na naszej stronie mo¿na znale¼æ du¿o wiêcej dokumentacji.</P>
 
     <P>Jest oko³o 12 osób, które maj± uprawnienia do commit'owania w
     <SMALL>CVS</SMALL> PostgreSQL'a. Ka¿dy z nich submitowa³ tak wiele
         wysokiej jako¶ci patchy, ¿e sta³o siê niemo¿liwe dla obecnych
-        commiterów byæ z nimi na bie¿±co, maj±c pewno¶æ ¿e s± to poprawki
-        wysokiej jako¶ci.</P>
+        commiterów byæ z nimi na bie¿±co, wiêc musieli¶my im ufaæ i mieæ
+        pewno¶æ, ¿e ich poprawki s± wysokiej jako¶ci.</P>
 
     <H4><A name="1.13">1.13</A>) Jak mogê zg³aszaæ b³êdy?</H4>
 
                oraz wyrafinowany system blokowania. Mamy tak¿e w³a¶ciow¶ci których
                inni nie posiadaj±, jak typy definiowane przez u¿ytkownika,
                dziedziczenie, rules, multi-version concurrency control, która
-               redukuje problemy z blokowaiem (lock contention).<BR>
+               redukuje problemy z blokowaniem (lock contention).<BR>
       <BR>
       </DD>
 
       <DT><B>Wydajno¶æ</B></DT>
 
-      <DD>PostgreSQL dzia³a w dwóch trybach. Standardowy tryb <I>fsync</I>
-      zrzuca ka¿d± zakoñczon± transakcjê na dysk, gwarantuj±c w ten
-               sposób to, ¿e je¶li system operacyjny siê zawiesi lub straci
-               zasilanie wci±gu kilku nastepnych sekund, wszystkie Twoje dane
-               zostan± bezpiecznie zapisane na dysku. W tym trybie, jeste¶my
-               wolniejsi ni¿ wiêkszo¶æ komercyjnych baz danych, czê¶ciowo dlatego
-               ¿e niewiele z nich wykonuje taki sposób zapisywania danych jako
-               domy¶lne ustawienie.
-      W trybie <I>no-fsync</I> z regu³y jeste¶my szybsi ni¿ komercyjne
-               bazy danych, chocia¿ w tym wypadku zawieszenie siê systemu mo¿e
-               spowodowaæ uszkodzenie danych. Pracujemy nad tym, aby stworzyæ
-               po¶redni tryb, który powoduje mniejsz± redukcjê wydajno¶ci ni¿ tryb
-               fsync i pozwoli na integralno¶æ danych w przeci±gu 30 sekund do
-               za³amania siê systemu operacyjnego.<BR>
-      <BR>
-       Porównuj±c do MySQL czy innych prostych baz danych, jeste¶my
-                wolniejsi przy wykonywaniu insertów/updatów przez narzut
-                spowodowany przez transakcje. Oczywi¶cie MySQL nie posiada ¿adnej z
-                wymienionych wy¿ej <I>mo¿liwo¶ci</I>. PostgreSQL zosta³ zbudowany
-                aby byæ DBMS elastycznym i bogatym z ró¿norakie mo¿liwo¶ci,
-                aczkolwiek dbamy, aby poprawiaæ jego wydajno¶æ poprzez analizê
-                kodu ¼ród³owego i profilowanie. Ciekawe porównanie PostgreSQL i MySQL
-                mo¿na znale¼æ pod adresem <A href=
-      "http://openacs.org/why-not-mysql.html">http://openacs.org/why-not-mysql.html</A><BR>
-
-      <BR>
-                Ka¿de po³±czenie klienta jest obs³ugiwane przez nas poprzez
-                stworzenie nowego procesu Unixowego. Procesy backendu dziel±
-                bufory danych oraz informacjê o blokadach. U¿ywaj±c wielu
-                procesorów, ró¿ne backendy mog± bez problemu dzia³aæ na ró¿nych
-                procesorach.<BR>
+      <DD>Wydajno¶æ PostgreSQL jest podobna do innych komercyjnych i open
+               source baz danych. W niektórych sytuacjach jest szybszy w
+               niektórych wolniejszy. W porównianiu do MySQL lub mniejszych baz
+               danych jeste¶my szybsi przy wielu u¿ytkownikach, skomplikowaych
+               zapytaniach i du¿ym obci±¿eniu podczas. MySQL jest szybszy dla
+               prostych SELECTów wykonywanych przez niewielu u¿ytkowników.
+               Spowodowane jest to narzutem, który siê pojawia przy transakcjach.
+               Oczywi¶cie MySQL nie ma wiêkszo¶ci z rozwi±zañ opisanych powy¿ej
+               w sekcji <I> Mo¿liwo¶ci </I>. PostgreSQL zosta³ stworzony z my¶l± o
+               stabilno¶ci, oraz szerokiej gamie mo¿liwo¶ci, ale mimo to staramy
+               siê w ka¿dej wersji poprawiaæ jego wydajno¶æ.
+               Ciekawe porównanie PostgreSQL i MySQL mo¿na znale¼æ pod adresem <A href=
+      "http://openacs.org/philosophy/why-not-mysql.html">http://openacs.org/philosophy/why-not-mysql.html</A>
+               Dodatkowo, MySQL jest firm±, która dystrybuuje jej produkty poprzez
+               zasadê Open Source i wymaga wykupienia licencji w przypadku
+               tworzenia close-source software, co ie ma miejsca w przypadku
+               PostgreSQL.<BR>
       <BR>
       </DD>
-
       <DT><B>Stabilno¶æ</B></DT>
 
       <DD>Zdajemy sobie sprawê, ¿e <SMALL>DBMS</SMALL> musi byæ stabilny,
                w przeciwnym wypadku jest bez warto¶ci. Staramy siê publikowaæ kod
                stabilny, dobrze przetestowany, z minimum mo¿liwych b³êdów. Ka¿de
-               wydanie poprzedza conajmniej miesi±c testów wersji beta. Patrz±c na
+               wydanie poprzedza co najmniej miesi±c testów wersji beta. Patrz±c na
                historiê wydañ PostgreSQL widaæ, ¿e dostarczamy stabilne, dobrze
                sprawdzone wersje, które s± gotowe do u¿ycia w ¶rodowisku
                produkcyjnym. My¶limy, ¿e proces publikowania kolejnych wersji
             PostgreSQL?</H4>
 
     <P>PostgreSQL korzysta z najlepszej infrastruktury od samego pocz±tku
-        istnienia projektu, tzn. sze¶ciu lat. Wszystko to zawdziêczamy Marc'owi
-        Fournier'owi, który stworzy³ t± infrastrukturê i zarz±dza ni± od
-        lat.</P>
+        istnienia projektu, czyli roku 1996 kiedy rozpoczeli¶my pracê. Wszystko 
+        to zawdziêczamy Marc'owi Fournier'owi, który stworzy³ t± infrastrukturê 
+        i zarz±dza ni± od lat.</P>
 
     <P>Wysokiej jako¶ci infrastruktura jest bardzo wa¿na dla ka¿dego
         projektu open-source. Zapobiega przerwom w rozwoju projektu i
         jakimkolwiek przestojom.</P>
 
     <P>Oczywi¶cie korzystanie z wysokiej jako¶ci infrastruktury nie jest
-        tanie. Istnieje wiele róznych miesiêcznych, czy jednorazowych
+        tanie. Istnieje wiele ró¿nych miesiêcznych, czy jednorazowych
         wydatków, które trzeba ponosiæ aby wszystko dzia³a³o jak nale¿y.
         Je¶li Ty, b±d¼ Twoja firma mo¿e wspomóc finansowo rozwój PostgreSQL
         odwied¼ adres: <A href=
-    "http://www.pgsql.com/pg_goodies">http://www.pgsql.com/pg_goodies</A>
+    "http://store.pgsql.com/shopping/">http://store.pgsql.com/shopping/</A>
         gdzie opisane jest jak to zrobiæ.</P>
 
     <P>Chocia¿ na stronie wspomniana jest nazwa PostgreSQL Inc, "datki"
         przeznaczane na finansowanie jakiejkolwiek firmy. Je¶li wolisz, 
         mo¿esz wys³aæ czek na adres kontaktowy.</P>
     <HR>
+        Je¶li mo¿esz siê pochwaliæ udanymi wdro¿eniami PostgreSQL, prosimy
+        aby¶ zg³osi³ nam to na stronie: <A
+        href="http://advocacy.postgresql.org/">http://advocacy.postgresql.org</a>.
 
     <H2 align="center">User Client Questions</H2>
 
     <P>Dostêpne s± dwa driwery <SMALL>ODBC</SMALL>: PsqlODBC
     i OpenLink <SMALL>ODBC</SMALL>.</P>
 
-    <P>PsqlODBC jest do³±czony do ¼róde³. Wiêcej informacji na jego temat
-        mo¿esz znale¼æ pod adresem: <A href=
-    "ftp://ftp.PostgreSQL.org/pub/odbc/">ftp://ftp.PostgreSQL.org/pub/odbc/</A>.</P>
-
+    <P>Mo¿esz pobraæ PsqlODBC z adresu <A
+        href="http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">http://gborg.postgresql.org/project/psqlodbc/projdisplay.php</A>
+        </P>
+        
     <P>OpenLink <SMALL>ODBC</SMALL> mo¿e byæ pobrany z adresu: <A href=
     "http://www.openlinksw.com/">http://www.openlinksw.com</A>.
         Wspó³pracuje ze standardowym oprogramowaniem klienckim <SMALL>ODBC</SMALL>
         wiêc w ten sposób mo¿esz korzystaæ z PostgreSQL <SMALL>ODBC</SMALL>
-        dostêpnego na ka¿dej plaformie któr± wspiera (Win, Mac, Unix, VMS).</P>
+        dostêpnego na ka¿dej pltaformie któr± wspiera (Win, Mac, Unix, VMS).</P>
 
     <P>Autorzy bêd± prawdopodobnie sprzedawaæ ten produkt osobom które
         wymagaj± komercyjnego wsparcia, ale wersja darmowa bêdzie zawsze
         dostêpna. Wszystkie pytania mo¿esz wysy³aæ na adres: <A href=
     "mailto:postgres95@openlink.co.uk">postgres95@openlink.co.uk</A>.</P>
 
-    <P>Sprawd¼ tak¿e rozdzia³ o  <A href=
-    "http://www.postgresql.org/devel-corner/docs/programmer/odbc.html">ODBC
-    w "Programmer's Guide"</A>.</P>
-
     <H4><A name="2.2">2.2</A>) Jakie istniej± narzêdzia pozwalaj±ce na dostêp do
              PostgreSQL przez www?</H4>
 
         przez www mo¿esz znale¼æ pod adresem:
     <A href="http://www.webreview.com">http://www.webreview.com</A></P>
 
-    <P>Inny znajduje siê pod adresem: <A href=
-    "http://www.phone.net/home/mwm/hotlist/">http://www.phone.net/home/mwm/hotlist/.</A></P>
-
     <P>Do integracji z www, ¶wietnym rozwi±zaniem jest PHP. Mo¿esz
         znale¼æ wiêcej informacji na ten temat pod adresem
     <A href="http://www.php.net">http://www.php.net</A>.</P>
 
     <P>Wiele osób w przypadku skomplikowanych rozwi±zañ uzywa Perl'a i
-        modu³u CGI.pl.</P>
-
-    <H4><A name="2.3">2.3</A>)  Czy istnieje jakie¶ GUI dla PostgreSQL?
-            Narzêdzie do raportowania? Interfejs dla "embedded query
-                 language"?</H4>
-
-    <P>Mamy ca³kiem mi³y interfejs graficzny, który zosta³ nazwany
-        <I>pgaccess</I> i jest on dostarczany jako czê¶æ ¼róde³.
-        <I>pgaccess</I> posiada tak¿e generator raportów. Mo¿na go znale¼æ
-        pod adresem <A href=
-    "http://www.flex.ro/pgaccess">http://www.flex.ro/pgaccess</A></P>
-
-    <P>Udostêpnili¶my tak¿e <I>ecpg</I>, który jest "embedded SQL query
-    language interface" dla jêzyka C.</P>
-
-    <H4><A name="2.4">2.4</A>) Za pomoc± jakich jêzyków programowania
+        modu³u CGI.pl lub mod_perl.</P>
+
+    <H4><A name="2.3">2.3</A>)  Czy istnieje jakie¶ GUI dla PostgreSQL?</H4>
+
+    <P>Tak, istnieje kilka interfejsów graficznych dla PostgreSQL.
+        W¶ród nich PgAccess (<A href="http://www.pgaccess.org">
+        http://www.pgaccess.org</A>), PgAdmin III (<A
+        href="http://www.pgadmin.org">http://www.pgadmin.org</A>), 
+        RHDB Admin (http://sources.redhat.com/rhdb/ ) oraz Rekall (
+       http://www.thekompany.com/products/rekall/, komercyjny). Istnieje
+       tak¿e PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ), webowy
+       interfejs dla PostgreSQL.
+       </P>
+       <P>
+       Wiêcej informacji na ten temat znajduje siê pod adresem See
+       <A href="http://techdocs.postgresql.org/guides/GUITools">http://techdocs.postgresql.org/guides/GUITools</A>.
+        
+        <H4><A name="2.4">2.4</A>) Za pomoc± jakich jêzyków programowania
         mo¿na siê komunikowaæ z PostgreSQL?</H4>
         
-    <P>Mamy wsparcie dla:</P>
+    <P>Najbardziej popularne jêzyki posiiadaj± w³asny interfejs dla
+        PostgreSQL. Sprawd¼ listê rozszerzeñ dla intersuj±cego Ciebie jêzyka
+        programowania.</P>
+        
+    <P>Ze ¼ród³ami PostreSQL dystrubuowane s± interfejsy dla
+        nastêpuj±cych jêzyków programowania:</P>
+
 
     <UL>
       <LI>C (libpq)</LI>
 
-      <LI>C++ (libpq++)</LI>
-
       <LI>Embedded C (ecpg)</LI>
 
       <LI>Java (jdbc)</LI>
 
-      <LI>Perl (perl5)</LI>
-
-      <LI>ODBC (odbc)</LI>
-
       <LI>Python (PyGreSQL)</LI>
 
       <LI>TCL (libpgtcl)</LI>
-
-      <LI>C Easy API (libpgeasy)</LI>
-
-      <LI>Embedded <SMALL>HTML</SMALL> (<A href=
-      "http://www.php.net">PHP z http://www.php.net</A>)</LI>
     </UL>
+       Inne interfejsy s± dostêpne pod adresem: 
+       <A href="http://gborg.postgresql.org"> http://gborg.postgresql.org</A> w
+       sekcji Drivers/Interfaces.
     <HR>
 
-    <H2 align="center">Pytania administratora</H2>
+    <H2 align="center">Pytania dotycz±ce administracji</H2>
 
     <H4><A name="3.1">3.1</A>) Jak mogê zainstalowaæ PostgreSQL w innej
                  lokalizacji ni¿ <I>/usr/local/pgsql</I>?</H4>
         <SMALL>SEMMNS</SMALL> i <SMALL>SEMMNI</SMALL> j±dra twojego systemu.</P>
 
         <P>Niedzia³aj±ce semafory mog± spowodowaæ niepoprawne zamkniêcie
-        systemu w czasie intensywnego  korzystania  z bazy.</P>
+        systemu w czasie intensywnego korzystania z bazy.</P>
+        
         <P>Je¶li tre¶æ b³êdu jest inna, mo¿e to oznaczaæ, ¿e obs³uga semaforów 
         nie zosta³a w³±czona do j±dra wcale. Zobacz PostgreSQL 
         Administrator's Guide po bardziej szczegó³owe informacje o pamiêci 
         <I>postmaster'a</I>,
     <B>oraz</B> nie umo¿liwi siê autoryzacji na podstawie adresu hostów
         modyfikuj±c odpowiednio plik
-    <I>$PGDATA/pg_hba.conf</I>. To zmiany pozwol± na
-        po³±czenia TCP/IP.</P>
+    <I>$PGDATA/pg_hba.conf</I>. To zmiany pozwol± na po³±czenia TCP/IP.</P>
 
     <H4><A name="3.6">3.6</A>) Jak powinienem skonfigurowaæ system baz
              danych aby uzyskaæ lepsz± wydajno¶æ?</H4>
         okre¶laj±cym transakcjê - <SMALL>BEGIN WORK/COMMIT</SMALL>, s±
         traktowane jako pojedyncza transakcja. Rozwa¿ wykonanie kilku
         poleceñ/zdañ SQL w jednym bloku transakcji. To redukuje narzut
-        powodowany przez transakcjê. Przy du¿ych zmianach w danych, warto
+        nak³adany przez transakcjê. Przy du¿ych zmianach w danych, warto
         usun±æ i stworzyæ na nowo indeksy.</P>
 
     <P>Jest kilka opcji pozwalaj±cych na poprawienie wydajno¶ci.
         maksymaln± liczbê procesów backendu to obawa o wyczerpanie zasobów
         systemu.</P>
 
-    <P>W wersjach PostgreSQL wcze¶niejszych ni¿ 6.5, maksymalna liczba
-        backendów by³a ustawiona na 64, a zmiana tej warto¶ci wymaga
-        rekompliacji po zmianie sta³ej MaxBackendId w pliku
-    <I>include/storage/sinvaladt.h</I>.</P>
+    <H4><A name="3.9">3.9</A>)  Jakie pliki znajduj± siê w <I>pg_temp</I>?</H4>
 
-    <H4><A name="3.9">3.9</A>)  Co to s± za pliki typu: 
-        <I>pg_sorttempNNN.NN</I>, 
-        które znajduj± siê w katalogu z plikami bazy danych?</H4>
-
-    <P>S± to tymczasowe pliki utworzone przez executor. Dla przyk³adu,
-        je¶li jaka¶ operacja sortowania jest wymagana do wykonania
+    <P>Katalog ten zawiera tymczasowe pliki utworzone przez executor. Dla 
+        przyk³adu, je¶li jaka¶ operacja sortowania jest wymagana do wykonania
     <SMALL>ORDER BY,</SMALL> a samo sortowanie wymaga wiêcej  miejsca ni¿
-        paratmetr backendu
+        parametr backendu
     <I>-S</I> ustawi³ do wykorzystania, wtedy tymczasowe pliki s± u¿ywane
         do przechowywania tych danych.</P>
 
         poprawnie podczas operacji sortowania. Je¶li w danym momencie nie
         dzia³aj± ¿adne procesy backendów mozesz spokojnie usun±æ pliki
     pg_tempNNN.NN.</P>
+
+        <H4><A name="3.9">3.9</A>) Dlaczego konieczne jest przy upgradzie
+             PostgreSQL korzystanie ze skryptów dump i restore?</H4>
+        <P>
+        Twórcy PostgreSQL dokonuj± jedynie ma³ych zmian pomiêdzy ma³ymi
+        upgradami wersji, np z 7.2 do 7.2.1, wtedy upgrade nie wymaga
+        korzystania z dump i restore. Przy wiêkszych zmianach, np. z wersji
+        7.2 do 7.3, czêsto zmianymaj± wp³yw na format przechowywanych danych.
+        Zmiany te s± na tyle skomplikowane, ¿e nie utrzymujemy zgodo¶ci z
+        poprzednimi wersjami PostgreSQL. dump pozwala na wydostanie danych w
+        takiej postaci, w której ³atwe jest ich zaimportowanie do nowszych
+        wersji bez k³opotu.
+        </P>
+        <P>
+        W wydaniach gdzie zmiany nie dotycz± formatu danych na dysku, mo¿na
+        wykorzystaæ skryptu pg_upgrade, do upgradu bez u¿ycia dump/restore.
+        Dokumentacja do danego wydania zawiera informacjê czy mo¿liwe jest
+        u¿ycie pg_upgrade.
+        </P>
     <HR>
 
     <H2 align="center">Pytania dotycz±ce u¿ywania</H2>
         <SMALL>ORDER BY</SMALL>, PostgreSQL mo¿e wykorzystaæ jedynie kilka
         pierwszych rzêdów, byæ mo¿e bêdzie konieczno¶æ wykonania zapytania do
         momentu a¿ zostan± znalezione po¿±dane wyniki.</P>
+        <P>
+        Aby otrzymaæ losowy rz±d, u¿yj:
+        <PRE>
+    SELECT col
+    FROM tab
+    ORDER BY random()
+    LIMIT 1;
+        </PRE>
+       </P>
 
     <H4><A name="4.3">4.3</A>) Jak mogê uzyskaæ listê wszystkich tabel
         czy  innych rzeczy pod <I>psql</I>?</H4>
     <I>-E</I> wtedy po wykonaniu polecenia z backslashem wy¶wietlane
         bêdzie zapytanie, które w rzeczywisto¶ci jest wykonywane.</P>
 
-    <H4><A name="4.4">4.4</A>) Jak usun±æ kolumnê z tabeli?</H4>
-        
-    <P>Nie mamy zaimplementowanego <SMALL>ALTER TABLE DROP
-        COLUMN,</SMALL> ale mo¿esz zrobiæ tak:</P>
+    <H4><A name="4.4">4.4</A>) Jak usun±æ kolumnê z tabeli lub zmieniæ
+        jej typ?</H4>
+
+    <P>DROP COLUMNT zosta³o dodane w wersji 7.3 przy poleceniu ALTER
+        TABLE DROP COLUMN. We wcze¶ñiejszych wersjach mo¿esz zrobiæ tak:
+        </P>
 <PRE>
-    SELECT ...  -- wybierz zawarto¶æ wszystkich kolumn poza t± jedn± której chcesz siê pozbyæ
+        BEGIN;
+        LOCAL TABLE old_table;
+    SELECT ...  -- wybierz wszystkie kolumny poza t± jedn± której chcesz siê pozbyæ
     INTO TABLE new_table
     FROM old_table;
     DROP TABLE old_table;
     ALTER TABLE new_table RENAME TO old_table;
 </PRE>
+       <P>
+       Aby zmieniæ typ danych kolumny mo¿esz zrobiæ tak:
+       </P>
+       <PRE>
+   BEGIN;
+   ALTER TABLE tab ADD COLUMN new_col new_data_type;
+   UPDATE tab SET new_col = CAST(old_col AS new_data_type);
+   ALTER TABLE tab DROP COLUMN old_col;
+   COMMIT;
+       </PRE>
+       </P>
 
     <H4><A name="4.5">4.5</A>) Jaki jest maksymalny rozmiar dla rzêdu,
              tabeli i bazy danych?</H4>
         
     <P>Oto wszystkie ograniczenia:</P>
 <PRE>
-    Maksymalny rozmiar dla bazdy danych?     nieograniczony ( istniej± bazy danych o wielko¶ci 500 GB databases )
-    Maksymalny rozmiar dla tabeli?           16 TB
-    Maksymalny rozmiar dla rzêdu?            nieograniczony w 7.1 i pó¼niejszych
-    Maksymalny rozmiar pola?                 1 GB w 7.1 and later
+    Maksymalny rozmiar dla bazdy danych?     nieograniczony ( istniej±
+        bazy danych o wielko¶ci 32 TB databases )
+    Maksymalny rozmiar dla tabeli?           32 TB
+    Maksymalny rozmiar dla rzêdu?            1.6 TB
+    Maksymalny rozmiar pola?                 1 GB
     Maksymalna liczba rzêdów w tabeli?       nieograniczona
-    Maksymalna liczba kolumn w tabeli?    250-1600 w zale¿ono¶ci od typów kolumn
-    Makasymalna liczba indeksów na tabeli?    nieograniczona
+    Maksymalna liczba kolumn w tabeli?       250-1600 w zale¿ono¶ci od typów kolumn
+    Makasymalna liczba indeksów na tabeli?   nieograniczona
 </PRE>
 
        Oczywi¶cie "nieograniczony" nie jest prawd± tak do koñca, istniej±
        ograniczenia wynikaj±ce z dostêpnego miejsca na dysku, pamiêci/swapa.
        Kiedy wielko¶ci te bêd± bardzo du¿e mo¿e odbiæ siê to na wydajno¶ci.
 
-    <P>Maksymalny rozmiar tabeli, czyli 16 TB nie wymaga od systemu
+    <P>Maksymalny rozmiar tabeli, czyli 32 TB nie wymaga od systemu
         operacyjnego wsparcia dla du¿ych plików. Du¿e tabele s± przechowywane
         jako pliki o rozmiarze 1 GB, wiêc ograniczenia co do wielko¶ci plików
         narzucone przez system plików nie s± istotne.</P>
     <P>Indeksy nie powoduj± du¿ego narzutu na zajmowane miejsce, 
         ale zawieraj± pewne dane,
         wiêc w pewnych przypadkach moga byæ ca³kiem du¿e.</P>
+        <P> NULLe s± przechowywane jako mapy bitowe, wiêc u¿ywaj± bardzo ma³o
+        miejsca.
+        </P>
 
     <H4><A name="4.7">4.7</A>) Jak mogê sprawdziæ jakie tabele, klucze,
              bazy danych i u¿ytkownicy s± utworzeni?</H4>
         nastêpuje sortowanie jest zazwyczaj szybsze niê wyszukiwanie za
         pomoc± indeksu na du¿ej tabeli.</P>
         Jakkolwiek <SMALL>LIMIT</SMALL> w po³±czeniu z <SMALL>ORDER BY</SMALL>
-       czêsto bêdzie wykorzystywa³ indeksów poniew±z jedynie ma³a czê¶c z
-       tabeli jest zwracana.
+       czêsto bêdzie wykorzystywa³ indeksy poniewa¿ jedynie ma³a czê¶æ z
+       tabeli jest zwracana. W rzeczywisto¶ci, chocia¿ MAX() i MIN() nie
+       u¿ywaj± indeksów, mo¿liwe jest aby zwróciæ te warto¶ci u¿ywaj±c
+       indeksów poprzez u¿ycie ORDER BY i LIMIT.
+       </P>
+       <PRE>
+    SELECT col
+    FROM tab
+    ORDER BY col [ DESC ]
+    LIMIT 1;                                    
+       </PRE>
+       <P>
+       Je¶li uwa¿asz, ¿e optimizer myli siê wybieraj±c sequential scan, u¿yj
+       SET enable_seqscan TO 'off' i uruchom testy aby sprawdziæ czy wtym
+       wypadku zapytanie bêdzie szybciej wykonywane.
 
     <P>Kiedy u¿ywa siê operatorów dopasuj±cych takich jak
-        <SMALL>LIKE</SMALL> lub <I>~</I>, indeksy bêd± u¿ywane jedynie je¶li 
-        pocz±tek wyszukiwania jest oparty na pocz±tku ³añcucha tekstu.
-        Dlatego, aby u¿ywac indeksów,
-    dopasowania operatorem <SMALL>LIKE</SMALL> nie mog± siê zaczynaæ
-        <I>%</I>, a dopasowania operatorem <I>~</I> (dopasowania regularne)
-        musz± siê zaczynaæ znakiem specjalnym <I>^</I>.</P>
-
+        <SMALL>LIKE</SMALL> lub <I>~</I>, indeksy bêd± u¿ywane jedynie w
+        pewnych wypadkach:</P>
+        <UL>
+        <LI>Pocz±tek wyszukiwania jest oparty na pocz±tku ³añcucha tekstu.
+        <UL>
+               <LI>wzorce <SMALL>LIKE</SMALL> nie mog± siê zaczynaæ <I>%</I>
+               <LI>dopasowania operatorem <I>~</I> (dopasowania regularne)
+               musz± siê zaczynaæ znakiem specjalnym <I>^</I>.</P>
+        </UL>
+        <LI>Pocz±tek wyszukiwania nie mo¿e siê zaczynaæ od klas znaków, np.
+        [a-e].
+        <LI>Case-insensitive searches such as ILIKE and ~* do not utilise
+        indexes. Instead, use functional indexes, which are described in
+        section 4.12.
+        <LI>Standardowe locale C musi byæ uzyte przy wykonywaniu initdb
+        </UL>
     <H4><A name="4.9">4.9</A>) Jak mogê sprawdziæ w jakis sposób "query
         optimizer" wykonuje moje zapytanie?</H4>
 
     <H4><A name="4.12">4.12</A>) Jak mogê u¿ywaæ wyra¿eñ regularnych w
              zapytaniach i zapytañ case-insensitive w wyra¿eniach
                        regularnych?
-                            jak korzystaæ z indeksów dla zapytañ case-insensitive?</H4>
+                            Jak korzystaæ z indeksów dla zapytañ case-insensitive?</H4>
 
     <P>Operator <I>~</I> moze byæ wykorzystywany do wyszukiwania za
         pomoc± wyra¿eñ regularnych, a 
     <I>~*</I> do wyszukiwania case-insensitive z wyra¿eniami
         regularnymi. 
     Wariant case-insensitive dla <SMALL>LIKE</SMALL> zosta³ nazwany
-    <SMALL>ILIKE</SMALL> i jest dostêpny w PostgreSQL 7.1 i pó¼niejszych
-        wersjach.</P>
+    <SMALL>ILIKE</SMALL>.</P>
 
     <P>Porównania case-insensitive s± zazwyczaj wykonywane w nastêpuj±cy
         sposób:</P>
 <PRE>
 Type            Nazwa wewnêtrzna   Uwagi
 --------------------------------------------------
-"char"          char                     1 znak
-CHAR(#)         bpchar             wype³niane pustymi znakami do podanej d³ugo¶ci
-VARCHAR(#)      varchar            rozmiar okre¶la maksymaln± d³ugo¶æ, nie ma tutaj wype³niania
+VARCHAR(n)      varchar            rozmiar okre¶la maksymaln± d³ugo¶æ, nie ma tutaj wype³niania
+CHAR(n)         bpchar             wype³niane pustymi znakami do podanej d³ugo¶ci
 TEXT            text               bez limitu na d³ugo¶æ ³añcucha
 BYTEA           bytea              zmiennej d³ugo¶ci tablica bajtów (null-byte safe)
+"char"          char                     1 znak
 </PRE>
 
     <P>Je¶li bêdziesz przegl±daæ katalogi systemowe lub komunikaty o
         b³êdach czêsto spotkasz siê z podanymi powy¿ej nazwami
         wewnêtrznymi.</P>
 
-    <P>Ostatnie cztery typy powy¿ej to tzw typy "varlena" (np. pierwsze
+    <P>Pierwsze cztery typy powy¿ej to tzw typy "varlena" (np. pierwsze
         cztery bajty na dysku to d³ugo¶æ, po których jest data). Dlatego
         faktyczna d³ugo¶c takiego ³añcucha jest trochê wiêksza ni¿
         zadeklarowany rozmiar. Te typy tak¿e podlegaj± kompresji lub mog± byæ
         przechowywane out-of-line jako <SMALL>TOAST</SMALL>, wiêc faktyczne
         zu¿ycie miejsca na dysku mo¿e byæ mniejsze ni¿ oczekiwane.</P>
 
-    <P><SMALL>CHAR()</SMALL> jast najlepszym typem do przechowywania
-        ³añcuchów o tej samej d³ugo¶ci. <SMALL>VARCHAR()</SMALL> jest
+        <SMALL>VARCHAR(n)</SMALL> jest
         najodpowiedniejszy do przechowywania ³añcuchów o ró¿nej d³ugo¶ci
-        ale okre¶la on maksymaln± jego d³ugo¶æ. <SMALL>TEXT</SMALL> jest
-        najlepszy dla ³añcuchów o dowolnej d³ugo¶ci, nie przekraczaj±cej 1GB.
-    <SMALL>BYTEA</SMALL> s³u¿y do przechowywania danych binarnych,
-        w szczególno¶ci dla danych zawieraj±cych <SMALL>NULL</SMALL> bajty.</P>
+        ale okre¶la on maksymaln± jego d³ugo¶æ. 
+        
+        <SMALL>TEXT</SMALL> jest najlepszy dla ³añcuchów o dowolnej d³ugo¶ci,
+        nie przekraczaj±cej 1GB.</P>
+
+       <P>
+       <SMALL>CHAR(n)</SMALL> jast najlepszym typem do przechowywania
+        ³añcuchów o tej samej d³ugo¶ci. CHAR(n) wype³nia dane do ¿adanej
+        d³ugo¶ci, podczas gdy VARCHAR(n) przechowuje jedynie dane
+        dostarczone.
+       
+       <SMALL>BYTEA</SMALL> s³u¿y do przechowywania danych binarnych,
+        w szczególno¶ci dla danych zawieraj±cych <SMALL>NULL</SMALL> bajty.
+        Wszystkie typy opisane tutaj maja podobne charakterystyki je¶li
+        chodzi o wydajno¶æ.</P>
 
     <H4><A name="4.15.1">4.15.1</A>) Jak mogê utworzyæ pole które samo
              zwiêksza swoj± warto¶æ?</H4>
@@ -1188,7 +1259,7 @@ BYTEA           bytea              zmiennej d
 
     <H4><A name="4.15.4">4.15.4</A>) Dlaczego numery sekwencji nie s±
              ponownie u¿ywane przy przerwaniu transakcji?
-                           Sk±d siê bior± luki w numerowaniu kolumny tabeli
+           Sk±d siê bior± luki w numerowaniu kolumny tabeli
                                     sekwancjami/SERIALem?</H4>
 
     <P>Aby poprawiæ zbie¿no¶æ (concurrency), warto¶ci sekwencji s±
@@ -1197,8 +1268,7 @@ BYTEA           bytea              zmiennej d
         numerowaniu z przerwanych transakcji.</P>
 
     <H4><A name="4.16">4.16</A>) Co to jest <SMALL>OID</SMALL>? Co to
-        jest
-            <SMALL>TID</SMALL>?</H4>
+        jest <SMALL>TID</SMALL>?</H4>
 
     <P><SMALL>OID</SMALL> s± PostgreSQL'owym rozwi±zaniem problemu
         unikalnych numerów rzêdów. Ka¿dy rz±d tworzony przez PostgreSQL
@@ -1274,15 +1344,15 @@ BYTEA           bytea              zmiennej d
     </UL>
 
     <P>Listê terminów zwi±zanych z bazami danych mo¿esz znale¼æ pod tym
-        adresem:<A href=
-    "http://www.comptechnews.com/~reaster/dbdesign.html">http://www.comptechnews.com/~reaster/dbdesign.html</A></P>
+        adresem:<A
+        href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html</A>.
 
     <H4><A name="4.18">4.18</A>) Sk±d bierze siê ten b³±d <I>"ERROR:
         Memory exhausted in AllocSetAlloc()"</I>?</H4>
 
-    <P>Je¶li u¿ywasz wersji starszej ni¿ 7.1, upgrade mo¿e rozwi±zaæ ten
-        problem. Jest tak¿e mozliwe, ¿e po prostu wyczerpa³a Ci siê pamiêæ
-        wirtualna (virtual memory) w systemie lub Twój kernel ma zbyt nisko
+    <P>
+        Prawdopodobnie wyczerpa³a Ci siê pamiêæ wirtualna (virtual memory) 
+        w systemie lub Twój kernel ma zbyt nisko
         ustawione limity dla pewnych zasobów. Spróbuj wykonaæ nastêpuj±ce
         polecenia zanim uruchomisz <I>postmaster'a</I>:</P>
 <PRE>
@@ -1332,29 +1402,38 @@ BYTEA           bytea              zmiennej d
     <H4><A name="4.22">4.22</A>) Dlaczego zapytania u¿ywaj±ce
             <CODE><SMALL>IN</SMALL></CODE> sa takie wolne?</H4>
 
-    <P>Obecnie ³±czymy podzapytania w outer queries poprzez sekwencyjne
-        przeszukiwanie wyników podzapytania dla ka¿dego rzêdu z outer query. 
-        Mo¿na to omin±æ zastêpuj±c <CODE>IN</CODE> przez 
+    <P>W wersjach wcze¶niejszych ni¿ 7.4 ³±czymy podzapytania w outer queries 
+        poprzez sekwencyjne przeszukiwanie wyników podzapytania dla ka¿dego rzêdu 
+        z outer query. Je¶li podzapytanie zwraca jedynie kilka rzêdów a
+        zewnêtrzne zapytanie zwraca ich wiele, IN jest najszybsze.
+        Aby przyspieszyæ inne zapytania mo¿na zast±piæ <CODE>IN</CODE> przez 
     <CODE>EXISTS</CODE>:</P>
 <PRE>
 <CODE>SELECT *
     FROM tab
-    WHERE col1 IN (SELECT col2 FROM TAB2)
+    WHERE col IN (SELECT subcol FROM subtab)
 </CODE>
 </PRE>
     na: 
 <PRE>
 <CODE>SELECT *
     FROM tab
-    WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2)
+    WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col)
 </CODE>
 </PRE>
-       Mamy zamiar poprawiæ to ograniczenie w przysz³ych wydaniach.
-
+       <P>
+       Aby to rozwi±zanie by³o szybkie, subcol powinna byæ kolumn±
+       indeksowan±.
+       </P>
+       <P>
+       W wersji 7.4 i pó¼niejszych, IN w rzeczywisto¶ci u¿ywa tej samej
+       wyrafinowanej techniki ³±czenia jak normalne zapytania i jest
+       preferowane nad u¿ywaniem EXISTS.
+       </P>
     <H4><A name="4.23">4.23</A>) Jak wykonaæ "outer join"?</H4>
 
-    <P>PostgreSQL 7.1 i pó¼niejsze wersje maj± zaimplementowane outer join
-        wykorzystuj±c standardow± sk³adnie SQL. Poni¿ej dwa przyk³ady:</P>
+    <P>PostgreSQL ma zaimplementowane outer join
+        wykorzystuj±c standardow± sk³adniê SQL. Poni¿ej dwa przyk³ady:</P>
         
 <PRE>
     SELECT *
@@ -1367,7 +1446,7 @@ BYTEA           bytea              zmiennej d
 </PRE>
 
     <P>Te dwa identyczne zapytania ³±cz± kolumnê t1.col z kolumn± t2.col,
-        ale tak¿e zwróc± niepo³±czone rzêdy w t1 (te które nie pasuj± w t2).
+        ale tak¿e zwróc± niepo³±czone rzêdy w t1 (te, które nie pasuj± w t2).
     <SMALL>RIGHT</SMALL> join doda³by niepo³±czone rzêdy z tabeli t2.
     <SMALL>FULL</SMALL> join zwróci³by rzêdy plus dodatkowo wszystkie
         rzêdy z tabel t1 i t2. S³owo <SMALL>OUTER</SMALL> jest opcjonalne i
@@ -1401,19 +1480,63 @@ BYTEA           bytea              zmiennej d
         katalogi systemowe, nie jest do koñca jasne jak zapytanie pomiêdzy
         ró¿nymi bazami danych powinno siê zachowywaæ.</P>
         
-    <P>Oczywi¶cie klient mo¿e ³±czyæ siê z ró¿nymi bazami danych i ³±czyæ
-        informacjê w ten sposób uzyskan±.</P>
+    <P><I>contrib/dblink</I> pozwala na wykonywanie zapytañ poprzez ró¿ne
+        bazy danych wywo³uj±c odpowiednie funkcje. Oczywi¶cie klient mo¿e ³±czyæ 
+        siê z ró¿nymi bazami danych i ³±czyæ informacjê w ten sposób uzyskan±
+        po stronie klienta.</P>
 
     <H4><A name="4.25">4.25</A>) Jak zwróciæ w funkcji wiele rzêdów lub
              kolumn?</H4>
 
-     <P>Mo¿esz zwracaæ zbiory z funkcji PL/pgSQL u¿ywaj±c 
-     <i>refcursors</i>. Zobacz <a
-     href="http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html">
-     http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html,</a>
-     sekcjê 23.7.3.3.</P>
-
+     <P>Mo¿esz w ³atwy sposób zwracaæ wiele rzêdów lub kolumn u¿ywaj±c
+         funkcji z: <A HREF="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</A>.
      
+       <H4><A name="4.26">4.26</A>) Dlaczego nie mogê w sposób pewny
+            tworzyæ/usuwaæ tabel tymczasowych w funkcjach PL/PgSQL?</H4>
+       <P>
+       PL/PgSQL przechowuje w cache zawarto¶æ funkcji, niepo¿±danym efektem tego
+       jest to, ¿e gdy taka funkcja korzysta z tabel tymczasowych, które s±
+       pó¼niej kasowane i odtwarzane, a funkcja wywo³ywana jest ponownie,jej
+       wywo³anie nie powiedzie siê poniewa¿ cachowana funkcja wci±¿ bêdzie
+       wskazywaæ na stara tablicê tymczasow±. Rozwi±zaniem tego problemu jest
+       u¿ywanie EXECUTE aby korzystaæ z tabel tymczasowych w PL/PgSQL. To
+       spowoduje, ¿e zapytanie bêdzie parsowane przy ka¿dym wywo³aniu
+       funkcji.
+       </P>
+       
+       <H4><A name="4.27">4.27) Jakie s± mo¿liwo¶ci replikacji w PostgreSQL?</H4>
+       <P>
+       Jest kilka opcji aby stosowaæ replikacjê typu master/slave. Ten typ
+       pozwala jedynie masterowi na dokonywanie zmian w bazie danych, a
+       slave mo¿e jedynie te zmiany odczytywaæ. Na stronie 
+       <A
+       HREF="http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research</A>
+       znajduje siê ich lista. Replikacja typu multi-master jest w trakcie
+       prac, opis projektu znajduje siê pod adresem: <A
+       HREF="http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php">
+http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php</A>.
+       </P>
+
+       <H4><A name="4.28">4.28) Jakie mo¿liwo¶ci szyfrowania oferuje
+       PostgreSQL?</H4>
+       <P>
+       <UL>
+       <LI>contrib/pgcrypto zawiera wiele funkcji za pomoc±, których mo¿emy u¿ywaæ
+       kryptografii w zapytaniach SQL.
+       <LI>Aby szyfrowaæ transmisjê od klienta do serwera, ten musi mieæ
+       ustawion± opcjê ssl na true w pliku postgresql.conf, odpowiedni
+       wpis host lub hostssl musi wystêpowaæ w pliku pg_hba.conf, oraz
+       sslmode nie mo¿e byæ wy³±czone w kliencie. (Warto zwróciæ uwagê, ¿e
+       mo¿liwe jest tak¿e u¿ywanie transportów szyfruj±ców przez strony
+       trzecie, takie jak stunnel lub ssh, poza natywnym wsparciem dla SSL
+       przez PostgreSQL).
+       <LI>Has³a u¿ytkowników bazy danych s± automatycznie szyfrowane od
+       wersji 7.3. W poprzednich wersjach, nale¿y t± funkcjonalno¶æ poprzez
+       w³±czenie opcji PASSWORD_ENCRYPTION w postgresql.conf. 
+       <LI>Serwer mo¿e dzia³aæ u¿ywaj±c szyfrowanego systemu plików.
+       </UL>
+</P>
+
     <H2 align="center">Rozwijanie PostgreSQL</H2>
 
     <H4><A name="5.1">5.1</A>) Napisa³em w³asn± funkcjê. Kiedy u¿yjê jej
@@ -1432,8 +1555,12 @@ BYTEA           bytea              zmiennej d
     <H4><A name="5.3">5.3</A>) Jak napisaæ funkcjê C zwracaj±c± krotkê
              (tuple)?</H4>
 
-    <P>To wymaga wysi³ku tak olbrzymiego, ¿e nawet autorzy nigdy tego nie
-        prubowali, chocia¿ z zalo¿eñ wynika, ¿e jest to mo¿liwe.</P>
+       <P>
+       W wersjach PostgreSQL od numeru 7.3, funckje zwracaj±ce tabele s± w
+       pêlni wspierane w C, PL/PgSQL i SQL. Sprawd¼ w Programmer's Guide aby
+       uzyskaæ wiêcej informacji. Przyk³ad funkcji napisanej w C zwracaj±cej
+       tabelê zosta³ umieszczony w <I>contrib/tablefunc</I>.
+       </P>
 
     <H4><A name="5.4">5.4</A>)  Zmieni³em plik ¼ród³owy. Dlaczego po
              rekompilacji nie widaæ zmiany?</H4>
@@ -1443,6 +1570,8 @@ BYTEA           bytea              zmiennej d
         <I>make clean</I>, a nastêpnie ponownie <I>make</I>.
     Je¶li u¿ywasz <SMALL>GCC</SMALL> mo¿esz u¿yæ opcji
     <I>--enable-depend</I> przy wykonywaniu <I>configure</I> aby
+        kompilator móg³ okre¶liæ zale¿no¶ci samodzielnie.
+        </P>
   </BODY>
 </HTML>
 
index 9c5bf192d77394fe8e3b439e75666b65314c85ed..513b08627b337ab822f96ff1312ddd45178a35a4 100644 (file)
@@ -12,7 +12,7 @@
   <BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff">
     <H1>ïÔ×ÅÔÙ ÎÁ ÞÁÓÔÏ ÚÁÄÁ×ÁÅÍÙÅ ×ÏÐÒÏÓÙ ÐÏ PostgreSQL</H1>
 
-    <P>äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: óÒÅÄÁ 19 ÎÏÑÂÒÑ 11:50:04 EDT 2003</P>
+    <P>äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: ÷ÔÏÒÎÉË 6 ÑÎ×ÁÒÑ 16:42:01 EDT 2003</P>
 
     <P>áÎÇÌÉÊÓËÉÊ ×ÁÒÉÁÎÔ ÓÏÐÒÏ×ÏÖÄÁÅÔ: âÒÀÓ íÏÍØÑΠ(Bruce Momjian) (<A href=
     "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
@@ -35,7 +35,7 @@
      <A href="#1.4">1.4</A>) óÕÝÅÓÔ×ÕÀÔ ÌÉ ×ÅÒÓÉÉ ÐÏÒÔÉÒÏ×ÁÎÎÙÅ ÎÅ ÎÁ Unix ÓÉÓÔÅÍÙ?<BR>
      <A href="#1.5">1.5</A>) çÄÅ ÍÏÖÎÏ ×ÚÑÔØ PostgreSQL?<BR>
      <A href="#1.6">1.6</A>) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?<BR>
-     <A href="#1.7">1.7</A>) ëÁËÁÑ ÐÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ?<BR>
+     <A href="#1.7">1.7</A>) ëÁËÁÑ ×ÅÒÓÉÑ ÐÏÓÌÅÄÎÑÑ?<BR>
      <A href="#1.8">1.8</A>) ëÁËÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ?<BR>
      <A href="#1.9">1.9</A>) ëÁË ÎÁÊÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂËÁÈ ÉÌÉ ÏÔÓÕÔÓÔ×ÕÀÝÉÈ
     ×ÏÚÍÏÖÎÏÓÔÑÈ?<BR>
       <A href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A>
     </BLOCKQUOTE>
 
-    <P>åÝÅ ÓÕÝÅÓÔ×ÕÅÔ IRC ËÁÎÁÌ ÎÁ EFNet É Freenode, Ó ÎÁÚ×ÁÎÉÅÍ
+    <P>åÝÅ ÓÕÝÅÓÔ×ÕÅÔ IRC ËÁÎÁÌ ÎÁ Freenode É EFNet, Ó ÎÁÚ×ÁÎÉÅÍ
     <I>#PostgreSQL</I>. ñ ÉÓÐÏÌØÚÕÀ ÄÌÑ ÐÏÄËÌÀÞÅÎÉÑ Ë ÜÔÏÍÕ ËÁÎÁÌÕ ËÏÍÁÎÄÕ Unix
     <CODE>irc -c '#PostgreSQL' "$USER" irc.phoenix.net.</CODE> ÉÌÉ
     <CODE>irc -c '#PostgreSQL' "$USER" irc.freenode.net.</CODE></P>
 
     <H4><A name="1.7">1.7</A>) ëÁËÁÑ ÐÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ?</H4>
 
-    <P>ðÏÓÌÅÄÎÉÊ ×ÙÐÕÓË PostgreSQL - ÜÔÏ ×ÅÒÓÉÑ 7.4.</P>
+    <P>ðÏÓÌÅÄÎÉÊ ×ÙÐÕÓË PostgreSQL - ÜÔÏ ×ÅÒÓÉÑ 7.4.1</P>
 
     <P>íÙ ÐÌÁÎÉÒÕÅÍ ×ÙÐÕÓËÁÔØ ÎÏ×ÙÅ ×ÅÒÓÉÉ ËÁÖÄÙÅ 6-8 ÍÅÓÑÃÅ×.</P>
 
     ÐÏÌØÚÏ×ÁÔÅÌÑ?</H4>
 
     <P>äÁ, ÓÕÝÅÓÔ×ÕÅÔ ÎÅÓËÏÌØËÏ ÇÒÁÆÉÞÅÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ× ÄÌÑ PostgreSQL.
-    üÔÏ PgAccess (<A href="http://www.pgaccess.org/">http://www.pgaccess.org</A>,
-    PgAdmin III (<A href="http://www.pgadmin.org/">http://www.pgadmin.org</A>,
-    Win32-only), RHDB Admin (<A href="http://sources.redhat.com/rhdb/">
-    http://sources.redhat.com/rhdb/</A>) É Rekall
-    (<A href="http://www.thekompany.com/products/rekall/">
+    üÔÏ PgAccess (<A href="http://www.pgaccess.org/">http://www.pgaccess.org</A>),
+    PgAdmin III (<A href="http://www.pgadmin.org/">http://www.pgadmin.org</A>),
+    RHDB Admin (<A href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/</A>)
+    É Rekall (<A href="http://www.thekompany.com/products/rekall/">
     http://www.thekompany.com/products/rekall/</A>, ËÏÍÍÅÒÞÅÓËÉÊ). ôÁËÖÅ ÅÓÔØ
     PHPPgAdmin (<A href="http://phppgadmin.sourceforge.net/">
     http://phppgadmin.sourceforge.net/</A>) - ÉÎÔÅÒÆÅÊÓ Ë PostgreSQL, ÏÓÎÏ×ÁÎÎÙÊ
index faaccaf0fde593c200e63f7be5819378d74534cf..564a23877335a4bbc143810c9dbe7fb3d5e5f5e2 100644 (file)
@@ -3,8 +3,8 @@
 /*
  * Parts of pg_config.h that you get with autoconf on other systems
  */
-#define PG_VERSION "7.4.1"
-#define PG_VERSION_STR "7.4.1 (win32)"
+#define PG_VERSION "7.4.2"
+#define PG_VERSION_STR "7.4.2 (win32)"
 
 #define SYSCONFDIR ""
 
index c93257204c7b4d6967d5d15a51e06bd497aa7da4..3a824ce5f5efea578e9e37faff55301c0d970e28 100644 (file)
@@ -1,8 +1,8 @@
 #include <winver.h>
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 7,4,1,0
- PRODUCTVERSION 7,4,1,0
+ FILEVERSION 7,4,2,0
+ PRODUCTVERSION 7,4,2,0
  FILEFLAGSMASK 0x3fL
  FILEFLAGS 0
  FILEOS VOS__WINDOWS32
@@ -15,13 +15,13 @@ BEGIN
         BEGIN
             VALUE "CompanyName", "\0"
             VALUE "FileDescription", "PostgreSQL Access Library\0"
-            VALUE "FileVersion", "7, 4, 1, 0\0"
+            VALUE "FileVersion", "7, 4, 2, 0\0"
             VALUE "InternalName", "libpq\0"
             VALUE "LegalCopyright", "Copyright (C) 2003\0"
             VALUE "LegalTrademarks", "\0"
             VALUE "OriginalFilename", "libpq.dll\0"
             VALUE "ProductName", "PostgreSQL\0"
-            VALUE "ProductVersion", "7, 4, 1, 0\0"
+            VALUE "ProductVersion", "7, 4, 2, 0\0"
         END
     END
     BLOCK "VarFileInfo"