From 5c996884a05ad62f00b8e4432beca1d7dd177d61 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Thu, 1 Nov 2007 17:28:03 +0000
Subject: [PATCH] Update Czech FAQ.

Pavel Stehule
---
 doc/FAQ_czech              | 1818 +++++++++++++++---------------------
 doc/src/FAQ/FAQ_czech.html | 1806 +++++++++++++----------------------
 2 files changed, 1417 insertions(+), 2207 deletions(-)

diff --git a/doc/FAQ_czech b/doc/FAQ_czech
index 78696bad58c..d065fa1f9c0 100644
--- a/doc/FAQ_czech
+++ b/doc/FAQ_czech
@@ -1,1117 +1,849 @@
 
-                     Často kladené dotazy (FAQ) PostgreSQL
+                          Frequently Asked Questions
                                        
-   Poslední aktualizace: Středa 23. června 21:10:00 EST 2004
+   Casto kladené dotazy (FAQ) PostgreSQL
    
-   Současný správce: Bruce Momjian (pgman@candle.pha.pa.us)
+   Poslední aktualizace: 29. ríjna 2007 (aktualizováno pro PostgreSQL
+   8.3)
    
-   Přeloľil: Pavel Stěhule (stehule@kix.fsv.cvut.cz)
+   Soucasný správce: Bruce Momjian (bruce@momjian.us)
    
-   Aktuální verzi tohoto dokumentu naleznete na adrese:
-   http://www.PostgreSQL.org/docs/faqs/FAQ.html. Český překlad na adrese:
-   http://www.PostgreSQL.org/docs/faqs/FAQ_czech.html.
+   Prelozil: Pavel Stehule (pavel.stehule@gmail.com)
    
-   Odpovědi na dotazy relevantní ke konkrétním platformám lze nalézt na
-   adrese: http://www.PostgreSQL.org/docs/index.html.
+   Nejaktuálnejsí verzi tohoto dokumentu naleznete na adrese
+   http://www.postgresql.org/files/documentation/faqs/FAQ.html
+   
+   Odpovedi na otázky vázané na konkrétní platformy naleznete na adrese
+   http://www.postgresql.org/docs/faq/.
      _________________________________________________________________
    
                                Obecné otázky
                                       
-   1.1) Co je PostgreSQL? Jak se vyslovuje?
-   1.2) Jaká je licence na PostgreSQL?
-   1.3) Na kterých Unixex lze spustit PostgreSQL?
-   1.4) Které ne-unixové platformy jsou podporované?
+   1.1) Co je to PostgreSQL? Jaká je správná výslovnost slova PostgreSQL?
+   1.2) Kdo rídí vývoj PostgreSQL?
+   1.3) Pod jakou licencí je PostgreSQL?
+   1.4) Na kterých platformách lze provozovat PostgreSQL?
    1.5) Kde mohu získat PostgreSQL?
-   1.6) Kde mohu získat podporu?
-   1.7) Kde je poslední verze?
-   1.8) Jaká je dostupná dokumentace?
-   1.9) Kde najdu seznam známých chyb nebo nepodporovaných vlastností?
-   1.10) Jak se mohu naučit SQL?
-   1.11) Nemá PostgreSQL problémy s rokem 2000?
-   1.12) Jak se připojit k vývojářskému týmu?
-   1.13) Kam podat report o chybě?
-   1.14) Jak je na tom PostgreSQL v porovnání s jinými databázemi?
-   1.15) Jak lze finančně pomoci PostgreSQL?
-   
-                             User client dotazy
+   1.6) Jaká je poslední verze?
+   1.7) Kde mohu získat podporu?
+   1.8) Jak a kam hlásit chyby?
+   1.9) Kde najdu informace o známých chybách nebo nepodporovaných
+   vlastnostech?
+   1.10) Jaká je dostupná dokumentace?
+   1.11) Jak se mohu naucit SQL?
+   1.12) Jak se mohu pripojit k týmu vývojáru?
+   1.13) Jak je na tom PostgreSQL v porovnání s jinými databázemi?
+   1.14) Je PostgreSQL pripraven na aktuální zavádení letního casu v
+   nekterých zemích?
+   
+                        Dotazy na klientská rozhraní
                                       
-   2.1) Kde naleznu ODBC ovladače pro PostgreSQL?
-   2.2) Jaké nástroje lze pouľít pro PostgreSQL a web?
+   2.1) Která rozhraní jsou pouzitelná pro PostgreSQL?
+   2.2) Jaké nástroje lze pouzít pro PostgreSQL a web?
    2.3) Existuje grafické rozhraní pro PostgreSQL?
-   2.4) Které programovací jazyky mají podporu pro PostgreSQL?
    
                            Administrativní dotazy
                                       
-   3.1) Jak nainstalovat PostgreSQL jinam neľ do /usr/local/pgsql?
-   3.2) Při startu postmaster, dostanu chybové hláąení Bad System Call
-   nebo core dump. Proč?
-   3.3) Při startu postmastera dostanu hláąení o chybě IpcMemoryCreate.
-   Proč?
-   3.4) Při startu postmastera dostanu hláąení o chybě
-   IpcSemaphoreCreate. Proč?
-   3.5) Jak povolit nebo zakázat přístup z jiných stanic?
-   3.6) Jak ladit databázový stroj na lepąí výkon?
-   3.7) Jaké jsou moľnosti ladění?
-   3.8) Proč dostanu "Sorry, too many clients", kdyľ se zkouąím připojit?
-   3.9) K čemu slouľí adresář pgsql_tmp?
-   3.10) Proč je poľadováno dump a obnovení (load) databáze během upgrade
-   mezi velkými verzemi PostgreSQL?
+   3.1) Jak nainstalovat PostgreSQL jinam nez do /usr/local/pgsql?
+   3.2) Jak nastavit pravidla pro prístup z jiných stanic?
+   3.3) Jak vyladit databázi na vyssí výkon?
+   3.4) Jaké mám ladící prostredky?
+   3.5) Co znamená "Sorry, too many clients", kdyz se zkousím pripojit?
+   3.6) Proc je nutný dump a obnovení (load) databáze pri upgradu
+   PostgreSQL?
+   3.7) Jaký hardware bych mel pouzívat?
    
                               Provozní dotazy
                                       
-   4.1) Čím se liąí binární a normální kurzor?
-   4.2) Jak získat pouze první řádek dotazu? Náhodný řádek?
-   4.3) Jak získám seznam tabulek nebo jinak jak jej získá psql?
-   4.4) Jak odstraním sloupec tabulky, jak změním jeho typ?
-   4.5) Jaká je maximální velikost řádku, tabulky a databáze?
-   4.6) Kolik diskového prostoru je potřeba k uloľení dat z normálního
+   4.1) Jak získat pouze první rádek dotazu? Náhodný rádek?
+   4.2) Jak získám seznam tabulek, indexu, databází, a definovaných
+   uzivatelu. Mohu videt dotazy, které pouzívá psql pro zobrazení techto
+   informací?
+   4.3) Jak zmenit datový typ sloupce?
+   4.4) Jaká je maximální velikost rádku, tabulky a databáze?
+   4.5) Kolik diskového prostoru je potreba k ulození dat z normálního
    textového souboru?
-   4.7) Jak získám seznam vytvořených tabulek, indexů, databází?
-   4.8) Můj dotaz je pomalý a nepouľívá vytvořené indexy. Proč?
-   4.9) Jak zjistím, jak optimizer dotazu vyhodnocuje můj dotaz?
-   4.10) Co to je R-tree index?
-   4.11) Co je Genetic Query Optimizer?
-   4.12) Jak provést vyhledávání regulárního výrazu case sensitiv,
-   insensitiv? Jak pouľít index pro case insensitive vyhledávání?
-   4.13) Jak v dotazu detekovat, ľe poloľka je NULL?
-   4.14) Jaké jsou rozdíly mezi různými znakovými typy?
-   4.15.1) Jak vytvořit serial/auto-increment pole?
-   4.15.2) Jak získat hodnotu SERIAL po vloľení řádku?
-   4.15.3) Nepovede currval() a nextval() k rozhození podmínek při
-   souběhu s jinými uľivateli?
-   4.15.4) Proč není vygenerované číslo pouľito při přeruąení transakce?
-   Proč vznikají díry v číslování vlastní sekvencí/SERIAL sloupce?
-   4.16) Co to je OID? Co je to TID?
-   4.17) Jaký je význam některých výrazů pouľitých v PostgreSQL?
-   4.18) Proč jsem získal chybové hláąení "ERROR: Memory exhausted in
+   4.6) Muj dotaz je pomalý a nepouzívá vytvorené indexy. Proc?
+   4.7) Jak zjistím, jak se vyhodnocuje muj dotaz?
+   4.8) Jak pouzít case-(in)sensitive regulární výraz? Jak pouzít index
+   pro case insensitive hledání?
+   4.9) Jak v dotazu detekovat, ze polozka je NULL? Jak bezpecne spojit
+   dva retezce, pokud mohou obsahovat NULL? Lze trídit podle toho, jestli
+   je polozka NULL nebo ne?
+   4.10) Jaké jsou rozdíly mezi ruznými znakovými typy?
+   4.11.1) Jak vytvorit serial/auto-increment polozku?
+   4.11.2) Jak získat hodnotu SERIAL po vlození rádku?
+   4.11.3) Nezpusobí currval() a nextval() problémy ve více uzivatelském
+   prostredí?
+   4.11.4) Proc není vygenerované císlo pouzito pri prerusení
+   transakce?Proc vznikají díry v císlování prostrednictvím sekvence nebo
+   typu SERIAL?
+   4.12) Co to je OID? Co je to CTID?
+   4.13) Co znamená chybové hlásení "ERROR: Memory exhausted in
    AllocSetAlloc()"?
-   4.19) Jak se dozvím, kterou verzi PostgreSQL pouľívám?
-   4.20) Proč operace s velkými objekty končí "invalid large obj
-   descriptor"?
-   4.21) Jak vytvořit sloupec obsahující implicitně aktuální datum?
-   4.22) Proč jsou moje vnořené dotazy pouľívající IN tak pomalé?
-   4.23) Jak provést vnějąí spojení (outer join)?
-   4.24) Jak provést dotaz napříč několika databázemi?
-   4.25) Můľe funkce vrátit více řádků nebo sloupců?
-   4.26) Proč nelze spolehlivě vytvářet a ruąit dočasné tabulky v
-   PL/pgSQL funkcích?
-   4.27) Jaké jsou moľnosti replikace databází?
-   4.28) Jaké jsou moľnosti ąifrování databází?
-   
-                           Roząiřování PostgreSQL
-                                      
-   5.1) Napsal jsem UDF funkci, PostgreSQL vąak končí dump core?
-   5.2) Jak mohu přispět nějakými ąikovnými datovými typy a funkcemi do
-   PostgreSQL?
-   5.3) Jak napsat funkci v C vracející ntici?
-   5.4) Modifikoval jsem zdrojové soubory. Tato změna nebyla při
-   rekompilaci vzata v potaz. Proč?
+   4.14) Jak zjistím, kterou verzi PostgreSQL pouzívám?
+   4.15) Jak vytvorit sloupec, který bude implicitne obsahovat aktuální
+   cas?
+   4.16) Jak provést vnejsí spojení (outer join)?
+   4.17) Jak provést dotaz napríc nekolika databázemi?
+   4.18) Muze funkce vrátit více rádku nebo sloupcu?
+   4.19) Co je prícinou chyby "relation with OID xxxxx does not exist"?
+   4.20) Jaké jsou moznosti replikace databází?
+   4.21) Proc v dotazu nejsou rozpoznány názvy mých tabulek nebo funkcí?
+   Proc jsou velká písmena v názvech automaticky prevedena na malá
+   písmena?
      _________________________________________________________________
    
                                Obecné otázky
                                       
-    1.1) Co je PostgreSQL? Jak se vyslovuje?
-    
-   PostgreSQL se vyslovuje Post-Gres-Q-L. Zvukový záznam je dostupný na
-   adrese .
-   
-   PostgreSQL vychází z databáze POSTGRES (a stále je někdy označován
-   zjednoduąeně jako Postgres) - výzkumného prototypu DBMS nové generace.
-   Z postgresu byl převzat silný datový model a bohatý soubor datových
-   typů a jeho dotazovací jazyk PostQuel byl nahrazen roząířenou
-   podmnoľinou jazyka SQL. PostgreSQL lze pouľívat bez omezení a jeho
-   zdrojové kódy jsou volně k dispozici.
-   
-   PostgreSQL vyvýjí tým vývojářů přihláąených do vývojářské konference
-   PostgreSQL. Současným koordinátorem je Marc G. Fournier
-   (scrappy@PostgreSQL.org). (viz 1.6 - jak se zapojit). Tento tým je
-   zodpovědný za veąkerý vývoj PostgreSQL. Jedná se o veřejný projekt,
-   který není řízen ľádnou firmou. Pokud se chcete zapojit, přečtěte si
-   developer's FAQ na adrese
-   http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html
-   
-   Autory první verze PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. Do
-   portace, testování, ladění a roząiřování kódu se zapojilo mnoho
-   daląích vývojářů . Původni kód Postgresu, ze kterého PostgreSQL
-   vychází, je výsledkem úsilí mnoha studentů a programátorů pracujících
-   pod vedením prof. Michaela Stonebrakera na University of California v
-   Berkley.
-   
-   Původní název software z Berkley byl Postgres. Po přidání jazyka SQL
-   se název změnil na Postgres95. Koncem roku 1996 byl RDBMS přejmenován
-   na PostgreSQL.
-   
-    1.2) Jaká je licence na PostgreSQL?
-    
-   PostgreSQL je předmětem následujících autorských práv:
-   
-   Dílčí Copyright (c) 1996-2007, PostgreSQL Global Development Group
-   Dílčí Copyright (c) 1994-6, Regents of the University of California
-   
-   Uděluje se oprávnění k uľití, rozmnoľování, provádění úprav a
-   roząiřování tohoto softwaru a dokumentace k němu, pro jakékoli účely,
-   bez licenčního poplatku a bez písemné licenční smlouvy, za podmínky,
-   ľe na vąech jeho kopiích je uvedeno oznámení o výąe uvedených právech,
-   jakoľ i obsah tohoto a dvou následujících odstavců.
-   
-   THE UNIVERSITY OF CALIFORNIA ("KALIFORNSKÁ UNIVERZITA") NENÍ V ®ÁDNÉM
-   PŘÍPADĚ ODPOVĚDNA ®ÁDNÉ TŘETÍ OSOBĚ ZA PŘÍMOU, NEPŘÍMOU, ZVLÁ©TNÍ,
-   NAHODILOU NEBO VÝSLEDNOU ©KODU, VČETNĚ U©LÉHO ZISKU, ZPůSOBENOU U®ITÍM
-   TOHOTO SOFTWARU A DOKUMENTACE K NĚMU, A TO I V PŘÍPADĚ, ®E THE
-   UNIVERSITY OF CALIFORNIA BYLA INFORMOVÁNA O MO®NOSTI VZNIKU TAKOVÉ
-   ©KODY.
-   
-   HE UNIVERSITY OF CALIFORNIA ZEJMÉNA NEPOSKYTUJE JAKÉKOLI ZÁRUKY, A TO
-   NEJEN ZÁRUKY OBCHODOVATELNOSTI A VHODNOSTI TOHOTO VýROBKU KE
-   SPECIFICKýM ÚČELůM. NÍ®E UVEDENý SOFTWARE JE POSKYTNUT "JAK STOJÍ A
-   LE®Í" A THE UNIVERSITY OF CALIFORNIA NENÍ POVINNA ZAJISTIT JEHO
-   ÚDR®BU, PODPORU, AKTUALIZACI, VYLEP©ENÍ NEBO MODIFIKACI.
-   
-   Výąe uvedené je BSD licence, běľná licence otevřeného zdroje. Není zde
-   ľádné omezení ohledně uľití kódu zdroje. Jsme s tím spokojeni a nemáme
-   v úmyslu na této skutečnosti cokoli měnit.
-   
-    1.3) Na kterých Unixex lze spustit PostgreSQL?
-    
-   PostgreSQL běľí na vąech moderních unixových platformách. V
-   instalačních instrukcích naleznete aktuální seznam vąech platforem na
-   kterých byla testováním ověřena funkcionalita PostgreSQL.
-   
-    1.4) Které ne-unixové platformy jsou podporované?
-    
-   Klient
-   
-   Knihovna libpq, psql a některé daląí moduly byly přeloľeny pro MS
-   Windows. Klienta lze provozovat na MS Windows, ten prostřednictvím
-   TCP/IP protokolu komunikuje se serverem běľícím na některé z
-   podporovaných Unixových platforem. K překladu lze pouľít win32.mak a
-   Win32 knihovny libpq a psql. K databázi PostgerSQL lze přistupovat
-   skrze rozhraní ODBC.
-   
-   Server
-   
-   Server můľe být na WindowsNT a Win2k provozován pouze s knihovnou
-   Cygwin, Cygnus Unix/NT porting library. Více pgsql/doc/FAQ_MSWIN v
-   distribuci nebo MS Windows FAQ na adrese
-   http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN.
-   
-   Na nativním portu pro MS Win NT/2000/XP se pracuje. Daląí informace o
-   aktuálním stavu PostgreSQL pro Windows naleznet na adrese
-   http://techdocs.postgresql.org/guides/Windows a
-   http://momjian.postgresql.org/main/writings/pgsql/win32.html.
-   
-   Existující port pro Novell Netware 6 naleznete na
-   http://forge.novell.com.
-   
-    1.5) Kde mohu získat PostgreSQL?
-    
-   Primárním anonymním ftp serverem pro PostgreSQL je
-   ftp://ftp.PostgreSQL.org/pub. Seznam zrcadel naleznete na naąich
-   webových stránkách.
-   
-    1.6) Kde mohu získat podporu?
-    
-   Hlavní mailová konference je: pgsql-general@PostgreSQL.org. Slouľí k
-   diskuzím ohledně PostgreSQL. Přihlásíte se zasláním mailu obsahující
-   následující řádky v těle dopisu (nikoliv v záhlaví - subjectu):
-    subscribe
-    end
-
-   na adresu pgsql-general-request@PostgreSQL.org.
-   
-   Můľete si vyľádat denní přehled (diggest), který má zhruba 30K denně
-   zpráv.
-   
-   Konference psql-bugs je určena k zasílání zpráv o chybách. Pro
-   přihláąení poąlete mail se stejným obsahem jako v předchozím případě
-   na adresu pgsql-bugs-request@PostgreSQL.org.
-   
-   Do vývojářské konference se přihlásíte odesláním dopisu s jiľ
-   zmiňovaným obsahem na mailto:pgsql-hackers-request@PostgreSQL.org.
-   
-   Seznam daląích konferencí naleznete na stránkách PostgreSQL:
-   
-     http://www.postgresql.org
-     
-    1.7) Jaká je poslední verze?
-    
-   Poslední verze PostgreSQL je 7.4.3. Plánujeme uvolnit významnou verzi
-   kaľdých ąest aľ osm měsíců.
-   
-    1.8) Jaká je dostupná dokumentace?
-    
-   Různé manuály, manuálové stránky a několik malých testovacích příkladů
-   jsou součásti distribuce. Podívejte se do adresáře /doc. Manuály jsou
-   přístupné online na http://www.PostgreSQL.org/docs.
-   
-   Na adresách http://www.PostgreSQL.org/docs/awbook.html a
-   http://www.commandprompt.com/ppbook/ naleznezte dvě online knihy o
-   PostgreSQL. Seznam dostupné literatury je na
-   http://techdocs.PostgreSQL.org/techdocs/bookreviews.php. Soubor
-   technických článků s tematikou PostgresQL najdete na
-   http://techdocs.PostgreSQL.org/.
-   
-   psql má uľitečný metapříkaz \d slouľící k zobrazení informací o
-   typech, operátorech, funkcí, agregačních funkcí atd.
-   
-   Více dokumentace naleznete na naąich webových stránkách.
-   
-    1.9) Kde najdu seznam známých chyb nebo nepodporovaných vlastností?
-    
-   PostgreSQL podporuje roząířenou podmnoľinu SQL-92. V naąem TODO
-   najdete seznam známých chyb, chybějících vlastností a seznam
-   vlastností, které budou do systému implementovány v budoucnu (včetně
-   priorit).
-   
-    1.10) Jak se mohu naučit SQL?
-    
-   V knize The PostgreSQL book na
-   http://www.PostgreSQL.org/docs/awbook.html je vysvětlen jazyk SQL
-   (vyąla česky). Daląí dostupnou knihou je
-   http://www.commandprompt.com/ppbook. Kvalitní návody naleznete na
-   http://www.intermedia.net/support/sql/sqltut.shtm, a na
-   http://sqlcourse.com.
-   
-   Daląí je Teach Yourself SQL in 21 days, Second Edition na
-   http://members.tripod.com/er4ebus/sql/index.htm.
-   
-   Mnoho uľivatelů doporučuje The Practical SQL Handbook, Bowman, Judith
-   S., et al., Addison-Wesley. Jiní preferují The Complete Reference SQL,
-   Groff et al., McGraw-Hill.
-   
-    1.11) Nemá PostgreSQL problémy s rokem 2000?
-    
-   Nemá, můľeme pracovat s datumy po roce 2000 naąeho letopočtu i před
-   rokem 2000 př.n.l.
-   
-    1.12) Jak se připojit k vývojářskému týmu?
-    
-   Nejdříve si stáhněte nejnovějąí zdroje a přečtěte si vývojářskou
-   dokumentaci na naąem webu nebo v distribuci. Pak se přihlaąte do
-   konferencí pgsql-hackers a pgsql-patches. Kvalitní záplaty posílejte
-   do pgsql-patches.
-   
-   Právo commit má v CVS archivu asi třinácti lidí. Kaľdý z nich poslal
-   mnoho kvalitních záplat, takľe tehdejąí commiters měli jistotu, ľe
-   budou předkládat jenom kvalitní záplaty a mohli jim předělit větąí
-   práva.
-   
-    1.13) Kam podat report o chybě?
-    
-   Navątivte naąi PostgreSQL BugTool stránku na
-   http://www.PostgreSQL.org/bugs/bugs.php, která obsahuje návod a
-   směrnice jak podat chybový report.
-   
-   Ověřte si na naąem ftp serveru ftp://ftp.PostgreSQL.org/pub, zda-li
-   máte nejnovějąí verzi PostgreSQL a zda-li k ní neexistují nějaké
-   záplaty.
-   
-    1.14) Jak je na tom PostgreSQL v porovnání s jinými databázemi?
-    
-   Existuje několik hledisek jak porovnávat software: vlastnosti, výkon,
-   spolehlivost, podpora a cena.
-   
-   Vlastnosti
-          PostgreSQL má hodně společných vlastností s velkými komerčními
-          DBMS, např. transakce, vnořené dotazy, spouątě, pohledy,
-          kontrolu referenční integrity a sofistikované zamykání.
-          Podporuje některé vlastnosti, které tyto systémy nemají,
-          uľivatelem definované typy, dědičnost, pravidla, MVCC
-          redukující zamykání.
-          
-   Výkon
-          Výkonnostně je na tom PostgreSQL podobně jako daląí komerční
-          ale i open source databáze, v něčem je rychlejąí, jindy
-          pomalejąí. V porovnání s MySQL a podobnými databázovými systémy
-          je PostgreSQL rychlejąí při víceuľivatelském přístupu,
-          sloľitějąích dotazech a zatíľení read/write dotazy. MySQL je
-          rychlejąí v jednoduąąích dotazech s malým počtem uľivatelů.
-          Navíc, MySQL nepodporuje mnohé vlatnosti zmíněné v sekci
-          vlastnosti. Zapracovali jsme na spolehlivosti a podporovaných
-          vlastnostech, a výkon zvyąujeme v kaľdé verzi. Zajímavou
-          stránku porovnávající PostgreSQL a MySQL naleznete na
-          http://openacs.org/philosophy/why-not-mysql.html. Za vývojem
-          MySQL není Open Source komunita, ale komerční společnost,
-          přestoľe svoje produkty distribuuje jako Open Source.
-          
-   Spolehlivost
-          Jsme si vědomi, ľe databáze musí být spolehlivá, jinak je
-          nepouľitelná. Snaľíme se zveřejňovat dobře otestovaný, stabilní
-          kód s minimem chyb. Kaľdá verze je více neľ měsíc v beta
-          testování, a naąe historie verzí ukazuje, ľe můľeme nabídnout
-          stabilní, solidní verze, které jsou připraveny pro reálné
-          nasazení. V této oblasti jsme srovnatelní s daląími databázemi.
-          
-   Podpora
-          Na naąí mailové konferenci můľete kontaktovat velkou skupinu
-          vývojářů a uľivatelů.problémů. Nemůľeme garantovat opravu,
-          nicméně komerční databáze také ne vľdy nabídnou opravu. Podle
-          ohlasů je naąe podpora hodnocena lépe neľ u jiných DBMS a to
-          díky přímému kontaktu s vývojáři, velkou komunitou uľivatelů,
-          kvalitními manuály a přístupným zdrojovým kódem. Pro uľivatele,
-          kteří vyľadují podporu ke konkrétním případům, existuje placená
-          podpora (FAQ sekce 1.6).
-          
-   Cena
-          PosgreSQL lze volně pouľívat pro nekomerční i komerční pouľití.
-          Můľete do svých produktů přidat náą kód bez omezení, respektive
-          v souladu s podmínkami naąí licenční smlouvy (v duchu BSD
-          licence).
-          
-    1.15) Jak lze finančně pomoci PostgreSQL?
-    
-   PosgreSQL má prvotřídní infrastrukturu od naąeho začátku v roce 1996.
-   Vděčíme za to Marku Fournierovi, který zaloľil a spravoval tuto
-   infrastrukturu několik let.
-   
-   Kvalitní infrastruktura je velice důleľitá pro kaľdý open source
-   projekt. Předchází nedorozuměním, která velice zdrľují pokrok v
-   projektu.
-   
-   Tato infrastruktura není laciná. K jejímu zajiątění je třeba stále
-   hradit určité měsíční a jednorázové částky. Pokud máte Vy nebo Vaąe
-   společnost peníze, které nám můľete darovat, obra»e se na
-   http://store.pgsql.com/shopping/ a darujte je.
-   
-   Ačkoliv webová stránka zmiňuje PostgreSQL, Inc. vklady jsou určeny
-   pouze k podpoře projektu PostgreSQL a nepodporují ľádnou existující
-   společnost. Pokud to vyľadujete, můľete poslat kontrolu na naąi
-   kontaktní adresu.
+  1.1) Co je to PostgreSQL? Jaká je správná výslovnost slova PostgreSQL?
+  
+   Výslovnost PostgreSQL je Post-Gres-Q-L , nebo zjednodusene Postgres .
+   V rade jazyku je slovo PostgreSQL obtízne vyslovitelný, proto se v
+   hovoru casto pouzívá zjednodusená forma názvu. Pro ty, kterí by si
+   rádi poslechli výslovnost, je k dispozici audiozáznam v MP3 formátu.
+   
+   PostgreSQL je relacní databáze s nekterými objektovými rysy, která má
+   moznosti tradicních komercních databázových systému s nekolika
+   rozsíreními, které lze najít v DBMS systémech prístí generace.
+   Pouzívání PostgreSQL není omezené a veskeré zdrojové kódy jsou volne
+   dostupné.
+   
+   Za vývojem PostgreSQL je mezinárodní skupina nezávislých vývojáru
+   navzájem komunikujících prostrednictvím internetu. Tento projekt není
+   rízen zádnou obchodní organizací. Pokud se chcete pridat k projektu,
+   prectete si vývojárské FAQ na adrese
+   http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html .
+   
+  1.2) Kdo rídí vývoj PostgreSQL?
+  
+   Pokud budete hledat organizaci rídící vývoj PostgreSQL, budete
+   zklamáni. Nic takového neexistuje. Existují pouze "core" a CVS skupiny
+   uzivatelu, ale ty existují více z administrátorských duvodu nez z
+   organizacních. Projekt je smerován komunitou vývojáru a uzivatelu, ke
+   které se kdokoliv muze pripojit. Jediné co potrebuje, je prihlásit se
+   do elektronické konference. Více ve vývojárském FAQ.
+   
+  1.3) Pod jakou licencí je PostgreSQL?
+  
+   PostgreSQL je predmetem následujících autorských práv:
+   
+   Dílcí Copyright (c) 1996-2005, PostgreSQL Global Development Group
+   Dílcí Copyright (c) 1994-6, Regents of the University of California
+   
+   Udeluje se oprávnení k uzití, rozmnozování, provádení úprav a
+   rozsirování tohoto softwaru a dokumentace k nemu, pro jakékoli úcely,
+   bez licencního poplatku a bez písemné licencní smlouvy, za podmínky,
+   ze na vsech jeho kopiích je uvedeno oznámení o výse uvedených právech,
+   jakoz i obsah tohoto a dvou následujících odstavcu.
+   
+   THE UNIVERSITY OF CALIFORNIA ("KALIFORNSKÁ UNIVERZITA") NENÍ V ZÁDNÉM
+   PRÍPADE ODPOVEDNA ZÁDNÉ TRETÍ OSOBE ZA PRÍMOU, NEPRÍMOU, ZVLÁSTNÍ,
+   NAHODILOU NEBO VÝSLEDNOU SKODU, VCETNE USLÉHO ZISKU, ZPUSOBENOU UZITÍM
+   TOHOTO SOFTWARU A DOKUMENTACE K NEMU, A TO I V PRÍPADE, ZE THE
+   UNIVERSITY OF CALIFORNIA BYLA INFORMOVÁNA O MOZNOSTI VZNIKU TAKOVÉ
+   SKODY.
+   
+   THE UNIVERSITY OF CALIFORNIA ZEJMÉNA NEPOSKYTUJE JAKÉKOLI ZÁRUKY, A TO
+   NEJEN ZÁRUKY OBCHODOVATELNOSTI A VHODNOSTI TOHOTO VÝROBKU KE
+   SPECIFICKÝM ÚCELUM. NÍZE UVEDENÝ SOFTWARE JE POSKYTNUT "JAK STOJÍ A
+   LEZÍ" A THE UNIVERSITY OF CALIFORNIA NENÍ POVINNA ZAJISTIT JEHO
+   ÚDRZBU, PODPORU, AKTUALIZACI, VYLEPSENÍ NEBO MODIFIKACI.
+   
+   Výse uvedené je BSD licence, bezná licence otevreného zdroje. Není zde
+   zádné omezení ohledne uzití kódu zdroje. Jsme s tím spokojeni a nemáme
+   v úmyslu na této skutecnosti cokoli menit.
+   
+  1.4) Na kterých platformách lze provozovat PostgreSQL?
+  
+   Strucne receno, PostgreSQL bezí na vsech moderních unixových
+   systémech. Seznam tech, u kterých probehlo testování, naleznete v
+   instalacních instrukcích.
+   
+   PostreSQL také bezí nativne na vsech Microsof Windows systémech
+   odvozených z Microsoft Windows NT jako jsou Windows 2000SP4, WindowsXP
+   a Windows2003. Instalacní balícek naleznete na adrese
+   http://pgfoundry.org/projects/pginstaller. Na starsích systémech s
+   jeste MS-DOS jádrem lze spustit PostgreSQL s emulacním programem
+   Cygwin.
+   
+   Dále existuje port pro Novell Netware 6 port na adrese
+   http://forge.novell.com, a pro OS/2 verze (eComStation) na adrese
+   http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre
+   SQL&stype=all&sort=type&dir=%2F .
+   
+  1.5) Kde mohu získat PostgreSQL?
+  
+   Pomocí webového klienta z adresy http://www.postgresql.org/ftp/ nebo
+   klienta ftp z adresy ftp://ftp.postgresql.org/pub/.
+   
+  1.6) Jaká je poslední verze?
+  
+   Nejnovejsí verzí PostgreSQL je verze 8.2.5
+   
+   V plánu je uvolnovat kazdorocne jednu velkou verzi a kazdých nekolik
+   mesícu malé verze.
+   
+  1.7) Kde mohu získat podporu?
+  
+   Nejcastejsí forma podpory uzivatelum PostgreSQL komunitou je
+   prostrednictvím e-mailu. Na nasem webovém serveru naleznete odkaz na
+   stránky,kde se muzete prihlásit do elektronické konference. Pro
+   zacátek jsou doporucené konference general nebo bugs.
+   
+   Dalsí cestou je IRC kanál #postgresql na Freenode (irc.freenode.net).
+   K pripojení pouzijte Unixový príkaz irc -x '#postgresql' "$USER"
+   irc.freenode.net nebo jakékoholiv jiného IRC klienta. V této síti
+   existuje jeste spanelská (#postgresql-es) a francouzská
+   (#postgresqlfr) verze. Dalsí PostgreSQL kanál naleznete na EFNet.
+   
+   Seznam spolecností poskytující komercní podporu naleznete na adrese
+   http://techdocs.postgresql.org/companies.php.
+   
+  1.8) Jak a kam hlásit chyby?
+  
+   Vyplnte formulár na adrese
+   http://www.postgresql.org/support/submitbug. Na nasem ftp serveru
+   ftp://ftp.postgresql.org/pub/ si overte, ze pouzíváte aktuální verzi
+   PostreSQL.
+   
+   Chyby reportované prostrednictvím chybového formuláre nebo zasláním
+   mailu do PostgreSQL konference obvykle generuje následující odezvu:
+     * Nejedná se o chybu, a proc
+     * Jedná se o známou chybu, která je jiz v seznamu úkolu TODO
+     * Tato chyba byla opravena v aktuální verzi
+     * Tato chyba byla jiz opravena ve verzi, která zatím nebyla
+       oficiálne uvolnena
+     * Pozadavek na dalsí doplnující informace:
+          + Operacní systém
+          + Verze PostgreSQL
+          + Test reprodukující chybu
+          + Ladící informace
+          + Backtrace výstup debuggeru
+     * Jedná se o zatím nezjistenou chybu, pak muzete cekat
+          + Záplatu odstranující chybu, která bude vlozena do dalsí velké
+            nebo malé verze
+          + Informaci, ze se jedná o chybu, kterou nelze okamzite resit a
+            je proto pridána do TODO
+       
+  1.9) Kde najdu informace o známých chybách nebo nepodporovaných vlastnostech?
+  
+   PostgreSQL podporuje rozsírenou podmnozinu SQL:2003. V nasem TODO
+   naleznete seznam známých chyb, chybejících vlastností, a plány do
+   budoucna.
+   
+   Odezva na pozadavek na novou vlastnost PostgreSQL je obvykle:
+     * Pozadavek je jiz v TODO
+     * Pozadovaná funkce není chtená protoze
+          + Duplikuje jiz existující funkci, která respektuje SQL
+            standard
+          + Implementací funkce by se prílis zkomplikoval kód bez
+            relevantního prínosu
+          + Funkce by mohla být nebezpecná nebo nespolehlivá
+     * Pozadavek je pridán do TODO
+       
+   PostgreSQL nepozívá systém pro sledování chyb, protoze jsme zjistili,
+   ze je efektivnejsí prímo reagovat na maily a udrzovat aktuální TODO. V
+   praxi je snaha o co nejrychlejsí resení chyb, a chyby, které by se
+   mohly projevit u mnoha uzivatelu jsou opravovány velice rychle. Jediné
+   místo, kde lze dohledat vsechny zmeny, rozsírení a opravy v PostgreSQL
+   je CVS log. Poznámky k verzi "Release notes" nezachycují vsechny
+   zmeny, k nemz doslo.
+   
+  1.10) Jaká je dostupná dokumentace?
+  
+   PostgreSQL obsahuje vynikající dokumentaci zahrnující manuál,
+   manuálové stránky a testovací príklady. Podívejte se do adresáre /doc.
+   Manuál je prístupný online na http://www.postgresql.org/docs.
+   
+   K dispozici jsou zdarma dve online knihy na adresách
+   http://www.postgresql.org/docs/books/awbook.html a
+   http://www.commandprompt.com/ppbook/. Dalsí literaturu lze zakoupit.
+   Nejpopulárnejsí je od Kerryho Douglase. Seznam dostupné literatury je
+   na http://techdocs.postgresql.org/techdocs/bookreviews.php. Jeste je
+   kolekce technicky orientovaných clánku tematicky spojených s
+   PostgreSQL na adrese http://techdocs.postgresql.org/.
+   
+   Rádkový klient psql má \d príkazy pro zobrazení informací o typech,
+   operátorech, funkcích, agregacních funkcí, atd. Pouzijte \? pro
+   zobrazení dostupných príkazu.
+   
+   Dalsí dokumentaci najdete na nasem webu.
+   
+  1.11) Jak se mohu naucit SQL?
+  
+   Podívejte se do výse uvedené dokumentace. Dalsí online knihou je
+   "Teach Yourself SQL in 21 Days, Second Edition" na adrese
+   http://members.tripod.com/er4ebus/sql/index.htm. Mnoho nasich
+   uzivatelu doporucuje knihu The Practical SQL Handbook, Bowman, Judith
+   S., et al., Addison-Wesley. Dalsí The Complete Reference SQL, Groff et
+   al., McGraw-Hill.
+   
+   Dalsí online tutoriály jsou dostupné na adresách:
+     * http://www.intermedia.net/support/sql/sqltut.shtm
+     * http://sqlcourse.com
+     * http://www.w3schools.com/sql/default.asp
+     * http://mysite.verizon.net/Graeme_Birchall/id1.html
+       
+  1.12) Jak se mohu pripojit k týmu vývojáru?
+  
+   Prostudujte si Developer's FAQ.
+   
+  1.13) Jak je na tom PostgreSQL v porovnání s jinými databázemi?
+  
+   Software muzeme porovnávat z nekolika ruzných pohledu: vlastnosti,
+   výkon, spolehlivost, podpora a cena.
+   
+    Vlastnosti
+    
+   PostgreSQL nabízí vetsinu funkcí funkcionality velkých komercních DBMS
+   systému jako jsou: transakce, vnorené dotazy, spouste, referencní
+   integrita a sofistikovaný systém zamykání. Poskytujeme urcité funkce,
+   které ostatní systémy bezne nepodporují. Napr. uzivatelem definované
+   typy, dedicnost, pravidla (rules), a MVCC architekturu.
+   
+    Výkon
+    
+   Výkon PostgreSQL je srovnatelný s ostatními komercními nebo Open
+   Source databázemi. V nekterých prípadech je rychlejsí, jindy
+   pomalejsí. Nás výkon je obvykle +/-10% vuci ostatním databázím.
+   
+    Spolehlivost
+    
+   Uvedomujeme si, ze databáze musí být stoprocentne spolehlivá, jinak je
+   nepouzitelná. Snazíme se, aby kazdá verze byla dobre otestována a
+   obsahovala minimum chyb. Kazdá verze je minimálne nekolik mesícu v
+   beta testovacím rezimu. Do produkcního rezimu se dostane, az kdyz
+   nedochází k dalsím zmenám nebo opravám. Veríme, ze jsem více nez
+   srovnatelní s ostatními databázemi v této oblasti.
+   
+    Podpora
+    
+   Na nasich internetových konferencích se setkává velká skupina vývojáru
+   a uzivatelu pri resení vyskytujících se problému. Nase internetové
+   konference umoznují kontakt velké skupiny vývojáru a uzivatelu.
+   Nemuzeme garantovat opravu chyby, ale komercní DBMSs také vzdy
+   negarantují resení problému. Veríme ale, ze díky prímému kontaktu na
+   vývojáre, nasi uzivatelskou komunitu, manuálum, a dostupným zdrojovým
+   kódum máme lepsí podporu nez ostatní DBMSs. Pro ty, kterí preferují
+   komercní "per-incident" podporu, existuje spolecností, kterí ji
+   nabízejí (FAQ sekce 1.7.)
+   
+    Cena
+    
+   PostgreSQL lze pouzívat bezplatne (a to i pro komercní pouzití). Také
+   muzete neomezene pouzívat nás kód ve svých produktech s výjimkami
+   specifikovanými v nasí licenci (prebíráme BSD licenci).
+   
+  1.14) Je PostgreSQL pripraven na aktuální zavádení letního casu v nekterých
+  zemích?
+  
+   Pocínaje verzí 8.0.[4+] podporuje PostgreSQL letní cas také pro USA.
+   Podpora letního casu (daylight saving time) pro Kanadu a Západní
+   Austrálii je obsazena ve verzích 8.0.[10+] a 8.1.[6+] a vsech
+   následujících verzích. Starsí verze pouzívaly systémovou databázi
+   casových zón obsahující, krome jiného, informaci o tom, zda se pro
+   danou casovou zónu rozlisuje mezi letním a zimním casem.
      _________________________________________________________________
    
