1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-26 12:21:12 +03:00

Brand 7.4.2. Release notes still need work.

This commit is contained in:
Bruce Momjian
2004-03-05 19:57:22 +00:00
parent aeda110cb9
commit 49bc9c45c9
16 changed files with 714 additions and 477 deletions

View File

@ -180,7 +180,7 @@ Substitute your paths appropriately.
need to do this. need to do this.
To make the backup, you can use the "pg_dumpall" command from the version 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 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 bug fixes and improvements over older versions. While this advice might
seem idiosyncratic since you haven't installed the new version yet, it is 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 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 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 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 logged in to the special database user account (which you already have if you
are upgrading). are upgrading).

18
configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # 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>. # Report bugs to <pgsql-bugs@postgresql.org>.
# #
@ -258,8 +258,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package. # Identity of this package.
PACKAGE_NAME='PostgreSQL' PACKAGE_NAME='PostgreSQL'
PACKAGE_TARNAME='postgresql' PACKAGE_TARNAME='postgresql'
PACKAGE_VERSION='7.4.1' PACKAGE_VERSION='7.4.2'
PACKAGE_STRING='PostgreSQL 7.4.1' PACKAGE_STRING='PostgreSQL 7.4.2'
PACKAGE_BUGREPORT='pgsql-bugs@postgresql.org' PACKAGE_BUGREPORT='pgsql-bugs@postgresql.org'
ac_unique_file="src/backend/access/common/heaptuple.c" 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. # 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. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF 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]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -830,7 +830,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of PostgreSQL 7.4.1:";; short | recursive ) echo "Configuration of PostgreSQL 7.4.2:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -950,7 +950,7 @@ fi
test -n "$ac_init_help" && exit 0 test -n "$ac_init_help" && exit 0
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
PostgreSQL configure 7.4.1 PostgreSQL configure 7.4.2
generated by GNU Autoconf 2.53 generated by GNU Autoconf 2.53
Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 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 This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. 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 generated by GNU Autoconf 2.53. Invocation command line was
$ $0 $@ $ $0 $@
@ -17990,7 +17990,7 @@ _ASBOX
} >&5 } >&5
cat >&5 <<_CSEOF 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 generated by GNU Autoconf 2.53. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -18052,7 +18052,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\ ac_cs_version="\\
PostgreSQL config.status 7.4.1 PostgreSQL config.status 7.4.2
configured by $0, generated by GNU Autoconf 2.53, configured by $0, generated by GNU Autoconf 2.53,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"

View File

@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script. 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
dnl Developers, please strive to achieve this order: dnl Developers, please strive to achieve this order:
dnl 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". dnl Texinfo. Use this sorcery to use "docdir" instead of "infodir".
m4_define([info], [doc]) m4_define([info], [doc])
m4_define([infodir], [docdir]) 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([infodir])
m4_undefine([info]) m4_undefine([info])
AC_SUBST(docdir) AC_SUBST(docdir)

View File

@ -1,12 +1,12 @@
Developer's Frequently Asked Questions (FAQ) for PostgreSQL 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) Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
The most recent version of this document can be viewed at the The most recent version of this document can be viewed at
postgreSQL Web site, http://www.PostgreSQL.org. http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html.
_________________________________________________________________ _________________________________________________________________
General Questions General Questions

View File

@ -1,7 +1,7 @@
How to install PostgreSQL on Windows 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 PostgreSQL requires the appropriate subset of Cygwin DLLs to be
installed in order that it functions under Windows. installed in order that it functions under Windows.

View File

@ -5,8 +5,8 @@
Deutsche <20>bersetzung von Ian Barwick (barwick@gmx.net). Deutsche <20>bersetzung von Ian Barwick (barwick@gmx.net).
Letzte Aktualisierung der deutschen <20>bersetzung: Di., den 02.09.2003, Letzte Aktualisierung der deutschen <20>bersetzung: Fr., den 02.01.2004,
10:00 CET 07:30 CET
Die aktuellste Version dieses Dokuments liegt auf der PostgreSQL Die aktuellste Version dieses Dokuments liegt auf der PostgreSQL
Website: Website:
@ -229,7 +229,8 @@
Weitere Informationen zum Status von PostgreSQL auf der Weitere Informationen zum Status von PostgreSQL auf der
Microsoft-Plattform befinden sich unter 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 Eine Portierung f<>r Novell Netware 6 gibt es unter
http://forge.novell.com. http://forge.novell.com.
@ -280,10 +281,10 @@
http://www.PostgreSQL.org http://www.PostgreSQL.org
Es gibt au<61>erdem einen IRC-Channel bei EFNet und bei OpenProjects, Es gibt au<61>erdem einen IRC-Channel bei EFNet und bei Freenode, Channel
Channel #PostgreSQL. Der FAQ-Autor Bruce Momjian nutzt den #PostgreSQL. Unter UNIX/Linux k<>nnen Sie mit z.B. irc -c '#PostgreSQL'
Unix-Befehl: irc -c '#PostgreSQL' "$USER" irc.phoenix.net um daran "$USER" irc.phoenix.net bzw. irc -c '#PostgreSQL' "$USER"
teilzunehmen. irc.freenode.net. daran teilnehmen.
Eine Liste von Unternehmen, die Support f<>r PostgreSQL auf Eine Liste von Unternehmen, die Support f<>r PostgreSQL auf
kommerzieller Basis leisten, kann unter kommerzieller Basis leisten, kann unter
@ -291,7 +292,7 @@
1.7) Was ist die neueste Version von PostgreSQL? 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 Die Freigabe einer neuen Version erfolgt im Schnitt ca. dreimal pro
Jahr. Jahr.
@ -386,14 +387,18 @@
PostgreSQL weist eine Performanz auf, die mit der von PostgreSQL weist eine Performanz auf, die mit der von
kommerziellen und anderen Open-Source-Datenbanken vergleichbar kommerziellen und anderen Open-Source-Datenbanken vergleichbar
ist. In manchen Bereichen ist es schneller, in anderen ist. In manchen Bereichen ist es schneller, in anderen
langsamen. Im Vergleich zu MySQL oder abgespeckten langsamer.
Datenbank-Systemen sind INSERT- und UPDATE-Anweisungen aufgrund
des Transaktionsaufwands langsamer. MySQL hat allerdings keine Im Vergleich zu MySQL oder abgespeckten Datenbank-Systemen ist
der oben erw<72>hnten Eigenschaften. PostgreSQL setzt auf PostgreSQL in Lastsituationen - z.B. bei zeitgleichen Zugriffen
Zuverl<EFBFBD>ssigkeit und Funktionsumfang, obwohl selbstredend durch mehrere Nutzer, komplexen Abfragen oder gleichzeitigen
st<EFBFBD>ndig an Performanz- Verbesserungen gearbeitet wird. Ein Lese- und Schreibzugriffen schneller. MySQL ist nur bei
interessanter Vergleich zwischen PostgreSQL und MySQL befindet einfacheren SELECT-Abfragen mit wenigen Nutzern schneller.
sich unter dieser URL: MySQL hat allerdings wenige der oben erw<72>hnten Eigenschaften.
PostgreSQL setzt auf Zuverl<72>ssigkeit und Funktionsumfang, dabei
wird selbstredend st<73>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 http://openacs.org/philosophy/why-not-mysql.html
Zuverl<72>ssigkeit Zuverl<72>ssigkeit
@ -488,12 +493,11 @@
2.3) Hat PostgreSQL eine grafische Benutzerschnittstelle? 2.3) Hat PostgreSQL eine grafische Benutzerschnittstelle?
Es gibt mehrere grafische Schnittstellen f<>r PostgreSQL, darunter Es gibt mehrere grafische Schnittstellen f<>r PostgreSQL, darunter
PgAccess ( http://www.pgaccess.org), PgAdmin II PgAccess ( http://www.pgaccess.org), PgAdmin III
(http://www.pgadmin.org, nur f<>r Win32), RHDB Admin (http://www.pgadmin.org, RHDB Admin (http://sources.redhat.com/rhdb/ )
(http://sources.redhat.com/rhdb/ ) und Rekall ( und Rekall ( http://www.thekompany.com/products/rekall/, propriet<65>r).
http://www.thekompany.com/products/rekall/, propriet<65>r). Es gibt Es gibt au<61>erdem PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ),
au<EFBFBD>erdem PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ), eine eine web-basierte Schnittstelle.
web-basierte Schnittstelle.
2.4) Welche Programmiersprachen und Schnittstellen gibt es? 2.4) Welche Programmiersprachen und Schnittstellen gibt es?
@ -788,7 +792,7 @@
Es bestehen folgende Obergrenzen: Es bestehen folgende Obergrenzen:
Maximale Gr<47><72>e eine Datenbank? unbeschr<68>nkt (es existieren Maximale Gr<47><72>e eine Datenbank? unbeschr<68>nkt (es existieren
Datenbanken mit 4TB) Datenbanken mit 4TB)
Maximale Gr<47><72>e einer Tabelle? 16 TB Maximale Gr<47><72>e einer Tabelle? 32 TB
Maximale Gr<47><72>e einer Zeile? 1,6 TB Maximale Gr<47><72>e einer Zeile? 1,6 TB
Maximale Gr<47><72>e einer Spalte? 1 GB Maximale Gr<47><72>e einer Spalte? 1 GB
Maximale Anzahl von Zeilen in einer Tabelle? Maximale Anzahl von Zeilen in einer Tabelle?
@ -802,7 +806,7 @@
verf<72>gbaren Platten- und Speicherressourcen eingeschr<68>nkt sind. verf<72>gbaren Platten- und Speicherressourcen eingeschr<68>nkt sind.
Extreme Gr<47><72>en k<>nnen zu Leistungseinbu<62>en f<>hren. Extreme Gr<47><72>en k<>nnen zu Leistungseinbu<62>en f<>hren.
Die maximale Tabellengr<67><72>e von 16 TB ben<65>tigt keine Die maximale Tabellengr<67><72>e von 32 TB ben<65>tigt keine
Large-File-Unterst<73>tzung im Betriebssystem. Gro<72>e Tabellen werden in Large-File-Unterst<73>tzung im Betriebssystem. Gro<72>e Tabellen werden in
Dateien mit einer Gr<47><72>e von 1 GB aufgeteilt, wodurch etwaige Dateien mit einer Gr<47><72>e von 1 GB aufgeteilt, wodurch etwaige
dateisystem-bedingte Beschr<68>nkungen nicht relevant sind. dateisystem-bedingte Beschr<68>nkungen nicht relevant sind.
@ -1016,7 +1020,7 @@ BYTEA bytea Bytearray mit variabler L
Werts? Werts?
PostgreSQL bietet einen SERIAL-Datentyp. Dieser erzeugt automatisch 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 ( CREATE TABLE person (
id SERIAL, id SERIAL,
name TEXT name TEXT
@ -1028,7 +1032,6 @@ BYTEA bytea Bytearray mit variabler L
id INT4 NOT NULL DEFAULT nextval('person_id_seq'), id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
name TEXT name TEXT
); );
CREATE UNIQUE INDEX person_id_key ON person ( id );
umgewandelt. umgewandelt.
@ -1175,10 +1178,10 @@ BYTEA bytea Bytearray mit variabler L
4.22) Warum sind meine Unterabfragen (subqueries), die IN verwenden, so 4.22) Warum sind meine Unterabfragen (subqueries), die IN verwenden, so
langsam? langsam?
Derzeit werden Unterabfragen mit der <20>usseren Abfrage verbunden, indem In Versionen vor 7.4 werden Unterabfragen mit der <20>usseren Abfrage
f<>r jede Reihe der <20>usseren Query die Ergebnisse der Unterabfrage verbunden, in dem f<EFBFBD>r jede Reihe der <20>usseren Query die Ergebnisse der
sequentiell gepr<70>ft werden. Um dies zu vermeiden, kann man IN durch Unterabfrage sequentiell gepr<70>ft werden. Um dies zu vermeiden, kann
EXISTS ersetzen, z.B.: man IN durch EXISTS ersetzen, z.B.:
SELECT * SELECT *
FROM tabelle_1 FROM tabelle_1
WHERE spalte1 IN (SELECT spalte2 FROM tabelle_2) 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) WHERE EXISTS (SELECT spalte2 FROM tabelle_2 WHERE spalte1 = spalte2)
Damit diese Abfrage effizient durchgef<65>hrt wird, sollte f<>r 'spalte2' Damit diese Abfrage effizient durchgef<65>hrt wird, sollte f<>r 'spalte2'
ein Index angelegt worden sein. Die Einschr<68>nkung von Abfragen mit IN ein Index angelegt worden sein. Ab PostgreSQL 7.4 IN verwendet die
wird in der n<>chsten PostgreSQL-Version (7.4) behoben werden. gleichen Methoden wie die normale Tabellenverkn<6B>pfung und ist daher
soger EXISTS vorzuziehen.
4.23) Wie f<>hre ich einen OUTER JOIN durch? 4.23) Wie f<>hre ich einen OUTER JOIN durch?
@ -1344,6 +1348,3 @@ BYTEA bytea Bytearray mit variabler L
Verst<73>ndnisfragen zum Inhalt der FAQ freue ich mich. Ich nehme auch Verst<73>ndnisfragen zum Inhalt der FAQ freue ich mich. Ich nehme auch
allgemeine Fragen zu PostgreSQL gerne entgegen, verweise jedoch auf allgemeine Fragen zu PostgreSQL gerne entgegen, verweise jedoch auf
die Mailing-Listen als schnelle und zuverl<72>ssige Anlaufstellen. die Mailing-Listen als schnelle und zuverl<72>ssige Anlaufstellen.
Diese <20>bersetzung basiert teilweise auf einer fr<66>heren <20>bersetzung von
Karsten Schulz (schulz@linux-systemhaus.de).

View File

