summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian2004-03-05 19:29:23 +0000
committerBruce Momjian2004-03-05 19:29:23 +0000
commitaef037723f8176008a69bff9496551c9f99a4f91 (patch)
tree959cfff91441f282142b668116f3c797dbf441a0
parent3783ed34202dc32946a0a22383c9d0488ed2b67f (diff)
Update Polish FAQ, from Marcin Mazurek.
-rw-r--r--doc/FAQ_polish444
-rw-r--r--doc/src/FAQ/FAQ_polish.html511
2 files changed, 594 insertions, 361 deletions
diff --git a/doc/FAQ_polish b/doc/FAQ_polish
index d89b8ea7abe..f98902093c5 100644
--- a/doc/FAQ_polish
+++ b/doc/FAQ_polish
@@ -1,18 +1,19 @@
Frequently Asked Questions (FAQ) o PostgreSQL
- Ostatnia aktualizacja: Thu Apr 18 00:44:51 EDT 2002
+ Ostatnia aktualizacja: Sobota Luty 7 22:16:21 EST 2004
+
+ Ostatnia aktualizacja tl/umaczenia: Piatek Marzec 5 19:31:12 EST 2004
Obecny maintainer: Bruce Momjian ([email protected])
Tl/umaczenie: Marcin Mazurek ([email protected])
Najbardziej aktualna wersje tego dokumentu mozna znalezc pod adresem:
- http://www.PostgreSQL.org/docs/faq-english.html.
+ http://www.PostgreSQL.org/docs/faqs/FAQ.html.
Odpowiedzi na pytania dotyczace konkretnych system�w operacyjnych
- mozna znalezc pod adresem:
- http://www.PostgreSQL.org/users-lounge/docs/faq.html.
+ mozna znalezc pod adresem: http://www.PostgreSQL.org/docs/index.html.
_________________________________________________________________
Pytania og�lne
@@ -40,18 +41,17 @@
2.1) Czy sa jakies driwery ODBC dla PostgreSQL?
2.2) Jakie istnieja narzedzia pozwalajace na dostep do PostgreSQL
przez www?
- 2.3) Czy istnieje jakies GUI dla PostgreSQL? Narzedzie do
- raportowania? Interfejs dla "embedded query language"?
+ 2.3) Czy istnieje jakies GUI dla PostgreSQL?
2.4) Za pomoca jakich jezyk�w programowania mozna sie komunikowac z
PostgreSQL?
- Pytania administratora
+ Pytania dotyczace administracji
3.1) Jak moge zainstalowac PostgreSQL w innej lokalizacji niz
/usr/local/pgsql?
3.2) Podczas startu postmaster'a, otrzymuje komunikat: Bad System Call
lub "core dumped". Dlaczego?
- 3.3) Podczas startu postmaster'a, otrzymuje komunikato bl/edzie:
+ 3.3) Podczas startu postmaster'a, otrzymuje komunikat o bl/edzie:
IpcMemoryCreate. Dlaczego?
3.4) Podczas startu postmaster'a, otrzymuje komunikat o bl/edzie:
IpcSemaphoreCreate. Dlaczego?
@@ -61,8 +61,9 @@
3.7) Jakie sa mozliwosci wyszukiwania bl/ed�w?
3.8) Skad sie bierze komunikat: "Sorry, too many clients" podczas
pr�by pol/aczenia sie z baza danych?
- 3.9) Co to za pliki typu pg_sorttempNNN.NN , kt�re znajduja sie w
- katalogu z plikami bazy danych?
+ 3.9) Jakie pliki znajduja sie w pg_temp?
+ 3.10) Dlaczego konieczne jest przy upgradzie PostgreSQL korzystanie ze
+ skrypt�w dump i restore?
Pytania dotyczace uzytkowania
@@ -72,7 +73,7 @@
zapytania?
4.3) Jak moge uzyskac liste wszystkich tabel czy innych rzeczy pod
psql?
- 4.4) Jak usunac kolumne z tabeli?
+ 4.4) Jak usunac kolumne z tabeli lub zmienic jej typ?
4.5) Jaki jest maksymalny rozmiar dla rzedu, tabeli i bazy danych?
4.6) Jak duzo miejsca w bazie danych jest potrzebne aby przechowac
dane ze zwyczajnego pliku tekstowego?
@@ -110,6 +111,10 @@
4.23) Jak wykonac "outer join"?
4.24) Jak wykonywac zapytanie uzywajace kilku baz danych jednoczesnie?
4.25) Jak zwr�cic w funkcji wiele rzed�w lub kolumn?
+ 4.26) Dlaczego nie moge w spos�b pewny tworzyc/usuwac tabel
+ tymczasowych w funkcjach PL/PgSQL?
+ 4.27) Jakie sa mozliwosci replikacji w PostgreSQL?
+ 4.28) Jakie mozliwosci szyfrowania oferuje PostgreSQL?
Rozwijanie PostgreSQL
@@ -125,7 +130,8 @@
1.1) Co to jest PostgreSQL? Jak to wymawiac?
- PostgreSQL wymawia sie Post-Gres-kju-el.
+ PostgreSQL wymawia sie Post-Gres-kju-el. Czesto podczas rozm�w uzywany
+ jest termin "Postgres"
PostgreSQL jest rozszerzeniem systemu zarzadzania bazami danych -
POSTGRES, kolejna generacja rozwojowego prototypu DBMS. Mimo, ze
@@ -137,11 +143,13 @@
Rozw�j PostgreSQL jest prowadzony przez grupe ludzi z Internetu,
komunikujacych sie poprzez mailowe listy dyskusyjne PostgreSQL.
Obecnym koordynatorem jest Marc G. Fournier ([email protected]).
- (Zobacz ponizej jak sie przyl/aczyc). Ta grupa ludzi jest
- odpowiedzialna za cal/y rozw�j PostgreSQL.
+ (Zobacz pytanie 1.6 jak sie przyl/aczyc). Ta grupa ludzi jest
+ odpowiedzialna za cal/y rozw�j PostgreSQL. PostgreSQL jest projektem
+ nie kontrolowanym przez zadna firme, aby wziac udzial/ w jego rozwoju
+ sprawdz, http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html
Autorami PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. Wiele innych
- os�b pomogl/o przy portowaniu, testowaniu, debugowaniu, i rozwijaniu
+ os�b pomogl/o przy portowaniu, testowaniu, debugowaniu i rozwijaniu
kodu. Oryginalny kod Postgresa, na kt�rym zostal/ oparty PostgreSQL,
byl/ wysil/kiem student�w oraz pracownik�w pracujacych pod
kierownictwem profesora Michael'a Stonebraker'a z University of
@@ -194,11 +202,11 @@
Klient
- Mozliwa jest kompilacja bibliteki C libpq C, psql oraz innych
+ Mozliwa jest kompilacja bibliteki C libpq, psql oraz innych
interfejs�w i uruchamianie ich na platformie MS Windows. W tym wypadku
klient jest uruchamiany na MS Windows a z serwerem komunikuje sie
poprzez TCP/IP. Serwer moze dzial/ac na dowolnej wspieranej platformie
- Unixowej. Plik win31.mak jest dol/aczony do zr�del/, aby mozna byl/o
+ Unixowej. Plik win32.mak jest dol/aczony do zr�del/, aby mozna byl/o
stworzyc biblioteke libpq oraz program psql dzial/ajace w srodowisku
Win32. PostgreSQL moze sie takze komunikowac z klientami ODBC.
@@ -206,9 +214,17 @@
Serwer moze byc uruchamiany na Windows NT i Win2k uzywajac bibliotek
Cygwin, Cygnus Unix/NT. W pliku pgsql/doc/FAQ_MSWIN znajdujacym sie w
- zr�dl/ach lub pod adresem: MS Windows FAQ na naszych stronach. Nie
- planujemy tworzyc portu przeznaczonego docelowo dla platformy
- Microsoft.
+ zr�dl/ach lub pod adresem:
+ http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN na naszych
+ stronach.
+
+ Obecnie prowadzone sa prace nad stworzeniem wersji dla MS Win
+ NT/200/XP. Jesli chcesz sie dowiedziec o obecnym statusie tych prac
+ zobacz http://techdocs.postgresql.org/guides/Windows and
+ http://momjian.postgresql.org/main/writings/pgsql/win32.html.
+
+ Istnieje takze port pod Novell Netware 6 dostepny pod adresem
+ http://forge.novell.com.
1.5) Skad mozna sciagnac PostgreSQL?
@@ -258,31 +274,31 @@
irc.phoenix.net.
Lista firm oferujacych wsparcie na zasadach komercyjnych znajduje sie
- pod adresem:
- http://www.postgresql.org/users-lounge/commercial-support.html.
+ pod adresem: http://techdocs.postgresql.org/companies.php.
1.7) Jaka jest ostatnia dostepna wersja?
- Ostatnia dostepna wersja PostgreSQL to 7.2.1.
+ Ostatnia dostepna wersja PostgreSQL to 7.4.1.
- Planujemy publikowanie kolejnych wersji co cztery miesiace.
+ Planujemy publikowanie kolejnych wersji co szesc do osmiu miesiecy.
1.8) Jaka dokumentacja jest dostepna?
Kilka manuali, stron podecznika man, oraz kilka przykl/ad�w do
testowania sa zal/aczone w samej dystrybucji. Znajduja sie one w
katalogu /doc. Manual moze byc takze przegladany poprzez strony www
- pod adresem http://www.PostgreSQL.org/users-lounge/docs/.
+ pod adresem http://www.PostgreSQL.org/docs.
Istnieja takze dwie ksiazki dostepne online pod adresami
http://www.PostgreSQL.org/docs/awbook.html i
http://www.commandprompt.com/ppbook/. Lista ksiazek o PostgreSQL,
kt�re mozna kupic znajduje sie pod adresem
- http://www.postgresql.org/books/. Zbi�r technicznych artykul/�w o
- PostgreSQL znajduje sie pod adresem http://techdocs.postgresql.org/.
+ http://techdocs.PostgreSQL.org/techdocs/bookreviews.php. Zbi�r
+ technicznych artykul/�w o PostgreSQL znajduje sie pod adresem
+ http://techdocs.postgresql.org/.
psql posiada kilka wbudowanych polecen \d, za pomoca kt�rych mozna
- sprawdzic informacje dotyczace typ�w, operator�w, funkcji, aggregat�w
+ sprawdzic informacje dotyczace typ�w, operator�w, funkcji, agregat�w
itd.
Na naszej stronie mozna znalezc duzo wiecej dokumentacji.
@@ -327,7 +343,8 @@
Jest okol/o 12 os�b, kt�re maja uprawnienia do commit'owania w CVS
PostgreSQL'a. Kazdy z nich submitowal/ tak wiele wysokiej jakosci
patchy, ze stal/o sie niemozliwe dla obecnych commiter�w byc z nimi na
- biezaco, majac pewnosc ze sa to poprawki wysokiej jakosci.
+ biezaco, wiec musielismy im ufac i miec pewnosc, ze ich poprawki sa
+ wysokiej jakosci.
1.13) Jak moge zgl/aszac bl/edy?
@@ -349,44 +366,33 @@
integrity, oraz wyrafinowany system blokowania. Mamy takze
wl/asciowsci kt�rych inni nie posiadaja, jak typy definiowane
przez uzytkownika, dziedziczenie, rules, multi-version
- concurrency control, kt�ra redukuje problemy z blokowaiem (lock
- contention).
+ concurrency control, kt�ra redukuje problemy z blokowaniem
+ (lock contention).
Wydajnosc
- PostgreSQL dzial/a w dw�ch trybach. Standardowy tryb fsync
- zrzuca kazda zakonczona transakcje na dysk, gwarantujac w ten
- spos�b to, ze jesli system operacyjny sie zawiesi lub straci
- zasilanie wciagu kilku nastepnych sekund, wszystkie Twoje dane
- zostana bezpiecznie zapisane na dysku. W tym trybie, jestesmy
- wolniejsi niz wiekszosc komercyjnych baz danych, czesciowo
- dlatego ze niewiele z nich wykonuje taki spos�b zapisywania
- danych jako domyslne ustawienie. W trybie no-fsync z regul/y
- jestesmy szybsi niz komercyjne bazy danych, chociaz w tym
- wypadku zawieszenie sie systemu moze spowodowac uszkodzenie
- danych. Pracujemy nad tym, aby stworzyc posredni tryb, kt�ry
- powoduje mniejsza redukcje wydajnosci niz tryb fsync i pozwoli
- na integralnosc danych w przeciagu 30 sekund do zal/amania sie
- systemu operacyjnego.
- Por�wnujac do MySQL czy innych prostych baz danych, jestesmy
- wolniejsi przy wykonywaniu insert�w/updat�w przez narzut
- spowodowany przez transakcje. Oczywiscie MySQL nie posiada
- zadnej z wymienionych wyzej mozliwosci. PostgreSQL zostal/
- zbudowany aby byc DBMS elastycznym i bogatym z r�znorakie
- mozliwosci, aczkolwiek dbamy, aby poprawiac jego wydajnosc
- poprzez analize kodu zr�dl/owego i profilowanie. Ciekawe
- por�wnanie PostgreSQL i MySQL mozna znalezc pod adresem
- http://openacs.org/why-not-mysql.html
- Kazde pol/aczenie klienta jest obsl/ugiwane przez nas poprzez
- stworzenie nowego procesu Unixowego. Procesy backendu dziela
- bufory danych oraz informacje o blokadach. Uzywajac wielu
- procesor�w, r�zne backendy moga bez problemu dzial/ac na
- r�znych procesorach.
+ Wydajnosc PostgreSQL jest podobna do innych komercyjnych i open
+ source baz danych. W niekt�rych sytuacjach jest szybszy w
+ niekt�rych wolniejszy. W por�wnianiu do MySQL lub mniejszych
+ baz danych jestesmy szybsi przy wielu uzytkownikach,
+ skomplikowaych zapytaniach i duzym obciazeniu podczas. MySQL
+ jest szybszy dla prostych SELECT�w wykonywanych przez niewielu
+ uzytkownik�w. Spowodowane jest to narzutem, kt�ry sie pojawia
+ przy transakcjach. Oczywiscie MySQL nie ma wiekszosci z
+ rozwiazan opisanych powyzej w sekcji Mozliwosci . PostgreSQL
+ zostal/ stworzony z mysla o stabilnosci, oraz szerokiej gamie
+ mozliwosci, ale mimo to staramy sie w kazdej wersji poprawiac
+ jego wydajnosc. Ciekawe por�wnanie PostgreSQL i MySQL mozna
+ znalezc pod adresem
+ http://openacs.org/philosophy/why-not-mysql.html Dodatkowo,
+ MySQL jest firma, kt�ra dystrybuuje jej produkty poprzez zasade
+ Open Source i wymaga wykupienia licencji w przypadku tworzenia
+ close-source software, co ie ma miejsca w przypadku PostgreSQL.
Stabilnosc
Zdajemy sobie sprawe, ze DBMS musi byc stabilny, w przeciwnym
wypadku jest bez wartosci. Staramy sie publikowac kod stabilny,
dobrze przetestowany, z minimum mozliwych bl/ed�w. Kazde
- wydanie poprzedza conajmniej miesiac test�w wersji beta.
+ wydanie poprzedza co najmniej miesiac test�w wersji beta.
Patrzac na historie wydan PostgreSQL widac, ze dostarczamy
stabilne, dobrze sprawdzone wersje, kt�re sa gotowe do uzycia w
srodowisku produkcyjnym. Myslimy, ze proces publikowania
@@ -415,9 +421,9 @@
1.15) W jaki spos�b moge wesprzec finansowo PostgreSQL?
PostgreSQL korzysta z najlepszej infrastruktury od samego poczatku
- istnienia projektu, tzn. szesciu lat. Wszystko to zawdzieczamy
- Marc'owi Fournier'owi, kt�ry stworzyl/ ta infrastrukture i zarzadza
- nia od lat.
+ istnienia projektu, czyli roku 1996 kiedy rozpoczelismy prace.
+ Wszystko to zawdzieczamy Marc'owi Fournier'owi, kt�ry stworzyl/ ta
+ infrastrukture i zarzadza nia od lat.
Wysokiej jakosci infrastruktura jest bardzo wazna dla kazdego projektu
open-source. Zapobiega przerwom w rozwoju projektu i jakimkolwiek
@@ -427,7 +433,7 @@
tanie. Istnieje wiele r�znych miesiecznych, czy jednorazowych
wydatk�w, kt�re trzeba ponosic aby wszystko dzial/al/o jak nalezy.
Jesli Ty, badz Twoja firma moze wspom�c finansowo rozw�j PostgreSQL
- odwiedz adres: http://www.pgsql.com/pg_goodies gdzie opisane jest jak
+ odwiedz adres: http://store.pgsql.com/shopping/ gdzie opisane jest jak
to zrobic.
Chociaz na stronie wspomniana jest nazwa PostgreSQL Inc, "datki" sa
@@ -436,69 +442,72 @@
wysl/ac czek na adres kontaktowy.
_________________________________________________________________
+ Jesli mozesz sie pochwalic udanymi wdrozeniami PostgreSQL, prosimy
+ abys zgl/osil/ nam to na stronie: http://advocacy.postgresql.org.
+
User Client Questions
2.1) Czy sa jakies driwery ODBC dla PostgreSQL?
Dostepne sa dwa driwery ODBC: PsqlODBC i OpenLink ODBC.
- PsqlODBC jest dol/aczony do zr�del/. Wiecej informacji na jego temat
- mozesz znalezc pod adresem: ftp://ftp.PostgreSQL.org/pub/odbc/.
+ Mozesz pobrac PsqlODBC z adresu
+ http://gborg.postgresql.org/project/psqlodbc/projdisplay.php
OpenLink ODBC moze byc pobrany z adresu: http://www.openlinksw.com.
Wsp�l/pracuje ze standardowym oprogramowaniem klienckim ODBC wiec w
ten spos�b mozesz korzystac z PostgreSQL ODBC dostepnego na kazdej
- plaformie kt�ra wspiera (Win, Mac, Unix, VMS).
+ pltaformie kt�ra wspiera (Win, Mac, Unix, VMS).
Autorzy beda prawdopodobnie sprzedawac ten produkt osobom kt�re
wymagaja komercyjnego wsparcia, ale wersja darmowa bedzie zawsze
dostepna. Wszystkie pytania mozesz wysyl/ac na adres:
- Sprawdz takze rozdzial/ o ODBC w "Programmer's Guide".
-
2.2) Jakie istnieja narzedzia pozwalajace na dostep do PostgreSQL przez
www?
Dobry podrecznik dla poczatkujacych o dostepie do bazy danych przez
www mozesz znalezc pod adresem: http://www.webreview.com
- Inny znajduje sie pod adresem: http://www.phone.net/home/mwm/hotlist/.
-
Do integracji z www, swietnym rozwiazaniem jest PHP. Mozesz znalezc
wiecej informacji na ten temat pod adresem http://www.php.net.
Wiele os�b w przypadku skomplikowanych rozwiazan uzywa Perl'a i
- modul/u CGI.pl.
+ modul/u CGI.pl lub mod_perl.
- 2.3) Czy istnieje jakies GUI dla PostgreSQL? Narzedzie do raportowania?
- Interfejs dla "embedded query language"?
+ 2.3) Czy istnieje jakies GUI dla PostgreSQL?
- Mamy cal/kiem mil/y interfejs graficzny, kt�ry zostal/ nazwany
- pgaccess i jest on dostarczany jako czesc zr�del/. pgaccess posiada
- takze generator raport�w. Mozna go znalezc pod adresem
- http://www.flex.ro/pgaccess
+ Tak, istnieje kilka interfejs�w graficznych dla PostgreSQL. Wsr�d nich
+ PgAccess ( http://www.pgaccess.org), PgAdmin III
+ (http://www.pgadmin.org), RHDB Admin (http://sources.redhat.com/rhdb/
+ ) oraz Rekall ( http://www.thekompany.com/products/rekall/,
+ komercyjny). Istnieje takze PHPPgAdmin (
+ http://phppgadmin.sourceforge.net/ ), webowy interfejs dla PostgreSQL.
- Udostepnilismy takze ecpg, kt�ry jest "embedded SQL query language
- interface" dla jezyka C.
+ Wiecej informacji na ten temat znajduje sie pod adresem See
+ http://techdocs.postgresql.org/guides/GUITools.
2.4) Za pomoca jakich jezyk�w programowania mozna sie komunikowac z
PostgreSQL?
- Mamy wsparcie dla:
+ Najbardziej popularne jezyki posiiadaja wl/asny interfejs dla
+ PostgreSQL. Sprawdz liste rozszerzen dla intersujacego Ciebie jezyka
+ programowania.
+
+ Ze zr�dl/ami PostreSQL dystrubuowane sa interfejsy dla nastepujacych
+ jezyk�w programowania:
* C (libpq)
- * C++ (libpq++)
* Embedded C (ecpg)
* Java (jdbc)
- * Perl (perl5)
- * ODBC (odbc)
* Python (PyGreSQL)
* TCL (libpgtcl)
- * C Easy API (libpgeasy)
- * Embedded HTML (PHP z http://www.php.net)
+
+ Inne interfejsy sa dostepne pod adresem: http://gborg.postgresql.org w
+ sekcji Drivers/Interfaces.
_________________________________________________________________
- Pytania administratora
+ Pytania dotyczace administracji
3.1) Jak moge zainstalowac PostgreSQL w innej lokalizacji niz
/usr/local/pgsql?
@@ -566,7 +575,7 @@
pojedyncze INSERTy. Po drugie polecenia SQL nie zawarte w bloku
okreslajacym transakcje - BEGIN WORK/COMMIT, sa traktowane jako
pojedyncza transakcja. Rozwaz wykonanie kilku polecen/zdan SQL w
- jednym bloku transakcji. To redukuje narzut powodowany przez
+ jednym bloku transakcji. To redukuje narzut nakl/adany przez
transakcje. Przy duzych zmianach w danych, warto usunac i stworzyc na
nowo indeksy.
@@ -665,25 +674,36 @@
limit na maksymalna liczbe proces�w backendu to obawa o wyczerpanie
zasob�w systemu.
- W wersjach PostgreSQL wczesniejszych niz 6.5, maksymalna liczba
- backend�w byl/a ustawiona na 64, a zmiana tej wartosci wymaga
- rekompliacji po zmianie stal/ej MaxBackendId w pliku
- include/storage/sinvaladt.h.
-
- 3.9) Co to sa za pliki typu: pg_sorttempNNN.NN, kt�re znajduja sie w
- katalogu z plikami bazy danych?
+ 3.9) Jakie pliki znajduja sie w pg_temp?
- Sa to tymczasowe pliki utworzone przez executor. Dla przykl/adu, jesli
- jakas operacja sortowania jest wymagana do wykonania ORDER BY, a samo
- sortowanie wymaga wiecej miejsca niz paratmetr backendu -S ustawil/ do
- wykorzystania, wtedy tymczasowe pliki sa uzywane do przechowywania
- tych danych.
+ Katalog ten zawiera tymczasowe pliki utworzone przez executor. Dla
+ przykl/adu, jesli jakas operacja sortowania jest wymagana do wykonania
+ ORDER BY, a samo sortowanie wymaga wiecej miejsca niz parametr
+ backendu -S ustawil/ do wykorzystania, wtedy tymczasowe pliki sa
+ uzywane do przechowywania tych danych.
Pliki tymczasowe powinny byc usuniete automatycznie, ale mogl/o sie to
nie stac jesli proces backendu w miedzyczasie nie zakonczyl/ sie
poprawnie podczas operacji sortowania. Jesli w danym momencie nie
dzial/aja zadne procesy backend�w mozesz spokojnie usunac pliki
pg_tempNNN.NN.
+
+ 3.9) Dlaczego konieczne jest przy upgradzie PostgreSQL korzystanie ze
+ skrypt�w dump i restore?
+
+ Tw�rcy PostgreSQL dokonuja jedynie mal/ych zmian pomiedzy mal/ymi
+ upgradami wersji, np z 7.2 do 7.2.1, wtedy upgrade nie wymaga
+ korzystania z dump i restore. Przy wiekszych zmianach, np. z wersji
+ 7.2 do 7.3, czesto zmianymaja wpl/yw na format przechowywanych danych.
+ Zmiany te sa na tyle skomplikowane, ze nie utrzymujemy zgodosci z
+ poprzednimi wersjami PostgreSQL. dump pozwala na wydostanie danych w
+ takiej postaci, w kt�rej l/atwe jest ich zaimportowanie do nowszych
+ wersji bez kl/opotu.
+
+ W wydaniach gdzie zmiany nie dotycza formatu danych na dysku, mozna
+ wykorzystac skryptu pg_upgrade, do upgradu bez uzycia dump/restore.
+ Dokumentacja do danego wydania zawiera informacje czy mozliwe jest
+ uzycie pg_upgrade.
_________________________________________________________________
Pytania dotyczace uzywania
@@ -706,6 +726,13 @@
pierwszych rzed�w, byc moze bedzie koniecznosc wykonania zapytania do
momentu az zostana znalezione pozadane wyniki.
+ Aby otrzymac losowy rzad, uzyj:
+ SELECT col
+ FROM tab
+ ORDER BY random()
+ LIMIT 1;
+
+
4.3) Jak moge uzyskac liste wszystkich tabel czy innych rzeczy pod psql?
Mozesz sprawdzic zawartosc zr�del/ psql, a konkretnie plik
@@ -714,36 +741,44 @@
wtedy po wykonaniu polecenia z backslashem wyswietlane bedzie
zapytanie, kt�re w rzeczywistosci jest wykonywane.
- 4.4) Jak usunac kolumne z tabeli?
+ 4.4) Jak usunac kolumne z tabeli lub zmienic jej typ?
- Nie mamy zaimplementowanego ALTER TABLE DROP COLUMN, ale mozesz zrobic
- tak:
- SELECT ... -- wybierz zawartosc wszystkich kolumn poza ta jedna kt�rej chc
-esz sie pozbyc
+ DROP COLUMNT zostal/o dodane w wersji 7.3 przy poleceniu ALTER TABLE
+ DROP COLUMN. We wczesniejszych wersjach mozesz zrobic tak:
+ BEGIN;
+ LOCAL TABLE old_table;
+ SELECT ... -- wybierz wszystkie kolumny poza ta jedna kt�rej chcesz sie po
+zbyc
INTO TABLE new_table
FROM old_table;
DROP TABLE old_table;
ALTER TABLE new_table RENAME TO old_table;
+ Aby zmienic typ danych kolumny mozesz zrobic tak:
+ BEGIN;
+ ALTER TABLE tab ADD COLUMN new_col new_data_type;
+ UPDATE tab SET new_col = CAST(old_col AS new_data_type);
+ ALTER TABLE tab DROP COLUMN old_col;
+ COMMIT;
+
4.5) Jaki jest maksymalny rozmiar dla rzedu, tabeli i bazy danych?
Oto wszystkie ograniczenia:
- Maksymalny rozmiar dla bazdy danych? nieograniczony ( istnieja bazy dan
-ych o wielkosci 500 GB databases )
- Maksymalny rozmiar dla tabeli? 16 TB
- Maksymalny rozmiar dla rzedu? nieograniczony w 7.1 i p�zniejszyc
-h
- Maksymalny rozmiar pola? 1 GB w 7.1 and later
+ Maksymalny rozmiar dla bazdy danych? nieograniczony ( istnieja
+ bazy danych o wielkosci 32 TB databases )
+ Maksymalny rozmiar dla tabeli? 32 TB
+ Maksymalny rozmiar dla rzedu? 1.6 TB
+ Maksymalny rozmiar pola? 1 GB
Maksymalna liczba rzed�w w tabeli? nieograniczona
- Maksymalna liczba kolumn w tabeli? 250-1600 w zalezonosci od typ�w kolum
-n
- Makasymalna liczba indeks�w na tabeli? nieograniczona
+ Maksymalna liczba kolumn w tabeli? 250-1600 w zalezonosci od typ�w ko
+lumn
+ Makasymalna liczba indeks�w na tabeli? nieograniczona
Oczywiscie "nieograniczony" nie jest prawda tak do konca, istnieja
ograniczenia wynikajace z dostepnego miejsca na dysku, pamieci/swapa.
Kiedy wielkosci te beda bardzo duze moze odbic sie to na wydajnosci.
- Maksymalny rozmiar tabeli, czyli 16 TB nie wymaga od systemu
+ Maksymalny rozmiar tabeli, czyli 32 TB nie wymaga od systemu
operacyjnego wsparcia dla duzych plik�w. Duze tabele sa przechowywane
jako pliki o rozmiarze 1 GB, wiec ograniczenia co do wielkosci plik�w
narzucone przez system plik�w nie sa istotne.
@@ -786,6 +821,9 @@ n
zawieraja pewne dane, wiec w pewnych przypadkach moga byc cal/kiem
duze.
+ NULLe sa przechowywane jako mapy bitowe, wiec uzywaja bardzo mal/o
+ miejsca.
+
4.7) Jak moge sprawdzic jakie tabele, klucze, bazy danych i uzytkownicy sa
utworzeni?
@@ -821,14 +859,32 @@ n
sortowanie jest zazwyczaj szybsze nie wyszukiwanie za pomoca indeksu
na duzej tabeli.
Jakkolwiek LIMIT w pol/aczeniu z ORDER BY czesto bedzie wykorzystywal/
- indeks�w poniewaz jedynie mal/a czesc z tabeli jest zwracana.
+ indeksy poniewaz jedynie mal/a czesc z tabeli jest zwracana. W
+ rzeczywistosci, chociaz MAX() i MIN() nie uzywaja indeks�w, mozliwe
+ jest aby zwr�cic te wartosci uzywajac indeks�w poprzez uzycie ORDER BY
+ i LIMIT.
+ SELECT col
+ FROM tab
+ ORDER BY col [ DESC ]
+ LIMIT 1;
+
+ Jesli uwazasz, ze optimizer myli sie wybierajac sequential scan, uzyj
+ SET enable_seqscan TO 'off' i uruchom testy aby sprawdzic czy wtym
+ wypadku zapytanie bedzie szybciej wykonywane.
Kiedy uzywa sie operator�w dopasujacych takich jak LIKE lub ~, indeksy
- beda uzywane jedynie jesli poczatek wyszukiwania jest oparty na
- poczatku l/ancucha tekstu. Dlatego, aby uzywac indeks�w, dopasowania
- operatorem LIKE nie moga sie zaczynac %, a dopasowania operatorem ~
- (dopasowania regularne) musza sie zaczynac znakiem specjalnym ^.
-
+ beda uzywane jedynie w pewnych wypadkach:
+ * Poczatek wyszukiwania jest oparty na poczatku l/ancucha tekstu.
+ + wzorce LIKE nie moga sie zaczynac %
+ + dopasowania operatorem ~ (dopasowania regularne) musza sie
+ zaczynac znakiem specjalnym ^.
+ * Poczatek wyszukiwania nie moze sie zaczynac od klas znak�w, np.
+ [a-e].
+ * Case-insensitive searches such as ILIKE and ~* do not utilise
+ indexes. Instead, use functional indexes, which are described in
+ section 4.12.
+ * Standardowe locale C musi byc uzyte przy wykonywaniu initdb
+
4.9) Jak moge sprawdzic w jakis spos�b "query optimizer" wykonuje moje
zapytanie?
@@ -869,13 +925,12 @@ n
queries) bez wykorzystywania zasobozernego wyszukiwania.
4.12) Jak moge uzywac wyrazen regularnych w zapytaniach i zapytan
- case-insensitive w wyrazeniach regularnych? jak korzystac z indeks�w dla
+ case-insensitive w wyrazeniach regularnych? Jak korzystac z indeks�w dla
zapytan case-insensitive?
Operator ~ moze byc wykorzystywany do wyszukiwania za pomoca wyrazen
regularnych, a ~* do wyszukiwania case-insensitive z wyrazeniami
- regularnymi. Wariant case-insensitive dla LIKE zostal/ nazwany ILIKE i
- jest dostepny w PostgreSQL 7.1 i p�zniejszych wersjach.
+ regularnymi. Wariant case-insensitive dla LIKE zostal/ nazwany ILIKE.
Por�wnania case-insensitive sa zazwyczaj wykonywane w nastepujacy
spos�b:
@@ -897,31 +952,35 @@ n
Type Nazwa wewnetrzna Uwagi
--------------------------------------------------
-"char" char 1 znak
-CHAR(#) bpchar wypel/niane pustymi znakami do podanej dl/ug
-osci
-VARCHAR(#) varchar rozmiar okresla maksymalna dl/ugosc, nie ma
+VARCHAR(n) varchar rozmiar okresla maksymalna dl/ugosc, nie ma
tutaj wypel/niania
+CHAR(n) bpchar wypel/niane pustymi znakami do podanej dl/ug
+osci
TEXT text bez limitu na dl/ugosc l/ancucha
BYTEA bytea zmiennej dl/ugosci tablica bajt�w (null-byte
safe)
+"char" char 1 znak
Jesli bedziesz przegladac katalogi systemowe lub komunikaty o bl/edach
czesto spotkasz sie z podanymi powyzej nazwami wewnetrznymi.
- Ostatnie cztery typy powyzej to tzw typy "varlena" (np. pierwsze
+ Pierwsze cztery typy powyzej to tzw typy "varlena" (np. pierwsze
cztery bajty na dysku to dl/ugosc, po kt�rych jest data). Dlatego
faktyczna dl/ugosc takiego l/ancucha jest troche wieksza niz
zadeklarowany rozmiar. Te typy takze podlegaja kompresji lub moga byc
przechowywane out-of-line jako TOAST, wiec faktyczne zuzycie miejsca
na dysku moze byc mniejsze niz oczekiwane.
-
- CHAR() jast najlepszym typem do przechowywania l/ancuch�w o tej samej
- dl/ugosci. VARCHAR() jest najodpowiedniejszy do przechowywania
- l/ancuch�w o r�znej dl/ugosci ale okresla on maksymalna jego dl/ugosc.
- TEXT jest najlepszy dla l/ancuch�w o dowolnej dl/ugosci, nie
- przekraczajacej 1GB. BYTEA sl/uzy do przechowywania danych binarnych,
- w szczeg�lnosci dla danych zawierajacych NULL bajty.
+ VARCHAR(n) jest najodpowiedniejszy do przechowywania l/ancuch�w o
+ r�znej dl/ugosci ale okresla on maksymalna jego dl/ugosc. TEXT jest
+ najlepszy dla l/ancuch�w o dowolnej dl/ugosci, nie przekraczajacej
+ 1GB.
+
+ CHAR(n) jast najlepszym typem do przechowywania l/ancuch�w o tej samej
+ dl/ugosci. CHAR(n) wypel/nia dane do zadanej dl/ugosci, podczas gdy
+ VARCHAR(n) przechowuje jedynie dane dostarczone. BYTEA sl/uzy do
+ przechowywania danych binarnych, w szczeg�lnosci dla danych
+ zawierajacych NULL bajty. Wszystkie typy opisane tutaj maja podobne
+ charakterystyki jesli chodzi o wydajnosc.
4.15.1) Jak moge utworzyc pole kt�re samo zwieksza swoja wartosc?
@@ -1039,16 +1098,16 @@ BYTEA bytea zmiennej dl/ugosci tablica bajt�w (null-byte
* range variable, table name, table alias
Liste termin�w zwiazanych z bazami danych mozesz znalezc pod tym
- adresem:http://www.comptechnews.com/~reaster/dbdesign.html
+ adresem:http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/
+ glossary/glossary.html.
4.18) Skad bierze sie ten bl/ad "ERROR: Memory exhausted in
AllocSetAlloc()"?
- Jesli uzywasz wersji starszej niz 7.1, upgrade moze rozwiazac ten
- problem. Jest takze mozliwe, ze po prostu wyczerpal/a Ci sie pamiec
- wirtualna (virtual memory) w systemie lub Tw�j kernel ma zbyt nisko
- ustawione limity dla pewnych zasob�w. Spr�buj wykonac nastepujace
- polecenia zanim uruchomisz postmaster'a:
+ Prawdopodobnie wyczerpal/a Ci sie pamiec wirtualna (virtual memory) w
+ systemie lub Tw�j kernel ma zbyt nisko ustawione limity dla pewnych
+ zasob�w. Spr�buj wykonac nastepujace polecenia zanim uruchomisz
+ postmaster'a:
ulimit -d 262144
limit datasize 256m
@@ -1087,24 +1146,31 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
4.22) Dlaczego zapytania uzywajace IN sa takie wolne?
- Obecnie l/aczymy podzapytania w outer queries poprzez sekwencyjne
- przeszukiwanie wynik�w podzapytania dla kazdego rzedu z outer query.
- Mozna to ominac zastepujac IN przez EXISTS:
+ W wersjach wczesniejszych niz 7.4 l/aczymy podzapytania w outer
+ queries poprzez sekwencyjne przeszukiwanie wynik�w podzapytania dla
+ kazdego rzedu z outer query. Jesli podzapytanie zwraca jedynie kilka
+ rzed�w a zewnetrzne zapytanie zwraca ich wiele, IN jest najszybsze.
+ Aby przyspieszyc inne zapytania mozna zastapic IN przez EXISTS:
SELECT *
FROM tab
- WHERE col1 IN (SELECT col2 FROM TAB2)
+ WHERE col IN (SELECT subcol FROM subtab)
na:
SELECT *
FROM tab
- WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2)
+ WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col)
- Mamy zamiar poprawic to ograniczenie w przyszl/ych wydaniach.
+ Aby to rozwiazanie byl/o szybkie, subcol powinna byc kolumna
+ indeksowana.
+
+ W wersji 7.4 i p�zniejszych, IN w rzeczywistosci uzywa tej samej
+ wyrafinowanej techniki l/aczenia jak normalne zapytania i jest
+ preferowane nad uzywaniem EXISTS.
4.23) Jak wykonac "outer join"?
- PostgreSQL 7.1 i p�zniejsze wersje maja zaimplementowane outer join
- wykorzystujac standardowa skl/adnie SQL. Ponizej dwa przykl/ady:
+ PostgreSQL ma zaimplementowane outer join wykorzystujac standardowa
+ skl/adnie SQL. Ponizej dwa przykl/ady:
SELECT *
FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
@@ -1113,7 +1179,7 @@ SELECT *
FROM t1 LEFT OUTER JOIN t2 USING (col);
Te dwa identyczne zapytania l/acza kolumne t1.col z kolumna t2.col,
- ale takze zwr�ca niepol/aczone rzedy w t1 (te kt�re nie pasuja w t2).
+ ale takze zwr�ca niepol/aczone rzedy w t1 (te, kt�re nie pasuja w t2).
RIGHT join dodal/by niepol/aczone rzedy z tabeli t2. FULL join
zwr�cil/by rzedy plus dodatkowo wszystkie rzedy z tabel t1 i t2.
Sl/owo OUTER jest opcjonalne i jest dodawane domyslnie przy LEFT,
@@ -1138,37 +1204,75 @@ SELECT *
katalogi systemowe, nie jest do konca jasne jak zapytanie pomiedzy
r�znymi bazami danych powinno sie zachowywac.
- Oczywiscie klient moze l/aczyc sie z r�znymi bazami danych i l/aczyc
- informacje w ten spos�b uzyskana.
+ contrib/dblink pozwala na wykonywanie zapytan poprzez r�zne bazy
+ danych wywol/ujac odpowiednie funkcje. Oczywiscie klient moze l/aczyc
+ sie z r�znymi bazami danych i l/aczyc informacje w ten spos�b uzyskana
+ po stronie klienta.
4.25) Jak zwr�cic w funkcji wiele rzed�w lub kolumn?
- Mozesz zwracac zbiory z funkcji PL/pgSQL uzywajac refcursors. Zobacz
- http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html,
- sekcje 23.7.3.3.
+ Mozesz w l/atwy spos�b zwracac wiele rzed�w lub kolumn uzywajac
+ funkcji z:
+ http://techdocs.postgresql.org/guides/SetReturningFunctions.
+ 4.26) Dlaczego nie moge w spos�b pewny tworzyc/usuwac tabel tymczasowych w
+ funkcjach PL/PgSQL?
+
+ PL/PgSQL przechowuje w cache zawartosc funkcji, niepozadanym efektem
+ tego jest to, ze gdy taka funkcja korzysta z tabel tymczasowych, kt�re
+ sa p�zniej kasowane i odtwarzane, a funkcja wywol/ywana jest
+ ponownie,jej wywol/anie nie powiedzie sie poniewaz cachowana funkcja
+ wciaz bedzie wskazywac na stara tablice tymczasowa. Rozwiazaniem tego
+ problemu jest uzywanie EXECUTE aby korzystac z tabel tymczasowych w
+ PL/PgSQL. To spowoduje, ze zapytanie bedzie parsowane przy kazdym
+ wywol/aniu funkcji.
+
+ 4.27) Jakie sa mozliwosci replikacji w PostgreSQL?
+
+ Jest kilka opcji aby stosowac replikacje typu master/slave. Ten typ pozwala
+ jedynie masterowi na dokonywanie zmian w bazie danych, a slave moze jedynie
+ te zmiany odczytywac. Na stronie
+ http://gborg.PostgreSQL.org/genpage?replication_research znajduje sie ich
+ lista. Replikacja typu multi-master jest w trakcie prac, opis projektu
+ znajduje sie pod adresem:
+ http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
+ 4.28) Jakie mozliwosci szyfrowania oferuje PostgreSQL?
+
+ * contrib/pgcrypto zawiera wiele funkcji za pomoca, kt�rych mozemy
+ uzywac kryptografii w zapytaniach SQL.
+ * Aby szyfrowac transmisje od klienta do serwera, ten musi miec
+ ustawiona opcje ssl na true w pliku postgresql.conf, odpowiedni
+ wpis host lub hostssl musi wystepowac w pliku pg_hba.conf, oraz
+ sslmode nie moze byc wyl/aczone w kliencie. (Warto zwr�cic uwage,
+ ze mozliwe jest takze uzywanie transport�w szyfrujac�w przez
+ strony trzecie, takie jak stunnel lub ssh, poza natywnym wsparciem
+ dla SSL przez PostgreSQL).
+ * Hasl/a uzytkownik�w bazy danych sa automatycznie szyfrowane od
+ wersji 7.3. W poprzednich wersjach, nalezy ta funkcjonalnosc
+ poprzez wl/aczenie opcji PASSWORD_ENCRYPTION w postgresql.conf.
+ * Serwer moze dzial/ac uzywajac szyfrowanego systemu plik�w.
+
Rozwijanie PostgreSQL
5.1) Napisal/em wl/asna funkcje. Kiedy uzyje jej w psql, program zrzuca
pamiec (dump core)?
- Problem moze byc spowodowany przez bardzo wiele rzeczy. Spr�buj
- najpierw przetestowac Twoja funkcje w samodzielnie dzial/ajacym
- programie.
-
+ Problem moze byc spowodowany przez bardzo wiele rzeczy. Spr�buj najpierw
+ przetestowac Twoja funkcje w samodzielnie dzial/ajacym programie.
5.2) Jak moge dodac/zgl/osic nowe typy czy funkcje do PostgreSQL?
- Wyslij Twoje propozycje na liste mailowa pgsql-hackers, wtedy
- prawdopodobnie Tw�j kod znajdzie sie w katalogu contrib/.
-
+ Wyslij Twoje propozycje na liste mailowa pgsql-hackers, wtedy
+ prawdopodobnie Tw�j kod znajdzie sie w katalogu contrib/.
5.3) Jak napisac funkcje C zwracajaca krotke (tuple)?
- To wymaga wysil/ku tak olbrzymiego, ze nawet autorzy nigdy tego nie
- prubowali, chociaz z zalozen wynika, ze jest to mozliwe.
-
+ W wersjach PostgreSQL od numeru 7.3, funckje zwracajace tabele sa w pelni
+ wspierane w C, PL/PgSQL i SQL. Sprawdz w Programmer's Guide aby uzyskac
+ wiecej informacji. Przykl/ad funkcji napisanej w C zwracajacej tabele
+ zostal/ umieszczony w contrib/tablefunc.
5.4) Zmienil/em plik zr�dl/owy. Dlaczego po rekompilacji nie widac zmiany?
- Pliki Makefiles nie maja dorzuconych odpowiednich zaleznosci dla
- plik�w nagl/�wkowych (include files). Wykonaj najpierw make clean, a
- nastepnie ponownie make. Jesli uzywasz GCC mozesz uzyc opcji
- --enable-depend przy wykonywaniu configure aby
+ Pliki Makefiles nie maja dorzuconych odpowiednich zaleznosci dla plik�w
+ nagl/�wkowych (include files). Wykonaj najpierw make clean, a nastepnie
+ ponownie make. Jesli uzywasz GCC mozesz uzyc opcji --enable-depend przy
+ wykonywaniu configure aby kompilator m�gl/ okreslic zaleznosci
+ samodzielnie.
diff --git a/doc/src/FAQ/FAQ_polish.html b/doc/src/FAQ/FAQ_polish.html
index 56a052cf66f..85e04fbaf75 100644
--- a/doc/src/FAQ/FAQ_polish.html
+++ b/doc/src/FAQ/FAQ_polish.html
@@ -15,7 +15,9 @@
<H1>Frequently Asked Questions (FAQ) o PostgreSQL</H1>
- <P>Ostatnia aktualizacja: Thu Apr 18 00:44:51 EDT 2002</P>
+ <P>Ostatnia aktualizacja: Sobota Luty 7 22:16:21 EST 2004</P>
+
+ <P>Ostatnia aktualizacja t�umaczenia: Pi�tek Marzec 5 19:31:12 EST 2004</P>
<P>Obecny maintainer: Bruce Momjian (<A href=
@@ -24,16 +26,15 @@
</P>
-
<P>Najbardziej aktualn� wersj� tego dokumentu mo�na znale�� pod
adresem:
<A href=
- "http://www.Postgresql.org/docs/faq-english.html">http://www.PostgreSQL.org/docs/faq-english.html</A>.</P>
+ "http://www.Postgresql.org/docs/faqs/FAQ.html">http://www.PostgreSQL.org/docs/faqs/FAQ.html</A>.</P>
<P>Odpowiedzi na pytania dotycz�ce konkretnych system�w operacyjnych
mo�na znale�� pod adresem:
<A href=
- "http://www.PostgreSQL.org/users-lounge/docs/faq.html">http://www.PostgreSQL.org/users-lounge/docs/faq.html</A>.</P>
+ "http://www.PostgreSQL.org/docs/index.html">http://www.PostgreSQL.org/docs/index.html</A>.</P>
<HR>
<H2 align="center">Pytania og�lne</H2>
@@ -64,20 +65,19 @@
PostgreSQL?<BR>
<A href="#2.2">2.2</A>) Jakie istniej� narz�dzia pozwalaj�ce na dost�p do
PostgreSQL przez www?<BR>
- <A href="#2.3">2.3</A>) Czy istnieje jakie� GUI dla PostgreSQL?
- Narz�dzie do raportowania? Interfejs dla "embedded query language"?<BR>
+ <A href="#2.3">2.3</A>) Czy istnieje jakie� GUI dla PostgreSQL?<BR>
<A href="#2.4">2.4</A>) Za pomoc� jakich j�zyk�w programowania mo�na
si� komunikowa� z PostgreSQL?<BR>
- <H2 align="center">Pytania administratora</H2>
+ <H2 align="center">Pytania dotycz�ce administracji</H2>
<A href="#3.1">3.1</A>) Jak mog� zainstalowa� PostgreSQL w innej
lokalizacji ni� <I>/usr/local/pgsql</I>?<BR>
<A href="#3.2">3.2</A>) Podczas startu <I>postmaster'a</I>,
otrzymuj� komunikat:
<I>Bad System Call</I> lub "core dumped". Dlaczego?<BR>
<A href="#3.3">3.3</A>) Podczas startu <I>postmaster'a</I>,
- otrzymuj� komunikato b��dzie: <I>IpcMemoryCreate</I>. Dlaczego?<BR>
+ otrzymuj� komunikat o b��dzie: <I>IpcMemoryCreate</I>. Dlaczego?<BR>
<A href="#3.4">3.4</A>) Podczas startu <I>postmaster'a</I>,
otrzymuj� komunikat o b��dzie: <I>IpcSemaphoreCreate</I>. Dlaczego?<BR>
<A href="#3.5">3.5</A>) W jaki spos�b mog� kontrolowa� po��czenia z
@@ -87,9 +87,9 @@
<A href="#3.7">3.7</A>) Jakie s� mo�liwo�ci wyszukiwania b��d�w?<BR>
<A href="#3.8">3.8</A>) Sk�d si� bierze komunikat: <I>"Sorry, too many
clients"</I> podczas pr�by po��czenia si� z baz� danych?<BR>
- <A href="#3.9">3.9</A>) Co to za pliki typu <I>pg_sorttempNNN.NN</I>
- , kt�re znajduj� si� w katalogu z plikami bazy danych?<BR>
-
+ <A href="#3.9">3.9</A>) Jakie pliki znajduj� si� w <I>pg_temp</I>?<BR>
+ <A href="#3.10">3.10</A>) Dlaczego konieczne jest przy upgradzie
+ PostgreSQL korzystanie ze skrypt�w dump i restore?<BR>
<H2 align="center">Pytania dotycz�ce u�ytkowania</H2>
<A href="#4.1">4.1</A>) Jaka jest r�nica pomi�dzy kursorami
@@ -98,7 +98,8 @@
jedynie kilka pierwszych wynik�w zapytania?<BR>
<A href="#4.3">4.3</A>) Jak mog� uzyska� list� wszystkich tabel czy
innych rzeczy pod <I>psql</I>?<BR>
- <A href="#4.4">4.4</A>) Jak usun�� kolumn� z tabeli?<BR>
+ <A href="#4.4">4.4</A>) Jak usun�� kolumn� z tabeli lub zmieni� jej
+ typ?<BR>
<A href="#4.5">4.5</A>) Jaki jest maksymalny rozmiar dla rz�du,
tabeli i bazy danych?<BR>
<A href="#4.6">4.6</A>) Jak du�o miejsca w bazie danych jest
@@ -148,8 +149,13 @@
baz danych jednocze�nie?<BR>
<A href="#4.25">4.25</A>) Jak zwr�ci� w funkcji wiele rz�d�w lub
kolumn?<BR>
-
-
+ <A href="#4.26">4.26</A>) Dlaczego nie mog� w spos�b pewny
+ tworzy�/usuwa� tabel tymczasowych w funkcjach PL/PgSQL?<BR>
+ <A href="#4.27">4.27</A>) Jakie s� mo�liwo�ci replikacji w
+ PostgreSQL?<BR>
+ <A href="#4.28">4.28</A>) Jakie mo�liwo�ci szyfrowania oferuje
+ PostgreSQL?<BR>
+
<H2 align="center">Rozwijanie PostgreSQL</H2>
<A href="#5.1">5.1</A>) Napisa�em w�asn� funkcj�. Kiedy u�yj� jej w
<I>psql</I>, program zrzuca pami�� (dump core)?<BR>
@@ -166,7 +172,8 @@
<H4><A name="1.1">1.1</A>) Co to jest PostgreSQL? Jak to wymawia�?</H4>
- <P>PostgreSQL wymawia si� <I>Post-Gres-kju-el</I>.</P>
+ <P>PostgreSQL wymawia si� <I>Post-Gres-kju-el</I>. Cz�sto podczas
+ rozm�w u�ywany jest termin "Postgres"</P>
<P>PostgreSQL jest rozszerzeniem systemu zarz�dzania bazami danych -
POSTGRES, kolejn� generacj� rozwojowego prototypu <SMALL>DBMS</SMALL>.
@@ -181,11 +188,14 @@
komunikuj�cych si� poprzez mailowe listy dyskusyjne PostgreSQL.
Obecnym koordynatorem jest Marc G. Fournier (<A href=
"mailto:[email protected]">[email protected]</A>). (Zobacz
- poni�ej jak si� przy��czy�). Ta grupa ludzi jest odpowiedzialna za
- ca�y rozw�j PostgreSQL.</P>
+ pytanie <A href="#1.6">1.6</A> jak si� przy��czy�). Ta grupa ludzi jest
+ odpowiedzialna za ca�y rozw�j PostgreSQL. PostgreSQL jest projektem
+ nie kontrolowanym przez �adn� firm�, aby wzi�� udzia� w jego rozwoju
+ sprawd�, <A href="http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html">
+ http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html</a></P>
<P>Autorami PostgreSQL 1.01 byli Andrew Yu and Jolly Chen.
- Wiele innych os�b pomog�o przy portowaniu, testowaniu, debugowaniu, i
+ Wiele innych os�b pomog�o przy portowaniu, testowaniu, debugowaniu i
rozwijaniu kodu. Oryginalny kod Postgresa, na kt�rym zosta� oparty
PostgreSQL, by� wysi�kiem student�w oraz pracownik�w pracuj�cych pod
kierownictwem profesora Michael'a Stonebraker'a z University of
@@ -243,11 +253,11 @@
<P><STRONG>Klient</STRONG></P>
- <P>Mo�liwa jest kompilacja bibliteki C <I>libpq</I> C, psql oraz
+ <P>Mo�liwa jest kompilacja bibliteki C <I>libpq</I>, psql oraz
innych interfejs�w i uruchamianie ich na platformie MS Windows. W tym
wypadku klient jest uruchamiany na MS Windows a z serwerem komunikuje si�
poprzez TCP/IP. Serwer mo�e dzia�a� na dowolnej wspieranej platformie
- Unixowej. Plik <I>win31.mak</I> jest do��czony
+ Unixowej. Plik <I>win32.mak</I> jest do��czony
do �r�de�, aby mo�na by�o stworzy� bibliotek� <I>libpq</I> oraz
program <I>psql</I> dzia�aj�ce w �rodowisku Win32. PostgreSQL mo�e si�
tak�e komunikowa� z klientami <SMALL>ODBC</SMALL>.</P>
@@ -257,9 +267,18 @@
<P>Serwer mo�e by� uruchamiany na Windows NT i Win2k u�ywaj�c
bibliotek Cygwin, Cygnus Unix/NT. W pliku <I>pgsql/doc/FAQ_MSWIN</I>
znajduj�cym si� w �r�d�ach lub pod adresem: <A href=
- "http://www.postgresql.org/docs/faq-mswin.html">MS Windows FAQ</A>
- na naszych stronach. Nie planujemy tworzy� portu przeznaczonego
- docelowo dla platformy Microsoft.</P>
+ "http://www.postgresql.org/docs/faqs/text/FAQ_MSWIN">http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN</A> na naszych stronach.<P>
+ Obecnie prowadzone s� prace nad stworzeniem wersji dla MS Win
+ NT/200/XP. Je�li chcesz si� dowiedzie� o obecnym statusie tych prac
+ zobacz <A
+ href="http://techdocs.postgresql.org/guides/Windows">http://techdocs.postgresql.org/guides/Windows</A> and
+ <A
+ href="http://momjian.postgresql.org/main/writings/pgsql/win32.html">http://momjian.postgresql.org/main/writings/pgsql/win32.html</A>.
+ </P>
+ <P>
+ Istnieje tak�e port pod Novell Netware 6 dost�pny pod adresem <A
+ href="http://forge.novell.com">http://forge.novell.com</A>.
+ </P>
<H4><A name="1.5">1.5</A>) Sk�d mo�na �ci�gn�� PostgreSQL?</H4>
@@ -324,14 +343,13 @@
'#PostgreSQL' "$USER" irc.phoenix.net.</CODE></P>
<P>Lista firm oferuj�cych wsparcie na zasadach komercyjnych znajduje
- si� pod adresem: <A href=
- "http://www.postgresql.org/users-lounge/commercial-support.html">http://www.postgresql.org/users-lounge/commercial-support.html</A>.</P>
+ si� pod adresem: <A href= "http://techdocs.postgresql.org/companies.php">http://techdocs.postgresql.org/companies.php</A>.</P>
<H4><A name="1.7">1.7</A>) Jaka jest ostatnia dost�pna wersja?</H4>
- <P>Ostatnia dost�pna wersja PostgreSQL to 7.2.1.</P>
+ <P>Ostatnia dost�pna wersja PostgreSQL to 7.4.1.</P>
- <P>Planujemy publikowanie kolejnych wersji co cztery miesi�ce.</P>
+ <P>Planujemy publikowanie kolejnych wersji co sze�� do o�miu miesi�cy.</P>
<H4><A name="1.8">1.8</A>) Jaka dokumentacja jest dost�pna?</H4>
@@ -339,8 +357,8 @@
testowania s� za��czone w samej dystrybucji. Znajduj� si� one w
katalogu <I>/doc</I>. Manual mo�e by� tak�e przegl�dany poprzez
strony www pod adresem <A href=
- "http://www.PostgreSQL.org/users-lounge/docs/">http://www.PostgreSQL.org/users-lounge/docs/</A>.</P>
-
+ "http://www.PostgreSQL.org/docs">http://www.PostgreSQL.org/docs</A>.</P>
+
<P>Istniej� tak�e dwie ksi��ki dost�pne online pod adresami
<A href=
"http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</A>
@@ -348,14 +366,15 @@
"http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</A>.
Lista ksi��ek o PostgreSQL, kt�re mo�na kupi� znajduje si� pod adresem
<A href=
- "http://www.postgresql.org/books/">http://www.postgresql.org/books/</A>.
+ "http://techdocs.PostgreSQL.org/techdocs/bookreviews.php">
+ http://techdocs.PostgreSQL.org/techdocs/bookreviews.php</A>.
Zbi�r technicznych artyku��w o PostgreSQL znajduje si� pod adresem <A
href=
- "http://techdocs.postgresql.org/">http://techdocs.postgresql.org/</A>.</P>
+ "http://techdocs.PostgreSQL.org">http://techdocs.postgresql.org/</A>.</P>
<P><I>psql</I> posiada kilka wbudowanych polece� \d, za pomoca kt�rych
mo�na sprawdzi� informacje dotycz�ce typ�w, operator�w, funkcji,
- aggregat�w itd.</P>
+ agregat�w itd.</P>
<P>Na naszej stronie mo�na znale�� du�o wi�cej dokumentacji.</P>
@@ -409,8 +428,8 @@
<P>Jest oko�o 12 os�b, kt�re maj� uprawnienia do commit'owania w
<SMALL>CVS</SMALL> PostgreSQL'a. Ka�dy z nich submitowa� tak wiele
wysokiej jako�ci patchy, �e sta�o si� niemo�liwe dla obecnych
- commiter�w by� z nimi na bie��co, maj�c pewno�� �e s� to poprawki
- wysokiej jako�ci.</P>
+ commiter�w by� z nimi na bie��co, wi�c musieli�my im ufa� i mie�
+ pewno��, �e ich poprawki s� wysokiej jako�ci.</P>
<H4><A name="1.13">1.13</A>) Jak mog� zg�asza� b��dy?</H4>
@@ -437,52 +456,37 @@
oraz wyrafinowany system blokowania. Mamy tak�e w�a�ciow�ci kt�rych
inni nie posiadaj�, jak typy definiowane przez u�ytkownika,
dziedziczenie, rules, multi-version concurrency control, kt�ra
- redukuje problemy z blokowaiem (lock contention).<BR>
+ redukuje problemy z blokowaniem (lock contention).<BR>
<BR>
</DD>
<DT><B>Wydajno��</B></DT>
- <DD>PostgreSQL dzia�a w dw�ch trybach. Standardowy tryb <I>fsync</I>
- zrzuca ka�d� zako�czon� transakcj� na dysk, gwarantuj�c w ten
- spos�b to, �e je�li system operacyjny si� zawiesi lub straci
- zasilanie wci�gu kilku nastepnych sekund, wszystkie Twoje dane
- zostan� bezpiecznie zapisane na dysku. W tym trybie, jeste�my
- wolniejsi ni� wi�kszo�� komercyjnych baz danych, cz�ciowo dlatego
- �e niewiele z nich wykonuje taki spos�b zapisywania danych jako
- domy�lne ustawienie.
- W trybie <I>no-fsync</I> z regu�y jeste�my szybsi ni� komercyjne
- bazy danych, chocia� w tym wypadku zawieszenie si� systemu mo�e
- spowodowa� uszkodzenie danych. Pracujemy nad tym, aby stworzy�
- po�redni tryb, kt�ry powoduje mniejsz� redukcj� wydajno�ci ni� tryb
- fsync i pozwoli na integralno�� danych w przeci�gu 30 sekund do
- za�amania si� systemu operacyjnego.<BR>
- <BR>
- Por�wnuj�c do MySQL czy innych prostych baz danych, jeste�my
- wolniejsi przy wykonywaniu insert�w/updat�w przez narzut
- spowodowany przez transakcje. Oczywi�cie MySQL nie posiada �adnej z
- wymienionych wy�ej <I>mo�liwo�ci</I>. PostgreSQL zosta� zbudowany
- aby by� DBMS elastycznym i bogatym z r�norakie mo�liwo�ci,
- aczkolwiek dbamy, aby poprawia� jego wydajno�� poprzez analiz�
- kodu �r�d�owego i profilowanie. Ciekawe por�wnanie PostgreSQL i MySQL
- mo�na znale�� pod adresem <A href=
- "http://openacs.org/why-not-mysql.html">http://openacs.org/why-not-mysql.html</A><BR>
-
- <BR>
- Ka�de po��czenie klienta jest obs�ugiwane przez nas poprzez
- stworzenie nowego procesu Unixowego. Procesy backendu dziel�
- bufory danych oraz informacj� o blokadach. U�ywaj�c wielu
- procesor�w, r�ne backendy mog� bez problemu dzia�a� na r�nych
- procesorach.<BR>
+ <DD>Wydajno�� PostgreSQL jest podobna do innych komercyjnych i open
+ source baz danych. W niekt�rych sytuacjach jest szybszy w
+ niekt�rych wolniejszy. W por�wnianiu do MySQL lub mniejszych baz
+ danych jeste�my szybsi przy wielu u�ytkownikach, skomplikowaych
+ zapytaniach i du�ym obci��eniu podczas. MySQL jest szybszy dla
+ prostych SELECT�w wykonywanych przez niewielu u�ytkownik�w.
+ Spowodowane jest to narzutem, kt�ry si� pojawia przy transakcjach.
+ Oczywi�cie MySQL nie ma wi�kszo�ci z rozwi�za� opisanych powy�ej
+ w sekcji <I> Mo�liwo�ci </I>. PostgreSQL zosta� stworzony z my�l� o
+ stabilno�ci, oraz szerokiej gamie mo�liwo�ci, ale mimo to staramy
+ si� w ka�dej wersji poprawia� jego wydajno��.
+ Ciekawe por�wnanie PostgreSQL i MySQL mo�na znale�� pod adresem <A href=
+ "http://openacs.org/philosophy/why-not-mysql.html">http://openacs.org/philosophy/why-not-mysql.html</A>
+ Dodatkowo, MySQL jest firm�, kt�ra dystrybuuje jej produkty poprzez
+ zasad� Open Source i wymaga wykupienia licencji w przypadku
+ tworzenia close-source software, co ie ma miejsca w przypadku
+ PostgreSQL.<BR>
<BR>
</DD>
-
<DT><B>Stabilno��</B></DT>
<DD>Zdajemy sobie spraw�, �e <SMALL>DBMS</SMALL> musi by� stabilny,
w przeciwnym wypadku jest bez warto�ci. Staramy si� publikowa� kod
stabilny, dobrze przetestowany, z minimum mo�liwych b��d�w. Ka�de
- wydanie poprzedza conajmniej miesi�c test�w wersji beta. Patrz�c na
+ wydanie poprzedza co najmniej miesi�c test�w wersji beta. Patrz�c na
histori� wyda� PostgreSQL wida�, �e dostarczamy stabilne, dobrze
sprawdzone wersje, kt�re s� gotowe do u�ycia w �rodowisku
produkcyjnym. My�limy, �e proces publikowania kolejnych wersji
@@ -521,20 +525,20 @@
PostgreSQL?</H4>
<P>PostgreSQL korzysta z najlepszej infrastruktury od samego pocz�tku
- istnienia projektu, tzn. sze�ciu lat. Wszystko to zawdzi�czamy Marc'owi
- Fournier'owi, kt�ry stworzy� t� infrastruktur� i zarz�dza ni� od
- lat.</P>
+ istnienia projektu, czyli roku 1996 kiedy rozpoczeli�my prac�. Wszystko
+ to zawdzi�czamy Marc'owi Fournier'owi, kt�ry stworzy� t� infrastruktur�
+ i zarz�dza ni� od lat.</P>
<P>Wysokiej jako�ci infrastruktura jest bardzo wa�na dla ka�dego
projektu open-source. Zapobiega przerwom w rozwoju projektu i
jakimkolwiek przestojom.</P>
<P>Oczywi�cie korzystanie z wysokiej jako�ci infrastruktury nie jest
- tanie. Istnieje wiele r�znych miesi�cznych, czy jednorazowych
+ tanie. Istnieje wiele r�nych miesi�cznych, czy jednorazowych
wydatk�w, kt�re trzeba ponosi� aby wszystko dzia�a�o jak nale�y.
Je�li Ty, b�d� Twoja firma mo�e wspom�c finansowo rozw�j PostgreSQL
odwied� adres: <A href=
- "http://www.pgsql.com/pg_goodies">http://www.pgsql.com/pg_goodies</A>
+ "http://store.pgsql.com/shopping/">http://store.pgsql.com/shopping/</A>
gdzie opisane jest jak to zrobi�.</P>
<P>Chocia� na stronie wspomniana jest nazwa PostgreSQL Inc, "datki"
@@ -542,6 +546,9 @@
przeznaczane na finansowanie jakiejkolwiek firmy. Je�li wolisz,
mo�esz wys�a� czek na adres kontaktowy.</P>
<HR>
+ Je�li mo�esz si� pochwali� udanymi wdro�eniami PostgreSQL, prosimy
+ aby� zg�osi� nam to na stronie: <A
+ href="http://advocacy.postgresql.org/">http://advocacy.postgresql.org</a>.
<H2 align="center">User Client Questions</H2>
@@ -551,25 +558,21 @@
<P>Dost�pne s� dwa driwery <SMALL>ODBC</SMALL>: PsqlODBC
i OpenLink <SMALL>ODBC</SMALL>.</P>
- <P>PsqlODBC jest do��czony do �r�de�. Wi�cej informacji na jego temat
- mo�esz znale�� pod adresem: <A href=
- "ftp://ftp.PostgreSQL.org/pub/odbc/">ftp://ftp.PostgreSQL.org/pub/odbc/</A>.</P>
-
+ <P>Mo�esz pobra� PsqlODBC z adresu <A
+ href="http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">http://gborg.postgresql.org/project/psqlodbc/projdisplay.php</A>
+ </P>
+
<P>OpenLink <SMALL>ODBC</SMALL> mo�e by� pobrany z adresu: <A href=
"http://www.openlinksw.com/">http://www.openlinksw.com</A>.
Wsp�pracuje ze standardowym oprogramowaniem klienckim <SMALL>ODBC</SMALL>
wi�c w ten spos�b mo�esz korzysta� z PostgreSQL <SMALL>ODBC</SMALL>
- dost�pnego na ka�dej plaformie kt�r� wspiera (Win, Mac, Unix, VMS).</P>
+ dost�pnego na ka�dej pltaformie kt�r� wspiera (Win, Mac, Unix, VMS).</P>
<P>Autorzy b�d� prawdopodobnie sprzedawa� ten produkt osobom kt�re
wymagaj� komercyjnego wsparcia, ale wersja darmowa b�dzie zawsze
dost�pna. Wszystkie pytania mo�esz wysy�a� na adres: <A href=
- <P>Sprawd� tak�e rozdzia� o <A href=
- "http://www.postgresql.org/devel-corner/docs/programmer/odbc.html">ODBC
- w "Programmer's Guide"</A>.</P>
-
<H4><A name="2.2">2.2</A>) Jakie istniej� narz�dzia pozwalaj�ce na dost�p do
PostgreSQL przez www?</H4>
@@ -577,59 +580,56 @@
przez www mo�esz znale�� pod adresem:
<A href="http://www.webreview.com">http://www.webreview.com</A></P>
- <P>Inny znajduje si� pod adresem: <A href=
- "http://www.phone.net/home/mwm/hotlist/">http://www.phone.net/home/mwm/hotlist/.</A></P>
-
<P>Do integracji z www, �wietnym rozwi�zaniem jest PHP. Mo�esz
znale�� wi�cej informacji na ten temat pod adresem
<A href="http://www.php.net">http://www.php.net</A>.</P>
<P>Wiele os�b w przypadku skomplikowanych rozwi�za� uzywa Perl'a i
- modu�u CGI.pl.</P>
-
- <H4><A name="2.3">2.3</A>) Czy istnieje jakie� GUI dla PostgreSQL?
- Narz�dzie do raportowania? Interfejs dla "embedded query
- language"?</H4>
-
- <P>Mamy ca�kiem mi�y interfejs graficzny, kt�ry zosta� nazwany
- <I>pgaccess</I> i jest on dostarczany jako cz�� �r�de�.
- <I>pgaccess</I> posiada tak�e generator raport�w. Mo�na go znale��
- pod adresem <A href=
- "http://www.flex.ro/pgaccess">http://www.flex.ro/pgaccess</A></P>
-
- <P>Udost�pnili�my tak�e <I>ecpg</I>, kt�ry jest "embedded SQL query
- language interface" dla j�zyka C.</P>
-
- <H4><A name="2.4">2.4</A>) Za pomoc� jakich j�zyk�w programowania
+ modu�u CGI.pl lub mod_perl.</P>
+
+ <H4><A name="2.3">2.3</A>) Czy istnieje jakie� GUI dla PostgreSQL?</H4>
+
+ <P>Tak, istnieje kilka interfejs�w graficznych dla PostgreSQL.
+ W�r�d nich PgAccess (<A href="http://www.pgaccess.org">
+ http://www.pgaccess.org</A>), PgAdmin III (<A
+ href="http://www.pgadmin.org">http://www.pgadmin.org</A>),
+ RHDB Admin (http://sources.redhat.com/rhdb/ ) oraz Rekall (
+ http://www.thekompany.com/products/rekall/, komercyjny). Istnieje
+ tak�e PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ), webowy
+ interfejs dla PostgreSQL.
+ </P>
+ <P>
+ Wi�cej informacji na ten temat znajduje si� pod adresem See
+ <A href="http://techdocs.postgresql.org/guides/GUITools">http://techdocs.postgresql.org/guides/GUITools</A>.
+
+ <H4><A name="2.4">2.4</A>) Za pomoc� jakich j�zyk�w programowania
mo�na si� komunikowa� z PostgreSQL?</H4>
- <P>Mamy wsparcie dla:</P>
+ <P>Najbardziej popularne j�zyki posiiadaj� w�asny interfejs dla
+ PostgreSQL. Sprawd� list� rozszerze� dla intersuj�cego Ciebie j�zyka
+ programowania.</P>
+
+ <P>Ze �r�d�ami PostreSQL dystrubuowane s� interfejsy dla
+ nast�puj�cych j�zyk�w programowania:</P>
+
<UL>
<LI>C (libpq)</LI>
- <LI>C++ (libpq++)</LI>
-
<LI>Embedded C (ecpg)</LI>
<LI>Java (jdbc)</LI>
- <LI>Perl (perl5)</LI>
-
- <LI>ODBC (odbc)</LI>
-
<LI>Python (PyGreSQL)</LI>
<LI>TCL (libpgtcl)</LI>
-
- <LI>C Easy API (libpgeasy)</LI>
-
- <LI>Embedded <SMALL>HTML</SMALL> (<A href=
- "http://www.php.net">PHP z http://www.php.net</A>)</LI>
</UL>
+ Inne interfejsy s� dost�pne pod adresem:
+ <A href="http://gborg.postgresql.org"> http://gborg.postgresql.org</A> w
+ sekcji Drivers/Interfaces.
<HR>
- <H2 align="center">Pytania administratora</H2>
+ <H2 align="center">Pytania dotycz�ce administracji</H2>
<H4><A name="3.1">3.1</A>) Jak mog� zainstalowa� PostgreSQL w innej
lokalizacji ni� <I>/usr/local/pgsql</I>?</H4>
@@ -677,7 +677,8 @@
<SMALL>SEMMNS</SMALL> i <SMALL>SEMMNI</SMALL> j�dra twojego systemu.</P>
<P>Niedzia�aj�ce semafory mog� spowodowa� niepoprawne zamkni�cie
- systemu w czasie intensywnego korzystania z bazy.</P>
+ systemu w czasie intensywnego korzystania z bazy.</P>
+
<P>Je�li tre�� b��du jest inna, mo�e to oznacza�, �e obs�uga semafor�w
nie zosta�a w��czona do j�dra wcale. Zobacz PostgreSQL
Administrator's Guide po bardziej szczeg�owe informacje o pami�ci
@@ -692,8 +693,7 @@
<I>postmaster'a</I>,
<B>oraz</B> nie umo�liwi si� autoryzacji na podstawie adresu host�w
modyfikuj�c odpowiednio plik
- <I>$PGDATA/pg_hba.conf</I>. To zmiany pozwol� na
- po��czenia TCP/IP.</P>
+ <I>$PGDATA/pg_hba.conf</I>. To zmiany pozwol� na po��czenia TCP/IP.</P>
<H4><A name="3.6">3.6</A>) Jak powinienem skonfigurowa� system baz
danych aby uzyska� lepsz� wydajno��?</H4>
@@ -709,7 +709,7 @@
okre�laj�cym transakcj� - <SMALL>BEGIN WORK/COMMIT</SMALL>, s�
traktowane jako pojedyncza transakcja. Rozwa� wykonanie kilku
polece�/zda� SQL w jednym bloku transakcji. To redukuje narzut
- powodowany przez transakcj�. Przy du�ych zmianach w danych, warto
+ nak�adany przez transakcj�. Przy du�ych zmianach w danych, warto
usun�� i stworzy� na nowo indeksy.</P>
<P>Jest kilka opcji pozwalaj�cych na poprawienie wydajno�ci.
@@ -825,19 +825,12 @@
maksymaln� liczb� proces�w backendu to obawa o wyczerpanie zasob�w
systemu.</P>
- <P>W wersjach PostgreSQL wcze�niejszych ni� 6.5, maksymalna liczba
- backend�w by�a ustawiona na 64, a zmiana tej warto�ci wymaga
- rekompliacji po zmianie sta�ej MaxBackendId w pliku
- <I>include/storage/sinvaladt.h</I>.</P>
+ <H4><A name="3.9">3.9</A>) Jakie pliki znajduj� si� w <I>pg_temp</I>?</H4>
- <H4><A name="3.9">3.9</A>) Co to s� za pliki typu:
- <I>pg_sorttempNNN.NN</I>,
- kt�re znajduj� si� w katalogu z plikami bazy danych?</H4>
-
- <P>S� to tymczasowe pliki utworzone przez executor. Dla przyk�adu,
- je�li jaka� operacja sortowania jest wymagana do wykonania
+ <P>Katalog ten zawiera tymczasowe pliki utworzone przez executor. Dla
+ przyk�adu, je�li jaka� operacja sortowania jest wymagana do wykonania
<SMALL>ORDER BY,</SMALL> a samo sortowanie wymaga wi�cej miejsca ni�
- paratmetr backendu
+ parametr backendu
<I>-S</I> ustawi� do wykorzystania, wtedy tymczasowe pliki s� u�ywane
do przechowywania tych danych.</P>
@@ -846,6 +839,25 @@
poprawnie podczas operacji sortowania. Je�li w danym momencie nie
dzia�aj� �adne procesy backend�w mozesz spokojnie usun�� pliki
pg_tempNNN.NN.</P>
+
+ <H4><A name="3.9">3.9</A>) Dlaczego konieczne jest przy upgradzie
+ PostgreSQL korzystanie ze skrypt�w dump i restore?</H4>
+ <P>
+ Tw�rcy PostgreSQL dokonuj� jedynie ma�ych zmian pomi�dzy ma�ymi
+ upgradami wersji, np z 7.2 do 7.2.1, wtedy upgrade nie wymaga
+ korzystania z dump i restore. Przy wi�kszych zmianach, np. z wersji
+ 7.2 do 7.3, cz�sto zmianymaj� wp�yw na format przechowywanych danych.
+ Zmiany te s� na tyle skomplikowane, �e nie utrzymujemy zgodo�ci z
+ poprzednimi wersjami PostgreSQL. dump pozwala na wydostanie danych w
+ takiej postaci, w kt�rej �atwe jest ich zaimportowanie do nowszych
+ wersji bez k�opotu.
+ </P>
+ <P>
+ W wydaniach gdzie zmiany nie dotycz� formatu danych na dysku, mo�na
+ wykorzysta� skryptu pg_upgrade, do upgradu bez u�ycia dump/restore.
+ Dokumentacja do danego wydania zawiera informacj� czy mo�liwe jest
+ u�ycie pg_upgrade.
+ </P>
<HR>
<H2 align="center">Pytania dotycz�ce u�ywania</H2>
@@ -870,6 +882,15 @@
<SMALL>ORDER BY</SMALL>, PostgreSQL mo�e wykorzysta� jedynie kilka
pierwszych rz�d�w, by� mo�e b�dzie konieczno�� wykonania zapytania do
momentu a� zostan� znalezione po��dane wyniki.</P>
+ <P>
+ Aby otrzyma� losowy rz�d, u�yj:
+ <PRE>
+ SELECT col
+ FROM tab
+ ORDER BY random()
+ LIMIT 1;
+ </PRE>
+ </P>
<H4><A name="4.3">4.3</A>) Jak mog� uzyska� list� wszystkich tabel
czy innych rzeczy pod <I>psql</I>?</H4>
@@ -881,37 +902,53 @@
<I>-E</I> wtedy po wykonaniu polecenia z backslashem wy�wietlane
b�dzie zapytanie, kt�re w rzeczywisto�ci jest wykonywane.</P>
- <H4><A name="4.4">4.4</A>) Jak usun�� kolumn� z tabeli?</H4>
-
- <P>Nie mamy zaimplementowanego <SMALL>ALTER TABLE DROP
- COLUMN,</SMALL> ale mo�esz zrobi� tak:</P>
+ <H4><A name="4.4">4.4</A>) Jak usun�� kolumn� z tabeli lub zmieni�
+ jej typ?</H4>
+
+ <P>DROP COLUMNT zosta�o dodane w wersji 7.3 przy poleceniu ALTER
+ TABLE DROP COLUMN. We wcze��iejszych wersjach mo�esz zrobi� tak:
+ </P>
<PRE>
- SELECT ... -- wybierz zawarto�� wszystkich kolumn poza t� jedn� kt�rej chcesz si� pozby�
+ BEGIN;
+ LOCAL TABLE old_table;
+ SELECT ... -- wybierz wszystkie kolumny poza t� jedn� kt�rej chcesz si� pozby�
INTO TABLE new_table
FROM old_table;
DROP TABLE old_table;
ALTER TABLE new_table RENAME TO old_table;
</PRE>
+ <P>
+ Aby zmieni� typ danych kolumny mo�esz zrobi� tak:
+ </P>
+ <PRE>
+ BEGIN;
+ ALTER TABLE tab ADD COLUMN new_col new_data_type;
+ UPDATE tab SET new_col = CAST(old_col AS new_data_type);
+ ALTER TABLE tab DROP COLUMN old_col;
+ COMMIT;
+ </PRE>
+ </P>
<H4><A name="4.5">4.5</A>) Jaki jest maksymalny rozmiar dla rz�du,
tabeli i bazy danych?</H4>
<P>Oto wszystkie ograniczenia:</P>
<PRE>
- Maksymalny rozmiar dla bazdy danych? nieograniczony ( istniej� bazy danych o wielko�ci 500 GB databases )
- Maksymalny rozmiar dla tabeli? 16 TB
- Maksymalny rozmiar dla rz�du? nieograniczony w 7.1 i p�niejszych
- Maksymalny rozmiar pola? 1 GB w 7.1 and later
+ Maksymalny rozmiar dla bazdy danych? nieograniczony ( istniej�
+ bazy danych o wielko�ci 32 TB databases )
+ Maksymalny rozmiar dla tabeli? 32 TB
+ Maksymalny rozmiar dla rz�du? 1.6 TB
+ Maksymalny rozmiar pola? 1 GB
Maksymalna liczba rz�d�w w tabeli? nieograniczona
- Maksymalna liczba kolumn w tabeli? 250-1600 w zale�ono�ci od typ�w kolumn
- Makasymalna liczba indeks�w na tabeli? nieograniczona
+ Maksymalna liczba kolumn w tabeli? 250-1600 w zale�ono�ci od typ�w kolumn
+ Makasymalna liczba indeks�w na tabeli? nieograniczona
</PRE>
Oczywi�cie "nieograniczony" nie jest prawd� tak do ko�ca, istniej�
ograniczenia wynikaj�ce z dost�pnego miejsca na dysku, pami�ci/swapa.
Kiedy wielko�ci te b�d� bardzo du�e mo�e odbi� si� to na wydajno�ci.
- <P>Maksymalny rozmiar tabeli, czyli 16 TB nie wymaga od systemu
+ <P>Maksymalny rozmiar tabeli, czyli 32 TB nie wymaga od systemu
operacyjnego wsparcia dla du�ych plik�w. Du�e tabele s� przechowywane
jako pliki o rozmiarze 1 GB, wi�c ograniczenia co do wielko�ci plik�w
narzucone przez system plik�w nie s� istotne.</P>
@@ -957,6 +994,9 @@
<P>Indeksy nie powoduj� du�ego narzutu na zajmowane miejsce,
ale zawieraj� pewne dane,
wi�c w pewnych przypadkach moga by� ca�kiem du�e.</P>
+ <P> NULLe s� przechowywane jako mapy bitowe, wi�c u�ywaj� bardzo ma�o
+ miejsca.
+ </P>
<H4><A name="4.7">4.7</A>) Jak mog� sprawdzi� jakie tabele, klucze,
bazy danych i u�ytkownicy s� utworzeni?</H4>
@@ -996,17 +1036,39 @@
nast�puje sortowanie jest zazwyczaj szybsze ni� wyszukiwanie za
pomoc� indeksu na du�ej tabeli.</P>
Jakkolwiek <SMALL>LIMIT</SMALL> w po��czeniu z <SMALL>ORDER BY</SMALL>
- cz�sto b�dzie wykorzystywa� indeks�w poniew�z jedynie ma�a cz�c z
- tabeli jest zwracana.
+ cz�sto b�dzie wykorzystywa� indeksy poniewa� jedynie ma�a cz�� z
+ tabeli jest zwracana. W rzeczywisto�ci, chocia� MAX() i MIN() nie
+ u�ywaj� indeks�w, mo�liwe jest aby zwr�ci� te warto�ci u�ywaj�c
+ indeks�w poprzez u�ycie ORDER BY i LIMIT.
+ </P>
+ <PRE>
+ SELECT col
+ FROM tab
+ ORDER BY col [ DESC ]
+ LIMIT 1;
+ </PRE>
+ <P>
+ Je�li uwa�asz, �e optimizer myli si� wybieraj�c sequential scan, u�yj
+ SET enable_seqscan TO 'off' i uruchom testy aby sprawdzi� czy wtym
+ wypadku zapytanie b�dzie szybciej wykonywane.
<P>Kiedy u�ywa si� operator�w dopasuj�cych takich jak
- <SMALL>LIKE</SMALL> lub <I>~</I>, indeksy b�d� u�ywane jedynie je�li
- pocz�tek wyszukiwania jest oparty na pocz�tku �a�cucha tekstu.
- Dlatego, aby u�ywac indeks�w,
- dopasowania operatorem <SMALL>LIKE</SMALL> nie mog� si� zaczyna�
- <I>%</I>, a dopasowania operatorem <I>~</I> (dopasowania regularne)
- musz� si� zaczyna� znakiem specjalnym <I>^</I>.</P>
-
+ <SMALL>LIKE</SMALL> lub <I>~</I>, indeksy b�d� u�ywane jedynie w
+ pewnych wypadkach:</P>
+ <UL>
+ <LI>Pocz�tek wyszukiwania jest oparty na pocz�tku �a�cucha tekstu.
+ <UL>
+ <LI>wzorce <SMALL>LIKE</SMALL> nie mog� si� zaczyna� <I>%</I>
+ <LI>dopasowania operatorem <I>~</I> (dopasowania regularne)
+ musz� si� zaczyna� znakiem specjalnym <I>^</I>.</P>
+ </UL>
+ <LI>Pocz�tek wyszukiwania nie mo�e si� zaczyna� od klas znak�w, np.
+ [a-e].
+ <LI>Case-insensitive searches such as ILIKE and ~* do not utilise
+ indexes. Instead, use functional indexes, which are described in
+ section 4.12.
+ <LI>Standardowe locale C musi by� uzyte przy wykonywaniu initdb
+ </UL>
<H4><A name="4.9">4.9</A>) Jak mog� sprawdzi� w jakis spos�b "query
optimizer" wykonuje moje zapytanie?</H4>
@@ -1051,15 +1113,14 @@
<H4><A name="4.12">4.12</A>) Jak mog� u�ywa� wyra�e� regularnych w
zapytaniach i zapyta� case-insensitive w wyra�eniach
regularnych?
- jak korzysta� z indeks�w dla zapyta� case-insensitive?</H4>
+ Jak korzysta� z indeks�w dla zapyta� case-insensitive?</H4>
<P>Operator <I>~</I> moze by� wykorzystywany do wyszukiwania za
pomoc� wyra�e� regularnych, a
<I>~*</I> do wyszukiwania case-insensitive z wyra�eniami
regularnymi.
Wariant case-insensitive dla <SMALL>LIKE</SMALL> zosta� nazwany
- <SMALL>ILIKE</SMALL> i jest dost�pny w PostgreSQL 7.1 i p�niejszych
- wersjach.</P>
+ <SMALL>ILIKE</SMALL>.</P>
<P>Por�wnania case-insensitive s� zazwyczaj wykonywane w nast�puj�cy
spos�b:</P>
@@ -1087,31 +1148,41 @@
<PRE>
Type Nazwa wewn�trzna Uwagi
--------------------------------------------------
-"char" char 1 znak
-CHAR(#) bpchar wype�niane pustymi znakami do podanej d�ugo�ci
-VARCHAR(#) varchar rozmiar okre�la maksymaln� d�ugo��, nie ma tutaj wype�niania
+VARCHAR(n) varchar rozmiar okre�la maksymaln� d�ugo��, nie ma tutaj wype�niania
+CHAR(n) bpchar wype�niane pustymi znakami do podanej d�ugo�ci
TEXT text bez limitu na d�ugo�� �a�cucha
BYTEA bytea zmiennej d�ugo�ci tablica bajt�w (null-byte safe)
+"char" char 1 znak
</PRE>
<P>Je�li b�dziesz przegl�da� katalogi systemowe lub komunikaty o
b��dach cz�sto spotkasz si� z podanymi powy�ej nazwami
wewn�trznymi.</P>
- <P>Ostatnie cztery typy powy�ej to tzw typy "varlena" (np. pierwsze
+ <P>Pierwsze cztery typy powy�ej to tzw typy "varlena" (np. pierwsze
cztery bajty na dysku to d�ugo��, po kt�rych jest data). Dlatego
faktyczna d�ugo�c takiego �a�cucha jest troch� wi�ksza ni�
zadeklarowany rozmiar. Te typy tak�e podlegaj� kompresji lub mog� by�
przechowywane out-of-line jako <SMALL>TOAST</SMALL>, wi�c faktyczne
zu�ycie miejsca na dysku mo�e by� mniejsze ni� oczekiwane.</P>
- <P><SMALL>CHAR()</SMALL> jast najlepszym typem do przechowywania
- �a�cuch�w o tej samej d�ugo�ci. <SMALL>VARCHAR()</SMALL> jest
+ <SMALL>VARCHAR(n)</SMALL> jest
najodpowiedniejszy do przechowywania �a�cuch�w o r�nej d�ugo�ci
- ale okre�la on maksymaln� jego d�ugo��. <SMALL>TEXT</SMALL> jest
- najlepszy dla �a�cuch�w o dowolnej d�ugo�ci, nie przekraczaj�cej 1GB.
- <SMALL>BYTEA</SMALL> s�u�y do przechowywania danych binarnych,
- w szczeg�lno�ci dla danych zawieraj�cych <SMALL>NULL</SMALL> bajty.</P>
+ ale okre�la on maksymaln� jego d�ugo��.
+
+ <SMALL>TEXT</SMALL> jest najlepszy dla �a�cuch�w o dowolnej d�ugo�ci,
+ nie przekraczaj�cej 1GB.</P>
+
+ <P>
+ <SMALL>CHAR(n)</SMALL> jast najlepszym typem do przechowywania
+ �a�cuch�w o tej samej d�ugo�ci. CHAR(n) wype�nia dane do �adanej
+ d�ugo�ci, podczas gdy VARCHAR(n) przechowuje jedynie dane
+ dostarczone.
+
+ <SMALL>BYTEA</SMALL> s�u�y do przechowywania danych binarnych,
+ w szczeg�lno�ci dla danych zawieraj�cych <SMALL>NULL</SMALL> bajty.
+ Wszystkie typy opisane tutaj maja podobne charakterystyki je�li
+ chodzi o wydajno��.</P>
<H4><A name="4.15.1">4.15.1</A>) Jak mog� utworzy� pole kt�re samo
zwi�ksza swoj� warto��?</H4>
@@ -1188,7 +1259,7 @@ BYTEA bytea zmiennej d�ugo�ci tablica bajt�w (null-byte s
<H4><A name="4.15.4">4.15.4</A>) Dlaczego numery sekwencji nie s�
ponownie u�ywane przy przerwaniu transakcji?
- Sk�d si� bior� luki w numerowaniu kolumny tabeli
+ Sk�d si� bior� luki w numerowaniu kolumny tabeli
sekwancjami/SERIALem?</H4>
<P>Aby poprawi� zbie�no�� (concurrency), warto�ci sekwencji s�
@@ -1197,8 +1268,7 @@ BYTEA bytea zmiennej d�ugo�ci tablica bajt�w (null-byte s
numerowaniu z przerwanych transakcji.</P>
<H4><A name="4.16">4.16</A>) Co to jest <SMALL>OID</SMALL>? Co to
- jest
- <SMALL>TID</SMALL>?</H4>
+ jest <SMALL>TID</SMALL>?</H4>
<P><SMALL>OID</SMALL> s� PostgreSQL'owym rozwi�zaniem problemu
unikalnych numer�w rz�d�w. Ka�dy rz�d tworzony przez PostgreSQL
@@ -1274,15 +1344,15 @@ BYTEA bytea zmiennej d�ugo�ci tablica bajt�w (null-byte s
</UL>
<P>List� termin�w zwi�zanych z bazami danych mo�esz znale�� pod tym
- adresem:<A href=
- "http://www.comptechnews.com/~reaster/dbdesign.html">http://www.comptechnews.com/~reaster/dbdesign.html</A></P>
+ adresem:<A
+ href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html</A>.
<H4><A name="4.18">4.18</A>) Sk�d bierze si� ten b��d <I>"ERROR:
Memory exhausted in AllocSetAlloc()"</I>?</H4>
- <P>Je�li u�ywasz wersji starszej ni� 7.1, upgrade mo�e rozwi�za� ten
- problem. Jest tak�e mozliwe, �e po prostu wyczerpa�a Ci si� pami��
- wirtualna (virtual memory) w systemie lub Tw�j kernel ma zbyt nisko
+ <P>
+ Prawdopodobnie wyczerpa�a Ci si� pami�� wirtualna (virtual memory)
+ w systemie lub Tw�j kernel ma zbyt nisko
ustawione limity dla pewnych zasob�w. Spr�buj wykona� nast�puj�ce
polecenia zanim uruchomisz <I>postmaster'a</I>:</P>
<PRE>
@@ -1332,29 +1402,38 @@ BYTEA bytea zmiennej d�ugo�ci tablica bajt�w (null-byte s
<H4><A name="4.22">4.22</A>) Dlaczego zapytania u�ywaj�ce
<CODE><SMALL>IN</SMALL></CODE> sa takie wolne?</H4>
- <P>Obecnie ��czymy podzapytania w outer queries poprzez sekwencyjne
- przeszukiwanie wynik�w podzapytania dla ka�dego rz�du z outer query.
- Mo�na to omin�� zast�puj�c <CODE>IN</CODE> przez
+ <P>W wersjach wcze�niejszych ni� 7.4 ��czymy podzapytania w outer queries
+ poprzez sekwencyjne przeszukiwanie wynik�w podzapytania dla ka�dego rz�du
+ z outer query. Je�li podzapytanie zwraca jedynie kilka rz�d�w a
+ zewn�trzne zapytanie zwraca ich wiele, IN jest najszybsze.
+ Aby przyspieszy� inne zapytania mo�na zast�pi� <CODE>IN</CODE> przez
<CODE>EXISTS</CODE>:</P>
<PRE>
<CODE>SELECT *
FROM tab
- WHERE col1 IN (SELECT col2 FROM TAB2)
+ WHERE col IN (SELECT subcol FROM subtab)
</CODE>
</PRE>
na:
<PRE>
<CODE>SELECT *
FROM tab
- WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2)
+ WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col)
</CODE>
</PRE>
- Mamy zamiar poprawi� to ograniczenie w przysz�ych wydaniach.
-
+ <P>
+ Aby to rozwi�zanie by�o szybkie, subcol powinna by� kolumn�
+ indeksowan�.
+ </P>
+ <P>
+ W wersji 7.4 i p�niejszych, IN w rzeczywisto�ci u�ywa tej samej
+ wyrafinowanej techniki ��czenia jak normalne zapytania i jest
+ preferowane nad u�ywaniem EXISTS.
+ </P>
<H4><A name="4.23">4.23</A>) Jak wykona� "outer join"?</H4>
- <P>PostgreSQL 7.1 i p�niejsze wersje maj� zaimplementowane outer join
- wykorzystuj�c standardow� sk�adnie SQL. Poni�ej dwa przyk�ady:</P>
+ <P>PostgreSQL ma zaimplementowane outer join
+ wykorzystuj�c standardow� sk�adni� SQL. Poni�ej dwa przyk�ady:</P>
<PRE>
SELECT *
@@ -1367,7 +1446,7 @@ BYTEA bytea zmiennej d�ugo�ci tablica bajt�w (null-byte s
</PRE>
<P>Te dwa identyczne zapytania ��cz� kolumn� t1.col z kolumn� t2.col,
- ale tak�e zwr�c� niepo��czone rz�dy w t1 (te kt�re nie pasuj� w t2).
+ ale tak�e zwr�c� niepo��czone rz�dy w t1 (te, kt�re nie pasuj� w t2).
<SMALL>RIGHT</SMALL> join doda�by niepo��czone rz�dy z tabeli t2.
<SMALL>FULL</SMALL> join zwr�ci�by rz�dy plus dodatkowo wszystkie
rz�dy z tabel t1 i t2. S�owo <SMALL>OUTER</SMALL> jest opcjonalne i
@@ -1401,19 +1480,63 @@ BYTEA bytea zmiennej d�ugo�ci tablica bajt�w (null-byte s
katalogi systemowe, nie jest do ko�ca jasne jak zapytanie pomi�dzy
r�nymi bazami danych powinno si� zachowywa�.</P>
- <P>Oczywi�cie klient mo�e ��czy� si� z r�nymi bazami danych i ��czy�
- informacj� w ten spos�b uzyskan�.</P>
+ <P><I>contrib/dblink</I> pozwala na wykonywanie zapyta� poprzez r�ne
+ bazy danych wywo�uj�c odpowiednie funkcje. Oczywi�cie klient mo�e ��czy�
+ si� z r�nymi bazami danych i ��czy� informacj� w ten spos�b uzyskan�
+ po stronie klienta.</P>
<H4><A name="4.25">4.25</A>) Jak zwr�ci� w funkcji wiele rz�d�w lub
kolumn?</H4>
- <P>Mo�esz zwraca� zbiory z funkcji PL/pgSQL u�ywaj�c
- <i>refcursors</i>. Zobacz <a
- href="http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html">
- http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html,</a>
- sekcj� 23.7.3.3.</P>
-
+ <P>Mo�esz w �atwy spos�b zwraca� wiele rz�d�w lub kolumn u�ywaj�c
+ funkcji z: <A HREF="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</A>.
+ <H4><A name="4.26">4.26</A>) Dlaczego nie mog� w spos�b pewny
+ tworzy�/usuwa� tabel tymczasowych w funkcjach PL/PgSQL?</H4>
+ <P>
+ PL/PgSQL przechowuje w cache zawarto�� funkcji, niepo��danym efektem tego
+ jest to, �e gdy taka funkcja korzysta z tabel tymczasowych, kt�re s�
+ p�niej kasowane i odtwarzane, a funkcja wywo�ywana jest ponownie,jej
+ wywo�anie nie powiedzie si� poniewa� cachowana funkcja wci�� b�dzie
+ wskazywa� na stara tablic� tymczasow�. Rozwi�zaniem tego problemu jest
+ u�ywanie EXECUTE aby korzysta� z tabel tymczasowych w PL/PgSQL. To
+ spowoduje, �e zapytanie b�dzie parsowane przy ka�dym wywo�aniu
+ funkcji.
+ </P>
+
+ <H4><A name="4.27">4.27) Jakie s� mo�liwo�ci replikacji w PostgreSQL?</H4>
+ <P>
+ Jest kilka opcji aby stosowa� replikacj� typu master/slave. Ten typ
+ pozwala jedynie masterowi na dokonywanie zmian w bazie danych, a
+ slave mo�e jedynie te zmiany odczytywa�. Na stronie
+ <A
+ HREF="http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research</A>
+ znajduje si� ich lista. Replikacja typu multi-master jest w trakcie
+ prac, opis projektu znajduje si� pod adresem: <A
+ HREF="http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php">
+http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php</A>.
+ </P>
+
+ <H4><A name="4.28">4.28) Jakie mo�liwo�ci szyfrowania oferuje
+ PostgreSQL?</H4>
+ <P>
+ <UL>
+ <LI>contrib/pgcrypto zawiera wiele funkcji za pomoc�, kt�rych mo�emy u�ywa�
+ kryptografii w zapytaniach SQL.
+ <LI>Aby szyfrowa� transmisj� od klienta do serwera, ten musi mie�
+ ustawion� opcj� ssl na true w pliku postgresql.conf, odpowiedni
+ wpis host lub hostssl musi wyst�powa� w pliku pg_hba.conf, oraz
+ sslmode nie mo�e by� wy��czone w kliencie. (Warto zwr�ci� uwag�, �e
+ mo�liwe jest tak�e u�ywanie transport�w szyfruj�c�w przez strony
+ trzecie, takie jak stunnel lub ssh, poza natywnym wsparciem dla SSL
+ przez PostgreSQL).
+ <LI>Has�a u�ytkownik�w bazy danych s� automatycznie szyfrowane od
+ wersji 7.3. W poprzednich wersjach, nale�y t� funkcjonalno�� poprzez
+ w��czenie opcji PASSWORD_ENCRYPTION w postgresql.conf.
+ <LI>Serwer mo�e dzia�a� u�ywaj�c szyfrowanego systemu plik�w.
+ </UL>
+</P>
+
<H2 align="center">Rozwijanie PostgreSQL</H2>
<H4><A name="5.1">5.1</A>) Napisa�em w�asn� funkcj�. Kiedy u�yj� jej
@@ -1432,8 +1555,12 @@ BYTEA bytea zmiennej d�ugo�ci tablica bajt�w (null-byte s
<H4><A name="5.3">5.3</A>) Jak napisa� funkcj� C zwracaj�c� krotk�
(tuple)?</H4>
- <P>To wymaga wysi�ku tak olbrzymiego, �e nawet autorzy nigdy tego nie
- prubowali, chocia� z zalo�e� wynika, �e jest to mo�liwe.</P>
+ <P>
+ W wersjach PostgreSQL od numeru 7.3, funckje zwracaj�ce tabele s� w
+ p�lni wspierane w C, PL/PgSQL i SQL. Sprawd� w Programmer's Guide aby
+ uzyska� wi�cej informacji. Przyk�ad funkcji napisanej w C zwracaj�cej
+ tabel� zosta� umieszczony w <I>contrib/tablefunc</I>.
+ </P>
<H4><A name="5.4">5.4</A>) Zmieni�em plik �r�d�owy. Dlaczego po
rekompilacji nie wida� zmiany?</H4>
@@ -1443,6 +1570,8 @@ BYTEA bytea zmiennej d�ugo�ci tablica bajt�w (null-byte s
<I>make clean</I>, a nast�pnie ponownie <I>make</I>.
Je�li u�ywasz <SMALL>GCC</SMALL> mo�esz u�y� opcji
<I>--enable-depend</I> przy wykonywaniu <I>configure</I> aby
+ kompilator m�g� okre�li� zale�no�ci samodzielnie.
+ </P>
</BODY>
</HTML>