-   Pokud máte příklad úspěąného nasazení PostgreSQL, přihlaątě se na náą
-   advocacy site na http://advocacy.postgresql.org.
-   
-                             User client dotazy
+                        Dotazy na klientská rozhraní
                                       
-    2.1) Kde naleznu ODBC ovladače pro PostgreSQL?
-    
-   Pro PostgreSQL existují dva ODBC ovladače - PsqlODBC a OpenLink ODBC.
-   
-   PsqlODBC je ke staľení na
-   http://gborg.postgresql.org/project/psqlodbc/projdisplay.php.
-   
-   OpenLink můľete získat na http://www.openlinksw.com. Spolupracuje s
-   jejich klientským programovým vybavením a je dostupný pro vąechny jimi
-   podporované platformy (Win, Mac, Unix, VMS).
-   
-   Tento ovladač je určen pro ty, kteří vyľadují podporu komerční
-   kvality, nicméně freeware verze je dostupná a funkční. Dotazy
-   zasílejte na postgres95@openlink.co.uk.
-   
-    2.2) Jaké nástroje lze pouľít pro PostgreSQL a web?
-    
-   Pěkný úvod do databázových technologií zabezpečujících chod webových
-   stránek najdete na http://www.webreview.com.
-   
-   Pro tvorbu webu existuje excelentní rozhraní PHP, které naleznete na
-   http://www.php.net.
+  2.1) Která rozhraní jsou pouzitelná pro PostgreSQL?
+  
+   PostgreSQL se distribuuje pouze s rozhraním pro jazyk C a embedded C.
+   Vsechna dalsí rozhraní predstavují nezávislé projekty, které je treba
+   stáhnout z internetu samostatne. Osamostatnení techto projektu
+   umoznuje nezávislost vývojových týmu a moznost vydávat nové verze bez
+   ohledu na vydání nové verze PostgreSQL.
+   
+   Nekteré programovací jazyky jako je napr. PHP obsahují rozhraní pro
+   PostgreSQL. Rozhraní pro jazyky jako je Perl, Tcl, Python a mnoho
+   dalsích jsou dostupné na adrese: http://gborg.postgresql.org v sekci
+   Drivers/Interfaces.
    
-   Pro sloľitějąí případy se často pouľívá Perl a CGI.pm nebo mod_perl.
+  2.2) Jaké nástroje lze pouzít pro PostgreSQL a web?
+  
+   Dobrým úvodem do problematiky databází v prostredí webových stránek
+   muze být web http://www.webreview.com.
    
-    2.3) Existuje grafické rozhraní pro PostgreSQL?
-    
-   Pro PostgreSQL existuje několik grafických rozhraní: PgAccess
-   (http://www.php.net), PgAdmin III (http://www.php.net), RHDB Admin
-   (http://sources.redhat.com/rhdb/) a Rekall (
-   http://www.thekompany.com/products/rekall/). Dále jeątě PhpPgAdmin
-   (http://phppgadmin.sourceforge.net/) coľ je rozhraní PostgreSQL
-   zaloľené na web technologii.
+   PHP (http://www.php.net) je vynikajícím rozhraním pro tvorbu webu.
    
-   Úplnějąí seznam najdete na
-   http://techdocs.postgresql.org/guides/GUITools.
+   Pro slozitejsí úlohy se casto pouzívá Perl a jeho BDB:Pg rozhraní s
+   podporou CGI - CGI.pm nebo mod_perl(u).
    
-    2.4) Které programovací jazyky mají podporu pro PostgreSQL?
-    
-   Větąina programovacích jazyků obsahuje rozhraní pro PostgreSQL.
-   Podívejte se do roząiřujících modulů Vaąeho programovacího jazyka.
-   
-   Distribuce PostgreSQL obsahuje tato rozhraní:
-     * C (libpq)
-     * Embbedded C (ecpg)
-     * Java (jdbc)
-     * Python (PyGreSQL)
-     * TCL (libpgtcl)
-       
-   Daląí rozhraní jsou dostupná na http://gborg.postgresql.org v sekci
-   Drivers/Interfaces.
+  2.3) Existuje grafické rozhraní pro PostgreSQL?
+  
+   K dispozici je rada grafických nástroju podporujících PostgreSQL a to
+   od komercních nebo open source vývojáru. Podrobný seznam naleznete na
+   adrese http://www.postgresql.org/docs/techdocs.54.
      _________________________________________________________________
    
                            Administrativní dotazy
                                       
-    3.1) Jak nainstalovat PostgreSQL jinam neľ do /usr/local/pgsql?
-    
-   Pouľijte volbu --prefix při spuątění configure.
-   
-    3.2) Při startu postmaster, dostanu chybové hláąení Bad System Call nebo
-    core dump. Proč?
-    
-   Důvody mohou být různé, ale nejprve zkontrolujte, zda Váą systém
-   podporuje System V extensions. PostgreSQL vyľaduje v jádře podporu
-   sdílené paměti a semaforů.
-   
-    3.3) Při startu postmastera dostanu hláąení o chybě IpcMemoryCreate. Proč?
-    
-   Buďto nemáte správně nakonfigurovanou sdílenou pamě» v jádře nebo
-   musite zvětąit její velikost. Potřebná velikost je závislá na
-   architektuře a na tom, kolik pamě»ových bufferů a backendů máte
-   povoleno pro postmastera. Pro větąinu systémů s předdefinovaným počtem
-   backendů a pamě»ových bufferů je minimum zhruba 1MB. V PostgreSQL
-   Administrator's Guide naleznete podrobnějąí informace o sdílené paměti
-   a semaforech.
-   
-    3.4) Při startu postmastera dostanu hláąení o chybě IpcSemaphoreCreate.
-    Proč?
-    
-   Pokud dostane chybovou zprávu IpcSemaphoreCreate: semget failed (No
-   space left on device), pak vaąe jádro nemá dost volných semaforů.
-   PostgreSQL vyľaduje jeden semafor pro kaľdý backend v pozadí. Dočasným
-   řeąením je start postmaster s limitem backendů. Pouľijte přepínač -N s
-   hodnotou menąí neľ 32. Úplným řeąením je zvýąení hodnot SEMMNS a
-   SEMMNI jadra.
-   
-   Nefunkční semafory mohou způsobit pád během intenzivních databázových
-   operací.
-   
-   Pokud se tato chyba vyskytuje jeątě někde jinde, moľná nemáte vůbec
-   nakonfigurovány semafory ve vaąem jádře. V PostgreSQL Administrator's
-   Guide najdete podrobnějąí popis poľadavků na sdílenou pamět a
-   semafory.
-   
-    3.5) Jak povolit nebo zakázat přístup z jiných stanic?
-    
-   Při výchozím nastavení PostgreSQL odepře přístup z jiných stanic neľ
-   lokální s pouľitím UDP. Přístup z jiných strojů není moľný dokud jej
-   nepovolíte nastavením tcpip_socket v postgresql.conf a určením způsobu
-   autentifikace v $PGDATA/pg_hba.conf.
-   
-    3.6) Jak ladit databázový stroj na lepąí výkon?
-    
-   Určitě pomohou indexy. Příkaz EXPLAIN ANALYZE Vám umoľní sledovat jak
-   PostgreSQL interpretuje Váą dotaz a které indexy pouľívá.
-   
-   Při větąí dávce INSERTů uvaľujte o náhradě příkazem COPY. Ten je
-   mnohem rychlejąí neľli samotný INSERT. Kaľdý příkaz mimo blok BEGIN
-   WORK/COMMIT se provádí ve vlastní transakci. Zvaľte, zda-li by se
-   nedalo několik příkazů spojit do jedné transakce. Tím se sníľí reľie
-   na transakce. Před provedením rozsáhlých změn zruąte indexy, které po
-   dokončení změn opět vytvořte.
-   
-   Máte několik daląích moľností, jak zlepąit výkon. Můľete zakázat
-   fsyn() při startu postmastera přepínači -o -F. Tyto přepínače zabrání
-   fsync(), tj. zápisu na disk po kaľdé transakci.
-   
-   Můľete zvýąit velikost pamě»ových bufferů pouľitých backendy tj.
-   parametr -B postmasteru. Pokud ale tato hodnota bude přílią velká, tak
-   moľná nespustíte postmastera jelikoľ dosáhnete limitu sdílené paměti.
-   Kaľdý buffer má 8K a implicitně je 64 bufferů.
-   
-   Dále můľete pouľít přepínač -S k zvýąení limitu paměti pro backendy na
-   dočasné třídění. Hodnota je míněna v kilobytech a výchozí nastavení je
-   512, tj. 512K.
-   
-   Můľete pouľít příkaz CLUSTER, který uspořádá fyzicky data v tabulkách
-   podle indexu. Více na manuálových stránkách příkazu CLUSTER.
-   
-    3.7) Jaké jsou moľnosti ladění?
-    
-   Máte několik moľností jak se dostat k uľitečným stavovým informacím.
-   
-   Zaprvé, při překladu pouľijte přepínač --enable-cassert, tím se zapne
-   monitorování a následné zastavení aplikace, kdyľ se proces v backendu
-   dostane do neočekávaného stavu.
-   
-   Jak postmaster tak postgres má několik přepínačů umoľňujících ladění.
-   Postmaster nastartujte tak, abyste si byli jisti, ľe je standartní
-   výstup a standartní chybový výstup přesměrován do souboru logu,
-   například:
-    cd /usr/local/pgsql
-    ./bin/postmaster > server.log 2>&1 &
-
-   Tím se vytvoří log v adresáři PostgreSQL, Tento soubor obsahuje
-   uľitečné informace o problémech a chybách vyskytlých se na serveru.
-   Postmaster má přepínač -d určující, jak podrobné mají být reportované
-   informace, tj. debug level. Pozor, při velké hodnotě debug levelu
-   rychle roste velikost souboru logu.
-   
-   Pokud neběľí postmaster, můľete spustit backend PostgreSQL z příkazové
-   řádky a napsat svůj SQL dotaz přímo v backendu (doporučeno pouze pro
-   ladění). Dotaz je v tomto případě ukončen novou řádkou, nikoliv
-   středníkem. Pokud máte aplikaci přeloľenou s ladícími symboly, můľete
-   pouľít debbuger k monitorování procesu. Pokud není backend spuątěn
-   postmasterem, pak neběľí ve svém obvyklém prostředí a tudíľ některé
-   problémy dané interakcí mezi backendy nemohou být nasimulovány.
-   
-   Pokud běľí postmaster, spus»e psql v jednom okně a pak si zjistěte PID
-   procesu postgres pouľitého psql. V debuggeru sepřipojte k postgresql
-   PID. Pak nastavte breakpointy v debuggeru a zadejte dotaz v psql.
-   Pokud ladíte startup postgresu, pak nastavte PGOPTIONS="-W n" a spus»e
-   psql. Tento přepínač způsobí pauzu n sekund, takľe budete mít čas se
-   připojit k procesu, a nastavit breakpointy a pokračovat v startup
-   posloupnosti.
-   
-   Pro ladění a měření výkonu mohou být uľitečné přepínače -s, -A a -t
-   programu postgres (backend).
-   
-   Můľete provést překlad s profilací, tak abyste viděli kolik času
-   zabírají jednotlivé funkce. Soubory s profily backendů jsou uloľeny v
-   adresáři pgsql/data/base/dbname. Profil klienta pak v jeho aktuálním
-   adresáři. Korektní profilace v prostředí Linux poľaduje konfiguraci
-   systému s parametrem -DLINUX_PROFILE.
-   
-    3.8) Proč dostanu "Sorry, too many clients", kdyľ se zkouąím připojit?
-    
-   Zvyąte limit postmastera na maximální počet současně spuątěných
-   backendů.
-   
-   Výchozí hodnota je 32 backendů. Tuto hodnotu zvýąíte zastavením a
-   opětovným spuątěním postmastera s parametrem -N nebo úpravou
-   postgresql.conf.
-   
-   Při zvýąení hodnoty -N nad 32 musíte zvýąit hodnotu -B nad výchozí 64,
-   -B musí být minimálně dvakrát větąí, nebo jeątě lépe více.
-   Pravděpodobně zjistíte, ľe pro velký počet procesů backendu je nutné
-   zvýąit některé parametry jádra. Jsou to předevąím maximální velikost
-   sdílené paměti SHMMAX, maximální počet semafórů SEMMNS a SEMMNI,
-   maximální počet procesů NPROC, maximální počet procesů uľivatele
-   MAXUPRC a maximální počet otevřených souborů NFILE a NINODE. Důvod pro
-   omezení maximálního počtu backendů je fakt, ľe by mohlo dojít k
-   vyčerpání zdrojů Vaąeho systému.
-   
-    3.9) K čemu slouľí adresář pgsql_tmp?
-    
-   Tento adresář obsahuje dočasné soubory vytvořené exekutorem dotazů.
-   Například, kdyľ je nutné třídění k zajiątění ORDER BY a třídění má
-   větąí nároky na prostor neľ povoluje parametr -S backendu, pak je
-   vytvořen dočasný soubor k uloľení extra údajů.
-   
-   Dočasné soubory jsou obvykle mazány automaticky, ale můľe se stát, ľe
-   během třídění server spadne. Zastavení a daląí start postmastera
-   zajistí odstranění souborů s těchto adresářů.
-   
-    3.10) Proč je poľadováno dump a obnovení (load) databáze během upgrade mezi
-    velkými verzemi PostgreSQL?
-    
-   PostgreSQL se minimálně mění během malých verzí, takľe např. při
-   upgrade z 7.2 na 7.2.1 není nutné dump a load databáze. Ale výynamné
-   verze často mění interní formát systémových tabulek a datových
-   souborů. Tyto změny jsou natolik rozsáhlé, ľe nelze zajistit zpětnou
-   kompatibilitu pro datové soubory. Dump uloľí data v obecném formátu,
-   takľe mohou být načtena a pouľívána v novém interním formátu.
+  3.1) Jak nainstalovat PostgreSQL jinam nez do /usr/local/pgsql?
+  
+   Pri spoustení configure nastavte parametr --prefix
+   
+  3.2) Jak nastavit pravidla pro prístup z jiných stanic?
+  
+   Ve výchozí konfiguraci, PostgreSQL umoznuje pouze pripojení z
+   lokálního uzivatele prostrednictvím Unix domain sockets nebo TCP/IP
+   spojení. Bez modifikace listen_addresses v souboru postgresql.conf, a
+   povolení adresy v souboru $PGDATA/pg_hba.conf se nelze pripojit k
+   PostgreSQL z ostatních stanic. Zmena výse zmínených parametru vyzaduje
+   restart databázového serveru.
+   
+  3.3) Jak vyladit databázi na vyssí výkon?
+  
+   Výkon systému muzete ovlivnit ve trech oblastech:
+   
+    Zmeny dotazu
+    
+     * Pouzitím indexu vcetne cástecných a funkcionálních
+     * Pouzitím COPY místo opakovaných INSERTu
+     * Sloucením mnoha SQL príkazu do jedné transakce snízením rezie na
+       commit
+     * Pouzíváním CLUSTERU, pokud nacítáte vetsí pocet rádek podle indexu
+     * Pouzitím klauzule LIMIT v poddotazech
+     * Pouzitím predpripravených dotazu
+     * Pouzíváním ANALYZE. Tento príkaz aktualizuje statistiky, které se
+       pouzívají pri optimalizaci dotazu
+     * Pravidelné pouzití VACUUM nebo pouzívání pg_autovacuum
+     * Odstranením indexu pred rozsáhlými zmenami v datech
+       
+    Konfigurace serveru
+    
+   Urcité parametry v souboru postgresql.conf mají vliv na výkon serveru.
+   Detaily naleznete v prírucce Administrátora v Server Run-time
+   Environment/Run-time Configuration. Dalsí komentáre naleznete v
+   http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.ht
+   ml a http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html.
+   
+    Výber hardware
+    
+   Vliv hardware na výkon serveru je popsán v dokumentech
+   http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html
+   a http://www.powerpostgresql.com/PerfList/.
+   
+  3.4) Jaké mám ladící prostredky?
+  
+   Nastavením log_* promenných v konfiguraci serveru si vynutíte logování
+   dotazu a procesních statistik, které Vám mohou pomoci pri ladení a
+   optimalizaci výkonu.
+   
+  3.5) Co znamená "Sorry, too many clients", kdyz se zkousím pripojit?
+  
+   Prekrocil jste výchozí limit, který je 100 soucasne pripojených
+   uzivatelu. V konfiguraci serveru v postgresql.conf tuto hodnotu muzete
+   zvetsit zmenou hodnoty max_connection. Nezapomente restartovat server.
+   
+  3.6) Proc je nutný dump a obnovení (load) databáze pri upgradu PostgreSQL?
+  
+   Zpusob císlování je popsán v dokumentaci na
+   http://www.postgresql.org/support/versioning. Instrukce k provedení
+   migrace na vyssí verzi jsou taktéz v dokumentaci na adrese
+   http://www.postgresql.org/docs/current/static/install-upgrading.html.
+   
+  3.7) Jaký hardware bych mel pouzívat?
+  
+   Jelikoz PC jsou vetsinou kompatibilní, lidé mají tendence verit, ze
+   vsechna PC jsou stejne kvalitní. Coz není pravda. Pameti ECC, SCSI a
+   kvalitní základní desky jsou mnohem spolehlivejsí a výkonnejsí nez
+   lacinejsí hardware. PostgreSQL pobezí na vetsine hardwaru, nicméne
+   pokud je pro Vás spolehlivost a výkon systému dulezitá, je dobré
+   venovat cas nalezení vhodné hardwarové konfigurace. Na nasich
+   elektronických konferencích muzete diskutovat o vhodných konfiguracích
+   a znackách.
      _________________________________________________________________
    
                               Provozní dotazy
                                       