@ -1,18 +1,19 @@
Frequently Asked Questions (FAQ) o PostgreSQL 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) Obecny maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
Tl/umaczenie: Marcin Mazurek (m.mazurek@netsync.pl) Tl/umaczenie: Marcin Mazurek (m.mazurek@netsync.pl)
Najbardziej aktualna wersje tego dokumentu mozna znalezc pod adresem: 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<65>w operacyjnych Odpowiedzi na pytania dotyczace konkretnych system<65>w operacyjnych
mozna znalezc pod adresem: mozna znalezc pod adresem: http://www.PostgreSQL.org/docs/index.html.
http://www.PostgreSQL.org/users-lounge/docs/faq.html.
_________________________________________________________________ _________________________________________________________________
Pytania og<6F>lne Pytania og<6F>lne
@ -40,12 +41,11 @@
2.1) Czy sa jakies driwery ODBC dla PostgreSQL? 2.1) Czy sa jakies driwery ODBC dla PostgreSQL?
2.2) Jakie istnieja narzedzia pozwalajace na dostep do PostgreSQL 2.2) Jakie istnieja narzedzia pozwalajace na dostep do PostgreSQL
przez www? przez www?
2.3) Czy istnieje jakies GUI dla PostgreSQL? Narzedzie do 2.3) Czy istnieje jakies GUI dla PostgreSQL?
raportowania? Interfejs dla "embedded query language"?
2.4) Za pomoca jakich jezyk<79>w programowania mozna sie komunikowac z 2.4) Za pomoca jakich jezyk<79>w programowania mozna sie komunikowac z
PostgreSQL? PostgreSQL?
Pytania administratora Pytania dotyczace administracji
3.1) Jak moge zainstalowac PostgreSQL w innej lokalizacji niz 3.1) Jak moge zainstalowac PostgreSQL w innej lokalizacji niz
/usr/local/pgsql? /usr/local/pgsql?
@ -61,8 +61,9 @@
3.7) Jakie sa mozliwosci wyszukiwania bl/ed<65>w? 3.7) Jakie sa mozliwosci wyszukiwania bl/ed<65>w?
3.8) Skad sie bierze komunikat: "Sorry, too many clients" podczas 3.8) Skad sie bierze komunikat: "Sorry, too many clients" podczas
pr<70>by pol/aczenia sie z baza danych? pr<70>by pol/aczenia sie z baza danych?
3.9) Co to za pliki typu pg_sorttempNNN.NN , kt<6B>re znajduja sie w 3.9) Jakie pliki znajduja sie w pg_temp?
katalogu z plikami bazy danych? 3.10) Dlaczego konieczne jest przy upgradzie PostgreSQL korzystanie ze
skrypt<70>w dump i restore?
Pytania dotyczace uzytkowania Pytania dotyczace uzytkowania
@ -72,7 +73,7 @@
zapytania? zapytania?
4.3) Jak moge uzyskac liste wszystkich tabel czy innych rzeczy pod 4.3) Jak moge uzyskac liste wszystkich tabel czy innych rzeczy pod
psql? 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.5) Jaki jest maksymalny rozmiar dla rzedu, tabeli i bazy danych?
4.6) Jak duzo miejsca w bazie danych jest potrzebne aby przechowac 4.6) Jak duzo miejsca w bazie danych jest potrzebne aby przechowac
dane ze zwyczajnego pliku tekstowego? dane ze zwyczajnego pliku tekstowego?
@ -110,6 +111,10 @@
4.23) Jak wykonac "outer join"? 4.23) Jak wykonac "outer join"?
4.24) Jak wykonywac zapytanie uzywajace kilku baz danych jednoczesnie? 4.24) Jak wykonywac zapytanie uzywajace kilku baz danych jednoczesnie?
4.25) Jak zwr<77>cic w funkcji wiele rzed<65>w lub kolumn? 4.25) Jak zwr<77>cic w funkcji wiele rzed<65>w lub kolumn?
4.26) Dlaczego nie moge w spos<6F>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 Rozwijanie PostgreSQL
@ -125,7 +130,8 @@
1.1) Co to jest PostgreSQL? Jak to wymawiac? 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<7A>w uzywany
jest termin "Postgres"
PostgreSQL jest rozszerzeniem systemu zarzadzania bazami danych - PostgreSQL jest rozszerzeniem systemu zarzadzania bazami danych -
POSTGRES, kolejna generacja rozwojowego prototypu DBMS. Mimo, ze POSTGRES, kolejna generacja rozwojowego prototypu DBMS. Mimo, ze
@ -137,11 +143,13 @@
Rozw<7A>j PostgreSQL jest prowadzony przez grupe ludzi z Internetu, Rozw<7A>j PostgreSQL jest prowadzony przez grupe ludzi z Internetu,
komunikujacych sie poprzez mailowe listy dyskusyjne PostgreSQL. komunikujacych sie poprzez mailowe listy dyskusyjne PostgreSQL.
Obecnym koordynatorem jest Marc G. Fournier (scrappy@PostgreSQL.org). Obecnym koordynatorem jest Marc G. Fournier (scrappy@PostgreSQL.org).
(Zobacz ponizej jak sie przyl/aczyc). Ta grupa ludzi jest (Zobacz pytanie 1.6 jak sie przyl/aczyc). Ta grupa ludzi jest
odpowiedzialna za cal/y rozw<7A>j PostgreSQL. odpowiedzialna za cal/y rozw<7A>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 Autorami PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. Wiele innych
os<6F>b pomogl/o przy portowaniu, testowaniu, debugowaniu, i rozwijaniu os<6F>b pomogl/o przy portowaniu, testowaniu, debugowaniu i rozwijaniu
kodu. Oryginalny kod Postgresa, na kt<6B>rym zostal/ oparty PostgreSQL, kodu. Oryginalny kod Postgresa, na kt<6B>rym zostal/ oparty PostgreSQL,
byl/ wysil/kiem student<6E>w oraz pracownik<69>w pracujacych pod byl/ wysil/kiem student<6E>w oraz pracownik<69>w pracujacych pod
kierownictwem profesora Michael'a Stonebraker'a z University of kierownictwem profesora Michael'a Stonebraker'a z University of
@ -194,11 +202,11 @@
Klient Klient
Mozliwa jest kompilacja bibliteki C libpq C, psql oraz innych Mozliwa jest kompilacja bibliteki C libpq, psql oraz innych
interfejs<6A>w i uruchamianie ich na platformie MS Windows. W tym wypadku interfejs<6A>w i uruchamianie ich na platformie MS Windows. W tym wypadku
klient jest uruchamiany na MS Windows a z serwerem komunikuje sie klient jest uruchamiany na MS Windows a z serwerem komunikuje sie
poprzez TCP/IP. Serwer moze dzial/ac na dowolnej wspieranej platformie poprzez TCP/IP. Serwer moze dzial/ac na dowolnej wspieranej platformie
Unixowej. Plik win31.mak jest dol/aczony do zr<7A>del/, aby mozna byl/o Unixowej. Plik win32.mak jest dol/aczony do zr<7A>del/, aby mozna byl/o
stworzyc biblioteke libpq oraz program psql dzial/ajace w srodowisku stworzyc biblioteke libpq oraz program psql dzial/ajace w srodowisku
Win32. PostgreSQL moze sie takze komunikowac z klientami ODBC. Win32. PostgreSQL moze sie takze komunikowac z klientami ODBC.
@ -206,9 +214,17 @@
Serwer moze byc uruchamiany na Windows NT i Win2k uzywajac bibliotek Serwer moze byc uruchamiany na Windows NT i Win2k uzywajac bibliotek
Cygwin, Cygnus Unix/NT. W pliku pgsql/doc/FAQ_MSWIN znajdujacym sie w Cygwin, Cygnus Unix/NT. W pliku pgsql/doc/FAQ_MSWIN znajdujacym sie w
zr<7A>dl/ach lub pod adresem: MS Windows FAQ na naszych stronach. Nie zr<7A>dl/ach lub pod adresem:
planujemy tworzyc portu przeznaczonego docelowo dla platformy http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN na naszych
Microsoft. 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? 1.5) Skad mozna sciagnac PostgreSQL?
@ -258,31 +274,31 @@
irc.phoenix.net. irc.phoenix.net.
Lista firm oferujacych wsparcie na zasadach komercyjnych znajduje sie Lista firm oferujacych wsparcie na zasadach komercyjnych znajduje sie
pod adresem: pod adresem: http://techdocs.postgresql.org/companies.php.
http://www.postgresql.org/users-lounge/commercial-support.html.
1.7) Jaka jest ostatnia dostepna wersja? 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? 1.8) Jaka dokumentacja jest dostepna?
Kilka manuali, stron podecznika man, oraz kilka przykl/ad<61>w do Kilka manuali, stron podecznika man, oraz kilka przykl/ad<61>w do
testowania sa zal/aczone w samej dystrybucji. Znajduja sie one w testowania sa zal/aczone w samej dystrybucji. Znajduja sie one w
katalogu /doc. Manual moze byc takze przegladany poprzez strony www 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 Istnieja takze dwie ksiazki dostepne online pod adresami
http://www.PostgreSQL.org/docs/awbook.html i http://www.PostgreSQL.org/docs/awbook.html i
http://www.commandprompt.com/ppbook/. Lista ksiazek o PostgreSQL, http://www.commandprompt.com/ppbook/. Lista ksiazek o PostgreSQL,
kt<6B>re mozna kupic znajduje sie pod adresem kt<6B>re mozna kupic znajduje sie pod adresem
http://www.postgresql.org/books/. Zbi<62>r technicznych artykul/<2F>w o http://techdocs.PostgreSQL.org/techdocs/bookreviews.php. Zbi<62>r
PostgreSQL znajduje sie pod adresem http://techdocs.postgresql.org/. technicznych artykul/<2F>w o PostgreSQL znajduje sie pod adresem
http://techdocs.postgresql.org/.
psql posiada kilka wbudowanych polecen \d, za pomoca kt<6B>rych mozna psql posiada kilka wbudowanych polecen \d, za pomoca kt<6B>rych mozna
sprawdzic informacje dotyczace typ<79>w, operator<6F>w, funkcji, aggregat<EFBFBD>w sprawdzic informacje dotyczace typ<79>w, operator<6F>w, funkcji, agregat<61>w
itd. itd.
Na naszej stronie mozna znalezc duzo wiecej dokumentacji. Na naszej stronie mozna znalezc duzo wiecej dokumentacji.
@ -327,7 +343,8 @@
Jest okol/o 12 os<6F>b, kt<6B>re maja uprawnienia do commit'owania w CVS Jest okol/o 12 os<6F>b, kt<6B>re maja uprawnienia do commit'owania w CVS
PostgreSQL'a. Kazdy z nich submitowal/ tak wiele wysokiej jakosci PostgreSQL'a. Kazdy z nich submitowal/ tak wiele wysokiej jakosci
patchy, ze stal/o sie niemozliwe dla obecnych commiter<65>w byc z nimi na patchy, ze stal/o sie niemozliwe dla obecnych commiter<65>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? 1.13) Jak moge zgl/aszac bl/edy?
@ -349,38 +366,27 @@
integrity, oraz wyrafinowany system blokowania. Mamy takze integrity, oraz wyrafinowany system blokowania. Mamy takze
wl/asciowsci kt<6B>rych inni nie posiadaja, jak typy definiowane wl/asciowsci kt<6B>rych inni nie posiadaja, jak typy definiowane
przez uzytkownika, dziedziczenie, rules, multi-version przez uzytkownika, dziedziczenie, rules, multi-version
concurrency control, kt<6B>ra redukuje problemy z blokowaiem (lock concurrency control, kt<6B>ra redukuje problemy z blokowaniem
contention). (lock contention).
Wydajnosc Wydajnosc
PostgreSQL dzial/a w dw<64>ch trybach. Standardowy tryb fsync Wydajnosc PostgreSQL jest podobna do innych komercyjnych i open
zrzuca kazda zakonczona transakcje na dysk, gwarantujac w ten source baz danych. W niekt<6B>rych sytuacjach jest szybszy w
spos<EFBFBD>b to, ze jesli system operacyjny sie zawiesi lub straci niekt<EFBFBD>rych wolniejszy. W por<6F>wnianiu do MySQL lub mniejszych
zasilanie wciagu kilku nastepnych sekund, wszystkie Twoje dane baz danych jestesmy szybsi przy wielu uzytkownikach,
zostana bezpiecznie zapisane na dysku. W tym trybie, jestesmy skomplikowaych zapytaniach i duzym obciazeniu podczas. MySQL
wolniejsi niz wiekszosc komercyjnych baz danych, czesciowo jest szybszy dla prostych SELECT<43>w wykonywanych przez niewielu
dlatego ze niewiele z nich wykonuje taki spos<6F>b zapisywania uzytkownik<EFBFBD>w. Spowodowane jest to narzutem, kt<6B>ry sie pojawia
danych jako domyslne ustawienie. W trybie no-fsync z regul/y przy transakcjach. Oczywiscie MySQL nie ma wiekszosci z
jestesmy szybsi niz komercyjne bazy danych, chociaz w tym rozwiazan opisanych powyzej w sekcji Mozliwosci . PostgreSQL
wypadku zawieszenie sie systemu moze spowodowac uszkodzenie zostal/ stworzony z mysla o stabilnosci, oraz szerokiej gamie
danych. Pracujemy nad tym, aby stworzyc posredni tryb, kt<6B>ry mozliwosci, ale mimo to staramy sie w kazdej wersji poprawiac
powoduje mniejsza redukcje wydajnosci niz tryb fsync i pozwoli jego wydajnosc. Ciekawe por<6F>wnanie PostgreSQL i MySQL mozna
na integralnosc danych w przeciagu 30 sekund do zal/amania sie znalezc pod adresem
systemu operacyjnego. http://openacs.org/philosophy/why-not-mysql.html Dodatkowo,
Por<EFBFBD>wnujac do MySQL czy innych prostych baz danych, jestesmy MySQL jest firma, kt<6B>ra dystrybuuje jej produkty poprzez zasade
wolniejsi przy wykonywaniu insert<72>w/updat<61>w przez narzut Open Source i wymaga wykupienia licencji w przypadku tworzenia
spowodowany przez transakcje. Oczywiscie MySQL nie posiada close-source software, co ie ma miejsca w przypadku PostgreSQL.
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<7A>dl/owego i profilowanie. Ciekawe
por<6F>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<6F>w, r<>zne backendy moga bez problemu dzial/ac na
r<>znych procesorach.
Stabilnosc Stabilnosc
Zdajemy sobie sprawe, ze DBMS musi byc stabilny, w przeciwnym Zdajemy sobie sprawe, ze DBMS musi byc stabilny, w przeciwnym
@ -415,9 +421,9 @@
1.15) W jaki spos<6F>b moge wesprzec finansowo PostgreSQL? 1.15) W jaki spos<6F>b moge wesprzec finansowo PostgreSQL?
PostgreSQL korzysta z najlepszej infrastruktury od samego poczatku PostgreSQL korzysta z najlepszej infrastruktury od samego poczatku
istnienia projektu, tzn. szesciu lat. Wszystko to zawdzieczamy istnienia projektu, czyli roku 1996 kiedy rozpoczelismy prace.
Marc'owi Fournier'owi, kt<6B>ry stworzyl/ ta infrastrukture i zarzadza Wszystko to zawdzieczamy Marc'owi Fournier'owi, kt<6B>ry stworzyl/ ta
nia od lat. infrastrukture i zarzadza nia od lat.
Wysokiej jakosci infrastruktura jest bardzo wazna dla kazdego projektu Wysokiej jakosci infrastruktura jest bardzo wazna dla kazdego projektu
open-source. Zapobiega przerwom w rozwoju projektu i jakimkolwiek open-source. Zapobiega przerwom w rozwoju projektu i jakimkolwiek
@ -427,7 +433,7 @@
tanie. Istnieje wiele r<>znych miesiecznych, czy jednorazowych tanie. Istnieje wiele r<>znych miesiecznych, czy jednorazowych
wydatk<74>w, kt<6B>re trzeba ponosic aby wszystko dzial/al/o jak nalezy. wydatk<74>w, kt<6B>re trzeba ponosic aby wszystko dzial/al/o jak nalezy.
Jesli Ty, badz Twoja firma moze wspom<6F>c finansowo rozw<7A>j PostgreSQL Jesli Ty, badz Twoja firma moze wspom<6F>c finansowo rozw<7A>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. to zrobic.
Chociaz na stronie wspomniana jest nazwa PostgreSQL Inc, "datki" sa Chociaz na stronie wspomniana jest nazwa PostgreSQL Inc, "datki" sa
@ -436,69 +442,72 @@
wysl/ac czek na adres kontaktowy. 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 User Client Questions
2.1) Czy sa jakies driwery ODBC dla PostgreSQL? 2.1) Czy sa jakies driwery ODBC dla PostgreSQL?
Dostepne sa dwa driwery ODBC: PsqlODBC i OpenLink ODBC. Dostepne sa dwa driwery ODBC: PsqlODBC i OpenLink ODBC.
PsqlODBC jest dol/aczony do zr<7A>del/. Wiecej informacji na jego temat Mozesz pobrac PsqlODBC z adresu
mozesz znalezc pod adresem: ftp://ftp.PostgreSQL.org/pub/odbc/. http://gborg.postgresql.org/project/psqlodbc/projdisplay.php
OpenLink ODBC moze byc pobrany z adresu: http://www.openlinksw.com. OpenLink ODBC moze byc pobrany z adresu: http://www.openlinksw.com.
Wsp<73>l/pracuje ze standardowym oprogramowaniem klienckim ODBC wiec w Wsp<73>l/pracuje ze standardowym oprogramowaniem klienckim ODBC wiec w
ten spos<6F>b mozesz korzystac z PostgreSQL ODBC dostepnego na kazdej ten spos<6F>b mozesz korzystac z PostgreSQL ODBC dostepnego na kazdej
plaformie kt<6B>ra wspiera (Win, Mac, Unix, VMS). pltaformie kt<6B>ra wspiera (Win, Mac, Unix, VMS).
Autorzy beda prawdopodobnie sprzedawac ten produkt osobom kt<6B>re Autorzy beda prawdopodobnie sprzedawac ten produkt osobom kt<6B>re
wymagaja komercyjnego wsparcia, ale wersja darmowa bedzie zawsze wymagaja komercyjnego wsparcia, ale wersja darmowa bedzie zawsze
dostepna. Wszystkie pytania mozesz wysyl/ac na adres: dostepna. Wszystkie pytania mozesz wysyl/ac na adres:
postgres95@openlink.co.uk. postgres95@openlink.co.uk.
Sprawdz takze rozdzial/ o ODBC w "Programmer's Guide".
2.2) Jakie istnieja narzedzia pozwalajace na dostep do PostgreSQL przez 2.2) Jakie istnieja narzedzia pozwalajace na dostep do PostgreSQL przez
www? www?
Dobry podrecznik dla poczatkujacych o dostepie do bazy danych przez Dobry podrecznik dla poczatkujacych o dostepie do bazy danych przez
www mozesz znalezc pod adresem: http://www.webreview.com 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 Do integracji z www, swietnym rozwiazaniem jest PHP. Mozesz znalezc
wiecej informacji na ten temat pod adresem http://www.php.net. wiecej informacji na ten temat pod adresem http://www.php.net.
Wiele os<6F>b w przypadku skomplikowanych rozwiazan uzywa Perl'a i Wiele os<6F>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? 2.3) Czy istnieje jakies GUI dla PostgreSQL?
Interfejs dla "embedded query language"?
Mamy cal/kiem mil/y interfejs graficzny, kt<6B>ry zostal/ nazwany Tak, istnieje kilka interfejs<EFBFBD>w graficznych dla PostgreSQL. Wsr<73>d nich
pgaccess i jest on dostarczany jako czesc zr<7A>del/. pgaccess posiada PgAccess ( http://www.pgaccess.org), PgAdmin III
takze generator raport<72>w. Mozna go znalezc pod adresem (http://www.pgadmin.org), RHDB Admin (http://sources.redhat.com/rhdb/
http://www.flex.ro/pgaccess ) oraz Rekall ( http://www.thekompany.com/products/rekall/,
komercyjny). Istnieje takze PHPPgAdmin (
http://phppgadmin.sourceforge.net/ ), webowy interfejs dla PostgreSQL.
Udostepnilismy takze ecpg, kt<6B>ry jest "embedded SQL query language Wiecej informacji na ten temat znajduje sie pod adresem See
interface" dla jezyka C. http://techdocs.postgresql.org/guides/GUITools.
2.4) Za pomoca jakich jezyk<79>w programowania mozna sie komunikowac z 2.4) Za pomoca jakich jezyk<79>w programowania mozna sie komunikowac z
PostgreSQL? PostgreSQL?
Mamy wsparcie dla: Najbardziej popularne jezyki posiiadaja wl/asny interfejs dla
PostgreSQL. Sprawdz liste rozszerzen dla intersujacego Ciebie jezyka
programowania.
Ze zr<7A>dl/ami PostreSQL dystrubuowane sa interfejsy dla nastepujacych
jezyk<79>w programowania:
* C (libpq) * C (libpq)
* C++ (libpq++)
* Embedded C (ecpg) * Embedded C (ecpg)
* Java (jdbc) * Java (jdbc)
* Perl (perl5)
* ODBC (odbc)
* Python (PyGreSQL) * Python (PyGreSQL)
* TCL (libpgtcl) * 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 3.1) Jak moge zainstalowac PostgreSQL w innej lokalizacji niz
/usr/local/pgsql? /usr/local/pgsql?
@ -566,7 +575,7 @@
pojedyncze INSERTy. Po drugie polecenia SQL nie zawarte w bloku pojedyncze INSERTy. Po drugie polecenia SQL nie zawarte w bloku
okreslajacym transakcje - BEGIN WORK/COMMIT, sa traktowane jako okreslajacym transakcje - BEGIN WORK/COMMIT, sa traktowane jako
pojedyncza transakcja. Rozwaz wykonanie kilku polecen/zdan SQL w 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 transakcje. Przy duzych zmianach w danych, warto usunac i stworzyc na
nowo indeksy. nowo indeksy.
@ -665,25 +674,36 @@
limit na maksymalna liczbe proces<65>w backendu to obawa o wyczerpanie limit na maksymalna liczbe proces<65>w backendu to obawa o wyczerpanie
zasob<6F>w systemu. zasob<6F>w systemu.
W wersjach PostgreSQL wczesniejszych niz 6.5, maksymalna liczba 3.9) Jakie pliki znajduja sie w pg_temp?
backend<6E>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<6B>re znajduja sie w Katalog ten zawiera tymczasowe pliki utworzone przez executor. Dla
katalogu z plikami bazy danych? przykl/adu, jesli jakas operacja sortowania jest wymagana do wykonania
ORDER BY, a samo sortowanie wymaga wiecej miejsca niz parametr
Sa to tymczasowe pliki utworzone przez executor. Dla przykl/adu, jesli backendu -S ustawil/ do wykorzystania, wtedy tymczasowe pliki sa
jakas operacja sortowania jest wymagana do wykonania ORDER BY, a samo uzywane do przechowywania tych danych.
sortowanie wymaga wiecej miejsca niz paratmetr 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 Pliki tymczasowe powinny byc usuniete automatycznie, ale mogl/o sie to
nie stac jesli proces backendu w miedzyczasie nie zakonczyl/ sie nie stac jesli proces backendu w miedzyczasie nie zakonczyl/ sie
poprawnie podczas operacji sortowania. Jesli w danym momencie nie poprawnie podczas operacji sortowania. Jesli w danym momencie nie
dzial/aja zadne procesy backend<6E>w mozesz spokojnie usunac pliki dzial/aja zadne procesy backend<6E>w mozesz spokojnie usunac pliki
pg_tempNNN.NN. pg_tempNNN.NN.
3.9) Dlaczego konieczne jest przy upgradzie PostgreSQL korzystanie ze
skrypt<70>w dump i restore?
Tw<54>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<6B>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 Pytania dotyczace uzywania
@ -706,6 +726,13 @@
pierwszych rzed<65>w, byc moze bedzie koniecznosc wykonania zapytania do pierwszych rzed<65>w, byc moze bedzie koniecznosc wykonania zapytania do
momentu az zostana znalezione pozadane wyniki. 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? 4.3) Jak moge uzyskac liste wszystkich tabel czy innych rzeczy pod psql?
Mozesz sprawdzic zawartosc zr<7A>del/ psql, a konkretnie plik Mozesz sprawdzic zawartosc zr<7A>del/ psql, a konkretnie plik
@ -714,36 +741,44 @@
wtedy po wykonaniu polecenia z backslashem wyswietlane bedzie wtedy po wykonaniu polecenia z backslashem wyswietlane bedzie
zapytanie, kt<6B>re w rzeczywistosci jest wykonywane. zapytanie, kt<6B>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 DROP COLUMNT zostal/o dodane w wersji 7.3 przy poleceniu ALTER TABLE
tak: DROP COLUMN. We wczesniejszych wersjach mozesz zrobic tak:
SELECT ... -- wybierz zawartosc wszystkich kolumn poza ta jedna kt<6B>rej chc BEGIN;
esz sie pozbyc LOCAL TABLE old_table;
SELECT ... -- wybierz wszystkie kolumny poza ta jedna kt<6B>rej chcesz sie po
zbyc
INTO TABLE new_table INTO TABLE new_table
FROM old_table; FROM old_table;
DROP TABLE old_table; DROP TABLE old_table;
ALTER TABLE new_table RENAME TO 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? 4.5) Jaki jest maksymalny rozmiar dla rzedu, tabeli i bazy danych?
Oto wszystkie ograniczenia: Oto wszystkie ograniczenia:
Maksymalny rozmiar dla bazdy danych? nieograniczony ( istnieja bazy dan Maksymalny rozmiar dla bazdy danych? nieograniczony ( istnieja
ych o wielkosci 500 GB databases ) bazy danych o wielkosci 32 TB databases )
Maksymalny rozmiar dla tabeli? 16 TB Maksymalny rozmiar dla tabeli? 32 TB
Maksymalny rozmiar dla rzedu? nieograniczony w 7.1 i p<>zniejszyc Maksymalny rozmiar dla rzedu? 1.6 TB
h Maksymalny rozmiar pola? 1 GB
Maksymalny rozmiar pola? 1 GB w 7.1 and later
Maksymalna liczba rzed<65>w w tabeli? nieograniczona Maksymalna liczba rzed<65>w w tabeli? nieograniczona
Maksymalna liczba kolumn w tabeli? 250-1600 w zalezonosci od typ<79>w kolum Maksymalna liczba kolumn w tabeli? 250-1600 w zalezonosci od typ<79>w ko
n lumn
Makasymalna liczba indeks<6B>w na tabeli? nieograniczona Makasymalna liczba indeks<6B>w na tabeli? nieograniczona
Oczywiscie "nieograniczony" nie jest prawda tak do konca, istnieja Oczywiscie "nieograniczony" nie jest prawda tak do konca, istnieja
ograniczenia wynikajace z dostepnego miejsca na dysku, pamieci/swapa. ograniczenia wynikajace z dostepnego miejsca na dysku, pamieci/swapa.
Kiedy wielkosci te beda bardzo duze moze odbic sie to na wydajnosci. 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<69>w. Duze tabele sa przechowywane operacyjnego wsparcia dla duzych plik<69>w. Duze tabele sa przechowywane
jako pliki o rozmiarze 1 GB, wiec ograniczenia co do wielkosci plik<69>w jako pliki o rozmiarze 1 GB, wiec ograniczenia co do wielkosci plik<69>w
narzucone przez system plik<69>w nie sa istotne. narzucone przez system plik<69>w nie sa istotne.
@ -786,6 +821,9 @@ n
zawieraja pewne dane, wiec w pewnych przypadkach moga byc cal/kiem zawieraja pewne dane, wiec w pewnych przypadkach moga byc cal/kiem
duze. 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 4.7) Jak moge sprawdzic jakie tabele, klucze, bazy danych i uzytkownicy sa
utworzeni? utworzeni?
@ -821,13 +859,31 @@ n
sortowanie jest zazwyczaj szybsze nie wyszukiwanie za pomoca indeksu sortowanie jest zazwyczaj szybsze nie wyszukiwanie za pomoca indeksu
na duzej tabeli. na duzej tabeli.
Jakkolwiek LIMIT w pol/aczeniu z ORDER BY czesto bedzie wykorzystywal/ Jakkolwiek LIMIT w pol/aczeniu z ORDER BY czesto bedzie wykorzystywal/
indeks<EFBFBD>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<6B>w, mozliwe
jest aby zwr<77>cic te wartosci uzywajac indeks<6B>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<6F>w dopasujacych takich jak LIKE lub ~, indeksy Kiedy uzywa sie operator<6F>w dopasujacych takich jak LIKE lub ~, indeksy
beda uzywane jedynie jesli poczatek wyszukiwania jest oparty na beda uzywane jedynie w pewnych wypadkach:
poczatku l/ancucha tekstu. Dlatego, aby uzywac indeks<6B>w, dopasowania * Poczatek wyszukiwania jest oparty na poczatku l/ancucha tekstu.
operatorem LIKE nie moga sie zaczynac %, a dopasowania operatorem ~ + wzorce LIKE nie moga sie zaczynac %
(dopasowania regularne) musza sie zaczynac znakiem specjalnym ^. + dopasowania operatorem ~ (dopasowania regularne) musza sie
zaczynac znakiem specjalnym ^.
* Poczatek wyszukiwania nie moze sie zaczynac od klas znak<61>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<6F>b "query optimizer" wykonuje moje 4.9) Jak moge sprawdzic w jakis spos<6F>b "query optimizer" wykonuje moje
zapytanie? zapytanie?
@ -869,13 +925,12 @@ n
queries) bez wykorzystywania zasobozernego wyszukiwania. queries) bez wykorzystywania zasobozernego wyszukiwania.
4.12) Jak moge uzywac wyrazen regularnych w zapytaniach i zapytan 4.12) Jak moge uzywac wyrazen regularnych w zapytaniach i zapytan
case-insensitive w wyrazeniach regularnych? jak korzystac z indeks<6B>w dla case-insensitive w wyrazeniach regularnych? Jak korzystac z indeks<6B>w dla
zapytan case-insensitive? zapytan case-insensitive?
Operator ~ moze byc wykorzystywany do wyszukiwania za pomoca wyrazen Operator ~ moze byc wykorzystywany do wyszukiwania za pomoca wyrazen
regularnych, a ~* do wyszukiwania case-insensitive z wyrazeniami regularnych, a ~* do wyszukiwania case-insensitive z wyrazeniami
regularnymi. Wariant case-insensitive dla LIKE zostal/ nazwany ILIKE i regularnymi. Wariant case-insensitive dla LIKE zostal/ nazwany ILIKE.
jest dostepny w PostgreSQL 7.1 i p<>zniejszych wersjach.
Por<6F>wnania case-insensitive sa zazwyczaj wykonywane w nastepujacy Por<6F>wnania case-insensitive sa zazwyczaj wykonywane w nastepujacy
spos<6F>b: spos<6F>b:
@ -897,31 +952,35 @@ n
Type Nazwa wewnetrzna Uwagi Type Nazwa wewnetrzna Uwagi
-------------------------------------------------- --------------------------------------------------
"char" char 1 znak VARCHAR(n) varchar rozmiar okresla maksymalna dl/ugosc, nie ma
CHAR(#) bpchar wypel/niane pustymi znakami do podanej dl/ug
osci
VARCHAR(#) varchar rozmiar okresla maksymalna dl/ugosc, nie ma
tutaj wypel/niania tutaj wypel/niania
CHAR(n) bpchar wypel/niane pustymi znakami do podanej dl/ug
osci
TEXT text bez limitu na dl/ugosc l/ancucha TEXT text bez limitu na dl/ugosc l/ancucha
BYTEA bytea zmiennej dl/ugosci tablica bajt<6A>w (null-byte BYTEA bytea zmiennej dl/ugosci tablica bajt<6A>w (null-byte
safe) safe)
"char" char 1 znak
Jesli bedziesz przegladac katalogi systemowe lub komunikaty o bl/edach Jesli bedziesz przegladac katalogi systemowe lub komunikaty o bl/edach
czesto spotkasz sie z podanymi powyzej nazwami wewnetrznymi. 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<6B>rych jest data). Dlatego cztery bajty na dysku to dl/ugosc, po kt<6B>rych jest data). Dlatego
faktyczna dl/ugosc takiego l/ancucha jest troche wieksza niz faktyczna dl/ugosc takiego l/ancucha jest troche wieksza niz
zadeklarowany rozmiar. Te typy takze podlegaja kompresji lub moga byc zadeklarowany rozmiar. Te typy takze podlegaja kompresji lub moga byc
przechowywane out-of-line jako TOAST, wiec faktyczne zuzycie miejsca przechowywane out-of-line jako TOAST, wiec faktyczne zuzycie miejsca
na dysku moze byc mniejsze niz oczekiwane. na dysku moze byc mniejsze niz oczekiwane.
VARCHAR(n) jest najodpowiedniejszy do przechowywania l/ancuch<63>w o
r<>znej dl/ugosci ale okresla on maksymalna jego dl/ugosc. TEXT jest
najlepszy dla l/ancuch<63>w o dowolnej dl/ugosci, nie przekraczajacej
1GB.
CHAR() jast najlepszym typem do przechowywania l/ancuch<63>w o tej samej CHAR(n) jast najlepszym typem do przechowywania l/ancuch<63>w o tej samej
dl/ugosci. VARCHAR() jest najodpowiedniejszy do przechowywania dl/ugosci. CHAR(n) wypel/nia dane do zadanej dl/ugosci, podczas gdy
l/ancuch<63>w o r<>znej dl/ugosci ale okresla on maksymalna jego dl/ugosc. VARCHAR(n) przechowuje jedynie dane dostarczone. BYTEA sl/uzy do
TEXT jest najlepszy dla l/ancuch<63>w o dowolnej dl/ugosci, nie przechowywania danych binarnych, w szczeg<65>lnosci dla danych
przekraczajacej 1GB. BYTEA sl/uzy do przechowywania danych binarnych, zawierajacych NULL bajty. Wszystkie typy opisane tutaj maja podobne
w szczeg<65>lnosci dla danych zawierajacych NULL bajty. charakterystyki jesli chodzi o wydajnosc.
4.15.1) Jak moge utworzyc pole kt<6B>re samo zwieksza swoja wartosc? 4.15.1) Jak moge utworzyc pole kt<6B>re samo zwieksza swoja wartosc?
@ -1039,16 +1098,16 @@ BYTEA bytea zmiennej dl/ugosci tablica bajt
* range variable, table name, table alias * range variable, table name, table alias
Liste termin<69>w zwiazanych z bazami danych mozesz znalezc pod tym Liste termin<69>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 4.18) Skad bierze sie ten bl/ad "ERROR: Memory exhausted in
AllocSetAlloc()"? AllocSetAlloc()"?
Jesli uzywasz wersji starszej niz 7.1, upgrade moze rozwiazac ten Prawdopodobnie wyczerpal/a Ci sie pamiec wirtualna (virtual memory) w
problem. Jest takze mozliwe, ze po prostu wyczerpal/a Ci sie pamiec systemie lub Tw<54>j kernel ma zbyt nisko ustawione limity dla pewnych
wirtualna (virtual memory) w systemie lub Tw<54>j kernel ma zbyt nisko zasob<EFBFBD>w. Spr<70>buj wykonac nastepujace polecenia zanim uruchomisz
ustawione limity dla pewnych zasob<6F>w. Spr<70>buj wykonac nastepujace postmaster'a:
polecenia zanim uruchomisz postmaster'a:
ulimit -d 262144 ulimit -d 262144
limit datasize 256m 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? 4.22) Dlaczego zapytania uzywajace IN sa takie wolne?
Obecnie l/aczymy podzapytania w outer queries poprzez sekwencyjne W wersjach wczesniejszych niz 7.4 l/aczymy podzapytania w outer
przeszukiwanie wynik<69>w podzapytania dla kazdego rzedu z outer query. queries poprzez sekwencyjne przeszukiwanie wynik<69>w podzapytania dla
Mozna to ominac zastepujac IN przez EXISTS: kazdego rzedu z outer query. Jesli podzapytanie zwraca jedynie kilka
rzed<65>w a zewnetrzne zapytanie zwraca ich wiele, IN jest najszybsze.
Aby przyspieszyc inne zapytania mozna zastapic IN przez EXISTS:
SELECT * SELECT *
FROM tab FROM tab
WHERE col1 IN (SELECT col2 FROM TAB2) WHERE col IN (SELECT subcol FROM subtab)
na: na:
SELECT * SELECT *
FROM tab 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"? 4.23) Jak wykonac "outer join"?
PostgreSQL 7.1 i p<>zniejsze wersje maja zaimplementowane outer join PostgreSQL ma zaimplementowane outer join wykorzystujac standardowa
wykorzystujac standardowa skl/adnie SQL. Ponizej dwa przykl/ady: skl/adnie SQL. Ponizej dwa przykl/ady:
SELECT * SELECT *
FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
@ -1113,7 +1179,7 @@ SELECT *
FROM t1 LEFT OUTER JOIN t2 USING (col); FROM t1 LEFT OUTER JOIN t2 USING (col);
Te dwa identyczne zapytania l/acza kolumne t1.col z kolumna t2.col, Te dwa identyczne zapytania l/acza kolumne t1.col z kolumna t2.col,
ale takze zwr<77>ca niepol/aczone rzedy w t1 (te kt<6B>re nie pasuja w t2). ale takze zwr<77>ca niepol/aczone rzedy w t1 (te, kt<6B>re nie pasuja w t2).
RIGHT join dodal/by niepol/aczone rzedy z tabeli t2. FULL join RIGHT join dodal/by niepol/aczone rzedy z tabeli t2. FULL join
zwr<77>cil/by rzedy plus dodatkowo wszystkie rzedy z tabel t1 i t2. zwr<77>cil/by rzedy plus dodatkowo wszystkie rzedy z tabel t1 i t2.
Sl/owo OUTER jest opcjonalne i jest dodawane domyslnie przy LEFT, 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 katalogi systemowe, nie jest do konca jasne jak zapytanie pomiedzy
r<>znymi bazami danych powinno sie zachowywac. r<>znymi bazami danych powinno sie zachowywac.
Oczywiscie klient moze l/aczyc sie z r<>znymi bazami danych i l/aczyc contrib/dblink pozwala na wykonywanie zapytan poprzez r<>zne bazy
informacje w ten spos<6F>b uzyskana. danych wywol/ujac odpowiednie funkcje. Oczywiscie klient moze l/aczyc
sie z r<>znymi bazami danych i l/aczyc informacje w ten spos<6F>b uzyskana
po stronie klienta.
4.25) Jak zwr<77>cic w funkcji wiele rzed<65>w lub kolumn? 4.25) Jak zwr<77>cic w funkcji wiele rzed<65>w lub kolumn?
Mozesz zwracac zbiory z funkcji PL/pgSQL uzywajac refcursors. Zobacz Mozesz w l/atwy spos<6F>b zwracac wiele rzed<65>w lub kolumn uzywajac
http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html, funkcji z:
sekcje 23.7.3.3. http://techdocs.postgresql.org/guides/SetReturningFunctions.
4.26) Dlaczego nie moge w spos<6F>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<6B>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<6B>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<77>cic uwage,
ze mozliwe jest takze uzywanie transport<72>w szyfrujac<61>w przez
strony trzecie, takie jak stunnel lub ssh, poza natywnym wsparciem
dla SSL przez PostgreSQL).
* Hasl/a uzytkownik<69>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<69>w.
Rozwijanie PostgreSQL Rozwijanie PostgreSQL
5.1) Napisal/em wl/asna funkcje. Kiedy uzyje jej w psql, program zrzuca 5.1) Napisal/em wl/asna funkcje. Kiedy uzyje jej w psql, program zrzuca
pamiec (dump core)? pamiec (dump core)?
Problem moze byc spowodowany przez bardzo wiele rzeczy. Spr<70>buj Problem moze byc spowodowany przez bardzo wiele rzeczy. Spr<70>buj najpierw
najpierw przetestowac Twoja funkcje w samodzielnie dzial/ajacym przetestowac Twoja funkcje w samodzielnie dzial/ajacym programie.
programie.
5.2) Jak moge dodac/zgl/osic nowe typy czy funkcje do PostgreSQL? 5.2) Jak moge dodac/zgl/osic nowe typy czy funkcje do PostgreSQL?
Wyslij Twoje propozycje na liste mailowa pgsql-hackers, wtedy Wyslij Twoje propozycje na liste mailowa pgsql-hackers, wtedy
prawdopodobnie Tw<54>j kod znajdzie sie w katalogu contrib/. prawdopodobnie Tw<54>j kod znajdzie sie w katalogu contrib/.
5.3) Jak napisac funkcje C zwracajaca krotke (tuple)? 5.3) Jak napisac funkcje C zwracajaca krotke (tuple)?
To wymaga wysil/ku tak olbrzymiego, ze nawet autorzy nigdy tego nie W wersjach PostgreSQL od numeru 7.3, funckje zwracajace tabele sa w pelni
prubowali, chociaz z zalozen wynika, ze jest to mozliwe. 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<7A>dl/owy. Dlaczego po rekompilacji nie widac zmiany? 5.4) Zmienil/em plik zr<7A>dl/owy. Dlaczego po rekompilacji nie widac zmiany?
Pliki Makefiles nie maja dorzuconych odpowiednich zaleznosci dla Pliki Makefiles nie maja dorzuconych odpowiednich zaleznosci dla plik<69>w
plik<EFBFBD>w nagl/<2F>wkowych (include files). Wykonaj najpierw make clean, a nagl/<2F>wkowych (include files). Wykonaj najpierw make clean, a nastepnie
nastepnie ponownie make. Jesli uzywasz GCC mozesz uzyc opcji ponownie make. Jesli uzywasz GCC mozesz uzyc opcji --enable-depend przy
--enable-depend przy wykonywaniu configure aby wykonywaniu configure aby kompilator m<>gl/ okreslic zaleznosci
samodzielnie.

