From 49bc9c45c9aae7710da4ec4d97b1988f8ed089ef Mon Sep 17 00:00:00 2001
From: Bruce Momjian
Date: Fri, 5 Mar 2004 19:57:22 +0000
Subject: [PATCH] Brand 7.4.2. Release notes still need work.
---
INSTALL | 4 +-
configure | 18 +-
configure.in | 4 +-
doc/FAQ_DEV | 6 +-
doc/FAQ_MSWIN | 2 +-
doc/FAQ_german | 71 ++---
doc/FAQ_polish | 442 +++++++++++++++++------------
doc/FAQ_russian | 19 +-
doc/bug.template | 2 +-
doc/src/FAQ/FAQ.html | 25 +-
doc/src/FAQ/FAQ_DEV.html | 9 +-
doc/src/FAQ/FAQ_german.html | 53 ++--
doc/src/FAQ/FAQ_polish.html | 507 +++++++++++++++++++++-------------
doc/src/FAQ/FAQ_russian.html | 17 +-
src/include/pg_config.h.win32 | 4 +-
src/interfaces/libpq/libpq.rc | 8 +-
16 files changed, 714 insertions(+), 477 deletions(-)
diff --git a/INSTALL b/INSTALL
index a455e0cd0e1..5da100ca143 100644
--- 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).
diff --git a/configure b/configure
index 40824514fb3..0f0a19e3096 100755
--- 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 .
#
@@ -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'`\\"
diff --git a/configure.in b/configure.in
index b26c5fe1084..3c16a5ac705 100644
--- a/configure.in
+++ b/configure.in
@@ -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)
diff --git a/doc/FAQ_DEV b/doc/FAQ_DEV
index cbed280b6cb..ae1b932268f 100644
--- a/doc/FAQ_DEV
+++ b/doc/FAQ_DEV
@@ -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
diff --git a/doc/FAQ_MSWIN b/doc/FAQ_MSWIN
index 34cf67b71c3..d753fedd5f8 100644
--- a/doc/FAQ_MSWIN
+++ b/doc/FAQ_MSWIN
@@ -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.
diff --git a/doc/FAQ_german b/doc/FAQ_german
index 32cb5464152..7ae89316772 100644
--- a/doc/FAQ_german
+++ b/doc/FAQ_german
@@ -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:
@@ -229,7 +229,8 @@
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.
@@ -280,10 +281,10 @@
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
@@ -291,7 +292,7 @@
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.
@@ -386,14 +387,18 @@
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
@@ -488,12 +493,11 @@
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?
@@ -788,7 +792,7 @@
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?
@@ -802,7 +806,7 @@
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).
diff --git a/doc/FAQ_polish b/doc/FAQ_polish
index d89b8ea7abe..f98902093c5 100644
--- a/doc/FAQ_polish
+++ b/doc/FAQ_polish
@@ -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
@@ -40,18 +41,17 @@
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?
@@ -110,6 +111,10 @@
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
@@ -125,7 +130,8 @@
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
@@ -137,11 +143,13 @@
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
@@ -194,11 +202,11 @@
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.
@@ -206,9 +214,17 @@
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?
@@ -258,31 +274,31 @@
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.
@@ -327,7 +343,8 @@
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?
@@ -349,44 +366,33 @@
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
@@ -415,9 +421,9 @@
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
@@ -427,7 +433,7 @@
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
@@ -436,69 +442,72 @@
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?
@@ -566,7 +575,7 @@
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.
@@ -665,25 +674,36 @@
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
@@ -706,6 +726,13 @@
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
@@ -714,36 +741,44 @@
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.
+ 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() 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.
+ 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.
diff --git a/doc/FAQ_russian b/doc/FAQ_russian
index ff526bb66f9..169d1670830 100644
--- a/doc/FAQ_russian
+++ b/doc/FAQ_russian
@@ -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?
@@ -273,7 +273,7 @@
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.
@@ -283,7 +283,7 @@
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.
@@ -486,12 +486,11 @@
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?
diff --git a/doc/bug.template b/doc/bug.template
index 7ce4c6b958d..13d13403869 100644
--- a/doc/bug.template
+++ b/doc/bug.template
@@ -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) :
diff --git a/doc/src/FAQ/FAQ.html b/doc/src/FAQ/FAQ.html
index 764d2d82d09..7ff1653ef1c 100644
--- a/doc/src/FAQ/FAQ.html
+++ b/doc/src/FAQ/FAQ.html
@@ -10,14 +10,13 @@
alink="#0000ff">
Frequently Asked Questions (FAQ) for PostgreSQL
- Last updated: Sat Nov 29 23:54:03 EST 2003
+ Last updated: Sat Feb 7 22:16:21 EST 2004
Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
- The most recent version of this document can be viewed at The most recent version of this document can be viewed at http://www.PostgreSQL.org/docs/faqs/FAQ.html.
Platform-specific questions are answered at 1.1) What is PostgreSQL? How is it pronounced?
-
PostgreSQL is pronounced Post-Gres-Q-L.
+ PostgreSQL is pronounced Post-Gres-Q-L. The name "Postgres" is
+ also used in conversation.
PostgreSQL is an enhancement of the POSTGRES database management
system, a next-generation DBMS research prototype.
@@ -170,8 +170,12 @@
developers who all subscribe to the PostgreSQL development mailing
list. The current coordinator is Marc G. Fournier (scrappy@PostgreSQL.org). (See
- section 1.6 on how to join). This team is now
- responsible for all development of PostgreSQL.
+ section 1.6 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,http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html
+
The authors of PostgreSQL 1.01 were Andrew Yu and Jolly Chen.
Many others have contributed to the porting, testing, debugging,
@@ -316,7 +320,7 @@
http://www.PostgreSQL.org
-
There is also an IRC channel on EFNet and Freenode,
+
There is also an IRC channel on Freenode and EFNet,
channel #PostgreSQL. You can use the Unix command irc -c
'#PostgreSQL' "$USER" irc.phoenix.net.
or irc -c
'#PostgreSQL' "$USER" irc.freenode.net.
@@ -326,7 +330,7 @@
1.7) What is the latest release?
- The latest release of PostgreSQL is version 7.4.
+ The latest release of PostgreSQL is version 7.4.1.
We plan to have major releases every six to eight months.
@@ -446,7 +450,8 @@
release. There is an interesting Web page comparing PostgreSQL to
MySQL at
http://openacs.org/philosophy/why-not-mysql.html 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.
@@ -927,7 +932,7 @@
Indexes do not require as much overhead, but do contain the data
that is being indexed, so they can be large also.
- NULLs are stored in bitmaps, so they
+
NULLs are stored as bitmaps, so they
use very little space.
4.7) How do I find out what tables, indexes,
diff --git a/doc/src/FAQ/FAQ_DEV.html b/doc/src/FAQ/FAQ_DEV.html
index 538d4d1b08d..9775e6c262b 100644
--- a/doc/src/FAQ/FAQ_DEV.html
+++ b/doc/src/FAQ/FAQ_DEV.html
@@ -12,16 +12,15 @@
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.
+
diff --git a/doc/src/FAQ/FAQ_german.html b/doc/src/FAQ/FAQ_german.html
index 5042cdfdca9..afa1087f146 100644
--- a/doc/src/FAQ/FAQ_german.html
+++ b/doc/src/FAQ/FAQ_german.html
@@ -14,7 +14,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us).
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:
@@ -220,7 +220,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us).
in der Vorbereitung.
Weitere Informationen zum Status von PostgreSQL auf der Microsoft-Plattform
- befinden sich unter http://techdocs.postgresql.org/guides/Windows (en.).
+ befinden sich unter 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.
@@ -273,9 +273,10 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us).
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
@@ -284,7 +285,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us).
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.
@@ -374,13 +375,15 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us).
- Performanz
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.
+ 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
@@ -479,9 +482,8 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us).
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://www.pgadmin.org, RHDB Admin (http://sources.redhat.com/rhdb/
) und Rekall (
http://www.thekompany.com/products/rekall/, proprietär). Es gibt
@@ -785,7 +787,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us).
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).
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 Large-File-Unterstützung
+
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.
@@ -1012,7 +1014,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,
@@ -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 );
umgewandelt.
Die create_sequence Man-Page liefert weitere Informationen über Sequenzen.
@@ -1180,8 +1181,8 @@ 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
+
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.:
@@ -1196,8 +1197,10 @@ 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?
@@ -1355,8 +1358,6 @@ BYTEA bytea Bytearray mit variabler L
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).