-    4.1) Čím se liąí binární a normální kurzor?
-    
-   Popis najdete v manuálové stránce DECLARE
-   
-    4.2) Jak získat pouze první řádek dotazu? Náhodný řádek?
-    
-   Podívejte se do man. stránky příkazu FETCH, nebo pouľijte SELECT ...
-   LIMIT ...
-   
-   I kdyľ potřebujete získat pouze prvních několik řádků, je třeba
-   zpracovat vąechna data, např. pokud dotaz má ORDER BY. Pokud vąak
-   existuje index, který odpovídá ORDER BY, PostgreSQL můľe získat pouze
-   prvních n řádků a ukončit zpracování dotazu.
-   
-   K získání náhodného řádku pouľijte:
-    SELECT col
-    FROM tab
-    ORDER BY random()
-    LIMIT 1;
+  4.1) Jak získat pouze první rádek dotazu? Náhodný rádek?
+  
+   Pokud potrebujete pouze nekolik rádku a pokud víte kolik, pouzijte
+   SELECT LIMIT. Pokud bude mozné pouzít index shodující se s ORDER BY,
+   je mozné, ze se nebude provádet celý dotaz. Pokud neznáte pocet
+   záznamu, pouzijte kurzor a príkaz FETCH.
+   
+   Pro výber náhodného rádku pouzijte príkaz ve tvaru:
+SELECT col
+FROM tab
+ORDER BY random()
+LIMIT 1;
 
-    4.3) Jak získám seznam tabulek nebo jinak jak jej získá psql?
-    
-   Příkaz \dt v psql zobrazí seznam tabulek. Úplný seznam příkazů psql
-   dostanete příkazem \?. Také se můľete podívat do zdrojových kódů psql
-   do souboru pgsql/src/bin/psql/describe.c. Ten obsahuje SQL příkazy,
-   které se pouľívají v psql metapříkazech. Dále můľete spustit psql s
-   přepínačem -E, který způsobí zobrazení kaľdého dotazu, které
-   zpracování metapříkazu vyvolá. PostgreSQL nabízí SQLi INFORMATION
-   SCHEMA s tabulkami obsahující informace o databázi.
-   
-    4.4) Jak odstraním sloupec tabulky, jak změním jeho typ?
-    
-   Počínaje verzí 7.3 můľete pouľít příkaz ALTER TABLE DROP COLUMN. Ve
-   starąích verzích můľete pouľít následující postup:
-    BEGIN;
-    LOCK TABLE old_table;
-    SELECT ... -- mimo sloupec, který chceme odstranit
-    INTO TABLE new_table;
-    DROP TABLE old_table;
-    ALTER TABLE new_table RENAME TO old_table;
-    COMMIT;
+  4.2) Jak získám seznam tabulek, indexu, databází, a definovaných uzivatelu.
+  Mohu videt dotazy, které pouzívá psql pro zobrazení techto informací?
+  
+   V psql príkazem \dt získáte seznam tabulek. Úplný seznam príkazu psql
+   získáte príkazem \?. Alternativne si muzete prostudovat zdrojový kód
+   psql - soubor pgsql/src/bin/psql/describe.c, který obsahuje SQL
+   príkazy, které jsou generovány pro získání výstupu psql "backslash"
+   príkazu. Také muzete nastartovat psql s parametrem -E, který zpusobí
+   zobrazení vsech SQL príkazu, které se odesílají na server. PostgreSQL
+   také podporuje SQL standard INFORMACNÍ SCHÉMATA (standardní systémové
+   tabulky). Klasickým dotazem do systémových tabulek získáte pozadované
+   informace o strukture databáze.
+   
+   Systémové tabulky PostgreSQL (mimo rámec SQL standardu) pouzívají
+   prefix pg_. Pro zjistení struktury databáze je muzete pouzít také, i
+   kdyz preferovány jsou dotazy do informacního schématu.
+   
+   Seznam vsech databází získáte príkazem psql -l
+   
+   Dalsí inspiraci najdete v souboru pgsql/src/tutorial/syscat.source.
+   Obsahuje ilustracní SELECTy potrebné k získání informací z systémových
+   tabulek databáze.
+   
+  4.3) Jak zmenit datový typ sloupce?
+  
+   Ve verzích 8.0 a pozdejsích jednoduse:
+ALTER TABLE ALTER COLUMN TYPE
 
-   Pro změnu typu sloupce je třeba provést:
-    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;
+   V starsích verzích:
+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;
 
-   Poté proveďte VACUUM FULL tab - uvolníte tím diskový prostor zabraný
-   nyní jiľ neplatnými řádky.
+   Po zmene spustte príkaz VACUUM FULL, aby doslo k uvolnení diskového
+   prostoru pouzitého v tu chvíli jiz neplatnými záznamy.
    
-    4.5) Jaká je maximální velikost řádku, tabulky a databáze?
-    
+  4.4) Jaká je maximální velikost rádku, tabulky a databáze?
+  
    PostgreSQL má tato omezení:
-    Maximální velikost databáze:           neomezena (existují 32TB db)
-    Maximálné velikost tabulky:            32 TB
-    Maximální velikost řádky:              1.6 TB
-    Maximální velikost poloľky             1 GB
-    Maximální počet řádků v tabulce:       neomezeno
-    Maximální počet sloupců v tabulce:     250-1600 podle typů
-    Maximální počet indexů na tabulce:     neomezeno
-
-   Ve skutečnosti nic není neomezeno, limitem bývá vľdy dostupná disková
-   pamě» nebo velikost operační paměti. Pokud máte některou z těchto
-   hodnot neobvykle velkou, můľe dojít ke sníľení výkonu.
-   
-   Maximální velikost tabulky je 32 TB a nevyľaduje podporu velkých
-   souborů operačním systémem. Velké tabulky se ukládají do několika 1 GB
-   souborů takľe limity souborového systému nejsou podstatné.
-   
-   Maximální velikost tabulky a maximální počet sloupců můľeme
-   zečtyřnásobit nastavením velikosti bloku na 32K.
-   
-    4.6) Kolik diskového prostoru je potřeba k uloľení dat z
-    
-   normálního textového souboru?
    
-   PostgreSQL vyľaduje aľ pětinásobek diskového prostoru k uloľení dat z
+   Maximální velikost databáze:       neomezena (existují 32TB db)
+   Maximální velikost tabulky:        32 TB
+   Maximální velikost rádky:          480GB
+   Maximální velikost polozky         1 GB
+   Maximální pocet rádku v tabulce:   neomezeno
+   Maximální pocet sloupcu v tabulce: 250-1600 podle typu
+   Maximální pocet indexu na tabulce: neomezeno
+   
+   Ve skutecnosti nic není neomezeno, limitem bývá vzdy dostupná disková
+   pamet nebo velikost operacní pameti. Pokud máte nekterou z techto
+   hodnot neobvykle velkou, muze dojít ke snízení výkonu.
+   
+   Maximální velikost tabulky je 32 TB a nevyzaduje podporu velkých
+   souboru operacním systémem. Velké tabulky se ukládají do nekolika 1 GB
+   souboru takze limity souborového systému nejsou podstatné.
+   
+   Maximální velikost tabulky a maximální pocet sloupcu muzeme
+   zectyrnásobit nastavením velikosti bloku na 32K.
+   
+   Indexy jsou povolené pouze na sloupcích jejichz délka je mensí nez
+   2000 znaku. Pokud tuto délku prekrocíme a index potrebujeme pro
+   zajistení jednoznacnosti, je vhodnejsí pouzít funkcionální index nad
+   MD5 funkcí nebo fulltextový index.
+   
+  4.5) Kolik diskového prostoru je potreba k ulození dat z normálního textového
+  souboru?
+  
+   PostgreSQL vyzaduje az petinásobek diskového prostoru k ulození dat z
    textového souboru.
    
-   Například, uvaľujme soubor se 100 tisíci řádky obsahující na kaľdé
-   řádce celé číslo a textový popis. Text je v průměru dvacet bytů
+   Napríklad, uvazujme soubor se 100 tisíci rádky obsahující na kazdé
+   rádce celé císlo a textový popis. Text je v prumerne dvacet bytu
    dlouhý. Textový soubor bude 2.8 MB dlouhý. Velikost databáze
-   obsahující odpovídající data bude zhruba 6.4 MB.
-    36 bytů: hlavička řádku (přibliľně)
-    24 bytů: jedna celočíselná poloľka a jedna textová
-   + 4 byty: ukazatel na stránku k ntici
+   obsahující odpovídající data bude zhruba 5.2 MB.
+    24 bytu: hlavicka rádku (priblizne)
+    24 bytu: jedna celocíselná polozka a jedna textová
+   + 4 byty: ukazatel na stránku k entici
    ------------------------------------------------------
-    64 bytů na řádek
-
-   Velikost datové stránky PostgreSQL je 8KB
+    52 bytu na rádek
 
-    8192 bytů na stránce
-    ---------------------- = 128 řádek na stránku
-      64 bytů za řádek
+   Velikost datové stránky PostgreSQL je 8192 bytu (8KB)
+ 8192 bytu na stránce
+---------------------- = 158 rádek na stránku
+  52 bytu za rádek
 
-    100000 řádek
-    -------------------- = 782 stránek (zaokrouhleno nahoru)
-       128 řádek na stránce
+100000 rádek
+----------------------- = 633 stránek (zaokrouhleno nahoru)
+   158 rádek na stránce
 
-    782 * 8192 = 6, 406, 144 bytů (6.4 MB)
+633 datových stránek * 8192 bytu na kazdou stránku = 5,185,536 bytu (5.2 MB)
 
-   Indexy nemají tak velkou reľii, ale mohou být také velké, protoľe
+   Indexy nemají tak velkou rezii, ale mohou být také velké, protoze
    obsahují indexovaná data.
    
-   Hodnoty NULL jsou uloľeny v bitmapách, takľe spotřebují jen velmi málo
+   Hodnoty NULL jsou ulozeny v bitmapách, takze zabírají jen velmi málo
    diskového prostoru.
    
-    4.7) Jak získám seznam vytvořených tabulek, indexů, databází?
-    
-   psql má sadu metapříkazů k zobrazení těchto informací. Jejich seznam
-   získáte příkazem \?. Dále se můľete podívat na obsah systémových
-   tabulek začínajících pg_. Spuątění psql s parametrem -l provede výpis
-   názvů vąech databází.
-   
-   Soubor pgsql/src/tutorial/syscat.source obsahuje SELECTy přistupující
-   k systémovým tabulkámm.
-   
-    4.8) Můj dotaz je pomalý a nepouľívá vytvořené indexy. Proč?
-    
-   Kaľdý dotaz nemusí nutně pouľít existující indexy. Index se pouľije
-   tehdy, kdyľ je tabulka větąí neľ určitá minimální velikost, a dotaz
-   vybírá pouze procentuálně malou část řádků tabulky. To proto, ľe
-   náhodný přístup k disku daný čtením indexu můľe být pomalejąí neľ
-   lineární čtení tabulky nebo sekvenční čtení.
-   
-   PostgreSQL rozhoduje o pouľití indexů na základě statistiky přístupů k
-   tabulce. Tyto statistiky se shromaľďují příkazy VACUUM ANALYZE nebo
-   ANALYZE. Díky statistikám má optimizer informaci o počtu řádek v
-   tabulce a můľe lépe rozhodnout o pouľití indexů. Statistiky se uplatní
-   při určení optimálního pořadí a metody spojení tabulek. Statistiky by
-   se měli aktualizovat opakovaně, tak jak se mění obsah tabulek.
-   
-   Indexy nejsou obyčejně pouľity pro setřídění nebo spojení tabulek.
-   Sekvenční zpracování následované explicitním tříděním je obyčejně
-   rychlejąí neľ indexní čtení na velké tabulce.
-   
-   Jinak je tomu v případě pouľití LIMIT a ORDER BY, při kterém se
-   větąinou index pouľije, výsledkem je pouze malá část tabulky. Funkce
-   MAX() a MIN() nepouľívají indexy, ale je moľné tutéľ hodnotu získat:
-    SELECT col
-    FROM tab
-    ORDER BY col [ DESC ]
-    LIMIT 1;
-
-   Pokud si myslíte, ľe optimizer mylně zvolil sekvenční prohledávání
-   tabulky, pouľijte příkaz SET enable_seqscan TO 'off' a zkuste zda je
-   indexní prohledávání rychlejąí.
-   
-   Při vyhledávání na základě vzoru jako je např. operátor LIKE nebo ~ se
-   indexy pouľíjí pouze za určitých skutečností:
-     * začátek hledaného vzoru musí být ukotven k začátku, tj.
-          + vzor LIKE nesmí začínat %
-          + ~ regulární výraz musí začínat ^
-     * vzor nesmí začínat intervalem, např. [a-e]
+  4.6) Muj dotaz je pomalý a nepouzívá vytvorené indexy. Proc?
+  
+   Kazdý dotaz nemusí nutne pouzít existující indexy. Index se pouzije
+   tehdy, kdyz je tabulka vetsí nez urcitá minimální velikost, a dotaz
+   vybírá pouze procentuálne malou cást rádku tabulky. To proto, ze
+   náhodný prístup k disku daný ctením indexu muze být pomalejsí nez
+   lineární ctení tabulky nebo sekvencní ctení.
+   
+   PostgreSQL rozhoduje o pouzití indexu na základe statistiky prístupu k
+   tabulce. Tyto statistiky se shromazdují príkazy VACUUM ANALYZE nebo
+   ANALYZE. Díky statistikám má optimizer informaci o poctu rádek v
+   tabulce a muze lépe rozhodnout o pouzití indexu. Statistiky se uplatní
+   pri urcení optimálního poradí a metody spojení tabulek. Statistiky by
+   se meli aktualizovat opakovane, tak jak se mení obsah tabulek.
+   
+   Indexy nejsou obycejne pouzity pro setrídení nebo spojení tabulek.
+   Sekvencní zpracování následované explicitním trídením je obycejne
+   rychlejsí nez pouzití indexu na velké tabulce.
+   
+   Jinak je tomu v prípade pouzití LIMIT a ORDER BY, pri kterém se
+   vetsinou index pouzije, jelikoz je výsledkem pouze malá cást tabulky.
+   
+   Pokud si myslíte, ze optimizer mylne zvolil sekvencní prohledávání
+   tabulky, pouzijte príkaz SET enable_seqscan TO 'off' a zkuste zda je
+   prohledávání s indexem rychlejsí.
+   
+   Pri vyhledávání na základe vzoru jako je napr. operátor LIKE nebo ~ se
+   indexy pouzijí pouze za urcitých skutecností:
+     * zacátek hledaného vzoru musí být ukotven k zacátku, tj.
+          + vzor LIKE nesmí zacínat %
+          + ~ regulární výraz musí zacínat ^
+     * vzor nesmí zacínat intervalem, napr. [a-e]
      * vyhledávaní, které není Case sensitiv jako je ILIKE nebo ~*
-       nepouľívá indexy. Můľete ale pouľít funkcionální indexy, které
-       jsou posány v sekci 4.12
-     * při inicializaci databáze (initdb) musí být pouľito C locale
-       (pozn. překladatele - tudíľ v naąich podmínkách nepouľitelné,
-       nepracovalo by české třídění).
+       nepouzívá indexy. Muzete ale pouzít funkcionální indexy, které
+       jsou popsány v sekci 4.8
+     * pri inicializaci databáze (initdb) musí být pouzito C locale nebo
+       vytvorte speciální text_pattern_index, který umozní, pri
+       respektování zmínených podmínek pouzití indexu operací LIKE. Pro
+       vyhledávání celých slov je mozné a výhodné pouzít fulltext.
        
-    4.9) Jak zjistím, jak optimizer dotazu vyhodnocuje můj dotaz?
-    
-   Podívejte se do manuálové stránky příkazu EXPLAIN.
-   
-    4.10) Co to je R-tree index?
-    
-   R-tree index se pouľívá pro indexování prostorových dat. Hash index
-   nemůľe obslouľit prohledávání oblastí. B-tree index můľe řídit
-   vyhledání oblastí v jedné dimenzi. R-tree index můľe podporovat
-   hledání v multidimenzionálních datech. Pouľijeme-li například R-tree
-   index na atributy typu point, pak systém můľe efektivně odpovědět na
-   dotaz - vyber vąechny body uvnitř obdélníků.
-   
-   Původní návrh R-tree je Guttman, A. "R-trees: A Dynamic Index
-   Structure for Spatial Searching." Proceedings of the 1984 ACM SIGMOD
-   Int'l Conf on Mgmt of Data, 45-57
-   
-   Tyto materiály naleznete v Stonebraker's "Readings in Database
-   Systems".
-   
-   Vestavěné R-tree můľe slouľit k indexaci polygonů a oblastí.
-   Teoreticky můľeme R-tree pouľít i pro více dimenzí (jiné neľ 3D). Ve
-   skutečnosti ale takové roząíření R-tree vyľaduje trochu práce a ve
-   součastnosti chybí dokumentace jak na to.
-   
-    4.11) Co je Genetic Query Optimizer?
-    
-   GEQO modul urychluje optimalizaci dotazů při spojování mnoľství
-   tabulek metodou Genetických algoritmů (GA). To umoľňuje získat velkého
-   mnoľství variant spojení při neúplném prohledáváním.
-   
-    4.12) Jak provést vyhledávání regulárního výrazu case sensitiv, insensitiv?
-    Jak pouľít index pro case insensitive vyhledávání?
-    
-   Operátor ~ slouľí k porování s regulárním výrazem, jeho modifikace *~
-   představuje case insensitive vyhledávání. Jedná se o obdobu LIKE a
-   ILIKE.
-   
-   Pro vyhledávání bez ohledu na velká malá písmena pouľijeme:
-    SELECT *
-    FROM tab
-    WHERE lower(col) = 'abc';
+  4.7) Jak zjistím, jak se vyhodnocuje muj dotaz?
+  
+   Podívejte se do nápovedy k príkazu EXPLAIN.
+   
+  4.8) Jak pouzít case-(in)sensitive regulární výraz? Jak pouzít index pro case
+  insensitive hledání?
+  
+   Vyhledávání prostrednictvím regulárních vzoru zajistuje operátor ~,
+   který je case-sensitive. Jeho case-insensitive varianta je operátor
+   ~*. Case-insensitive variací operátoru LIKE je operátor ILIKE.
+   
+   Case-insensitive vyhledání se resí:
+SELECT *
+FROM tab
+WHERE lower(col) = 'abc';
 
-   V tomto případě se nepouľije standardní index. Nicméně, pouľije se
-   funkcionální index, pokud jej vytvoříte:
-    CREATE INDEX tabindex ON tab (lower(col));
+   Tento dotaz nepouzije standardní index. Musíte pouzít tzv.
+   funkcionální index:
+CREATE INDEX tabindex ON tab (lower(col));
 
-    4.13) Jak v dotazu detekovat, ľe poloľka je NULL?
-    
-   Určíte pomocí IS NULL nebo IS NOT NULL
-   
-    4.14) Jaké jsou rozdíly mezi různými znakovými typy?
-    
-Typ         Interní název       Poznámka
---------------------------------------------------------------------------
-VARCHAR(n)  varchar             omezeno maximální délkou, bez doplnění mezerami
-CHAR(n)     bpchar              řetězec je doplněn mezerami do dané délky
-TEXT        text                bez horního limitu na délku
-BYTEA       bytea               pole bytů (bezpečně lze uloľit i znak NULL)
-"char"      char                jeden znak
+   Pokud index vytvoríme jako unikátní, tak muzeme ukládat retezce
+   obsahující malá i velká písmena, ale nikoliv retezce, které se od sebe
+   odlisují jen v malých a velkých písmenech. K zajistení zápisu retezce
+   obsahující pouze malá nebo pouze velká písmena pouzijte CHECK kontroly
+   nebo triggery.
+   
+  4.9) Jak v dotazu detekovat, ze polozka je NULL? Jak bezpecne spojit dva
+  retezce, pokud mohou obsahovat NULL? Lze trídit podle toho, jestli je polozka
+  NULL nebo ne?
+  
+   Pokud chcete testovat hodnotu NULL pouzijte operátor IS:
+   SELECT *
+   FROM tab
+   WHERE col IS NULL;
 
-   S interními názvy se setkáte v systémovém katalogu a v některých
-   chybových hláąeních.
-   
-   První čtyři uvedené typy jsou tzv. varlena typy (tj. první čtyři byty
-   na disku nesou údaj o délce, následují samotná data). Proto skutečný
-   pouľitý prostor je vľdy o něco málo větąí neľ deklarovaná délka.
-   Naopak, tyto datové typy jsou komprimovánty TOASTem, takľe prostor na
-   disku můľe být niľąí neľ je očekáváno.
-   
-   VARCHAR(n) je vhodný pro ukládání textů promměné délky s pevně
-   stanovenou maximální délkou. TEXT je pro řetězce bez omezení délky s
-   maximem jeden gigabajt.
-   
-   CHAR(n) slouľí k ukládání řetězců stejné délky. CHAR(n) doplní prázdné
-   znaky do specifikované délky, zatímco VARCHAR(n) uloľí pouze předané
-   znaky. BYTEA je určeno pro ukládání binárních dat, včetně NULL byte.
-   Vąechny zde popsané typy mají podobné výkonnostní charakteristiky.
-   
-    4.15.1) Jak vytvořit serial/auto-increment pole?
-    
-   PostgreSQL podporuje typ SERIAL. Při jeho pouľití se automaticky
-   vytvoří SEQUENCE. Například:
-    CREATE TABLE person (
-        id   SERIAL,
-        name TEXT
-    );
+   K spojení retezcu, které mohou obsahovat hodnotu NULL, pouzívejte
+   funkci COALESCE(), napr.:
+   SELECT COALESCE(col1, '') || COALESCE(col2, '')
+   FROM tab
 
-   je automaticky převedeno do
-    CREATE SEQUENCE person_id_seq;
-    CREATE TABLE person (
-        id   INT4 NOT NULL DEFAULT nextval('person_id_seq'),
-        name TEXT
-    );
-    CREATE UNIQUE INDEX person_id_key ON person(id);
+   Pokud chcete trídit podle hodnoty NULL, pouzijte výraz IS NULL nebo IS
+   NOT NULL v klauzuli ORDER. Hodnota pravda má prednost pred hodnotou
+   false a tedy pokud pouzijete:
+   SELECT *
+   FROM tab
+   ORDER BY (col IS NOT NULL)
 
-   Viz dokumentace create_sequence v manuálových stránkách. Dále můľete
-   pouľít unikátní hodnotu OID kaľdého řádku. Potom ale musíte spouątět
-   pg_dump s přepínačem -o, tak aby zůstaly zachovány hodnoty OID (u
-   příkazu copy COPY WITH OIDS).
-   
-    4.15.2) Jak získat hodnotu SERIAL po vloľení řádku?
-    
-   Jednou z moľností je získat budoucí hodnotu SERIAL funkcí nextval()
-   před samotným vloľením a pak ji vloľit explicitně. Například v jakémsi
-   pseudojazyku:
-    newid = execute("SELECT nextval('person_id_seq')");
-    execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
+   tak záznamy s NULL budou na zacátku setrídených dat.
+   
+  4.10) Jaké jsou rozdíly mezi ruznými znakovými typy?
+  
+   Typ        Interní název Poznámky
+   VARCHAR(n) varchar       n urcuje maximální délku
+   CHAR(n)    bpchar        retezec je do dané délky rozsíren mezerami
+   TEXT       text          bez omezení délky
+   BYTEA      bytea         pole bytu nespecifikované délky
+   "char"     char          jeden znak
+   
+   Na interní názvy muzete narazit v systémovém katalogu nebo v nekterých
+   chybových hláseních.
+   
+   Ctyri první typy jsou tzv. varlena typy (první ctyri byty na disku
+   jsou obsahují délku, ostatní obsahují vlastní data). Skutecne obsazený
+   prostor je tedy o neco málo vetsí nez deklarovaná velikost. Na druhou
+   stranu, delsí retezce jsou komprimovány, takze obsazený prostor na
+   disku muze být mensí nez se ceká.
+   
+   VARCHAR(n) je vhodný pro ukládání ruzne dlouhých retezcu u kterých
+   známe délkové omezení, TEXT pro retezce bez omezení délky (maximum je
+   jeden gigabyte).
+   
+   CHAR(n) se pouzívá pro ulození stejne dlouhých retezcu. CHAR(n) doplní
+   mezerami na specifikovanou délku, VARCHAR(n) hodnoty se ukládají tak
+   jak jsou. BYTEA je pro ukládání binárních dat - non ASCII hodnot.
+   Vsechny zmínené typy mají podobné výkonové charakteristiky.
+   
+  4.11.1) Jak vytvorit serial/auto-increment polozku?
+  
+   V PostgreSQL muzete pouzít datový typ SERIAL. Jeho pouzitím se
+   automaticky vytvorí sekvence. Napríklad:
+CREATE TABLE person (
+  id   SERIAL,
+  name TEXT
+);
 
-   Můľete pak jeątě pouľít hodnotu newid v daląích dotazech, např. jako
-   hodnotu cizího klíče. Název automaticky vytvořené sekvence je
-   tabulka_sloupec_seq.
-   
-   Alternativně můľete získat hodnotu posledně generovou sekvencí funkcí
-   currval() po vloľení:
-    execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
-    new_id = execute("SELECT currval('person_id_seq')");
+   je automaticky transformováno na:
+CREATE SEQUENCE person_id_seq;
+CREATE TABLE person (
+  id   INT4 NOT NULL DEFAULT nextval('person_id_seq'),
+  name TEXT
+);
 
-   Konečně můľete pouľít OID hodnotu vrácenou příkazem INSERT, ale to je
-   pravděpodobně nejméně přenositelné řeąení. V Perlu při pouľití DBI
-   modulu Edmunda Mergleho DBD:Pg oid hodnotu získáme
-   $sth->{pg_oid_status} po kaľdém $sth->execute().
-   
-    4.15.3) Nepovede currval() a nextval() k rozhození podmínek při souběhu s
-    jinými uľivateli?
-    
-   Nikoliv, currval() vrací hodnotu naposledy generovanou ve vaąem
-   backendu, a ta tudíľ není společná vąem uľivatelům.
-   
-    4.15.4) Proč není vygenerované číslo pouľito při přeruąení transakce? Proč
-    vznikají díry v číslování vlastní sekvencí/SERIAL sloupce?
-    
-   K zajiątění efektivnosti souběhu, jsou hodnoty posloupnosti, kdyľ se o
-   ně poľádá, a sekvence není zamčena do ukončení transakce. To způsobuje
-   díry v číslování ze zruąených transakcí.
-   
-    4.16) Co to je OID? Co je to TID?
-    
-   Kaľdý řádek vytvořený v PostgreSQL získá jedinečné OID. Vąechna OID
-   generovaná během inicializace databáze jsou menąí neľ 16384
-   (include/access/transam.h). Vąechna OID generovaná na poľadavek
-   uľivatele jsou rovna nebo vyąąí této hodnotě. Normálně, vąechna OID
-   jsou jedinečná nejen uvnitř tabulky nebo databáze, ale v rámci celé
-   instalace PostgreSQL
-   
-   PostgreSQL pouľívá OID ve svém interním systému tabulek k vytvoření
-   relací. Tato OID mohou být pouľita k identifikaci konkrétního
-   uľivatele a pouľita v spojení. Pro OID hodnoty je doporučen typ OID.
-   Nad tímto sloupcem můľete vytvořit index pro urychlení přístupu.
-   
-   OID jsou dána vąem řádkům z centrální oblasti a jsou pouľita v kaľdé
-   databázi. Pokud potřebujete změnit OID, nebo chcete zkopírovat tabulku
-   s původními OID, lze pouľít:
-        CREATE TABLE new_table(old_oid oid, mycol int);
-        SELECT old_oid, mycol INTO new FROM old;
-        COPY new TO '/tmp/pgtable';
-        DELETE FROM new;
-        COPY new WITH OIDS FROM '/tmp/pgtable';
+   Podrobnejsí informace najdete v manuálu v popisu príkazu
+   create_sequence.
+   
+  4.11.2) Jak získat hodnotu SERIAL po vlození rádku?
+  
+   Nejjednodussím zpusob, jak získat vygenerovanou hodnotu typu SERIAL,
+   je vyuzít klauzuli RETURNING. Pro tabulku z 4.11.1 vypadá takto:
+INSERT INTO person (name) VALUES ('Blaise Pascal') RETURNING id;
 