View File

@ -1,7 +1,7 @@
Otvety na chasto zadavaemye voprosy po PostgreSQL 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) Anglijskij variant soprovozhdaet: Bryus Mom'yan (Bruce Momjian)
(pgman@candle.pha.pa.us) (pgman@candle.pha.pa.us)
@ -23,7 +23,7 @@
1.4) Suschestvuyut li versii portirovannye ne na Unix sistemy? 1.4) Suschestvuyut li versii portirovannye ne na Unix sistemy?
1.5) Gde mozhno vzyat' PostgreSQL? 1.5) Gde mozhno vzyat' PostgreSQL?
1.6) Gde poluchit' podderzhku? 1.6) Gde poluchit' podderzhku?
1.7) Kakaya poslednyaya versiya? 1.7) Kakaya versiya poslednyaya?
1.8) Kakaya dokumentaciya imeetsya v nalichii? 1.8) Kakaya dokumentaciya imeetsya v nalichii?
1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih 1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih
vozmozhnostyah? vozmozhnostyah?
@ -273,7 +273,7 @@
http://www.PostgreSQL.org 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 #PostgreSQL. YA ispol'zuyu dlya podklyucheniya k `etomu kanalu komandu
Unix irc -c '#PostgreSQL' "$USER" irc.phoenix.net. ili irc -c Unix irc -c '#PostgreSQL' "$USER" irc.phoenix.net. ili irc -c
'#PostgreSQL' "$USER" irc.freenode.net. '#PostgreSQL' "$USER" irc.freenode.net.
@ -283,7 +283,7 @@
1.7) Kakaya poslednyaya versiya? 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. My planiruem vypuskat' novye versii kazhdye 6-8 mesyacev.
@ -486,12 +486,11 @@
2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya? 2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya?
Da, suschestvuet neskol'ko graficheskih interfejsov dlya PostgreSQL. Da, suschestvuet neskol'ko graficheskih interfejsov dlya PostgreSQL.
`Eto PgAccess (http://www.pgaccess.org, PgAdmin III `Eto PgAccess (http://www.pgaccess.org), PgAdmin III
(http://www.pgadmin.org, Win32-only), RHDB Admin ( (http://www.pgadmin.org), RHDB Admin (http://sources.redhat.com/rhdb/)
http://sources.redhat.com/rhdb/) i Rekall ( i Rekall ( http://www.thekompany.com/products/rekall/, kommercheskij).
http://www.thekompany.com/products/rekall/, kommercheskij). Takzhe Takzhe est' PHPPgAdmin ( http://phppgadmin.sourceforge.net/) -
est' PHPPgAdmin ( http://phppgadmin.sourceforge.net/) - interfejs k interfejs k PostgreSQL, osnovannyj na Web.
PostgreSQL, osnovannyj na Web.
2.4) Kakie yazyki mogut vzaimodejstvovat' s PostgreSQL? 2.4) Kakie yazyki mogut vzaimodejstvovat' s PostgreSQL?

View File

@ -27,7 +27,7 @@ System Configuration
Operating System (example: Linux 2.4.18) : 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) : Compiler used (example: gcc 2.95.2) :