-   OID jsou uloľena jako 4bajtový integer a přetečou po čtyřech
-   miliardách. Nebylo hláąeno, ľe by se tak někdy stalo, přesto ale
-   plánujeme odstranit tento limit dřív neľ se tak stane.
-   
-   TID se pouľívají i identifikaci fyzických řádků s hodnotou bloku a
-   offsetu. TIDs se mění modifikací řádků (pouľívá se jako ukazatel
-   indexu fyzického řádku).
-   
-    4.17) Jaký je význam některých výrazů pouľitých v PostgreSQL?
-    
-   V některých zdrojových kódech nebo starąí dokumentaci se můľete setkat
-   s následujícími výrazy, které mají ąirąí význam. Zde je příklad
-   nekterých:
-     * tabulka, relace, třída (table, relation, class)
-     * řádek, záznam, ntice (row, record, tuple)
-     * sloupec, poloľka, atribut (column, field, attribute)
-     * vyhledání, výběr (retrieve, select)
-     * náhrada, úprava (replace, update)
-     * přidání, vkládání (append, insert)
-     * OID, serial value (OID, serial value)
-     * portal, kurzor (portal, cursor)
-     * range variable, jméno tabulky, alias tabulky (range variable,
-       table name, table alias)
-       
-   seznam těchto výrazů můľete nalézt na
-   http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary
-   /glossary.html.
-   
-    4.18) Proč jsem získal chybové hláąení "ERROR: Memory exhausted in
-    AllocSetAlloc()"?
-    
-   Pravděpodobně doąlo k vyčerpání virtuální pamě»i na Vaąem systému,
-   nebo jádro má nízký limit pro určité zdroje. Vyzkouąejte před startem
-   posmatera
-    ulimit -d 262144
-    limit datasize 256m
+   Také muzete pouzít funkci nextvall() a její výsledek pouzít v príkazu
+   INSERT, nebo zavolat currval() po provedení príkazu INSERT.
+   
+  4.11.3) Nezpusobí currval() a nextval() problémy ve více uzivatelském
+  prostredí?
+  
+   Ne, currval vrací vzdy hodnotu, která byla vygenerována pro vás.
+   
+  4.11.4) Proc není vygenerované císlo pouzito pri prerusení transakce?Proc
+  vznikají díry v císlování prostrednictvím sekvence nebo typu SERIAL?
+  
+   Poté co sekvence vygeneruje nové císlo, tak se nedochází k zamcení
+   sekvence a neceká se na úspesné nebo neúspesné dokoncení transakce.
+   Odvoláním transakce, která si vyzádala císla sekvence se tato císla
+   nenávratne ztratí.
+   
+  4.12) Co to je OID? Co je to CTID?
+  
+   V prípade, ze tabulku nezalozíme s atributem WITHOUT OIDS, tak má
+   kazdý rádek unikátní identifikacní císlo OID. Toto císlo je 4 bajtové
+   celé císlo, které je jedinecné v celé instalaci. Pretece po 4
+   miliardách rádku. PostgreSQL pouzívá OIDs jako interní linky v
+   interních systémových tabulkách.
+   
+   K získání unikátního císla v nesystémových tabulkách je vhodnejsí
+   pouzití typu SERIAL nez OID, jelikoz sekvence SERIAL se pouzívá pouze
+   pro jednu tabulku a je tudíz méne náchylná na pretecení. Pokud byste
+   se toho obávali, pouzijte typ SERIAL8.
+   
+   CTID se pouzívá k identifikaci konkrétního fyzického rádku. CTID se
+   mení pokud je rádek modifikován nebo znovu nacten. Pouzívají ho indexy
+   jako adresaci fyzických rádku.
+   
+  4.13) Co znamená chybové hlásení "ERROR: Memory exhausted in
+  AllocSetAlloc()"?
+  
+   Pravdepodobne jste vycerpal dostupnou virtuální pamet, nebo tvuj
+   kernel má prílis nízké limity u urcitých zdroju. Pred startem
+   PostgreSQL vyzkousejte:
+ulimit -d 262144
+limit datasize 256m
 
-   Záleľí na Vaąem shellu, zda budou tyto příkazy úspěąné, měly by zvýąit
-   limit datového segmentu pro Vaąe procesy a umoľnit tak dokončení
-   dotazu. Tyto příkazy se aplikují na aktuální proces a vąechny synovské
-   procesy vytvořené po provedení příkazu. Pokud máte problémy s SQL
-   klientem protoľe backend vrací přílią mnoho dat, zkuste zvýąit limity
-   před startem klienta.
-   
-    4.19) Jak se dozvím, kterou verzi PostgreSQL pouľívám?
-    
-   V psql spus»te SELECT version();
-   
-    4.20) Proč operace s velkými objekty končí "invalid large obj descriptor"?
-    
-   Vąechny operace s velkými objekty - lo_open, lo_close, ... musíte
-   spouątět v transakci, tj. mezi příkazy BEGIN WORK a COMMIT.
-   
-   PostgreSQL uvolňuje handle velkých objektů při skončení transakce.
-   Pokud budete pracovat s velkými objekty mimo transakci, pravděpodobně
-   dostanete toto chybové hláąení, protoľe handle jiľ budou neplatné.
-   Pokud pouľíváte interface podobné ODBC musíte nastavit set auto_commit
-   off.
-   
-    4.21) Jak vytvořit sloupec obsahující implicitně aktuální datum?
-    
-   Pouľijte CURRENT_TIMESTAMP:
-
-CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
-
-    4.22) Proč jsou moje vnořené dotazy pouľívající IN tak pomalé?
-    
-   Dřívějąí verze (před 7.4) spojovali vnořené dotazy k vnějąím
-   sekvenčním čtením výsledku poddotazu pro kaľdý řádek vnějąího dotazu.
-   Pokud poddotaz vrátil několik málo řádků IN bylo rychlé. Pro ostatní
-   případy je vhodné nahradit IN EXISTS:
-    SELECT *
-    FROM tab
-    WHERE col IN (SELECT subcol FROM subtab);
+   Mozná, ze se projde pouze jeden príkaz - zálezí to na vasem shellu.
+   Mel by zvednout limity datových segmentu vasich procesu na dostatecne
+   velkou hodnotu a snad umoznit dokoncení dotazu. Zmena limitu se bude
+   aplikovat pouze na aktuální proces a na vsechny nove vytvorené
+   procesy. Jestlize máte problém s SQL klientem, protoze vám server
+   vrátil prílis dat, zkuste to pred startem klienta.
+   
+  4.14) Jak zjistím, kterou verzi PostgreSQL pouzívám?
+  
+   V psql napiste:
+SELECT version();
 
-   na:
-   SELECT *
-   FROM tab
-   WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
+  4.15) Jak vytvorit sloupec, který bude implicitne obsahovat aktuální cas?
+  
+   Pouzijte CURRENT_TIMESTAMP:
+CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
 
-   Pro urychlení vytvořete index pro subcol.
-   
-   Ve verzi 7.4 a pozdějąích, IN pouľívá stejně sofistikovanou techniku
-   spojování tabulek jako ostatní dotazy a je preferovaný před EXISTS.
-   
-    4.23) Jak provést vnějąí spojení (outer join)?
-    
-   PostgreSQL podporuje vnějąí spojení tabulek standardními SQL příkazy.
-   Zde jsou dva příklady:
-    SELECT *
-    FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
+  4.16) Jak provést vnejsí spojení (outer join)?
+  
+   PostgreSQL podporuje standardní SQL syntaxi pro vnejsí spojení. Zde
+   jsou dva príklady:
+SELECT *
+FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
 
    nebo
-    SELECT *
-    FROM t1 LEFT OUTER JOIN USING (col);
-
-   Tyto identické dotazy napojí t1.col na t2.col a jeątě přidá
-   nepřipojené řádky z t1 (které nemají obdoby v t2). Pravé spojení
-   (RIGHT JOIN) přidá nepřipojené řádky z t2. FULL JOIN vrátí vąechny
-   řádky, včetně nepřipojených z tbulek t1 a t2. Klíčové slovo OUTER je
-   nepovinné a váľe se na LEFT, RIGHT a FULL join. Běľné spojení se
-   nazývá INNER JOIN.
-   
-   V dřívějąích verzích se vnějąí spojení tabulek mohlo simulovat pomocí
-   UNION a NOT IN. Například pro spojení tabulek tab1 a tab2, je
-   následující dotaz ekvivalentní k vnějąímu spojení dvou tabulek:
-    SELECT tab1.col2, tab2.col2
-    FROM tab1, tab2
-    WHERE tab1.col1 = tab2.col1
-    UNION ALL
-    SELECT tab1.col2, NULL
-    FROM tab1
-    WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
-    ORDER BY col1;
+SELECT *
+FROM t1 LEFT OUTER JOIN t2 USING (col);
 
-    4.24) Jak provést dotaz z více databází?
-    
-   PostgreSQL nepodporuje dotazy do jiné neľ aktuální databáze.
-   
-   contrib/dblink nabízí funkce umoľňující provedení dotazu v jiné
-   databázi. Klient si můľe otevřít simultální připojení do různých db
-   bez omezení.
-   
-    4.25) Můľe funkce vrátit více řádků nebo sloupců?
-    
-   V PostgreSQL 7.3 můľete jednoduąe vracet více řádků nebo sloupců z
-   funkce, viz:
-   http://techdocs.postgresql.org/guides/SetReturningFunctions.
-   
-    4.26) Proč nelze spolehlivě vytvářet a ruąit dočasné tabulky v PL/pgSQL
-    funkcích?
-    
-   Přeloľený kód PL/pgSQL funkce je uloľen ve vyrovnávací paměti, tj.
-   funkce je překládána pouze při změně kódu, nikoliv před kaľdým voláním
-   funkce. Nechtěným vedlejąím efektem je, ľe volání funkce selľe, kdyľ
-   se funkce odkazuje na dočasnou tabulku, pokud tato tabulka byla od
-   překladu funkce zruąena (ačkoliv jiľ byla znovu vytvořena a existuje).
-   Jediným řeąením problému je přístup k dočasné tabulce pomocí EXECUTE,
-   tj. dynamické provádění dotazu. Tento příkaz zajistí opakovaný překlad
-   dotazu při kaľdém volání funkce.
-   
-    4.27) Jaké jsou moľnosti replikace databází?
-    
-   Existuje několik dostupných řeąení master/slave replikací, tj umoľňují
-   modifikace master databáze a slave databázím umoľňují pouze čtení. Na
-   konci http://gborg.PostgreSQL.org/genpage?replication_research najdete
-   jejich seznam. Na řeąení multi-master replikaci se pracuje na
-   http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
-   
-    4.28) Jaké jsou moľnosti ąifrování databází?
-    
-     * contrib/pgcrypto obsahuje ąifrovací funkce pouľitelné v SQL
-       dotazech.
-     * K ąifrování přenosu dat z klienta na server, musí být server
-       přeloľen s podporou ssl a přepínač ssl v postgresql.conf musí být
-       nastaven na hodnotu true. Klient musí mít vytvořen záznam hostssl
-       v pg_hba.conf a také mít povolen reľim ssl. Lze pouľít i jiné
-       prostředky, nejen nativní podporu ssl v PostgreSQL, např. stunel a
-       ssh.
-     * Hesla uľivatelů databáze jsou zaąifrována počínaje verzí 7.3. Ve
-       starąích verzích toto chování muselo být vynuceno volbou
-       PASSWORD_ENCRYPTION v postgresql.conf
-     * Server můľe běľet na ąifrovaném souborovém systému.
-     _________________________________________________________________
-   
-                           Roząiřování PostgreSQL
-                                      
-    5.1) Napsal jsem UDF funkci, PostgreSQL vąak končí dump core?
-    
-   Problém můľe být způsoben mnoha okolnostmi. Vyzkouąejte si svoji
-   funkci nejdříve v nějaké jednoduché aplikaci.
-   
-    5.2) Jak mohu přispět nějakými ąikovnými datovými typy a funkcemi do
-    PostgreSQL?
-    
-   Poąlete své roząíření do konference pgsql-hackers, a ono pak moľná
-   skončí v podadresáři contrib.
-   
-    5.3) Jak napsat funkci v C vracející ntici?
-    
-   Funkce vracející tabulky jsou podporované PostgreSQL 7.3 a vyąąí pro
-   jazyky C, PL/PgSQL a SQL. Více naleznete v The Programmer's Guide.
-   Příklady těchto funkcí pro C naleznete v contrib/tablefunc.
-   
-    5.4) Modifikoval jsem zdrojové soubory. Tato změna nebyla při rekompilaci
-    vzata v potaz. Proč?
-    
-   Makefile nemá informace o závislostech mezi hlavičkovými soubory.
-   Musíte provést make clean a pak make. Pokud pouľíváte gcc, můľete
-   pouľít přepínač --enable-depend příkazu configure k automatickému
-   řeąení závislostí překladačem.
+   Tyto identické dotazy spojí sloupec t1.col k sloupci t2.col, a jeste
+   vrátí vsechny nespárované rádky t2 (ty, které nedohledá v t2). RIGHT
+   JOIN by pripojil vsechny nespárované rádky z t2. FULL JOIN vrátí
+   vsechny spárované rádky i vsechny zbývající rádky z obou tabulek.
+   Klícové slovo OUTER je volitelné. Bezná operace JOIN se také oznacuje
+   jako vnitrní spojení.
+   
+  4.17) Jak provést dotaz napríc nekolika databázemi?
+  
+   Neexistuje zádný zpusob, jak se v dotazu odkazovat na tabulky z jiné
+   nez aktuální databáze. A to protoze má systémové tabulky ulozené
+   nezávisle v kazdé databázi a není tak úplne zrejmé, jak by se dotaz
+   provedený napríc databázemi mel chovat.
+   
+   Jeden z doplnku dblink umoznuje dotaz nad nekolika tabulkami pomocí
+   funkcí. Druhý zpusob je simultální pripojení klienta ke vsem
+   relevantním databázím a sloucení výsledku na strane klienta.
+   
+  4.18) Muze funkce vrátit více rádku nebo sloupcu?
+  
+   Jde to jednoduse pomocí set-returning funkce. Více na
+   http://www.postgresql.org/docs/techdocs.17.
+   
+  4.19) Co je prícinou chyby "relation with OID xxxxx does not exist"?
+  
+   Nechteným vedlejsím efektem kesování SQL dotazu v PL/pgSQL funkci je
+   problém s neplatnými odkazy na docasné tabulky, které byly od prvního
+   spustení funkce zruseny a znovu vytvoreny pred dalsím spustením
+   PL/pgSQL funkce. Resením je pouzít príkaz EXECUTE a to proto, ze
+   provádecí plán SQL príkazu spousteného príkazem EXECUTE se vytvárí
+   pokazdé znovu (neukládá se do cache).
+   
+   Tento problém by se nemel vyskytovat u PostgreSQL verze 8.3 a vyssích
+   verzích.
+   
+  4.20) Jaké jsou moznosti replikace databází?
+  
+   Replikaci databáze umoznuje nekolik technoligií. Kazdá má urcité
+   výhody a nevýhody.
+   
+   Master/Slave replikaci podporuje jeden hlavní server, který prijímá
+   pozadavky na zápis a ctení, a nekolik podrízených serveru, které
+   umoznují pouze ctení (SELECT). Nejrozsírenejsím volne dostupným
+   resením tohoto typu je Slony-I.
+   
+   Replikace typu Multi-master podporuje existenci nekolika serveru s
+   povoleným zápisem na více replikovaných serverech. Toto resení zvysuje
+   zátez serveru, protoze je nutná synchronizace serveru.
+   Nejrozsírenejsím volne dostupným resením je PGCluster.
+   
+   Jeste existuje nekolik komercních a hardware resení replikací
+   podporujících ruzné modely replikace.
+   
+  4.21) Proc v dotazu nejsou rozpoznány názvy mých tabulek nebo funkcí? Proc
+  jsou velká písmena v názvech automaticky prevedena na malá písmena?
+  
+   Nejcastejsím duvodem nerozpoznání názvu objektu bylo pouzití vlození
+   názvu sloupce nebo tabulky mezi uvozovky pri zakládání tabulky. Pokud
+   se název zapíse mezi uvozovky, pak je case sensitive, a v dusledku
+   toho je nutné názvy techto sloupcu nebo tabulek v SQL príkazech také
+   vkládat mezi uvozovky (pokud obsahují velká písmena). Nekteré
+   programy, jako je napríklad pgAdmin, automaticky pouzívají uvozovky.
+   Takze pokud chcete, aby systém identifikoval identifikátor, musíte:
+     * nepouzívat uvozovky v príkazu CREATE TABLE
+     * v identifikátoru pouzít pouze malá písmena
+     * v dotazech vkládat identifikátory do uvozovek
diff --git a/doc/src/FAQ/FAQ_czech.html b/doc/src/FAQ/FAQ_czech.html
index 7baa4c0dea9..3a485388eed 100644
--- a/doc/src/FAQ/FAQ_czech.html
+++ b/doc/src/FAQ/FAQ_czech.html
@@ -1,1167 +1,645 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-  <HEAD>
-    <META name="generator" content="HTML Tidy, see www.w3.org">
-    <META http-equiv="Content-Type" content="text/html; charset="iso-8859-2">
-    <META http-equiv="Content-language" content="cs">
-    <META name="description" lang="en" content="Czech translation of FAQ for PostgreSQL"> 
-    <META name="description" lang="cs" content="Český překlad FAQ PostgreSQL">
-
-    <TITLE>PostgreSQL FAQ</TITLE>
-  </HEAD>
-
-  <BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000"
-  alink="#0000ff">
-
-
-   <H1>Často kladené dotazy (FAQ) PostgreSQL</H1>
-
-   <P>Poslední aktualizace: Středa 23. června 21:10:00 EST 2004</P>
-
-   <P>Současný správce: Bruce Momjian (<A href=
-   "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)</P>
-
-   <P>Přeloľil: Pavel Stěhule (<A href=
-   "mailto:stehule@kix.fsv.cvut.cz">stehule@kix.fsv.cvut.cz</A>)</P>
-
-   <P>Aktuální verzi tohoto dokumentu naleznete na adrese: <A href=
-   "http://www.PostgreSQL.org/docs/faqs/FAQ.html">http://www.PostgreSQL.org/docs/faqs/FAQ.html</A>. 
-   Český překlad na adrese: <A href="http://www.PostgreSQL.org/docs/faqs/FAQ_czech.html">
-   http://www.PostgreSQL.org/docs/faqs/FAQ_czech.html</A>.</P>
-
-   <P>Odpovědi na dotazy relevantní ke konkrétním platformám
-   lze nalézt na adrese: <A href="http://www.PostgreSQL.org/docs/index.html">
-   http://www.PostgreSQL.org/docs/index.html</A>.</P>
-   <HR>
-   <H2 align="center">Obecné otázky</H2>
-
-   <A href="#1.1">1.1</A>) Co je PostgreSQL? Jak se vyslovuje?<BR>
-   <A href="#1.2">1.2</A>) Jaká je licence na PostgreSQL?<BR>
-   <A href="#1.3">1.3</A>) Na kterých Unixex lze spustit PostgreSQL?<BR>
-   <A href="#1.4">1.4</A>) Které ne-unixové platformy jsou podporované?<BR>
-   <A href="#1.5">1.5</A>) Kde mohu získat PostgreSQL?<BR>
-   <A href="#1.6">1.6</A>) Kde mohu získat podporu?<BR>
-   <A href="#1.7">1.7</A>) Kde je poslední verze?<BR>
-   <A href="#1.8">1.8</A>) Jaká je dostupná dokumentace?<BR>
-   <A href="#1.9">1.9</A>) Kde najdu seznam známých chyb nebo nepodporovaných vlastností?<BR>
-   <A href="#1.10">1.10</A>) Jak se mohu naučit SQL?<BR>
-   <A href="#1.11">1.11</A>) Nemá PostgreSQL problémy s rokem 2000?<BR>
-   <A href="#1.12">1.12</A>) Jak se připojit k vývojářskému týmu?<BR>
-   <A href="#1.13">1.13</A>) Kam podat report o chybě?<BR>
-   <A href="#1.14">1.14</A>) Jak je na tom PostgreSQL v porovnání s jinými databázemi?<BR>
-   <A href="#1.15">1.15</A>) Jak lze finančně pomoci PostgreSQL?<BR>
-
-   <H2 align="center">User client dotazy</H2>
-
-   <A href="#2.1">2.1</A>) Kde naleznu ODBC ovladače pro PostgreSQL?<BR>
-   <A href="#2.2">2.2</A>) Jaké nástroje lze pouľít pro PostgreSQL a web?<BR>
-   <A href="#2.3">2.3</A>) Existuje grafické rozhraní pro PostgreSQL?<BR>
-   <A href="#2.4">2.4</A>) Které programovací jazyky mají podporu pro PostgreSQL?<BR>
-
-   <H2 align="center">Administrativní dotazy</H2>
- 
-   <A href="#3.1">3.1</A>) Jak nainstalovat PostgreSQL jinam neľ do /usr/local/pgsql?<BR>
-   <A href="#3.2">3.2</A>) Při startu postmaster, dostanu chybové hláąení Bad System Call nebo
-   core dump. Proč?<BR>
-   <A href="#3.3">3.3</A>) Při startu postmastera dostanu hláąení o chybě
-   IpcMemoryCreate. Proč?<BR>
-   <A href="#3.4">3.4</A>) Při startu postmastera dostanu hláąení o chybě IpcSemaphoreCreate. 
-   Proč?<BR>
-   <A href="#3.5">3.5</A>) Jak povolit nebo zakázat přístup z jiných stanic?<BR>
-   <A href="#3.6">3.6</A>) Jak ladit databázový stroj na lepąí výkon?<BR>
-   <A href="#3.7">3.7</A>) Jaké jsou moľnosti ladění?<BR>
-   <A href="#3.8">3.8</A>) Proč dostanu "Sorry, too many clients", kdyľ se zkouąím připojit?<BR>
-   <A href="#3.9">3.9</A>) K čemu slouľí adresář pgsql_tmp?<BR>
-   <A href="#3.10">3.10</A>) Proč je poľadováno dump a obnovení (load) databáze během upgrade
-   mezi velkými verzemi PostgreSQL?<BR>
-
-   <H2 align="center">Provozní dotazy</H2>
-
-   <A href="#4.1">4.1</A>) Čím se liąí binární a normální kurzor?<BR>
-   <A href="#4.2">4.2</A>) Jak získat pouze první řádek dotazu? Náhodný řádek?<BR>
-   <A href="#4.3">4.3</A>) Jak získám seznam tabulek nebo jinak jak jej získá psql?<BR>
-   <A href="#4.4">4.4</A>) Jak odstraním sloupec tabulky, jak změním jeho typ?<BR>
-   <A href="#4.5">4.5</A>) Jaká je maximální velikost řádku, tabulky a databáze?<BR>
-   <A href="#4.6">4.6</A>) Kolik diskového prostoru je potřeba k uloľení dat z normálního
-   textového souboru?<BR>
-   <A href="#4.7">4.7</A>) Jak získám seznam vytvořených tabulek, indexů,
-   databází?<BR>
-   <A href="#4.8">4.8</A>) Můj dotaz je pomalý a nepouľívá vytvořené indexy. Proč?<BR>
-   <A href="#4.9">4.9</A>) Jak zjistím, jak optimizer dotazu vyhodnocuje můj dotaz?<BR>
-   <A href="#4.10">4.10</A>) Co to je R-tree index?<BR>
-   <A href="#4.11">4.11</A>) Co je Genetic Query Optimizer?<BR>
-   <A href="#4.12">4.12</A>) Jak provést vyhledávání regulárního výrazu case sensitiv,
-   insensitiv? Jak pouľít index pro case insensitive vyhledávání?<BR>
-   <A href="#4.13">4.13</A>) Jak v dotazu detekovat, ľe poloľka je NULL?<BR>
-   <A href="#4.14">4.14</A>) Jaké jsou rozdíly mezi různými znakovými typy?<BR>
-   <A href="#4.15.1">4.15.1</A>) Jak vytvořit serial/auto-increment pole?<BR>
-   <A href="#4.15.2">4.15.2</A>) Jak získat hodnotu SERIAL po vloľení řádku?<BR>
-   <A href="#4.15.3">4.15.3</A>) Nepovede currval() a nextval() k rozhození podmínek při souběhu s
-   jinými uľivateli?<BR>
-   <A href="#4.15.4">4.15.4</A>) Proč není vygenerované číslo pouľito při přeruąení transakce?
-   Proč vznikají díry v číslování vlastní sekvencí/SERIAL sloupce?<BR>
-   <A href="#4.16">4.16</A>) Co to je OID? Co je to TID?<BR>
-   <A href="#4.17">4.17</A>) Jaký je význam některých výrazů pouľitých v PostgreSQL?<BR>
-   <A href="#4.18">4.18</A>) Proč jsem získal chybové hláąení "ERROR: Memory exhausted in
-   AllocSetAlloc()"?<BR>
-   <A href="#4.19">4.19</A>) Jak se dozvím, kterou verzi PostgreSQL pouľívám?<BR>
-   <A href="#4.20">4.20</A>) Proč operace s velkými objekty končí "invalid large obj descriptor"?<BR>
-   <A href="#4.21">4.21</A>) Jak vytvořit sloupec obsahující implicitně aktuální datum?<BR>
-   <A href="#4.22">4.22</A>) Proč jsou moje vnořené dotazy pouľívající IN tak pomalé?<BR>
-   <A href="#4.23">4.23</A>) Jak provést vnějąí spojení (outer join)?<BR>
-   <A href="#4.24">4.24</A>) Jak provést dotaz napříč několika databázemi?<BR>
-   <A href="#4.25">4.25</A>) Můľe funkce vrátit více řádků nebo sloupců?<BR>
-   <A href="#4.26">4.26</A>) Proč nelze spolehlivě vytvářet a ruąit dočasné tabulky 
-   v PL/pgSQL funkcích?<BR>
-   <A href="#4.27">4.27</A>) Jaké jsou moľnosti replikace databází?<BR>
-   <A href="#4.28">4.28</A>) Jaké jsou moľnosti ąifrování databází?<BR>
-
-   <H2 align="center">Roząiřování PostgreSQL</H2>
-
-   <A href="#5.1">5.1</A>) Napsal jsem UDF funkci, PostgreSQL vąak končí dump core?<BR>
-   <A href="#5.2">5.2</A>) Jak mohu přispět nějakými ąikovnými datovými typy a funkcemi do
-   PostgreSQL?<BR>
-   <A href="#5.3">5.3</A>) Jak napsat funkci v C vracející ntici?<BR>
-   <A href="#5.4">5.4</A>) Modifikoval jsem zdrojové soubory. Tato změna nebyla při rekompilaci
-   vzata v potaz. Proč?<BR>
-
-   <HR>
- 
-   <H2 align="center">Obecné otázky</H2>
-
-   <H4><A name="1.1">1.1</A>) Co je PostgreSQL? Jak se vyslovuje?</H4>
-
-   <P>PostgreSQL se vyslovuje <I>Post-Gres-Q-L</I>. Zvukový záznam je 
-   dostupný na adrese <A href="http://www.postgresql.org/postgresql.mp3"></A>.</P>
-
-   <P>PostgreSQL vychází z databáze POSTGRES (a stále je někdy označován
-   zjednoduąeně jako Postgres) - výzkumného prototypu <SMALL>DBMS</SMALL> nové
-   generace. Z postgresu byl převzat silný datový model a bohatý soubor
-   datových typů a jeho dotazovací jazyk PostQuel byl nahrazen roząířenou
-   podmnoľinou jazyka <SMALL>SQL</SMALL>. PostgreSQL lze pouľívat bez omezení a jeho
-   zdrojové kódy jsou volně k dispozici.</P>
-
-   <P>PostgreSQL vyvýjí tým vývojářů přihláąených do vývojářské konference
-   PostgreSQL. Současným koordinátorem je Marc G. Fournier (<A href=
-   "mailto:scrappy@PostgreSQL.org">scrappy@PostgreSQL.org</A>). 
-   (viz <A href="#1.6">1.6</A> - jak se zapojit). Tento tým je zodpovědný za veąkerý vývoj 
-   PostgreSQL. Jedná se o veřejný projekt, který není řízen ľádnou firmou.
-   Pokud se chcete zapojit, přečtěte si  developer's FAQ na adrese <A href=
-   "http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html">http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html</A></P>
-
-   <P>Autory první verze PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. Do
-   portace, testování, ladění a roząiřování kódu se zapojilo mnoho daląích
-   vývojářů . Původni kód Postgresu, ze kterého PostgreSQL vychází, je
-   výsledkem úsilí mnoha studentů a programátorů pracujících pod vedením
-   prof. Michaela Stonebrakera na University of California v Berkley.</P>
-
-   <P>Původní název software z Berkley byl Postgres. Po přidání jazyka <SMALL>SQL</SMALL> se
-   název změnil na Postgres95. Koncem roku 1996 byl RDBMS přejmenován na
-   PostgreSQL.</P>
-
-   <H4><A name="1.2">1.2</A>) Jaká je licence na PostgreSQL?</H4>
-
-   <P>PostgreSQL je předmětem následujících autorských práv:</P>
-
-   <P>Dílčí Copyright (c) 1996-2007, PostgreSQL Global Development Group
-   Dílčí Copyright (c) 1994-6, Regents of the University of California</P>
-
-   <P>Uděluje se oprávnění k uľití, rozmnoľování, provádění úprav a
-   roząiřování tohoto softwaru a dokumentace k němu, pro jakékoli účely,
-   bez licenčního poplatku a bez písemné licenční smlouvy, za podmínky, ľe
-   na vąech jeho kopiích je uvedeno oznámení o výąe uvedených právech,
-   jakoľ i obsah tohoto a dvou následujících odstavců.</P>
-
-   <P>THE UNIVERSITY OF CALIFORNIA ("KALIFORNSKÁ UNIVERZITA") NENÍ V ®ÁDNÉM
-   PŘÍPADĚ ODPOVĚDNA ®ÁDNÉ TŘETÍ OSOBĚ ZA PŘÍMOU, NEPŘÍMOU, ZVLÁ©TNÍ,
-   NAHODILOU NEBO VÝSLEDNOU ©KODU, VČETNĚ U©LÉHO ZISKU, ZPůSOBENOU U®ITÍM
-   TOHOTO SOFTWARU A DOKUMENTACE K NĚMU, A TO I V PŘÍPADĚ, ®E THE
-   UNIVERSITY OF CALIFORNIA BYLA INFORMOVÁNA O MO®NOSTI VZNIKU TAKOVÉ
-   ©KODY.</P>
-
-   <P>HE UNIVERSITY OF CALIFORNIA ZEJMÉNA NEPOSKYTUJE JAKÉKOLI ZÁRUKY, A TO
-   NEJEN ZÁRUKY OBCHODOVATELNOSTI A VHODNOSTI TOHOTO VýROBKU KE SPECIFICKýM
-   ÚČELůM. NÍ®E UVEDENý SOFTWARE JE POSKYTNUT "JAK STOJÍ A LE®Í" A THE
-   UNIVERSITY OF CALIFORNIA NENÍ POVINNA ZAJISTIT JEHO ÚDR®BU, PODPORU,
-   AKTUALIZACI, VYLEP©ENÍ NEBO MODIFIKACI.</P>
-
-   <P>Výąe uvedené je BSD licence, běľná licence otevřeného zdroje. Není zde
-   ľádné omezení ohledně uľití kódu zdroje. Jsme s tím spokojeni a nemáme v
-   úmyslu na této skutečnosti cokoli měnit.</P>
-
-   <H4><A name="1.3">1.3</A>) Na kterých Unixex lze spustit PostgreSQL?</H4>
-
-   <P>PostgreSQL běľí na vąech moderních unixových platformách. V instalačních
-   instrukcích naleznete aktuální seznam vąech platforem na kterých byla
-   testováním ověřena funkcionalita PostgreSQL.</P>
-
-   <H4><A name="1.4">1.4</A>) Které ne-unixové platformy jsou podporované?</H4>
-
-   <P><STRONG>Klient</STRONG></P>
-
-   <P>Knihovna <I>libpq</I>, psql a některé daląí moduly byly přeloľeny pro MS
-   Windows. Klienta lze provozovat na MS Windows, ten prostřednictvím
-   TCP/IP protokolu komunikuje se serverem běľícím na některé z
-   podporovaných Unixových platforem. K překladu lze pouľít <I>win32.mak</I> a
-   Win32 knihovny <I>libpq</I> a <I>psql</I>. K databázi PostgerSQL lze přistupovat skrze
-   rozhraní <SMALL>ODBC</SMALL>.</P>
-
-   <P><STRONG>Server</STRONG></P>
-
-   <P>Server můľe být na WindowsNT a Win2k provozován pouze s knihovnou
-   Cygwin, Cygnus Unix/NT porting library. Více <I>pgsql/doc/FAQ_MSWIN</I> v
-   distribuci nebo MS Windows FAQ na adrese
-   <A href="http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN">http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN</A>.</P>
-
-   <P>Na nativním portu pro MS Win NT/2000/XP se pracuje. Daląí informace
-   o aktuálním stavu PostgreSQL pro Windows naleznet na adrese
-   <A href="http://techdocs.postgresql.org/guides/Windows">http://techdocs.postgresql.org/guides/Windows</A> a
-   <A href="http://momjian.postgresql.org/main/writings/pgsql/win32.html">
-   http://momjian.postgresql.org/main/writings/pgsql/win32.html</A>.</P>
-
-   <P>Existující port pro Novell Netware 6 naleznete na
-   <A href="http://forge.novell.com">http://forge.novell.com</A>.</P>
-
-   <H4><A name="1.5">1.5</A>) Kde mohu získat PostgreSQL?</H4>
-
-   <P>Primárním anonymním ftp serverem pro PostgreSQL je
-   <A href="ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</A>. 
-   Seznam zrcadel naleznete na naąich webových stránkách.</P>
-
-   <H4><A name="1.6">1.6</A>) Kde mohu získat podporu?</H4>
-
-   <P>Hlavní mailová konference je: <A href="mailto:pgsql-general@PostgreSQL.org">
-   pgsql-general@PostgreSQL.org</A>. Slouľí k
-   diskuzím ohledně PostgreSQL. Přihlásíte se zasláním mailu obsahující
-   následující řádky v těle dopisu (nikoliv v záhlaví - subjectu):</P>
-<PRE>
-    subscribe
-    end
-</PRE>
-<P>na adresu <A href="mailto:pgsql-general-request@PostgreSQL.org">
-   pgsql-general-request@PostgreSQL.org</A>.</P>
-
-   <P>Můľete si vyľádat denní přehled (diggest), který má zhruba 30K denně
-   zpráv.</P>
-
-   <P>Konference psql-bugs je určena k zasílání zpráv o chybách. Pro
-   přihláąení poąlete mail se stejným obsahem jako v předchozím případě na
-   adresu <A href="mailto:pgsql-bugs-request@PostgreSQL.org">
-   pgsql-bugs-request@PostgreSQL.org</A>.</P>
-
-   <P>Do vývojářské konference se přihlásíte odesláním dopisu s jiľ zmiňovaným
-   obsahem na mailto:pgsql-hackers-request@PostgreSQL.org.</P>
-
-   <P>Seznam daląích konferencí naleznete na stránkách PostgreSQL:</P>
-   <BLOCKQUOTE>
-   <P><A href="http://www.postgresql.org">http://www.postgresql.org</A></P>
-   </BLOCKQUOTE>
-   <H4><A name="1.7">1.7</A>) Jaká je poslední verze?</H4>
-
-   <P>Poslední verze PostgreSQL je 7.4.3. Plánujeme uvolnit významnou verzi
-   kaľdých ąest aľ osm měsíců.</P>
-
-   <H4><A name="1.8">1.8</A>) Jaká je dostupná dokumentace?</H4>
-
-   <P>Různé manuály, manuálové stránky a několik malých testovacích příkladů
-   jsou součásti distribuce. Podívejte se do adresáře <I>/doc</I>. Manuály jsou
-   přístupné online na <A href="http://www.PostgreSQL.org/docs">http://www.PostgreSQL.org/docs</A>.</P>
-
-   <P>Na adresách <A href="http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</A> a
-   <A href="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</A> 
-   naleznezte dvě online knihy o PostgreSQL. Seznam dostupné literatury je na
-   <A href="http://techdocs.PostgreSQL.org/techdocs/bookreviews.php">
-   http://techdocs.PostgreSQL.org/techdocs/bookreviews.php</A>. Soubor
-   technických článků s tematikou PostgresQL najdete na <A href=
-   "http://techdocs.PostgreSQL.org/">http://techdocs.PostgreSQL.org/</A>.</P>
-
-   <P><I>psql</I> má uľitečný metapříkaz \d slouľící k zobrazení informací o typech,
-   operátorech, funkcí, agregačních funkcí atd.</P>
-
-   <P>Více dokumentace naleznete na naąich webových stránkách.</P>
-
-   <H4><A name="1.9">1.9</A>) Kde najdu seznam známých chyb nebo nepodporovaných vlastností?</H4>
-
-   <P>PostgreSQL podporuje roząířenou podmnoľinu <SMALL>SQL-92</SMALL>. V naąem 
-   <A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A>
-   najdete seznam známých chyb, chybějících vlastností a seznam vlastností,
-   které budou do systému implementovány v budoucnu (včetně priorit).</P>
-
-   <H4><A name="1.10">1.10</A>) Jak se mohu naučit SQL?</H4>
-
-   <P>V knize The PostgreSQL book na <A href=
-   "http://www.PostgreSQL.org/docs/awbook.html">
-   http://www.PostgreSQL.org/docs/awbook.html</A> je vysvětlen jazyk SQL (vyąla
-   česky). Daląí dostupnou knihou je <A href=
-   "http://www.commandprompt.com/ppbook">http://www.commandprompt.com/ppbook</A>.
-   Kvalitní návody naleznete na <A href=
-   "http://www.intermedia.net/support/sql/sqltut.shtm"> 
-   http://www.intermedia.net/support/sql/sqltut.shtm</A>, a na
-   <A href="http://sqlcourse.com">http://sqlcourse.com</A>.</P>
-
-   <P>Daląí je Teach Yourself SQL in 21 days, Second Edition na <A href=
-   "http://members.tripod.com/er4ebus/sql/index.htm">http://members.tripod.com/er4ebus/sql/index.htm</A>.</P>
-
-   <P>Mnoho uľivatelů doporučuje <I>The Practical SQL Handbook</I>, Bowman, Judith
-   S., et al., Addison-Wesley. Jiní preferují <I>The Complete Reference SQL</I>,
-   Groff et al., McGraw-Hill.</P>
-
-   <H4><A name="1.11">1.11</A>) Nemá PostgreSQL problémy s rokem 2000?</H4>
-
-   <P>Nemá, můľeme pracovat s datumy po roce 2000 naąeho letopočtu i před
-   rokem 2000 př.n.l.</P>
-
-   <H4><A name="1.12">1.12</A>) Jak se připojit k vývojářskému týmu?</H4>
-
-   <P>Nejdříve si stáhněte nejnovějąí zdroje a přečtěte si vývojářskou
-   dokumentaci na naąem webu nebo v distribuci. Pak se přihlaąte do
-   konferencí <I>pgsql-hackers</I> a <I>pgsql-patches</I>. Kvalitní záplaty posílejte do
-   pgsql-patches.</P>
-
-   <P>Právo commit má v <SMALL>CVS</SMALL> archivu asi třinácti lidí. Kaľdý z nich poslal
-   mnoho kvalitních záplat, takľe tehdejąí commiters měli jistotu, ľe budou
-   předkládat jenom kvalitní záplaty a mohli jim předělit větąí práva.</P>
-
-   <H4><A name="1.13">1.13</A>) Kam podat report o chybě?</H4>
-
-   <P>Navątivte naąi PostgreSQL BugTool stránku na <A href=
-   "http://www.PostgreSQL.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bugs.php</A>, 
-   která obsahuje návod a směrnice jak podat chybový report.</P>
-
-   <P>Ověřte si na naąem ftp serveru <A href="ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</A>, 
-   zda-li máte nejnovějąí verzi PostgreSQL a zda-li k ní neexistují nějaké záplaty.</P>
-
-   <H4><A name="1.14">1.14</A>) Jak je na tom PostgreSQL v porovnání s jinými databázemi?</H4>
-
-   <P>Existuje několik hledisek jak porovnávat software: vlastnosti, výkon,
-   spolehlivost, podpora a cena.</P>
-   <DL>
-   <DT><B>Vlastnosti</B></DT>
-	<DD>PostgreSQL má hodně společných vlastností s velkými komerčními 
-	<SMALL>DBMS</SMALL>, např. transakce, vnořené dotazy, spouątě, pohledy, kontrolu 
-	referenční integrity a sofistikované zamykání. Podporuje některé 
-	vlastnosti, které tyto systémy nemají, uľivatelem definované typy, 
-	dědičnost, pravidla, MVCC redukující zamykání.<BR><BR></DD>
-
-   <DT><B>Výkon</B></DT>
-	<DD>Výkonnostně je na tom PostgreSQL podobně jako daląí komerční ale 
-	i open source databáze, v něčem je rychlejąí, jindy pomalejąí. 
-	V porovnání s MySQL a podobnými databázovými systémy je PostgreSQL 
-	rychlejąí při víceuľivatelském přístupu, sloľitějąích dotazech 
-	a zatíľení read/write dotazy. MySQL je rychlejąí v jednoduąąích 
-	dotazech s malým počtem uľivatelů. Navíc, MySQL nepodporuje mnohé 
-	vlatnosti zmíněné v sekci <I>vlastnosti</I>. Zapracovali jsme na 
-	spolehlivosti a podporovaných vlastnostech, a výkon zvyąujeme 
-	v kaľdé verzi. Zajímavou stránku porovnávající PostgreSQL a MySQL 
-	naleznete na <A href="http://openacs.org/philosophy/why-not-mysql.html">http://openacs.org/philosophy/why-not-mysql.html</A>. 
-	Za vývojem MySQL není Open Source komunita, ale komerční společnost,
-	přestoľe svoje produkty distribuuje jako Open Source.<BR><BR></DD>
-
-   <DT><B>Spolehlivost</B></DT>
-	<DD>Jsme si vědomi, ľe databáze musí být spolehlivá, jinak je 
-	nepouľitelná. Snaľíme se zveřejňovat dobře otestovaný, stabilní 
-	kód s minimem chyb. Kaľdá verze je více neľ měsíc v beta testování, 
-	a naąe historie verzí ukazuje, ľe můľeme nabídnout stabilní, solidní 
-	verze, které jsou připraveny pro reálné nasazení. V této oblasti 
-	jsme srovnatelní s daląími databázemi.<BR><BR></DD>
-
-   <DT><B>Podpora</B></DT>
-	<DD>Na naąí mailové konferenci můľete kontaktovat velkou skupinu 
-	vývojářů a uľivatelů.problémů. Nemůľeme garantovat opravu, 
-	nicméně komerční databáze také ne vľdy nabídnou opravu. Podle 
-	ohlasů je naąe podpora hodnocena lépe neľ u jiných <SMALL>DBMS</SMALL> a to 
-	díky přímému kontaktu s vývojáři, velkou komunitou uľivatelů, 
-	kvalitními manuály a přístupným zdrojovým kódem. Pro uľivatele, 
-	kteří vyľadují podporu ke konkrétním případům, existuje placená 
-	podpora (<A href="#1.6">FAQ sekce 1.6</A>).<BR><BR></DD>
-
-   <DT><B>Cena</B></DT>
-	<DD>PosgreSQL lze volně pouľívat pro nekomerční i komerční pouľití. 
-	Můľete do svých produktů přidat náą kód bez omezení, respektive 
-	v souladu s podmínkami naąí licenční smlouvy (v duchu BSD licence).<BR>
-        <BR></DD>
-   </DL>
-
-   <H4><A name="1.15">1.15</A>) Jak lze finančně pomoci PostgreSQL?</H4>
-
-   <P>PosgreSQL má prvotřídní infrastrukturu od naąeho začátku v roce 1996.
-   Vděčíme za to Marku Fournierovi, který zaloľil a spravoval tuto
-   infrastrukturu několik let.</P>
-
-   <P>Kvalitní infrastruktura je velice důleľitá pro kaľdý open source
-   projekt. Předchází nedorozuměním, která velice zdrľují pokrok v
-   projektu.</P>
-
-   <P>Tato infrastruktura není laciná. K jejímu zajiątění je třeba stále
-   hradit určité měsíční a jednorázové částky. Pokud máte Vy nebo Vaąe
-   společnost peníze, které nám můľete darovat, obra»e se na <A href=
-   "http://store.pgsql.com/shopping/">http://store.pgsql.com/shopping/</A> a darujte je.</P>
-
-   <P>Ačkoliv webová stránka zmiňuje PostgreSQL, Inc. vklady jsou určeny pouze
-   k podpoře projektu PostgreSQL a nepodporují ľádnou existující
-   společnost. Pokud to vyľadujete, můľete poslat kontrolu na naąi
-   kontaktní adresu.</P>
-   <HR>
-
-   <P>Pokud máte příklad úspěąného nasazení PostgreSQL, přihlaątě se na náą
-   advocacy site na <A href="http://advocacy.postgresql.org">http://advocacy.postgresql.org</A>.</P>
-
-   <H2 align="center">User client dotazy</H2>
-
-   <H4><A name="2.1">2.1</A>) Kde naleznu <SMALL>ODBC</SMALL> ovladače pro PostgreSQL?</H4>
-
-   <P>Pro PostgreSQL existují dva <SMALL>ODBC</SMALL> ovladače - PsqlODBC a OpenLink ODBC.</P>
-
-   <P>PsqlODBC je ke staľení na <A href=
-   "http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">
-   http://gborg.postgresql.org/project/psqlodbc/projdisplay.php</A>.</P>
-
-   <P>OpenLink můľete získat na <A href="http://www.openlinksw.com">http://www.openlinksw.com</A>. 
-   Spolupracuje s jejich klientským programovým vybavením a je dostupný pro vąechny jimi
-   podporované platformy (Win, Mac, Unix, VMS).</P>
-
-   <P>Tento ovladač je určen pro ty, kteří vyľadují podporu komerční kvality,
-   nicméně freeware verze je dostupná a funkční. Dotazy zasílejte na <A href=
-   "mailto:postgres95@openlink.co.uk">postgres95@openlink.co.uk</A>.</P>
-
-   <H4><A name="2.2">2.2</A>) Jaké nástroje lze pouľít pro PostgreSQL a web?</H4>
-
-   <P>Pěkný úvod do databázových technologií zabezpečujících chod webových
-   stránek najdete na <A href="http://www.webreview.com">http://www.webreview.com</A>.</P>
-
-   <P>Pro tvorbu webu existuje excelentní rozhraní PHP, které naleznete na
-   <A href="http://www.php.net">http://www.php.net</A>.</P>
-
-   <P>Pro sloľitějąí případy se často pouľívá Perl a CGI.pm nebo mod_perl.</P>
-
-   <H4><A name="2.3">2.3</A>) Existuje grafické rozhraní pro PostgreSQL?</H4>
-
-   <P>Pro PostgreSQL existuje několik grafických rozhraní: PgAccess
-   (<A href="http://www.php.net">http://www.php.net</A>), PgAdmin III 
-   (<A href="http://www.php.net">http://www.php.net</A>), RHDB Admin
-   (<A href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/</A>) a Rekall (
-   <A href="http://www.thekompany.com/products/rekall/">http://www.thekompany.com/products/rekall/</A>). 
-   Dále jeątě PhpPgAdmin
-   (<A href="http://phppgadmin.sourceforge.net/">http://phppgadmin.sourceforge.net/</A>) coľ je rozhraní PostgreSQL 
-   zaloľené na web technologii.</P>
-
-   <P>Úplnějąí seznam najdete na <A href=
-   "http://techdocs.postgresql.org/guides/GUITools">http://techdocs.postgresql.org/guides/GUITools</A>.</P>
-
-   <H4><A name="2.4">2.4</A>) Které programovací jazyky mají podporu pro PostgreSQL?</H4>
-
-   <P>Větąina programovacích jazyků obsahuje rozhraní pro PostgreSQL.
-   Podívejte se do roząiřujících modulů Vaąeho programovacího jazyka.</P>
-
-   <P>Distribuce PostgreSQL obsahuje tato rozhraní:</P>
-   <UL>
-      <LI>C (libpq)</LI>
-      <LI>Embbedded C (ecpg)</LI>
-      <LI>Java (jdbc)</LI>
-      <LI>Python (PyGreSQL)</LI>
-      <LI>TCL (libpgtcl)</LI>
-   </UL>
-   <P>Daląí rozhraní jsou dostupná na <A href="http://gborg.postgresql.org">http://gborg.postgresql.org</A> 
-   v sekci <I>Drivers/Interfaces</I>.</P>
-  <HR>
-
-  <H2 align="center">Administrativní dotazy</H2>
-
-   <H4><A name="3.1">3.1</A>) Jak nainstalovat PostgreSQL jinam neľ do /usr/local/pgsql?</H4>
-
-   <P>Pouľijte volbu <I>--prefix</I> při spuątění configure.</P>
-
-   <H4><A name="3.2">3.2</A>) Při startu postmaster, dostanu chybové hláąení Bad System Call 
-    nebo core dump. Proč?</H4>
-
-   <P>Důvody mohou být různé, ale nejprve zkontrolujte, zda Váą systém
-   podporuje System V extensions. PostgreSQL vyľaduje v jádře podporu
-   sdílené paměti a semaforů.</P>
-
-   <H4><A name="3.3">3.3</A>) Při startu postmastera dostanu hláąení o chybě IpcMemoryCreate. Proč?</H4>
-
-   <P>Buďto nemáte správně nakonfigurovanou sdílenou pamě» v jádře nebo musite
-   zvětąit její velikost. Potřebná velikost je závislá na architektuře a na
-   tom, kolik pamě»ových bufferů a backendů máte povoleno pro postmastera.
-   Pro větąinu systémů s předdefinovaným počtem backendů a pamě»ových
-   bufferů je minimum zhruba 1MB. V PostgreSQL Administrator's Guide
-   naleznete podrobnějąí informace o sdílené paměti a semaforech.</P>
-
-   <H4><A name="3.4">3.4</A>) Při startu postmastera dostanu hláąení o chybě IpcSemaphoreCreate. 
-    Proč?</H4>
-
-   <P>Pokud dostane chybovou zprávu IpcSemaphoreCreate: semget failed (No
-   space left on device), pak vaąe jádro nemá dost volných semaforů.
-   PostgreSQL vyľaduje jeden semafor pro kaľdý backend v pozadí. Dočasným
-   řeąením je start <I>postmaster</I> s limitem backendů. Pouľijte přepínač <I>-N</I> s
-   hodnotou menąí neľ 32. Úplným řeąením je zvýąení hodnot <SMALL>SEMMNS</SMALL> 
-   a <SMALL>SEMMNI</SMALL> jadra.</P>
-
-   <P>Nefunkční semafory mohou způsobit pád během intenzivních databázových
-   operací.</P>
-
-   <P>Pokud se tato chyba vyskytuje jeątě někde jinde, moľná nemáte vůbec
-   nakonfigurovány semafory ve vaąem jádře. V PostgreSQL Administrator's
-   Guide najdete podrobnějąí popis poľadavků na sdílenou pamět a semafory.</P>
-
-   <H4><A name="3.5">3.5</A>) Jak povolit nebo zakázat přístup z jiných stanic?</H4>
-
-   <P>Při výchozím nastavení PostgreSQL odepře přístup z jiných stanic neľ
-   lokální s pouľitím UDP. Přístup z jiných strojů není moľný dokud
-   jej nepovolíte nastavením tcpip_socket v postgresql.conf <B>a</B> určením
-   způsobu autentifikace v <I>$PGDATA/pg_hba.conf</I>.</P> 
-
-   <H4><A name="3.6">3.6</A>) Jak ladit databázový stroj na lepąí výkon?</H4>
-
-   <P>Určitě pomohou indexy. Příkaz <SMALL>EXPLAIN ANALYZE</SMALL> Vám umoľní sledovat
-   jak PostgreSQL interpretuje Váą dotaz a které indexy pouľívá.</P>
-
-   <P>Při větąí dávce INSERTů uvaľujte o náhradě příkazem <SMALL>COPY</SMALL>. Ten je mnohem
-   rychlejąí neľli samotný <SMALL>INSERT</SMALL>. Kaľdý příkaz mimo blok <SMALL>BEGIN WORK/COMMIT</SMALL>
-   se provádí ve vlastní transakci. Zvaľte, zda-li by se nedalo několik
-   příkazů spojit do jedné transakce. Tím se sníľí reľie na transakce. Před
-   provedením rozsáhlých změn zruąte indexy, které po dokončení změn opět
-   vytvořte.</P>
-
-   <P>Máte několik daląích moľností, jak zlepąit výkon. Můľete zakázat <I>fsyn()</I>
-   při startu postmastera přepínači <I>-o -F</I>. Tyto přepínače zabrání <I>fsync()</I>,
-   tj. zápisu na disk po kaľdé transakci.</P>
-
-   <P>Můľete zvýąit velikost pamě»ových bufferů pouľitých backendy tj.
-   parametr <I>-B</I> postmasteru. Pokud ale tato hodnota bude přílią velká, tak
-   moľná nespustíte postmastera jelikoľ dosáhnete limitu sdílené paměti.
-   Kaľdý buffer má 8K a implicitně je 64 bufferů.</P>
-
-   <P>Dále můľete pouľít přepínač <I>-S</I> k zvýąení limitu paměti pro backendy na
-   dočasné třídění. Hodnota je míněna v kilobytech a výchozí nastavení je
-   512, tj. 512K.</P>
-
-   <P>Můľete pouľít příkaz <SMALL>CLUSTER</SMALL>, který uspořádá fyzicky data v tabulkách
-   podle indexu. Více na manuálových stránkách příkazu <SMALL>CLUSTER</SMALL>.</P>
-
-   <H4><A name="3.7">3.7</A>) Jaké jsou moľnosti ladění?</H4>
-
-   <P>Máte několik moľností jak se dostat k uľitečným stavovým informacím.</P>
-
-   <P>Zaprvé, při překladu pouľijte přepínač <I>--enable-cassert</I>, tím se zapne
-   monitorování a následné zastavení aplikace, kdyľ se proces v backendu
-   dostane do neočekávaného stavu.</P>
-
-   <P>Jak postmaster tak postgres má několik přepínačů umoľňujících ladění.
-   Postmaster nastartujte tak, abyste si byli jisti, ľe je standartní
-   výstup a standartní chybový výstup přesměrován do souboru logu,
-   například:</P>
-<PRE>
-    cd /usr/local/pgsql
-    ./bin/postmaster > server.log 2>&amp;1 &amp;
-</PRE>
-   <P>Tím se vytvoří log v adresáři PostgreSQL, Tento soubor obsahuje uľitečné
-   informace o problémech a chybách vyskytlých se na serveru. Postmaster má
-   přepínač <I>-d</I> určující, jak podrobné mají být reportované informace, tj.
-   debug level. Pozor, při velké hodnotě debug levelu rychle roste velikost
-   souboru logu.</P>
-
-   <P>Pokud neběľí postmaster, můľete spustit backend PostgreSQL z příkazové
-   řádky a napsat svůj <SMALL>SQL</SMALL> dotaz přímo v backendu (doporučeno <B>pouze</B> pro
-   ladění). Dotaz je v tomto případě ukončen novou řádkou, nikoliv
-   středníkem. Pokud máte aplikaci přeloľenou s ladícími symboly, můľete
-   pouľít debbuger k monitorování procesu. Pokud není backend spuątěn
-   postmasterem, pak neběľí ve svém obvyklém prostředí a tudíľ některé
-   problémy dané interakcí mezi backendy nemohou být nasimulovány.</P>
-
-   <P>Pokud běľí <I>postmaster</I>, spus»e <I>psql</I> v jednom okně a pak si zjistěte <SMALL>PID</SMALL>
-   procesu postgres pouľitého psql. V debuggeru sepřipojte k postgresql
-   <SMALL>PID</SMALL>. Pak nastavte breakpointy v debuggeru a zadejte dotaz v psql. Pokud
-   ladíte startup postgresu, pak nastavte PGOPTIONS="-W n" a spus»e <I>psql</I>.
-   Tento přepínač způsobí pauzu n sekund, takľe budete mít čas se připojit
-   k procesu, a nastavit breakpointy a pokračovat v startup posloupnosti.</P>
-
-   <P>Pro ladění a měření výkonu mohou být uľitečné přepínače <I>-s, -A</I> a <I>-t</I>
-   programu postgres (backend).</P>
-
-   <P>Můľete provést překlad s profilací, tak abyste viděli kolik času
-   zabírají jednotlivé funkce. Soubory s profily backendů jsou uloľeny v
-   adresáři <I>pgsql/data/base/dbname</I>. Profil klienta pak v jeho aktuálním
-   adresáři. Korektní profilace v prostředí Linux poľaduje konfiguraci
-   systému s parametrem <I>-DLINUX_PROFILE</I>.</P>
-
-   <H4><A name="3.8">3.8</A>) Proč dostanu "Sorry, too many clients", kdyľ se zkouąím připojit?</H4>
-
-   <P>Zvyąte limit postmastera na maximální počet současně spuątěných
-   backendů.</P>
-
-   <P>Výchozí hodnota je 32 backendů. Tuto hodnotu zvýąíte zastavením a
-   opětovným spuątěním postmastera s parametrem <I>-N</I> nebo úpravou
-   <I>postgresql.conf</I>.</P>
-
-   <P>Při zvýąení hodnoty <I>-N</I> nad 32 musíte zvýąit hodnotu <I>-B</I> nad výchozí 64,
-   <I>-B</I> musí být minimálně dvakrát větąí, nebo jeątě lépe více. Pravděpodobně
-   zjistíte, ľe pro velký počet procesů backendu je nutné zvýąit některé
-   parametry jádra. Jsou to předevąím maximální velikost sdílené paměti
-   <SMALL>SHMMAX</SMALL>, maximální počet semafórů <SMALL>SEMMNS</SMALL> a <SMALL>SEMMNI</SMALL>, maximální počet
-   procesů <SMALL>NPROC</SMALL>, maximální počet procesů uľivatele <SMALL>MAXUPRC</SMALL> a maximální
-   počet otevřených souborů <SMALL>NFILE</SMALL> a <SMALL>NINODE</SMALL>. Důvod pro omezení maximálního
-   počtu backendů je fakt, ľe by mohlo dojít k vyčerpání zdrojů Vaąeho
-   systému.</P>
-
-   <H4><A name="3.9">3.9</A>) K čemu slouľí adresář pgsql_tmp?</H4>
-
-   <P>Tento adresář obsahuje dočasné soubory vytvořené exekutorem dotazů.
-   Například, kdyľ je nutné třídění k zajiątění <SMALL>ORDER BY</SMALL> a třídění má větąí
-   nároky na prostor neľ povoluje parametr <I>-S</I> backendu, pak je vytvořen
-   dočasný soubor k uloľení extra údajů.</P>
-
-   <P>Dočasné soubory jsou obvykle mazány automaticky, ale můľe se stát, ľe
-   během třídění server spadne. Zastavení a daląí start postmastera zajistí
-   odstranění souborů s těchto adresářů.</P>
-
-   <H4><A name="3.10">3.10</A>) Proč je poľadováno dump a obnovení (load) databáze během 
-    upgrade mezi velkými verzemi PostgreSQL?</H4>
-
-   <P>PostgreSQL se minimálně mění během malých verzí, takľe např. při upgrade
-   z 7.2 na 7.2.1 není nutné dump a load databáze. Ale výynamné verze často
-   mění interní formát systémových tabulek a datových souborů. Tyto změny
-   jsou natolik rozsáhlé, ľe nelze zajistit zpětnou kompatibilitu pro
-   datové soubory. Dump uloľí data v obecném formátu, takľe mohou být
-   načtena a pouľívána v novém interním formátu.</P>
-
-   <HR>
-
-   <H2 align="center">Provozní dotazy</H2>
-
-   <H4><A name="4.1">4.1</A>) Čím se liąí binární a normální kurzor?</H4>
-
-   <P>Popis najdete v manuálové stránce <SMALL>DECLARE</SMALL></P>
-
-   <H4><A name="4.2">4.2</A>) Jak získat pouze první řádek dotazu? Náhodný řádek?</H4>
-
-   <P>Podívejte se do man. stránky příkazu <SMALL>FETCH</SMALL>, nebo pouľijte <SMALL>SELECT</SMALL> ...
-   <SMALL>LIMIT</SMALL> ...</P>
-
-   <P>I kdyľ potřebujete získat pouze prvních několik řádků, je třeba
-   zpracovat vąechna data, např. pokud dotaz má <SMALL>ORDER BY</SMALL>. Pokud vąak
-   existuje index, který odpovídá <SMALL>ORDER BY</SMALL>, PostgreSQL můľe získat
-   pouze prvních n řádků a ukončit zpracování dotazu.</P>
-
-   <P>K získání náhodného řádku pouľijte:</P>
-<PRE>
-    SELECT col 
-    FROM tab
-    ORDER BY random() 
-    LIMIT 1;
-</PRE>
-   <H4><A name="4.3">4.3</A>) Jak získám seznam tabulek nebo jinak jak jej získá psql?</H4>
-
-   <P>Příkaz \dt v psql zobrazí seznam tabulek. Úplný seznam příkazů <I>psql</I>
-   dostanete příkazem \?. Také se můľete podívat do zdrojových kódů <I>psql</I> 
-   do souboru <I>pgsql/src/bin/psql/describe.c</I>. Ten obsahuje <SMALL>SQL</SMALL> příkazy, 
-   které se pouľívají v psql metapříkazech. Dále můľete spustit <I>psql</I>
-   s přepínačem <I>-E</I>, který způsobí zobrazení kaľdého dotazu, které 
-   zpracování metapříkazu vyvolá. PostgreSQL nabízí SQLi INFORMATION 
-   SCHEMA s tabulkami obsahující informace o databázi.</P>
-
-   <H4><A name="4.4">4.4</A>) Jak odstraním sloupec tabulky, jak změním jeho typ?</H4>
-
-   <P>Počínaje verzí 7.3 můľete pouľít příkaz <SMALL>ALTER TABLE DROP COLUMN</SMALL>. Ve
-   starąích verzích můľete pouľít následující postup:</P>
-<PRE>
-    BEGIN;
-    LOCK TABLE old_table;
-    SELECT ... -- mimo sloupec, který chceme odstranit
-    INTO TABLE new_table;
-    DROP TABLE old_table;
-    ALTER TABLE new_table RENAME TO old_table;
-    COMMIT;
-</PRE>
-   <P>Pro změnu typu sloupce je třeba provést:</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>
-   Poté proveďte <I>VACUUM FULL tab</I> - uvolníte tím diskový prostor zabraný
-   nyní jiľ neplatnými řádky.
-
-   <H4><A name="4.5">4.5</A>) Jaká je maximální velikost řádku, tabulky a databáze?</H4>
-
-   <P>PostgreSQL má tato omezení:</P>
-<PRE>
-    Maximální velikost databáze:           neomezena (existují 32TB db)
-    Maximálné velikost tabulky:            32 TB
-    Maximální velikost řádky:              1.6 TB
-    Maximální velikost poloľky             1 GB
-    Maximální počet řádků v tabulce:       neomezeno
-    Maximální počet sloupců v tabulce:     250-1600 podle typů
-    Maximální počet indexů na tabulce:     neomezeno
-</PRE>
-   <P>Ve skutečnosti nic není neomezeno, limitem bývá vľdy dostupná disková
-   pamě» nebo velikost operační paměti. Pokud máte některou z těchto hodnot
-   neobvykle velkou, můľe dojít ke sníľení výkonu.</P>
-
-   <P>Maximální velikost tabulky je 32 TB a nevyľaduje podporu velkých souborů
-   operačním systémem. Velké tabulky se ukládají do několika 1 GB souborů
-   takľe limity souborového systému nejsou podstatné.</P>
-
-   <P>Maximální velikost tabulky a maximální počet sloupců můľeme
-   zečtyřnásobit nastavením velikosti bloku na 32K.</P>
-
-   <H4><A name="4.6">4.6</A>) Kolik diskového prostoru je potřeba k uloľení dat z </H4>
-    normálního textového souboru?
-
-   <P>PostgreSQL vyľaduje aľ pětinásobek diskového prostoru k uloľení dat z
-   textového souboru.</P>
-
-   <P>Například, uvaľujme soubor se 100 tisíci řádky obsahující na kaľdé řádce
-   celé číslo a textový popis. Text je v průměru dvacet bytů dlouhý.
-   Textový soubor bude 2.8 MB dlouhý. Velikost databáze obsahující
-   odpovídající data bude zhruba 6.4 MB.</P>
-<PRE>
-    36 bytů: hlavička řádku (přibliľně)
-    24 bytů: jedna celočíselná poloľka a jedna textová
-   + 4 byty: ukazatel na stránku k ntici
+<html>
+<head>
+<title>PostgreSQL FAQ</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv="Content-language" content="cs">
+<meta name="description" lang="en" content="Czech translation of FAQ for PostgreSQL">
+<meta name="description" lang="cs" content="Český překlad FAQ PostgreSQL">
+</head>
+<body bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff">
+<h1>Frequently Asked Questions</h1>
+<p><i>Často kladené dotazy (FAQ) PostgreSQL</i>
+</p>
+<p>Poslední aktualizace: 29. října 2007 (aktualizováno pro PostgreSQL 8.3)
+</p>
+<p>Současný správce: Bruce Momjian (bruce@momjian.us)
+</p>
+<p>Přeložil: Pavel Stěhule (pavel.stehule@gmail.com)
+</p>
+<p>Nejaktuálnější verzi tohoto dokumentu naleznete na adrese
+<a href="http://www.postgresql.org/files/documentation/faqs/FAQ.html" title="http://www.postgresql.org/files/documentation/faqs/FAQ.html">http://www.postgresql.org/files/documentation/faqs/FAQ.html</a> 
+</p>
+<p>Odpovědi na otázky vázané na konkrétní platformy naleznete na
+adrese <a href="http://www.postgresql.org/docs/faq/" title="http://www.postgresql.org/docs/faq/">http://www.postgresql.org/docs/faq/</a>.
+</p>
+<hr>
+<h2 align="center">Obecné otázky</h2>
+<a href="#item1.1">1.1</a>) Co je to PostgreSQL? Jaká je správná výslovnost slova PostgreSQL?<br>
+<a href="#item1.2">1.2</a>) Kdo řídí vývoj PostgreSQL?<br>
+<a href="#item1.3">1.3</a>) Pod jakou licencĂ­ je PostgreSQL?<br>
+<a href="#item1.4">1.4</a>) Na kterých platformách lze provozovat PostgreSQL?<br>
+<a href="#item1.5">1.5</a>) Kde mohu zĂ­skat PostgreSQL?<br>
+<a href="#item1.6">1.6</a>) Jaká je poslední verze?<br>
+<a href="#item1.7">1.7</a>) Kde mohu zĂ­skat podporu?<br>
+<a href="#item1.8">1.8</a>) Jak a kam hlásit chyby?<br>
+<a href="#item1.9">1.9</a>) Kde najdu informace o známých chybách nebo nepodporovaných vlastnostech?<br>
+<a href="#item1.10">1.10</a>) Jaká je dostupná dokumentace?<br>
+<a href="#item1.11">1.11</a>) Jak se mohu nauÄŤit SQL?<br>
+<a href="#item1.12">1.12</a>) Jak se mohu připojit k týmu vývojářů?<br>
+<a href="#item1.13">1.13</a>) Jak je na tom PostgreSQL v porovnání s jinými databázemi?<br>
+<a href="#item1.14">1.14</a>) Je PostgreSQL připraven na aktuální zavádění letního času v některých zemích?<br>
+<h2 align="center">Dotazy na klientská rozhraní</h2>
+<a href="#item2.1">2.1</a>) Která rozhraní jsou použitelná pro PostgreSQL?<br>
+<a href="#item2.2">2.2</a>) Jaké nástroje lze použít pro PostgreSQL a web?<br>
+<a href="#item2.3">2.3</a>) Existuje grafické rozhraní pro PostgreSQL?<br>
+<h2 align="center">AdministrativnĂ­ dotazy</h2>
+<a href="#item3.1">3.1</a>) Jak nainstalovat PostgreSQL jinam neĹľ do /usr/local/pgsql?<br>
+<a href="#item3.2">3.2</a>) Jak nastavit pravidla pro přístup z jiných stanic?<br>
+<a href="#item3.3">3.3</a>) Jak vyladit databázi na vyšší výkon?<br>
+<a href="#item3.4">3.4</a>) Jaké mám ladící prostředky?<br>
+<a href="#item3.5">3.5</a>) Co znamená "Sorry, too many clients", když se zkouším připojit?<br>
+<a href="#item3.6">3.6</a>) Proč je nutný dump a obnovení (load) databáze při upgradu PostgreSQL?<br>
+<a href="#item3.7">3.7</a>) Jaký hardware bych měl používat?<br>
+<h2 align="center">ProvoznĂ­ dotazy</h2>
+<a href="#item4.1">4.1</a>) Jak získat pouze první řádek dotazu? Náhodný řádek?<br>
+<a href="#item4.2">4.2</a>) Jak získám seznam tabulek, indexů, databází, a definovaných uživatelů. Mohu vidět dotazy, které používá psql pro zobrazení těchto informací?<br>
+<a href="#item4.3">4.3</a>) Jak změnit datový typ sloupce?<br>
+<a href="#item4.4">4.4</a>) Jaká je maximální velikost řádku, tabulky a databáze?<br>
+<a href="#item4.5">4.5</a>) Kolik diskového prostoru je potřeba k uložení dat z normálního textového souboru?<br>
+<a href="#item4.6">4.6</a>) Můj dotaz je pomalý a nepoužívá vytvořené indexy. Proč?<br>
+<a href="#item4.7">4.7</a>) Jak zjistĂ­m, jak se vyhodnocuje mĹŻj dotaz?<br>
+<a href="#item4.8">4.8</a>) Jak použít case-(in)sensitive regulární výraz? Jak použít index pro case insensitive hledání?<br>
+<a href="#item4.9">4.9</a>) Jak v dotazu detekovat, že položka je NULL? Jak bezpečně spojit dva řetězce, pokud mohou obsahovat NULL? Lze třídit podle toho, jestli je položka NULL nebo ne?<br>
+<a href="#item4.10">4.10</a>) Jaké jsou rozdíly mezi různými znakovými typy?<br>
+<a href="#item4.11.1">4.11.1</a>) Jak vytvořit serial/auto-increment položku?<br>
+<a href="#item4.11.2">4.11.2</a>) Jak získat hodnotu SERIAL po vložení řádku?<br>
+<a href="#item4.11.3">4.11.3</a>) Nezpůsobí currval() a nextval() problémy ve více uživatelském prostředí?<br>
+<a href="#item4.11.4">4.11.4</a>) Proč není vygenerované číslo použito při přerušení transakce?Proč vznikají díry v číslování prostřednictvím sekvence nebo typu SERIAL?<br>
+<a href="#item4.12">4.12</a>) Co to je OID? Co je to CTID?<br>
+<a href="#item4.13">4.13</a>) Co znamená chybové hlášení "ERROR: Memory exhausted in AllocSetAlloc()"?<br>
+<a href="#item4.14">4.14</a>) Jak zjistím, kterou verzi PostgreSQL používám?<br>
+<a href="#item4.15">4.15</a>) Jak vytvořit sloupec, který bude implicitně obsahovat aktuální čas?<br>
+<a href="#item4.16">4.16</a>) Jak provést vnější spojení (outer join)?<br>
+<a href="#item4.17">4.17</a>) Jak provést dotaz napříč několika databázemi?<br>
+<a href="#item4.18">4.18</a>) Může funkce vrátit více řádků nebo sloupců?<br>
+<a href="#item4.19">4.19</a>) Co je příčinou chyby "relation with OID xxxxx does not exist"?<br>
+<a href="#item4.20">4.20</a>) Jaké jsou možnosti replikace databází?<br>
+<a href="#item4.21">4.21</a>) Proč v dotazu nejsou rozpoznány názvy mých tabulek nebo funkcí? Proč jsou velká písmena v názvech automaticky převedena na malá písmena?<br>
+<hr>
+<h2 align="center">Obecné otázky</h2>
+<h3><a name="item1.1">1.1</a>) Co je to PostgreSQL? Jaká je správná výslovnost slova PostgreSQL?</h3>
+<p>Výslovnost PostgreSQL je <i>Post-Gres-Q-L</i>
+, nebo zjednodušeně <i>Postgres</i>
+. V řadě jazyků je slovo PostgreSQL obtížně vyslovitelný, proto se v hovoru často používá zjednodušená forma názvu. Pro ty, kteří by si rádi poslechli výslovnost, je k dispozici audiozáznam v <a href="http://www.postgresql.org/files/postgresql.mp3" title="http://www.postgresql.org/files/postgresql.mp3">MP3 formátu</a>.
+</p>
+<p>PostgreSQL je relační databáze s některými objektovými rysy, která má možnosti tradičních
+komerčních databázových systémů s několika rozšířeními, které lze najít v DBMS
+systémech příští generace. Používání PostgreSQL není omezené a veškeré zdrojové kódy jsou
+volně dostupné.
+</p>
+<p>Za vývojem PostgreSQL je mezinárodní skupina nezávislých vývojářů navzájem komunikujících
+prostřednictvím internetu. Tento projekt není řízen žádnou obchodní organizací. Pokud se chcete 
+přidat k projektu, přečtěte si vývojářské FAQ na adrese <a href="http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html" title="http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html">http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html</a> .
+</p>
+<h3><a name="item1.2">1.2</a>) Kdo řídí vývoj PostgreSQL?</h3>
+<p>Pokud budete hledat organizaci řídící vývoj PostgreSQL, budete zklamáni. Nic takového
+neexistuje. Existují pouze "core" a CVS skupiny uživatelů, ale ty existují více z administrátorských
+důvodů než z organizačních. Projekt je směrován komunitou vývojářů a uživatelů, ke které se 
+kdokoliv může připojit. Jediné co potřebuje, je přihlásit se do elektronické konference. Více ve 
+<a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html" title="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">vývojářském FAQ</a>.
+</p>
+<h3><a name="item1.3">1.3</a>) Pod jakou licencĂ­ je PostgreSQL?</h3>
+<p>PostgreSQL je předmětem následujících autorských práv:
+</p>
+<p>DĂ­lÄŤĂ­ Copyright (c) 1996-2005, PostgreSQL Global Development Group<br>
+DĂ­lÄŤĂ­ Copyright (c) 1994-6, Regents of the University of California
+</p>
+<p>Uděluje se oprávnění k užití, rozmnožování, provádění úprav a
+rozšiřování tohoto softwaru a dokumentace k němu, pro jakékoli účely,
+bez licenčního poplatku a bez písemné licenční smlouvy, za podmínky,
+že na všech jeho kopiích je uvedeno oznámení o výše uvedených právech,
+jakož i obsah tohoto a dvou následujících odstavců.
+</p>
+<p>THE UNIVERSITY OF CALIFORNIA ("KALIFORNSKÁ UNIVERZITA") NENÍ V ŽÁDNÉM
+PŘÍPADĚ ODPOVĚDNA ŽÁDNÉ TŘETÍ OSOBĚ ZA PŘÍMOU, NEPŘÍMOU, ZVLÁŠTNÍ,
+NAHODILOU NEBO VÝSLEDNOU ŠKODU, VČETNĚ UŠLÉHO ZISKU, ZPŮSOBENOU UŽITÍM
+TOHOTO SOFTWARU A DOKUMENTACE K NĚMU, A TO I V PŘÍPADĚ, ŽE THE
+UNIVERSITY OF CALIFORNIA BYLA INFORMOVÁNA O MOŽNOSTI VZNIKU TAKOVÉ
+Ĺ KODY.
+</p>
+<p>THE UNIVERSITY OF CALIFORNIA ZEJMÉNA NEPOSKYTUJE JAKÉKOLI ZÁRUKY, A TO
+NEJEN ZÁRUKY OBCHODOVATELNOSTI A VHODNOSTI TOHOTO VÝROBKU KE
+SPECIFICKÝM ÚČELŮM. NÍŽE UVEDENÝ SOFTWARE JE POSKYTNUT "JAK STOJÍ A
+LEŽÍ" A THE UNIVERSITY OF CALIFORNIA NENÍ POVINNA ZAJISTIT JEHO
+ÚDRŽBU, PODPORU, AKTUALIZACI, VYLEPŠENÍ NEBO MODIFIKACI.
+</p>
+<p>Výše uvedené je BSD licence, běžná licence otevřeného zdroje. Není zde
+žádné omezení ohledně užití kódu zdroje. Jsme s tím spokojeni a nemáme
+v úmyslu na této skutečnosti cokoli měnit.
+</p>
+<h3><a name="item1.4">1.4</a>) Na kterých platformách lze provozovat PostgreSQL?</h3>
+<p>Stručně řečeno, PostgreSQL běží na všech moderních unixových systémech. Seznam těch, u kterých proběhlo testování, naleznete v instalačních instrukcích.
+</p>
+<p>PostreSQL také běží nativně na všech Microsof Windows systémech odvozených z Microsoft Windows NT jako jsou Windows  2000SP4, WindowsXP a Windows2003. Instalační balíček naleznete na adrese <a href="http://pgfoundry.org/projects/pginstaller" title="http://pgfoundry.org/projects/pginstaller">http://pgfoundry.org/projects/pginstaller</a>. Na starších systémech s ještě MS-DOS jádrem lze spustit PostgreSQL s emulačním programem Cygwin.
+</p>
+<p>Dále existuje port pro Novell Netware 6 port na adrese <a href="http://forge.novell.com" title="http://forge.novell.com">http://forge.novell.com</a>, a pro OS/2 verze (eComStation) na adrese <a href="http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F" title="http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F">http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F</a> .
+</p>
+<h3><a name="item1.5">1.5</a>) Kde mohu zĂ­skat PostgreSQL?</h3>
+<p>Pomocí webového klienta z adresy <a href="http://www.postgresql.org/ftp/" title="http://www.postgresql.org/ftp/">http://www.postgresql.org/ftp/</a> nebo klienta ftp z adresy <a href="ftp://ftp.postgresql.org/pub/" title="ftp://ftp.postgresql.org/pub/">ftp://ftp.postgresql.org/pub/</a>.
+</p>
+<h3><a name="item1.6">1.6</a>) Jaká je poslední verze?</h3>
+<p>Nejnovější verzí PostgreSQL je verze 8.2.5
+</p>
+<p>V plánu je uvolňovat každoročně jednu velkou verzi a každých několik měsíců malé verze.
+</p>
+<h3><a name="item1.7">1.7</a>) Kde mohu zĂ­skat podporu?</h3>
+<p>Nejčastější forma podpory uživatelům PostgreSQL komunitou je prostřednictvím e-mailů. Na našem webovém serveru naleznete <a href="http://www.postgresql.org/community/lists/" title="http://www.postgresql.org/community/lists/">odkaz</a> na stránky,kde se můžete přihlásit do elektronické konference. Pro začátek jsou doporučené konference general nebo bugs.
+</p>
+<p>Další cestou je IRC kanál #postgresql na Freenode (irc.freenode.net). K připojení použijte Unixový příkaz irc -x '#postgresql' "$USER" irc.freenode.net nebo jakékoholiv jiného IRC klienta. V této síti existuje ještě španělská (#postgresql-es) a francouzská (#postgresqlfr) verze. Další PostgreSQL kanál naleznete na EFNet.
+</p>
+<p>Seznam spoleÄŤnostĂ­ poskytujĂ­cĂ­ komerÄŤnĂ­ podporu naleznete na adrese <a href="http://techdocs.postgresql.org/companies.php" title="http://techdocs.postgresql.org/companies.php">http://techdocs.postgresql.org/companies.php</a>.
+</p>
+<h3><a name="item1.8">1.8</a>) Jak a kam hlásit chyby?</h3>
+<p>Vyplňte formulář na adrese <a href="http://www.postgresql.org/support/submitbug" title="http://www.postgresql.org/support/submitbug">http://www.postgresql.org/support/submitbug</a>. Na našem ftp serveru <a href="ftp://ftp.postgresql.org/pub/" title="ftp://ftp.postgresql.org/pub/">ftp://ftp.postgresql.org/pub/</a> si ověřte, že používáte aktuální verzi PostreSQL.
+</p>
+<p>Chyby reportované prostřednictvím chybového formuláře nebo zasláním mailu do PostgreSQL konference obvykle generuje následující odezvu:
+</p>
+<ul><li> Nejedná se o chybu, a proč
+</li>
+<li> Jedná se o známou chybu, která je již v seznamu úkolů <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a>
+</li>
+<li> Tato chyba byla opravena v aktuální verzi
+</li>
+<li> Tato chyba byla již opravena ve verzi, která zatím nebyla oficiálně uvolněna
+</li>
+<li> Požadavek na další doplňující informace:
+<ul><li> Operační systém
+</li>
+<li> Verze PostgreSQL
+</li>
+<li> Test reprodukujĂ­cĂ­ chybu
+</li>
+<li> LadĂ­cĂ­ informace
+</li>
+<li> Backtrace výstup debuggeru
+</li>
+</ul>
+</li>
+<li> Jedná se o zatím nezjištěnou chybu, pak můžete čekat
+<ul><li> Záplatu odstraňující chybu, která bude vložena do další velké nebo malé verze
+</li>
+<li> Informaci, že se jedná o chybu, kterou nelze okamžitě řešit a je proto přidána do <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a>
+</li>
+</ul>
+</li>
+</ul>
+<h3><a name="item1.9">1.9</a>) Kde najdu informace o známých chybách nebo nepodporovaných vlastnostech?</h3>
+<p>PostgreSQL podporuje rozšířenou podmnožinu SQL:2003. V našem <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a> naleznete seznam známých chyb, chybějících vlastností, a plány do budoucna.
+</p>
+<p>Odezva na poĹľadavek na novou vlastnost PostgreSQL je obvykle:
+</p>
+<ul><li> PoĹľadavek je jiĹľ v <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a>
+</li>
+<li> Požadovaná funkce není chtěná protože
+<ul><li> Duplikuje již existující funkci, která respektuje SQL standard
+</li>
+<li> Implementací funkce by se příliš zkomplikoval kód bez relevantního přínosu
+</li>
+<li> Funkce by mohla být nebezpečná nebo nespolehlivá
+</li>
+</ul>
+</li>
+<li> Požadavek je přidán do <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a>
+</li>
+</ul>
+<p>PostgreSQL nepožívá systém pro sledování chyb, protože jsme zjistili, že je efektivnější přímo reagovat na maily a udržovat aktuální <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a>. V praxi je snaha o co nejrychlejší řešení chyb, a chyby, které by se mohly projevit u mnoha uživatelů jsou opravovány velice rychle. Jediné místo, kde lze dohledat všechny změny, rozšíření a opravy v PostgreSQL je CVS log. Poznámky k verzi "Release notes" nezachycují všechny změny, k němž došlo.
+</p>
+<h3><a name="item1.10">1.10</a>) Jaká je dostupná dokumentace?</h3>
+<p>PostgreSQL obsahuje vynikající dokumentaci zahrnující manuál, manuálové stránky a testovací příklady. Podívejte se do adresáře /doc. Manuál je přístupný online na <a href="http://www.postgresql.org/docs" title="http://www.postgresql.org/docs">http://www.postgresql.org/docs</a>.
+</p>
+<p>K dispozici jsou zdarma dvě online knihy na adresách <a href="http://www.postgresql.org/docs/books/awbook.html" title="http://www.postgresql.org/docs/books/awbook.html">http://www.postgresql.org/docs/books/awbook.html</a> a <a href="http://www.commandprompt.com/ppbook/" title="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</a>. Další literaturu lze zakoupit. Nejpopulárnější je od Kerryho Douglase. Seznam dostupné literatury je na <a href="http://techdocs.postgresql.org/techdocs/bookreviews.php" title="http://techdocs.postgresql.org/techdocs/bookreviews.php">http://techdocs.postgresql.org/techdocs/bookreviews.php</a>. Ještě je kolekce technicky orientovaných článků tematicky spojených s PostgreSQL na adrese <a href="http://techdocs.postgresql.org/" title="http://techdocs.postgresql.org/">http://techdocs.postgresql.org/</a>.
+</p>
+<p>Řádkový klient psql má \d příkazy pro zobrazení informací o typech, operátorech, funkcích, agregačních funkcí, atd. Použijte \? pro zobrazení dostupných příkazů.
+</p>
+<p>Další dokumentaci najdete na našem webu.
+</p>
+<h3><a name="item1.11">1.11</a>) Jak se mohu nauÄŤit SQL?</h3>
+<p>Podívejte se do výše uvedené dokumentace. Další online knihou je "Teach Yourself SQL in 21 Days, Second Edition" na adrese <a href="http://members.tripod.com/er4ebus/sql/index.htm" title="http://members.tripod.com/er4ebus/sql/index.htm">http://members.tripod.com/er4ebus/sql/index.htm</a>. Mnoho našich uživatelů doporučuje knihu The Practical SQL Handbook, Bowman, Judith S., et al., Addison-Wesley. Další The Complete Reference SQL, Groff et al., McGraw-Hill.
+</p>
+<p>Další online tutoriály jsou dostupné na adresách:
+</p>
+<ul><li> <a href="http://www.intermedia.net/support/sql/sqltut.shtm" title="http://www.intermedia.net/support/sql/sqltut.shtm">http://www.intermedia.net/support/sql/sqltut.shtm</a>
+</li>
+<li> <a href="http://sqlcourse.com" title="http://sqlcourse.com">http://sqlcourse.com</a>
+</li>
+<li> <a href="http://www.w3schools.com/sql/default.asp" title="http://www.w3schools.com/sql/default.asp">http://www.w3schools.com/sql/default.asp</a>
+</li>
+<li> <a href="http://mysite.verizon.net/Graeme_Birchall/id1.html" title="http://mysite.verizon.net/Graeme_Birchall/id1.html">http://mysite.verizon.net/Graeme_Birchall/id1.html</a>
+</li>
+</ul>
+<h3><a name="item1.12">1.12</a>) Jak se mohu připojit k týmu vývojářů?</h3>
+<p>Prostudujte si <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html" title="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">Developer's FAQ</a>.
+</p>
+<h3><a name="item1.13">1.13</a>) Jak je na tom PostgreSQL v porovnání s jinými databázemi?</h3>
+<p>Software můžeme porovnávat z několika různých pohledů: vlastnosti, výkon, spolehlivost, podpora a cena.
+</p>
+<script></script>
+<h4> Vlastnosti </h4>
+<p>PostgreSQL nabízí většinu funkcí funkcionality velkých komerčních DBMS systémů jako jsou: transakce, vnořené dotazy, spouště, referenční integrita a sofistikovaný systém zamykání. Poskytujeme určité funkce, které ostatní systémy běžně nepodporují. Např. uživatelem definované typy, dědičnost, pravidla (rules), a MVCC architekturu.
+</p>
+<h4> Výkon </h4>
+<p>Výkon PostgreSQL je srovnatelný s ostatními komerčními nebo Open Source databázemi. V některých případech je rychlejší, jindy pomalejší. Náš výkon je obvykle +/-10% vůči ostatním databázím. 
+</p>
+<h4> Spolehlivost </h4>
+<p>Uvědomujeme si, že databáze musí být stoprocentně spolehlivá, jinak je nepoužitelná. Snažíme se, aby každá verze byla dobře otestována a obsahovala minimum chyb. Každá verze je minimálně několik měsíců v beta testovacím režimu. Do produkčního režimu se dostane, až když nedochází k dalším změnám nebo opravám. Věříme, že jsem více než srovnatelní s ostatními databázemi v této oblasti.
+</p>
+<h4> Podpora </h4>
+<p>Na našich internetových konferencích se setkává velká skupina vývojářů a uživatelů při řešení vyskytujících se problémů. 
+Naše internetové konference umožňují kontakt velké skupiny vývojářů a uživatelů. Nemůžeme garantovat opravu chyby, ale komerční DBMSs také vždy negarantují řešení problémů. Věříme ale, že díky přímému kontaktu na vývojáře, naši uživatelskou komunitu, manuálům, a dostupným zdrojovým kódům máme lepší podporu než ostatní DBMSs. Pro ty, kteří preferují komerční "per-incident" podporu, existuje společností, kteří ji nabízejí (FAQ sekce 1.7.)
+</p>
+<h4> Cena </h4>
+<p>PostgreSQL lze používat bezplatně (a to i pro komerční použití). Také můžete neomezeně používat náš kód ve svých produktech s výjimkami specifikovanými v naší licenci (přebíráme BSD licenci).
+</p>
+<h3><a name="item1.14">1.14</a>) Je PostgreSQL připraven na aktuální zavádění letního času v některých zemích?</h3>
+<p>Počínaje verzí 8.0.[4+] podporuje PostgreSQL letní čas také pro USA. Podpora letního času (daylight saving time) pro Kanadu a Západní Austrálii je obsažena ve verzích 8.0.[10+] a 8.1.[6+] a všech následujících verzích. Starší verze používaly systémovou databázi časových zón obsahující, kromě jiného, informaci o tom, zda se pro danou časovou zónu rozlišuje mezi letním a zimním časem.
+</p>
+<hr>
+<h2 align="center">Dotazy na klientská rozhraní</h2>
+<h3><a name="item2.1">2.1</a>) Která rozhraní jsou použitelná pro PostgreSQL?</h3>
+<p>PostgreSQL se distribuuje pouze s rozhraním pro jazyk C a embedded C. Všechna další rozhraní představují nezávislé projekty, které je třeba stáhnout z internetu samostatně. Osamostatnění těchto projektů umožňuje nezávislost vývojových týmů a možnost vydávat nové verze bez ohledu na vydání nové verze PostgreSQL.
+</p>
+<p>Některé programovací jazyky jako je např. PHP obsahují rozhraní pro PostgreSQL. Rozhraní pro jazyky jako je Perl, Tcl, Python a mnoho dalších jsou dostupné na adrese: <a href="http://gborg.postgresql.org" title="http://gborg.postgresql.org">http://gborg.postgresql.org</a> v sekci Drivers/Interfaces.
+</p>
+<h3><a name="item2.2">2.2</a>) Jaké nástroje lze použít pro PostgreSQL a web?</h3>
+<p>Dobrým úvodem do problematiky databází v prostředí webových stránek může být web <a href="http://www.webreview.com" title="http://www.webreview.com">http://www.webreview.com</a>.
+</p>
+<p>PHP (<a href="http://www.php.net" title="http://www.php.net">http://www.php.net</a>) je vynikajĂ­cĂ­m rozhranĂ­m pro tvorbu webĹŻ.
+</p>
+<p>Pro složitější úlohy se často používá Perl a jeho BDB:Pg rozhraní s podporou CGI - CGI.pm nebo mod_perl(u).
+</p>
+<h3><a name="item2.3">2.3</a>) Existuje grafické rozhraní pro PostgreSQL?</h3>
+<p>K dispozici je řada grafických nástrojů podporujících PostgreSQL a to od komerčních nebo open source vývojářů. Podrobný seznam naleznete na adrese 
+<a href="http://www.postgresql.org/docs/techdocs.54" title="http://www.postgresql.org/docs/techdocs.54">http://www.postgresql.org/docs/techdocs.54</a>.
+</p>
+<hr>
+<h2 align="center">AdministrativnĂ­ dotazy</h2>
+<h3><a name="item3.1">3.1</a>) Jak nainstalovat PostgreSQL jinam neĹľ do /usr/local/pgsql?</h3>
+<p>Při spouštění configure nastavte parametr --prefix
+</p>
+<h3><a name="item3.2">3.2</a>) Jak nastavit pravidla pro přístup z jiných stanic?</h3>
+<p>Ve výchozí konfiguraci, PostgreSQL umožňuje pouze připojení z lokálního uživatele prostřednictvím Unix domain sockets nebo TCP/IP spojení. Bez modifikace listen_addresses v souboru postgresql.conf, a povolení adresy v souboru $PGDATA/pg_hba.conf se nelze připojit k PostgreSQL z ostatních stanic. Změna výše zmíněných parametrů vyžaduje restart databázového serveru.
+</p>
+<h3><a name="item3.3">3.3</a>) Jak vyladit databázi na vyšší výkon?</h3>
+<p>Výkon systému můžete ovlivnit ve třech oblastech:
+</p>
+<h4> Změny dotazu </h4>
+<ul><li> Použitím indexů včetně částečných a funkcionálních
+</li>
+<li> Použitím COPY místo opakovaných INSERTů
+</li>
+<li> Sloučením mnoha SQL příkazů do jedné transakce snížením režie na commit
+</li>
+<li> Používáním CLUSTERU, pokud načítáte větší počet řádek podle indexu
+</li>
+<li> PouĹľitĂ­m klauzule LIMIT v poddotazech
+</li>
+<li> Použitím předpřipravených dotazů
+</li>
+<li> Používáním ANALYZE. Tento příkaz aktualizuje statistiky, které se používají při optimalizaci dotazu
+</li>
+<li> Pravidelné použití VACUUM nebo používání pg_autovacuum
+</li>
+<li> Odstraněním indexů před rozsáhlými změnami v datech
+</li>
+</ul>
+<h4> Konfigurace serveru </h4>
+<p>Určité parametry v souboru postgresql.conf mají vliv na výkon serveru. Detaily naleznete v příručce Administrátora v Server Run-time Environment/Run-time Configuration. Další komentáře naleznete v <a href="http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html" title="http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html">http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html</a> a <a href="http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html" title="http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html">http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html</a>.
+</p>
+<h4> Výběr hardware </h4>
+<p>Vliv hardware na výkon serveru je popsán v dokumentech <a href="http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html" title="http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html">http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html</a> a <a href="http://www.powerpostgresql.com/PerfList/" title="http://www.powerpostgresql.com/PerfList/">http://www.powerpostgresql.com/PerfList/</a>.
+</p>
+<h3><a name="item3.4">3.4</a>) Jaké mám ladící prostředky?</h3>
+<p>Nastavením log_* proměnných v konfiguraci serveru si vynutíte logování dotazů a procesních statistik, které Vám mohou  pomoci při ladění a optimalizaci výkonu.
+</p>
+<h3><a name="item3.5">3.5</a>) Co znamená "Sorry, too many clients", když se zkouším připojit?</h3>
+<p>Překročil jste výchozí limit, který je 100 současně připojených uživatelů. V konfiguraci serveru v postgresql.conf tuto hodnotu můžete zvětšit změnou hodnoty max_connection. Nezapomeňte restartovat server.
+</p>
+<h3><a name="item3.6">3.6</a>) Proč je nutný dump a obnovení (load) databáze při upgradu PostgreSQL?</h3>
+<p>Způsob číslování je popsán v dokumentaci na <a href="http://www.postgresql.org/support/versioning" title="http://www.postgresql.org/support/versioning">http://www.postgresql.org/support/versioning</a>. Instrukce k provedení migrace na vyšší verzi jsou taktéž v dokumentaci na adrese <a href="http://www.postgresql.org/docs/current/static/install-upgrading.html" title="http://www.postgresql.org/docs/current/static/install-upgrading.html">http://www.postgresql.org/docs/current/static/install-upgrading.html</a>.
+</p>
+<h3><a name="item3.7">3.7</a>) Jaký hardware bych měl používat?</h3>
+<p>Jelikož PC jsou většinou kompatibilní, lidé mají tendence věřit, že všechna PC jsou stejně kvalitní. Což není pravda. Paměti ECC, SCSI a kvalitní základní desky jsou mnohem spolehlivější a výkonnější než lacinější hardware. PostgreSQL poběží na většině hardwaru, nicméně pokud je pro Vás spolehlivost a výkon systému důležitá,  je dobré věnovat čas nalezení  vhodné hardwarové konfigurace. Na našich elektronických konferencích můžete diskutovat o vhodných konfiguracích a značkách.
+</p>
+<hr>
+<h2 align="center">ProvoznĂ­ dotazy</h2>
+<h3><a name="item4.1">4.1</a>) Jak získat pouze první řádek dotazu? Náhodný řádek?</h3>
+<p>Pokud potřebujete pouze několik řádků a pokud víte kolik, použijte 
+SELECT LIMIT. Pokud bude možné použít index shodující se s ORDER BY,
+je možné, že se nebude provádět celý dotaz. Pokud neznáte počet záznamů,
+použijte kurzor a příkaz FETCH.
+</p>
+<p>Pro výběr náhodného řádku použijte příkaz ve tvaru:
+</p>
+<pre>
+SELECT col
+FROM tab
+ORDER BY random()
+LIMIT 1;
+</pre>
+<h3><a name="item4.2">4.2</a>) Jak získám seznam tabulek, indexů, databází, a definovaných uživatelů. Mohu vidět dotazy, které používá psql pro zobrazení těchto informací?</h3>
+<p>V psql příkazem \dt získáte seznam tabulek. Úplný seznam příkazů psql získáte příkazem \?. Alternativně si můžete prostudovat zdrojový kód psql - soubor pgsql/src/bin/psql/describe.c, který obsahuje SQL příkazy, které jsou generovány pro získání výstupu psql "backslash" příkazů. Také můžete nastartovat psql s parametrem -E, který způsobí zobrazení všech SQL příkazů, které se odesílají na server. PostgreSQL také podporuje SQL standard INFORMAČNÍ SCHÉMATA (standardní systémové tabulky). Klasickým dotazem do systémových tabulek získáte požadované informace o struktuře databáze.
+</p>
+<p>Systémové tabulky PostgreSQL (mimo rámec SQL standardů) používají prefix pg_. Pro zjištění struktury databáze je můžete použít také, i když preferovány jsou dotazy do informačního schématu.
+</p>
+<p>Seznam všech databází získáte příkazem psql -l
+</p>
+<p>Další inspiraci najdete v souboru pgsql/src/tutorial/syscat.source. Obsahuje ilustrační SELECTy potřebné k získání informací z systémových tabulek databáze.
+</p>
+<h3><a name="item4.3">4.3</a>) Jak změnit datový typ sloupce?</h3>
+<p>Ve verzích 8.0 a pozdějších jednoduše:
+</p>
+<pre>
+ALTER TABLE ALTER COLUMN TYPE
+</pre><p>V starších verzích:
+</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>Po změně spusťte příkaz VACUUM FULL, aby došlo k uvolnění diskového prostoru použitého v tu chvíli již neplatnými záznamy.
+</p>
+<h3><a name="item4.4">4.4</a>) Jaká je maximální velikost řádku, tabulky a databáze?</h3>
+<p>PostgreSQL má tato omezení:
+</p>
+<table border="0">
+<tr><td>    Maximální velikost databáze: </td><td>           neomezena (existují 32TB db)
+</td></tr>
+<tr><td>    Maximální velikost tabulky: </td><td>           32 TB
+</td></tr>
+<tr><td>    Maximální velikost řádky: </td><td>             480GB
+</td></tr>
+<tr><td>    Maximální velikost položky </td><td>            1 GB
+</td></tr>
+<tr><td>    Maximální počet řádků v tabulce:  </td><td>     neomezeno
+</td></tr>
+<tr><td>    Maximální počet sloupců v tabulce:  </td><td>   250-1600 podle typů
+</td></tr>
+<tr><td>    Maximální počet indexů na tabulce:  </td><td>   neomezeno
+</td></tr>
+</table>
+<p>Ve skutečnosti nic není neomezeno, limitem bývá vždy dostupná disková
+paměť nebo velikost operační paměti. Pokud máte některou z těchto
+hodnot neobvykle velkou, může dojít ke snížení výkonu.
+</p>
+<p>Maximální velikost tabulky je 32 TB a nevyžaduje podporu velkých
+souborů operačním systémem. Velké tabulky se ukládají do několika 1 GB
+souborů takže limity souborového systému nejsou podstatné.
+</p>
+<p>Maximální velikost tabulky a maximální počet sloupců můžeme
+zečtyřnásobit nastavením velikosti bloku na 32K.
+</p>
+<p>Indexy jsou povolené pouze na sloupcích jejichž délka je menší než 2000 znaků. Pokud tuto délku překročíme a index potřebujeme pro zajištění jednoznačnosti, je vhodnější použít funkcionální index nad MD5 funkcí nebo fulltextový index.
+</p>
+<h3><a name="item4.5">4.5</a>) Kolik diskového prostoru je potřeba k uložení dat z normálního textového souboru?</h3>
+<p>PostgreSQL vyžaduje až pětinásobek diskového prostoru k uložení dat z
+textového souboru.
+</p>
+<p>Například, uvažujme soubor se 100 tisíci řádky obsahující na každé
+řádce celé číslo a textový popis. Text je v průměrně dvacet bytů
+dlouhý. Textový soubor bude 2.8 MB dlouhý. Velikost databáze
+obsahujĂ­cĂ­ odpovĂ­dajĂ­cĂ­ data bude zhruba 5.2 MB.
+</p>
+<pre>
+    24 bytů: hlavička řádku (přibližně)
+    24 bytů: jedna celočíselná položka a jedna textová
+   + 4 byty: ukazatel na stránku k entici
    ------------------------------------------------------