View File

@ -10,14 +10,13 @@
alink="#0000ff"> alink="#0000ff">
<H1>Frequently Asked Questions (FAQ) for PostgreSQL</H1> <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= <P>Current maintainer: Bruce Momjian (<A href=
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
</P> </P>
<P>The most recent version of this document can be viewed at <A <P>The most recent version of this document can be viewed at <A href=
href=
"http://www.PostgreSQL.org/docs/faqs/FAQ.html">http://www.PostgreSQL.org/docs/faqs/FAQ.html</A>.</P> "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= <P>Platform-specific questions are answered at <A href=
@ -157,7 +156,8 @@
<H4><A name="1.1">1.1</A>) What is PostgreSQL? How is it pronounced?</H4> <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 <P>PostgreSQL is an enhancement of the POSTGRES database management
system, a next-generation <SMALL>DBMS</SMALL> research prototype. system, a next-generation <SMALL>DBMS</SMALL> research prototype.
@ -171,7 +171,11 @@
list. The current coordinator is Marc G. Fournier (<A href= list. The current coordinator is Marc G. Fournier (<A href=
"mailto:scrappy@PostgreSQL.org">scrappy@PostgreSQL.org</A>). (See "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 section <a href="#1.6">1.6</a> on how to join). This team is now
responsible for all development of PostgreSQL.</P> 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. <P>The authors of PostgreSQL 1.01 were Andrew Yu and Jolly Chen.
Many others have contributed to the porting, testing, debugging, Many others have contributed to the porting, testing, debugging,
@ -316,7 +320,7 @@
<A href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A> <A href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A>
</BLOCKQUOTE> </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 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.phoenix.net.</CODE> or <CODE>irc -c
'#PostgreSQL' "$USER" irc.freenode.net.</CODE></P> '#PostgreSQL' "$USER" irc.freenode.net.</CODE></P>
@ -326,7 +330,7 @@
<H4><A name="1.7">1.7</A>) What is the latest release?</H4> <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> <P>We plan to have major releases every six to eight months.</P>
@ -446,7 +450,8 @@
release. There is an interesting Web page comparing PostgreSQL to release. There is an interesting Web page comparing PostgreSQL to
MySQL at <A href="http://openacs.org/philosophy/why-not-mysql.html"> MySQL at <A href="http://openacs.org/philosophy/why-not-mysql.html">
http://openacs.org/philosophy/why-not-mysql.html</A> Also, MySQL is 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> open source development community like PostgreSQL.<BR>
<BR> <BR>
@ -927,7 +932,7 @@
<P>Indexes do not require as much overhead, but do contain the data <P>Indexes do not require as much overhead, but do contain the data
that is being indexed, so they can be large also.</P> 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> use very little space.</P>
<H4><A name="4.7">4.7</A>) How do I find out what tables, indexes, <H4><A name="4.7">4.7</A>) How do I find out what tables, indexes,

View File