-    64 bytů na řádek
-
-   Velikost datové stránky PostgreSQL je 8KB
-
-    8192 bytů na stránce
-    ---------------------- = 128 řádek na stránku
-      64 bytů za řádek
-
-    100000 řádek
-    -------------------- = 782 stránek (zaokrouhleno nahoru)
-       128 řádek na stránce
-
-    782 * 8192 = 6, 406, 144 bytů (6.4 MB)
-</PRE>
-   <P>Indexy nemají tak velkou reľii, ale mohou být také velké, protoľe
-   obsahují indexovaná data.</P>
-
-   <P>Hodnoty <SMALL>NULL</SMALL> jsou uloľeny v bitmapách, takľe spotřebují jen velmi málo
-   diskového prostoru.</P>
-
-   <H4><A name="4.7">4.7</A>) Jak získám seznam vytvořených tabulek, indexů, databází?</H4>
-
-   <P><I>psql</I> má sadu metapříkazů k zobrazení těchto informací. Jejich seznam
-   získáte příkazem \?. Dále se můľete podívat na obsah systémových tabulek
-   začínajících <I>pg_</I>. Spuątění <I>psql</I> s parametrem <I>-l</I> provede výpis názvů
-   vąech databází.</P>
-
-   <P>Soubor <I>pgsql/src/tutorial/syscat.source</I> obsahuje <SMALL>SELECT</SMALL>y přistupující k
-   systémovým tabulkámm.</P>
-
-   <H4><A name="4.8">4.8</A>) Můj dotaz je pomalý a nepouľívá vytvořené indexy. Proč?</H4>
-
-   <P>Kaľdý dotaz nemusí nutně pouľít existující indexy. Index se pouľije
-   tehdy, kdyľ je tabulka větąí neľ určitá minimální velikost, a dotaz
-   vybírá pouze procentuálně malou část řádků tabulky. To proto, ľe náhodný
-   přístup k disku daný čtením indexu můľe být pomalejąí neľ lineární čtení
-   tabulky nebo sekvenční čtení.</P>
-
-   <P>PostgreSQL rozhoduje o pouľití indexů na základě statistiky přístupů k
-   tabulce. Tyto statistiky se shromaľďují příkazy <SMALL>VACUUM ANALYZE</SMALL> nebo
-   <SMALL>ANALYZE</SMALL>. Díky statistikám má optimizer informaci o počtu řádek v tabulce
-   a můľe lépe rozhodnout o pouľití indexů. Statistiky se uplatní při
-   určení optimálního pořadí a metody spojení tabulek. Statistiky by se
-   měli aktualizovat opakovaně, tak jak se mění obsah tabulek.</P>
-
-   <P>Indexy nejsou obyčejně pouľity pro setřídění nebo spojení tabulek.
-   Sekvenční zpracování následované explicitním tříděním je obyčejně
-   rychlejąí neľ indexní čtení na velké tabulce.</P>
-
-   <P>Jinak je tomu v případě pouľití <SMALL>LIMIT</SMALL> a <SMALL>ORDER BY</SMALL>, při kterém se větąinou
-   index pouľije, výsledkem je pouze malá část tabulky. Funkce MAX() a
-   MIN() nepouľívají indexy, ale je moľné tutéľ hodnotu získat:</P>
-<PRE>
-    SELECT col 
-    FROM tab
-    ORDER BY col [ DESC ] 
-    LIMIT 1;
-</PRE>
-   <P>Pokud si myslíte, ľe optimizer mylně zvolil sekvenční prohledávání
-   tabulky, pouľijte příkaz <CODE>SET enable_seqscan TO 'off'</CODE> a zkuste zda je
-   indexní prohledávání rychlejąí.</P>
-
-   <P>Při vyhledávání na základě vzoru jako je např. operátor <SMALL>LIKE</SMALL> nebo <I>~</I> se
-   indexy pouľíjí pouze za určitých skutečností:</P>
-   <UL>
-    <LI>začátek hledaného vzoru musí být ukotven k začátku, tj.
-      <UL>
-        <LI>vzor <SMALL>LIKE</SMALL> nesmí začínat <I>%</I></LI>
-        <LI><I>~</I> regulární výraz musí začínat <I>^</I></LI>
-      </UL></LI>
-    <LI>vzor nesmí začínat intervalem, např. [a-e]</LI>
-    <LI>vyhledávaní, které není Case sensitiv jako je <SMALL>ILIKE</SMALL> nebo <I>~*</I> 
-      nepouľívá indexy. Můľete ale pouľít funkcionální indexy, které jsou 
-      posány v sekci <A href="#4.12">4.12</A></LI>
-    <LI>při inicializaci databáze (<I>initdb</I>) musí být pouľito C locale
-      (pozn. překladatele - tudíľ v naąich podmínkách nepouľitelné,
-      nepracovalo by české třídění).</LI>
-   </UL>
-   <H4><A name="4.9">4.9</A>) Jak zjistím, jak optimizer dotazu vyhodnocuje můj dotaz?</H4>
-
-   Podívejte se do manuálové stránky příkazu <SMALL>EXPLAIN</SMALL>.
-
-   <H4><A name="4.10">4.10</A>) Co to je R-tree index?</H4>
-
-   <P>R-tree index se pouľívá pro indexování prostorových dat. Hash index
-   nemůľe obslouľit prohledávání oblastí. B-tree index můľe řídit vyhledání
-   oblastí v jedné dimenzi. R-tree index můľe podporovat hledání v
-   multidimenzionálních datech. Pouľijeme-li například R-tree index na
-   atributy typu <I>point</I>, pak systém můľe efektivně odpovědět na dotaz -
-   vyber vąechny body uvnitř obdélníků.</P>
-   
-   <P>Původní návrh R-tree je Guttman, A. "R-trees: A Dynamic Index Structure
-   for Spatial Searching." Proceedings of the 1984 ACM SIGMOD Int'l Conf on
-   Mgmt of Data, 45-57</P>
-
-   <P>Tyto materiály naleznete v Stonebraker's "Readings in Database Systems".</P>
-
-   <P>Vestavěné R-tree můľe slouľit k indexaci polygonů a oblastí. Teoreticky
-   můľeme R-tree pouľít i pro více dimenzí (jiné neľ 3D). Ve skutečnosti
-   ale takové roząíření R-tree vyľaduje trochu práce a ve součastnosti
-   chybí dokumentace jak na to.</P>
-
-   <H4><A name="4.11">4.11</A>) Co je Genetic Query Optimizer?</H4>
-
-   <P><SMALL>GEQO</SMALL> modul urychluje optimalizaci dotazů při spojování mnoľství tabulek
-   metodou Genetických algoritmů (GA). To umoľňuje získat velkého mnoľství
-   variant spojení při neúplném prohledáváním.</P>
-
-   <H4><A name="4.12">4.12</A>) Jak provést vyhledávání regulárního výrazu case sensitiv,
-    insensitiv? Jak pouľít index pro case insensitive vyhledávání?</H4>
-
-   <P>Operátor <I>~</I> slouľí k porování s regulárním výrazem, jeho modifikace <I>*~</I>
-   představuje case insensitive vyhledávání. Jedná se o obdobu <SMALL>LIKE</SMALL> a
-   <SMALL>ILIKE</SMALL>.</P>
-
-   <P>Pro vyhledávání bez ohledu na velká malá písmena pouľijeme:</P>
-<PRE>
-    SELECT * 
-    FROM tab
-    WHERE lower(col) = 'abc';
-</PRE>
-   V tomto případě se nepouľije standardní index. Nicméně, pouľije se
-   funkcionální index, pokud jej vytvoříte:
-<PRE>
-    CREATE INDEX tabindex ON tab (lower(col));
-</PRE>
-   <H4><A name="4.13">4.13</A>) Jak v dotazu detekovat, ľe poloľka je NULL?</H4>
-
-   <P>Určíte pomocí <SMALL>IS NULL</SMALL> nebo <SMALL>IS NOT NULL</SMALL></P>
-
- <H4><A name="4.14">4.14</A>) Jaké jsou rozdíly mezi různými znakovými typy?</H4>
-<PRE>
-Typ         Interní název       Poznámka
---------------------------------------------------------------------------
-VARCHAR(n)  varchar             omezeno maximální délkou, bez doplnění mezerami
-CHAR(n)     bpchar              řetězec je doplněn mezerami do dané délky
-TEXT        text                bez horního limitu na délku
-BYTEA       bytea               pole bytů (bezpečně lze uloľit i znak NULL)
-"char"      char                jeden znak
-</PRE>
-   <P>S interními názvy se setkáte v systémovém katalogu a v některých
-   chybových hláąeních.</P>
-
-   <P>První čtyři uvedené typy jsou tzv. varlena typy (tj. první čtyři byty na
-   disku nesou údaj o délce, následují samotná data). Proto skutečný
-   pouľitý prostor je vľdy o něco málo větąí neľ deklarovaná délka. Naopak,
-   tyto datové typy jsou komprimovánty <SMALL>TOAST</SMALL>em, takľe prostor na disku můľe
-   být niľąí neľ je očekáváno.</P>
-
-   <P><SMALL>VARCHAR(n)</SMALL> je vhodný pro ukládání textů promměné délky s pevně
-   stanovenou maximální délkou. <SMALL>TEXT</SMALL> je pro řetězce bez omezení délky s
-   maximem jeden gigabajt.</P>
-
-   <P><SMALL>CHAR(n)</SMALL> slouľí k ukládání řetězců stejné délky. <SMALL>CHAR(n)</SMALL> doplní prázdné
-   znaky do specifikované délky, zatímco VARCHAR(n) uloľí pouze předané
-   znaky. <SMALL>BYTEA</SMALL> je určeno pro ukládání binárních dat, včetně <SMALL>NULL</SMALL> byte.
-   Vąechny zde popsané typy mají podobné výkonnostní charakteristiky.</P>
-
-   <H4><A name="4.15.1">4.15.1</A>) Jak vytvořit serial/auto-increment pole?</H4>
-
-   <P>PostgreSQL podporuje typ <SMALL>SERIAL</SMALL>. Při jeho pouľití se automaticky vytvoří
-   SEQUENCE. Například:</P>
-<PRE>
-    CREATE TABLE person (
-        id   SERIAL,
-        name TEXT
-    );
-</PRE>
-   je automaticky převedeno do
-<PRE>
-    CREATE SEQUENCE person_id_seq;
-    CREATE TABLE person (
-        id   INT4 NOT NULL DEFAULT nextval('person_id_seq'),
-        name TEXT
-    );
-    CREATE UNIQUE INDEX person_id_key ON person(id);
-</PRE>
-   Viz dokumentace <I>create_sequence</I> v manuálových stránkách. Dále můľete
-   pouľít unikátní hodnotu <I>OID</I> kaľdého řádku. Potom ale musíte spouątět
-   <I>pg_dump</I> s přepínačem <I>-o</I>, tak aby zůstaly zachovány hodnoty <SMALL>OID</SMALL> (u
-   příkazu copy <SMALL>COPY WITH OIDS</SMALL>).
-
-   <H4><A name="4.15.2">4.15.2</A>) Jak získat hodnotu <SMALL>SERIAL</SMALL> po vloľení řádku?</H4>
-
-   <P>Jednou z moľností je získat budoucí hodnotu <SMALL>SERIAL</SMALL> funkcí <I>nextval()</I> před
-   samotným vloľením a pak ji vloľit explicitně. Například v jakémsi
-   pseudojazyku:</P>
-<PRE>
-    newid = execute("SELECT nextval('person_id_seq')");
-    execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
-</PRE>
-   <P>Můľete pak jeątě pouľít hodnotu newid v daląích dotazech, např. jako
-   hodnotu cizího klíče. Název automaticky vytvořené sekvence je
-   <I>tabulka_sloupec_seq</I>.</P>
-
-   <P>Alternativně můľete získat hodnotu posledně generovou sekvencí funkcí
-   <I>currval()</I> po vloľení:</P>
-<PRE>
-    execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
-    new_id = execute("SELECT currval('person_id_seq')");
-</PRE>
-   <P>Konečně můľete pouľít <SMALL>OID</SMALL> hodnotu vrácenou příkazem <SMALL>INSERT</SMALL>, ale to je
-   pravděpodobně nejméně přenositelné řeąení. V Perlu při pouľití DBI
-   modulu Edmunda Mergleho DBD:Pg oid hodnotu získáme <I>$sth->{pg_oid_status}</I>
-   po kaľdém <I>$sth->execute()</I>.</P>
-
-   <H4><A name="4.15.3">4.15.3</A>) Nepovede <I>currval()</I> a <I>nextval()</I> k rozhození 
-     podmínek při souběhu s jinými uľivateli?</H4>
-
-   <P>Nikoliv, <I>currval()</I> vrací hodnotu naposledy generovanou ve vaąem
-   backendu, a ta tudíľ není společná vąem uľivatelům.</P>
-
-   <H4><A name="4.15.4">4.15.4</A>) Proč není vygenerované číslo pouľito při přeruąení transakce? 
-   Proč vznikají díry v číslování vlastní sekvencí/SERIAL sloupce?</H4>
-
-   <P>K zajiątění efektivnosti souběhu, jsou hodnoty posloupnosti, kdyľ se o
-   ně poľádá, a sekvence není zamčena do ukončení transakce. To způsobuje
-   díry v číslování ze zruąených transakcí.</P>
-
-   <H4><A name="4.16">4.16</A>) Co to je <SMALL>OID</SMALL>? Co je to <SMALL>TID</SMALL>?</H4>
-
-   <P>Kaľdý řádek vytvořený v PostgreSQL získá jedinečné <SMALL>OID</SMALL>. Vąechna <SMALL>OID</SMALL>
-   generovaná během inicializace databáze jsou menąí neľ 16384
-   (include/access/transam.h). Vąechna <SMALL>OID</SMALL> generovaná na poľadavek
-   uľivatele jsou rovna nebo vyąąí této hodnotě. Normálně, vąechna <SMALL>OID</SMALL> jsou
-   jedinečná nejen uvnitř tabulky nebo databáze, ale v rámci celé instalace
-   PostgreSQL</P>
-
-   <P>PostgreSQL pouľívá <SMALL>OID</SMALL> ve svém interním systému tabulek k vytvoření
-   relací. Tato <SMALL>OID</SMALL> mohou být pouľita k identifikaci konkrétního uľivatele
-   a pouľita v spojení. Pro <SMALL>OID</SMALL> hodnoty je doporučen typ <SMALL>OID</SMALL>. Nad tímto
-   sloupcem můľete vytvořit index pro urychlení přístupu.</P>
-
-   <P><SMALL>OID</SMALL> jsou dána vąem řádkům z centrální oblasti a jsou pouľita v kaľdé
-   databázi. Pokud potřebujete změnit <SMALL>OID</SMALL>, nebo chcete zkopírovat tabulku s
-   původními <SMALL>OID</SMALL>, lze pouľít:</P>
-<PRE>
-        CREATE TABLE new_table(old_oid oid, mycol int);
-        SELECT old_oid, mycol INTO new FROM old;
-        COPY new TO '/tmp/pgtable';
-        DELETE FROM new;
-        COPY new WITH OIDS FROM '/tmp/pgtable';
-</PRE>
-   <P><SMALL>OID</SMALL> jsou uloľena jako 4bajtový integer a přetečou po čtyřech miliardách.
-   Nebylo hláąeno, ľe by se tak někdy stalo, přesto ale plánujeme odstranit
-   tento limit dřív neľ se tak stane.</P>
-    
-   <P><SMALL>TID</SMALL> se pouľívají i identifikaci fyzických řádků s hodnotou bloku a
-   offsetu. TIDs se mění modifikací řádků (pouľívá se jako ukazatel indexu
-   fyzického řádku).</P>
-
-   <H4><A name="4.17">4.17</A>) Jaký je význam některých výrazů pouľitých v PostgreSQL?</H4>
-
-   <P>V některých zdrojových kódech nebo starąí dokumentaci se můľete setkat s
-   následujícími výrazy, které mají ąirąí význam. Zde je příklad nekterých:</P>
-   <UL>
-      <LI> tabulka, relace, třída (table, relation, class)</LI>
-      <LI> řádek, záznam, ntice (row, record, tuple)</LI>
-      <LI> sloupec, poloľka, atribut (column, field, attribute)</LI>
-      <LI> vyhledání, výběr (retrieve, select)</LI>
-      <LI> náhrada, úprava (replace, update)</LI>
-      <LI> přidání, vkládání (append, insert)</LI>
-      <LI> OID, serial value (OID, serial value)</LI>
-      <LI> portal, kurzor (portal, cursor)</LI>
-      <LI> range variable, jméno tabulky, alias tabulky (range
-        variable, table name, table alias)</LI>
-   </UL>
-
-   <P>seznam těchto výrazů můľete nalézt na
-   <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>.</P>
-
-   <H4><A name="4.18">4.18</A>) Proč jsem získal chybové hláąení "ERROR: Memory exhausted in AllocSetAlloc()"?</H4>
-
-   <P>Pravděpodobně doąlo k vyčerpání virtuální pamě»i na Vaąem systému, nebo
-   jádro má nízký limit pro určité zdroje. Vyzkouąejte před startem
-   posmatera</P>
-<PRE>
-    ulimit -d 262144
-    limit datasize 256m
-</PRE>
-   <P>Záleľí na Vaąem shellu, zda budou tyto příkazy úspěąné, měly by zvýąit
-   limit datového segmentu pro Vaąe procesy a umoľnit tak dokončení dotazu.
-   Tyto příkazy se aplikují na aktuální proces a vąechny synovské procesy
-   vytvořené po provedení příkazu. Pokud máte problémy s SQL klientem
-   protoľe backend vrací přílią mnoho dat, zkuste zvýąit limity před
-   startem klienta.</P>
-
-   <H4><A name="4.19">4.19</A>) Jak se dozvím, kterou verzi PostgreSQL pouľívám?</H4>
-
-   <P>V psql spus»te <CODE>SELECT version();</CODE></P>
-
-   <H4><A name="4.20">4.20</A>) Proč operace s velkými objekty končí "invalid large obj descriptor"?</H4>
-
-   <P>Vąechny operace s velkými objekty - <CODE>lo_open</CODE>, <CODE>lo_close</CODE>, ... musíte
-   spouątět v transakci, tj. mezi příkazy <CODE>BEGIN WORK</CODE> a <CODE>COMMIT</CODE>.</P>
-
-   <P>PostgreSQL uvolňuje handle velkých objektů při skončení transakce. Pokud
-   budete pracovat s velkými objekty mimo transakci, pravděpodobně
-   dostanete toto chybové hláąení, protoľe handle jiľ budou neplatné.</P>
-
-   Pokud pouľíváte interface podobné <SMALL>ODBC</SMALL> musíte nastavit <CODE>set 
-   auto_commit off</CODE>.
-
-   <H4><A name="4.21">4.21</A>) Jak vytvořit sloupec obsahující implicitně aktuální datum?</H4>
-
-   <P>Pouľijte <I>CURRENT_TIMESTAMP</I>:</P>
-<PRE>
-<CODE>
-CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
-</CODE>
-</PRE>
-   <H4><A name="4.22">4.22</A>) Proč jsou moje vnořené dotazy pouľívající IN tak pomalé?</H4>
-
-   <P>Dřívějąí verze (před 7.4) spojovali vnořené dotazy k vnějąím sekvenčním
-   čtením výsledku poddotazu pro kaľdý řádek vnějąího dotazu. Pokud poddotaz
-   vrátil několik málo řádků <SMALL>IN</SMALL> bylo rychlé. Pro ostatní případy je vhodné
-   nahradit <SMALL>IN</SMALL> <SMALL>EXISTS</SMALL>:</P>
-<PRE>
-    SELECT * 
-    FROM tab
-    WHERE col IN (SELECT subcol FROM subtab);
-</PRE>
-<p>na:</p>
-<PRE>
-   SELECT * 
+    52 bytů na řádek
+</pre><p>Velikost datové stránky PostgreSQL je 8192 bytů (8KB)
+</p>
+<pre>
+ 8192 bytů na stránce
+---------------------- = 158 řádek na stránku
+  52 bytů za řádek
+
+100000 řádek
+----------------------- = 633 stránek (zaokrouhleno nahoru)
+   158 řádek na stránce
+
+633 datových stránek * 8192 bytů na každou stránku = 5,185,536 bytů (5.2 MB)
+</pre><p>Indexy nemají tak velkou režii, ale mohou být také velké, protože
+obsahují indexovaná data.
+</p>
+<p>Hodnoty NULL jsou uloženy v bitmapách, takže zabírají jen velmi málo
+diskového prostoru.
+</p>
+<h3><a name="item4.6">4.6</a>) Můj dotaz je pomalý a nepoužívá vytvořené indexy. Proč?</h3>
+<p>Každý dotaz nemusí nutně použít existující indexy. Index se použije
+tehdy, když je tabulka větší než určitá minimální velikost, a dotaz
+vybírá pouze procentuálně malou část řádků tabulky. To proto, že
+náhodný přístup k disku daný čtením indexu může být pomalejší než
+lineární čtení tabulky nebo sekvenční čtení.
+</p>
+<p>PostgreSQL rozhoduje o použití indexů na základě statistiky přístupů k
+tabulce. Tyto statistiky se shromažďují příkazy VACUUM ANALYZE nebo
+ANALYZE. Díky statistikám má optimizer informaci o počtu řádek v
+tabulce a může lépe rozhodnout o použití indexů. Statistiky se uplatní
+při určení optimálního pořadí a metody spojení tabulek. Statistiky by
+se měli aktualizovat opakovaně, tak jak se mění obsah tabulek.
+</p>
+<p>Indexy nejsou obyčejně použity pro setřídění nebo spojení tabulek.
+Sekvenční zpracování následované explicitním tříděním je obyčejně
+rychlejší než použití indexu na velké tabulce.
+</p>
+<p>Jinak je tomu v případě použití LIMIT a ORDER BY, při kterém se
+většinou index použije, jelikož je výsledkem pouze malá část tabulky.
+</p>
+<p>Pokud si myslíte, že optimizer mylně zvolil sekvenční prohledávání
+tabulky, použijte příkaz SET enable_seqscan TO 'off' a zkuste zda je
+prohledávání s indexem rychlejší.
+</p>
+<p>Při vyhledávání na základě vzoru jako je např. operátor LIKE nebo ~ se
+indexy použijí pouze za určitých skutečností:
+</p>
+<ul><li> začátek hledaného vzoru musí být ukotven k začátku, tj.
+<ul><li> vzor LIKE nesmĂ­ zaÄŤĂ­nat %
+</li>
+<li> ~ regulární výraz musí začínat ^
+</li>
+</ul>
+</li>
+<li> vzor nesmĂ­ zaÄŤĂ­nat intervalem, napĹ™. [a-e]
+</li>
+<li> vyhledávaní, které není Case sensitiv jako je ILIKE nebo ~* nepoužívá indexy. Můžete ale použít funkcionální indexy, které jsou popsány v sekci 4.8
+</li>
+<li> při inicializaci databáze (initdb) musí být použito C locale nebo vytvořte speciální text_pattern_index, který umožní, při respektování zmíněných podmínek použití indexu operací LIKE. Pro vyhledávání celých slov je možné a výhodné použít fulltext.
+</li>
+</ul>
+<h3><a name="item4.7">4.7</a>) Jak zjistĂ­m, jak se vyhodnocuje mĹŻj dotaz?</h3>
+<p>Podívejte se do nápovědy k příkazu EXPLAIN.
+</p>
+<h3><a name="item4.8">4.8</a>) Jak použít case-(in)sensitive regulární výraz? Jak použít index pro case insensitive hledání?</h3>
+<p>Vyhledávání prostřednictvím regulárních vzorů zajišťuje operátor ~, který je case-sensitive. Jeho case-insensitive varianta je operátor ~*. Case-insensitive variací operátoru LIKE je operátor ILIKE.
+</p>
+<p>Case-insensitive vyhledání se řeší:
+</p>
+<pre>
+SELECT *
+FROM tab
+WHERE lower(col) = 'abc';
+</pre><p>Tento dotaz nepoužije standardní index. Musíte použít tzv. funkcionální index:
+</p>
+<pre>
+CREATE INDEX tabindex ON tab (lower(col));
+</pre><p>Pokud index vytvoříme jako unikátní, tak můžeme ukládat řetězce obsahující malá i velká písmena, ale nikoliv řetězce, které se od sebe odlišují jen v malých a velkých písmenech. K zajištění zápisu řetězce obsahující pouze malá nebo pouze velká písmena použijte CHECK kontroly nebo triggery.
+</p>
+<h3><a name="item4.9">4.9</a>) Jak v dotazu detekovat, že položka je NULL? Jak bezpečně spojit dva řetězce, pokud mohou obsahovat NULL? Lze třídit podle toho, jestli je položka NULL nebo ne?</h3>
+<p>Pokud chcete testovat hodnotu NULL použijte operátor IS:
+</p>
+<pre>
+   SELECT *
    FROM tab