@ -12,16 +12,15 @@
<H1>Developer's Frequently Asked Questions (FAQ) for <H1>Developer's Frequently Asked Questions (FAQ) for
PostgreSQL</H1> 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= <P>Current maintainer: Bruce Momjian (<A href=
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
</P> </P>
<P>The most recent version of this document can be viewed at the <P>The most recent version of this document can be viewed at <A href=
postgreSQL Web site, <A href= "http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html">http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html</A>.</P>
"http://www.PostgreSQL.org">http://www.PostgreSQL.org</A>.<BR>
</P>
<HR> <HR>
<BR> <BR>

View File

@ -14,7 +14,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p>
<p>Deutsche <20>bersetzung von Ian Barwick (<a href="mailto:barwick@gmx.net">barwick@gmx.net</a>).</p> <p>Deutsche <20>bersetzung von Ian Barwick (<a href="mailto:barwick@gmx.net">barwick@gmx.net</a>).</p>
<p>Letzte Aktualisierung der deutschen <20>bersetzung: Di., den 02.09.2003, 10:00 CET</p> <p>Letzte Aktualisierung der deutschen <20>bersetzung: Fr., den 02.01.2004, 07:30 CET</p>
<p>Die aktuellste Version dieses Dokuments liegt auf der PostgreSQL Website:</p> <p>Die aktuellste Version dieses Dokuments liegt auf der PostgreSQL Website:</p>
<ul> <ul>
@ -220,7 +220,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p>
in der Vorbereitung.</p> in der Vorbereitung.</p>
<p>Weitere Informationen zum Status von PostgreSQL auf der Microsoft-Plattform <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> <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> <blockquote>
<a href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</a> <a href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</a>
</blockquote> </blockquote>
<p>Es gibt au<61>erdem einen IRC-Channel bei EFNet und bei OpenProjects, Channel <p>Es gibt au<61>erdem einen IRC-Channel bei EFNet und bei Freenode, Channel
<em>#PostgreSQL</em>. Der FAQ-Autor Bruce Momjian nutzt den Unix-Befehl: <em>#PostgreSQL</em>. Unter UNIX/Linux k<>nnen Sie mit z.B.
<small>irc -c '#PostgreSQL' "$USER" irc.phoenix.net</small> um daran teilzunehmen.</p> <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 <p>Eine Liste von Unternehmen, die Support f<>r PostgreSQL auf kommerzieller
Basis leisten, kann unter 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> <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> <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> <dt><b>Performanz</b></dt>
<dd><p>PostgreSQL weist eine Performanz auf, die mit der von kommerziellen <dd><p>PostgreSQL weist eine Performanz auf, die mit der von kommerziellen
und anderen Open-Source-Datenbanken vergleichbar ist. In und anderen Open-Source-Datenbanken vergleichbar ist. In
manchen Bereichen ist es schneller, in anderen langsamen. Im manchen Bereichen ist es schneller, in anderen langsamer.</p>
Vergleich zu MySQL oder abgespeckten Datenbank-Systemen sind <p>Im Vergleich zu MySQL oder abgespeckten Datenbank-Systemen
INSERT- und UPDATE-Anweisungen aufgrund des Transaktionsaufwands ist PostgreSQL in Lastsituationen - z.B. bei zeitgleichen
langsamer. MySQL hat allerdings keine der oben erw<72>hnten Zugriffen durch mehrere Nutzer, komplexen Abfragen oder gleichzeitigen
Eigenschaften. PostgreSQL setzt auf Zuverl<72>ssigkeit und Lese- und Schreibzugriffen schneller. MySQL ist nur bei einfacheren
Funktionsumfang, obwohl selbstredend st<73>ndig an Performanz- SELECT-Abfragen mit wenigen Nutzern schneller. MySQL hat allerdings
Verbesserungen gearbeitet wird. Ein interessanter Vergleich wenige der oben erw<72>hnten Eigenschaften. PostgreSQL setzt auf
Zuverl<72>ssigkeit und Funktionsumfang, dabei wird selbstredend st<73>ndig
an Performanz-Verbesserungen gearbeitet. Ein interessanter Vergleich
zwischen PostgreSQL und MySQL befindet sich unter dieser URL: 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> <a href="http://openacs.org/philosophy/why-not-mysql.html">http://openacs.org/philosophy/why-not-mysql.html</a></p>
</dd> </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 <p>Es gibt mehrere grafische Schnittstellen f<>r PostgreSQL, darunter
PgAccess ( <a href="http://www.pgaccess.org">http://www.pgaccess.org</a>), PgAccess ( <a href="http://www.pgaccess.org">http://www.pgaccess.org</a>),
PgAdmin II (<a PgAdmin III (<a
href="http://www.pgadmin.org">http://www.pgadmin.org</a>, href="http://www.pgadmin.org">http://www.pgadmin.org</a>, RHDB Admin (<a
nur f<>r Win32), RHDB Admin (<a
href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/ href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/
</a>) und Rekall (<a href="http://www.thekompany.com/products/rekall/"> </a>) und Rekall (<a href="http://www.thekompany.com/products/rekall/">
http://www.thekompany.com/products/rekall/</a>, propriet<65>r). Es gibt http://www.thekompany.com/products/rekall/</a>, propriet<65>r). Es gibt
@ -785,7 +787,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p>
<pre> <pre>
Maximale Gr<47><72>e eine Datenbank? unbeschr<68>nkt (es existieren Maximale Gr<47><72>e eine Datenbank? unbeschr<68>nkt (es existieren
Datenbanken mit 4TB) Datenbanken mit 4TB)
Maximale Gr<47><72>e einer Tabelle? 16 TB Maximale Gr<47><72>e einer Tabelle? 32 TB
Maximale Gr<47><72>e einer Zeile? 1,6 TB Maximale Gr<47><72>e einer Zeile? 1,6 TB
Maximale Gr<47><72>e einer Spalte? 1 GB Maximale Gr<47><72>e einer Spalte? 1 GB
Maximale Anzahl von Zeilen in einer Tabelle? 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<72>gbaren Platten- und Speicherressourcen eingeschr<68>nkt sind. verf<72>gbaren Platten- und Speicherressourcen eingeschr<68>nkt sind.
Extreme Gr<47><72>en k<>nnen zu Leistungseinbu<62>en f<>hren.</p> Extreme Gr<47><72>en k<>nnen zu Leistungseinbu<62>en f<>hren.</p>
<p>Die maximale Tabellengr<67><72>e von 16 TB ben<65>tigt keine Large-File-Unterst<73>tzung <p>Die maximale Tabellengr<67><72>e von 32 TB ben<65>tigt keine Large-File-Unterst<73>tzung
im Betriebssystem. Gro<72>e Tabellen werden in Dateien mit einer Gr<47><72>e von im Betriebssystem. Gro<72>e Tabellen werden in Dateien mit einer Gr<47><72>e von
1 GB aufgeteilt, wodurch etwaige dateisystem-bedingte Beschr<68>nkungen nicht 1 GB aufgeteilt, wodurch etwaige dateisystem-bedingte Beschr<68>nkungen nicht
relevant sind.</p> relevant sind.</p>
@ -1012,7 +1014,7 @@ BYTEA bytea Bytearray mit variabler L
Werts?</h4> Werts?</h4>
<p>PostgreSQL bietet einen <small>SERIAL</small>-Datentyp. Dieser erzeugt automatisch <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> <pre>
CREATE TABLE person ( CREATE TABLE person (
id SERIAL, id SERIAL,
@ -1025,7 +1027,6 @@ BYTEA bytea Bytearray mit variabler L
id INT4 NOT NULL DEFAULT nextval('person_id_seq'), id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
name TEXT name TEXT
); );
CREATE UNIQUE INDEX person_id_key ON person ( id );
</pre><p> umgewandelt.</p> </pre><p> umgewandelt.</p>
<p>Die <em>create_sequence</em> Man-Page liefert weitere Informationen <20>ber Sequenzen. <p>Die <em>create_sequence</em> Man-Page liefert weitere Informationen <20>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, <h4><a name="4.22">4.22</a>) Warum sind meine Unterabfragen (subqueries), die IN verwenden,
so langsam?</h4> so langsam?</h4>
<p>Derzeit werden Unterabfragen mit der <20>usseren Abfrage verbunden, indem <p>In Versionen vor 7.4 werden Unterabfragen mit der <20>usseren Abfrage verbunden,
f<>r jede Reihe der <20>usseren Query die Ergebnisse der Unterabfrage in dem f<EFBFBD>r jede Reihe der <20>usseren Query die Ergebnisse der Unterabfrage
sequentiell gepr<70>ft werden. Um dies zu vermeiden, kann man <small>IN</small> durch sequentiell gepr<70>ft werden. Um dies zu vermeiden, kann man <small>IN</small> durch
<small>EXISTS</small> ersetzen, z.B.:</p> <small>EXISTS</small> ersetzen, z.B.:</p>
<pre> <pre>
@ -1196,8 +1197,10 @@ BYTEA bytea Bytearray mit variabler L
WHERE EXISTS (SELECT spalte2 FROM tabelle_2 WHERE spalte1 = spalte2) WHERE EXISTS (SELECT spalte2 FROM tabelle_2 WHERE spalte1 = spalte2)
</pre> </pre>
<p> Damit diese Abfrage effizient durchgef<65>hrt wird, sollte f<>r '<em>spalte2</em>' <p> Damit diese Abfrage effizient durchgef<65>hrt wird, sollte f<>r '<em>spalte2</em>'
ein Index angelegt worden sein. Die Einschr<68>nkung von Abfragen mit <small>IN</small> ein Index angelegt worden sein. Ab PostgreSQL 7.4 <small>IN</small> verwendet
wird in der n<>chsten PostgreSQL-Version (7.4) behoben werden.</p> die gleichen Methoden wie die normale Tabellenverkn<6B>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> <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<72>ssige entgegen, verweise jedoch auf die Mailing-Listen als schnelle und zuverl<72>ssige
Anlaufstellen.</p> Anlaufstellen.</p>
<p>Diese <20>bersetzung basiert teilweise auf einer fr<66>heren <20>bersetzung von Karsten
Schulz (<a href="mailto:schulz@linux-systemhaus.de">schulz@linux-systemhaus.de</a>).</p>
</body> </body>
</html> </html>

View File

@ -15,7 +15,9 @@
<H1>Frequently Asked Questions (FAQ) o PostgreSQL</H1> <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<50>tek Marzec 5 19:31:12 EST 2004</P>
<P>Obecny maintainer: Bruce Momjian (<A href= <P>Obecny maintainer: Bruce Momjian (<A href=
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
@ -24,16 +26,15 @@
"mailto:m.mazurek@netsync.pl">m.mazurek@netsync.pl</A>)<BR> "mailto:m.mazurek@netsync.pl">m.mazurek@netsync.pl</A>)<BR>
</P> </P>
<P>Najbardziej aktualn<6C> wersj<73> tego dokumentu mo<6D>na znale<6C><65> pod <P>Najbardziej aktualn<6C> wersj<73> tego dokumentu mo<6D>na znale<6C><65> pod
adresem: adresem:
<A href= <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<63>ce konkretnych system<65>w operacyjnych <P>Odpowiedzi na pytania dotycz<63>ce konkretnych system<65>w operacyjnych
mo<6D>na znale<6C><65> pod adresem: mo<6D>na znale<6C><65> pod adresem:
<A href= <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> <HR>
<H2 align="center">Pytania og<6F>lne</H2> <H2 align="center">Pytania og<6F>lne</H2>
@ -64,13 +65,12 @@
PostgreSQL?<BR> PostgreSQL?<BR>
<A href="#2.2">2.2</A>) Jakie istniej<65> narz<72>dzia pozwalaj<61>ce na dost<73>p do <A href="#2.2">2.2</A>) Jakie istniej<65> narz<72>dzia pozwalaj<61>ce na dost<73>p do
PostgreSQL przez www?<BR> PostgreSQL przez www?<BR>
<A href="#2.3">2.3</A>) Czy istnieje jakie<69> GUI dla PostgreSQL? <A href="#2.3">2.3</A>) Czy istnieje jakie<69> GUI dla PostgreSQL?<BR>
Narz<72>dzie do raportowania? Interfejs dla "embedded query language"?<BR>
<A href="#2.4">2.4</A>) Za pomoc<6F> jakich j<>zyk<79>w programowania mo<6D>na <A href="#2.4">2.4</A>) Za pomoc<6F> jakich j<>zyk<79>w programowania mo<6D>na
si<73> komunikowa<77> z PostgreSQL?<BR> si<73> komunikowa<77> z PostgreSQL?<BR>
<H2 align="center">Pytania administratora</H2> <H2 align="center">Pytania dotycz<EFBFBD>ce administracji</H2>
<A href="#3.1">3.1</A>) Jak mog<6F> zainstalowa<77> PostgreSQL w innej <A href="#3.1">3.1</A>) Jak mog<6F> zainstalowa<77> PostgreSQL w innej
lokalizacji ni<6E> <I>/usr/local/pgsql</I>?<BR> lokalizacji ni<6E> <I>/usr/local/pgsql</I>?<BR>
<A href="#3.2">3.2</A>) Podczas startu <I>postmaster'a</I>, <A href="#3.2">3.2</A>) Podczas startu <I>postmaster'a</I>,
@ -87,9 +87,9 @@
<A href="#3.7">3.7</A>) Jakie s<> mo<6D>liwo<77>ci wyszukiwania b<><62>d<EFBFBD>w?<BR> <A href="#3.7">3.7</A>) Jakie s<> mo<6D>liwo<77>ci wyszukiwania b<><62>d<EFBFBD>w?<BR>
<A href="#3.8">3.8</A>) Sk<53>d si<73> bierze komunikat: <I>"Sorry, too many <A href="#3.8">3.8</A>) Sk<53>d si<73> bierze komunikat: <I>"Sorry, too many
clients"</I> podczas pr<70>by po<70><6F>czenia si<73> z baz<61> danych?<BR> clients"</I> podczas pr<70>by po<70><6F>czenia si<73> z baz<61> danych?<BR>
<A href="#3.9">3.9</A>) Co to za pliki typu <I>pg_sorttempNNN.NN</I> <A href="#3.9">3.9</A>) Jakie pliki znajduj<75> si<73> w <I>pg_temp</I>?<BR>
, kt<6B>re znajduj<75> si<73> w katalogu z plikami bazy danych?<BR> <A href="#3.10">3.10</A>) Dlaczego konieczne jest przy upgradzie
PostgreSQL korzystanie ze skrypt<70>w dump i restore?<BR>
<H2 align="center">Pytania dotycz<63>ce u<>ytkowania</H2> <H2 align="center">Pytania dotycz<63>ce u<>ytkowania</H2>
<A href="#4.1">4.1</A>) Jaka jest r<><72>nica pomi<6D>dzy kursorami <A href="#4.1">4.1</A>) Jaka jest r<><72>nica pomi<6D>dzy kursorami
@ -98,7 +98,8 @@
jedynie kilka pierwszych wynik<69>w zapytania?<BR> jedynie kilka pierwszych wynik<69>w zapytania?<BR>
<A href="#4.3">4.3</A>) Jak mog<6F> uzyska<6B> list<73> wszystkich tabel czy <A href="#4.3">4.3</A>) Jak mog<6F> uzyska<6B> list<73> wszystkich tabel czy
innych rzeczy pod <I>psql</I>?<BR> innych rzeczy pod <I>psql</I>?<BR>
<A href="#4.4">4.4</A>) Jak usun<75><6E> kolumn<6D> z tabeli?<BR> <A href="#4.4">4.4</A>) Jak usun<75><6E> kolumn<6D> z tabeli lub zmieni<6E> jej
typ?<BR>
<A href="#4.5">4.5</A>) Jaki jest maksymalny rozmiar dla rz<72>du, <A href="#4.5">4.5</A>) Jaki jest maksymalny rozmiar dla rz<72>du,
tabeli i bazy danych?<BR> tabeli i bazy danych?<BR>
<A href="#4.6">4.6</A>) Jak du<64>o miejsca w bazie danych jest <A href="#4.6">4.6</A>) Jak du<64>o miejsca w bazie danych jest
@ -148,7 +149,12 @@
baz danych jednocze<7A>nie?<BR> baz danych jednocze<7A>nie?<BR>
<A href="#4.25">4.25</A>) Jak zwr<77>ci<63> w funkcji wiele rz<72>d<EFBFBD>w lub <A href="#4.25">4.25</A>) Jak zwr<77>ci<63> w funkcji wiele rz<72>d<EFBFBD>w lub
kolumn?<BR> kolumn?<BR>
<A href="#4.26">4.26</A>) Dlaczego nie mog<6F> w spos<6F>b pewny
tworzy<7A>/usuwa<77> tabel tymczasowych w funkcjach PL/PgSQL?<BR>
<A href="#4.27">4.27</A>) Jakie s<> mo<6D>liwo<77>ci replikacji w
PostgreSQL?<BR>
<A href="#4.28">4.28</A>) Jakie mo<6D>liwo<77>ci szyfrowania oferuje
PostgreSQL?<BR>
<H2 align="center">Rozwijanie PostgreSQL</H2> <H2 align="center">Rozwijanie PostgreSQL</H2>
<A href="#5.1">5.1</A>) Napisa<73>em w<>asn<73> funkcj<63>. Kiedy u<>yj<79> jej w <A href="#5.1">5.1</A>) Napisa<73>em w<>asn<73> funkcj<63>. Kiedy u<>yj<79> jej w
@ -166,7 +172,8 @@
<H4><A name="1.1">1.1</A>) Co to jest PostgreSQL? Jak to wymawia<69>?</H4> <H4><A name="1.1">1.1</A>) Co to jest PostgreSQL? Jak to wymawia<69>?</H4>
<P>PostgreSQL wymawia si<73> <I>Post-Gres-kju-el</I>.</P> <P>PostgreSQL wymawia si<73> <I>Post-Gres-kju-el</I>. Cz<43>sto podczas
rozm<7A>w u<>ywany jest termin "Postgres"</P>
<P>PostgreSQL jest rozszerzeniem systemu zarz<72>dzania bazami danych - <P>PostgreSQL jest rozszerzeniem systemu zarz<72>dzania bazami danych -
POSTGRES, kolejn<6A> generacj<63> rozwojowego prototypu <SMALL>DBMS</SMALL>. POSTGRES, kolejn<6A> generacj<63> rozwojowego prototypu <SMALL>DBMS</SMALL>.
@ -181,11 +188,14 @@
komunikuj<75>cych si<73> poprzez mailowe listy dyskusyjne PostgreSQL. komunikuj<75>cych si<73> poprzez mailowe listy dyskusyjne PostgreSQL.
Obecnym koordynatorem jest Marc G. Fournier (<A href= Obecnym koordynatorem jest Marc G. Fournier (<A href=
"mailto:scrappy@PostgreSQL.org">scrappy@PostgreSQL.org</A>). (Zobacz "mailto:scrappy@PostgreSQL.org">scrappy@PostgreSQL.org</A>). (Zobacz
poni<EFBFBD>ej jak si<73> przy<7A><79>czy<7A>). Ta grupa ludzi jest odpowiedzialna za pytanie <A href="#1.6">1.6</A> jak si<73> przy<7A><79>czy<7A>). Ta grupa ludzi jest
ca<63>y rozw<7A>j PostgreSQL.</P> odpowiedzialna za ca<EFBFBD>y rozw<7A>j PostgreSQL. PostgreSQL jest projektem
nie kontrolowanym przez <20>adn<64> firm<72>, aby wzi<7A><69> udzia<69> w jego rozwoju
sprawd<77>, <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. <P>Autorami PostgreSQL 1.01 byli Andrew Yu and Jolly Chen.
Wiele innych os<6F>b pomog<6F>o przy portowaniu, testowaniu, debugowaniu, i Wiele innych os<6F>b pomog<6F>o przy portowaniu, testowaniu, debugowaniu i
rozwijaniu kodu. Oryginalny kod Postgresa, na kt<6B>rym zosta<74> oparty rozwijaniu kodu. Oryginalny kod Postgresa, na kt<6B>rym zosta<74> oparty
PostgreSQL, by<62> wysi<73>kiem student<6E>w oraz pracownik<69>w pracuj<75>cych pod PostgreSQL, by<62> wysi<73>kiem student<6E>w oraz pracownik<69>w pracuj<75>cych pod
kierownictwem profesora Michael'a Stonebraker'a z University of kierownictwem profesora Michael'a Stonebraker'a z University of
@ -243,11 +253,11 @@
<P><STRONG>Klient</STRONG></P> <P><STRONG>Klient</STRONG></P>
<P>Mo<EFBFBD>liwa jest kompilacja bibliteki C <I>libpq</I> C, psql oraz <P>Mo<EFBFBD>liwa jest kompilacja bibliteki C <I>libpq</I>, psql oraz
innych interfejs<6A>w i uruchamianie ich na platformie MS Windows. W tym innych interfejs<6A>w i uruchamianie ich na platformie MS Windows. W tym
wypadku klient jest uruchamiany na MS Windows a z serwerem komunikuje si<73> wypadku klient jest uruchamiany na MS Windows a z serwerem komunikuje si<73>
poprzez TCP/IP. Serwer mo<6D>e dzia<69>a<EFBFBD> na dowolnej wspieranej platformie poprzez TCP/IP. Serwer mo<6D>e dzia<69>a<EFBFBD> na dowolnej wspieranej platformie
Unixowej. Plik <I>win31.mak</I> jest do<64><6F>czony Unixowej. Plik <I>win32.mak</I> jest do<64><6F>czony
do <20>r<EFBFBD>de<64>, aby mo<6D>na by<62>o stworzy<7A> bibliotek<65> <I>libpq</I> oraz do <20>r<EFBFBD>de<64>, aby mo<6D>na by<62>o stworzy<7A> bibliotek<65> <I>libpq</I> oraz
program <I>psql</I> dzia<69>aj<61>ce w <20>rodowisku Win32. PostgreSQL mo<6D>e si<73> program <I>psql</I> dzia<69>aj<61>ce w <20>rodowisku Win32. PostgreSQL mo<6D>e si<73>
tak<61>e komunikowa<77> z klientami <SMALL>ODBC</SMALL>.</P> tak<61>e komunikowa<77> z klientami <SMALL>ODBC</SMALL>.</P>
@ -257,9 +267,18 @@
<P>Serwer mo<6D>e by<62> uruchamiany na Windows NT i Win2k u<>ywaj<61>c <P>Serwer mo<6D>e by<62> uruchamiany na Windows NT i Win2k u<>ywaj<61>c
bibliotek Cygwin, Cygnus Unix/NT. W pliku <I>pgsql/doc/FAQ_MSWIN</I> bibliotek Cygwin, Cygnus Unix/NT. W pliku <I>pgsql/doc/FAQ_MSWIN</I>
znajduj<75>cym si<73> w <20>r<EFBFBD>d<EFBFBD>ach lub pod adresem: <A href= znajduj<75>cym si<73> w <20>r<EFBFBD>d<EFBFBD>ach lub pod adresem: <A href=
"http://www.postgresql.org/docs/faq-mswin.html">MS Windows FAQ</A> "http://www.postgresql.org/docs/faqs/text/FAQ_MSWIN">http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN</A> na naszych stronach.<P>
na naszych stronach. Nie planujemy tworzy<7A> portu przeznaczonego Obecnie prowadzone s<> prace nad stworzeniem wersji dla MS Win
docelowo dla platformy Microsoft.</P> NT/200/XP. Je<4A>li chcesz si<73> dowiedzie<69> 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<61>e port pod Novell Netware 6 dost<73>pny pod adresem <A
href="http://forge.novell.com">http://forge.novell.com</A>.
</P>
<H4><A name="1.5">1.5</A>) Sk<53>d mo<6D>na <20>ci<63>gn<67><6E> PostgreSQL?</H4> <H4><A name="1.5">1.5</A>) Sk<53>d mo<6D>na <20>ci<63>gn<67><6E> PostgreSQL?</H4>
@ -324,14 +343,13 @@
'#PostgreSQL' "$USER" irc.phoenix.net.</CODE></P> '#PostgreSQL' "$USER" irc.phoenix.net.</CODE></P>
<P>Lista firm oferuj<75>cych wsparcie na zasadach komercyjnych znajduje <P>Lista firm oferuj<75>cych wsparcie na zasadach komercyjnych znajduje
si<73> pod adresem: <A href= si<73> pod adresem: <A href= "http://techdocs.postgresql.org/companies.php">http://techdocs.postgresql.org/companies.php</A>.</P>
"http://www.postgresql.org/users-lounge/commercial-support.html">http://www.postgresql.org/users-lounge/commercial-support.html</A>.</P>
<H4><A name="1.7">1.7</A>) Jaka jest ostatnia dost<73>pna wersja?</H4> <H4><A name="1.7">1.7</A>) Jaka jest ostatnia dost<73>pna wersja?</H4>
<P>Ostatnia dost<73>pna wersja PostgreSQL to 7.2.1.</P> <P>Ostatnia dost<73>pna wersja PostgreSQL to 7.4.1.</P>
<P>Planujemy publikowanie kolejnych wersji co cztery miesi<73>ce.</P> <P>Planujemy publikowanie kolejnych wersji co sze<EFBFBD><EFBFBD> do o<>miu miesi<73>cy.</P>
<H4><A name="1.8">1.8</A>) Jaka dokumentacja jest dost<73>pna?</H4> <H4><A name="1.8">1.8</A>) Jaka dokumentacja jest dost<73>pna?</H4>
@ -339,7 +357,7 @@
testowania s<> za<7A><61>czone w samej dystrybucji. Znajduj<75> si<73> one w testowania s<> za<7A><61>czone w samej dystrybucji. Znajduj<75> si<73> one w
katalogu <I>/doc</I>. Manual mo<6D>e by<62> tak<61>e przegl<67>dany poprzez katalogu <I>/doc</I>. Manual mo<6D>e by<62> tak<61>e przegl<67>dany poprzez
strony www pod adresem <A href= 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<EFBFBD> tak<61>e dwie ksi<73><69>ki dost<73>pne online pod adresami <P>Istniej<EFBFBD> tak<61>e dwie ksi<73><69>ki dost<73>pne online pod adresami
<A href= <A href=
@ -348,14 +366,15 @@
"http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</A>. "http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</A>.
Lista ksi<73><69>ek o PostgreSQL, kt<6B>re mo<6D>na kupi<70> znajduje si<73> pod adresem Lista ksi<73><69>ek o PostgreSQL, kt<6B>re mo<6D>na kupi<70> znajduje si<73> pod adresem
<A href= <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<62>r technicznych artyku<6B><75>w o PostgreSQL znajduje si<73> pod adresem <A Zbi<62>r technicznych artyku<6B><75>w o PostgreSQL znajduje si<73> pod adresem <A
href= 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<63> \d, za pomoca kt<6B>rych <P><I>psql</I> posiada kilka wbudowanych polece<63> \d, za pomoca kt<6B>rych
mo<6D>na sprawdzi<7A> informacje dotycz<63>ce typ<79>w, operator<6F>w, funkcji, mo<6D>na sprawdzi<7A> informacje dotycz<63>ce typ<79>w, operator<6F>w, funkcji,
aggregat<EFBFBD>w itd.</P> agregat<61>w itd.</P>
<P>Na naszej stronie mo<6D>na znale<6C><65> du<64>o wi<77>cej dokumentacji.</P> <P>Na naszej stronie mo<6D>na znale<6C><65> du<64>o wi<77>cej dokumentacji.</P>
@ -409,8 +428,8 @@
<P>Jest oko<6B>o 12 os<6F>b, kt<6B>re maj<61> uprawnienia do commit'owania w <P>Jest oko<6B>o 12 os<6F>b, kt<6B>re maj<61> uprawnienia do commit'owania w
<SMALL>CVS</SMALL> PostgreSQL'a. Ka<4B>dy z nich submitowa<77> tak wiele <SMALL>CVS</SMALL> PostgreSQL'a. Ka<4B>dy z nich submitowa<77> tak wiele
wysokiej jako<6B>ci patchy, <20>e sta<74>o si<73> niemo<6D>liwe dla obecnych wysokiej jako<6B>ci patchy, <20>e sta<74>o si<73> niemo<6D>liwe dla obecnych
commiter<65>w by<62> z nimi na bie<69><65>co, maj<EFBFBD>c pewno<6E><6F> <20>e s<> to poprawki commiter<65>w by<62> z nimi na bie<69><65>co, wi<EFBFBD>c musieli<6C>my im ufa<66> i mie<69>
wysokiej jako<6B>ci.</P> pewno<6E><6F>, <20>e ich poprawki s<> wysokiej jako<6B>ci.</P>
<H4><A name="1.13">1.13</A>) Jak mog<6F> zg<7A>asza<7A> b<><62>dy?</H4> <H4><A name="1.13">1.13</A>) Jak mog<6F> zg<7A>asza<7A> b<><62>dy?</H4>
@ -437,46 +456,31 @@
oraz wyrafinowany system blokowania. Mamy tak<61>e w<>a<EFBFBD>ciow<6F>ci kt<6B>rych oraz wyrafinowany system blokowania. Mamy tak<61>e w<>a<EFBFBD>ciow<6F>ci kt<6B>rych
inni nie posiadaj<61>, jak typy definiowane przez u<>ytkownika, inni nie posiadaj<61>, jak typy definiowane przez u<>ytkownika,
dziedziczenie, rules, multi-version concurrency control, kt<6B>ra dziedziczenie, rules, multi-version concurrency control, kt<6B>ra
redukuje problemy z blokowaiem (lock contention).<BR> redukuje problemy z blokowaniem (lock contention).<BR>
<BR> <BR>
</DD> </DD>
<DT><B>Wydajno<EFBFBD><EFBFBD></B></DT> <DT><B>Wydajno<EFBFBD><EFBFBD></B></DT>
<DD>PostgreSQL dzia<EFBFBD>a w dw<64>ch trybach. Standardowy tryb <I>fsync</I> <DD>Wydajno<EFBFBD><EFBFBD> PostgreSQL jest podobna do innych komercyjnych i open
zrzuca ka<6B>d<EFBFBD> zako<6B>czon<6F> transakcj<63> na dysk, gwarantuj<75>c w ten source baz danych. W niekt<6B>rych sytuacjach jest szybszy w
spos<EFBFBD>b to, <20>e je<6A>li system operacyjny si<73> zawiesi lub straci niekt<EFBFBD>rych wolniejszy. W por<6F>wnianiu do MySQL lub mniejszych baz
zasilanie wci<63>gu kilku nastepnych sekund, wszystkie Twoje dane danych jeste<74>my szybsi przy wielu u<>ytkownikach, skomplikowaych
zostan<EFBFBD> bezpiecznie zapisane na dysku. W tym trybie, jeste<74>my zapytaniach i du<64>ym obci<63><69>eniu podczas. MySQL jest szybszy dla
wolniejsi ni<6E> wi<77>kszo<7A><6F> komercyjnych baz danych, cz<63><7A>ciowo dlatego prostych SELECT<43>w wykonywanych przez niewielu u<>ytkownik<69>w.
<EFBFBD>e niewiele z nich wykonuje taki spos<6F>b zapisywania danych jako Spowodowane jest to narzutem, kt<6B>ry si<73> pojawia przy transakcjach.
domy<EFBFBD>lne ustawienie. Oczywi<EFBFBD>cie MySQL nie ma wi<77>kszo<7A>ci z rozwi<77>za<7A> opisanych powy<77>ej
W trybie <I>no-fsync</I> z regu<67>y jeste<74>my szybsi ni<6E> komercyjne w sekcji <I> Mo<4D>liwo<77>ci </I>. PostgreSQL zosta<74> stworzony z my<6D>l<EFBFBD> o
bazy danych, chocia<69> w tym wypadku zawieszenie si<73> systemu mo<6D>e stabilno<EFBFBD>ci, oraz szerokiej gamie mo<6D>liwo<77>ci, ale mimo to staramy
spowodowa<EFBFBD> uszkodzenie danych. Pracujemy nad tym, aby stworzy<7A> si<EFBFBD> w ka<6B>dej wersji poprawia<69> jego wydajno<6E><6F>.
po<EFBFBD>redni tryb, kt<6B>ry powoduje mniejsz<73> redukcj<63> wydajno<6E>ci ni<6E> tryb Ciekawe por<6F>wnanie PostgreSQL i MySQL mo<6D>na znale<6C><65> pod adresem <A href=
fsync i pozwoli na integralno<6E><6F> danych w przeci<63>gu 30 sekund do "http://openacs.org/philosophy/why-not-mysql.html">http://openacs.org/philosophy/why-not-mysql.html</A>
za<EFBFBD>amania si<73> systemu operacyjnego.<BR> Dodatkowo, MySQL jest firm<72>, kt<6B>ra dystrybuuje jej produkty poprzez
<BR> zasad<61> Open Source i wymaga wykupienia licencji w przypadku
Por<6F>wnuj<75>c do MySQL czy innych prostych baz danych, jeste<74>my tworzenia close-source software, co ie ma miejsca w przypadku
wolniejsi przy wykonywaniu insert<72>w/updat<61>w przez narzut PostgreSQL.<BR>
spowodowany przez transakcje. Oczywi<77>cie MySQL nie posiada <20>adnej z
wymienionych wy<77>ej <I>mo<EFBFBD>liwo<EFBFBD>ci</I>. PostgreSQL zosta<74> zbudowany
aby by<62> DBMS elastycznym i bogatym z r<><72>norakie mo<6D>liwo<77>ci,
aczkolwiek dbamy, aby poprawia<69> jego wydajno<6E><6F> poprzez analiz<69>
kodu <20>r<EFBFBD>d<EFBFBD>owego i profilowanie. Ciekawe por<6F>wnanie PostgreSQL i MySQL
mo<6D>na znale<6C><65> pod adresem <A href=
"http://openacs.org/why-not-mysql.html">http://openacs.org/why-not-mysql.html</A><BR>
<BR>
Ka<4B>de po<70><6F>czenie klienta jest obs<62>ugiwane przez nas poprzez
stworzenie nowego procesu Unixowego. Procesy backendu dziel<65>
bufory danych oraz informacj<63> o blokadach. U<>ywaj<61>c wielu
procesor<6F>w, r<><72>ne backendy mog<6F> bez problemu dzia<69>a<EFBFBD> na r<><72>nych
procesorach.<BR>
<BR> <BR>
</DD> </DD>
<DT><B>Stabilno<EFBFBD><EFBFBD></B></DT> <DT><B>Stabilno<EFBFBD><EFBFBD></B></DT>
<DD>Zdajemy sobie spraw<61>, <20>e <SMALL>DBMS</SMALL> musi by<62> stabilny, <DD>Zdajemy sobie spraw<61>, <20>e <SMALL>DBMS</SMALL> musi by<62> stabilny,
@ -521,20 +525,20 @@
PostgreSQL?</H4> PostgreSQL?</H4>
<P>PostgreSQL korzysta z najlepszej infrastruktury od samego pocz<63>tku <P>PostgreSQL korzysta z najlepszej infrastruktury od samego pocz<63>tku
istnienia projektu, tzn. sze<7A>ciu lat. Wszystko to zawdzi<7A>czamy Marc'owi istnienia projektu, czyli roku 1996 kiedy rozpoczeli<6C>my prac<61>. Wszystko
Fournier'owi, kt<6B>ry stworzy<7A> t<> infrastruktur<75> i zarz<72>dza ni<6E> od to zawdzi<7A>czamy Marc'owi Fournier'owi, kt<6B>ry stworzy<7A> t<> infrastruktur<75>
lat.</P> i zarz<72>dza ni<6E> od lat.</P>
<P>Wysokiej jako<6B>ci infrastruktura jest bardzo wa<77>na dla ka<6B>dego <P>Wysokiej jako<6B>ci infrastruktura jest bardzo wa<77>na dla ka<6B>dego
projektu open-source. Zapobiega przerwom w rozwoju projektu i projektu open-source. Zapobiega przerwom w rozwoju projektu i
jakimkolwiek przestojom.</P> jakimkolwiek przestojom.</P>
<P>Oczywi<EFBFBD>cie korzystanie z wysokiej jako<6B>ci infrastruktury nie jest <P>Oczywi<EFBFBD>cie korzystanie z wysokiej jako<6B>ci infrastruktury nie jest
tanie. Istnieje wiele r<>znych miesi<73>cznych, czy jednorazowych tanie. Istnieje wiele r<><EFBFBD>nych miesi<73>cznych, czy jednorazowych
wydatk<74>w, kt<6B>re trzeba ponosi<73> aby wszystko dzia<69>a<EFBFBD>o jak nale<6C>y. wydatk<74>w, kt<6B>re trzeba ponosi<73> aby wszystko dzia<69>a<EFBFBD>o jak nale<6C>y.
Je<4A>li Ty, b<>d<EFBFBD> Twoja firma mo<6D>e wspom<6F>c finansowo rozw<7A>j PostgreSQL Je<4A>li Ty, b<>d<EFBFBD> Twoja firma mo<6D>e wspom<6F>c finansowo rozw<7A>j PostgreSQL
odwied<65> adres: <A href= odwied<65> 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<62>.</P> gdzie opisane jest jak to zrobi<62>.</P>
<P>Chocia<EFBFBD> na stronie wspomniana jest nazwa PostgreSQL Inc, "datki" <P>Chocia<EFBFBD> na stronie wspomniana jest nazwa PostgreSQL Inc, "datki"
@ -542,6 +546,9 @@
przeznaczane na finansowanie jakiejkolwiek firmy. Je<4A>li wolisz, przeznaczane na finansowanie jakiejkolwiek firmy. Je<4A>li wolisz,
mo<6D>esz wys<79>a<EFBFBD> czek na adres kontaktowy.</P> mo<6D>esz wys<79>a<EFBFBD> czek na adres kontaktowy.</P>
<HR> <HR>
Je<4A>li mo<6D>esz si<73> pochwali<6C> udanymi wdro<72>eniami PostgreSQL, prosimy
aby<62> zg<7A>osi<73> nam to na stronie: <A
href="http://advocacy.postgresql.org/">http://advocacy.postgresql.org</a>.
<H2 align="center">User Client Questions</H2> <H2 align="center">User Client Questions</H2>
@ -551,25 +558,21 @@
<P>Dost<EFBFBD>pne s<> dwa driwery <SMALL>ODBC</SMALL>: PsqlODBC <P>Dost<EFBFBD>pne s<> dwa driwery <SMALL>ODBC</SMALL>: PsqlODBC
i OpenLink <SMALL>ODBC</SMALL>.</P> i OpenLink <SMALL>ODBC</SMALL>.</P>
<P>PsqlODBC jest do<64><6F>czony do <20>r<EFBFBD>de<64>. Wi<57>cej informacji na jego temat <P>Mo<EFBFBD>esz pobra<72> PsqlODBC z adresu <A
mo<EFBFBD>esz znale<6C><65> pod adresem: <A href= href="http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">http://gborg.postgresql.org/project/psqlodbc/projdisplay.php</A>
"ftp://ftp.PostgreSQL.org/pub/odbc/">ftp://ftp.PostgreSQL.org/pub/odbc/</A>.</P> </P>
<P>OpenLink <SMALL>ODBC</SMALL> mo<6D>e by<62> pobrany z adresu: <A href= <P>OpenLink <SMALL>ODBC</SMALL> mo<6D>e by<62> pobrany z adresu: <A href=
"http://www.openlinksw.com/">http://www.openlinksw.com</A>. "http://www.openlinksw.com/">http://www.openlinksw.com</A>.
Wsp<73><70>pracuje ze standardowym oprogramowaniem klienckim <SMALL>ODBC</SMALL> Wsp<73><70>pracuje ze standardowym oprogramowaniem klienckim <SMALL>ODBC</SMALL>
wi<77>c w ten spos<6F>b mo<6D>esz korzysta<74> z PostgreSQL <SMALL>ODBC</SMALL> wi<77>c w ten spos<6F>b mo<6D>esz korzysta<74> z PostgreSQL <SMALL>ODBC</SMALL>
dost<73>pnego na ka<6B>dej plaformie kt<6B>r<EFBFBD> wspiera (Win, Mac, Unix, VMS).</P> dost<73>pnego na ka<6B>dej pltaformie kt<6B>r<EFBFBD> wspiera (Win, Mac, Unix, VMS).</P>
<P>Autorzy b<>d<EFBFBD> prawdopodobnie sprzedawa<77> ten produkt osobom kt<6B>re <P>Autorzy b<>d<EFBFBD> prawdopodobnie sprzedawa<77> ten produkt osobom kt<6B>re
wymagaj<61> komercyjnego wsparcia, ale wersja darmowa b<>dzie zawsze wymagaj<61> komercyjnego wsparcia, ale wersja darmowa b<>dzie zawsze
dost<73>pna. Wszystkie pytania mo<6D>esz wysy<73>a<EFBFBD> na adres: <A href= dost<73>pna. Wszystkie pytania mo<6D>esz wysy<73>a<EFBFBD> na adres: <A href=
"mailto:postgres95@openlink.co.uk">postgres95@openlink.co.uk</A>.</P> "mailto:postgres95@openlink.co.uk">postgres95@openlink.co.uk</A>.</P>
<P>Sprawd<EFBFBD> tak<61>e rozdzia<69> 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<65> narz<72>dzia pozwalaj<61>ce na dost<73>p do <H4><A name="2.2">2.2</A>) Jakie istniej<65> narz<72>dzia pozwalaj<61>ce na dost<73>p do
PostgreSQL przez www?</H4> PostgreSQL przez www?</H4>
@ -577,59 +580,56 @@
przez www mo<6D>esz znale<6C><65> pod adresem: przez www mo<6D>esz znale<6C><65> pod adresem:
<A href="http://www.webreview.com">http://www.webreview.com</A></P> <A href="http://www.webreview.com">http://www.webreview.com</A></P>
<P>Inny znajduje si<73> 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, <20>wietnym rozwi<77>zaniem jest PHP. Mo<4D>esz <P>Do integracji z www, <20>wietnym rozwi<77>zaniem jest PHP. Mo<4D>esz
znale<6C><65> wi<77>cej informacji na ten temat pod adresem znale<6C><65> wi<77>cej informacji na ten temat pod adresem
<A href="http://www.php.net">http://www.php.net</A>.</P> <A href="http://www.php.net">http://www.php.net</A>.</P>
<P>Wiele os<6F>b w przypadku skomplikowanych rozwi<77>za<7A> uzywa Perl'a i <P>Wiele os<6F>b w przypadku skomplikowanych rozwi<77>za<7A> uzywa Perl'a i
modu<64>u CGI.pl.</P> modu<64>u CGI.pl lub mod_perl.</P>
<H4><A name="2.3">2.3</A>) Czy istnieje jakie<69> GUI dla PostgreSQL? <H4><A name="2.3">2.3</A>) Czy istnieje jakie<69> GUI dla PostgreSQL?</H4>
Narz<72>dzie do raportowania? Interfejs dla "embedded query
language"?</H4>
<P>Mamy ca<63>kiem mi<6D>y interfejs graficzny, kt<6B>ry zosta<74> nazwany <P>Tak, istnieje kilka interfejs<EFBFBD>w graficznych dla PostgreSQL.
<I>pgaccess</I> i jest on dostarczany jako cz<63><7A><EFBFBD> <20>r<EFBFBD>de<64>. W<EFBFBD>r<EFBFBD>d nich PgAccess (<A href="http://www.pgaccess.org">
<I>pgaccess</I> posiada tak<61>e generator raport<72>w. Mo<4D>na go znale<6C><65> http://www.pgaccess.org</A>), PgAdmin III (<A
pod adresem <A href= href="http://www.pgadmin.org">http://www.pgadmin.org</A>),
"http://www.flex.ro/pgaccess">http://www.flex.ro/pgaccess</A></P> RHDB Admin (http://sources.redhat.com/rhdb/ ) oraz Rekall (
http://www.thekompany.com/products/rekall/, komercyjny). Istnieje
<P>Udost<EFBFBD>pnili<EFBFBD>my tak<61>e <I>ecpg</I>, kt<6B>ry jest "embedded SQL query tak<61>e PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ), webowy
language interface" dla j<EFBFBD>zyka C.</P> interfejs dla PostgreSQL.
</P>
<P>
Wi<57>cej informacji na ten temat znajduje si<73> 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<6F> jakich j<>zyk<79>w programowania <H4><A name="2.4">2.4</A>) Za pomoc<6F> jakich j<>zyk<79>w programowania
mo<6D>na si<73> komunikowa<77> z PostgreSQL?</H4> mo<6D>na si<73> komunikowa<77> z PostgreSQL?</H4>
<P>Mamy wsparcie dla:</P> <P>Najbardziej popularne j<>zyki posiiadaj<61> w<>asny interfejs dla
PostgreSQL. Sprawd<77> list<73> rozszerze<7A> dla intersuj<75>cego Ciebie j<>zyka
programowania.</P>
<P>Ze <20>r<EFBFBD>d<EFBFBD>ami PostreSQL dystrubuowane s<> interfejsy dla
nast<73>puj<75>cych j<>zyk<79>w programowania:</P>
<UL> <UL>
<LI>C (libpq)</LI> <LI>C (libpq)</LI>
<LI>C++ (libpq++)</LI>
<LI>Embedded C (ecpg)</LI> <LI>Embedded C (ecpg)</LI>
<LI>Java (jdbc)</LI> <LI>Java (jdbc)</LI>
<LI>Perl (perl5)</LI>
<LI>ODBC (odbc)</LI>
<LI>Python (PyGreSQL)</LI> <LI>Python (PyGreSQL)</LI>
<LI>TCL (libpgtcl)</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> </UL>
Inne interfejsy s<> dost<73>pne pod adresem:
<A href="http://gborg.postgresql.org"> http://gborg.postgresql.org</A> w
sekcji Drivers/Interfaces.
<HR> <HR>
<H2 align="center">Pytania administratora</H2> <H2 align="center">Pytania dotycz<EFBFBD>ce administracji</H2>
<H4><A name="3.1">3.1</A>) Jak mog<6F> zainstalowa<77> PostgreSQL w innej <H4><A name="3.1">3.1</A>) Jak mog<6F> zainstalowa<77> PostgreSQL w innej
lokalizacji ni<6E> <I>/usr/local/pgsql</I>?</H4> lokalizacji ni<6E> <I>/usr/local/pgsql</I>?</H4>
@ -678,6 +678,7 @@
<P>Niedzia<EFBFBD>aj<EFBFBD>ce semafory mog<6F> spowodowa<77> niepoprawne zamkni<6E>cie <P>Niedzia<EFBFBD>aj<EFBFBD>ce semafory mog<6F> spowodowa<77> niepoprawne zamkni<6E>cie
systemu w czasie intensywnego korzystania z bazy.</P> systemu w czasie intensywnego korzystania z bazy.</P>
<P>Je<EFBFBD>li tre<72><65> b<><62>du jest inna, mo<6D>e to oznacza<7A>, <20>e obs<62>uga semafor<6F>w <P>Je<EFBFBD>li tre<72><65> b<><62>du jest inna, mo<6D>e to oznacza<7A>, <20>e obs<62>uga semafor<6F>w
nie zosta<74>a w<><77>czona do j<>dra wcale. Zobacz PostgreSQL nie zosta<74>a w<><77>czona do j<>dra wcale. Zobacz PostgreSQL
Administrator's Guide po bardziej szczeg<65><67>owe informacje o pami<6D>ci Administrator's Guide po bardziej szczeg<65><67>owe informacje o pami<6D>ci
@ -692,8 +693,7 @@
<I>postmaster'a</I>, <I>postmaster'a</I>,
<B>oraz</B> nie umo<6D>liwi si<73> autoryzacji na podstawie adresu host<73>w <B>oraz</B> nie umo<6D>liwi si<73> autoryzacji na podstawie adresu host<73>w
modyfikuj<75>c odpowiednio plik modyfikuj<75>c odpowiednio plik
<I>$PGDATA/pg_hba.conf</I>. To zmiany pozwol<6F> na <I>$PGDATA/pg_hba.conf</I>. To zmiany pozwol<6F> na po<70><6F>czenia TCP/IP.</P>
po<70><6F>czenia TCP/IP.</P>
<H4><A name="3.6">3.6</A>) Jak powinienem skonfigurowa<77> system baz <H4><A name="3.6">3.6</A>) Jak powinienem skonfigurowa<77> system baz
danych aby uzyska<6B> lepsz<73> wydajno<6E><6F>?</H4> danych aby uzyska<6B> lepsz<73> wydajno<6E><6F>?</H4>
@ -709,7 +709,7 @@
okre<72>laj<61>cym transakcj<63> - <SMALL>BEGIN WORK/COMMIT</SMALL>, s<> okre<72>laj<61>cym transakcj<63> - <SMALL>BEGIN WORK/COMMIT</SMALL>, s<>
traktowane jako pojedyncza transakcja. Rozwa<77> wykonanie kilku traktowane jako pojedyncza transakcja. Rozwa<77> wykonanie kilku
polece<63>/zda<64> SQL w jednym bloku transakcji. To redukuje narzut polece<63>/zda<64> SQL w jednym bloku transakcji. To redukuje narzut
powodowany przez transakcj<63>. Przy du<64>ych zmianach w danych, warto nak<EFBFBD>adany przez transakcj<63>. Przy du<64>ych zmianach w danych, warto
usun<75><6E> i stworzy<7A> na nowo indeksy.</P> usun<75><6E> i stworzy<7A> na nowo indeksy.</P>
<P>Jest kilka opcji pozwalaj<61>cych na poprawienie wydajno<6E>ci. <P>Jest kilka opcji pozwalaj<61>cych na poprawienie wydajno<6E>ci.
@ -825,19 +825,12 @@
maksymaln<6C> liczb<7A> proces<65>w backendu to obawa o wyczerpanie zasob<6F>w maksymaln<6C> liczb<7A> proces<65>w backendu to obawa o wyczerpanie zasob<6F>w
systemu.</P> systemu.</P>
<P>W wersjach PostgreSQL wcze<7A>niejszych ni<6E> 6.5, maksymalna liczba <H4><A name="3.9">3.9</A>) Jakie pliki znajduj<75> si<73> w <I>pg_temp</I>?</H4>
backend<6E>w by<62>a ustawiona na 64, a zmiana tej warto<74>ci wymaga
rekompliacji po zmianie sta<74>ej MaxBackendId w pliku
<I>include/storage/sinvaladt.h</I>.</P>
<H4><A name="3.9">3.9</A>) Co to s<> za pliki typu: <P>Katalog ten zawiera tymczasowe pliki utworzone przez executor. Dla
<I>pg_sorttempNNN.NN</I>, przyk<EFBFBD>adu, je<6A>li jaka<6B> operacja sortowania jest wymagana do wykonania
kt<6B>re znajduj<75> si<73> w katalogu z plikami bazy danych?</H4>
<P>S<EFBFBD> to tymczasowe pliki utworzone przez executor. Dla przyk<79>adu,
je<6A>li jaka<6B> operacja sortowania jest wymagana do wykonania
<SMALL>ORDER BY,</SMALL> a samo sortowanie wymaga wi<77>cej miejsca ni<6E> <SMALL>ORDER BY,</SMALL> a samo sortowanie wymaga wi<77>cej miejsca ni<6E>
paratmetr backendu parametr backendu
<I>-S</I> ustawi<77> do wykorzystania, wtedy tymczasowe pliki s<> u<>ywane <I>-S</I> ustawi<77> do wykorzystania, wtedy tymczasowe pliki s<> u<>ywane
do przechowywania tych danych.</P> do przechowywania tych danych.</P>
@ -846,6 +839,25 @@
poprawnie podczas operacji sortowania. Je<4A>li w danym momencie nie poprawnie podczas operacji sortowania. Je<4A>li w danym momencie nie
dzia<69>aj<61> <20>adne procesy backend<6E>w mozesz spokojnie usun<75><6E> pliki dzia<69>aj<61> <20>adne procesy backend<6E>w mozesz spokojnie usun<75><6E> pliki
pg_tempNNN.NN.</P> pg_tempNNN.NN.</P>
<H4><A name="3.9">3.9</A>) Dlaczego konieczne jest przy upgradzie
PostgreSQL korzystanie ze skrypt<70>w dump i restore?</H4>
<P>
Tw<54>rcy PostgreSQL dokonuj<75> jedynie ma<6D>ych zmian pomi<6D>dzy ma<6D>ymi
upgradami wersji, np z 7.2 do 7.2.1, wtedy upgrade nie wymaga
korzystania z dump i restore. Przy wi<77>kszych zmianach, np. z wersji
7.2 do 7.3, cz<63>sto zmianymaj<61> wp<77>yw na format przechowywanych danych.
Zmiany te s<> na tyle skomplikowane, <20>e nie utrzymujemy zgodo<64>ci z
poprzednimi wersjami PostgreSQL. dump pozwala na wydostanie danych w
takiej postaci, w kt<6B>rej <20>atwe jest ich zaimportowanie do nowszych
wersji bez k<>opotu.
</P>
<P>
W wydaniach gdzie zmiany nie dotycz<63> formatu danych na dysku, mo<6D>na
wykorzysta<74> skryptu pg_upgrade, do upgradu bez u<>ycia dump/restore.
Dokumentacja do danego wydania zawiera informacj<63> czy mo<6D>liwe jest
u<>ycie pg_upgrade.
</P>
<HR> <HR>
<H2 align="center">Pytania dotycz<63>ce u<>ywania</H2> <H2 align="center">Pytania dotycz<63>ce u<>ywania</H2>
@ -870,6 +882,15 @@
<SMALL>ORDER BY</SMALL>, PostgreSQL mo<6D>e wykorzysta<74> jedynie kilka <SMALL>ORDER BY</SMALL>, PostgreSQL mo<6D>e wykorzysta<74> jedynie kilka
pierwszych rz<72>d<EFBFBD>w, by<62> mo<6D>e b<>dzie konieczno<6E><6F> wykonania zapytania do pierwszych rz<72>d<EFBFBD>w, by<62> mo<6D>e b<>dzie konieczno<6E><6F> wykonania zapytania do
momentu a<> zostan<61> znalezione po<70><6F>dane wyniki.</P> momentu a<> zostan<61> znalezione po<70><6F>dane wyniki.</P>
<P>
Aby otrzyma<6D> losowy rz<72>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<6F> uzyska<6B> list<73> wszystkich tabel <H4><A name="4.3">4.3</A>) Jak mog<6F> uzyska<6B> list<73> wszystkich tabel
czy innych rzeczy pod <I>psql</I>?</H4> czy innych rzeczy pod <I>psql</I>?</H4>
@ -881,27 +902,43 @@
<I>-E</I> wtedy po wykonaniu polecenia z backslashem wy<77>wietlane <I>-E</I> wtedy po wykonaniu polecenia z backslashem wy<77>wietlane
b<>dzie zapytanie, kt<6B>re w rzeczywisto<74>ci jest wykonywane.</P> b<>dzie zapytanie, kt<6B>re w rzeczywisto<74>ci jest wykonywane.</P>
<H4><A name="4.4">4.4</A>) Jak usun<75><6E> kolumn<6D> z tabeli?</H4> <H4><A name="4.4">4.4</A>) Jak usun<75><6E> kolumn<6D> z tabeli lub zmieni<6E>
jej typ?</H4>
<P>Nie mamy zaimplementowanego <SMALL>ALTER TABLE DROP <P>DROP COLUMNT zosta<74>o dodane w wersji 7.3 przy poleceniu ALTER
COLUMN,</SMALL> ale mo<6D>esz zrobi<62> tak:</P> TABLE DROP COLUMN. We wcze<7A><65>iejszych wersjach mo<6D>esz zrobi<62> tak:
</P>
<PRE> <PRE>
SELECT ... -- wybierz zawarto<74><6F> wszystkich kolumn poza t<> jedn<64> kt<6B>rej chcesz si<73> pozby<62> BEGIN;
LOCAL TABLE old_table;
SELECT ... -- wybierz wszystkie kolumny poza t<> jedn<64> kt<6B>rej chcesz si<73> pozby<62>
INTO TABLE new_table INTO TABLE new_table
FROM old_table; FROM old_table;
DROP TABLE old_table; DROP TABLE old_table;
ALTER TABLE new_table RENAME TO old_table; ALTER TABLE new_table RENAME TO old_table;
</PRE> </PRE>
<P>
Aby zmieni<6E> typ danych kolumny mo<6D>esz zrobi<62> 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<72>du, <H4><A name="4.5">4.5</A>) Jaki jest maksymalny rozmiar dla rz<72>du,
tabeli i bazy danych?</H4> tabeli i bazy danych?</H4>
<P>Oto wszystkie ograniczenia:</P> <P>Oto wszystkie ograniczenia:</P>
<PRE> <PRE>
Maksymalny rozmiar dla bazdy danych? nieograniczony ( istniej<65> bazy danych o wielko<6B>ci 500 GB databases ) Maksymalny rozmiar dla bazdy danych? nieograniczony ( istniej<65>
Maksymalny rozmiar dla tabeli? 16 TB bazy danych o wielko<6B>ci 32 TB databases )
Maksymalny rozmiar dla rz<EFBFBD>du? nieograniczony w 7.1 i p<><70>niejszych Maksymalny rozmiar dla tabeli? 32 TB
Maksymalny rozmiar pola? 1 GB w 7.1 and later Maksymalny rozmiar dla rz<72>du? 1.6 TB
Maksymalny rozmiar pola? 1 GB
Maksymalna liczba rz<72>d<EFBFBD>w w tabeli? nieograniczona Maksymalna liczba rz<72>d<EFBFBD>w w tabeli? nieograniczona
Maksymalna liczba kolumn w tabeli? 250-1600 w zale<6C>ono<6E>ci od typ<79>w kolumn Maksymalna liczba kolumn w tabeli? 250-1600 w zale<6C>ono<6E>ci od typ<79>w kolumn
Makasymalna liczba indeks<6B>w na tabeli? nieograniczona Makasymalna liczba indeks<6B>w na tabeli? nieograniczona
@ -911,7 +948,7 @@
ograniczenia wynikaj<61>ce z dost<73>pnego miejsca na dysku, pami<6D>ci/swapa. ograniczenia wynikaj<61>ce z dost<73>pnego miejsca na dysku, pami<6D>ci/swapa.
Kiedy wielko<6B>ci te b<>d<EFBFBD> bardzo du<64>e mo<6D>e odbi<62> si<73> to na wydajno<6E>ci. Kiedy wielko<6B>ci te b<>d<EFBFBD> bardzo du<64>e mo<6D>e odbi<62> si<73> to na wydajno<6E>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<64>ych plik<69>w. Du<44>e tabele s<> przechowywane operacyjnego wsparcia dla du<64>ych plik<69>w. Du<44>e tabele s<> przechowywane
jako pliki o rozmiarze 1 GB, wi<77>c ograniczenia co do wielko<6B>ci plik<69>w jako pliki o rozmiarze 1 GB, wi<77>c ograniczenia co do wielko<6B>ci plik<69>w
narzucone przez system plik<69>w nie s<> istotne.</P> narzucone przez system plik<69>w nie s<> istotne.</P>
@ -957,6 +994,9 @@
<P>Indeksy nie powoduj<75> du<64>ego narzutu na zajmowane miejsce, <P>Indeksy nie powoduj<75> du<64>ego narzutu na zajmowane miejsce,
ale zawieraj<61> pewne dane, ale zawieraj<61> pewne dane,
wi<77>c w pewnych przypadkach moga by<62> ca<63>kiem du<64>e.</P> wi<77>c w pewnych przypadkach moga by<62> ca<63>kiem du<64>e.</P>
<P> NULLe s<> przechowywane jako mapy bitowe, wi<77>c u<>ywaj<61> bardzo ma<6D>o
miejsca.
</P>
<H4><A name="4.7">4.7</A>) Jak mog<6F> sprawdzi<7A> jakie tabele, klucze, <H4><A name="4.7">4.7</A>) Jak mog<6F> sprawdzi<7A> jakie tabele, klucze,
bazy danych i u<>ytkownicy s<> utworzeni?</H4> bazy danych i u<>ytkownicy s<> utworzeni?</H4>
@ -996,17 +1036,39 @@
nast<73>puje sortowanie jest zazwyczaj szybsze ni<6E> wyszukiwanie za nast<73>puje sortowanie jest zazwyczaj szybsze ni<6E> wyszukiwanie za
pomoc<6F> indeksu na du<64>ej tabeli.</P> pomoc<6F> indeksu na du<64>ej tabeli.</P>
Jakkolwiek <SMALL>LIMIT</SMALL> w po<70><6F>czeniu z <SMALL>ORDER BY</SMALL> Jakkolwiek <SMALL>LIMIT</SMALL> w po<70><6F>czeniu z <SMALL>ORDER BY</SMALL>
cz<63>sto b<>dzie wykorzystywa<77> indeks<EFBFBD>w poniew<65>z jedynie ma<6D>a cz<63><7A>c z cz<63>sto b<>dzie wykorzystywa<77> indeksy poniewa<EFBFBD> jedynie ma<6D>a cz<63><7A><EFBFBD> z
tabeli jest zwracana. tabeli jest zwracana. W rzeczywisto<74>ci, chocia<69> MAX() i MIN() nie
u<>ywaj<61> indeks<6B>w, mo<6D>liwe jest aby zwr<77>ci<63> te warto<74>ci u<>ywaj<61>c
indeks<6B>w poprzez u<>ycie ORDER BY i LIMIT.
</P>
<PRE>
SELECT col
FROM tab
ORDER BY col [ DESC ]
LIMIT 1;
</PRE>
<P>
Je<4A>li uwa<77>asz, <20>e optimizer myli si<73> wybieraj<61>c sequential scan, u<>yj
SET enable_seqscan TO 'off' i uruchom testy aby sprawdzi<7A> czy wtym
wypadku zapytanie b<>dzie szybciej wykonywane.
<P>Kiedy u<>ywa si<73> operator<6F>w dopasuj<75>cych takich jak <P>Kiedy u<>ywa si<73> operator<6F>w dopasuj<75>cych takich jak
<SMALL>LIKE</SMALL> lub <I>~</I>, indeksy b<>d<EFBFBD> u<>ywane jedynie je<EFBFBD>li <SMALL>LIKE</SMALL> lub <I>~</I>, indeksy b<>d<EFBFBD> u<>ywane jedynie w
pocz<EFBFBD>tek wyszukiwania jest oparty na pocz<63>tku <20>a<EFBFBD>cucha tekstu. pewnych wypadkach:</P>
Dlatego, aby u<>ywac indeks<6B>w, <UL>
dopasowania operatorem <SMALL>LIKE</SMALL> nie mog<6F> si<73> zaczyna<6E> <LI>Pocz<EFBFBD>tek wyszukiwania jest oparty na pocz<63>tku <20>a<EFBFBD>cucha tekstu.
<I>%</I>, a dopasowania operatorem <I>~</I> (dopasowania regularne) <UL>
<LI>wzorce <SMALL>LIKE</SMALL> nie mog<6F> si<73> zaczyna<6E> <I>%</I>
<LI>dopasowania operatorem <I>~</I> (dopasowania regularne)
musz<73> si<73> zaczyna<6E> znakiem specjalnym <I>^</I>.</P> musz<73> si<73> zaczyna<6E> znakiem specjalnym <I>^</I>.</P>
</UL>
<LI>Pocz<EFBFBD>tek wyszukiwania nie mo<6D>e si<73> zaczyna<6E> od klas znak<61>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<62> uzyte przy wykonywaniu initdb
</UL>
<H4><A name="4.9">4.9</A>) Jak mog<6F> sprawdzi<7A> w jakis spos<6F>b "query <H4><A name="4.9">4.9</A>) Jak mog<6F> sprawdzi<7A> w jakis spos<6F>b "query
optimizer" wykonuje moje zapytanie?</H4> optimizer" wykonuje moje zapytanie?</H4>
@ -1051,15 +1113,14 @@
<H4><A name="4.12">4.12</A>) Jak mog<6F> u<>ywa<77> wyra<72>e<EFBFBD> regularnych w <H4><A name="4.12">4.12</A>) Jak mog<6F> u<>ywa<77> wyra<72>e<EFBFBD> regularnych w
zapytaniach i zapyta<74> case-insensitive w wyra<72>eniach zapytaniach i zapyta<74> case-insensitive w wyra<72>eniach
regularnych? regularnych?
jak korzysta<74> z indeks<6B>w dla zapyta<74> case-insensitive?</H4> Jak korzysta<74> z indeks<6B>w dla zapyta<74> case-insensitive?</H4>
<P>Operator <I>~</I> moze by<62> wykorzystywany do wyszukiwania za <P>Operator <I>~</I> moze by<62> wykorzystywany do wyszukiwania za
pomoc<6F> wyra<72>e<EFBFBD> regularnych, a pomoc<6F> wyra<72>e<EFBFBD> regularnych, a
<I>~*</I> do wyszukiwania case-insensitive z wyra<72>eniami <I>~*</I> do wyszukiwania case-insensitive z wyra<72>eniami
regularnymi. regularnymi.
Wariant case-insensitive dla <SMALL>LIKE</SMALL> zosta<74> nazwany Wariant case-insensitive dla <SMALL>LIKE</SMALL> zosta<74> nazwany
<SMALL>ILIKE</SMALL> i jest dost<73>pny w PostgreSQL 7.1 i p<><70>niejszych <SMALL>ILIKE</SMALL>.</P>
wersjach.</P>
<P>Por<EFBFBD>wnania case-insensitive s<> zazwyczaj wykonywane w nast<73>puj<75>cy <P>Por<EFBFBD>wnania case-insensitive s<> zazwyczaj wykonywane w nast<73>puj<75>cy
spos<6F>b:</P> spos<6F>b:</P>
@ -1087,31 +1148,41 @@
<PRE> <PRE>
Type Nazwa wewn<77>trzna Uwagi Type Nazwa wewn<77>trzna Uwagi
-------------------------------------------------- --------------------------------------------------
"char" char 1 znak VARCHAR(n) varchar rozmiar okre<72>la maksymaln<6C> d<>ugo<67><6F>, nie ma tutaj wype<70>niania
CHAR(#) bpchar wype<70>niane pustymi znakami do podanej d<>ugo<67>ci CHAR(n) bpchar wype<70>niane pustymi znakami do podanej d<>ugo<67>ci
VARCHAR(#) varchar rozmiar okre<72>la maksymaln<6C> d<>ugo<67><6F>, nie ma tutaj wype<70>niania
TEXT text bez limitu na d<>ugo<67><6F> <20>a<EFBFBD>cucha TEXT text bez limitu na d<>ugo<67><6F> <20>a<EFBFBD>cucha
BYTEA bytea zmiennej d<>ugo<67>ci tablica bajt<6A>w (null-byte safe) BYTEA bytea zmiennej d<>ugo<67>ci tablica bajt<6A>w (null-byte safe)
"char" char 1 znak
</PRE> </PRE>
<P>Je<EFBFBD>li b<>dziesz przegl<67>da<64> katalogi systemowe lub komunikaty o <P>Je<EFBFBD>li b<>dziesz przegl<67>da<64> katalogi systemowe lub komunikaty o
b<><62>dach cz<63>sto spotkasz si<73> z podanymi powy<77>ej nazwami b<><62>dach cz<63>sto spotkasz si<73> z podanymi powy<77>ej nazwami
wewn<77>trznymi.</P> wewn<77>trznymi.</P>
<P>Ostatnie cztery typy powy<77>ej to tzw typy "varlena" (np. pierwsze <P>Pierwsze cztery typy powy<77>ej to tzw typy "varlena" (np. pierwsze
cztery bajty na dysku to d<>ugo<67><6F>, po kt<6B>rych jest data). Dlatego cztery bajty na dysku to d<>ugo<67><6F>, po kt<6B>rych jest data). Dlatego
faktyczna d<>ugo<67>c takiego <20>a<EFBFBD>cucha jest troch<63> wi<77>ksza ni<6E> faktyczna d<>ugo<67>c takiego <20>a<EFBFBD>cucha jest troch<63> wi<77>ksza ni<6E>
zadeklarowany rozmiar. Te typy tak<61>e podlegaj<61> kompresji lub mog<6F> by<62> zadeklarowany rozmiar. Te typy tak<61>e podlegaj<61> kompresji lub mog<6F> by<62>
przechowywane out-of-line jako <SMALL>TOAST</SMALL>, wi<77>c faktyczne przechowywane out-of-line jako <SMALL>TOAST</SMALL>, wi<77>c faktyczne
zu<7A>ycie miejsca na dysku mo<6D>e by<62> mniejsze ni<6E> oczekiwane.</P> zu<7A>ycie miejsca na dysku mo<6D>e by<62> mniejsze ni<6E> oczekiwane.</P>
<P><SMALL>CHAR()</SMALL> jast najlepszym typem do przechowywania <SMALL>VARCHAR(n)</SMALL> jest
<20>a<EFBFBD>cuch<63>w o tej samej d<>ugo<67>ci. <SMALL>VARCHAR()</SMALL> jest
najodpowiedniejszy do przechowywania <20>a<EFBFBD>cuch<63>w o r<><72>nej d<>ugo<67>ci najodpowiedniejszy do przechowywania <20>a<EFBFBD>cuch<63>w o r<><72>nej d<>ugo<67>ci
ale okre<72>la on maksymaln<6C> jego d<>ugo<67><6F>. <SMALL>TEXT</SMALL> jest ale okre<72>la on maksymaln<6C> jego d<>ugo<67><6F>.
najlepszy dla <20>a<EFBFBD>cuch<63>w o dowolnej d<>ugo<67>ci, nie przekraczaj<61>cej 1GB.
<SMALL>TEXT</SMALL> jest najlepszy dla <20>a<EFBFBD>cuch<63>w o dowolnej d<>ugo<67>ci,
nie przekraczaj<61>cej 1GB.</P>
<P>
<SMALL>CHAR(n)</SMALL> jast najlepszym typem do przechowywania
<20>a<EFBFBD>cuch<63>w o tej samej d<>ugo<67>ci. CHAR(n) wype<70>nia dane do <20>adanej
d<>ugo<67>ci, podczas gdy VARCHAR(n) przechowuje jedynie dane
dostarczone.
<SMALL>BYTEA</SMALL> s<>u<EFBFBD>y do przechowywania danych binarnych, <SMALL>BYTEA</SMALL> s<>u<EFBFBD>y do przechowywania danych binarnych,
w szczeg<65>lno<6E>ci dla danych zawieraj<61>cych <SMALL>NULL</SMALL> bajty.</P> w szczeg<65>lno<6E>ci dla danych zawieraj<61>cych <SMALL>NULL</SMALL> bajty.
Wszystkie typy opisane tutaj maja podobne charakterystyki je<6A>li
chodzi o wydajno<6E><6F>.</P>
<H4><A name="4.15.1">4.15.1</A>) Jak mog<6F> utworzy<7A> pole kt<6B>re samo <H4><A name="4.15.1">4.15.1</A>) Jak mog<6F> utworzy<7A> pole kt<6B>re samo
zwi<77>ksza swoj<6F> warto<74><6F>?</H4> zwi<77>ksza swoj<6F> warto<74><6F>?</H4>
@ -1197,8 +1268,7 @@ BYTEA bytea zmiennej d
numerowaniu z przerwanych transakcji.</P> numerowaniu z przerwanych transakcji.</P>
<H4><A name="4.16">4.16</A>) Co to jest <SMALL>OID</SMALL>? Co to <H4><A name="4.16">4.16</A>) Co to jest <SMALL>OID</SMALL>? Co to
jest jest <SMALL>TID</SMALL>?</H4>
<SMALL>TID</SMALL>?</H4>
<P><SMALL>OID</SMALL> s<> PostgreSQL'owym rozwi<77>zaniem problemu <P><SMALL>OID</SMALL> s<> PostgreSQL'owym rozwi<77>zaniem problemu
unikalnych numer<65>w rz<72>d<EFBFBD>w. Ka<4B>dy rz<72>d tworzony przez PostgreSQL unikalnych numer<65>w rz<72>d<EFBFBD>w. Ka<4B>dy rz<72>d tworzony przez PostgreSQL
@ -1274,15 +1344,15 @@ BYTEA bytea zmiennej d
</UL> </UL>
<P>List<EFBFBD> termin<69>w zwi<77>zanych z bazami danych mo<6D>esz znale<6C><65> pod tym <P>List<EFBFBD> termin<69>w zwi<77>zanych z bazami danych mo<6D>esz znale<6C><65> pod tym
adresem:<A href= adresem:<A
"http://www.comptechnews.com/~reaster/dbdesign.html">http://www.comptechnews.com/~reaster/dbdesign.html</A></P> 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<53>d bierze si<73> ten b<><62>d <I>"ERROR: <H4><A name="4.18">4.18</A>) Sk<53>d bierze si<73> ten b<><62>d <I>"ERROR:
Memory exhausted in AllocSetAlloc()"</I>?</H4> Memory exhausted in AllocSetAlloc()"</I>?</H4>
<P>Je<EFBFBD>li u<>ywasz wersji starszej ni<6E> 7.1, upgrade mo<6D>e rozwi<77>za<7A> ten <P>
problem. Jest tak<61>e mozliwe, <20>e po prostu wyczerpa<70>a Ci si<73> pami<6D><69> Prawdopodobnie wyczerpa<70>a Ci si<73> pami<6D><69> wirtualna (virtual memory)
wirtualna (virtual memory) w systemie lub Tw<54>j kernel ma zbyt nisko w systemie lub Tw<54>j kernel ma zbyt nisko
ustawione limity dla pewnych zasob<6F>w. Spr<70>buj wykona<6E> nast<73>puj<75>ce ustawione limity dla pewnych zasob<6F>w. Spr<70>buj wykona<6E> nast<73>puj<75>ce
polecenia zanim uruchomisz <I>postmaster'a</I>:</P> polecenia zanim uruchomisz <I>postmaster'a</I>:</P>
<PRE> <PRE>
@ -1332,29 +1402,38 @@ BYTEA bytea zmiennej d
<H4><A name="4.22">4.22</A>) Dlaczego zapytania u<>ywaj<61>ce <H4><A name="4.22">4.22</A>) Dlaczego zapytania u<>ywaj<61>ce
<CODE><SMALL>IN</SMALL></CODE> sa takie wolne?</H4> <CODE><SMALL>IN</SMALL></CODE> sa takie wolne?</H4>
<P>Obecnie <20><>czymy podzapytania w outer queries poprzez sekwencyjne <P>W wersjach wcze<7A>niejszych ni<6E> 7.4 <20><>czymy podzapytania w outer queries
przeszukiwanie wynik<69>w podzapytania dla ka<6B>dego rz<72>du z outer query. poprzez sekwencyjne przeszukiwanie wynik<69>w podzapytania dla ka<6B>dego rz<72>du
Mo<EFBFBD>na to omin<69><6E> zast<73>puj<75>c <CODE>IN</CODE> przez z outer query. Je<4A>li podzapytanie zwraca jedynie kilka rz<72>d<EFBFBD>w a
zewn<77>trzne zapytanie zwraca ich wiele, IN jest najszybsze.
Aby przyspieszy<7A> inne zapytania mo<6D>na zast<73>pi<70> <CODE>IN</CODE> przez
<CODE>EXISTS</CODE>:</P> <CODE>EXISTS</CODE>:</P>
<PRE> <PRE>
<CODE>SELECT * <CODE>SELECT *
FROM tab FROM tab
WHERE col1 IN (SELECT col2 FROM TAB2) WHERE col IN (SELECT subcol FROM subtab)
</CODE> </CODE>
</PRE> </PRE>
na: na:
<PRE> <PRE>
<CODE>SELECT * <CODE>SELECT *
FROM tab FROM tab
WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2) WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col)
</CODE> </CODE>
</PRE> </PRE>
Mamy zamiar poprawi<77> to ograniczenie w przysz<73>ych wydaniach. <P>
Aby to rozwi<77>zanie by<62>o szybkie, subcol powinna by<62> kolumn<6D>
indeksowan<61>.
</P>
<P>
W wersji 7.4 i p<><70>niejszych, IN w rzeczywisto<74>ci u<>ywa tej samej
wyrafinowanej techniki <20><>czenia jak normalne zapytania i jest
preferowane nad u<>ywaniem EXISTS.
</P>
<H4><A name="4.23">4.23</A>) Jak wykona<6E> "outer join"?</H4> <H4><A name="4.23">4.23</A>) Jak wykona<6E> "outer join"?</H4>
<P>PostgreSQL 7.1 i p<><70>niejsze wersje maj<61> zaimplementowane outer join <P>PostgreSQL ma zaimplementowane outer join
wykorzystuj<75>c standardow<6F> sk<73>adnie SQL. Poni<6E>ej dwa przyk<79>ady:</P> wykorzystuj<75>c standardow<6F> sk<73>adni<EFBFBD> SQL. Poni<6E>ej dwa przyk<79>ady:</P>
<PRE> <PRE>
SELECT * SELECT *
@ -1367,7 +1446,7 @@ BYTEA bytea zmiennej d
</PRE> </PRE>
<P>Te dwa identyczne zapytania <20><>cz<63> kolumn<6D> t1.col z kolumn<6D> t2.col, <P>Te dwa identyczne zapytania <20><>cz<63> kolumn<6D> t1.col z kolumn<6D> t2.col,
ale tak<61>e zwr<77>c<EFBFBD> niepo<70><6F>czone rz<72>dy w t1 (te kt<6B>re nie pasuj<75> w t2). ale tak<61>e zwr<77>c<EFBFBD> niepo<70><6F>czone rz<72>dy w t1 (te, kt<6B>re nie pasuj<75> w t2).
<SMALL>RIGHT</SMALL> join doda<64>by niepo<70><6F>czone rz<72>dy z tabeli t2. <SMALL>RIGHT</SMALL> join doda<64>by niepo<70><6F>czone rz<72>dy z tabeli t2.
<SMALL>FULL</SMALL> join zwr<77>ci<63>by rz<72>dy plus dodatkowo wszystkie <SMALL>FULL</SMALL> join zwr<77>ci<63>by rz<72>dy plus dodatkowo wszystkie
rz<72>dy z tabel t1 i t2. S<>owo <SMALL>OUTER</SMALL> jest opcjonalne i rz<72>dy z tabel t1 i t2. S<>owo <SMALL>OUTER</SMALL> jest opcjonalne i
@ -1401,18 +1480,62 @@ BYTEA bytea zmiennej d
katalogi systemowe, nie jest do ko<6B>ca jasne jak zapytanie pomi<6D>dzy katalogi systemowe, nie jest do ko<6B>ca jasne jak zapytanie pomi<6D>dzy
r<><72>nymi bazami danych powinno si<73> zachowywa<77>.</P> r<><72>nymi bazami danych powinno si<73> zachowywa<77>.</P>
<P>Oczywi<EFBFBD>cie klient mo<6D>e <20><>czy<7A> si<73> z r<><72>nymi bazami danych i <20><>czy<7A> <P><I>contrib/dblink</I> pozwala na wykonywanie zapyta<74> poprzez r<><72>ne
informacj<EFBFBD> w ten spos<6F>b uzyskan<61>.</P> bazy danych wywo<77>uj<75>c odpowiednie funkcje. Oczywi<77>cie klient mo<6D>e <20><>czy<7A>
si<73> z r<><72>nymi bazami danych i <20><>czy<7A> informacj<63> w ten spos<6F>b uzyskan<61>
po stronie klienta.</P>
<H4><A name="4.25">4.25</A>) Jak zwr<77>ci<63> w funkcji wiele rz<72>d<EFBFBD>w lub <H4><A name="4.25">4.25</A>) Jak zwr<77>ci<63> w funkcji wiele rz<72>d<EFBFBD>w lub
kolumn?</H4> kolumn?</H4>
<P>Mo<EFBFBD>esz zwraca<EFBFBD> zbiory z funkcji PL/pgSQL u<>ywaj<61>c <P>Mo<EFBFBD>esz w <20>atwy spos<6F>b zwraca<63> wiele rz<72>d<EFBFBD>w lub kolumn u<>ywaj<61>c
<i>refcursors</i>. Zobacz <a funkcji z: <A HREF="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</A>.
href="http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html">
http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html,</a>
sekcj<63> 23.7.3.3.</P>
<H4><A name="4.26">4.26</A>) Dlaczego nie mog<6F> w spos<6F>b pewny
tworzy<7A>/usuwa<77> tabel tymczasowych w funkcjach PL/PgSQL?</H4>
<P>
PL/PgSQL przechowuje w cache zawarto<74><6F> funkcji, niepo<70><6F>danym efektem tego
jest to, <20>e gdy taka funkcja korzysta z tabel tymczasowych, kt<6B>re s<>
p<><70>niej kasowane i odtwarzane, a funkcja wywo<77>ywana jest ponownie,jej
wywo<77>anie nie powiedzie si<73> poniewa<77> cachowana funkcja wci<63><69> b<>dzie
wskazywa<77> na stara tablic<69> tymczasow<6F>. Rozwi<77>zaniem tego problemu jest
u<>ywanie EXECUTE aby korzysta<74> z tabel tymczasowych w PL/PgSQL. To
spowoduje, <20>e zapytanie b<>dzie parsowane przy ka<6B>dym wywo<77>aniu
funkcji.
</P>
<H4><A name="4.27">4.27) Jakie s<> mo<6D>liwo<77>ci replikacji w PostgreSQL?</H4>
<P>
Jest kilka opcji aby stosowa<77> replikacj<63> typu master/slave. Ten typ
pozwala jedynie masterowi na dokonywanie zmian w bazie danych, a
slave mo<6D>e jedynie te zmiany odczytywa<77>. Na stronie
<A
HREF="http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research</A>
znajduje si<73> ich lista. Replikacja typu multi-master jest w trakcie
prac, opis projektu znajduje si<73> 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<6D>liwo<77>ci szyfrowania oferuje
PostgreSQL?</H4>
<P>
<UL>
<LI>contrib/pgcrypto zawiera wiele funkcji za pomoc<6F>, kt<6B>rych mo<6D>emy u<>ywa<77>
kryptografii w zapytaniach SQL.
<LI>Aby szyfrowa<77> transmisj<73> od klienta do serwera, ten musi mie<69>
ustawion<6F> opcj<63> ssl na true w pliku postgresql.conf, odpowiedni
wpis host lub hostssl musi wyst<73>powa<77> w pliku pg_hba.conf, oraz
sslmode nie mo<6D>e by<62> wy<77><79>czone w kliencie. (Warto zwr<77>ci<63> uwag<61>, <20>e
mo<6D>liwe jest tak<61>e u<>ywanie transport<72>w szyfruj<75>c<EFBFBD>w przez strony
trzecie, takie jak stunnel lub ssh, poza natywnym wsparciem dla SSL
przez PostgreSQL).
<LI>Has<EFBFBD>a u<>ytkownik<69>w bazy danych s<> automatycznie szyfrowane od
wersji 7.3. W poprzednich wersjach, nale<6C>y t<> funkcjonalno<6E><6F> poprzez
w<><77>czenie opcji PASSWORD_ENCRYPTION w postgresql.conf.
<LI>Serwer mo<6D>e dzia<69>a<EFBFBD> u<>ywaj<61>c szyfrowanego systemu plik<69>w.
</UL>
</P>
<H2 align="center">Rozwijanie PostgreSQL</H2> <H2 align="center">Rozwijanie PostgreSQL</H2>
@ -1432,8 +1555,12 @@ BYTEA bytea zmiennej d
<H4><A name="5.3">5.3</A>) Jak napisa<73> funkcj<63> C zwracaj<61>c<EFBFBD> krotk<74> <H4><A name="5.3">5.3</A>) Jak napisa<73> funkcj<63> C zwracaj<61>c<EFBFBD> krotk<74>
(tuple)?</H4> (tuple)?</H4>
<P>To wymaga wysi<73>ku tak olbrzymiego, <20>e nawet autorzy nigdy tego nie <P>
prubowali, chocia<69> z zalo<6C>e<EFBFBD> wynika, <20>e jest to mo<6D>liwe.</P> W wersjach PostgreSQL od numeru 7.3, funckje zwracaj<61>ce tabele s<> w
p<>lni wspierane w C, PL/PgSQL i SQL. Sprawd<77> w Programmer's Guide aby
uzyska<6B> wi<77>cej informacji. Przyk<79>ad funkcji napisanej w C zwracaj<61>cej
tabel<65> zosta<74> umieszczony w <I>contrib/tablefunc</I>.
</P>
<H4><A name="5.4">5.4</A>) Zmieni<6E>em plik <20>r<EFBFBD>d<EFBFBD>owy. Dlaczego po <H4><A name="5.4">5.4</A>) Zmieni<6E>em plik <20>r<EFBFBD>d<EFBFBD>owy. Dlaczego po
rekompilacji nie wida<64> zmiany?</H4> rekompilacji nie wida<64> zmiany?</H4>
@ -1443,6 +1570,8 @@ BYTEA bytea zmiennej d
<I>make clean</I>, a nast<73>pnie ponownie <I>make</I>. <I>make clean</I>, a nast<73>pnie ponownie <I>make</I>.
Je<4A>li u<>ywasz <SMALL>GCC</SMALL> mo<6D>esz u<>y<EFBFBD> opcji Je<4A>li u<>ywasz <SMALL>GCC</SMALL> mo<6D>esz u<>y<EFBFBD> opcji
<I>--enable-depend</I> przy wykonywaniu <I>configure</I> aby <I>--enable-depend</I> przy wykonywaniu <I>configure</I> aby
kompilator m<>g<EFBFBD> okre<72>li<6C> zale<6C>no<6E>ci samodzielnie.
</P>
</BODY> </BODY>
</HTML> </HTML>

View File

@ -12,7 +12,7 @@
<BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff"> <BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff">
<H1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> PostgreSQL</H1> <H1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> PostgreSQL</H1>
<P><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD> 19 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 11:50:04 EDT 2003</P> <P><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 16:42:01 EDT 2003</P>
<P><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Bruce Momjian) (<A href= <P><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Bruce Momjian) (<A href=
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
@ -35,7 +35,7 @@
<A href="#1.4">1.4</A>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> Unix <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<BR> <A href="#1.4">1.4</A>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> Unix <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<BR>
<A href="#1.5">1.5</A>) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> PostgreSQL?<BR> <A href="#1.5">1.5</A>) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> PostgreSQL?<BR>
<A href="#1.6">1.6</A>) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<BR> <A href="#1.6">1.6</A>) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<BR>
<A href="#1.7">1.7</A>) <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<BR> <A href="#1.7">1.7</A>) <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<BR>
<A href="#1.8">1.8</A>) <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<BR> <A href="#1.8">1.8</A>) <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<BR>
<A href="#1.9">1.9</A>) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <A href="#1.9">1.9</A>) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<BR> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<BR>
@ -320,7 +320,7 @@
<A href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A> <A href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A>
</BLOCKQUOTE> </BLOCKQUOTE>
<P><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IRC <20><><EFBFBD><EFBFBD><EFBFBD> <20><> EFNet <20> Freenode, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <P><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IRC <20><><EFBFBD><EFBFBD><EFBFBD> <20><> Freenode <20> EFNet, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<I>#PostgreSQL</I>. <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Unix <I>#PostgreSQL</I>. <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Unix
<CODE>irc -c '#PostgreSQL' "$USER" irc.phoenix.net.</CODE> <20><><EFBFBD> <CODE>irc -c '#PostgreSQL' "$USER" irc.phoenix.net.</CODE> <20><><EFBFBD>
<CODE>irc -c '#PostgreSQL' "$USER" irc.freenode.net.</CODE></P> <CODE>irc -c '#PostgreSQL' "$USER" irc.freenode.net.</CODE></P>
@ -330,7 +330,7 @@
<H4><A name="1.7">1.7</A>) <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?</H4> <H4><A name="1.7">1.7</A>) <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?</H4>
<P><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PostgreSQL - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 7.4.</P> <P><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PostgreSQL - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 7.4.1</P>
<P><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6-8 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.</P> <P><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6-8 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.</P>
@ -565,11 +565,10 @@
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?</H4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?</H4>
<P><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> PostgreSQL. <P><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> PostgreSQL.
<20><><EFBFBD> PgAccess (<A href="http://www.pgaccess.org/">http://www.pgaccess.org</A>, <20><><EFBFBD> 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>, PgAdmin III (<A href="http://www.pgadmin.org/">http://www.pgadmin.org</A>),
Win32-only), RHDB Admin (<A href="http://sources.redhat.com/rhdb/"> RHDB Admin (<A href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/</A>)
http://sources.redhat.com/rhdb/</A>) <20> Rekall <EFBFBD> Rekall (<A href="http://www.thekompany.com/products/rekall/">
(<A href="http://www.thekompany.com/products/rekall/">
http://www.thekompany.com/products/rekall/</A>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>). <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> http://www.thekompany.com/products/rekall/</A>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>). <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
PHPPgAdmin (<A href="http://phppgadmin.sourceforge.net/"> PHPPgAdmin (<A href="http://phppgadmin.sourceforge.net/">
http://phppgadmin.sourceforge.net/</A>) - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> PostgreSQL, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> http://phppgadmin.sourceforge.net/</A>) - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> PostgreSQL, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

View File

@ -3,8 +3,8 @@
/* /*
* Parts of pg_config.h that you get with autoconf on other systems * Parts of pg_config.h that you get with autoconf on other systems
*/ */
#define PG_VERSION "7.4.1" #define PG_VERSION "7.4.2"
#define PG_VERSION_STR "7.4.1 (win32)" #define PG_VERSION_STR "7.4.2 (win32)"
#define SYSCONFDIR "" #define SYSCONFDIR ""

View File

@ -1,8 +1,8 @@
#include <winver.h> #include <winver.h>
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 7,4,1,0 FILEVERSION 7,4,2,0
PRODUCTVERSION 7,4,1,0 PRODUCTVERSION 7,4,2,0
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
FILEFLAGS 0 FILEFLAGS 0
FILEOS VOS__WINDOWS32 FILEOS VOS__WINDOWS32
@ -15,13 +15,13 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "\0" VALUE "CompanyName", "\0"
VALUE "FileDescription", "PostgreSQL Access Library\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 "InternalName", "libpq\0"
VALUE "LegalCopyright", "Copyright (C) 2003\0" VALUE "LegalCopyright", "Copyright (C) 2003\0"
VALUE "LegalTrademarks", "\0" VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "libpq.dll\0" VALUE "OriginalFilename", "libpq.dll\0"
VALUE "ProductName", "PostgreSQL\0" VALUE "ProductName", "PostgreSQL\0"
VALUE "ProductVersion", "7, 4, 1, 0\0" VALUE "ProductVersion", "7, 4, 2, 0\0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"