-   WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
-</PRE>
-   <P>Pro urychlení vytvořete index pro subcol. </P>
-
-   <P>Ve verzi 7.4 a pozdějąích, <SMALL>IN</SMALL> pouľívá stejně sofistikovanou techniku
-   spojování tabulek jako ostatní dotazy a je preferovaný před <SMALL>EXISTS</SMALL>.</P>
-
-   <H4><A name="4.23">4.23</A>) Jak provést vnějąí spojení (outer join)?</H4>
-
-   <P>PostgreSQL podporuje vnějąí spojení tabulek standardními SQL příkazy.
-   Zde jsou dva příklady:</P>
-<PRE>
-    SELECT * 
-    FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
-</PRE>
-   nebo
-<PRE>
-    SELECT * 
-    FROM t1 LEFT OUTER JOIN USING (col);
-</PRE>
-   <P>Tyto identické dotazy napojí t1.col na t2.col a jeątě přidá nepřipojené
-   řádky z t1 (které nemají obdoby v t2). Pravé spojení (<SMALL>RIGHT JOIN</SMALL>) přidá
-   nepřipojené řádky z t2. <SMALL>FULL JOIN</SMALL> vrátí vąechny řádky, včetně
-   nepřipojených z tbulek t1 a t2. Klíčové slovo <SMALL>OUTER</SMALL> je nepovinné a váľe
-   se na <SMALL>LEFT</SMALL>, <SMALL>RIGHT</SMALL> a <SMALL>FULL</SMALL> join. Běľné 
-   spojení se nazývá <SMALL>INNER JOIN</SMALL>.</P>
-
-   <P>V dřívějąích verzích se vnějąí spojení tabulek mohlo simulovat pomocí
-   <SMALL>UNION</SMALL> a <SMALL>NOT IN</SMALL>. Například pro spojení tabulek tab1 a tab2, je
-   následující dotaz ekvivalentní k vnějąímu spojení dvou tabulek:</P>
-<PRE>
-    SELECT tab1.col2, tab2.col2 
-    FROM tab1, tab2
-    WHERE tab1.col1 = tab2.col1
-    UNION ALL
-    SELECT tab1.col2, NULL 
-    FROM tab1
-    WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
-    ORDER BY col1;
-</PRE>
-
-   <H4><A name="4.24">4.24</A>) Jak provést dotaz z více databází?</H4>
-
-   <P>PostgreSQL nepodporuje dotazy do jiné neľ aktuální databáze.</P>
-
-   <P><I>contrib/dblink</I> nabízí funkce umoľňující provedení dotazu v jiné 
-   databázi. Klient si můľe otevřít simultální připojení do různých
-   db bez omezení.</P>
-
-   <H4><A name="4.25">4.25</A>) Můľe funkce vrátit více řádků nebo sloupců?</H4>
-
-   <P>V PostgreSQL 7.3 můľete jednoduąe vracet více řádků nebo sloupců z
-   funkce, viz:
-   <A href="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</A>.</P>
-
-   <H4><A name="4.26">4.26</A>) Proč nelze spolehlivě vytvářet a ruąit dočasné tabulky v PL/pgSQL funkcích?</H4>
-
-   <P>Přeloľený kód PL/pgSQL funkce je uloľen ve vyrovnávací paměti, tj.
-   funkce je překládána pouze při změně kódu, nikoliv před kaľdým voláním
-   funkce. Nechtěným vedlejąím efektem je, ľe volání funkce selľe, kdyľ se
-   funkce odkazuje na dočasnou tabulku, pokud tato tabulka byla od překladu
-   funkce zruąena (ačkoliv jiľ byla znovu vytvořena a existuje). Jediným
-   řeąením problému je přístup k dočasné tabulce pomocí <SMALL>EXECUTE</SMALL>, tj.
-   dynamické provádění dotazu. Tento příkaz zajistí opakovaný překlad
-   dotazu při kaľdém volání funkce.</P>
-
-   <H4><A name="4.27">4.27</A>) Jaké jsou moľnosti replikace databází?</H4>
-
-   <P>Existuje několik dostupných řeąení master/slave replikací, tj umoľňují
-   modifikace master databáze a slave databázím umoľňují pouze čtení. Na
-   konci <A href="http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research</A> najdete
-   jejich seznam. Na řeąení multi-master replikaci se pracuje na
-   <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</A>) Jaké jsou moľnosti ąifrování databází?</H4>
-     <UL>
-     <LI><I>contrib/pgcrypto</I> obsahuje ąifrovací funkce pouľitelné v SQL
-       dotazech.</LI>
-     <LI>K ąifrování přenosu dat z klienta na server, musí být server
-       přeloľen s podporou <I>ssl</I> a přepínač <I>ssl</I> v <I>postgresql.conf</I> musí být
-       nastaven na hodnotu true. Klient musí mít vytvořen záznam hostssl v
-       <I>pg_hba.conf</I> a také mít povolen reľim <I>ssl</I>. Lze pouľít i jiné
-       prostředky, nejen nativní podporu ssl v PostgreSQL, např. stunel a
-       ssh.</LI>
-     <LI>Hesla uľivatelů databáze jsou zaąifrována počínaje verzí 7.3. Ve
-       starąích verzích toto chování muselo být vynuceno volbou
-       <I>PASSWORD_ENCRYPTION</I> v <I>postgresql.conf</I></LI>
-     <LI> Server můľe běľet na ąifrovaném souborovém systému.</LI>
-    </UL>
-   <HR>
-
-   <H2 align="center">Roząiřování PostgreSQL</H2>
-
-   <H4><A name="5.1">5.1</A>) Napsal jsem UDF funkci, PostgreSQL vąak končí dump core?</H4>
- 
-   <P>Problém můľe být způsoben mnoha okolnostmi. Vyzkouąejte si svoji funkci
-   nejdříve v nějaké jednoduché aplikaci.</P>
-
-   <H4><A name="5.2">5.2</A>) Jak mohu přispět nějakými ąikovnými datovými typy a funkcemi do PostgreSQL?</H4>
-
-   <P>Poąlete své roząíření do konference pgsql-hackers, a ono pak moľná
-   skončí v podadresáři contrib.</P>
-
-   <H4><A name="5.3">5.3</A>) Jak napsat funkci v C vracející ntici?</H4>
-
-   <P>Funkce vracející tabulky jsou podporované PostgreSQL 7.3 a vyąąí pro
-   jazyky C, PL/PgSQL a SQL. Více naleznete v The Programmer's Guide.
-   Příklady těchto funkcí pro C naleznete v <I>contrib/tablefunc</I>.</P>
-
-   <H4><A name="5.4">5.4</A>) Modifikoval jsem zdrojové soubory. Tato změna nebyla při rekompilaci vzata v potaz. Proč?</H4>
-
-   <P><I>Makefile</I> nemá informace o závislostech mezi hlavičkovými soubory. Musíte
-   provést <I>make clean</I> a pak <I>make</I>. Pokud pouľíváte <SMALL>gcc</SMALL>, můľete pouľít
-   přepínač <I>--enable-depend</I> příkazu <I>configure</I> k automatickému řeąení
-   závislostí překladačem.</P>
- </BODY>
-</HTML>
+   WHERE col IS NULL;
+</pre><p>K spojení řetězců, které mohou obsahovat hodnotu NULL, používejte funkci COALESCE(), např.:
+</p>
+<pre>
+   SELECT COALESCE(col1, '') || COALESCE(col2, '')
+   FROM tab
+</pre><p>Pokud chcete třídit podle hodnoty NULL, použijte výraz IS NULL nebo IS NOT NULL v klauzuli ORDER. Hodnota pravda má přednost před hodnotou false a tedy pokud použijete:
+</p>
+<pre>
+   SELECT *
+   FROM tab
+   ORDER BY (col IS NOT NULL)
+</pre><p>tak záznamy s NULL budou na začátku setříděných dat.
+</p>
+<h3><a name="item4.10">4.10</a>) Jaké jsou rozdíly mezi různými znakovými typy?</h3>
+<table border="0">
+<tr><td>Typ </td><td> Interní název </td><td> Poznámky
+</td></tr>
+<tr><td> VARCHAR(n)</td><td> varchar</td><td> n určuje maximální délku
+</td></tr>
+<tr><td> CHAR(n)</td><td> bpchar </td><td> řetězec je do dané délky rozšířen mezerami
+</td></tr>
+<tr><td> TEXT</td><td> text</td><td> bez omezení délky
+</td></tr>
+<tr><td> BYTEA</td><td> bytea</td><td> pole bytů nespecifikované délky
+</td></tr>
+<tr><td> "char"</td><td> char</td><td> jeden znak
+</td></tr>
+</table>
+<p>Na interní názvy můžete narazit v systémovém katalogu nebo v některých chybových hlášeních.
+</p>
+<p>Čtyři první typy jsou tzv. varlena typy (první čtyři byty na disku jsou obsahují délku, ostatní obsahují vlastní data). Skutečně obsazený prostor je tedy o něco málo větší než deklarovaná velikost. Na druhou stranu, delší řetězce jsou komprimovány, takže obsazený prostor na disku může být menší než se čeká.
+</p>
+<p>VARCHAR(n) je vhodný pro ukládání různě dlouhých řetězců u kterých známe délkové omezení, TEXT pro řetězce bez omezení délky (maximum je jeden gigabyte).
+</p>
+<p>CHAR(n) se používá pro uložení stejně dlouhých řetězců. CHAR(n) doplní mezerami na specifikovanou délku, VARCHAR(n) hodnoty se ukládají tak jak jsou. BYTEA je pro ukládání binárních dat - non ASCII hodnot. Všechny zmíněné typy mají podobné výkonové charakteristiky.
+</p>
+<h3><a name="item4.11.1">4.11.1</a>) Jak vytvořit serial/auto-increment položku?</h3>
+<p>V PostgreSQL můžete použít datový typ SERIAL. Jeho použitím se automaticky vytvoří sekvence.
+Například:
+</p>
+<pre>
+CREATE TABLE person (
+  id   SERIAL,
+  name TEXT
+);
+</pre><p>je automaticky transformováno na:
+</p>
+<pre>
+CREATE SEQUENCE person_id_seq;
+CREATE TABLE person (
+  id   INT4 NOT NULL DEFAULT nextval('person_id_seq'),
+  name TEXT
+);
+</pre><p>Podrobnější informace najdete v manuálu v popisu příkazu create_sequence.
+</p>
+<h3><a name="item4.11.2">4.11.2</a>) Jak získat hodnotu SERIAL po vložení řádku?</h3>
+<p>Nejjednodušším způsob, jak získat vygenerovanou hodnotu typu SERIAL, je využít klauzuli RETURNING. Pro tabulku z 4.11.1 vypadá takto:
+</p>
+<pre>
+INSERT INTO person (name) VALUES ('Blaise Pascal') RETURNING id;
+</pre><p>Také můžete použít funkci nextvall() a její výsledek použít v příkazu INSERT, nebo zavolat currval() po provedení příkazu INSERT.
+</p>
+<h3><a name="item4.11.3">4.11.3</a>) Nezpůsobí currval() a nextval() problémy ve více uživatelském prostředí?</h3>
+<p>Ne, currval vrací vždy hodnotu, která byla vygenerována pro vás.
+</p>
+<h3><a name="item4.11.4">4.11.4</a>) Proč není vygenerované číslo použito při přerušení transakce?Proč vznikají díry v číslování prostřednictvím sekvence nebo typu SERIAL?</h3>
+<p>Poté co sekvence vygeneruje nové číslo, tak se nedochází k zamčení sekvence a nečeká se na úspěšné nebo neúspěšné dokončení transakce. Odvoláním transakce, která si vyžádala čísla sekvence se tato čísla nenávratně ztratí.
+</p>
+<h3><a name="item4.12">4.12</a>) Co to je OID? Co je to CTID?</h3>
+<p>V případě, že tabulku nezaložíme s atributem WITHOUT OIDS, tak má každý řádek unikátní identifikační číslo OID. Toto číslo je 4 bajtové celé číslo, které je jedinečné v celé instalaci. Přeteče po 4 miliardách řádků. PostgreSQL používá OIDs jako interní linky v interních systémových tabulkách.
+</p>
+<p>K získání unikátního čísla v nesystémových tabulkách je vhodnější použití typu SERIAL než OID, jelikož sekvence SERIAL se používá pouze pro jednu tabulku a je tudíž méně náchylná na přetečení. Pokud byste se toho obávali, použijte typ SERIAL8.
+</p>
+<p>CTID se používá k identifikaci konkrétního fyzického řádku. CTID se mění pokud je řádek modifikován nebo znovu načten. Používají ho indexy jako adresaci fyzických řádků.
+</p>
+<h3><a name="item4.13">4.13</a>) Co znamená chybové hlášení "ERROR: Memory exhausted in AllocSetAlloc()"?</h3>
+<p>Pravděpodobně jste vyčerpal dostupnou virtuální paměť, nebo tvůj kernel
+má příliš nízké limity u určitých zdrojů. Před startem PostgreSQL vyzkoušejte:
+</p>
+<pre>
+ulimit -d 262144
+limit datasize 256m
+</pre><p>Možná, že se projde pouze jeden příkaz - záleží to na vašem shellu.
+Měl by zvednout limity datových segmentů vašich procesů na dostatečně velkou
+hodnotu a snad umožnit dokončení dotazu. Změna limitů se bude aplikovat 
+pouze na aktuální proces a na všechny nově vytvořené procesy. Jestliže máte
+problém s SQL klientem, protože vám server vrátil příliš dat, zkuste to
+před startem klienta.
+</p>
+<h3><a name="item4.14">4.14</a>) Jak zjistím, kterou verzi PostgreSQL používám?</h3>
+<p>V psql napište:
+</p>
+<pre>
+SELECT version();
+</pre>
+<h3><a name="item4.15">4.15</a>) Jak vytvořit sloupec, který bude implicitně obsahovat aktuální čas?</h3>
+<p>PouĹľijte CURRENT_TIMESTAMP:
+</p>
+<pre>
+CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
+</pre>
+<h3><a name="item4.16">4.16</a>) Jak provést vnější spojení (outer join)?</h3>
+<p>PostgreSQL podporuje standardní SQL syntaxi pro vnější spojení. Zde jsou 
+dva příklady:
+</p>
+<pre>
+SELECT *
+FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
+</pre><p>nebo
+</p>
+<pre>
+SELECT *
+FROM t1 LEFT OUTER JOIN t2 USING (col);
+</pre><p>Tyto identické dotazy spojí sloupec t1.col k sloupci t2.col, a ještě vrátí všechny nespárované řádky t2 (ty, které nedohledá v t2). RIGHT JOIN by připojil všechny nespárované řádky z t2. FULL JOIN vrátí všechny spárované řádky i všechny zbývající řádky z obou tabulek. Klíčové slovo OUTER je volitelné. Běžná operace JOIN se také označuje jako vnitřní spojení.
+</p>
+<h3><a name="item4.17">4.17</a>) Jak provést dotaz napříč několika databázemi?</h3>
+<p>Neexistuje žádný způsob, jak se v dotazu odkazovat na tabulky z jiné než aktuální databáze. A to protože má systémové tabulky uložené nezávisle v každé databázi a není tak úplně zřejmé, jak by se dotaz provedený napříč databázemi měl chovat.
+</p>
+<p>Jeden z doplňků dblink umožňuje dotaz nad několika tabulkami pomocí funkcí. Druhý způsob je simultální připojení klienta ke všem relevantním databázím a sloučení výsledku na straně klienta.
+</p>
+<h3><a name="item4.18">4.18</a>) Může funkce vrátit více řádků nebo sloupců?</h3>
+<p>Jde to jednoduše pomocí set-returning funkce. Více na 
+<a href="http://www.postgresql.org/docs/techdocs.17" title="http://www.postgresql.org/docs/techdocs.17">http://www.postgresql.org/docs/techdocs.17</a>.
+</p>
+<h3><a name="item4.19">4.19</a>) Co je příčinou chyby "relation with OID xxxxx does not exist"?</h3>
+<p>Nechtěným vedlejším efektem kešování SQL dotazů v PL/pgSQL funkci je problém s neplatnými odkazy na dočasné tabulky, které byly od prvního spuštění funkce zrušeny a znovu vytvořeny před dalším spuštěním PL/pgSQL funkce. Řešením je použít příkaz EXECUTE a to proto, že prováděcí plán SQL příkazu spouštěného příkazem EXECUTE se vytváří pokaždé znovu (neukládá se do cache).
+</p>
+<p>Tento problém by se neměl vyskytovat u PostgreSQL verze 8.3 a vyšších verzích.
+</p>
+<h3><a name="item4.20">4.20</a>) Jaké jsou možnosti replikace databází?</h3>
+<p>Replikaci databáze umožňuje několik technoligií. Každá má určité výhody a nevýhody.
+</p>
+<p>Master/Slave replikaci podporuje jeden hlavní server, který přijímá požadavky na zápis a čtení, a několik podřízených serverů, které umožňují pouze čtení (SELECT). Nejrozšířenějším volně dostupným řešením tohoto typu je <a href="http://main.slony.info/" title="http://main.slony.info/">Slony-I</a>.
+</p>
+<p>Replikace typu Multi-master podporuje existenci několika serverů s povoleným zápisem na více replikovaných serverech. Toto řešení zvyšuje zátěž serverů, protože je nutná synchronizace serverů. Nejrozšířenějším volně dostupným řešením je <a href="http://pgfoundry.org/projects/pgcluster/" title="http://pgfoundry.org/projects/pgcluster/">PGCluster</a>.
+</p>
+<p>Ještě existuje několik komerčních a hardware řešení replikací podporujících různé modely replikace.
+</p>
+<h3><a name="item4.21">4.21</a>) Proč v dotazu nejsou rozpoznány názvy mých tabulek nebo funkcí? Proč jsou velká písmena v názvech automaticky převedena na malá písmena?</h3>
+<p>Nejčastějším důvodem nerozpoznání názvu objektu bylo použití vložení názvu sloupce nebo tabulky  mezi uvozovky při zakládání tabulky. Pokud se název zapíše mezi uvozovky, pak je case sensitive, a v důsledku toho je nutné názvy těchto sloupců nebo tabulek v SQL příkazech také vkládat mezi uvozovky (pokud obsahují velká písmena). Některé programy, jako je například pgAdmin, automaticky používají uvozovky. Takže pokud chcete, aby systém identifikoval identifikátor, musíte:
+</p>
+<ul><li> nepoužívat uvozovky v příkazu CREATE TABLE
+</li>
+<li> v identifikátoru použít pouze malá písmena
+</li>
+<li> v dotazech vkládat identifikátory do uvozovek
+</li>
+</ul>
+</body>
+</htm>
-- 
GitLab