Here's the patch to fix a lot of markup errors in the HTML FAQs. Doesn't
authorBruce Momjian <bruce@momjian.us>
Fri, 11 Mar 2005 21:47:44 +0000 (21:47 +0000)
committerBruce Momjian <bruce@momjian.us>
Fri, 11 Mar 2005 21:47:44 +0000 (21:47 +0000)
change content (at least not supposed to).

Magnus Hagander

22 files changed:
doc/FAQ
doc/FAQ_DEV
doc/FAQ_brazilian
doc/FAQ_czech
doc/FAQ_farsi
doc/FAQ_french
doc/FAQ_german
doc/FAQ_japanese
doc/FAQ_polish
doc/FAQ_russian
doc/FAQ_turkish
doc/src/FAQ/FAQ.html
doc/src/FAQ/FAQ_DEV.html
doc/src/FAQ/FAQ_MINGW.html
doc/src/FAQ/FAQ_brazilian.html
doc/src/FAQ/FAQ_czech.html
doc/src/FAQ/FAQ_french.html
doc/src/FAQ/FAQ_german.html
doc/src/FAQ/FAQ_japanese.html
doc/src/FAQ/FAQ_polish.html
doc/src/FAQ/FAQ_russian.html
doc/src/FAQ/FAQ_turkish.html

diff --git a/doc/FAQ b/doc/FAQ
index 6f1f456ca3355985813d919b2265209daf29da90..616258ee047178a01c40fadfb43ea6217fdf887b 100644 (file)
--- a/doc/FAQ
+++ b/doc/FAQ
@@ -1,7 +1,7 @@
 
                 Frequently Asked Questions (FAQ) for PostgreSQL
                                        
-   Last updated: Thu Feb 24 19:33:07 EST 2005
+   Last updated: Fri Mar 11 16:42:06 EST 2005
    
    Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
    
@@ -77,8 +77,8 @@
    4.17) How do I perform an outer join?
    4.18) How do I perform queries using multiple databases?
    4.19) How do I return multiple rows or columns from a function?
-   4.20) Why do I get "missing oid" errors when accessing temporary
-   tables in PL/PgSQL functions?
+   4.20) Why do I get "relation with OID ##### does not exist" errors
+   when accessing temporary tables in PL/PgSQL functions?
    4.21) What encryption options are available?
    
                             Extending PostgreSQL
    For Web integration, PHP (http://www.php.net) is an excellent
    interface.
    
-   For complex cases, many use the Perl DBD::Pg with CGI.pm or mod_perl.
+   For complex cases, many use the Perl and DBD::Pg with CGI.pm or
+   mod_perl.
    
     2.3) Does PostgreSQL have a graphical user interface?
     
     4.19) How do I return multiple rows or columns from a function?
     
    It is easy using set-returning functions,
-   http://techdocs.postgresql.org/guides/SetReturningFunctions.
+   http://techdocs.postgresql.org/guides/SetReturningFunctions
+   .
    
-    4.20) Why do I get "missing oid" errors when accessing temporary tables in
-    PL/PgSQL functions?
+    4.20) Why do I get "relation with OID ##### does not exist" errors when
+    accessing temporary tables in PL/PgSQL functions?
     
    PL/PgSQL caches function scripts, and an unfortunate side effect is
    that if a PL/PgSQL function accesses a temporary table, and that table
index 37169e479b527d700e8550babab852e591c951aa..f3a9835cfffeeb3bcd4d353440d46cf8630f64cd 100644 (file)
@@ -1,7 +1,7 @@
 
           Developer's Frequently Asked Questions (FAQ) for PostgreSQL
                                        
-   Last updated: Wed Jan 5 17:36:58 EST 2005
+   Last updated: Fri Mar 11 16:43:05 EST 2005
    
    Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
    
@@ -9,8 +9,8 @@
    http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html.
      _________________________________________________________________
    
-                             General Questions
-                                      
+General Questions
+
    1.1) How do I get involved in PostgreSQL development?
    1.2) What development environment is required to develop code?
    1.3) What areas need work?
@@ -31,8 +31,8 @@
    1.17) Where can I get technical assistance?
    1.18) How do I get involved in PostgreSQL web site development?
    
-                            Technical Questions
-                                      
+Technical Questions
+
    2.1) How do I efficiently access information in tables from the
    backend code?
    2.2) Why are table, column, type, function, view names sometimes
@@ -46,7 +46,7 @@
    
                              General Questions
                                       
-  1.1) How go I get involved in PostgreSQL development?
+  1.1) How do I get involved in PostgreSQL development?
   
    Download the code and have a look around. See 1.7.
    
    have misunderstood the TODO item; your approach may benefit from the
    review of others.
    
+   A web site is maintained for patches that are ready to be applied,
+   http://momjian.postgresql.org/cgi-bin/pgpatches, and those that are
+   being kept for the next release,
+   http://momjian.postgresql.org/cgi-bin/pgpatches2.
+   
   1.5) Where can I learn more about the code?
   
    Other than documentation in the source tree itself, you can find some
    Basic system testing
    
    The easiest way to test your code is to ensure that it builds against
-   the latest verion of the code and that it does not generate compiler
+   the latest version of the code and that it does not generate compiler
    warnings.
    
    It is worth advised that you pass --enable-cassert to configure. This
    test suite. To do this, issue "make check" in the root directory of
    the source tree. If any tests failure, investigate.
    
-   If you've deliberately changed existing behaviour, this change may
+   If you've deliberately changed existing behavior, this change may
    cause a regression test failure but not any actual regression. If so,
    you should also patch the regression test suite.
    
     1. A set of patches to make certain portions of the source tree
        'behave' in the different environment of the RPMset;
     2. The initscript;
-    3. Any other ancilliary scripts and files;
+    3. Any other ancillary scripts and files;
     4. A README.rpm-dist document that tries to adequately document both
        the differences between the RPM build and the WHY of the
        differences, as well as useful RPM environment operations (like,
    want to contain the toplevel "pgsql" directory and say
     cvs ... checkout pgsql
 
-   To get a past branch, you cd to whereever you want it and say
+   To get a past branch, you cd to wherever you want it and say
     cvs ... checkout -r BRANCHNAME pgsql
 
    For example, just a couple days ago I did
    questions about development of new features, on IRC at
    irc.freenode.net in the #postgresql channel.
    
-  1.18) How go I get involved in PostgreSQL web site development?
+  1.18) How do I get involved in PostgreSQL web site development?
   
    PostgreSQL website development is discussed on the
    pgsql-www@postgresql.org mailing list. The is a project page where the
    source code is available at
    http://gborg.postgresql.org/project/pgweb/projdisplay.php , the code
    for the next version of the website is under the "portal" module. You
-   will al so find code for the "techdocs" website if you would like to
+   will also find code for the "techdocs" website if you would like to
    contribute to that. A temporary todo list for current website
    development issues is available at http://xzilla.postgresql.org/todo
    
-                            Technical Questions
-                                      
+Technical Questions
+
   2.1) How do I efficiently access information in tables from the backend code?
   
    You first need to find the tuples(rows) you are interested in. There
@@ -653,7 +658,7 @@ typedef struct nameData
    Here are some of the List manipulation commands:
    
    lfirst(i), lfirst_int(i), lfirst_oid(i)
-          return the data (a point, inteter and OID respectively) at list
+          return the data (a point, integer and OID respectively) at list
           element i.
           
    lnext(i)
index a44ed10c200c56e4fdc012f8ba68d05fefd2753b..45297e30592686ca4db6230355f754dccbc2ce41 100644 (file)
    
    Se o postmaster está sendo executado, inicie o psql em uma janela, e
    então encontre o PID do processo postgres utilizado pelo psql
-   utilizando
-SELECT pg_backend_pid()
-
-   . Utilize um depurador para anexar ao PID do postgres. Você pode
-   definir pontos de parada (breakpoints) no depurador e digitar
-   consultas no psql. Se você está depurando a inicialização do postgres,
-   você pode definir PGOPTIONS="-W n" e então iniciar o psql. Isto
-   retardará a inicialização por n segundos então você pode anexar o
-   depurador ao processo, definir quaisquer pontos de parada e continuar
-   pela sequência de inicialização.
-   
-   Há várias variáveis de configuração do servidor
-log_*
-
-   que habilitam a exibição de estatísticas que podem ser muito úteis
-   para depuração e medidas de performance.
+   utilizando SELECT pg_backend_pid(). Utilize um depurador para anexar
+   ao PID do postgres. Você pode definir pontos de parada (breakpoints)
+   no depurador e digitar consultas no psql. Se você está depurando a
+   inicialização do postgres, você pode definir PGOPTIONS="-W n" e então
+   iniciar o psql. Isto retardará a inicialização por n segundos então
+   você pode anexar o depurador ao processo, definir quaisquer pontos de
+   parada e continuar pela sequência de inicialização.
+   
+   Há várias variáveis de configuração do servidor log_* que habilitam a
+   exibição de estatísticas que podem ser muito úteis para depuração e
+   medidas de performance.
    
    Você também pode compilar com perfil para ver que funções estão
    demandando tempo de execução. Os arquivo de perfil do núcleo (backend)
@@ -680,13 +675,13 @@ log_*
     3.11) Que tipo de hardware eu devo usar?
     
    Por causa do hardware de PC ser em sua maioria compatível, pessoas
-   tendem a acreditar que todos os hardwares de PC são de mesma
-   qualidade. Não é verdade. ECC RAM, SCSI e placas mãe de qualidade são
-   mais confiáveis e têm uma melhor performance do que hardwares mais
-   baratos. O PostgreSQL executará em quase todo hardware, mas se a
-   confiabilidade e a performance forem importantes é prudente pesquisar
-   sobre as opções de hardware. Nossas listas de discussão podem ser
-   usadas para discutir opções de hardware e dilemas.
+   tendem a acreditar que todos os hardwares de PC satilde;o de mesma
+   qualidade. Natilde;o é verdade. ECC RAM, SCSI e placas mãe de
+   qualidade são mais confiáveis e têm uma melhor performance do que
+   hardwares mais baratos. O PostgreSQL executará em quase todo hardware,
+   mas se a confiabilidade e a performance forem importantes é prudente
+   pesquisar sobre as opções de hardware. Nossas listas de discussão
+   podem ser usadas para discutir opções de hardware e dilemas.
      _________________________________________________________________
    
                            Perguntas Operacionais
@@ -753,14 +748,12 @@ log_*
     dados?
     
    Estes são os limites:
-Tamanho máximo de um banco de dados?           ilimitado (existem bancos de dad
-os de 32 TB)
+Tamanho máximo de um banco de dados?           ilimitado (existem bancos de dados de 32 TB)
 Tamanho máximo de uma tabela?                  32 TB
 Tamanho máximo de um registro?                 1.6TB
 Tamanho máximo de um campo?                    1 GB
 Número máximo de registros em uma tabela?      ilimitado
-Número máximo de colunas em uma tabela?        250-1600 dependendo dos tipos da
-s colunas
+Número máximo de colunas em uma tabela?        250-1600 dependendo dos tipos das colunas
 Número máximo de índices em uma tabela?        ilimitado
 
    É claro, que eles não são ilimitados, mas limitados ao espaço em disco
@@ -795,17 +788,14 @@ N
    O tamanho de uma página de dados no PostgreSQL é 8192 bytes (8 KB), então:
 
    8192 bytes por página
-   ------------------------   =  136 registros por página do banco de dados (ar
-redondado para baixo)
+   ------------------------   =  136 registros por página do banco de dados (arredondado para baixo)
      60 bytes por registro
 
    100000 registros de dados
-   ----------------------------  =  735 páginas do banco de dados (arredondado
-para cima)
+   ----------------------------  =  735 páginas do banco de dados (arredondadopara cima)
       128 registros por página
 
-735 páginas do banco de dados * 8192 bytes por página  =  6,021,120 bytes (6 MB
-)
+735 páginas do banco de dados * 8192 bytes por página  =  6,021,120 bytes (6 MB)
 
    Índices não requerem muito espaço, mas contém dados que foram
    indexados, então eles podem ocupar algum espaço.
@@ -874,10 +864,8 @@ para cima)
      * A localidade padrão C deve ser utilizada durante o initdb porque
        não é possível saber o próximo/maior caracter em uma localidade
        que não seja a C. Você pode criar um índice especial
-text_pattern_ops
-       para tais casos que funcionam somente para indexação utilizando
-LIKE
-       .
+       text_pattern_ops para tais casos que funcionam somente para
+       indexação utilizando LIKE.
        
    Em versões anteriores a 8.0, índices frequentemente não podiam ser
    usados a menos que os tipos de dados correspodessem aos tipos da
@@ -948,14 +936,10 @@ LIKE
     
 Tipo            Nome Interno    Notas
 --------------------------------------------------
-VARCHAR(n)      varchar         tamanho especifica o comprimento máximo, sem pr
-eenchimento
-CHAR(n)         bpchar          preenchimento em branco para comprimento fixo e
-specífico
-TEXT            text            nenhum limite superior específico no compriment
-o
-BYTEA           bytea           vetor de bytes de comprimento variável (null-by
-te safe)
+VARCHAR(n)      varchar         tamanho especifica o comprimento máximo, sem preenchimento
+CHAR(n)         bpchar          preenchimento em branco para comprimento fixo específico
+TEXT            text            nenhum limite superior específico no comprimento
+BYTEA           bytea           vetor de bytes de comprimento variável (null-byte safe)
 "char"          char            um caracter
 
    Você verá o nome interno quando examinar o catálogo do sistema e em
@@ -1063,8 +1047,7 @@ te safe)
    de alguma coisa, ou se você quer fazer uma cópia da tabela, com os
    OIDs, não há razão para que você não possa fazê-la:
         CREATE TABLE nova_tabela(minha_coluna int);
-        SELECT oid as oid_antigo, minha_coluna INTO tabela_tmp FROM tabela_anti
-ga;
+        SELECT oid as oid_antigo, minha_coluna INTO tabela_tmp FROM tabela_antiga;
         COPY tabela_tmp TO '/tmp/pgtable';
         DROP TABLE tabela_tmp;
         COPY nova_tabela WITH OIDS FROM '/tmp/pgtable';
index 1fd6627b8a581314c968e487297e53fa77aa27f3..1a2b33cb687fb64b971d8ef1d137235266ab0ccf 100644 (file)
-Èasto kladené dotazy (FAQ) PostgreSQL
-=====================================
-
-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.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
-==================
-2.1 Kde naleznu ODBC ovladaèe pro PostgreSQL?
-2.2 Jaké nástroje lze pou¾í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?
-
-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
-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
-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è?
-------------------------------------------------------------------------
-
-Obecné otázky
-=============
-
-1.1 Co je PostgreSQL? Jak se vyslovuje?
----------------------------------------
-
-PostgreSQL se vyslovuje Post-Gres-Q-L.
-
-PostgreSQL vychází z databáze 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. (Odpovìï 1.6. -
-jak se zapojit). Tento tým je zodpovìdný za ve¹kerý vývoj PostgreSQL.
-
-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-2002, 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.
-
-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.
-
-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. Na nativním portu pro MS Win
-NT/2000/XP se pracuje. 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ím 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 mailto: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 mailto: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 Kde je poslední verze?
---------------------------
-
-Poslední verzí je PostgreSQL 7.4.. Plánujeme uvolnit velkou 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 [1]
-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, na
-http://www.intermedia.net/support/sql/sqltut.shtm [2] , 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.
-
-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
-==================
-
-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.
-
-Pro slo¾itìj¹í pøípady se èasto pou¾ívá Perl a CGI.pm nebo mod_perl.
-
-2.3 Existuje grafické rozhraní pro PostgreSQL?
-----------------------------------------------
-
-Pro PostgreSQL existuje nìkolik grafických rozhraní: PgAccess
-(http://www.php.net), PgAdmin (http://www.php.net), RHDB Admin
-(http://sources.redhat.com/rhdb/) a Rekall (
-http://www.thekompany.com/products/rekall/). Dále existuje PHPPgAdmin
-(http://phppgadmin.sourceforge.net/) rozhraní PostgreSQL zalo¾ené na web
-technologii.
-
-Úplnìj¹í seznam najdete na
-http://techdocs.postgresql.org/guides/GUITools.
-
-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.
-
-------------------------------------------------------------------------
-
-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
-http://www.postgresql.org/docs/view.php?version=current&idoc=1&file=kern
-el-resources.html [3] 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 postmastera 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. Databáze se zpøístupní jiným stanicím nastavením
-pøepínaèe -i postmastera a povolením stanice a urèením re¾imu
-autentifikace v $PGDATA/pg_hba.conf. Tím se povolí TCP/IP spojení.
-ZASTARALÉ
-
-3.6 Jak ladit databázový stroj na lep¹í výkon?
-----------------------------------------------
-
-Urèitì pomohou indexy. Pøíkaz EXPLAIN zobrazí zpùsob interpretace Va¹eho
-dotazu a pou¾ití indexù.
-
-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 velké 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.
-
-------------------------------------------------------------------------
-
-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 ...
-
-Není nutné zpracovávat celý dotaz, kdy¾ potøebujete pouze nìkolik
-prvních øádkù. Pokud existuje index ORDER BY, PostgreSQL je schopen
-pøeru¹it zpracování dotazu po získání po¾adovaného poètu øádkù.
-
-K získání náhodného øádku pou¾ijte:
-
-SELECT col FROM tab
-  ORDER BY random() LIMIT 1;
-
-4.3 Jak získám seznam tabulek nebo jinak jak jej získá psql?
-------------------------------------------------------------
-
-Podívejte se 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á.
-
-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;
-
-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;
-
-Poté proveïte VACUUM FULL tab - uvolníte tím diskový prostor zabraný
-nyní ji¾ neplatnými øádky.
-
-4.5 Jaká je maximální velikost øá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
-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ù 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
-------------------------------------------------------
- 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)
-
-Indexy nemají tak velkou re¾ii, ale mohou být také velké, proto¾e
-obsahují indexovaná data.
-
-Hodnoty NULL jsou ulo¾eny v bitmapách, tak¾e spotøebují 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]
-
-    - vyhledávaní, které není Case sensitiv 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í).
-
-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';
-
-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));
-
-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?
----------------------------------------------------
 
+                     Èasto kladené dotazy (FAQ) PostgreSQL
+                                       
+   Poslední aktualizace: Støeda 23. èervna 21:10:00 EST 2004
+   
+   Souèasný správce: Bruce Momjian (pgman@candle.pha.pa.us)
+   
+   Pøelo¾il: Pavel Stìhule (stehule@kix.fsv.cvut.cz)
+   
+   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.
+   
+   Odpovìdi na dotazy relevantní ke konkrétním platformám lze nalézt na
+   adrese: http://www.PostgreSQL.org/docs/index.html.
+     _________________________________________________________________
+   
+                               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.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
+                                      
+   2.1) Kde naleznu ODBC ovladaèe pro PostgreSQL?
+   2.2) Jaké nástroje lze pou¾í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?
+   
+                              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
+   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
+   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è?
+     _________________________________________________________________
+   
+                               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-2005, 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.
+     _________________________________________________________________
+   
+   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
+                                      
+    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.
+   
+   Pro slo¾itìj¹í pøípady se èasto pou¾ívá Perl a CGI.pm nebo mod_perl.
+   
+    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.
+   
+   Úplnìj¹í seznam najdete na
+   http://techdocs.postgresql.org/guides/GUITools.
+   
+    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.
+     _________________________________________________________________
+   
+                           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.
+     _________________________________________________________________
+   
+                              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.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;
+
+   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;
+
+   Poté proveïte VACUUM FULL tab - uvolníte tím diskový prostor zabraný
+   nyní ji¾ neplatnými øádky.
+   
+    4.5) Jaká je maximální velikost øá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
+   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ù
+   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
+   ------------------------------------------------------
+    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)
+
+   Indexy nemají tak velkou re¾ii, ale mohou být také velké, proto¾e
+   obsahují indexovaná data.
+   
+   Hodnoty NULL jsou ulo¾eny v bitmapách, tak¾e spotøebují 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]
+     * 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í).
+       
+    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';
+
+   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));
+
+    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
@@ -858,332 +826,292 @@ TEXT        text                bez horn
 BYTEA       bytea               pole bytù (bezpeènì lze ulo¾it i znak NULL)
 "char"      char                jeden znak
 
-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 a index na sloupci (Pro vy¹¹í verze to neplatí OVÌØIT).
-Napøíklad:
-
-CREATE TABLE person (
-  id SERIAL,
-  name TEXT
-);
-
-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);
-
-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')");
-
-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')");
-
-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';
-
-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/g
-lossary.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
-
-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
+   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
+    );
+
+   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);
+
+   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')");
+
+   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')");
+
+   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';
+
+   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
+
+   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é?
--------------------------------------------------------------
-
-Aktuálnì spojujeme tabulky se sekvenèním skenováním výsledku pro ka¾dý
-øádek vnìj¹ího dotazu. Pokud vnoøený dotaz má pouze nìkolik øádkù a
-vnìj¹í dotaz vrací hodnì øádek, IN je rychlé. V jiných pøípadech
-nahraïte IN EXISTS:
-
-SELECT * FROM tab
-  WHERE col IN (SELECT subcol FROM subtab);
-
-takto
-
-SELECT * FROM tab
-  WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
-
-Pro urychlení vytvoøete index pro subcol. Tento výkonnostní problém byl
-odstranìn ve verzi 7.4.
-
-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);
-
-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;
-
-4.24 Jak provést dotaz napøíè nìkolika databázemi?
---------------------------------------------------
-
-PostgreSQL nenabízí ¾ádný zpùsob, jak se dotázat do jiné databáze ne¾ do
-aktuální. Doplnìk contrib/dblink umo¾òuje dotaz do cizí databáze
-prostøednictvím funkce. Na stranì klienta není problém si otevøít více
-simultálních pøístupù do rùzných databází a spojovat výsledek na stranì
-klienta.
-
-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í. Ty povolují
-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è sslv 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.
-
-
-[1] http://developer.postgresql.org/todo.php
-[2] http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM
-[3] http://postgresql.ok.cz/PostgreSQL%20Administrator%27sGuide
-
+    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);
+
+   na:
+   SELECT *
+   FROM tab
+   WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
+
+   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);
+
+   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;
+
+    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.
index c8ff95967cd0928a44cfd5d10b8f78be419982ae..b7cbb20575005f7d9d0e22a174ab2bad319d764d 100644 (file)
-PostgreSQL FAQسوالاتي كه اغلب در مورد PostgreSQL‌ پرسيده مي شوند
-تاريخ آخرين اصلاح اين فايل: 28 شهریور 1383 هجری شمسی
-نگهدارنده اصلي فايل (زبان انگليسي)در حال حاضر : Bruce Momjian 
-pgman@candle.pha.pa.us
-نگهدارنده فايل به زبان فارسي: m.taghizadeh@imenafzar.net  محمود تقي‌زاده مهرجردی
 
-آخرين نسخه اين فايل را مي‌توانيد از اين آدرس بگيريد  
-http://www.PostgreSQL.org/docs/faqs/FAQ.html
-سوالاتي كه در مورد يك سکوی(پلتفرم) خاص است در اين آدرس جواب داده شده اند  
-http://www.PostgreSQL.org/docs/index.html
-
-
-
-سوالات عمومي
-1.1) PostgreSQL چيست و چگونه بايد آن را تلفظ كرد؟
-1.2) قانون كپي رايت‌ (حقوق معنوي) در مورد PostgreSQL  به چه صورت است؟
-1.3) PostgreSQL‌ روي چه نوع يونيكسهايي اجرا مي‌شود؟
-1.4) روي چه محيطهاي غير يونيكسي مي‌توان آن را اجرا كرد؟
-1.5) PostgreSQL را از كجا مي‌توانم بگيرم؟
-1.6) از كجا خدمات پشتيباني بگيرم؟
-1.7) آخرين نسخه اعلام شده چيست؟
-1.8) چه مستندات و راهنمائيهايي وجود دارند؟
-1.9) چگونه مي‌توانم ازاشكالات شناخته شده و يا امكاناتي كه در اين پايگاه داده 
-وجود ندارد  مطلع شوم؟
-1.10) چگونه مي‌توانم زبان SQL را ياد بگيرم؟
-1.11) آيا PostgreSQL مشكل Y2K‌ دارد يا خير؟
-1.12) چگونه مي‌توانم به تيم برنامه نويس PostgreSQL ملحق شوم؟
-1.13) چگونه مي‌توانم يك اشكال را به گروه برنامه نويس اعلام كنم؟
-1.14)  وضعيت PostgreSQL‌ در مقايسه با ساير DBMSها به چه صورت است؟
-1.15) من چگونه مي‌توانم از نظر مالي به PostgreSQL كمك كنم؟
-
-سوالات مربوط به استفاده از پايگاه داده
-2.1) آيا هيچ درايور ODBC‌ براي PostgreSQL وجود دارد؟
-2.2) چه ابزارهايي براي استفاده از PostgreSQL‌ با صفحات وب وجود دارد؟
-2.3) آيا PostgreSQL‌ يك واسط كاربري گرافيكي دارد؟
-2.4) با چه زبانهاي برنامه‌نويسي مي‌توان با PostgreSQL‌ ارتباط برقرار كرد؟
-
-سوالات مربوط به راهبري
-3.1) چگونه مي‌توانم PostgreSQL‌ را در شاخه‌اي غير از /usr/local/pgsql/  نصب كنم؟
-3.2) چرا موقعي كه من برنامه postmaster‌ را اجرا مي كنم پيام Bad system call‌ و 
-يا core dump ‌مي‌گيرم؟
-3.3) چرا موقعي كه من سعي مي‌كنم برنامه postmaster‌ را اجرا كنم خطاي 
-IpcMemoryCreate  مي‌گيرم؟
-3.4) چرا موقعي كه من سعي مي‌كنم برنامه postmaster‌ را اجرا كنم خطاي  
-IpcSemaphoreCreate مي‌گيرم؟
-3.5) چگونه مي‌توانم اتصالات ساير ماشينها را كنترل كنم؟
-3.6) براي كارايي بالاتر و بهتر پايگاه داده من چه تنظيماتي را بايد انجام دهم؟
-3.7) چه امكاناتي براي پيدا كردن اشكال‌ وجود دارد؟
-3.8) چرا موقعي كه من مي‌خواهم به پايگاه داده وصل شوم پيام "Sorry, too many 
-clients" ‌مي‌گيرم؟
-3.9) در شاخه  pgsql_tmp  چه چيزي قرار دارد؟
-3.10) چرا براي به روز كردن نسخه پايگاه داده من بايد كل داده ها را dump‌ و مجدداً 
-restore كنم؟
-3.11) از چه سخت افزاري بايد استفاده كنم؟
-
-سوالات عملياتي
-4.1) تفاوت بين binary cursors و Normal cursors چيست؟
-4.2) من چگونه مي‌توانم فقط روي چند رديف اول يا يك رديف تصادفي درخواست SELECT‌ 
-بزنم؟
-4.3) من چگونه مي‌توانم ليستي از جداول يا ساير چيزهايي كه در psql‌ وجود دارد را 
-ببينم؟
-4.4) چگونه يك ستون جدول را حذف مي‌كنيد؟ چگونه نوع داده آن را عوض كنيم؟
-4.5) حداكثر اندازه يك رديف،‌ جدول و خود پايگاه داده چقدر است؟
-4.6) چقدر فضاي ديسك سخت براي ذخيره كردن داده‌‌هاي يك فايل متني مورد نياز است؟
-4.7) چگونه مي‌توانم بفهمم كه چه كاربران،‌ پايگاه داده،‌ نمايه و جداولي در سيستم 
-تعريف شده است؟
-4.8) چرا درخواستهاي من كند اجرا مي‌شوند يا چرا از نمايه ها استفاده نمي‌كنند؟
-4.9) چگونه مي‌توانم نحوه بررسي درخواست را توسط بهينه‌ساز درخواستها مشاهده كنم؟
-4.10) نمايه R-tree‌ چيست؟
-4.11) بهينه ساز تكويني درخواست چيست؟ (Genetic Query Optimizer)
-4.12) چگونه از عبارات منظم براي جستجو استفاده كنم؟ چگونه جستجويي انجام دهم كه 
-حساس به متن نباشد؟ چگونه براي يك جستجوي غير حساس به متن از نمايه استفاده كنم؟
-4.13) چگونه مي‌توانم در يك درخواست تشخيص دهم كه يك فيلد NULL‌ است؟
-4.14) تفاوت بين گونه‌هاي مختلف character چيست؟
-4.15.1) چگونه مي‌توانم يك فيلد سريال يا افزايشي ايجاد كنم؟
-4.15.2) چگونه مي‌توانم مقدار يك درج سريالي را بدانم؟
-4.15.3) آیا توابع ()nextval و ()currval منجر به ایجاد شرایط race برای سایر 
-کاربران می شوند؟
-4.15.4) چرا اعداد سریالی مربوط به تراکنشهای abort شده مجدداً استفاده نمی شود؟ 
-چرا بین اعداد سریالی یک فاصله خالی ایجاد می شود؟
-4.16) OID و TID چه هستند؟
-4.17) معني بعضي از ترمها و كلماتي كه در PostgreSQL‌ استفاده مي‌شود چيست؟
-4.18) چرا من خطاي "ERROR: Memory exhausted in AllocSetAlloc" مي‌گيرم؟
-4.19) از كجا تشخيص دهم كه ويرايش يا نسخه PostgreSQLيي كه من استفاده مي‌كنم چيست؟
-4.20) چرا در حین اجرای عملیات روی large-objectها خطای "invalid large obj 
-descriptor"به وجود می آید؟
-4.21) چگونه يك ستون ايجاد كنم كه مقدار زمان جاري را به عنوان مقدار پيش‌فرض داشته 
-باشد؟
-4.22) چرا زير درخواستهايي كه از IN استفاده مي‌كنند كند هستند؟
-4.23) چگونه مي‌توانم يك الحاق خارجي (outer join) انجام دهم؟
-4.24) چگونه مي‌توان درخواستهايي از چند پايگاه داده توليد كرد؟
-4.25) چگونه خروجي يك تابع مي‌تواند  چند رديف يا ستون باشد؟
-4.26)  در توابع PL/PgSQL چرا نمي‌توان با اطمينان جداول موقت را ايجاد يا حذف كرد؟
-4.27) چه گزينه‌هايي براي تكرار (replication) وجود دارد؟
-4.28) چه گزينه‌هايي براي رمزنگاري وجود دارد؟
-
-توسعه PostgreSQL
-5.1) من يك تابع نوشته‌ام. چگونه آن را در psql اجرا كنم؟ چرا با اجراي آن core 
-dump مي‌گيرم؟
-5.2) چگونه مي‌توانم در توليد نوع‌ها و توابع جديد و جالب براي PostgreSQL‌ همكاري 
-و مشاركت داشته باشم.
-5.3) چگونه مي‌توانم يك تابع به زبان C بنويسم كه خروجي آن يك ‌tuple  (چند تايي) 
-باشد؟
-5.4) من يك فايل منبع را عوض كرده ام چرا در عمليات كامپيل مجدد آن تغيير ديده 
-نمي‌شود؟
-
-
-
-
-سوالات عمومي
-1.1) PostgreSQL چيست و چگونه آن را بايد تلفظ كرد؟
-PostgreSQL به صورت Post-Gres-Q-L‌ تلفظ مي‌شود. يك فايل صوتي در آدرس 
-http://www.postfresql.org/postgresql.mp3‌ براي كساني كه مايلند تلفظ صحيح را 
-بشنوند وجود دارد.
-PostgreSQL از روي سيستم مديريت پايگاه داده POSTGRES توسعه داده شده است (هنوز هم 
-بعضي مواقع براي سادگي به آن Postgres گفته مي‌شود) كه يك نمونه تحقيقاتي از پايگاه 
-داده‌هاي نسل بعد است. PostgreSQL همان الگوي داده قوي و انواع داده  را حفظ كرده 
-است ولي زبان PostQuel را با يك زيرمجموعه پيشرفته از SQL جايگزين كرده است. 
-PostgreSQL متن باز بوده و متن كامل آن در دسترس است.
-PostgreSQL  توسط يك تيم برنامه‌نويس كه همگي در گروه پست الكترونيك برنامه‌نويسان 
-PostgreSQL  عضو هستند، انجام مي‌شود. هماهنگ كننده اصلي در حال حاضر Marc G. 
-Fournier‌ به آدرس scrappy@PostgreSQL.org  مي‌باشد. (براي ديدن نحوه ملحق شدن به 
-اين تيم قسمت 1.6 را ببينيد). اين تيم در حاضر مسئوليت تمام مسائل مربوط به 
-برنامه‌نويسي PostgreSQL را بر عهده دارد. اين يك پروژه گروهي است و تحت كنترل هيچ 
-شركتي نيست. براي اطلاعات بيشتر در مورد اين تيم به آدرس 
-http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html مراجعه كنيد.
-اولين نسخه PostgreSQL‌ توسط Andrew Yu and Jolly Chen به وجود آمد. افراد بسياري 
-در توسعه و رفع اشكال و انتقال آن شركت كرده‌اند. متن اصلي Postgres كه PostgreSQL 
-از روي آن نوشته شده است، توسط تعداد زيادي دانشجوي كارشناسي ارشدو دانشجوي 
-كارشناسي و تيم برنامه‌نويسي كه تحت نظر پروفسور Michael Stonebrake در دانشگاه 
-بركلي،‌كاليفرنيا كار مي‌كرده‌اند نوشته شده است.
-نام اصلي نرم افزار در دانشگاه بركلي Postgres‌ بود. در سال 1995 بعد از اضافه شدن 
-SQL نام آن به Postgres95 تغيير داده شد. در سال 1996 نام آن به PostgreSQL تغيير 
-داده شد.
-1.2) قوانين كپي رايت در مورد PostgreSQL به چه صورت است؟
-PostgreSQL تحت قانون كپي رايت زير قرار دارد:
-PostgreSQL Data Base Management System
-Portions copyright (c) 1996-2004, PostgreSQL Global Development Group Portions 
-Copyright (c) 1994-6 Regents of the University of California
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose, without fee, and without a written agreement is 
-hereby granted, provided that the above copyright notice and this paragraph and 
-the following two paragraphs appear in all copies.
-IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR 
-DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST 
-PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF 
-THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, 
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 
-PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND 
-THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, 
-UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
-قانون بالا ليسانس BSD كه يك ليسانس كلاسيك براي متن‌هاي باز است مي‌باشد. هيچ 
-محدوديتي در مورد نحوه استفاده از متن در آن ديده نمي‌شود. ما آن را دوست داريم و 
-هيچ قصدي براي تغيير آن نداريم.
-1.3) PostgreSQL‌ روي چه نوع يونيكسهايي اجرا مي‌شود؟
-در حالت كلي PostgreSQL روي هر پلتفرم (سكوي) سازگار با يونيكس اجرا مي‌شود. ليست 
-پلتفرمهايي كه تاكنون PostgreSQL‌ روي آنها نصب و تست شده است درقسمت دستورالعملهاي 
-نصب آمده است.
-1.4) روي چه محيطهاي غير يونيكسي مي‌توان آن را اجرا كرد؟
-Client
-مي‌توان psql, كتابخانه libpq و ساير واسطها و برنامه‌هاي كاربردي را طوري كامپيل 
-كرد كه روي محيطهاي ويندوز نيز اجرا شوند. در اين حالت Client روي ويندوز اجرا 
-مي‌شود و از طربق شبكه و پروتكل TCP/IP با يك سرور كه روي يك پلتفرم لينوكس در حال 
-اجراست ارتباط برقرار مي‌كند.يك فايل win32.mak همراه با كدهاي PostgreSQL وجود 
-دارد كه براي كامپيل كردن كتابخانه libpq و برنامه psql مي‌باشد. P‌ostgreSQL‌ 
-همچنين امكان ارتباط به صورت ODBC‌  را نيز دارد.
-Server
-با استفاده از Cygwin‌ و كتابخانه Cygnus مي‌توان پايگاه داده را روي ويندوز NT و 
-يا Win2K اجرا كرد.براي ديدن اطلاعات بيشتر فايل pgsql/doc/FAQ_MSWIN ‌را كه بهمراه 
-توزبع‌هاي PostgreSQL آمده است ببينيد و يا اينكه به اين صفحه 
-http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN مراجعه كنيد.
-در حال حاضر يك عمليات انتقال PostgreSQL به روي سكوهاي Win NT/2000/XP در جريان 
-است. براي ديدن وضعيت اين پروژه به سايت‌هاي 
-http://momjian.postgresql.org/main/writings/pgsql/win32.htm و 
-http://techdocs.postgresql.org/guides/Windows مراجعه كنيد. 
-همچنين يك عمليات انتقال بر روي Novell Netware 6 نيز در حال انجام است كه در سايت 
-http://forge.novell.com مي‌توانيد اطلاعات بيشتر را ببينيد.
-1.5) PostgreSQL را از كجا مي‌توانم بگيرم؟
-PostgreSQL‌ را از سايت اصلي آن  ftp://ftp.PostgreSQL.org/pub مي‌توانيد بگيريد. 
-در صفحه اصلي سايت ليست ساير آدرسهايي كه مي‌توانيد PostgreSQL‌ را از آنها بگيريد 
-آمده است.
-1.6) از كجا خدمات پشتيباني بگيرم؟
-گروه پستي اصلي pgsql-general@PostgreSQL.org مي‌باشد. اين گروه براي بحث در مورد 
-موضوعات مختلف در زمينه PostgreSQL است. براي عضو شدن در اين گروه پستي يك نامه 
-الكترونيكي به آدرس گروه با محتوياتی كه در ادامه آمده است ارسال كنيد. در قسمت 
-Subject چيزي ننويسيد.
+s+w+a+l+a+t+y+ k+h+ a+i+l+b+ d+r+ m+w+r+d+ PostgreSQL p+r+s+y+d+h+ m+y+ snw+n+d                                      +
+                                       
+   t+a+r+y+x+ aMx+r+y+n+ a+c+l+a+hk a+y+n+ f+a+y+l+: 28 snh+r+&#1740;w+r+
+   1383 h+g+r+&#1740; snm+s+&#1740;
+   
+   n+gfh+d+a+r+n+d+h+ a+c+l+y+ f+a+y+l+ (z+b+a+n+ a+n+gfl+y+s+y+)d+r+
+   hka+l+ hka+ddr+ : Bruce Momjian pgman@candle.pha.pa.us
+   
+   n+gfh+d+a+r+n+d+h+ f+a+y+l+ b+h+ z+b+a+n+ f+a+r+s+y+:
+   m.taghizadeh@imenafzar.net  m+hkm+w+d+ t+q+y+z+a+d+h+
+   m+h+r+g+r+d+&#1740;
+   
+   aMx+r+y+n+ n+s+x+h+ a+y+n+ f+a+y+l+ r+a+ m+y+t+w+a+n+y+d+ a+z+ a+y+n+
+   aMd+r+s+ b+gfy+r+y+d+  http://www.PostgreSQL.org/docs/faqs/FAQ.html
+   
+   s+w+a+l+a+t+y+ k+h+ d+r+ m+w+r+d+ y+k+
+   s+&#1705;w+&#1740;(p+l+t+f+r+m+) x+a+c+ a+s+t+ d+r+ a+y+n+ aMd+r+s+
+   g+w+a+b+ d+a+d+h+ snd+h+ a+n+d+
+   http://www.PostgreSQL.org/docs/index.html
+     _________________________________________________________________
+   
+                          s+w+a+l+a+t+ e+m+w+m+y+
+                                      
+   1.1) PostgreSQL tcy+s+t+ w+ tcgfw+n+h+ b+a+y+d+ aMn+ r+a+ t+l+f+zH
+   k+r+d+?+
+   1.2) q+a+n+w+n+ k+p+y+ r+a+y+t+ (hkq+w+q+ m+e+n+w+y+) d+r+ m+w+r+d+
+   PostgreSQL  b+h+ tch+ c+w+r+t+ a+s+t+?+
+   1.3) PostgreSQL r+w+y+ tch+ n+w+e+ y+w+n+y+k+s+h+a+y+y+ a+g+r+a+ m+y+
+   snw+d+?+
+   1.4) r+w+y+ tch+ m+hky+tjh+a+y+ i+y+r+ y+w+n+y+k+s+y+ m+y+t+w+a+n+
+   aMn+ r+a+ a+g+r+a+ k+r+d+?+
+   1.5) PostgreSQL r+a+ a+z+ k+g+a+ m+y+t+w+a+n+m+ b+gfy+r+m+?+
+   1.6) a+z+ k+g+a+ x+d+m+a+t+ p+snt+y+b+a+n+y+ b+gfy+r+m+?+
+   1.7) aMx+r+y+n+ n+s+x+h+ a+e+l+a+m+ snd+h+ tcy+s+t+?+
+   1.8) tch+ m+s+t+n+d+a+t+ w+ r+a+h+n+m+a+yHy+h+a+y+y+ w+g+w+d+
+   d+a+r+n+d+?+
+   1.9) tcgfw+n+h+ m+y+t+w+a+n+m+ a+z+a+snk+a+l+a+t+ snn+a+x+t+h+ snd+h+
+   w+ y+a+ a+m+k+a+n+a+t+y+ k+h+ d+r+ a+y+n+ p+a+y+gfa+h+ d+a+d+h+
+   w+g+w+d+ n+d+a+r+d+  m+tjl+e+ snw+m+?+
+   1.10) tcgfw+n+h+ m+y+t+w+a+n+m+ z+b+a+n+ SQL r+a+ y+a+d+ b+gfy+r+m+?+
+   1.11) aMy+a+ PostgreSQL m+snk+l+ Y2K d+a+r+d+ y+a+ x+y+r+?+
+   1.12) tcgfw+n+h+ m+y+t+w+a+n+m+ b+h+ t+y+m+ b+r+n+a+m+h+ n+w+y+s+
+   PostgreSQL m+l+hkq+ snw+m+?+
+   1.13) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ a+snk+a+l+ r+a+ b+h+ gfr+w+h+
+   b+r+n+a+m+h+ n+w+y+s+ a+e+l+a+m+ k+n+m+?+
+   1.14)  w+dde+y+t+ PostgreSQL d+r+ m+q+a+y+s+h+ b+a+ s+a+y+r+ DBMSh+a+
+   b+h+ tch+ c+w+r+t+ a+s+t+?+
+   1.15) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ a+z+ n+zHr+ m+a+l+y+ b+h+
+   PostgreSQL k+m+k+ k+n+m+?+
+   
+   s+w+a+l+a+t+ m+r+b+w+tj b+h+ a+s+t+f+a+d+h+ a+z+ p+a+y+gfa+h+ d+a+d+h+
+                                      
+   2.1) aMy+a+ h+y+tc d+r+a+y+w+r+ ODBC b+r+a+y+ PostgreSQL w+g+w+d+
+   d+a+r+d+?+
+   2.2) tch+ a+b+z+a+r+h+a+y+y+ b+r+a+y+ a+s+t+f+a+d+h+ a+z+ PostgreSQL
+   b+a+ c+f+hka+t+ w+b+ w+g+w+d+ d+a+r+d+?+
+   2.3) aMy+a+ PostgreSQL y+k+ w+a+s+tj k+a+r+b+r+y+ gfr+a+f+y+k+y+
+   d+a+r+d+?+
+   2.4) b+a+ tch+ z+b+a+n+h+a+y+ b+r+n+a+m+h+n+w+y+s+y+ m+y+t+w+a+n+ b+a+
+   PostgreSQL a+r+t+b+a+tj b+r+q+r+a+r+ k+r+d+?+
+   
+                 s+w+a+l+a+t+ m+r+b+w+tj b+h+ r+a+h+b+r+y+
+                                      
+   3.1) tcgfw+n+h+ m+y+t+w+a+n+m+ PostgreSQL r+a+ d+r+ sna+x+h+a+y+
+   i+y+r+ a+z+ /usr/local/pgsql/  n+c+b+ k+n+m+?+
+   3.2) tcr+a+ m+w+q+e+y+ k+h+ m+n+ b+r+n+a+m+h+ postmaster r+a+ a+g+r+a+
+   m+y+ k+n+m+ p+y+a+m+ Bad system call w+ y+a+ core dump m+y+gfy+r+m+?+
+   3.3) tcr+a+ m+w+q+e+y+ k+h+ m+n+ s+e+y+ m+y+k+n+m+ b+r+n+a+m+h+
+   postmaster r+a+ a+g+r+a+ k+n+m+ x+tja+y+ IpcMemoryCreate  m+y+
+   gfy+r+m+?+
+   3.4) tcr+a+ m+w+q+e+y+ k+h+ m+n+ s+e+y+ m+y+k+n+m+ b+r+n+a+m+h+
+   postmaster r+a+ a+g+r+a+ k+n+m+ x+tja+y+  IpcSemaphoreCreate m+y+
+   gfy+r+m+?+
+   3.5) tcgfw+n+h+ m+y+t+w+a+n+m+ a+t+c+a+l+a+t+ s+a+y+r+ m+a+sny+n+h+a+
+   r+a+ k+n+t+r+l+ k+n+m+?+
+   3.6) b+r+a+y+ k+a+r+a+y+y+ b+a+l+a+t+r+ w+ b+h+t+r+ p+a+y+gfa+h+
+   d+a+d+h+ m+n+ tch+ t+n+zHy+m+a+t+y+ r+a+ b+a+y+d+ a+n+g+a+m+ d+h+m+?+
+   3.7) tch+ a+m+k+a+n+a+t+y+ b+r+a+y+ p+y+d+a+ k+r+d+n+ a+snk+a+l+
+   w+g+w+d+ d+a+r+d+?+
+   3.8) tcr+a+ m+w+q+e+y+ k+h+ m+n+ m+y+x+w+a+h+m+ b+h+ p+a+y+gfa+h+
+   d+a+d+h+ w+c+l+ snw+m+ p+y+a+m+ "Sorry, too many clients" m+y+
+   gfy+r+m+?+
+   3.9) d+r+ sna+x+h+  pgsql_tmp  tch+ tcy+z+y+ q+r+a+r+ d+a+r+d+?+
+   3.10) tcr+a+ b+r+a+y+ b+h+ r+w+z+ k+r+d+n+ n+s+x+h+ p+a+y+gfa+h+
+   d+a+d+h+ m+n+ b+a+y+d+ k+l+ d+a+d+h+ h+a+ r+a+ dump w+ m+g+d+d+a+:+
+   restore k+n+m+?+
+   3.11) a+z+ tch+ s+x+t+ a+f+z+a+r+y+ b+a+y+d+ a+s+t+f+a+d+h+ k+n+m+?+
+   
+                        s+w+a+l+a+t+ e+m+l+y+a+t+y+
+                                      
+   4.1) t+f+a+w+t+ b+y+n+ binary cursors w+ Normal cursors tcy+s+t+?+
+   4.2) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ f+q+tj r+w+y+ tcn+d+ r+d+y+f+
+   a+w+l+ y+a+ y+k+ r+d+y+f+ t+c+a+d+f+y+ d+r+x+w+a+s+t+ SELECT
+   b+z+n+m+?+
+   4.3) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ l+y+s+t+y+ a+z+ g+d+a+w+l+ y+a+
+   s+a+y+r+ tcy+z+h+a+y+y+ k+h+ d+r+ psql w+g+w+d+ d+a+r+d+ r+a+
+   b+b+y+n+m+?+
+   4.4) tcgfw+n+h+ y+k+ s+t+w+n+ g+d+w+l+ r+a+ hkdkf+ m+y+k+n+y+d+?+
+   tcgfw+n+h+ n+w+e+ d+a+d+h+ aMn+ r+a+ e+w+dd k+n+y+m+?+
+   4.5) hkd+a+k+tkr+ a+n+d+a+z+h+ y+k+ r+d+y+f+,+ g+d+w+l+ w+ x+w+d+
+   p+a+y+gfa+h+ d+a+d+h+ tcq+d+r+ a+s+t+?+
+   4.6) tcq+d+r+ f+dda+y+ d+y+s+k+ s+x+t+ b+r+a+y+ dkx+y+r+h+ k+r+d+n+
+   d+a+d+h+h+a+y+ y+k+ f+a+y+l+ m+t+n+y+ m+w+r+d+ n+y+a+z+ a+s+t+?+
+   4.7) tcgfw+n+h+ m+y+t+w+a+n+m+ b+f+h+m+m+ k+h+ tch+ k+a+r+b+r+a+n+,+
+   p+a+y+gfa+h+ d+a+d+h+,+ n+m+a+y+h+ w+ g+d+a+w+l+y+ d+r+ s+y+s+t+m+
+   t+e+r+y+f+ snd+h+ a+s+t+?+
+   4.8) tcr+a+ d+r+x+w+a+s+t+h+a+y+ m+n+ k+n+d+ a+g+r+a+ m+y+snw+n+d+
+   y+a+ tcr+a+ a+z+ n+m+a+y+h+ h+a+ a+s+t+f+a+d+h+ n+m+y+k+n+n+d+?+
+   4.9) tcgfw+n+h+ m+y+t+w+a+n+m+ n+hkw+h+ b+r+r+s+y+ d+r+x+w+a+s+t+ r+a+
+   t+w+s+tj b+h+y+n+h+s+a+z+ d+r+x+w+a+s+t+h+a+ m+sna+h+d+h+ k+n+m+?+
+   4.10) n+m+a+y+h+ R-tree tcy+s+t+?+
+   4.11) b+h+y+n+h+ s+a+z+ t+k+w+y+n+y+ d+r+x+w+a+s+t+ tcy+s+t+?+
+   (Genetic Query Optimizer)
+   4.12) tcgfw+n+h+ a+z+ e+b+a+r+a+t+ m+n+zHm+ b+r+a+y+ g+s+t+g+w+
+   a+s+t+f+a+d+h+ k+n+m+?+ tcgfw+n+h+ g+s+t+g+w+y+y+ a+n+g+a+m+ d+h+m+
+   k+h+ hks+a+s+ b+h+ m+t+n+ n+b+a+snd+?+ tcgfw+n+h+ b+r+a+y+ y+k+
+   g+s+t+g+w+y+ i+y+r+ hks+a+s+ b+h+ m+t+n+ a+z+ n+m+a+y+h+
+   a+s+t+f+a+d+h+ k+n+m+?+
+   4.13) tcgfw+n+h+ m+y+t+w+a+n+m+ d+r+ y+k+ d+r+x+w+a+s+t+ t+snx+y+c+
+   d+h+m+ k+h+ y+k+ f+y+l+d+ NULL a+s+t+?+
+   4.14) t+f+a+w+t+ b+y+n+ gfw+n+h+h+a+y+ m+x+t+l+f+ character tcy+s+t+?+
+   4.15.1) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ f+y+l+d+ s+r+y+a+l+ y+a+
+   a+f+z+a+y+sny+ a+y+g+a+d+ k+n+m+?+
+   4.15.2) tcgfw+n+h+ m+y+t+w+a+n+m+ m+q+d+a+r+ y+k+ d+r+g+ s+r+y+a+l+y+
+   r+a+ b+d+a+n+m+?+
+   4.15.3) aM&#1740;a+ t+w+a+b+e+ ()nextval w+ ()currval m+n+g+r+ b+h+
+   a+&#1740;g+a+d+ snr+a+&#1740;tj race b+r+a+&#1740; s+a+&#1740;r+
+   &#1705;a+r+b+r+a+n+ m+&#1740; snw+n+d+?+
+   4.15.4) tcr+a+ a+e+d+a+d+ s+r+&#1740;a+l+&#1740; m+r+b+w+tj b+h+
+   t+r+a+&#1705;n+snh+a+&#1740; abort snd+h+ m+g+d+d+a+:+ a+s+t+f+a+d+h+
+   n+m+&#1740; snw+d+?+ tcr+a+ b+&#1740;n+ a+e+d+a+d+
+   s+r+&#1740;a+l+&#1740; &#1740;&#1705; f+a+c+l+h+ x+a+l+&#1740;
+   a+&#1740;g+a+d+ m+&#1740; snw+d+?+
+   4.16) OID w+ TID tch+ h+s+t+n+d+?+
+   4.17) m+e+n+y+ b+e+ddy+ a+z+ t+r+m+h+a+ w+ k+l+m+a+t+y+ k+h+ d+r+
+   PostgreSQL a+s+t+f+a+d+h+ m+y+snw+d+ tcy+s+t+?+
+   4.18) tcr+a+ m+n+ x+tja+y+ "ERROR: Memory exhausted in AllocSetAlloc"
+   m+y+gfy+r+m+?+
+   4.19) a+z+ k+g+a+ t+snx+y+c+ d+h+m+ k+h+ w+y+r+a+y+sn y+a+ n+s+x+h+
+   PostgreSQLy+y+ k+h+ m+n+ a+s+t+f+a+d+h+ m+y+k+n+m+ tcy+s+t+?+
+   4.20) tcr+a+ d+r+ hk&#1740;n+ a+g+r+a+&#1740; e+m+l+&#1740;a+t+
+   r+w+&#1740; large-objecth+a+ x+tja+&#1740; "invalid large obj
+   descriptor"b+h+ w+g+w+d+ m+&#1740; aM&#1740;d+?+
+   4.21) tcgfw+n+h+ y+k+ s+t+w+n+ a+y+g+a+d+ k+n+m+ k+h+ m+q+d+a+r+
+   z+m+a+n+ g+a+r+y+ r+a+ b+h+ e+n+w+a+n+ m+q+d+a+r+ p+y+snf+r+dd
+   d+a+snt+h+ b+a+snd+?+
+   4.22) tcr+a+ z+y+r+ d+r+x+w+a+s+t+h+a+y+y+ k+h+ a+z+ IN a+s+t+f+a+d+h+
+   m+y+k+n+n+d+ k+n+d+ h+s+t+n+d+?+
+   4.23) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ a+l+hka+q+ x+a+r+g+y+ (outer
+   join) a+n+g+a+m+ d+h+m+?+
+   4.24) tcgfw+n+h+ m+y+t+w+a+n+ d+r+x+w+a+s+t+h+a+y+y+ a+z+ tcn+d+
+   p+a+y+gfa+h+ d+a+d+h+ t+w+l+y+d+ k+r+d+?+
+   4.25) tcgfw+n+h+ x+r+w+g+y+ y+k+ t+a+b+e+ m+y+t+w+a+n+d+  tcn+d+
+   r+d+y+f+ y+a+ s+t+w+n+ b+a+snd+?+
+   4.26)  d+r+ t+w+a+b+e+ PL/PgSQL tcr+a+ n+m+y+t+w+a+n+ b+a+
+   a+tjm+y+n+a+n+ g+d+a+w+l+ m+w+q+t+ r+a+ a+y+g+a+d+ y+a+ hkdkf+
+   k+r+d+?+
+   4.27) tch+ gfz+y+n+h+h+a+y+y+ b+r+a+y+ t+k+r+a+r+ (replication)
+   w+g+w+d+ d+a+r+d+?+
+   4.28) tch+ gfz+y+n+h+h+a+y+y+ b+r+a+y+ r+m+z+n+gfa+r+y+ w+g+w+d+
+   d+a+r+d+?+
+   
+                           t+w+s+e+h+ PostgreSQL
+                                      
+   5.1) m+n+ y+k+ t+a+b+e+ n+w+snt+h+a+m+. tcgfw+n+h+ aMn+ r+a+ d+r+ psql
+   a+g+r+a+ k+n+m+?+ tcr+a+ b+a+ a+g+r+a+y+ aMn+ core dump m+y+gfy+r+m+?+
+   5.2) tcgfw+n+h+ m+y+t+w+a+n+m+ d+r+ t+w+l+y+d+ n+w+e+h+a+ w+
+   t+w+a+b+e+ g+d+y+d+ w+ g+a+l+b+ b+r+a+y+ PostgreSQL h+m+k+a+r+y+ w+
+   m+sna+r+k+t+ d+a+snt+h+ b+a+snm+.
+   5.3) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ t+a+b+e+ b+h+ z+b+a+n+ C
+   b+n+w+y+s+m+ k+h+ x+r+w+g+y+ aMn+ y+k+ tuple  (tcn+d+ t+a+y+y+)
+   b+a+snd+?+
+   5.4) m+n+ y+k+ f+a+y+l+ m+n+b+e+ r+a+ e+w+dd k+r+d+h+ a+m+ tcr+a+ d+r+
+   e+m+l+y+a+t+ k+a+m+p+y+l+ m+g+d+d+ aMn+ t+i+y+y+r+ d+y+d+h+ n+m+y+
+   snw+d+?+
+     _________________________________________________________________
+   
+                          s+w+a+l+a+t+ e+m+w+m+y+
+                                      
+    1.1) PostgreSQL tcy+s+t+ w+ tcgfw+n+h+ aMn+ r+a+ b+a+y+d+ t+l+f+zH k+r+d+?+
+    
+   PostgreSQL b+h+ c+w+r+t+ Post-Gres-Q-L t+l+f+zH m+y+snw+d+. y+k+
+   f+a+y+l+ c+w+t+y+ d+r+ aMd+r+s+
+   http://www.postfresql.org/postgresql.mp3 b+r+a+y+ k+s+a+n+y+ k+h+
+   m+a+y+l+n+d+ t+l+f+zH c+hky+hk r+a+ b+snn+w+n+d+ w+g+w+d+ d+a+r+d+.
+   
+   PostgreSQL a+z+ r+w+y+ s+y+s+t+m+ m+d+y+r+y+t+ p+a+y+gfa+h+ d+a+d+h+
+   POSTGRES t+w+s+e+h+ d+a+d+h+ snd+h+ a+s+t+ (h+n+w+z+ h+m+ b+e+ddy+
+   m+w+a+q+e+ b+r+a+y+ s+a+d+gfy+ b+h+ aMn+ Postgres gff+t+h+ m+y+snw+d+)
+   k+h+ y+k+ n+m+w+n+h+ t+hkq+y+q+a+t+y+ a+z+ p+a+y+gfa+h+ d+a+d+h+h+a+y+
+   n+s+l+ b+e+d+ a+s+t+. PostgreSQL h+m+a+n+ a+l+gfw+y+ d+a+d+h+ q+w+y+
+   w+ a+n+w+a+e+ d+a+d+h+  r+a+ hkf+zH k+r+d+h+ a+s+t+ w+l+y+ z+b+a+n+
+   PostQuel r+a+ b+a+ y+k+ z+y+r+m+g+m+w+e+h+ p+y+snr+f+t+h+ a+z+ SQL
+   g+a+y+gfz+y+n+ k+r+d+h+ a+s+t+. PostgreSQL m+t+n+ b+a+z+ b+w+d+h+ w+
+   m+t+n+ k+a+m+l+ aMn+ d+r+ d+s+t+r+s+ a+s+t+.
+   
+   PostgreSQL  t+w+s+tj y+k+ t+y+m+ b+r+n+a+m+h+n+w+y+s+ k+h+ h+m+gfy+
+   d+r+ gfr+w+h+ p+s+t+ a+l+k+t+r+w+n+y+k+ b+r+n+a+m+h+n+w+y+s+a+n+
+   PostgreSQL  e+ddw+ h+s+t+n+d+,+ a+n+g+a+m+ m+y+snw+d+. h+m+a+h+n+gf
+   k+n+n+d+h+ a+c+l+y+ d+r+ hka+l+ hka+ddr+ Marc G. Fournier b+h+
+   aMd+r+s+ scrappy@PostgreSQL.org  m+y+b+a+snd+. (b+r+a+y+ d+y+d+n+
+   n+hkw+h+ m+l+hkq+ snd+n+ b+h+ a+y+n+ t+y+m+ q+s+m+t+ 1.6 r+a+
+   b+b+y+n+y+d+). a+y+n+ t+y+m+ d+r+ hka+ddr+ m+s+yHw+l+y+t+ t+m+a+m+
+   m+s+a+yHl+ m+r+b+w+tj b+h+ b+r+n+a+m+h+n+w+y+s+y+ PostgreSQL r+a+ b+r+
+   e+h+d+h+ d+a+r+d+. a+y+n+ y+k+ p+r+w+zjh+ gfr+w+h+y+ a+s+t+ w+ t+hkt+
+   k+n+t+r+l+ h+y+tc snr+k+t+y+ n+y+s+t+. b+r+a+y+ a+tjl+a+e+a+t+
+   b+y+snt+r+ d+r+ m+w+r+d+ a+y+n+ t+y+m+ b+h+ aMd+r+s+
+   http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html m+r+a+g+e+h+
+   k+n+y+d+.
+   
+   a+w+l+y+n+ n+s+x+h+ PostgreSQL t+w+s+tj Andrew Yu and Jolly Chen b+h+
+   w+g+w+d+ aMm+d+. a+f+r+a+d+ b+s+y+a+r+y+ d+r+ t+w+s+e+h+ w+ r+f+e+
+   a+snk+a+l+ w+ a+n+t+q+a+l+ aMn+ snr+k+t+ k+r+d+h+a+n+d+. m+t+n+
+   a+c+l+y+ Postgres k+h+ PostgreSQL a+z+ r+w+y+ aMn+ n+w+snt+h+ snd+h+
+   a+s+t+,+ t+w+s+tj t+e+d+a+d+ z+y+a+d+y+ d+a+n+sng+w+y+
+   k+a+r+snn+a+s+y+ a+r+snd+w+ d+a+n+sng+w+y+ k+a+r+snn+a+s+y+ w+ t+y+m+
+   b+r+n+a+m+h+n+w+y+s+y+ k+h+ t+hkt+ n+zHr+ p+r+w+f+s+w+r+ Michael
+   Stonebrake d+r+ d+a+n+sngfa+h+ b+r+k+l+y+,+k+a+l+y+f+r+n+y+a+ k+a+r+
+   m+y+k+r+d+h+a+n+d+ n+w+snt+h+ snd+h+ a+s+t+.
+   
+   n+a+m+ a+c+l+y+ n+r+m+ a+f+z+a+r+ d+r+ d+a+n+sngfa+h+ b+r+k+l+y+
+   Postgres b+w+d+. d+r+ s+a+l+ 1995 b+e+d+ a+z+ a+dda+f+h+ snd+n+ SQL
+   n+a+m+ aMn+ b+h+ Postgres95 t+i+y+y+r+ d+a+d+h+ snd+. d+r+ s+a+l+ 1996
+   n+a+m+ aMn+ b+h+ PostgreSQL t+i+y+y+r+ d+a+d+h+ snd+.
+   
+    1.2) q+w+a+n+y+n+ k+p+y+ r+a+y+t+ d+r+ m+w+r+d+ PostgreSQL b+h+ tch+
+    c+w+r+t+ a+s+t+?+
+    
+   PostgreSQL t+hkt+ q+a+n+w+n+ k+p+y+ r+a+y+t+ z+y+r+ q+r+a+r+ d+a+r+d+:
+   
+   PostgreSQL Data Base Management System
+   
+   Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
+   Portions Copyright (c) 1994-6 Regents of the University of California
+   
+   Permission to use, copy, modify, and distribute this software and its
+   documentation for any purpose, without fee, and without a written
+   agreement is hereby granted, provided that the above copyright notice
+   and this paragraph and the following two paragraphs appear in all
+   copies.
+   
+   IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
+   FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
+   INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND
+   ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN
+   ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+   
+   THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
+   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
+   PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
+   CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
+   UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+   
+   q+a+n+w+n+ b+a+l+a+ l+y+s+a+n+s+ BSD k+h+ y+k+ l+y+s+a+n+s+
+   k+l+a+s+y+k+ b+r+a+y+ m+t+n+h+a+y+ b+a+z+ a+s+t+ m+y+b+a+snd+. h+y+tc
+   m+hkd+w+d+y+t+y+ d+r+ m+w+r+d+ n+hkw+h+ a+s+t+f+a+d+h+ a+z+ m+t+n+
+   d+r+ aMn+ d+y+d+h+ n+m+y+snw+d+. m+a+ aMn+ r+a+ d+w+s+t+ d+a+r+y+m+ w+
+   h+y+tc q+c+d+y+ b+r+a+y+ t+i+y+y+r+ aMn+ n+d+a+r+y+m+.
+   
+    1.3) PostgreSQL r+w+y+ tch+ n+w+e+ y+w+n+y+k+s+h+a+y+y+ a+g+r+a+ m+y+
+    snw+d+?+
+    
+   d+r+ hka+l+t+ k+l+y+ PostgreSQL r+w+y+ h+r+ p+l+t+f+r+m+ (s+k+w+y+)
+   s+a+z+gfa+r+ b+a+ y+w+n+y+k+s+ a+g+r+a+ m+y+snw+d+. l+y+s+t+
+   p+l+t+f+r+m+h+a+y+y+ k+h+ t+a+k+n+w+n+ PostgreSQL r+w+y+ aMn+h+a+
+   n+c+b+ w+ t+s+t+ snd+h+ a+s+t+ d+r+q+s+m+t+ d+s+t+w+r+a+l+e+m+l+h+a+y+
+   n+c+b+ aMm+d+h+ a+s+t+.
+   
+    1.4) r+w+y+ tch+ m+hky+tjh+a+y+ i+y+r+ y+w+n+y+k+s+y+ m+y+t+w+a+n+ aMn+
+    r+a+ a+g+r+a+ k+r+d+?+
+    
+   Client
+   
+   m+y+t+w+a+n+ psql, k+t+a+b+x+a+n+h+ libpq w+ s+a+y+r+ w+a+s+tjh+a+ w+
+   b+r+n+a+m+h+h+a+y+ k+a+r+b+r+d+y+ r+a+ tjw+r+y+ k+a+m+p+y+l+ k+r+d+
+   k+h+ r+w+y+ m+hky+tjh+a+y+ w+y+n+d+w+z+ n+y+z+ a+g+r+a+ snw+n+d+. d+r+
+   a+y+n+ hka+l+t+ Client r+w+y+ w+y+n+d+w+z+ a+g+r+a+ m+y+snw+d+ w+ a+z+
+   tjr+b+q+ snb+k+h+ w+ p+r+w+t+k+l+ TCP/IP b+a+ y+k+ s+r+w+r+ k+h+
+   r+w+y+ y+k+ p+l+t+f+r+m+ l+y+n+w+k+s+ d+r+ hka+l+ a+g+r+a+s+t+
+   a+r+t+b+a+tj b+r+q+r+a+r+ m+y+k+n+d+.y+k+ f+a+y+l+ win32.mak
+   h+m+r+a+h+ b+a+ k+d+h+a+y+ PostgreSQL w+g+w+d+ d+a+r+d+ k+h+ b+r+a+y+
+   k+a+m+p+y+l+ k+r+d+n+ k+t+a+b+x+a+n+h+ libpq w+ b+r+n+a+m+h+ psql m+y+
+   b+a+snd+. PostgreSQL h+m+tcn+y+n+ a+m+k+a+n+ a+r+t+b+a+tj b+h+
+   c+w+r+t+ ODBC  r+a+ n+y+z+ d+a+r+d+.
+   
+   Server
+   
+   b+a+ a+s+t+f+a+d+h+ a+z+ Cygwin w+ k+t+a+b+x+a+n+h+ Cygnus m+y+
+   t+w+a+n+ p+a+y+gfa+h+ d+a+d+h+ r+a+ r+w+y+ w+y+n+d+w+z+ NT w+ y+a+
+   Win2K a+g+r+a+ k+r+d+.b+r+a+y+ d+y+d+n+ a+tjl+a+e+a+t+ b+y+snt+r+
+   f+a+y+l+ pgsql/doc/FAQ_MSWIN r+a+ k+h+ b+h+m+r+a+h+ t+w+z+b+e+h+a+y+
+   PostgreSQL aMm+d+h+ a+s+t+ b+b+y+n+y+d+ w+ y+a+ a+y+n+k+h+ b+h+ a+y+n+
+   c+f+hkh+ http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN
+   m+r+a+g+e+h+ k+n+y+d+.
+   
+   d+r+ hka+l+ hka+ddr+ y+k+ e+m+l+y+a+t+ a+n+t+q+a+l+ PostgreSQL b+h+
+   r+w+y+ s+k+w+h+a+y+ Win NT/2000/XP d+r+ g+r+y+a+n+ a+s+t+. b+r+a+y+
+   d+y+d+n+ w+dde+y+t+ a+y+n+ p+r+w+zjh+ b+h+ s+a+y+t+h+a+y+
+   http://momjian.postgresql.org/main/writings/pgsql/win32.htm w+
+   http://techdocs.postgresql.org/guides/Windows m+r+a+g+e+h+ k+n+y+d+.
+   
+   h+m+tcn+y+n+ y+k+ e+m+l+y+a+t+ a+n+t+q+a+l+ b+r+ r+w+y+ Novell Netware
+   6 n+y+z+ d+r+ hka+l+ a+n+g+a+m+ a+s+t+ k+h+ d+r+ s+a+y+t+
+   http://forge.novell.com m+y+t+w+a+n+y+d+ a+tjl+a+e+a+t+ b+y+snt+r+
+   r+a+ b+b+y+n+y+d+.
+   
+    1.5) PostgreSQL r+a+ a+z+ k+g+a+ m+y+t+w+a+n+m+ b+gfy+r+m+?+
+    
+   PostgreSQL r+a+ a+z+ s+a+y+t+ a+c+l+y+ aMn+
+   ftp://ftp.PostgreSQL.org/pub m+y+t+w+a+n+y+d+ b+gfy+r+y+d+. d+r+
+   c+f+hkh+ a+c+l+y+ s+a+y+t+ l+y+s+t+ s+a+y+r+ aMd+r+s+h+a+y+y+ k+h+
+   m+y+t+w+a+n+y+d+ PostgreSQL r+a+ a+z+ aMn+h+a+ b+gfy+r+y+d+ aMm+d+h+
+   a+s+t+.
+   
+    1.6) a+z+ k+g+a+ x+d+m+a+t+ p+snt+y+b+a+n+y+ b+gfy+r+m+?+
+    
+   gfr+w+h+ p+s+t+y+ a+c+l+y+ pgsql-general@PostgreSQL.org m+y+b+a+snd+.
+   a+y+n+ gfr+w+h+ b+r+a+y+ b+hktk d+r+ m+w+r+d+ m+w+ddw+e+a+t+
+   m+x+t+l+f+ d+r+ z+m+y+n+h+ PostgreSQL a+s+t+. b+r+a+y+ e+ddw+ snd+n+
+   d+r+ a+y+n+ gfr+w+h+ p+s+t+y+ y+k+ n+a+m+h+ a+l+k+t+r+w+n+y+k+y+ b+h+
+   aMd+r+s+ gfr+w+h+ b+a+ m+hkt+w+y+a+t+&#1740; k+h+ d+r+ a+d+a+m+h+
+   aMm+d+h+ a+s+t+ a+r+s+a+l+ k+n+y+d+. d+r+ q+s+m+t+ Subject tcy+z+y+
+   n+n+w+y+s+y+d+.
+   
     subscribe
     end
-آدرس گروه: pgsql-general-request@PostgreSQL.org
-همچنين يك گروه پستي هم به صورت ارسال چكيده پيامها وجود دارد. براي عضو شدن در اين 
-گروه يك نامه با محتويات زير به این آدرس  ارسال كنيد. 
-pgsql-general-digest-request@PostgreSQL.org 
+
+   aMd+r+s+ gfr+w+h+: pgsql-general-request@PostgreSQL.org
+   
+   h+m+tcn+y+n+ y+k+ gfr+w+h+ p+s+t+y+ h+m+ b+h+ c+w+r+t+ a+r+s+a+l+
+   tck+y+d+h+ p+y+a+m+h+a+ w+g+w+d+ d+a+r+d+. b+r+a+y+ e+ddw+ snd+n+ d+r+
+   a+y+n+ gfr+w+h+ y+k+ n+a+m+h+ b+a+ m+hkt+w+y+a+t+ z+y+r+ b+h+
+   a+&#1740;n+ aMd+r+s+  a+r+s+a+l+ k+n+y+d+.
+   pgsql-general-digest-request@PostgreSQL.org
+   
     subscribe
     end
-در اين گروه هر موقع حجم نامه‌ها به 30 كيلوبايت رسيد براي تمام اعضاء ارسال 
-مي‌شود.
-گروه پستي بررسي اِشكالات هم وجود دارد. براي عضو شدن در اين گروه يك نامه با 
-محتويات زير به pgsql-bugs-request@PostgreSQL.org ارسال كنيد.
+
+   d+r+ a+y+n+ gfr+w+h+ h+r+ m+w+q+e+ hkg+m+ n+a+m+h+h+a+ b+h+ 30
+   k+y+l+w+b+a+y+t+ r+s+y+d+ b+r+a+y+ t+m+a+m+ a+e+dda+H' a+r+s+a+l+ m+y+
+   snw+d+.
+   
+   gfr+w+h+ p+s+t+y+ b+r+r+s+y+ a+1+snk+a+l+a+t+ h+m+ w+g+w+d+ d+a+r+d+.
+   b+r+a+y+ e+ddw+ snd+n+ d+r+ a+y+n+ gfr+w+h+ y+k+ n+a+m+h+ b+a+
+   m+hkt+w+y+a+t+ z+y+r+ b+h+ pgsql-bugs-request@PostgreSQL.org
+   a+r+s+a+l+ k+n+y+d+.
+   
     subscribe
     end
-گروه پستي مخصوص توسعه دهندگان (برنامه‌نويسان) نيز وجوددارد. براي عضويت در اين 
-گروه يك نامه به آدرس زير با محتويات مشخص شده ارسال كنيد.  
-pgsql-hackers-request@PostgreSQL.org  
+
+   gfr+w+h+ p+s+t+y+ m+x+c+w+c+ t+w+s+e+h+ d+h+n+d+gfa+n+ (b+r+n+a+m+h+
+   n+w+y+s+a+n+) n+y+z+ w+g+w+d+d+a+r+d+. b+r+a+y+ e+ddw+y+t+ d+r+ a+y+n+
+   gfr+w+h+ y+k+ n+a+m+h+ b+h+ aMd+r+s+ z+y+r+ b+a+ m+hkt+w+y+a+t+
+   m+snx+c+ snd+h+ a+r+s+a+l+ k+n+y+d+.
+   pgsql-hackers-request@PostgreSQL.org
+   
     subscribe
     end
-گروههاي پستي ديگري نيز در زمينه PostgreSQL‌ وجود دارد  كه مي‌توانيد در سايت 
-http://www.postgresql.org ببينيد.
-همچنين يك كانال IRC روي Freenode و EFNet بنام PostgreSQL# وجود دارد. شما 
-مي‌توانيد از فرمان يونيكسي irc -c '#PostgreSQL' "$USER" irc.phoenix.net. يا irc 
--c '#PostgreSQL' "$USER" irc.freenode.net استفاده كنيد.
-ليست شركتهايي كه از طريق آنها مي‌توانيد خدمات پشتيباني تجاري در زمينه PostgreSQL 
-دريافت كنيد در اين آدرس http://techdocs.postgresql.org/companies.php موجود است.
-1.7) آخرين نسخه اعلام شده چيست؟
-آخرين نسخه PostgreSQL‌  كه وجود دارد 7.4.3 است.
-هدف ما آن است كه هر 6 ماه تا 8 ماه يك نسخه جديد ارائه شود.
-1.8) چه مستندات و راهنمائيهايي وجود دارند؟
-چندين كتابچه و صفحات راهنما و مثالهاي كوچك همراه با متن اصلي PostgreSQL‌ در شاخه 
-doc وجود دارد. براي ديدن صفحات راهنما مي‌توانيد به سايت 
-http://www.PostgreSQL.org/docs  نيز مراجعه نماييد.
-دو كتاب در زمينه PostgreSQL‌  در آدرس‌هاي 
-http://www.PostgreSQL.org/docs/awbook.htm و http://www.commandprompt.com/ppbook 
-وجود دارد. ليستي از كتابهايي كه قابل خريد است در آدرس 
-http://techdocs.PostgreSQL.org/techdocs/bookreviews.php وجود دارد. همچنين ليستي 
-از مقالات فني در مورد PostgreSQL در آدرس http://techdocs.PostgreSQL.org وجود 
-دارد.
-برنامه psql يك دستور d\ دارد كه اطلاعاتي در مورد انواع داده‌هاي قابل تعريف و 
-عملگر‌ها و توابع و ... به ما نشان مي‌دهد. در سايت اصلي ما اطلاعات بيشتري را 
-مي‌توانيد پيدا كنيد.
-1.9) چگونه مي‌توانم ازاشكالات شناخته شده و يا امكاناتي كه در اين پايگاه داده 
-وجود ندارد  مطلع شوم؟
-PostgreSQL يك زير مجموعه پيشرفته از SQL-92 را پشتيباني مي‌كند. در ليست  TODO   
-اِشكالات شناخته شده يا امكاناتي كه وجود ندارد و يا برنامه‌‌هاي آينده آمده است.
-1.10) چگونه مي‌توانم زبان SQL را ياد بگيرم؟
-كتاب PostgreSQL در آدرس SQL http://www.PostgreSQL.org/docs/awbook.html ‌را آموزش 
-مي‌دهد. همچنين يك كتاب در آدرس http://www.commandprompt.com/ppbook وجود دارد. يك 
-راهنماي خيلي خوب هم در سايت‌هاي  
-http://www.intermedia.net/support/sql/sqltut.shtm و 
-http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM و  
-http://sqlcourse.com در مورد SQL وجود دارد.
-كتاب ديگري كه مي‌توان براي يادگيري SQL از آن استفاده كرد كتاب "SQL را در 21 روز 
-ياد بگيريد،‌ ويرايش دوم" در سايت http://members.tripod.com/er4ebus/sql/index.htm 
-مي‌باشد.
-تعداد زيادي از كاربران كتاب The Practical SQL را ترجيح مي‌دهند. كتاب ديگر The 
-Complete Refrence SQL انتشارات McGraw-Hill مي‌باشد.
-1.11) آيا PostgreSQL مشكل Y2K‌ دارد يا خير؟
-خير،‌PostgreSQL‌ با تاريخ‌هاي قبل و بعد از 2000 مشكلي ندارد.
-1.12) چگونه مي‌توانم به تيم برنامه نويس PostgreSQL ملحق شوم؟
-ابتدا،‌آخرين سورس را دونلود كرده و مستندات مربوط به برنامه‌نويسي PostgreSQL را 
-در سايت مطالعه كنيد. سپس به گروههاي پستي ‌ pgsql-patches و pgsql-hackers  عضو 
-شويد. در مرحله آخر وصله‌هاي با كيفيت بالا را به pgsql-patches ارسال كنيد.
-تعداد زيادي از برنامه‌نويسان وجود دارند كه امتياز انجام تغييرات در cvs‌ را 
-دارند. هر كدام از آنها تعداد زيادي وصله‌‌ با كيفيت بالا به گروه ارسال كرده‌اند 
-كه اعتماد گردانندگان PostgreSQL را به دست آورده‌اند.
-1.13) چگونه مي‌توانم يك اِشكال را به گروه برنامه نويس اعلام كنم؟
-لطفاً صفحه مربوط به اِشكالات PostgreSQL را در سايت 
-http://www.PostgreSQL.org/bugs/bugs.php مشاهده‌ كنيد. در اين سايت نحوه گزارش و 
-ارسال يك اشكال توضيح داده شده است.
- همچنين براي ديدن نسخه‌هاي جديدتر PostgreSQL و يا وجود يك وصله جديد از سايت 
-ftp://ftp.PostgreSQL.org/pub بازديد كنيد.
-1.14) وضعيت PostgreSQL‌ در مقايسه با ساير DBMSها به چه صورت است؟
-راههاي مختلفي براي اندازه‌گيري و مقايسه نرم‌افزارها وجود دارد كه عبارتند از 
-امكانات، كارايي، قابليت اعتماد، پشتيباني و قيمت
-    امكانات 
-    PostgreSQL بيشتر امكانات موجود در سيستم‌هاي پايگاه داده تجاري بزرگ نظير 
-    transactions, subselets, triggers, views, foreign key referential integrity 
-    و sophisticated locking‌ را دارد. در PostgreSQL‌‌ امكاناتي وجود دارد كه 
-    پايگاههاي داده ديگر آن را ندارند نظير user-defined types‌و Inheritance‌و 
-    rules‌و multi-version concurrency control 
-
-  كارايي
-          كارايي PostgreSQL در حد بقيه سيستم‌هاي تجاري و متن باز است. در بعضي 
-  موارد سريعتر و در بعضي موارد از آنها كندتر است. در مقايسه با MySQL براي 
-  كاربران بيشتر و درخواست‌هاي پيچيده و بار زياد خواندن/نوشتن سريعتر است. در 
-  درخواست‌هاي ساده SELECT‌ از MySQL كندتر است. البته MySQL خيلي از امكانات 
-  PostgreSQL كه در بالا به آن اشاره شد را ندارد. هدف اصلي ما امكانات و قابليت 
-  اعتماد بالاست در ضمن آنكه تلاش مي‌كنيم تا كارايي آن نيز بهبود يابد. در آدرس 
-  http://openacs.org/philosophy/why-not-mysql.html يك مقايسه جالب بين MySQL و 
-  PostgreSQL وجود دارد. از طرف ديگر MySQL‌ يك شركت است كه محصول خود را به صورت 
-  متن باز ارائه مي‌كند ولي براي نرم‌افزار غير متن باز خود احتياج به ليسانس تجاري 
-  دارد بر خلاف PostgreSQL كه يك گروه كاملاً متن باز هستند.
-
-    قابليت اطمينان 
-    ما فكر مي‌كنيم كه يك سيستم پايگاه داده‌اي كه مطمئن نباشد ارزشي ندارد. ما 
-    تمام تلاشمان را براي ارائه كدهاي پايداري كه به خوبي تست شده باشند و كمترين 
-    اِشكالات را داشته باشند مي‌كنيم. هر نسخه جديدي كه ارائه مي‌شود حداقل يك ماه 
-    را در مرحله تست بتا مي‌گذراند. ما بر اين باور هستيم كه قابليت اطمينان 
-    PostgreSQL‌ در مقايسه با ساير سيستم‌هاي پايگاه داده قابل توجه است و 
-    نسخه‌هايي كه تاكنون ارائه شده است نشان مي‌دهد كه ما توانايي ارائه يك سيستم 
-    قوي و محكم و مطمئن را كه آماده بهره‌برداري است داريم. 
-    پشتيباني 
-    گروههاي پستي ما امكان ارتباط و تماس به گروه بزرگي از برنامه نويسان و كاربران 
-    را مي‌دهد كه مي‌توانند در حل مشكلات به ديگران كمك كنند. دسترسي مستقيم به 
-    برنامه‌نويسان و گروههاي كاربران و راهنماها و كداصلي باعث مي‌شود كه پشتيباني 
-    PostgreSQL نسبت به ساير پايگاههاي داده به نحو بهتري انجام شود. همچنين امكان 
-    ارائه خدمات پشتيباني به صورت تجاري نيز وجود دارد. براي ديدن اطلاعات بيشتر به 
-    FAQ section 1.6  مراجعه كنيد. 
-    قيمت 
-    هم براي استفاده تجاري و هم غير تجاري هيچ هزينه‌اي نبايد پرداخت شود. هيچ 
-    محدوديتي براي انجام تغييرات در PostgreSQL توسط استفاده كنندگان وجود ندارد به 
-    جز مواردي كه در ليسانس BSD به آن اشاره شده است. 
-1.15) من چگونه مي‌توانم از نظر مالي به PostgreSQL كمك كنم؟
-PostgreSQL  داراي يك ساختار تشكيلاتي درجه اول است كه آن را مديون Marc Fournier‌ 
-است كه اين ساختار را ايجاد كرده است.
-كيفيت يك ساختار براي يك پروژه متن باز بسيار اهميت دارد. يك ساختار خوب مي‌تواند 
-مانع از حوادثي شود كه در حركت روبه‌جلوي پروژه خللي وارد مي‌كنند.
-البته اين ساختار تشكيلاتي ارزان نيست. هزينه‌هاي ثابت ماهانه و روزمره براي 
-نگهداري و حفظ اين ساختار مورد نياز است. اگر شما يا شركت شما مايل است كه از نظر 
-مالي به اين حركت كمك كند لطفاً به سايت http://store.pgsql.com/shopping مراجعه 
-كرده و كمك خود را اهدا كنيد.
-هر چند در صفحه اصلي عبارت PostgreSQL,Inc‌ ذكر شده است ولي مشاركت عمدتاً براي 
-پشتيباني از پروژه PostgreSQL‌ مي باشد و نه براي يك شركت مشخص. اگر ترجيح مي‌دهيد 
-مي‌توانيد يك چك به آدرس مشخص شده ارسال كنيد.
-اگر يك استفاده موفق از PostgreSQL سراغ داريد لطفاً آن را به سايت 
-http://advocacy.postgresql.org گزارش دهيد.
-
 
-
-سوالات مربوط به استفاده از پايگاه داده
-2.1) آيا هيچ درايور ODBC‌ براي PostgreSQL وجود دارد؟
-دو درايور ODBC بنامهاي psqlODBC‌ و OpenLink براي PostgreSQL‌ وجود دارد.
-براي گرفتن psqlODBC به سايت 
-http://gborg.postgresql.org/project/psqlodbc/projdisplay.php مراجعه كنيد.
-OpenLlink را از اين سايت http://www.openlinksw.com مي‌توانيد بگيريد. اين درايور 
-با نرم‌افزارهاي مختلف ODBC كار مي‌كند بنابراين شما قادر خواهيد بود با استفاده از 
-OpenLink روي اكثر سكو‌هايي كه نرم‌افزارODBC‌دارند بدون مشكل به PostgreSQL نيز 
-متصل شويد.
-اين محصول به كساني كه احتياج به خدمات پشتيباني تجاري دارند فروخته مي‌شود. ولي 
-نسخه آزاد اين نرم‌افزار هميشه در درسترس مي‌باشد. براي كسب اطلاعات بيشتر سوالات 
-خود را به آدرس postgres95@openlink.co.uk ‌ارسال نماييد.
-2.2) چه ابزارهايي براي استفاده از PostgreSQL‌ با صفحات وب وجود دارد؟
-در سايت http://www.webreview.com براي استفاده از PostgreSQL‌ در صفحات وب 
-راهنماييهاي خوبي وجود دارد.
-براي تركيب و استفاده در صفحات وب زبان PHP‌ يك واسط بسيار مناسب است. اطلاعات 
-بيشتر راجع به PHP‌در سايت http://www.php.net وجود دارد.
-مثالهايي نيز با استفاده از Perl‌ و CGI.pm و mod_perl وجود دارد.
-2.3) آيا PostgreSQL‌ يك واسط كاربري گرافيكي دارد؟
-چند نرم افزار گرافيكي براي PostgreSQL‌ وجود دارد كه شامل pgAccess درسايت 
-http://www.pgaccess.org و pgAdmin III در سايت http://www.pgadmin.org و RHDB 
-Admin در سايت http://sources.redhat.com/rhdb و Rekall در سايت 
-http://www.thekompany.com/products/rekall  مي‌باشد. همچنين يك phpPgAdmin هم در 
-سايت http://phppgadmin.sourceforge.net وجود دارد كه يك واسط وبي براي مديريت 
-PostgreSQL مي‌باشد.
-براي ديدن اطلاعات بيشتر راجع به نرم‌افزارهاي گرافيكي براي PostgreSQL به آدرس 
-http://techdocs.postgresql.org/guides/GUITools مراجعه كنيد.
-2.4) با چه زبانهاي برنامه‌نويسي مي‌توان با PostgreSQL‌ ارتباط برقرار كرد؟
-بيشتر زبانهاي برنامه‌نويسي مي‌توانند با PostgreSQL‌ ارتباط برقرار كنند. به همراه 
- سورس PostgreSQL تعدادي از واسطهاي مورد نياز براي ارتباط با پايگاه داده از طريق 
-زبانهاي مختلف آمده است كه در زير ليست آنها را مشاهده مي‌كنيد.
-  C (libpq) 
-  Embedded C (ecpg) 
-  Java (jdbc) 
-  Python (PyGreSQL) 
-  TCL (libpgtcl) 
-واسطهاي ديگر در سايت http://gborg.postgresql.org در قسمت Drivers/Interfaces وجود 
-دارد.
-
-
-
-سوالات مديريتي
-3.1) چگونه مي‌توانم PostgreSQL‌ را در شاخه‌اي غير از /usr/local/pgsql/  نصب كنم؟
-موقع اجراي دستور configure از گزينه prefix-- استفاده كنيد.
-3.2) چرا موقعي كه من برنامه postmaster‌ را اجرا مي كنم پيام Bad system call‌ و 
-يا core dump ‌مي‌گيرم؟
-به دلايل مختلف ممكن است اين اتفاق بيفتد. اما در قدم اول شما مطمئن شويد كه كه 
-امكانات اضافه System V‌ در كرنل شما نصب شده باشد. PostgreSQL براي اجرا شدن نياز 
-به استفاده از امكانات حافظه مشترك و سمافورها دارد.
-3.3) چرا موقعي كه من سعي مي‌كنم برنامه postmaster‌ را اجرا كنم خطاي 
-IpcMemoryCreate  مي‌گيرم؟
-احتمالاً‌ قسمت ايجاد حافظه مشترك در كرنل به درستي تنظيم نشده است و يا اينكه بايد 
-فضاي حافظه اشتراكي در كرنل را زياد كرد. ميزان دقيق حافظه مشترك مورد نياز بسته به 
-معماري و نحوه استفاده از بافرها توسط برنامه postmaster دارد. براي بيشتر سيستم‌ها 
-كه با تنظيمات پيش‌فرض كار مي‌كنند مقدار اين حافظه حدود 1 مگابايت است. براي ديدن 
-اطلاعات بيشتر راجع به حافظه مشترك و سمافور به PostgreSQL Administrator's Guide 
-مراجعه كنيد.
-3.4) چرا موقعي كه من سعي مي‌كنم برنامه postmaster‌ را اجرا كنم خطاي  
-IpcSemaphoreCreate مي‌گيرم؟
-اگر پيغام خطا (‌pcSemaphoreCreate: semget failed (No space left on device  باشد 
-به اين معني است كه تعداد سمافورهاي تنظيم شده در كرنل كافي نيست. PostgreSQL‌ براي 
-هر فرايندي كه در backend اجرا مي‌شود به يك سمافور نياز دارد. يك راه حل موقت براي 
-اين مسئله آن است كه postmaster را با اعمال محدوديت روي تعداد فرايندهايي كه 
-مي‌تواند ايجاد كند اجرا كنيم. براي اينكار از گزينه N- و يك عدد كمتر از 32 
-استفاده كنيد. راه حل دائمي اين مشكل آن است كه پارامترهاي SEMMNS, SEMMNI كرنل را 
-افزايش دهيم.
-در زمان دسترسي خيلي زياد به پايگاه داده، ‌ سمافورهاي نامعتبر مي‌توانند باعث 
-crash‌ كردن سيستم شوند.
-اگر پيغام خطا چيز ديگري باشد احتمالاً به دليل آن است كه كرنل از سمافورها 
-پشتيباني نمي‌كند. براي ديدن اطلاعات بيشتر راهنماي مديريتي PostgreSQL را مطالعه 
-كنيد.
-3.5) چگونه مي‌توانم اتصالات ساير ماشينها را كنترل كنم؟
-به صورت پيش فرض فقط از ماشيني كه PostgreSQL روي آن در حال اجراست مي‌توان با 
-استفاده از سوكت‌هاي يونيكسي به آن متصل شد. ساير ماشين‌ها قادر نيستند به 
-PostgreSQL متصل شوند مگر آنكه گزينه tcp_sockets در فايل postgresql.conf فعال شده 
-و همچنين با اصلاح فايل PGDATA/ph_hba.conf هويت‌شناسي مبتني بر ميزبان نيز فعال 
-شود. با اين كار مي‌توان اتصالات TCP/IP به PostgreSQL‌ ايجاد كرد.
-3.6) براي كارايي بالاتر و بهتر پايگاه داده من چه تنظيماتي را بايد انجام دهم؟
-به طور حتم استفاده از انديس‌ها باعث بالا رفتن سرعت پاسخ‌گويي به درخواست‌ها خواهد 
-شد. دستور EXPLAIN ANALYZE به شما امكان ديدن نحوه پردازش يك دستور توسط PostgreSQL 
-را مي‌دهد.
-اگر شما تعداد زيادي INSERT‌ داريد سعي كنيد آنها را با قرار دادن در يك فايل با 
-دستور COPY‌ اجرا كنيد. اين دستور به مراتب از INSERT سريعتر است. حتي‌الامكان سعي 
-كنيد از تراكنشها استفاده نكنيد. تراكنشها مجموعه دستوراتي هستند كه بيند BEGIN و 
-‍COMMIT مي‌آيند. اگر يك دستور به صورت عادي اجرا شود PostgreSQL خود آن دستور را 
-به صورت يك تراكنش مستقل نگاه كرده و اجرا مي‌كند. موقعی كه تغييرات زيادي در 
-پايگاه داده انجام مي‌شود انديسهاي قبلي را حذف و مجدداً‌ ايجاد كنيد.
-استفاده از گزينه o -F- در فرمان postmaster باعث غير فعال كردن ()fsync مي‌شود. 
-اين دستور بعد از هر تراكنش اطلاعات را روي هاردديسك منتقل مي‌كند.
-براي افزايش تعداد بافرهاي حافظه اشتراكي از گزينه B- به همراه فرمان postmaster 
-استفاده كنيد. توجه كنيد كه اگر اين عدد خيلي بزرگ باشد ممكن است postmaster اصلاً‌ 
-اجرا نشود. هر بافر 8 كيلو بايت حافظه نياز دارد و تعداد بافرها به طور پيش فرض 64 
-است.
-همچنين مي‌توان با گزينه S-  ميزان حافظه‌اي كه براي مرتب‌سازي‌هاي موقت توسط 
-PostgreSQL استفاده مي‌شود را افزايش داد. مقدار پيش فرض 512 كيلو بايت است.
-استفاده از دستور CLUSTER نيز براي بالا بردن كارايي موثر ا ست. دستور راهنماي 
-CLUSTER اطلاعات بيشتري در اين زمينه به شما مي‌دهد.
-3.7) چه امكاناتي براي پيدا كردن اشكال‌ وجود دارد؟
-PostgerSQL‌ امكانات مختلفي براي گزارش دادن وضعيت خود دارد كه براي اشكال زدايي 
-مي‌توان از آنها استفاده كرد.
-با استفاده از گزينه enable-assert-- تعداد زيادي ()assert براي مونيتور كردن و 
-توقف برنامه در صورت بروز خطاهاي ناخواسته فعال مي‌شود.
-هم Postmaster و هم postgres گزينه‌هاي زيادي براي اشكال زدايي دارند. موقعي كه 
-postmaster را اجرا مي‌كنيد خروجي استاندارد و خطا را سمت فايل log ارسال كنيد.
+   gfr+w+h+h+a+y+ p+s+t+y+ d+y+gfr+y+ n+y+z+ d+r+ z+m+y+n+h+ PostgreSQL
+   w+g+w+d+ d+a+r+d+  k+h+ m+y+t+w+a+n+y+d+ d+r+ s+a+y+t+
+   http://www.postgresql.org b+b+y+n+y+d+.
+   
+   h+m+tcn+y+n+ y+k+ k+a+n+a+l+ IRC r+w+y+ Freenode w+ EFNet b+n+a+m+
+   PostgreSQL# w+g+w+d+ d+a+r+d+. snm+a+ m+y+t+w+a+n+y+d+ a+z+ f+r+m+a+n+
+   y+w+n+y+k+s+y+ irc -c '#PostgreSQL' "$USER" irc.phoenix.net. y+a+ irc
+   -c '#PostgreSQL' "$USER" irc.freenode.net a+s+t+f+a+d+h+ k+n+y+d+.
+   
+   l+y+s+t+ snr+k+t+h+a+y+y+ k+h+ a+z+ tjr+y+q+ aMn+h+a+ m+y+t+w+a+n+y+d+
+   x+d+m+a+t+ p+snt+y+b+a+n+y+ t+g+a+r+y+ d+r+ z+m+y+n+h+ PostgreSQL
+   d+r+y+a+f+t+ k+n+y+d+ d+r+ a+y+n+ aMd+r+s+
+   http://techdocs.postgresql.org/companies.php m+w+g+w+d+ a+s+t+.
+   
+    1.7) aMx+r+y+n+ n+s+x+h+ a+e+l+a+m+ snd+h+ tcy+s+t+?+
+    
+   aMx+r+y+n+ n+s+x+h+ PostgreSQL  k+h+ w+g+w+d+ d+a+r+d+ 7.4.3 a+s+t+.
+   
+   h+d+f+ m+a+ aMn+ a+s+t+ k+h+ h+r+ 6 m+a+h+ t+a+ 8 m+a+h+ y+k+ n+s+x+h+
+   g+d+y+d+ a+r+a+yHh+ snw+d+.
+   
+    1.8) tch+ m+s+t+n+d+a+t+ w+ r+a+h+n+m+a+yHy+h+a+y+y+ w+g+w+d+ d+a+r+n+d+?+
+    
+   tcn+d+y+n+ k+t+a+b+tch+ w+ c+f+hka+t+ r+a+h+n+m+a+ w+ m+tka+l+h+a+y+
+   k+w+tck+ h+m+r+a+h+ b+a+ m+t+n+ a+c+l+y+ PostgreSQL d+r+ sna+x+h+ doc
+   w+g+w+d+ d+a+r+d+. b+r+a+y+ d+y+d+n+ c+f+hka+t+ r+a+h+n+m+a+ m+y+
+   t+w+a+n+y+d+ b+h+ s+a+y+t+ http://www.PostgreSQL.org/docs  n+y+z+
+   m+r+a+g+e+h+ n+m+a+y+y+d+.
+   
+   d+w+ k+t+a+b+ d+r+ z+m+y+n+h+ PostgreSQL  d+r+ aMd+r+s+h+a+y+
+   http://www.PostgreSQL.org/docs/awbook.htm w+
+   http://www.commandprompt.com/ppbook w+g+w+d+ d+a+r+d+. l+y+s+t+y+ a+z+
+   k+t+a+b+h+a+y+y+ k+h+ q+a+b+l+ x+r+y+d+ a+s+t+ d+r+ aMd+r+s+
+   http://techdocs.PostgreSQL.org/techdocs/bookreviews.php w+g+w+d+
+   d+a+r+d+. h+m+tcn+y+n+ l+y+s+t+y+ a+z+ m+q+a+l+a+t+ f+n+y+ d+r+
+   m+w+r+d+ PostgreSQL d+r+ aMd+r+s+ http://techdocs.PostgreSQL.org
+   w+g+w+d+ d+a+r+d+.
+   
+   b+r+n+a+m+h+ psql y+k+ d+s+t+w+r+ d\ d+a+r+d+ k+h+ a+tjl+a+e+a+t+y+
+   d+r+ m+w+r+d+ a+n+w+a+e+ d+a+d+h+h+a+y+ q+a+b+l+ t+e+r+y+f+ w+
+   e+m+l+gfr+h+a+ w+ t+w+a+b+e+ w+ ... b+h+ m+a+ n+sna+n+ m+y+d+h+d+.
+   d+r+ s+a+y+t+ a+c+l+y+ m+a+ a+tjl+a+e+a+t+ b+y+snt+r+y+ r+a+ m+y+
+   t+w+a+n+y+d+ p+y+d+a+ k+n+y+d+.
+   
+    1.9) tcgfw+n+h+ m+y+t+w+a+n+m+ a+z+a+snk+a+l+a+t+ snn+a+x+t+h+ snd+h+ w+
+    y+a+ a+m+k+a+n+a+t+y+ k+h+ d+r+ a+y+n+ p+a+y+gfa+h+ d+a+d+h+ w+g+w+d+
+    n+d+a+r+d+  m+tjl+e+ snw+m+?+
+    
+   PostgreSQL y+k+ z+y+r+ m+g+m+w+e+h+ p+y+snr+f+t+h+ a+z+ SQL-92 r+a+
+   p+snt+y+b+a+n+y+ m+y+k+n+d+. d+r+ l+y+s+t+  TODO   a+1+snk+a+l+a+t+
+   snn+a+x+t+h+ snd+h+ y+a+ a+m+k+a+n+a+t+y+ k+h+ w+g+w+d+ n+d+a+r+d+ w+
+   y+a+ b+r+n+a+m+h+h+a+y+ aMy+n+d+h+ aMm+d+h+ a+s+t+.
+   
+    1.10) tcgfw+n+h+ m+y+t+w+a+n+m+ z+b+a+n+ SQL r+a+ y+a+d+ b+gfy+r+m+?+
+    
+   k+t+a+b+ PostgreSQL d+r+ aMd+r+s+ SQL
+   http://www.PostgreSQL.org/docs/awbook.html r+a+ aMm+w+z+sn m+y+d+h+d+.
+   h+m+tcn+y+n+ y+k+ k+t+a+b+ d+r+ aMd+r+s+
+   http://www.commandprompt.com/ppbook w+g+w+d+ d+a+r+d+. y+k+
+   r+a+h+n+m+a+y+ x+y+l+y+ x+w+b+ h+m+ d+r+ s+a+y+t+h+a+y+
+   http://www.intermedia.net/support/sql/sqltut.shtm w+
+   http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM
+   w+  http://sqlcourse.com d+r+ m+w+r+d+ SQL w+g+w+d+ d+a+r+d+.
+   
+   k+t+a+b+ d+y+gfr+y+ k+h+ m+y+t+w+a+n+ b+r+a+y+ y+a+d+gfy+r+y+ SQL a+z+
+   aMn+ a+s+t+f+a+d+h+ k+r+d+ k+t+a+b+ "SQL r+a+ d+r+ 21 r+w+z+ y+a+d+
+   b+gfy+r+y+d+,+ w+y+r+a+y+sn d+w+m+" d+r+ s+a+y+t+
+   http://members.tripod.com/er4ebus/sql/index.htm m+y+b+a+snd+.
+   
+   t+e+d+a+d+ z+y+a+d+y+ a+z+ k+a+r+b+r+a+n+ k+t+a+b+ The Practical SQL
+   r+a+ t+r+g+y+hk m+y+d+h+n+d+. k+t+a+b+ d+y+gfr+ The Complete Refrence
+   SQL a+n+t+sna+r+a+t+ McGraw-Hill m+y+b+a+snd+.
+   
+    1.11) aMy+a+ PostgreSQL m+snk+l+ Y2K d+a+r+d+ y+a+ x+y+r+?+
+    
+   x+y+r+,+PostgreSQL b+a+ t+a+r+y+x+h+a+y+ q+b+l+ w+ b+e+d+ a+z+ 2000
+   m+snk+l+y+ n+d+a+r+d+.
+   
+    1.12) tcgfw+n+h+ m+y+t+w+a+n+m+ b+h+ t+y+m+ b+r+n+a+m+h+ n+w+y+s+
+    PostgreSQL m+l+hkq+ snw+m+?+
+    
+   a+b+t+d+a+,+aMx+r+y+n+ s+w+r+s+ r+a+ d+w+n+l+w+d+ k+r+d+h+ w+
+   m+s+t+n+d+a+t+ m+r+b+w+tj b+h+ b+r+n+a+m+h+n+w+y+s+y+ PostgreSQL r+a+
+   d+r+ s+a+y+t+ m+tja+l+e+h+ k+n+y+d+. s+p+s+ b+h+ gfr+w+h+h+a+y+
+   p+s+t+y+ pgsql-patches w+ pgsql-hackers  e+ddw+ snw+y+d+. d+r+
+   m+r+hkl+h+ aMx+r+ w+c+l+h+h+a+y+ b+a+ k+y+f+y+t+ b+a+l+a+ r+a+ b+h+
+   pgsql-patches a+r+s+a+l+ k+n+y+d+.
+   
+   t+e+d+a+d+ z+y+a+d+y+ a+z+ b+r+n+a+m+h+n+w+y+s+a+n+ w+g+w+d+
+   d+a+r+n+d+ k+h+ a+m+t+y+a+z+ a+n+g+a+m+ t+i+y+y+r+a+t+ d+r+ cvs r+a+
+   d+a+r+n+d+. h+r+ k+d+a+m+ a+z+ aMn+h+a+ t+e+d+a+d+ z+y+a+d+y+ w+c+l+h+
+   b+a+ k+y+f+y+t+ b+a+l+a+ b+h+ gfr+w+h+ a+r+s+a+l+ k+r+d+h+a+n+d+ k+h+
+   a+e+t+m+a+d+ gfr+d+a+n+n+d+gfa+n+ PostgreSQL r+a+ b+h+ d+s+t+
+   aMw+r+d+h+a+n+d+.
+   
+    1.13) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ a+1+snk+a+l+ r+a+ b+h+ gfr+w+h+
+    b+r+n+a+m+h+ n+w+y+s+ a+e+l+a+m+ k+n+m+?+
+    
+   l+tjf+a+:+ c+f+hkh+ m+r+b+w+tj b+h+ a+1+snk+a+l+a+t+ PostgreSQL r+a+
+   d+r+ s+a+y+t+ http://www.PostgreSQL.org/bugs/bugs.php m+sna+h+d+h+
+   k+n+y+d+. d+r+ a+y+n+ s+a+y+t+ n+hkw+h+ gfz+a+r+sn w+ a+r+s+a+l+ y+k+
+   a+snk+a+l+ t+w+ddy+hk d+a+d+h+ snd+h+ a+s+t+.
+   
+    h+m+tcn+y+n+ b+r+a+y+ d+y+d+n+ n+s+x+h+h+a+y+ g+d+y+d+t+r+ PostgreSQL
+   w+ y+a+ w+g+w+d+ y+k+ w+c+l+h+ g+d+y+d+ a+z+ s+a+y+t+
+   ftp://ftp.PostgreSQL.org/pub b+a+z+d+y+d+ k+n+y+d+.
+   
+    1.14) w+dde+y+t+ PostgreSQL d+r+ m+q+a+y+s+h+ b+a+ s+a+y+r+ DBMSh+a+ b+h+
+    tch+ c+w+r+t+ a+s+t+?+
+    
+   r+a+h+h+a+y+ m+x+t+l+f+y+ b+r+a+y+ a+n+d+a+z+h+gfy+r+y+ w+
+   m+q+a+y+s+h+ n+r+m+a+f+z+a+r+h+a+ w+g+w+d+ d+a+r+d+ k+h+
+   e+b+a+r+t+n+d+ a+z+ a+m+k+a+n+a+t+,+ k+a+r+a+y+y+,+ q+a+b+l+y+t+
+   a+e+t+m+a+d+,+ p+snt+y+b+a+n+y+ w+ q+y+m+t+
+   
+        a+m+k+a+n+a+t+
+                PostgreSQL b+y+snt+r+ a+m+k+a+n+a+t+ m+w+g+w+d+ d+r+
+                s+y+s+t+m+h+a+y+ p+a+y+gfa+h+ d+a+d+h+ t+g+a+r+y+
+                b+z+r+gf n+zHy+r+ transactions, subselets, triggers,
+                views, foreign key referential integrity w+ sophisticated
+                locking r+a+ d+a+r+d+. d+r+ PostgreSQL a+m+k+a+n+a+t+y+
+                w+g+w+d+ d+a+r+d+ k+h+ p+a+y+gfa+h+h+a+y+ d+a+d+h+
+                d+y+gfr+ aMn+ r+a+ n+d+a+r+n+d+ n+zHy+r+ user-defined
+                typesw+ Inheritancew+ rulesw+ multi-version concurrency
+                control
+                
+          
+          
+          k+a+r+a+y+y+
+          
+                  k+a+r+a+y+y+ PostgreSQL d+r+ hkd+ b+q+y+h+ s+y+s+t+m+
+          h+a+y+ t+g+a+r+y+ w+ m+t+n+ b+a+z+ a+s+t+. d+r+ b+e+ddy+
+          m+w+a+r+d+ s+r+y+e+t+r+ w+ d+r+ b+e+ddy+ m+w+a+r+d+ a+z+
+          aMn+h+a+ k+n+d+t+r+ a+s+t+. d+r+ m+q+a+y+s+h+ b+a+ MySQL
+          b+r+a+y+ k+a+r+b+r+a+n+ b+y+snt+r+ w+ d+r+x+w+a+s+t+h+a+y+
+          p+y+tcy+d+h+ w+ b+a+r+ z+y+a+d+ x+w+a+n+d+n+/n+w+snt+n+
+          s+r+y+e+t+r+ a+s+t+. d+r+ d+r+x+w+a+s+t+h+a+y+ s+a+d+h+ SELECT
+          a+z+ MySQL k+n+d+t+r+ a+s+t+. a+l+b+t+h+ MySQL x+y+l+y+ a+z+
+          a+m+k+a+n+a+t+ PostgreSQL k+h+ d+r+ b+a+l+a+ b+h+ aMn+
+          a+sna+r+h+ snd+ r+a+ n+d+a+r+d+. h+d+f+ a+c+l+y+ m+a+
+          a+m+k+a+n+a+t+ w+ q+a+b+l+y+t+ a+e+t+m+a+d+ b+a+l+a+s+t+ d+r+
+          ddm+n+ aMn+k+h+ t+l+a+sn m+y+k+n+y+m+ t+a+ k+a+r+a+y+y+ aMn+
+          n+y+z+ b+h+b+w+d+ y+a+b+d+. d+r+ aMd+r+s+
+          http://openacs.org/philosophy/why-not-mysql.html y+k+
+          m+q+a+y+s+h+ g+a+l+b+ b+y+n+ MySQL w+ PostgreSQL w+g+w+d+
+          d+a+r+d+. a+z+ tjr+f+ d+y+gfr+ MySQL y+k+ snr+k+t+ a+s+t+ k+h+
+          m+hkc+w+l+ x+w+d+ r+a+ b+h+ c+w+r+t+ m+t+n+ b+a+z+ a+r+a+yHh+
+          m+y+k+n+d+ w+l+y+ b+r+a+y+ n+r+m+a+f+z+a+r+ i+y+r+ m+t+n+
+          b+a+z+ x+w+d+ a+hkt+y+a+g+ b+h+ l+y+s+a+n+s+ t+g+a+r+y+
+          d+a+r+d+ b+r+ x+l+a+f+ PostgreSQL k+h+ y+k+ gfr+w+h+
+          k+a+m+l+a+:+ m+t+n+ b+a+z+ h+s+t+n+d+.
+          
+          
+          
+        q+a+b+l+y+t+ a+tjm+y+n+a+n+
+                m+a+ f+k+r+ m+y+k+n+y+m+ k+h+ y+k+ s+y+s+t+m+
+                p+a+y+gfa+h+ d+a+d+h+a+y+ k+h+ m+tjm+yHn+ n+b+a+snd+
+                a+r+z+sny+ n+d+a+r+d+. m+a+ t+m+a+m+ t+l+a+snm+a+n+ r+a+
+                b+r+a+y+ a+r+a+yHh+ k+d+h+a+y+ p+a+y+d+a+r+y+ k+h+ b+h+
+                x+w+b+y+ t+s+t+ snd+h+ b+a+snn+d+ w+ k+m+t+r+y+n+
+                a+1+snk+a+l+a+t+ r+a+ d+a+snt+h+ b+a+snn+d+ m+y+k+n+y+m+.
+                h+r+ n+s+x+h+ g+d+y+d+y+ k+h+ a+r+a+yHh+ m+y+snw+d+
+                hkd+a+q+l+ y+k+ m+a+h+ r+a+ d+r+ m+r+hkl+h+ t+s+t+ b+t+a+
+                m+y+gfdkr+a+n+d+. m+a+ b+r+ a+y+n+ b+a+w+r+ h+s+t+y+m+
+                k+h+ q+a+b+l+y+t+ a+tjm+y+n+a+n+ PostgreSQL d+r+
+                m+q+a+y+s+h+ b+a+ s+a+y+r+ s+y+s+t+m+h+a+y+ p+a+y+gfa+h+
+                d+a+d+h+ q+a+b+l+ t+w+g+h+ a+s+t+ w+ n+s+x+h+h+a+y+y+
+                k+h+ t+a+k+n+w+n+ a+r+a+yHh+ snd+h+ a+s+t+ n+sna+n+ m+y+
+                d+h+d+ k+h+ m+a+ t+w+a+n+a+y+y+ a+r+a+yHh+ y+k+
+                s+y+s+t+m+ q+w+y+ w+ m+hkk+m+ w+ m+tjm+yHn+ r+a+ k+h+
+                aMm+a+d+h+ b+h+r+h+b+r+d+a+r+y+ a+s+t+ d+a+r+y+m+.
+                
+        p+snt+y+b+a+n+y+
+                gfr+w+h+h+a+y+ p+s+t+y+ m+a+ a+m+k+a+n+ a+r+t+b+a+tj w+
+                t+m+a+s+ b+h+ gfr+w+h+ b+z+r+gfy+ a+z+ b+r+n+a+m+h+
+                n+w+y+s+a+n+ w+ k+a+r+b+r+a+n+ r+a+ m+y+d+h+d+ k+h+ m+y+
+                t+w+a+n+n+d+ d+r+ hkl+ m+snk+l+a+t+ b+h+ d+y+gfr+a+n+
+                k+m+k+ k+n+n+d+. d+s+t+r+s+y+ m+s+t+q+y+m+ b+h+
+                b+r+n+a+m+h+n+w+y+s+a+n+ w+ gfr+w+h+h+a+y+ k+a+r+b+r+a+n+
+                w+ r+a+h+n+m+a+h+a+ w+ k+d+a+c+l+y+ b+a+e+tk m+y+snw+d+
+                k+h+ p+snt+y+b+a+n+y+ PostgreSQL n+s+b+t+ b+h+ s+a+y+r+
+                p+a+y+gfa+h+h+a+y+ d+a+d+h+ b+h+ n+hkw+ b+h+t+r+y+
+                a+n+g+a+m+ snw+d+. h+m+tcn+y+n+ a+m+k+a+n+ a+r+a+yHh+
+                x+d+m+a+t+ p+snt+y+b+a+n+y+ b+h+ c+w+r+t+ t+g+a+r+y+
+                n+y+z+ w+g+w+d+ d+a+r+d+. b+r+a+y+ d+y+d+n+
+                a+tjl+a+e+a+t+ b+y+snt+r+ b+h+ FAQ section 1.6
+                m+r+a+g+e+h+ k+n+y+d+.
+                
+        q+y+m+t+
+                h+m+ b+r+a+y+ a+s+t+f+a+d+h+ t+g+a+r+y+ w+ h+m+ i+y+r+
+                t+g+a+r+y+ h+y+tc h+z+y+n+h+a+y+ n+b+a+y+d+ p+r+d+a+x+t+
+                snw+d+. h+y+tc m+hkd+w+d+y+t+y+ b+r+a+y+ a+n+g+a+m+
+                t+i+y+y+r+a+t+ d+r+ PostgreSQL t+w+s+tj a+s+t+f+a+d+h+
+                k+n+n+d+gfa+n+ w+g+w+d+ n+d+a+r+d+ b+h+ g+z+ m+w+a+r+d+y+
+                k+h+ d+r+ l+y+s+a+n+s+ BSD b+h+ aMn+ a+sna+r+h+ snd+h+
+                a+s+t+.
+                
+    1.15) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ a+z+ n+zHr+ m+a+l+y+ b+h+ PostgreSQL
+    k+m+k+ k+n+m+?+
+    
+   PostgreSQL  d+a+r+a+y+ y+k+ s+a+x+t+a+r+ t+snk+y+l+a+t+y+ d+r+g+h+
+   a+w+l+ a+s+t+ k+h+ aMn+ r+a+ m+d+y+w+n+ Marc Fournier a+s+t+ k+h+
+   a+y+n+ s+a+x+t+a+r+ r+a+ a+y+g+a+d+ k+r+d+h+ a+s+t+.
+   
+   k+y+f+y+t+ y+k+ s+a+x+t+a+r+ b+r+a+y+ y+k+ p+r+w+zjh+ m+t+n+ b+a+z+
+   b+s+y+a+r+ a+h+m+y+t+ d+a+r+d+. y+k+ s+a+x+t+a+r+ x+w+b+ m+y+
+   t+w+a+n+d+ m+a+n+e+ a+z+ hkw+a+d+tky+ snw+d+ k+h+ d+r+ hkr+k+t+
+   r+w+b+h+g+l+w+y+ p+r+w+zjh+ x+l+l+y+ w+a+r+d+ m+y+k+n+n+d+.
+   
+   a+l+b+t+h+ a+y+n+ s+a+x+t+a+r+ t+snk+y+l+a+t+y+ a+r+z+a+n+ n+y+s+t+.
+   h+z+y+n+h+h+a+y+ tka+b+t+ m+a+h+a+n+h+ w+ r+w+z+m+r+h+ b+r+a+y+
+   n+gfh+d+a+r+y+ w+ hkf+zH a+y+n+ s+a+x+t+a+r+ m+w+r+d+ n+y+a+z+ a+s+t+.
+   a+gfr+ snm+a+ y+a+ snr+k+t+ snm+a+ m+a+y+l+ a+s+t+ k+h+ a+z+ n+zHr+
+   m+a+l+y+ b+h+ a+y+n+ hkr+k+t+ k+m+k+ k+n+d+ l+tjf+a+:+ b+h+ s+a+y+t+
+   http://store.pgsql.com/shopping m+r+a+g+e+h+ k+r+d+h+ w+ k+m+k+ x+w+d+
+   r+a+ a+h+d+a+ k+n+y+d+.
+   
+   h+r+ tcn+d+ d+r+ c+f+hkh+ a+c+l+y+ e+b+a+r+t+ PostgreSQL,Inc dkk+r+
+   snd+h+ a+s+t+ w+l+y+ m+sna+r+k+t+ e+m+d+t+a+:+ b+r+a+y+
+   p+snt+y+b+a+n+y+ a+z+ p+r+w+zjh+ PostgreSQL m+y+ b+a+snd+ w+ n+h+
+   b+r+a+y+ y+k+ snr+k+t+ m+snx+c+. a+gfr+ t+r+g+y+hk m+y+d+h+y+d+ m+y+
+   t+w+a+n+y+d+ y+k+ tck+ b+h+ aMd+r+s+ m+snx+c+ snd+h+ a+r+s+a+l+
+   k+n+y+d+.
+   
+   a+gfr+ y+k+ a+s+t+f+a+d+h+ m+w+f+q+ a+z+ PostgreSQL s+r+a+i+
+   d+a+r+y+d+ l+tjf+a+:+ aMn+ r+a+ b+h+ s+a+y+t+
+   http://advocacy.postgresql.org gfz+a+r+sn d+h+y+d+.
+     _________________________________________________________________
+   
+   s+w+a+l+a+t+ m+r+b+w+tj b+h+ a+s+t+f+a+d+h+ a+z+ p+a+y+gfa+h+ d+a+d+h+
+                                      
+    2.1) aMy+a+ h+y+tc d+r+a+y+w+r+ ODBC b+r+a+y+ PostgreSQL w+g+w+d+
+    d+a+r+d+?+
+    
+   d+w+ d+r+a+y+w+r+ ODBC b+n+a+m+h+a+y+ psqlODBC w+ OpenLink b+r+a+y+
+   PostgreSQL w+g+w+d+ d+a+r+d+.
+   
+   b+r+a+y+ gfr+f+t+n+ psqlODBC b+h+ s+a+y+t+
+   http://gborg.postgresql.org/project/psqlodbc/projdisplay.php
+   m+r+a+g+e+h+ k+n+y+d+.
+   
+   OpenLlink r+a+ a+z+ a+y+n+ s+a+y+t+ http://www.openlinksw.com m+y+
+   t+w+a+n+y+d+ b+gfy+r+y+d+. a+y+n+ d+r+a+y+w+r+ b+a+ n+r+m+
+   a+f+z+a+r+h+a+y+ m+x+t+l+f+ ODBC k+a+r+ m+y+k+n+d+ b+n+a+b+r+a+y+n+
+   snm+a+ q+a+d+r+ x+w+a+h+y+d+ b+w+d+ b+a+ a+s+t+f+a+d+h+ a+z+ OpenLink
+   r+w+y+ a+k+tkr+ s+k+w+h+a+y+y+ k+h+ n+r+m+a+f+z+a+r+ODBCd+a+r+n+d+
+   b+d+w+n+ m+snk+l+ b+h+ PostgreSQL n+y+z+ m+t+c+l+ snw+y+d+.
+   
+   a+y+n+ m+hkc+w+l+ b+h+ k+s+a+n+y+ k+h+ a+hkt+y+a+g+ b+h+ x+d+m+a+t+
+   p+snt+y+b+a+n+y+ t+g+a+r+y+ d+a+r+n+d+ f+r+w+x+t+h+ m+y+snw+d+. w+l+y+
+   n+s+x+h+ aMz+a+d+ a+y+n+ n+r+m+a+f+z+a+r+ h+m+y+snh+ d+r+ d+r+s+t+r+s+
+   m+y+b+a+snd+. b+r+a+y+ k+s+b+ a+tjl+a+e+a+t+ b+y+snt+r+ s+w+a+l+a+t+
+   x+w+d+ r+a+ b+h+ aMd+r+s+ postgres95@openlink.co.uk a+r+s+a+l+
+   n+m+a+y+y+d+.
+   
+    2.2) tch+ a+b+z+a+r+h+a+y+y+ b+r+a+y+ a+s+t+f+a+d+h+ a+z+ PostgreSQL b+a+
+    c+f+hka+t+ w+b+ w+g+w+d+ d+a+r+d+?+
+    
+   d+r+ s+a+y+t+ http://www.webreview.com b+r+a+y+ a+s+t+f+a+d+h+ a+z+
+   PostgreSQL d+r+ c+f+hka+t+ w+b+ r+a+h+n+m+a+y+y+h+a+y+ x+w+b+y+
+   w+g+w+d+ d+a+r+d+.
+   
+   b+r+a+y+ t+r+k+y+b+ w+ a+s+t+f+a+d+h+ d+r+ c+f+hka+t+ w+b+ z+b+a+n+
+   PHP y+k+ w+a+s+tj b+s+y+a+r+ m+n+a+s+b+ a+s+t+. a+tjl+a+e+a+t+
+   b+y+snt+r+ r+a+g+e+ b+h+ PHPd+r+ s+a+y+t+ http://www.php.net w+g+w+d+
+   d+a+r+d+.
+   
+   m+tka+l+h+a+y+y+ n+y+z+ b+a+ a+s+t+f+a+d+h+ a+z+ Perl w+ CGI.pm w+
+   mod_perl w+g+w+d+ d+a+r+d+.
+   
+    2.3) aMy+a+ PostgreSQL y+k+ w+a+s+tj k+a+r+b+r+y+ gfr+a+f+y+k+y+ d+a+r+d+?+
+    
+   tcn+d+ n+r+m+ a+f+z+a+r+ gfr+a+f+y+k+y+ b+r+a+y+ PostgreSQL w+g+w+d+
+   d+a+r+d+ k+h+ sna+m+l+ pgAccess d+r+s+a+y+t+ http://www.pgaccess.org
+   w+ pgAdmin III d+r+ s+a+y+t+ http://www.pgadmin.org w+ RHDB Admin d+r+
+   s+a+y+t+ http://sources.redhat.com/rhdb w+ Rekall d+r+ s+a+y+t+
+   http://www.thekompany.com/products/rekall  m+y+b+a+snd+. h+m+tcn+y+n+
+   y+k+ phpPgAdmin h+m+ d+r+ s+a+y+t+ http://phppgadmin.sourceforge.net
+   w+g+w+d+ d+a+r+d+ k+h+ y+k+ w+a+s+tj w+b+y+ b+r+a+y+ m+d+y+r+y+t+
+   PostgreSQL m+y+b+a+snd+.
+   
+   b+r+a+y+ d+y+d+n+ a+tjl+a+e+a+t+ b+y+snt+r+ r+a+g+e+ b+h+ n+r+m+
+   a+f+z+a+r+h+a+y+ gfr+a+f+y+k+y+ b+r+a+y+ PostgreSQL b+h+ aMd+r+s+
+   http://techdocs.postgresql.org/guides/GUITools m+r+a+g+e+h+ k+n+y+d+.
+   
+    2.4) b+a+ tch+ z+b+a+n+h+a+y+ b+r+n+a+m+h+n+w+y+s+y+ m+y+t+w+a+n+ b+a+
+    PostgreSQL a+r+t+b+a+tj b+r+q+r+a+r+ k+r+d+?+
+    
+   b+y+snt+r+ z+b+a+n+h+a+y+ b+r+n+a+m+h+n+w+y+s+y+ m+y+t+w+a+n+n+d+ b+a+
+   PostgreSQL a+r+t+b+a+tj b+r+q+r+a+r+ k+n+n+d+. b+h+ h+m+r+a+h+
+   s+w+r+s+ PostgreSQL t+e+d+a+d+y+ a+z+ w+a+s+tjh+a+y+ m+w+r+d+ n+y+a+z+
+   b+r+a+y+ a+r+t+b+a+tj b+a+ p+a+y+gfa+h+ d+a+d+h+ a+z+ tjr+y+q+
+   z+b+a+n+h+a+y+ m+x+t+l+f+ aMm+d+h+ a+s+t+ k+h+ d+r+ z+y+r+ l+y+s+t+
+   aMn+h+a+ r+a+ m+sna+h+d+h+ m+y+k+n+y+d+.
+     * C (libpq)
+     * Embedded C (ecpg)
+     * Java (jdbc)
+     * Python (PyGreSQL)
+     * TCL (libpgtcl)
+       
+   w+a+s+tjh+a+y+ d+y+gfr+ d+r+ s+a+y+t+ http://gborg.postgresql.org d+r+
+                           q+s+m+t+ Drivers/Interfaces w+g+w+d+ d+a+r+d+.
+     _________________________________________________________________
+   
+                        s+w+a+l+a+t+ m+d+y+r+y+t+y+
+                                      
+    3.1) tcgfw+n+h+ m+y+t+w+a+n+m+ PostgreSQL r+a+ d+r+ sna+x+h+a+y+ i+y+r+
+    a+z+ /usr/local/pgsql/  n+c+b+ k+n+m+?+
+    
+   m+w+q+e+ a+g+r+a+y+ d+s+t+w+r+ configure a+z+ gfz+y+n+h+ prefix--
+   a+s+t+f+a+d+h+ k+n+y+d+.
+   
+    3.2) tcr+a+ m+w+q+e+y+ k+h+ m+n+ b+r+n+a+m+h+ postmaster r+a+ a+g+r+a+ m+y+
+    k+n+m+ p+y+a+m+ Bad system call w+ y+a+ core dump m+y+gfy+r+m+?+
+    
+   b+h+ d+l+a+y+l+ m+x+t+l+f+ m+m+k+n+ a+s+t+ a+y+n+ a+t+f+a+q+
+   b+y+f+t+d+. a+m+a+ d+r+ q+d+m+ a+w+l+ snm+a+ m+tjm+yHn+ snw+y+d+ k+h+
+   k+h+ a+m+k+a+n+a+t+ a+dda+f+h+ System V d+r+ k+r+n+l+ snm+a+ n+c+b+
+   snd+h+ b+a+snd+. PostgreSQL b+r+a+y+ a+g+r+a+ snd+n+ n+y+a+z+ b+h+
+   a+s+t+f+a+d+h+ a+z+ a+m+k+a+n+a+t+ hka+f+zHh+ m+snt+r+k+ w+
+   s+m+a+f+w+r+h+a+ d+a+r+d+.
+   
+    3.3) tcr+a+ m+w+q+e+y+ k+h+ m+n+ s+e+y+ m+y+k+n+m+ b+r+n+a+m+h+ postmaster
+    r+a+ a+g+r+a+ k+n+m+ x+tja+y+ IpcMemoryCreate  m+y+gfy+r+m+?+
+    
+   a+hkt+m+a+l+a+:+ q+s+m+t+ a+y+g+a+d+ hka+f+zHh+ m+snt+r+k+ d+r+
+   k+r+n+l+ b+h+ d+r+s+t+y+ t+n+zHy+m+ n+snd+h+ a+s+t+ w+ y+a+ a+y+n+k+h+
+   b+a+y+d+ f+dda+y+ hka+f+zHh+ a+snt+r+a+k+y+ d+r+ k+r+n+l+ r+a+
+   z+y+a+d+ k+r+d+. m+y+z+a+n+ d+q+y+q+ hka+f+zHh+ m+snt+r+k+ m+w+r+d+
+   n+y+a+z+ b+s+t+h+ b+h+ m+e+m+a+r+y+ w+ n+hkw+h+ a+s+t+f+a+d+h+ a+z+
+   b+a+f+r+h+a+ t+w+s+tj b+r+n+a+m+h+ postmaster d+a+r+d+. b+r+a+y+
+   b+y+snt+r+ s+y+s+t+m+h+a+ k+h+ b+a+ t+n+zHy+m+a+t+ p+y+snf+r+dd k+a+r+
+   m+y+k+n+n+d+ m+q+d+a+r+ a+y+n+ hka+f+zHh+ hkd+w+d+ 1 m+gfa+b+a+y+t+
+   a+s+t+. b+r+a+y+ d+y+d+n+ a+tjl+a+e+a+t+ b+y+snt+r+ r+a+g+e+ b+h+
+   hka+f+zHh+ m+snt+r+k+ w+ s+m+a+f+w+r+ b+h+ PostgreSQL Administrator's
+   Guide m+r+a+g+e+h+ k+n+y+d+.
+   
+    3.4) tcr+a+ m+w+q+e+y+ k+h+ m+n+ s+e+y+ m+y+k+n+m+ b+r+n+a+m+h+ postmaster
+    r+a+ a+g+r+a+ k+n+m+ x+tja+y+  IpcSemaphoreCreate m+y+gfy+r+m+?+
+    
+   a+gfr+ p+y+i+a+m+ x+tja+ (pcSemaphoreCreate: semget failed (No space
+   left on device  b+a+snd+ b+h+ a+y+n+ m+e+n+y+ a+s+t+ k+h+ t+e+d+a+d+
+   s+m+a+f+w+r+h+a+y+ t+n+zHy+m+ snd+h+ d+r+ k+r+n+l+ k+a+f+y+ n+y+s+t+.
+   PostgreSQL b+r+a+y+ h+r+ f+r+a+y+n+d+y+ k+h+ d+r+ backend a+g+r+a+
+   m+y+snw+d+ b+h+ y+k+ s+m+a+f+w+r+ n+y+a+z+ d+a+r+d+. y+k+ r+a+h+ hkl+
+   m+w+q+t+ b+r+a+y+ a+y+n+ m+s+yHl+h+ aMn+ a+s+t+ k+h+ postmaster r+a+
+   b+a+ a+e+m+a+l+ m+hkd+w+d+y+t+ r+w+y+ t+e+d+a+d+ f+r+a+y+n+d+h+a+y+y+
+   k+h+ m+y+t+w+a+n+d+ a+y+g+a+d+ k+n+d+ a+g+r+a+ k+n+y+m+. b+r+a+y+
+   a+y+n+k+a+r+ a+z+ gfz+y+n+h+ N- w+ y+k+ e+d+d+ k+m+t+r+ a+z+ 32
+   a+s+t+f+a+d+h+ k+n+y+d+. r+a+h+ hkl+ d+a+yHm+y+ a+y+n+ m+snk+l+ aMn+
+   a+s+t+ k+h+ p+a+r+a+m+t+r+h+a+y+ SEMMNS, SEMMNI k+r+n+l+ r+a+
+   a+f+z+a+y+sn d+h+y+m+.
+   
+   d+r+ z+m+a+n+ d+s+t+r+s+y+ x+y+l+y+ z+y+a+d+ b+h+ p+a+y+gfa+h+
+   d+a+d+h+,+ s+m+a+f+w+r+h+a+y+ n+a+m+e+t+b+r+ m+y+t+w+a+n+n+d+ b+a+e+tk
+   crash k+r+d+n+ s+y+s+t+m+ snw+n+d+.
+   
+   a+gfr+ p+y+i+a+m+ x+tja+ tcy+z+ d+y+gfr+y+ b+a+snd+ a+hkt+m+a+l+a+:+
+   b+h+ d+l+y+l+ aMn+ a+s+t+ k+h+ k+r+n+l+ a+z+ s+m+a+f+w+r+h+a+
+   p+snt+y+b+a+n+y+ n+m+y+k+n+d+. b+r+a+y+ d+y+d+n+ a+tjl+a+e+a+t+
+   b+y+snt+r+ r+a+h+n+m+a+y+ m+d+y+r+y+t+y+ PostgreSQL r+a+ m+tja+l+e+h+
+   k+n+y+d+.
+   
+    3.5) tcgfw+n+h+ m+y+t+w+a+n+m+ a+t+c+a+l+a+t+ s+a+y+r+ m+a+sny+n+h+a+ r+a+
+    k+n+t+r+l+ k+n+m+?+
+    
+   b+h+ c+w+r+t+ p+y+sn f+r+dd f+q+tj a+z+ m+a+sny+n+y+ k+h+ PostgreSQL
+   r+w+y+ aMn+ d+r+ hka+l+ a+g+r+a+s+t+ m+y+t+w+a+n+ b+a+ a+s+t+f+a+d+h+
+   a+z+ s+w+k+t+h+a+y+ y+w+n+y+k+s+y+ b+h+ aMn+ m+t+c+l+ snd+. s+a+y+r+
+   m+a+sny+n+h+a+ q+a+d+r+ n+y+s+t+n+d+ b+h+ PostgreSQL m+t+c+l+ snw+n+d+
+   m+gfr+ aMn+k+h+ gfz+y+n+h+ tcp_sockets d+r+ f+a+y+l+ postgresql.conf
+   f+e+a+l+ snd+h+ w+ h+m+tcn+y+n+ b+a+ a+c+l+a+hk f+a+y+l+
+   PGDATA/ph_hba.conf h+w+y+t+snn+a+s+y+ m+b+t+n+y+ b+r+ m+y+z+b+a+n+
+   n+y+z+ f+e+a+l+ snw+d+. b+a+ a+y+n+ k+a+r+ m+y+t+w+a+n+ a+t+c+a+l+a+t+
+   TCP/IP b+h+ PostgreSQL a+y+g+a+d+ k+r+d+.
+   
+    3.6) b+r+a+y+ k+a+r+a+y+y+ b+a+l+a+t+r+ w+ b+h+t+r+ p+a+y+gfa+h+ d+a+d+h+
+    m+n+ tch+ t+n+zHy+m+a+t+y+ r+a+ b+a+y+d+ a+n+g+a+m+ d+h+m+?+
+    
+   b+h+ tjw+r+ hkt+m+ a+s+t+f+a+d+h+ a+z+ a+n+d+y+s+h+a+ b+a+e+tk
+   b+a+l+a+ r+f+t+n+ s+r+e+t+ p+a+s+x+gfw+y+y+ b+h+ d+r+x+w+a+s+t+h+a+
+   x+w+a+h+d+ snd+. d+s+t+w+r+ EXPLAIN ANALYZE b+h+ snm+a+ a+m+k+a+n+
+   d+y+d+n+ n+hkw+h+ p+r+d+a+z+sn y+k+ d+s+t+w+r+ t+w+s+tj PostgreSQL
+   r+a+ m+y+d+h+d+.
+   
+   a+gfr+ snm+a+ t+e+d+a+d+ z+y+a+d+y+ INSERT d+a+r+y+d+ s+e+y+ k+n+y+d+
+   aMn+h+a+ r+a+ b+a+ q+r+a+r+ d+a+d+n+ d+r+ y+k+ f+a+y+l+ b+a+
+   d+s+t+w+r+ COPY a+g+r+a+ k+n+y+d+. a+y+n+ d+s+t+w+r+ b+h+ m+r+a+t+b+
+   a+z+ INSERT s+r+y+e+t+r+ a+s+t+. hkt+y+a+l+a+m+k+a+n+ s+e+y+ k+n+y+d+
+   a+z+ t+r+a+k+n+snh+a+ a+s+t+f+a+d+h+ n+k+n+y+d+. t+r+a+k+n+snh+a+
+   m+g+m+w+e+h+ d+s+t+w+r+a+t+y+ h+s+t+n+d+ k+h+ b+y+n+d+ BEGIN w+ COMMIT
+   m+y+aMy+n+d+. a+gfr+ y+k+ d+s+t+w+r+ b+h+ c+w+r+t+ e+a+d+y+ a+g+r+a+
+   snw+d+ PostgreSQL x+w+d+ aMn+ d+s+t+w+r+ r+a+ b+h+ c+w+r+t+ y+k+
+   t+r+a+k+n+sn m+s+t+q+l+ n+gfa+h+ k+r+d+h+ w+ a+g+r+a+ m+y+k+n+d+.
+   m+w+q+e+&#1740; k+h+ t+i+y+y+r+a+t+ z+y+a+d+y+ d+r+ p+a+y+gfa+h+
+   d+a+d+h+ a+n+g+a+m+ m+y+snw+d+ a+n+d+y+s+h+a+y+ q+b+l+y+ r+a+ hkdkf+
+   w+ m+g+d+d+a+:+ a+y+g+a+d+ k+n+y+d+.
+   
+   a+s+t+f+a+d+h+ a+z+ gfz+y+n+h+ o -F- d+r+ f+r+m+a+n+ postmaster
+   b+a+e+tk i+y+r+ f+e+a+l+ k+r+d+n+ ()fsync m+y+snw+d+. a+y+n+
+   d+s+t+w+r+ b+e+d+ a+z+ h+r+ t+r+a+k+n+sn a+tjl+a+e+a+t+ r+a+ r+w+y+
+   h+a+r+d+d+y+s+k+ m+n+t+q+l+ m+y+k+n+d+.
+   
+   b+r+a+y+ a+f+z+a+y+sn t+e+d+a+d+ b+a+f+r+h+a+y+ hka+f+zHh+
+   a+snt+r+a+k+y+ a+z+ gfz+y+n+h+ B- b+h+ h+m+r+a+h+ f+r+m+a+n+
+   postmaster a+s+t+f+a+d+h+ k+n+y+d+. t+w+g+h+ k+n+y+d+ k+h+ a+gfr+
+   a+y+n+ e+d+d+ x+y+l+y+ b+z+r+gf b+a+snd+ m+m+k+n+ a+s+t+ postmaster
+   a+c+l+a+:+ a+g+r+a+ n+snw+d+. h+r+ b+a+f+r+ 8 k+y+l+w+ b+a+y+t+
+   hka+f+zHh+ n+y+a+z+ d+a+r+d+ w+ t+e+d+a+d+ b+a+f+r+h+a+ b+h+ tjw+r+
+   p+y+sn f+r+dd 64 a+s+t+.
+   
+   h+m+tcn+y+n+ m+y+t+w+a+n+ b+a+ gfz+y+n+h+ S-  m+y+z+a+n+ hka+f+zHh+
+   a+y+ k+h+ b+r+a+y+ m+r+t+b+s+a+z+y+h+a+y+ m+w+q+t+ t+w+s+tj PostgreSQL
+   a+s+t+f+a+d+h+ m+y+snw+d+ r+a+ a+f+z+a+y+sn d+a+d+. m+q+d+a+r+ p+y+sn
+   f+r+dd 512 k+y+l+w+ b+a+y+t+ a+s+t+.
+   
+   a+s+t+f+a+d+h+ a+z+ d+s+t+w+r+ CLUSTER n+y+z+ b+r+a+y+ b+a+l+a+
+   b+r+d+n+ k+a+r+a+y+y+ m+w+tkr+ a+ s+t+. d+s+t+w+r+ r+a+h+n+m+a+y+
+   CLUSTER a+tjl+a+e+a+t+ b+y+snt+r+y+ d+r+ a+y+n+ z+m+y+n+h+ b+h+ snm+a+
+   m+y+d+h+d+.
+   
+    3.7) tch+ a+m+k+a+n+a+t+y+ b+r+a+y+ p+y+d+a+ k+r+d+n+ a+snk+a+l+ w+g+w+d+
+    d+a+r+d+?+
+    
+   PostgerSQL a+m+k+a+n+a+t+ m+x+t+l+f+y+ b+r+a+y+ gfz+a+r+sn d+a+d+n+
+   w+dde+y+t+ x+w+d+ d+a+r+d+ k+h+ b+r+a+y+ a+snk+a+l+ z+d+a+y+y+ m+y+
+   t+w+a+n+ a+z+ aMn+h+a+ a+s+t+f+a+d+h+ k+r+d+.
+   
+   b+a+ a+s+t+f+a+d+h+ a+z+ gfz+y+n+h+ enable-assert-- t+e+d+a+d+
+   z+y+a+d+y+ ()assert b+r+a+y+ m+w+n+y+t+w+r+ k+r+d+n+ w+ t+w+q+f+
+   b+r+n+a+m+h+ d+r+ c+w+r+t+ b+r+w+z+ x+tja+h+a+y+ n+a+x+w+a+s+t+h+
+   f+e+a+l+ m+y+snw+d+.
+   
+   h+m+ Postmaster w+ h+m+ postgres gfz+y+n+h+h+a+y+ z+y+a+d+y+ b+r+a+y+
+   a+snk+a+l+ z+d+a+y+y+ d+a+r+n+d+. m+w+q+e+y+ k+h+ postmaster r+a+
+   a+g+r+a+ m+y+k+n+y+d+ x+r+w+g+y+ a+s+t+a+n+d+a+r+d+ w+ x+tja+ r+a+
+   s+m+t+ f+a+y+l+ log a+r+s+a+l+ k+n+y+d+.
+   
     cd /usr/local/pgsql
     ./bin/postmaster >server.log 2>&1 &
-اين كار يك فايل log در بالاترين شاخه PostgreSQL‌ ايجاد مي‌كند. اين فايل حاوي 
-اطلاعات مفيدي در مورد مسائل و خطاهايي است كه براي سرور اتفاق افتاده است. براي 
-ديدن جزئيات بيشتر مي‌توان از d-  به همراه فرمان postmaster‌ استفاده كرد. گزينه 
-d- همچنين يك عدد مي‌گيرد كه نشان دهنده سطح جزئياتي است كه در Log‌فايل نوشته 
-مي‌شود. با بالابردن اين عدد حجم اطلاعات توليد شده در Logفايل نيز افزايش مي‌يابد.
-اگر postmaster در حال اجرا نباشد، مي‌توانيم postgres را به طور مستقيم از خط 
-فرمان اجرا كرده و  دستورات SQL را به آن بدهيم. اين كار فقط براي اشكال‌يابي توصيه 
-مي‌شود. توجه كنيد كه در اين حالت يك دستور با كاراكتر newline خاتمه پيدا مي‌كند و 
-نه با ;. اگر postmaster را با امكانات اشكال‌يابي كامپيل كرده باشيد مي‌توانيد با 
-استفاده از يك برنامه اشكال‌ياب اجراي برنامه را مونيتور كنيد. 
-اگر postmaster در حال اجرا باشد با دستور psql مي‌توان به postgres متصل شد. با 
-پيدا كردن PID فرايند postgres كه psql به آن متصل شده است مي‌توان آن را مونيتور 
-كرد. براي اينكار بايد يك برنامه اشكال‌ياب را به آن pid متصل كرد. اگر بخواهيم 
-بالا آمدن postgres را مونيتور كنيم كافي است "PGOPTIONS="-W n و psql را اجرا 
-كنيم. اين كار باعث مي‌شود كه postgres با n ثانيه تاخير اجرا شود و در اين فاصله 
-شما مي‌توانيد برنامه اشكال‌ياب را به آن متصل كرده و با قرار دادن يك نقطه توقف  
-روند اجراي آن را مونيتور كنيد.
-postgres گزينه‌هاي s-‌ و A- و t-‌ دارد كه براي پيدا كردن اشكالات بسيار مناسب 
-هستند.
-شما مي‌توانيد postgreSQL را با امكانات profiling كامپيل كنيد. اين كار باعث 
-مي‌شود كه زمان اجراي دقيق هر تابع در برنامه مشخص شود. خروجي‌هاي توليد شده در اين 
-حالت در فايل DLINUX_PROFILE. ريخته مي‌شود.
-3.8) چرا موقعي كه من مي‌خواهم به پايگاه داده وصل شوم پيام "Sorry, too many 
-clients" ‌مي‌گيرم؟
-شما بايد حداكثر تعداد فرايندهاي همزمان postmaster را افزايش دهيد. مقدار پيش فرض 
-32 است. براي افزايش آن مي‌توان از گزينه N- استفاده كرد و يا فايل postgresql.conf 
-را اصلاح نمود
-توجه كنيد كه اگر N- مقداري بيشتر از 32 داشته باشد بايد مقدار B- را نيز افزايش 
-دهيم. اين مقدار بايد حداقل دو برابر مقدار N-‌ باشد. براي اعداد خيلي بالا بايد 
-بعضي از پارامترهاي كرنل را نيز اصلاح كرد. پارامترهايي نظير حداكثر اندازه حافظه 
-اشتراكي SHMMAX ، حداكثر تعداد سمافورها SEMMNI‌ و SEMMNS ، حداكثر تعداد فرايندها 
-NPROC، حداكثر فرايندهاي يك كاربر MAXUPRC و حداكثر فايلهاي باز NFILE و NINODE. 
-يكي از دلايلي كه تعداد اتصالات همزمان postgreSQL محدود است آن است كه نيازهاي 
-PostgreSQL بيش از منابع موجود سيستم نباشد.
-3.9) در شاخه  pgsql_tmp  چه چيزي قرار دارد؟
-دراين شاخه فايلهاي موقتي قرار دارد كه با اجراي درخواستها به وجود آمده است. به 
-عنوان مثال اگر براي اجراي دستور order by نياز به انجام مرتب سازي باشد و در صورتي 
-كه حافظه مشخص شده با گزينه S- براي اينكار كافي نباشد سيستم يك فايل موقت در اين 
-شاخه ايجاد مي‌كند تا عمل مرتب سازي را انجام دهد.
-فايلهاي موقت معمولاً به صورت اتوماتيك پاك مي‌شود اما اگر postgreSQL در حين مرتب 
-سازي crash‌ كند آن فايلها باقي مي‌مانند. با stop و start كردن برنامه postmaster 
-اين فايلها پاك مي‌شوند.
-3.10) چرا براي به روز كردن نسخه پايگاه داده من بايد كل داده ها را dump‌ و مجدداً 
-restore كنم؟
-تيم برنامه نويس postgreSQL در نسخه‌هاي ارائه شده كه فقط minor آنها متفاوت است 
-فقط تغييرات كوچكي اعمال مي‌كنند؛ بنابراين براي به روز كردن از نسخه 7.2‌به 7.2.1 
-نيازي به dump و restore نيست. اما در نسخه‌هايي كه major آنها تغيير مي‌كند غالباً 
-ساختار داخلي جداول و فايلهاي داده تغيير مي‌كند. اين تغييرات معمولاً‌ پيچيده 
-هستند. براي انتقال داده‌هاي موجود در پايگاه داده در اين حالت بايد ‌از dump و 
-restore استفاده كرد.
-در نسخه‌هايي كه ساختار روي ديسك تغييري نمي‌كند مي توان از برنامه pg_upgrade براي 
-به روز كردن پايگاه داده استفاده كرد بدون اينكه نيازي به استفاده از dump و 
-restore  باشد. در يادداشتي كه به همراه هر توزيع مي‌آيد ذكر شده است كه آيا برنامه 
-pg_upgrade براي اين توزيع وجود دارد يا خير.
-3.11) از چه سخت افزاري بايد استفاده كنم؟
-
-چون اكثر سخت‌افزارهاي PC  سازگار هستند مردم فكر مي‌كنند كه كيفيت آنها نيز يكسان 
-است. در حاليكه اينطور نيست. استفاده از هاردهاي SCSI و حافظه‌هاي ECC و مادربردهاي 
-با كيفيت بالا نسبت به سخت افزارهاي ارزانتر نتايج بهتري از نظر كارايي و پايداري 
-سيستم بهمراه خواهد داشت. PostgreSQL روي بيشتر سخت افزارها اجرا مي‌شود اما اگر 
-كارايي و اطمينان فاكتورهاي مهمي هستند بايد سخت افزار مناسب استفاده شود. در 
-گروههاي پستي در مورد سخت افزار مناسب  و انتخاب آن بحث شده است. 
 
-
-
-سوالات عملياتي
-4.1) تفاوت بين binary cursors و Normal cursors چيست؟
-راهنماي دستور DECLARE‌ را مطالعه كنيد.
-4.2) من چگونه مي‌توانم فقط روي چند رديف اول يا يك رديف تصادفي درخواست SELECT‌ 
-بزنم؟
-راهنماي دستور FETCH  يا SELECT...LIMIT را ببينيد.
-در واقع كل درخواست بايد بررسي و ارزيابي شود حتي اگر شما فقط چند رديف اول را 
-بخواهيد. براي مثال درخواست ORDER BY را در نظر بگيريد. اگر انديس يا نمايه‌اي براي 
-ORDER BY وجود داشته باشد،‌postgreSQL‌ ممكن است بتواند فقط چند سطر اول درخواستي 
-را ارزيابي كند و يا اينكه كل درخواست پردازش شود تا تعداد رديف‌هاي درخواستي توليد 
-شود.
-براي انتخاب يك سطر تصادفي به روش زير عمل مي‌كنيم:
+   a+y+n+ k+a+r+ y+k+ f+a+y+l+ log d+r+ b+a+l+a+t+r+y+n+ sna+x+h+
+   PostgreSQL a+y+g+a+d+ m+y+k+n+d+. a+y+n+ f+a+y+l+ hka+w+y+
+   a+tjl+a+e+a+t+ m+f+y+d+y+ d+r+ m+w+r+d+ m+s+a+yHl+ w+ x+tja+h+a+y+y+
+   a+s+t+ k+h+ b+r+a+y+ s+r+w+r+ a+t+f+a+q+ a+f+t+a+d+h+ a+s+t+. b+r+a+y+
+   d+y+d+n+ g+z+yHy+a+t+ b+y+snt+r+ m+y+t+w+a+n+ a+z+ d-  b+h+ h+m+r+a+h+
+   f+r+m+a+n+ postmaster a+s+t+f+a+d+h+ k+r+d+. gfz+y+n+h+ d-
+   h+m+tcn+y+n+ y+k+ e+d+d+ m+y+gfy+r+d+ k+h+ n+sna+n+ d+h+n+d+h+ s+tjhk
+   g+z+yHy+a+t+y+ a+s+t+ k+h+ d+r+ Logf+a+y+l+ n+w+snt+h+ m+y+snw+d+.
+   b+a+ b+a+l+a+b+r+d+n+ a+y+n+ e+d+d+ hkg+m+ a+tjl+a+e+a+t+ t+w+l+y+d+
+   snd+h+ d+r+ Logf+a+y+l+ n+y+z+ a+f+z+a+y+sn m+y+y+a+b+d+.
+   
+   a+gfr+ postmaster d+r+ hka+l+ a+g+r+a+ n+b+a+snd+,+ m+y+t+w+a+n+y+m+
+   postgres r+a+ b+h+ tjw+r+ m+s+t+q+y+m+ a+z+ x+tj f+r+m+a+n+ a+g+r+a+
+   k+r+d+h+ w+  d+s+t+w+r+a+t+ SQL r+a+ b+h+ aMn+ b+d+h+y+m+. a+y+n+
+   k+a+r+ f+q+tj b+r+a+y+ a+snk+a+l+y+a+b+y+ t+w+c+y+h+ m+y+snw+d+.
+   t+w+g+h+ k+n+y+d+ k+h+ d+r+ a+y+n+ hka+l+t+ y+k+ d+s+t+w+r+ b+a+
+   k+a+r+a+k+t+r+ newline x+a+t+m+h+ p+y+d+a+ m+y+k+n+d+ w+ n+h+ b+a+ ;.
+   a+gfr+ postmaster r+a+ b+a+ a+m+k+a+n+a+t+ a+snk+a+l+y+a+b+y+
+   k+a+m+p+y+l+ k+r+d+h+ b+a+sny+d+ m+y+t+w+a+n+y+d+ b+a+ a+s+t+f+a+d+h+
+   a+z+ y+k+ b+r+n+a+m+h+ a+snk+a+l+y+a+b+ a+g+r+a+y+ b+r+n+a+m+h+ r+a+
+   m+w+n+y+t+w+r+ k+n+y+d+.
+   
+   a+gfr+ postmaster d+r+ hka+l+ a+g+r+a+ b+a+snd+ b+a+ d+s+t+w+r+ psql
+   m+y+t+w+a+n+ b+h+ postgres m+t+c+l+ snd+. b+a+ p+y+d+a+ k+r+d+n+ PID
+   f+r+a+y+n+d+ postgres k+h+ psql b+h+ aMn+ m+t+c+l+ snd+h+ a+s+t+ m+y+
+   t+w+a+n+ aMn+ r+a+ m+w+n+y+t+w+r+ k+r+d+. b+r+a+y+ a+y+n+k+a+r+
+   b+a+y+d+ y+k+ b+r+n+a+m+h+ a+snk+a+l+y+a+b+ r+a+ b+h+ aMn+ pid
+   m+t+c+l+ k+r+d+. a+gfr+ b+x+w+a+h+y+m+ b+a+l+a+ aMm+d+n+ postgres r+a+
+   m+w+n+y+t+w+r+ k+n+y+m+ k+a+f+y+ a+s+t+ "PGOPTIONS="-W n w+ psql r+a+
+   a+g+r+a+ k+n+y+m+. a+y+n+ k+a+r+ b+a+e+tk m+y+snw+d+ k+h+ postgres
+   b+a+ n tka+n+y+h+ t+a+x+y+r+ a+g+r+a+ snw+d+ w+ d+r+ a+y+n+ f+a+c+l+h+
+   snm+a+ m+y+t+w+a+n+y+d+ b+r+n+a+m+h+ a+snk+a+l+y+a+b+ r+a+ b+h+ aMn+
+   m+t+c+l+ k+r+d+h+ w+ b+a+ q+r+a+r+ d+a+d+n+ y+k+ n+q+tjh+ t+w+q+f+
+   r+w+n+d+ a+g+r+a+y+ aMn+ r+a+ m+w+n+y+t+w+r+ k+n+y+d+.
+   
+   postgres gfz+y+n+h+h+a+y+ s- w+ A- w+ t- d+a+r+d+ k+h+ b+r+a+y+
+   p+y+d+a+ k+r+d+n+ a+snk+a+l+a+t+ b+s+y+a+r+ m+n+a+s+b+ h+s+t+n+d+.
+   
+   snm+a+ m+y+t+w+a+n+y+d+ postgreSQL r+a+ b+a+ a+m+k+a+n+a+t+ profiling
+   k+a+m+p+y+l+ k+n+y+d+. a+y+n+ k+a+r+ b+a+e+tk m+y+snw+d+ k+h+ z+m+a+n+
+   a+g+r+a+y+ d+q+y+q+ h+r+ t+a+b+e+ d+r+ b+r+n+a+m+h+ m+snx+c+ snw+d+.
+   x+r+w+g+y+h+a+y+ t+w+l+y+d+ snd+h+ d+r+ a+y+n+ hka+l+t+ d+r+ f+a+y+l+
+   DLINUX_PROFILE. r+y+x+t+h+ m+y+snw+d+.
+   
+    3.8) tcr+a+ m+w+q+e+y+ k+h+ m+n+ m+y+x+w+a+h+m+ b+h+ p+a+y+gfa+h+ d+a+d+h+
+    w+c+l+ snw+m+ p+y+a+m+ "Sorry, too many clients" m+y+gfy+r+m+?+
+    
+   snm+a+ b+a+y+d+ hkd+a+k+tkr+ t+e+d+a+d+ f+r+a+y+n+d+h+a+y+
+   h+m+z+m+a+n+ postmaster r+a+ a+f+z+a+y+sn d+h+y+d+. m+q+d+a+r+ p+y+sn
+   f+r+dd 32 a+s+t+. b+r+a+y+ a+f+z+a+y+sn aMn+ m+y+t+w+a+n+ a+z+
+   gfz+y+n+h+ N- a+s+t+f+a+d+h+ k+r+d+ w+ y+a+ f+a+y+l+ postgresql.conf
+   r+a+ a+c+l+a+hk n+m+w+d+
+   
+   t+w+g+h+ k+n+y+d+ k+h+ a+gfr+ N- m+q+d+a+r+y+ b+y+snt+r+ a+z+ 32
+   d+a+snt+h+ b+a+snd+ b+a+y+d+ m+q+d+a+r+ B- r+a+ n+y+z+ a+f+z+a+y+sn
+   d+h+y+m+. a+y+n+ m+q+d+a+r+ b+a+y+d+ hkd+a+q+l+ d+w+ b+r+a+b+r+
+   m+q+d+a+r+ N- b+a+snd+. b+r+a+y+ a+e+d+a+d+ x+y+l+y+ b+a+l+a+ b+a+y+d+
+   b+e+ddy+ a+z+ p+a+r+a+m+t+r+h+a+y+ k+r+n+l+ r+a+ n+y+z+ a+c+l+a+hk
+   k+r+d+. p+a+r+a+m+t+r+h+a+y+y+ n+zHy+r+ hkd+a+k+tkr+ a+n+d+a+z+h+
+   hka+f+zHh+ a+snt+r+a+k+y+ SHMMAX ,+ hkd+a+k+tkr+ t+e+d+a+d+
+   s+m+a+f+w+r+h+a+ SEMMNI w+ SEMMNS ,+ hkd+a+k+tkr+ t+e+d+a+d+
+   f+r+a+y+n+d+h+a+ NPROC,+ hkd+a+k+tkr+ f+r+a+y+n+d+h+a+y+ y+k+
+   k+a+r+b+r+ MAXUPRC w+ hkd+a+k+tkr+ f+a+y+l+h+a+y+ b+a+z+ NFILE w+
+   NINODE. y+k+y+ a+z+ d+l+a+y+l+y+ k+h+ t+e+d+a+d+ a+t+c+a+l+a+t+
+   h+m+z+m+a+n+ postgreSQL m+hkd+w+d+ a+s+t+ aMn+ a+s+t+ k+h+
+   n+y+a+z+h+a+y+ PostgreSQL b+y+sn a+z+ m+n+a+b+e+ m+w+g+w+d+ s+y+s+t+m+
+   n+b+a+snd+.
+   
+    3.9) d+r+ sna+x+h+  pgsql_tmp  tch+ tcy+z+y+ q+r+a+r+ d+a+r+d+?+
+    
+   d+r+a+y+n+ sna+x+h+ f+a+y+l+h+a+y+ m+w+q+t+y+ q+r+a+r+ d+a+r+d+ k+h+
+   b+a+ a+g+r+a+y+ d+r+x+w+a+s+t+h+a+ b+h+ w+g+w+d+ aMm+d+h+ a+s+t+. b+h+
+   e+n+w+a+n+ m+tka+l+ a+gfr+ b+r+a+y+ a+g+r+a+y+ d+s+t+w+r+ order by
+   n+y+a+z+ b+h+ a+n+g+a+m+ m+r+t+b+ s+a+z+y+ b+a+snd+ w+ d+r+ c+w+r+t+y+
+   k+h+ hka+f+zHh+ m+snx+c+ snd+h+ b+a+ gfz+y+n+h+ S- b+r+a+y+
+   a+y+n+k+a+r+ k+a+f+y+ n+b+a+snd+ s+y+s+t+m+ y+k+ f+a+y+l+ m+w+q+t+
+   d+r+ a+y+n+ sna+x+h+ a+y+g+a+d+ m+y+k+n+d+ t+a+ e+m+l+ m+r+t+b+
+   s+a+z+y+ r+a+ a+n+g+a+m+ d+h+d+.
+   
+   f+a+y+l+h+a+y+ m+w+q+t+ m+e+m+w+l+a+:+ b+h+ c+w+r+t+ a+t+w+m+a+t+y+k+
+   p+a+k+ m+y+snw+d+ a+m+a+ a+gfr+ postgreSQL d+r+ hky+n+ m+r+t+b+
+   s+a+z+y+ crash k+n+d+ aMn+ f+a+y+l+h+a+ b+a+q+y+ m+y+m+a+n+n+d+. b+a+
+   stop w+ start k+r+d+n+ b+r+n+a+m+h+ postmaster a+y+n+ f+a+y+l+h+a+
+   p+a+k+ m+y+snw+n+d+.
+   
+    3.10) tcr+a+ b+r+a+y+ b+h+ r+w+z+ k+r+d+n+ n+s+x+h+ p+a+y+gfa+h+ d+a+d+h+
+    m+n+ b+a+y+d+ k+l+ d+a+d+h+ h+a+ r+a+ dump w+ m+g+d+d+a+:+ restore k+n+m+?+
+    
+   t+y+m+ b+r+n+a+m+h+ n+w+y+s+ postgreSQL d+r+ n+s+x+h+h+a+y+ a+r+a+yHh+
+   snd+h+ k+h+ f+q+tj minor aMn+h+a+ m+t+f+a+w+t+ a+s+t+ f+q+tj
+   t+i+y+y+r+a+t+ k+w+tck+y+ a+e+m+a+l+ m+y+k+n+n+d+;+ b+n+a+b+r+a+y+n+
+   b+r+a+y+ b+h+ r+w+z+ k+r+d+n+ a+z+ n+s+x+h+ 7.2b+h+ 7.2.1 n+y+a+z+y+
+   b+h+ dump w+ restore n+y+s+t+. a+m+a+ d+r+ n+s+x+h+h+a+y+y+ k+h+ major
+   aMn+h+a+ t+i+y+y+r+ m+y+k+n+d+ i+a+l+b+a+:+ s+a+x+t+a+r+ d+a+x+l+y+
+   g+d+a+w+l+ w+ f+a+y+l+h+a+y+ d+a+d+h+ t+i+y+y+r+ m+y+k+n+d+. a+y+n+
+   t+i+y+y+r+a+t+ m+e+m+w+l+a+:+ p+y+tcy+d+h+ h+s+t+n+d+. b+r+a+y+
+   a+n+t+q+a+l+ d+a+d+h+h+a+y+ m+w+g+w+d+ d+r+ p+a+y+gfa+h+ d+a+d+h+ d+r+
+   a+y+n+ hka+l+t+ b+a+y+d+ a+z+ dump w+ restore a+s+t+f+a+d+h+ k+r+d+.
+   
+   d+r+ n+s+x+h+h+a+y+y+ k+h+ s+a+x+t+a+r+ r+w+y+ d+y+s+k+ t+i+y+y+r+y+
+   n+m+y+k+n+d+ m+y+ t+w+a+n+ a+z+ b+r+n+a+m+h+ pg_upgrade b+r+a+y+ b+h+
+   r+w+z+ k+r+d+n+ p+a+y+gfa+h+ d+a+d+h+ a+s+t+f+a+d+h+ k+r+d+ b+d+w+n+
+   a+y+n+k+h+ n+y+a+z+y+ b+h+ a+s+t+f+a+d+h+ a+z+ dump w+ restore
+   b+a+snd+. d+r+ y+a+d+d+a+snt+y+ k+h+ b+h+ h+m+r+a+h+ h+r+ t+w+z+y+e+
+   m+y+aMy+d+ dkk+r+ snd+h+ a+s+t+ k+h+ aMy+a+ b+r+n+a+m+h+ pg_upgrade
+   b+r+a+y+ a+y+n+ t+w+z+y+e+ w+g+w+d+ d+a+r+d+ y+a+ x+y+r+.
+   
+    3.11) a+z+ tch+ s+x+t+ a+f+z+a+r+y+ b+a+y+d+ a+s+t+f+a+d+h+ k+n+m+?+
+    
+   tcw+n+ a+k+tkr+ s+x+t+a+f+z+a+r+h+a+y+ PC  s+a+z+gfa+r+ h+s+t+n+d+
+   m+r+d+m+ f+k+r+ m+y+k+n+n+d+ k+h+ k+y+f+y+t+ aMn+h+a+ n+y+z+
+   y+k+s+a+n+ a+s+t+. d+r+ hka+l+y+k+h+ a+y+n+tjw+r+ n+y+s+t+.
+   a+s+t+f+a+d+h+ a+z+ h+a+r+d+h+a+y+ SCSI w+ hka+f+zHh+h+a+y+ ECC w+
+   m+a+d+r+b+r+d+h+a+y+ b+a+ k+y+f+y+t+ b+a+l+a+ n+s+b+t+ b+h+ s+x+t+
+   a+f+z+a+r+h+a+y+ a+r+z+a+n+t+r+ n+t+a+y+g+ b+h+t+r+y+ a+z+ n+zHr+
+   k+a+r+a+y+y+ w+ p+a+y+d+a+r+y+ s+y+s+t+m+ b+h+m+r+a+h+ x+w+a+h+d+
+   d+a+snt+. PostgreSQL r+w+y+ b+y+snt+r+ s+x+t+ a+f+z+a+r+h+a+ a+g+r+a+
+   m+y+snw+d+ a+m+a+ a+gfr+ k+a+r+a+y+y+ w+ a+tjm+y+n+a+n+
+   f+a+k+t+w+r+h+a+y+ m+h+m+y+ h+s+t+n+d+ b+a+y+d+ s+x+t+ a+f+z+a+r+
+   m+n+a+s+b+ a+s+t+f+a+d+h+ snw+d+. d+r+ gfr+w+h+h+a+y+ p+s+t+y+ d+r+
+   m+w+r+d+ s+x+t+ a+f+z+a+r+ m+n+a+s+b+  w+ a+n+t+x+a+b+ aMn+ b+hktk
+   snd+h+ a+s+t+.
+     _________________________________________________________________
+   
+                        s+w+a+l+a+t+ e+m+l+y+a+t+y+
+                                      
+    4.1) t+f+a+w+t+ b+y+n+ binary cursors w+ Normal cursors tcy+s+t+?+
+    
+   r+a+h+n+m+a+y+ d+s+t+w+r+ DECLARE r+a+ m+tja+l+e+h+ k+n+y+d+.
+   
+    4.2) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ f+q+tj r+w+y+ tcn+d+ r+d+y+f+ a+w+l+
+    y+a+ y+k+ r+d+y+f+ t+c+a+d+f+y+ d+r+x+w+a+s+t+ SELECT b+z+n+m+?+
+    
+   r+a+h+n+m+a+y+ d+s+t+w+r+ FETCH  y+a+ SELECT...LIMIT r+a+
+   b+b+y+n+y+d+.
+   
+   d+r+ w+a+q+e+ k+l+ d+r+x+w+a+s+t+ b+a+y+d+ b+r+r+s+y+ w+
+   a+r+z+y+a+b+y+ snw+d+ hkt+y+ a+gfr+ snm+a+ f+q+tj tcn+d+ r+d+y+f+
+   a+w+l+ r+a+ b+x+w+a+h+y+d+. b+r+a+y+ m+tka+l+ d+r+x+w+a+s+t+ ORDER BY
+   r+a+ d+r+ n+zHr+ b+gfy+r+y+d+. a+gfr+ a+n+d+y+s+ y+a+ n+m+a+y+h+a+y+
+   b+r+a+y+ ORDER BY w+g+w+d+ d+a+snt+h+ b+a+snd+,+postgreSQL m+m+k+n+
+   a+s+t+ b+t+w+a+n+d+ f+q+tj tcn+d+ s+tjr+ a+w+l+ d+r+x+w+a+s+t+y+ r+a+
+   a+r+z+y+a+b+y+ k+n+d+ w+ y+a+ a+y+n+k+h+ k+l+ d+r+x+w+a+s+t+
+   p+r+d+a+z+sn snw+d+ t+a+ t+e+d+a+d+ r+d+y+f+h+a+y+ d+r+x+w+a+s+t+y+
+   t+w+l+y+d+ snw+d+.
+   
+   b+r+a+y+ a+n+t+x+a+b+ y+k+ s+tjr+ t+c+a+d+f+y+ b+h+ r+w+sn z+y+r+
+   e+m+l+ m+y+k+n+y+m+:
+   
     SELECT col
     FROM tab
     ORDER BY random()
     LIMIT 1;
-4.3) من چگونه مي‌توانم ليستي از جداول يا ساير چيزهايي كه در psql‌ وجود دارد را 
-ببينم؟
-براي ديدن ليست جداول دستور  dt\ را در برنامه psql‌ استفاده كنيد. براي ديدن ليست 
-كامل فرمانها ?\ را اجرا كنيد. راه ديگر خواندن متن برنامه psql‌ است كه در شاخه 
-pgsql/src/bin/psql/describe.c ‌قرار دارد. اين فايل حاوي فرامين SQLيي است كه 
-خروجي را براي  دستوراتي كه با \‌در psql شروع مي‌شوند توليد مي‌كنند. راه ديگر 
-اجراي psql با گزينه E-‌است. اينكار باعث مي‌شود كه psql قبل از اجرا هر دستور 
-SQL‌متناظر آن را نشان دهد. PostgreSQL‌همچنين يك برنامه SQLi دارد كه مي‌توان با 
-استفاده از آن  اطلاعات داخلي پايگاه داده را استخراج كرد.
-4.4) چگونه يك ستون جدول را حذف مي‌كنيد؟ چگونه نوع داده آن را عوض كنيم؟
-حذف يك ستون در توزيع 7.3 با استفاده از دستور ALTER TABLE DROP COLUMN اضافه شده 
-است. در نسخه‌هاي قبلي به روش زير عمل كنيد:
+
+    4.3) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ l+y+s+t+y+ a+z+ g+d+a+w+l+ y+a+
+    s+a+y+r+ tcy+z+h+a+y+y+ k+h+ d+r+ psql w+g+w+d+ d+a+r+d+ r+a+ b+b+y+n+m+?+
+    
+   b+r+a+y+ d+y+d+n+ l+y+s+t+ g+d+a+w+l+ d+s+t+w+r+  dt\ r+a+ d+r+
+   b+r+n+a+m+h+ psql a+s+t+f+a+d+h+ k+n+y+d+. b+r+a+y+ d+y+d+n+ l+y+s+t+
+   k+a+m+l+ f+r+m+a+n+h+a+ ?\ r+a+ a+g+r+a+ k+n+y+d+. r+a+h+ d+y+gfr+
+   x+w+a+n+d+n+ m+t+n+ b+r+n+a+m+h+ psql a+s+t+ k+h+ d+r+ sna+x+h+
+   pgsql/src/bin/psql/describe.c q+r+a+r+ d+a+r+d+. a+y+n+ f+a+y+l+
+   hka+w+y+ f+r+a+m+y+n+ SQLy+y+ a+s+t+ k+h+ x+r+w+g+y+ r+a+ b+r+a+y+
+   d+s+t+w+r+a+t+y+ k+h+ b+a+ \d+r+ psql snr+w+e+ m+y+snw+n+d+ t+w+l+y+d+
+   m+y+k+n+n+d+. r+a+h+ d+y+gfr+ a+g+r+a+y+ psql b+a+ gfz+y+n+h+ E-
+   a+s+t+. a+y+n+k+a+r+ b+a+e+tk m+y+snw+d+ k+h+ psql q+b+l+ a+z+
+   a+g+r+a+ h+r+ d+s+t+w+r+ SQLm+t+n+a+zHr+ aMn+ r+a+ n+sna+n+ d+h+d+.
+   PostgreSQLh+m+tcn+y+n+ y+k+ b+r+n+a+m+h+ SQLi d+a+r+d+ k+h+ m+y+
+   t+w+a+n+ b+a+ a+s+t+f+a+d+h+ a+z+ aMn+  a+tjl+a+e+a+t+ d+a+x+l+y+
+   p+a+y+gfa+h+ d+a+d+h+ r+a+ a+s+t+x+r+a+g+ k+r+d+.
+   
+    4.4) tcgfw+n+h+ y+k+ s+t+w+n+ g+d+w+l+ r+a+ hkdkf+ m+y+k+n+y+d+?+
+    tcgfw+n+h+ n+w+e+ d+a+d+h+ aMn+ r+a+ e+w+dd k+n+y+m+?+
+    
+   hkdkf+ y+k+ s+t+w+n+ d+r+ t+w+z+y+e+ 7.3 b+a+ a+s+t+f+a+d+h+ a+z+
+   d+s+t+w+r+ ALTER TABLE DROP COLUMN a+dda+f+h+ snd+h+ a+s+t+. d+r+
+   n+s+x+h+h+a+y+ q+b+l+y+ b+h+ r+w+sn z+y+r+ e+m+l+ k+n+y+d+:
+   
     BEGIN;
     LOCK TABLE old_table;
-    SELECT ...  -- تمام ستونها غير از ستوني كه مي‌خواهيد آن را حذف كنيد را در اينجا بياوريد
+    SELECT ...  -- t+m+a+m+ s+t+w+n+h+a+ i+y+r+ a+z+ s+t+w+n+y+ k+h+ m+y+x+w+a+h+y+d+ aMn+ r+a+ hkdkf+ k+n+y+d+ r+a+ d+r+ a+y+n+g+a+ b+y+a+w+r+y+d+
     INTO TABLE new_table
     FROM old_table;
     DROP TABLE old_table;
     ALTER TABLE new_table RENAME TO old_table;
     COMMIT;
-براي عوض كردن نوع داده يك ستون به روش زير عمل كنيد:
+
+   b+r+a+y+ e+w+dd k+r+d+n+ n+w+e+ d+a+d+h+ y+k+ s+t+w+n+ b+h+ r+w+sn
+   z+y+r+ e+m+l+ k+n+y+d+:
+   
     BEGIN;
     ALTER TABLE tab ADD COLUMN new_col new_data_type;
     UPDATE tab SET new_col = CAST(old_col AS new_data_type);
     ALTER TABLE tab DROP COLUMN old_col;
     COMMIT;
-4.5) حداكثر اندازه يك رديف،‌ جدول و خود پايگاه داده چقدر است؟
-محدوديتها عبارتند از:
-    حداكثر اندازه پايگاه داده             نامحدود (تا 32 ترابايت وجود دارد)
-    حداكثر اندازه يك جدول               32 ترابايت
-    حداكثر ا ندازه يك رديف              1.6 ترابايت
-    حداكثر اندازه يك فيلد                1 گيگا بايت
-    حداكثر اندازه رديفهاي يك جدول  نا محدود
-    حداكثر ستونهاي يك جدول  بسته به نوع جدول بين 250 تا 6000 
-    حداكثر انديسهاي يك جدول    نا محدود
-البته در حالت نامحدود نيز ما محدود به حجم هاردديسك و فضاي حافظه خواهيم بود. در 
-صورتي که مقادير مشخص شده به عنوان نامحدود به صورت غير معمولي بزرك شوند كارايي 
-سيستم كاهش خواهد يافت.
-براي ذخيره كردن جداول با اندازه خيلي بزرگ نيازي نيست كه سيستم عامل امكان ايجاد 
-فايلهاي بزرگ را داشته باشد. بلكه جداول خيلي بزرگ به صورت فايلهايي به حجم يك گيگا 
-بايت نگاهداري مي‌شوند.
-اگر اندازه بلوكهاي داده را برابر 32 كيلو بايت قرار دهيم حداكثر اندازه جدول و 
-حداكثر تعداد ستونها 4 برابر خواهد شد.
-4.6) چقدر فضاي ديسك سخت براي ذخيره كردن داده‌‌هاي يك فايل متني مورد نياز است؟
-يك پايگاه داده PostgreSQL‌ تا 5 برابر فضايي روي هاردديسك براي نگاهداري يك فايل 
-متني نياز دارد.
-به عنوان مثال يك فايل با 100000 خط را در نظر بگيريد كه در هر خط يك عدد صحيح و يك 
-توضيح متني آمده است. فرض كنيد كه رشته متني به طور متوسط 20 بايت باشد. اندازه 
-فايل برابر 2.8 مگا بايت خواهد بود ولي PostgreSQL براي نگاهداري اين فايل به 6.4 
-مگا بايت اطلاعات نياز خواهد داشت.
-    32 bytes: اندازه سرايند هر خط به طور تقريبي
-    24 bytes: يك عدد صحيح و يك رشته 24 بايتي
-   + 4 bytes: اشاره گر روي صفحه به يك چندتايي
+
+    4.5) hkd+a+k+tkr+ a+n+d+a+z+h+ y+k+ r+d+y+f+,+ g+d+w+l+ w+ x+w+d+
+    p+a+y+gfa+h+ d+a+d+h+ tcq+d+r+ a+s+t+?+
+    
+   m+hkd+w+d+y+t+h+a+ e+b+a+r+t+n+d+ a+z+:
+   
+    hkd+a+k+tkr+ a+n+d+a+z+h+ p+a+y+gfa+h+ d+a+d+h+             n+a+m+hkd+w+d+(t+a+ 32 t+r+a+b+a+y+t+ w+g+w+d+ d+a+r+d+)
+    hkd+a+k+tkr+ a+n+d+a+z+h+ y+k+ g+d+w+l+               32 t+r+a+b+a+y+t+
+    hkd+a+k+tkr+ a+ n+d+a+z+h+ y+k+ r+d+y+f+              1.6 t+r+a+b+a+y+t+
+    hkd+a+k+tkr+ a+n+d+a+z+h+ y+k+ f+y+l+d+                1 gfy+gfa+ b+a+y+t+
+    hkd+a+k+tkr+ a+n+d+a+z+h+ r+d+y+f+h+a+y+ y+k+ g+d+w+l+  n+a+ m+hkd+w+d+
+    hkd+a+k+tkr+ s+t+w+n+h+a+y+ y+k+ g+d+w+l+   b+s+t+h+ b+h+ n+w+e+ g+d+w+l+ b+y+n+ 250 t+a+ 6000
+    hkd+a+k+tkr+ a+n+d+y+s+h+a+y+ y+k+ g+d+w+l+ n+a+ m+hkd+w+d+
+
+   a+l+b+t+h+ d+r+ hka+l+t+ n+a+m+hkd+w+d+ n+y+z+ m+a+ m+hkd+w+d+ b+h+
+   hkg+m+ h+a+r+d+d+y+s+k+ w+ f+dda+y+ hka+f+zHh+ x+w+a+h+y+m+ b+w+d+.
+   d+r+ c+w+r+t+y+ &#1705;h+ m+q+a+d+y+r+ m+snx+c+ snd+h+ b+h+ e+n+w+a+n+
+   n+a+m+hkd+w+d+ b+h+ c+w+r+t+ i+y+r+ m+e+m+w+l+y+ b+z+r+k+ snw+n+d+
+   k+a+r+a+y+y+ s+y+s+t+m+ k+a+h+sn x+w+a+h+d+ y+a+f+t+.
+   
+   b+r+a+y+ dkx+y+r+h+ k+r+d+n+ g+d+a+w+l+ b+a+ a+n+d+a+z+h+ x+y+l+y+
+   b+z+r+gf n+y+a+z+y+ n+y+s+t+ k+h+ s+y+s+t+m+ e+a+m+l+ a+m+k+a+n+
+   a+y+g+a+d+ f+a+y+l+h+a+y+ b+z+r+gf r+a+ d+a+snt+h+ b+a+snd+. b+l+k+h+
+   g+d+a+w+l+ x+y+l+y+ b+z+r+gf b+h+ c+w+r+t+ f+a+y+l+h+a+y+y+ b+h+
+   hkg+m+ y+k+ gfy+gfa+ b+a+y+t+ n+gfa+h+d+a+r+y+ m+y+snw+n+d+.
+   
+   a+gfr+ a+n+d+a+z+h+ b+l+w+k+h+a+y+ d+a+d+h+ r+a+ b+r+a+b+r+ 32
+   k+y+l+w+ b+a+y+t+ q+r+a+r+ d+h+y+m+ hkd+a+k+tkr+ a+n+d+a+z+h+ g+d+w+l+
+   w+ hkd+a+k+tkr+ t+e+d+a+d+ s+t+w+n+h+a+ 4 b+r+a+b+r+ x+w+a+h+d+ snd+.
+   
+    4.6) tcq+d+r+ f+dda+y+ d+y+s+k+ s+x+t+ b+r+a+y+ dkx+y+r+h+ k+r+d+n+
+    d+a+d+h+h+a+y+ y+k+ f+a+y+l+ m+t+n+y+ m+w+r+d+ n+y+a+z+ a+s+t+?+
+    
+   y+k+ p+a+y+gfa+h+ d+a+d+h+ PostgreSQL t+a+ 5 b+r+a+b+r+ f+dda+y+y+
+   r+w+y+ h+a+r+d+d+y+s+k+ b+r+a+y+ n+gfa+h+d+a+r+y+ y+k+ f+a+y+l+
+   m+t+n+y+ n+y+a+z+ d+a+r+d+.
+   
+   b+h+ e+n+w+a+n+ m+tka+l+ y+k+ f+a+y+l+ b+a+ 100000 x+tj r+a+ d+r+
+   n+zHr+ b+gfy+r+y+d+ k+h+ d+r+ h+r+ x+tj y+k+ e+d+d+ c+hky+hk w+ y+k+
+   t+w+ddy+hk m+t+n+y+ aMm+d+h+ a+s+t+. f+r+dd k+n+y+d+ k+h+ r+snt+h+
+   m+t+n+y+ b+h+ tjw+r+ m+t+w+s+tj 20 b+a+y+t+ b+a+snd+. a+n+d+a+z+h+
+   f+a+y+l+ b+r+a+b+r+ 2.8 m+gfa+ b+a+y+t+ x+w+a+h+d+ b+w+d+ w+l+y+
+   PostgreSQL b+r+a+y+ n+gfa+h+d+a+r+y+ a+y+n+ f+a+y+l+ b+h+ 6.4 m+gfa+
+   b+a+y+t+ a+tjl+a+e+a+t+ n+y+a+z+ x+w+a+h+d+ d+a+snt+.
+   
+    32 bytes: a+n+d+a+z+h+ s+r+a+y+n+d+ h+r+ x+tj b+h+ tjw+r+ t+q+r+y+b+y+
+    24 bytes: y+k+ e+d+d+ c+hky+hk w+ y+k+ r+snt+h+ 24 b+a+y+t+y+
+   + 4 bytes: a+sna+r+h+ gfr+ r+w+y+ c+f+hkh+ b+h+ y+k+ tcn+d+t+a+y+y+
    ----------------------------------------
-    60 bytes در هر رديف
+    60 bytes d+r+ h+r+ r+d+y+f+
 
-اندازه صفحات داده در PostgreSQL برابر با 8 كيلو بايت است
-   8192 تعداد بايت‌ها در هر صفحه
-   -------------------   =  136 تعداد رديف‌ها در يك صفحه پايگاه داده
-     60  تعداد بايت‌هاي هر رديف
+a+n+d+a+z+h+ c+f+hka+t+ d+a+d+h+ d+r+ PostgreSQL b+r+a+b+r+ b+a+ 8 k+y+l+w+ b+a+y+t+ a+s+t+
+   8192 t+e+d+a+d+ b+a+y+t+h+a+ d+r+ h+r+ c+f+hkh+
+   -------------------   =  136 t+e+d+a+d+ r+d+y+f+h+a+ d+r+ y+k+ c+f+hkh+ p+a+y+gfa+h+ d+a+d+h+
+     60  t+e+d+a+d+ b+a+y+t+h+a+y+ h+r+ r+d+y+f+
 
-   100000  تعداد رديفها
-   --------------------  = تعدادصفحات پايگاه داده
-      128 تعداد رديفها در هر صفحه
+   100000  t+e+d+a+d+ r+d+y+f+h+a+
+   --------------------  = t+e+d+a+d+c+f+hka+t+ p+a+y+gfa+h+ d+a+d+h+
+      128 t+e+d+a+d+ r+d+y+f+h+a+ d+r+ h+r+ c+f+hkh+
 
-735 تعداد صفحات * 8192 تعداد بايت‌هاي هر صفحه  =  6,021,120 مگا بايت
-سربار انديسها يا نمايه‌ها از اين مقدار كمتر است ولي چون شامل خود داده‌ها هم هست 
-ممکن است اندازه آنها هم بزرگ شود.
-NULLها به صورت bitmap ذخيره مي‌شوند و از اينرو فضاي بسيار كمي را اشغال مي‌كنند.
-4.7) چگونه مي‌توانم بفهمم كه چه كاربران،‌ پايگاه داده،‌ نمايه و جداولي در سيستم 
-تعريف شده است؟
-psql تعداد زيادي دستور دارد كه با \ شروع مي‌شوند و اين اطلاعات را در اختيار ما 
-قرار مي‌دهند. براي ديدن آنها دستور ?\  را اجرا كنيد.  همچنين جداول سيستمي كه نام 
-آنها با pg_ ‌شروع مي‌شود نيز اين اطلاعات را در خود دارند. اجراي برنامه psql با 
-گزينه l-  نيز باعث نشان دادن ليست تمام پايگاههاي داده مي‌شود.
-همچنين فايل pgsql/src/tutorial/syscat.source نيز فرمانهاي SELECT كه با استفاده 
-از آن مي‌توان اطلاعات پايگاه داده را استخراج كرد شرح داده است.
-4.8) چرا درخواستهاي من كند اجرا مي‌شوند يا چرا از نمايه ها استفاده نمي‌كنند؟
-به طور معمول براي درخواستها از نمايه‌ها استفاده نمي‌شود. تنها در صورتي از 
-نمايه‌ها استفاده مي‌شود كه اندازه جدول از يك اندازه حداقل بزرگتر باشد و درخواست 
-هم فقط قسمتي از رديف‌هاي جدول را انتخاب كرده باشد. دليل اين كار آن است كه 
-دسترسي‌هاي تصادفي به هاردديسك كه به خاطر نمايه‌ها ايجاد مي‌شود ممكن است از 
-خواندن مستقيم جدول يا خواندن ترتيبي ركوردها كندتر باشد.
-براي تعيين اينكه از نمايه استفاده شود يا خير، PostgreSQL بايد اطلاعات آماري را 
-در مورد يك جدول بداند. اين اطلاعات توسط دستور ANALYZE و VACUUM ANALYZE به دست 
-مي‌آيد. با استفاده از اين اطلاعات،‌ بهينه ساز از تعداد رديف‌هاي يك جدول اطلاع 
-پيدا مي‌كند و بهتر مي‌تواند تعيين كند كه آيا از نمايه استفاده شود يا خير. 
-اطلاعات آماري همچنين براي تعيين ترتيب الحاق و روشهاي الحاق به صورت بهينه نيز 
-كاربرد دارد. جمع آوري اطلاعات آماري بايد به صورت دوره‌اي همزمان با تغيير 
-داده‌هاي جدول انجام شود.
-نمايه‌ها به طور معمول همراه با دستور ORDER BY به كار برده نمي‌شوند. براي يك جدول 
-بزرگ يك پيمايش ترتيبي همراه با دستور مرتب سازي از به كار بردن نمايه‌ها سريعتر 
-خواهد بود.
-اما اگر همراه با ORDER BY‌ از LIMIT استفاده شود اغلب از نمايه‌ها استفاده مي‌شود 
-چون فقط قسمتي از جدول برگردانده مي‌شود. در حقيقت هر چند توابع ()MIN‌ و ()MAX از 
-نمايه‌ها استفاده نمي‌كنند ولي مي‌توانيم با استفاده از دستور زير با استفاده از 
-نمايه‌ها و دستور ORDER BY و LIMIT‌ ، آنها را به دست آوريم.
+735 t+e+d+a+d+ c+f+hka+t+ * 8192 t+e+d+a+d+ b+a+y+t+h+a+y+ h+r+ c+f+hkh+  =  6,021,120 m+gfa+ b+a+y+t+
+
+   s+r+b+a+r+ a+n+d+y+s+h+a+ y+a+ n+m+a+y+h+h+a+ a+z+ a+y+n+ m+q+d+a+r+
+   k+m+t+r+ a+s+t+ w+l+y+ tcw+n+ sna+m+l+ x+w+d+ d+a+d+h+h+a+ h+m+ h+s+t+
+   m+m+&#1705;n+ a+s+t+ a+n+d+a+z+h+ aMn+h+a+ h+m+ b+z+r+gf snw+d+.
+   
+   NULLh+a+ b+h+ c+w+r+t+ bitmap dkx+y+r+h+ m+y+snw+n+d+ w+ a+z+
+   a+y+n+r+w+ f+dda+y+ b+s+y+a+r+ k+m+y+ r+a+ a+sni+a+l+ m+y+k+n+n+d+.
+   
+    4.7) tcgfw+n+h+ m+y+t+w+a+n+m+ b+f+h+m+m+ k+h+ tch+ k+a+r+b+r+a+n+,+
+    p+a+y+gfa+h+ d+a+d+h+,+ n+m+a+y+h+ w+ g+d+a+w+l+y+ d+r+ s+y+s+t+m+
+    t+e+r+y+f+ snd+h+ a+s+t+?+
+    
+   psql t+e+d+a+d+ z+y+a+d+y+ d+s+t+w+r+ d+a+r+d+ k+h+ b+a+ \ snr+w+e+
+   m+y+snw+n+d+ w+ a+y+n+ a+tjl+a+e+a+t+ r+a+ d+r+ a+x+t+y+a+r+ m+a+
+   q+r+a+r+ m+y+d+h+n+d+. b+r+a+y+ d+y+d+n+ aMn+h+a+ d+s+t+w+r+ ?\  r+a+
+   a+g+r+a+ k+n+y+d+.  h+m+tcn+y+n+ g+d+a+w+l+ s+y+s+t+m+y+ k+h+ n+a+m+
+   aMn+h+a+ b+a+ pg_ snr+w+e+ m+y+snw+d+ n+y+z+ a+y+n+ a+tjl+a+e+a+t+
+   r+a+ d+r+ x+w+d+ d+a+r+n+d+. a+g+r+a+y+ b+r+n+a+m+h+ psql b+a+
+   gfz+y+n+h+ l-  n+y+z+ b+a+e+tk n+sna+n+ d+a+d+n+ l+y+s+t+ t+m+a+m+
+   p+a+y+gfa+h+h+a+y+ d+a+d+h+ m+y+snw+d+.
+   
+   h+m+tcn+y+n+ f+a+y+l+ pgsql/src/tutorial/syscat.source n+y+z+
+   f+r+m+a+n+h+a+y+ SELECT k+h+ b+a+ a+s+t+f+a+d+h+ a+z+ aMn+ m+y+
+   t+w+a+n+ a+tjl+a+e+a+t+ p+a+y+gfa+h+ d+a+d+h+ r+a+ a+s+t+x+r+a+g+
+   k+r+d+ snr+hk d+a+d+h+ a+s+t+.
+   
+    4.8) tcr+a+ d+r+x+w+a+s+t+h+a+y+ m+n+ k+n+d+ a+g+r+a+ m+y+snw+n+d+ y+a+
+    tcr+a+ a+z+ n+m+a+y+h+ h+a+ a+s+t+f+a+d+h+ n+m+y+k+n+n+d+?+
+    
+   b+h+ tjw+r+ m+e+m+w+l+ b+r+a+y+ d+r+x+w+a+s+t+h+a+ a+z+ n+m+a+y+h+h+a+
+   a+s+t+f+a+d+h+ n+m+y+snw+d+. t+n+h+a+ d+r+ c+w+r+t+y+ a+z+ n+m+a+y+h+
+   h+a+ a+s+t+f+a+d+h+ m+y+snw+d+ k+h+ a+n+d+a+z+h+ g+d+w+l+ a+z+ y+k+
+   a+n+d+a+z+h+ hkd+a+q+l+ b+z+r+gft+r+ b+a+snd+ w+ d+r+x+w+a+s+t+ h+m+
+   f+q+tj q+s+m+t+y+ a+z+ r+d+y+f+h+a+y+ g+d+w+l+ r+a+ a+n+t+x+a+b+
+   k+r+d+h+ b+a+snd+. d+l+y+l+ a+y+n+ k+a+r+ aMn+ a+s+t+ k+h+
+   d+s+t+r+s+y+h+a+y+ t+c+a+d+f+y+ b+h+ h+a+r+d+d+y+s+k+ k+h+ b+h+
+   x+a+tjr+ n+m+a+y+h+h+a+ a+y+g+a+d+ m+y+snw+d+ m+m+k+n+ a+s+t+ a+z+
+   x+w+a+n+d+n+ m+s+t+q+y+m+ g+d+w+l+ y+a+ x+w+a+n+d+n+ t+r+t+y+b+y+
+   r+k+w+r+d+h+a+ k+n+d+t+r+ b+a+snd+.
+   
+   b+r+a+y+ t+e+y+y+n+ a+y+n+k+h+ a+z+ n+m+a+y+h+ a+s+t+f+a+d+h+ snw+d+
+   y+a+ x+y+r+,+ PostgreSQL b+a+y+d+ a+tjl+a+e+a+t+ aMm+a+r+y+ r+a+ d+r+
+   m+w+r+d+ y+k+ g+d+w+l+ b+d+a+n+d+. a+y+n+ a+tjl+a+e+a+t+ t+w+s+tj
+   d+s+t+w+r+ ANALYZE w+ VACUUM ANALYZE b+h+ d+s+t+ m+y+aMy+d+. b+a+
+   a+s+t+f+a+d+h+ a+z+ a+y+n+ a+tjl+a+e+a+t+,+ b+h+y+n+h+ s+a+z+ a+z+
+   t+e+d+a+d+ r+d+y+f+h+a+y+ y+k+ g+d+w+l+ a+tjl+a+e+ p+y+d+a+ m+y+k+n+d+
+   w+ b+h+t+r+ m+y+t+w+a+n+d+ t+e+y+y+n+ k+n+d+ k+h+ aMy+a+ a+z+
+   n+m+a+y+h+ a+s+t+f+a+d+h+ snw+d+ y+a+ x+y+r+. a+tjl+a+e+a+t+
+   aMm+a+r+y+ h+m+tcn+y+n+ b+r+a+y+ t+e+y+y+n+ t+r+t+y+b+ a+l+hka+q+ w+
+   r+w+snh+a+y+ a+l+hka+q+ b+h+ c+w+r+t+ b+h+y+n+h+ n+y+z+ k+a+r+b+r+d+
+   d+a+r+d+. g+m+e+ aMw+r+y+ a+tjl+a+e+a+t+ aMm+a+r+y+ b+a+y+d+ b+h+
+   c+w+r+t+ d+w+r+h+a+y+ h+m+z+m+a+n+ b+a+ t+i+y+y+r+ d+a+d+h+h+a+y+
+   g+d+w+l+ a+n+g+a+m+ snw+d+.
+   
+   n+m+a+y+h+h+a+ b+h+ tjw+r+ m+e+m+w+l+ h+m+r+a+h+ b+a+ d+s+t+w+r+ ORDER
+   BY b+h+ k+a+r+ b+r+d+h+ n+m+y+snw+n+d+. b+r+a+y+ y+k+ g+d+w+l+
+   b+z+r+gf y+k+ p+y+m+a+y+sn t+r+t+y+b+y+ h+m+r+a+h+ b+a+ d+s+t+w+r+
+   m+r+t+b+ s+a+z+y+ a+z+ b+h+ k+a+r+ b+r+d+n+ n+m+a+y+h+h+a+
+   s+r+y+e+t+r+ x+w+a+h+d+ b+w+d+.
+   
+   a+m+a+ a+gfr+ h+m+r+a+h+ b+a+ ORDER BY a+z+ LIMIT a+s+t+f+a+d+h+
+   snw+d+ a+i+l+b+ a+z+ n+m+a+y+h+h+a+ a+s+t+f+a+d+h+ m+y+snw+d+ tcw+n+
+   f+q+tj q+s+m+t+y+ a+z+ g+d+w+l+ b+r+gfr+d+a+n+d+h+ m+y+snw+d+. d+r+
+   hkq+y+q+t+ h+r+ tcn+d+ t+w+a+b+e+ ()MIN w+ ()MAX a+z+ n+m+a+y+h+h+a+
+   a+s+t+f+a+d+h+ n+m+y+k+n+n+d+ w+l+y+ m+y+t+w+a+n+y+m+ b+a+
+   a+s+t+f+a+d+h+ a+z+ d+s+t+w+r+ z+y+r+ b+a+ a+s+t+f+a+d+h+ a+z+
+   n+m+a+y+h+h+a+ w+ d+s+t+w+r+ ORDER BY w+ LIMIT ,+ aMn+h+a+ r+a+ b+h+
+   d+s+t+ aMw+r+y+m+.
+   
     SELECT col
     FROM tab
     ORDER BY col [ DESC ]
     LIMIT 1;
-اگر شما فكر مي‌كنيد كه بهينه ساز سيستم در انتخاب پيمايش ترتيبي اشتباه كرده است 
-با دستور 'SET enable_seqscan TO 'off'  مي‌توانيد ببينيد آيا استفاده از نمايه‌ها 
-باعث افزايش سرعت درخواست‌ها خواهد شد يا خير.
-استفاده از نمايه‌ها هنگامي كه از علائم ويژه نظير LIKE و ~ استفاده مي‌كنيد فقط در 
-بعضي شرايط خاص كه در اينجا ذكر شده است ممكن است:
-  ابتداي رشته جستجو بايد به طور صريح مشخص باشد براي مثال: 
-- دستورات LIKE نبايد با علامت % شروع شوند
-- الگوهاي منظمي كه با ~ مي‌آيد حتماً بايد با علامت ^ شروع شود
-  رشته جستجو نبايد با يك مجموعه از كاراكتر‌ها  مثل [a-e] شروع شود 
-  جستجوهاي غيرحساس به متن مثل  ILIKE‌ و *~ از نمايه‌ها استفاده نمي‌كنند. در عوض 
-  از توابع نمايه‌اي كه در قسمت 4.12 توضيح داده شد استفاده مي‌كنند. 
-  مقدار پيش فرض locale‌ بايد در initdb استفاده شود. 
-4.9) چگونه مي‌توانم نحوه بررسي درخواست را توسط بهينه‌ساز درخواستها مشاهده كنم؟
-راهنماي دستور EXPLAIN را نگاه كنيد.
-4.10) نمايه R-tree‌ چيست؟
-از نمايه R-Tree  براي انديس كردن داده‌هاي فاصله‌اي استفاده مي‌شود. يك نمايه hash 
-نمي‌تواند جستجوهاي محدوده‌اي را انجام دهد. نمايه "B-tree" نيز براي انجام جستجوي 
-محدوده‌اي در يك جهت قابل استفاده است. اما R-Tree مي‌تواند داده‌هاي چند بعدي را 
-نيز پشتيباني كند. براي مثال اگر از نمايه R-tree‌ براي گونه Point استفاده شود 
-سرعت درخواست‌هايي نظير "select all points within a bounding rectangle" به مراتب 
-افزايش مي‌يابد.
-مقاله‌اي كه طراحي R-tree را توضيح داده است 
-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.
-R-tree‌ مي‌تواند چندضلعيها و چند وجهي را پشتيباني كند. در تئوري، R-tree مي‌تواند 
-تعداد  بعدهاي  بالاتري را نيز  پشتيباني كند. در  عمل  توسعه R-tree‌ نياز به كار 
-بيشتري دارد.
-4.11) بهينه ساز تكويني درخواست چيست؟ (Genetic Query Optimizer)
-استفاده از GEQO سرعت بهينه سازي درخواست را هنگاميكه تعداد زيادي جدول را با 
-استفاده از الگوريتم ژنتيك الحاق مي‌كنيم افزايش مي‌دهد.
-4.12) چگونه از عبارات منظم براي جستجو استفاده كنم؟ چگونه جستجويي انجام دهم كه 
-حساس به متن نباشد؟ چگونه براي يك جستجوي غير حساس به متن از نمايه استفاده كنم؟
-براي جستجوي عبارت منظم از عملگر ~‌ استفاده مي‌كنيم. براي جستجوي غير حساس به متن 
-از عملگر *~ و يا ILIKE‌ استفاده مي‌كنيم.
-روش ديگر انجام جستجوي غير حساس به متن در زير نشان داده شده است.
+
+   a+gfr+ snm+a+ f+k+r+ m+y+k+n+y+d+ k+h+ b+h+y+n+h+ s+a+z+ s+y+s+t+m+
+   d+r+ a+n+t+x+a+b+ p+y+m+a+y+sn t+r+t+y+b+y+ a+snt+b+a+h+ k+r+d+h+
+   a+s+t+ b+a+ d+s+t+w+r+ 'SET enable_seqscan TO 'off'  m+y+t+w+a+n+y+d+
+   b+b+y+n+y+d+ aMy+a+ a+s+t+f+a+d+h+ a+z+ n+m+a+y+h+h+a+ b+a+e+tk
+   a+f+z+a+y+sn s+r+e+t+ d+r+x+w+a+s+t+h+a+ x+w+a+h+d+ snd+ y+a+ x+y+r+.
+   
+   a+s+t+f+a+d+h+ a+z+ n+m+a+y+h+h+a+ h+n+gfa+m+y+ k+h+ a+z+ e+l+a+yHm+
+   w+y+zjh+ n+zHy+r+ LIKE w+ ~ a+s+t+f+a+d+h+ m+y+k+n+y+d+ f+q+tj d+r+
+   b+e+ddy+ snr+a+y+tj x+a+c+ k+h+ d+r+ a+y+n+g+a+ dkk+r+ snd+h+ a+s+t+
+   m+m+k+n+ a+s+t+:
+     * a+b+t+d+a+y+ r+snt+h+ g+s+t+g+w+ b+a+y+d+ b+h+ tjw+r+ c+r+y+hk
+       m+snx+c+ b+a+snd+ b+r+a+y+ m+tka+l+:
+       
+   - d+s+t+w+r+a+t+ LIKE n+b+a+y+d+ b+a+ e+l+a+m+t+ % snr+w+e+ snw+n+d+
+   
+   - a+l+gfw+h+a+y+ m+n+zHm+y+ k+h+ b+a+ ~ m+y+aMy+d+ hkt+m+a+:+ b+a+y+d+
+   b+a+ e+l+a+m+t+ ^ snr+w+e+ snw+d+
+     * r+snt+h+ g+s+t+g+w+ n+b+a+y+d+ b+a+ y+k+ m+g+m+w+e+h+ a+z+
+       k+a+r+a+k+t+r+h+a+  m+tkl+ [a-e] snr+w+e+ snw+d+
+     * g+s+t+g+w+h+a+y+ i+y+r+hks+a+s+ b+h+ m+t+n+ m+tkl+  ILIKE w+ *~
+       a+z+ n+m+a+y+h+h+a+ a+s+t+f+a+d+h+ n+m+y+k+n+n+d+. d+r+ e+w+dd
+       a+z+ t+w+a+b+e+ n+m+a+y+h+a+y+ k+h+ d+r+ q+s+m+t+ 4.12 t+w+ddy+hk
+       d+a+d+h+ snd+ a+s+t+f+a+d+h+ m+y+k+n+n+d+.
+     * m+q+d+a+r+ p+y+sn f+r+dd locale b+a+y+d+ d+r+ initdb
+       a+s+t+f+a+d+h+ snw+d+.
+       
+    4.9) tcgfw+n+h+ m+y+t+w+a+n+m+ n+hkw+h+ b+r+r+s+y+ d+r+x+w+a+s+t+ r+a+
+    t+w+s+tj b+h+y+n+h+s+a+z+ d+r+x+w+a+s+t+h+a+ m+sna+h+d+h+ k+n+m+?+
+    
+   r+a+h+n+m+a+y+ d+s+t+w+r+ EXPLAIN r+a+ n+gfa+h+ k+n+y+d+.
+   
+    4.10) n+m+a+y+h+ R-tree tcy+s+t+?+
+    
+   a+z+ n+m+a+y+h+ R-Tree  b+r+a+y+ a+n+d+y+s+ k+r+d+n+ d+a+d+h+h+a+y+
+   f+a+c+l+h+a+y+ a+s+t+f+a+d+h+ m+y+snw+d+. y+k+ n+m+a+y+h+ hash n+m+y+
+   t+w+a+n+d+ g+s+t+g+w+h+a+y+ m+hkd+w+d+h+a+y+ r+a+ a+n+g+a+m+ d+h+d+.
+   n+m+a+y+h+ "B-tree" n+y+z+ b+r+a+y+ a+n+g+a+m+ g+s+t+g+w+y+
+   m+hkd+w+d+h+a+y+ d+r+ y+k+ g+h+t+ q+a+b+l+ a+s+t+f+a+d+h+ a+s+t+.
+   a+m+a+ R-Tree m+y+t+w+a+n+d+ d+a+d+h+h+a+y+ tcn+d+ b+e+d+y+ r+a+
+   n+y+z+ p+snt+y+b+a+n+y+ k+n+d+. b+r+a+y+ m+tka+l+ a+gfr+ a+z+
+   n+m+a+y+h+ R-tree b+r+a+y+ gfw+n+h+ Point a+s+t+f+a+d+h+ snw+d+
+   s+r+e+t+ d+r+x+w+a+s+t+h+a+y+y+ n+zHy+r+ "select all points within a
+   bounding rectangle" b+h+ m+r+a+t+b+ a+f+z+a+y+sn m+y+y+a+b+d+.
+   
+   m+q+a+l+h+a+y+ k+h+ tjr+a+hky+ R-tree r+a+ t+w+ddy+hk d+a+d+h+ a+s+t+
+   
+   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.
+   
+   R-tree m+y+t+w+a+n+d+ tcn+d+ddl+e+y+h+a+ w+ tcn+d+ w+g+h+y+ r+a+
+   p+snt+y+b+a+n+y+ k+n+d+. d+r+ t+yHw+r+y+,+ R-tree m+y+t+w+a+n+d+
+   t+e+d+a+d+  b+e+d+h+a+y+  b+a+l+a+t+r+y+ r+a+ n+y+z+  p+snt+y+b+a+n+y+
+   k+n+d+. d+r+  e+m+l+  t+w+s+e+h+ R-tree n+y+a+z+ b+h+ k+a+r+
+   b+y+snt+r+y+ d+a+r+d+.
+   
+    4.11) b+h+y+n+h+ s+a+z+ t+k+w+y+n+y+ d+r+x+w+a+s+t+ tcy+s+t+?+ (Genetic
+    Query Optimizer)
+    
+   a+s+t+f+a+d+h+ a+z+ GEQO s+r+e+t+ b+h+y+n+h+ s+a+z+y+ d+r+x+w+a+s+t+
+   r+a+ h+n+gfa+m+y+k+h+ t+e+d+a+d+ z+y+a+d+y+ g+d+w+l+ r+a+ b+a+
+   a+s+t+f+a+d+h+ a+z+ a+l+gfw+r+y+t+m+ zjn+t+y+k+ a+l+hka+q+ m+y+
+   k+n+y+m+ a+f+z+a+y+sn m+y+d+h+d+.
+   
+    4.12) tcgfw+n+h+ a+z+ e+b+a+r+a+t+ m+n+zHm+ b+r+a+y+ g+s+t+g+w+
+    a+s+t+f+a+d+h+ k+n+m+?+ tcgfw+n+h+ g+s+t+g+w+y+y+ a+n+g+a+m+ d+h+m+ k+h+
+    hks+a+s+ b+h+ m+t+n+ n+b+a+snd+?+ tcgfw+n+h+ b+r+a+y+ y+k+ g+s+t+g+w+y+
+    i+y+r+ hks+a+s+ b+h+ m+t+n+ a+z+ n+m+a+y+h+ a+s+t+f+a+d+h+ k+n+m+?+
+    
+   b+r+a+y+ g+s+t+g+w+y+ e+b+a+r+t+ m+n+zHm+ a+z+ e+m+l+gfr+ ~
+   a+s+t+f+a+d+h+ m+y+k+n+y+m+. b+r+a+y+ g+s+t+g+w+y+ i+y+r+ hks+a+s+
+   b+h+ m+t+n+ a+z+ e+m+l+gfr+ *~ w+ y+a+ ILIKE a+s+t+f+a+d+h+ m+y+
+   k+n+y+m+.
+   
+   r+w+sn d+y+gfr+ a+n+g+a+m+ g+s+t+g+w+y+ i+y+r+ hks+a+s+ b+h+ m+t+n+
+   d+r+ z+y+r+ n+sna+n+ d+a+d+h+ snd+h+ a+s+t+.
     SELECT *
     FROM tab
     WHERE lower(col) = 'abc';
-اين از نمايه‌هاي استاندارد استفاده نمي‌كند. ولي شما مي توانيد با دستور زير يك 
-نمايه ايجاد كنيد و از آن استفاده كنيد.
+
+   a+y+n+ a+z+ n+m+a+y+h+h+a+y+ a+s+t+a+n+d+a+r+d+ a+s+t+f+a+d+h+ n+m+y+
+   k+n+d+. w+l+y+ snm+a+ m+y+ t+w+a+n+y+d+ b+a+ d+s+t+w+r+ z+y+r+ y+k+
+   n+m+a+y+h+ a+y+g+a+d+ k+n+y+d+ w+ a+z+ aMn+ a+s+t+f+a+d+h+ k+n+y+d+.
     CREATE INDEX tabindex ON tab (lower(col));
-4.13) چگونه مي‌توانم در يك درخواست تشخيص دهم كه يك فيلد NULL‌ است؟
-با استفاده از توابع IS NULL و IS NOT NULL مي‌توانيم NULL بودن يك فيلد را تست 
-كنيم.
-4.14) تفاوت بين گونه‌هاي مختلف character چيست؟
+
+    4.13) tcgfw+n+h+ m+y+t+w+a+n+m+ d+r+ y+k+ d+r+x+w+a+s+t+ t+snx+y+c+ d+h+m+
+    k+h+ y+k+ f+y+l+d+ NULL a+s+t+?+
+    
+   b+a+ a+s+t+f+a+d+h+ a+z+ t+w+a+b+e+ IS NULL w+ IS NOT NULL m+y+
+   t+w+a+n+y+m+ NULL b+w+d+n+ y+k+ f+y+l+d+ r+a+ t+s+t+ k+n+y+m+.
+   
+    4.14) t+f+a+w+t+ b+y+n+ gfw+n+h+h+a+y+ m+x+t+l+f+ character tcy+s+t+?+
+    
 Type            Internal Name   Notes
 --------------------------------------------------
-VARCHAR(n)      varchar      اندازه، حداكثر طول را نشان مي دهد بدون اضافه شدن كاراكتر اضافه
-CHAR(n)            bpchar       كاراكترهاي بلانك براي پر شدن طول مشخص شده استفاده مي‌شود
-TEXT                text            حداكثر طول را مشخص نمي‌كند
-BYTEA               bytea         آرايه‌اي از بايت با طول متغير
-"char"               char           يك كاراكتر
-نام داخلي گونه‌ها را در system catalogue ‌و بعضي از پيغامهاي خطا مي‌توان ديد.
-چهار گونه اول همگي از نوع varlena هستند (4 بايت اول روي ديسك طول را مشخص مي‌كند 
-كه به دنبال آن داده‌ها قرار دارند.)‌بنابراين فضاي واقعي استفاده شده روي ديسك از 
-اندازه تعريف شده بيشتر است. اما اين گونه‌ها را مي‌توان فشرده كرد كه اينكار باعث 
-مي‌شود فضاي كمتري روي ديسك اشغال كنند.
-براي ذخيره رشته‌هاي با طول متغير(VARCHAR(n‌ بهترين انتخاب است. در اين گونه 
-حداكثر طول رشته محدود است بر خلاف text كه هيچ محدوديتي روي حداكثر اندازه رشته 
-نمي‌گذارد.(در اين گونه حداكثر طول يك رشته يك گيگا بايت خواهد بود)
-گونه (CHAR(n  براي ذخيره داده‌هاي با طول يكسان است.يك گونه‌ي (CHAR(n با 
-كاراكترهاي بلانك (خالي) پر مي‌شود تا به طول مشخص شده برسد در حاليكه گونه VARCHAR 
-كاراكترها را به همان صورت كه هستند ذخيره مي‌كند. گونه BYTEA براي ذخيره داده‌هاي 
-باينري است به خصوص داده‌هاي باينري كه شامل بايت‌هاي NULL هستند. از نظر كارايي 
-تمام اين گونه‌ها يكسان هستند.
-4.15.1) چگونه مي‌توانم يك فيلد سريال يا افزايشي ايجاد كنم؟
-PostgreSQL از داده‌هاي سريال پشتيباني مي‌كند. براي ايجاد يك فيلد سريال (براي 
-داشتن يك فيلد منحصر به فرد براي هر رديف )به روش زير عمل كنيد:
-    CREATE TABLE person ( 
-        id   SERIAL, 
-        name TEXT 
+VARCHAR(n)      varchar      a+n+d+a+z+h+,+ hkd+a+k+tkr+ tjw+l+ r+a+ n+sna+n+ m+y+ d+h+d+ b+d+w+n+ a+dda+f+h+ snd+n+ k+a+r+a+k+t+r+ a+dda+f+h+
+CHAR(n)            bpchar       k+a+r+a+k+t+r+h+a+y+ b+l+a+n+k+ b+r+a+y+ p+r+ snd+n+ tjw+l+ m+snx+c+ snd+h+ a+s+t+f+a+d+h+ m+y+snw+d+
+TEXT                text            hkd+a+k+tkr+ tjw+l+ r+a+ m+snx+c+ n+m+y+k+n+d+
+BYTEA               bytea         aMr+a+y+h+a+y+ a+z+ b+a+y+t+ b+a+ tjw+l+ m+t+i+y+r+
+"char"               char           y+k+ k+a+r+a+k+t+r+
+
+   n+a+m+ d+a+x+l+y+ gfw+n+h+h+a+ r+a+ d+r+ system catalogue w+ b+e+ddy+
+   a+z+ p+y+i+a+m+h+a+y+ x+tja+ m+y+t+w+a+n+ d+y+d+.
+   
+   tch+a+r+ gfw+n+h+ a+w+l+ h+m+gfy+ a+z+ n+w+e+ varlena h+s+t+n+d+ (4
+   b+a+y+t+ a+w+l+ r+w+y+ d+y+s+k+ tjw+l+ r+a+ m+snx+c+ m+y+k+n+d+ k+h+
+   b+h+ d+n+b+a+l+ aMn+ d+a+d+h+h+a+ q+r+a+r+ d+a+r+n+d+.)
+   b+n+a+b+r+a+y+n+ f+dda+y+ w+a+q+e+y+ a+s+t+f+a+d+h+ snd+h+ r+w+y+
+   d+y+s+k+ a+z+ a+n+d+a+z+h+ t+e+r+y+f+ snd+h+ b+y+snt+r+ a+s+t+. a+m+a+
+   a+y+n+ gfw+n+h+h+a+ r+a+ m+y+t+w+a+n+ f+snr+d+h+ k+r+d+ k+h+
+   a+y+n+k+a+r+ b+a+e+tk m+y+snw+d+ f+dda+y+ k+m+t+r+y+ r+w+y+ d+y+s+k+
+   a+sni+a+l+ k+n+n+d+.
+   
+   b+r+a+y+ dkx+y+r+h+ r+snt+h+h+a+y+ b+a+ tjw+l+ m+t+i+y+r+(VARCHAR(n
+   b+h+t+r+y+n+ a+n+t+x+a+b+ a+s+t+. d+r+ a+y+n+ gfw+n+h+ hkd+a+k+tkr+
+   tjw+l+ r+snt+h+ m+hkd+w+d+ a+s+t+ b+r+ x+l+a+f+ text k+h+ h+y+tc
+   m+hkd+w+d+y+t+y+ r+w+y+ hkd+a+k+tkr+ a+n+d+a+z+h+ r+snt+h+ n+m+y+
+   gfdka+r+d+.(d+r+ a+y+n+ gfw+n+h+ hkd+a+k+tkr+ tjw+l+ y+k+ r+snt+h+
+   y+k+ gfy+gfa+ b+a+y+t+ x+w+a+h+d+ b+w+d+)
+   
+   gfw+n+h+ (CHAR(n  b+r+a+y+ dkx+y+r+h+ d+a+d+h+h+a+y+ b+a+ tjw+l+
+   y+k+s+a+n+ a+s+t+.y+k+ gfw+n+h+y+ (CHAR(n b+a+ k+a+r+a+k+t+r+h+a+y+
+   b+l+a+n+k+ (x+a+l+y+) p+r+ m+y+snw+d+ t+a+ b+h+ tjw+l+ m+snx+c+ snd+h+
+   b+r+s+d+ d+r+ hka+l+y+k+h+ gfw+n+h+ VARCHAR k+a+r+a+k+t+r+h+a+ r+a+
+   b+h+ h+m+a+n+ c+w+r+t+ k+h+ h+s+t+n+d+ dkx+y+r+h+ m+y+k+n+d+. gfw+n+h+
+   BYTEA b+r+a+y+ dkx+y+r+h+ d+a+d+h+h+a+y+ b+a+y+n+r+y+ a+s+t+ b+h+
+   x+c+w+c+ d+a+d+h+h+a+y+ b+a+y+n+r+y+ k+h+ sna+m+l+ b+a+y+t+h+a+y+ NULL
+   h+s+t+n+d+. a+z+ n+zHr+ k+a+r+a+y+y+ t+m+a+m+ a+y+n+ gfw+n+h+h+a+
+   y+k+s+a+n+ h+s+t+n+d+.
+   
+    4.15.1) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ f+y+l+d+ s+r+y+a+l+ y+a+
+    a+f+z+a+y+sny+ a+y+g+a+d+ k+n+m+?+
+    
+   PostgreSQL a+z+ d+a+d+h+h+a+y+ s+r+y+a+l+ p+snt+y+b+a+n+y+ m+y+k+n+d+.
+   b+r+a+y+ a+y+g+a+d+ y+k+ f+y+l+d+ s+r+y+a+l+ (b+r+a+y+ d+a+snt+n+ y+k+
+   f+y+l+d+ m+n+hkc+r+ b+h+ f+r+d+ b+r+a+y+ h+r+ r+d+y+f+ )b+h+ r+w+sn
+   z+y+r+ e+m+l+ k+n+y+d+:
+    CREATE TABLE person (
+        id   SERIAL,
+        name TEXT
     );
-دستور بالا به طور اتوماتيک به دستور زير تبديل مي‌شود:
+
+   d+s+t+w+r+ b+a+l+a+ b+h+ tjw+r+ a+t+w+m+a+t+y+&#1705; b+h+ d+s+t+w+r+
+   z+y+r+ t+b+d+y+l+ m+y+snw+d+:
     CREATE SEQUENCE person_id_seq;
-    CREATE TABLE person ( 
+    CREATE TABLE person (
         id   INT4 NOT NULL DEFAULT nextval('person_id_seq'),
-        name TEXT 
+        name TEXT
     );
-براي ديدن اطلاعات بيشتر به راهنماي دستور create_sequence  مراجعه كنيد. همچنين 
-مي‌توان از OID‌هر رديف به عنوان يك مقدار منحصر به فرد استفاده كرد. اما در اين 
-حالت براي dump كردن و reload‌كردن پايگاه داده بايد دستور pg_dumps‌ را با گزينه 
-o-‌ اجرا كنيد.
-4.15.2) چگونه مي‌توانم مقدار يك درج سريالي را بدانم؟
-يك روش براي گرفتن مقدار بعدي يك فيلد سريال استفاده از تابع ()nextval است. در شبه 
-كُدي كه در ادامه آمده است روش انجام اين كار نشان داده شده است:
+
+   b+r+a+y+ d+y+d+n+ a+tjl+a+e+a+t+ b+y+snt+r+ b+h+ r+a+h+n+m+a+y+
+   d+s+t+w+r+ create_sequence  m+r+a+g+e+h+ k+n+y+d+. h+m+tcn+y+n+ m+y+
+   t+w+a+n+ a+z+ OIDh+r+ r+d+y+f+ b+h+ e+n+w+a+n+ y+k+ m+q+d+a+r+
+   m+n+hkc+r+ b+h+ f+r+d+ a+s+t+f+a+d+h+ k+r+d+. a+m+a+ d+r+ a+y+n+
+   hka+l+t+ b+r+a+y+ dump k+r+d+n+ w+ reloadk+r+d+n+ p+a+y+gfa+h+
+   d+a+d+h+ b+a+y+d+ d+s+t+w+r+ pg_dumps r+a+ b+a+ gfz+y+n+h+ o- a+g+r+a+
+   k+n+y+d+.
+   
+    4.15.2) tcgfw+n+h+ m+y+t+w+a+n+m+ m+q+d+a+r+ y+k+ d+r+g+ s+r+y+a+l+y+ r+a+
+    b+d+a+n+m+?+
+    
+   y+k+ r+w+sn b+r+a+y+ gfr+f+t+n+ m+q+d+a+r+ b+e+d+y+ y+k+ f+y+l+d+
+   s+r+y+a+l+ a+s+t+f+a+d+h+ a+z+ t+a+b+e+ ()nextval a+s+t+. d+r+ snb+h+
+   k+'+d+y+ k+h+ d+r+ a+d+a+m+h+ aMm+d+h+ a+s+t+ r+w+sn a+n+g+a+m+ a+y+n+
+   k+a+r+ n+sna+n+ d+a+d+h+ snd+h+ a+s+t+:
     new_id = execute("SELECT nextval('person_id_seq')");
     execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
-با اجراي دستور فوق مقدار جديد را در متغير new_id نيز خواهيدداشت كه مي‌توانيد آن 
-را در بقيه درخواست‌ها نيز استفاده كنيد. توجه داشته باشيد كه نام SEQUENCEيي كه به 
-طور اتوماتيك ايجاد شده است به صورت table_serialcolumn_seq‌ خواهد بود. كه در آن 
-table‌ نام جدول و serialcolumn نام فيلد سريال جدول مي‌باشد.
-براي ديدن مقدار نسبت داده شده به فيلد سريال نيز مي‌توان از تابع () currval به 
-صورت زير استفاده كرد. 
+
+   b+a+ a+g+r+a+y+ d+s+t+w+r+ f+w+q+ m+q+d+a+r+ g+d+y+d+ r+a+ d+r+
+   m+t+i+y+r+ new_id n+y+z+ x+w+a+h+y+d+d+a+snt+ k+h+ m+y+t+w+a+n+y+d+
+   aMn+ r+a+ d+r+ b+q+y+h+ d+r+x+w+a+s+t+h+a+ n+y+z+ a+s+t+f+a+d+h+
+   k+n+y+d+. t+w+g+h+ d+a+snt+h+ b+a+sny+d+ k+h+ n+a+m+ SEQUENCEy+y+ k+h+
+   b+h+ tjw+r+ a+t+w+m+a+t+y+k+ a+y+g+a+d+ snd+h+ a+s+t+ b+h+ c+w+r+t+
+   table_serialcolumn_seq x+w+a+h+d+ b+w+d+. k+h+ d+r+ aMn+ table n+a+m+
+   g+d+w+l+ w+ serialcolumn n+a+m+ f+y+l+d+ s+r+y+a+l+ g+d+w+l+ m+y+
+   b+a+snd+.
+   
+   b+r+a+y+ d+y+d+n+ m+q+d+a+r+ n+s+b+t+ d+a+d+h+ snd+h+ b+h+ f+y+l+d+
+   s+r+y+a+l+ n+y+z+ m+y+t+w+a+n+ a+z+ t+a+b+e+ () currval b+h+ c+w+r+t+
+   z+y+r+ a+s+t+f+a+d+h+ k+r+d+.
     execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
     new_id = execute("SELECT currval('person_id_seq')");
-و سرانجام شما مي‌توانيد از مقدار OID كه خروجي دستور INSERT  است براي ديدن مقدار 
-پيش فرض استفاده كنيد. هر چند اين روش در همه پلتفرمها قابل استفاده نيست و ضمن 
-اينكه فيلد oid‌ بعد از عدد 4 ميليارد دوباره صفر مي‌شود. در زبان perl با استفاده 
-از DBI و DBD::Pg مقدار oid‌را مي‌توانيد به اين شكل استخراج كنيد: بعد از اجراي 
-()st->execute$ مقدار oid‌ در متغير  sth->pg_oid_status$ ذخيره خواهد شد.
-4.15.3) آیا توابع ()nextval و ()currval منجر به ایجاد شرایط race برای سایر 
-کاربران می شوند؟
-خیر، استفاده از این توابع شرایط race را به وجود نمی آورد.
-4.15.4) چرا اعداد سریالی مربوط به تراکنشهای abort شده مجدداً استفاده نمی شود؟ 
-چرا بین اعداد سریالی یک فاصله خالی ایجاد می شود؟
-برای بالا بردن امکان اجرای همزمان تراکنشها، اعداد سریالی به محض اجرای تراکنش به 
-آنها تخصیص می یابد در این حالت اگر بعضی از تراکنشها abort شوند بین اعداد سریالی 
-استفاده شده یک فاصله خالی به وجود می آید.
-4.16) OID و TID چه هستند؟
-OID راه حل PostgreSQL برای داشتن یک شناسه منحصر به فرد برای هر ردیف است. هر ردیف 
-جدیدی که ایجاد می شود یک OID منحصر به فرد به آن اختصاص می یابد. تمام OIDهایی که 
-در حین initdb ایجاد می شوند از 16384 کمتر هستند و OIDهایی بعداً تولید می شود از 
-این عدد بزرگتر خواهد بود. نکته مهم آن است که OIDها نه تنها در یک جدول شبیه 
-نیستند بلکه در کل پایگاه داده هیچ دو ردیفی دارای OID یکسان نخواهد بود.
-PostgreSQL از OID در سیستم داخلی خود برای ایجاد ارتباط بین ردیفهای جداول مختلف 
-استفاده می کند. توصیه می شود که یک ستون از نوع OID برای ذخیره این فیلد در جدول 
-ایجاد کنید. ساختن یک نمایه برای این فیلد باعث دسترسی سریعتر به آن خواهد شد.
-تمام پایگاههای داده در PostgreSQL برای گرفتن OID جدید از یک ناحیه مرکزی استفاده 
-می کند. ولی اگر بخواهیم OID را به روش دیگری بگیریم و یا اینکه در حین کپی کردن یک 
-جدول بخواهیم OIDهای اصلی آن تغییر نکند به روش زیر می توانیم عمل کنیم:
 
+   w+ s+r+a+n+g+a+m+ snm+a+ m+y+t+w+a+n+y+d+ a+z+ m+q+d+a+r+ OID k+h+
+   x+r+w+g+y+ d+s+t+w+r+ INSERT  a+s+t+ b+r+a+y+ d+y+d+n+ m+q+d+a+r+
+   p+y+sn f+r+dd a+s+t+f+a+d+h+ k+n+y+d+. h+r+ tcn+d+ a+y+n+ r+w+sn d+r+
+   h+m+h+ p+l+t+f+r+m+h+a+ q+a+b+l+ a+s+t+f+a+d+h+ n+y+s+t+ w+ ddm+n+
+   a+y+n+k+h+ f+y+l+d+ oid b+e+d+ a+z+ e+d+d+ 4 m+y+l+y+a+r+d+
+   d+w+b+a+r+h+ c+f+r+ m+y+snw+d+. d+r+ z+b+a+n+ perl b+a+ a+s+t+f+a+d+h+
+   a+z+ DBI w+ DBD::Pg m+q+d+a+r+ oidr+a+ m+y+t+w+a+n+y+d+ b+h+ a+y+n+
+   snk+l+ a+s+t+x+r+a+g+ k+n+y+d+: b+e+d+ a+z+ a+g+r+a+y+ ()st->execute$
+   m+q+d+a+r+ oid d+r+ m+t+i+y+r+  sth->pg_oid_status$ dkx+y+r+h+
+   x+w+a+h+d+ snd+.
+   
+    4.15.3) aM&#1740;a+ t+w+a+b+e+ ()nextval w+ ()currval m+n+g+r+ b+h+
+    a+&#1740;g+a+d+ snr+a+&#1740;tj race b+r+a+&#1740; s+a+&#1740;r+
+    &#1705;a+r+b+r+a+n+ m+&#1740; snw+n+d+?+
+    
+   x+&#1740;r+,+ a+s+t+f+a+d+h+ a+z+ a+&#1740;n+ t+w+a+b+e+
+   snr+a+&#1740;tj race r+a+ b+h+ w+g+w+d+ n+m+&#1740; aMw+r+d+.
+   
+    4.15.4) tcr+a+ a+e+d+a+d+ s+r+&#1740;a+l+&#1740; m+r+b+w+tj b+h+
+    t+r+a+&#1705;n+snh+a+&#1740; abort snd+h+ m+g+d+d+a+:+ a+s+t+f+a+d+h+
+    n+m+&#1740; snw+d+?+ tcr+a+ b+&#1740;n+ a+e+d+a+d+ s+r+&#1740;a+l+&#1740;
+    &#1740;&#1705; f+a+c+l+h+ x+a+l+&#1740; a+&#1740;g+a+d+ m+&#1740; snw+d+?+
+    
+   b+r+a+&#1740; b+a+l+a+ b+r+d+n+ a+m+&#1705;a+n+ a+g+r+a+&#1740;
+   h+m+z+m+a+n+ t+r+a+&#1705;n+snh+a+,+ a+e+d+a+d+ s+r+&#1740;a+l+&#1740;
+   b+h+ m+hkdd a+g+r+a+&#1740; t+r+a+&#1705;n+sn b+h+ aMn+h+a+
+   t+x+c+&#1740;c+ m+&#1740; &#1740;a+b+d+ d+r+ a+&#1740;n+ hka+l+t+
+   a+gfr+ b+e+dd&#1740; a+z+ t+r+a+&#1705;n+snh+a+ abort snw+n+d+
+   b+&#1740;n+ a+e+d+a+d+ s+r+&#1740;a+l+&#1740; a+s+t+f+a+d+h+ snd+h+
+   &#1740;&#1705; f+a+c+l+h+ x+a+l+&#1740; b+h+ w+g+w+d+ m+&#1740;
+   aM&#1740;d+.
+   
+    4.16) OID w+ TID tch+ h+s+t+n+d+?+
+    
+   OID r+a+h+ hkl+ PostgreSQL b+r+a+&#1740; d+a+snt+n+ &#1740;&#1705;
+   snn+a+s+h+ m+n+hkc+r+ b+h+ f+r+d+ b+r+a+&#1740; h+r+ r+d+&#1740;f+
+   a+s+t+. h+r+ r+d+&#1740;f+ g+d+&#1740;d+&#1740; &#1705;h+
+   a+&#1740;g+a+d+ m+&#1740; snw+d+ &#1740;&#1705; OID m+n+hkc+r+ b+h+
+   f+r+d+ b+h+ aMn+ a+x+t+c+a+c+ m+&#1740; &#1740;a+b+d+. t+m+a+m+
+   OIDh+a+&#1740;&#1740; &#1705;h+ d+r+ hk&#1740;n+ initdb
+   a+&#1740;g+a+d+ m+&#1740; snw+n+d+ a+z+ 16384 &#1705;m+t+r+ h+s+t+n+d+
+   w+ OIDh+a+&#1740;&#1740; b+e+d+a+:+ t+w+l+&#1740;d+ m+&#1740; snw+d+
+   a+z+ a+&#1740;n+ e+d+d+ b+z+r+gft+r+ x+w+a+h+d+ b+w+d+. n+&#1705;t+h+
+   m+h+m+ aMn+ a+s+t+ &#1705;h+ OIDh+a+ n+h+ t+n+h+a+ d+r+ &#1740;&#1705;
+   g+d+w+l+ snb+&#1740;h+ n+&#1740;s+t+n+d+ b+l+&#1705;h+ d+r+ &#1705;l+
+   p+a+&#1740;gfa+h+ d+a+d+h+ h+&#1740;tc d+w+ r+d+&#1740;f+&#1740;
+   d+a+r+a+&#1740; OID &#1740;&#1705;s+a+n+ n+x+w+a+h+d+ b+w+d+.
+   
+   PostgreSQL a+z+ OID d+r+ s+&#1740;s+t+m+ d+a+x+l+&#1740; x+w+d+
+   b+r+a+&#1740; a+&#1740;g+a+d+ a+r+t+b+a+tj b+&#1740;n+
+   r+d+&#1740;f+h+a+&#1740; g+d+a+w+l+ m+x+t+l+f+ a+s+t+f+a+d+h+
+   m+&#1740; &#1705;n+d+. t+w+c+&#1740;h+ m+&#1740; snw+d+ &#1705;h+
+   &#1740;&#1705; s+t+w+n+ a+z+ n+w+e+ OID b+r+a+&#1740; dkx+&#1740;r+h+
+   a+&#1740;n+ f+&#1740;l+d+ d+r+ g+d+w+l+ a+&#1740;g+a+d+
+   &#1705;n+&#1740;d+. s+a+x+t+n+ &#1740;&#1705; n+m+a+&#1740;h+
+   b+r+a+&#1740; a+&#1740;n+ f+&#1740;l+d+ b+a+e+tk d+s+t+r+s+&#1740;
+   s+r+&#1740;e+t+r+ b+h+ aMn+ x+w+a+h+d+ snd+.
+   
+   t+m+a+m+ p+a+&#1740;gfa+h+h+a+&#1740; d+a+d+h+ d+r+ PostgreSQL
+   b+r+a+&#1740; gfr+f+t+n+ OID g+d+&#1740;d+ a+z+ &#1740;&#1705;
+   n+a+hk&#1740;h+ m+r+&#1705;z+&#1740; a+s+t+f+a+d+h+ m+&#1740;
+   &#1705;n+d+. w+l+&#1740; a+gfr+ b+x+w+a+h+&#1740;m+ OID r+a+ b+h+
+   r+w+sn d+&#1740;gfr+&#1740; b+gf&#1740;r+&#1740;m+ w+ &#1740;a+
+   a+&#1740;n+&#1705;h+ d+r+ hk&#1740;n+ &#1705;p+&#1740; &#1705;r+d+n+
+   &#1740;&#1705; g+d+w+l+ b+x+w+a+h+&#1740;m+ OIDh+a+&#1740;
+   a+c+l+&#1740; aMn+ t+i+&#1740;&#1740;r+ n+&#1705;n+d+ b+h+ r+w+sn
+   z+&#1740;r+ m+&#1740; t+w+a+n+&#1740;m+ e+m+l+ &#1705;n+&#1740;m+:
+   
+   
         CREATE TABLE new_table(mycol int);
         SELECT oid AS old_oid, mycol INTO tmp_table FROM old_table;
         COPY tmp_table TO '/tmp/pgtable';
         COPY new_table WITH OIDS FROM '/tmp/pgtable';
         DROP TABLE tmp_table;
-OID یک عدد صحیح 4 بایتی است و بنابراین حداکثر مقدار آن 4 میلیارد خواهد بود و بعد 
-از آن مقدار آن سرریز خواهد شد.  البته تا کنون برای  کسی  این اتفاق نیفتاده است و 
-تصمیم گرداندگان PostgreSQL آن است که قبل از آنکه این اتفاق رخ دهد این مشکل را 
-برطرف کنند.
-TIDها برای شناسایی محل فیزیکی یک ردیف بر اساس بلوک و آفست می باشد. TIDها بعد از 
-تغییر پیدا کردن یک  ردیف و یا  بازخوانی  آن  عوض  می شوند. TIDها توسط نمایه ها 
-استفاده می شوند.
-4.17) معني بعضي از ترمها و كلماتي كه در PostgreSQL‌ استفاده مي‌شود چيست؟
-لیست برخی از ترمها و کلماتی که استفاده می شوند:
-  table, relation, class :کلاس، رابطه، جدول
-  row, record, tuple چندتایی، رکورد، ردیف
-  column, field, attribute صفت، فیلد، ستون
-  retrieve, select انتخاب، خواندن
-  replace, updateبه روز کردن، جایگزینی 
-  append, insert درج، اضافه کردن
-  OID, serial value مقدار سریال
-  portal, cursor 
-  range variable, table name, table alias 
-یک لیست عمومی از ترمهای مورد استفاده در پایگاه داده در آدرس  
-http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.htm 
-وجود دارد.
-4.18) چرا من خطاي "ERROR: Memory exhausted in AllocSetAlloc" مي‌گيرم؟
-این خطا احتمالاً یا به خاطر تمام شدن حافظه مجازی سیستم شماست و یا اینکه کرنل 
-برای برنامه ها در مورد میزان استفاده از حافظه مجازی محدودیت اعمال کرده است. قبل 
-از اجرای برنامه اصلی یکی از دستورات زیر را اجرا کنید.
+
+   OID &#1740;&#1705; e+d+d+ c+hk&#1740;hk 4 b+a+&#1740;t+&#1740; a+s+t+
+   w+ b+n+a+b+r+a+&#1740;n+ hkd+a+&#1705;tkr+ m+q+d+a+r+ aMn+ 4
+   m+&#1740;l+&#1740;a+r+d+ x+w+a+h+d+ b+w+d+ w+ b+e+d+ a+z+ aMn+
+   m+q+d+a+r+ aMn+ s+r+r+&#1740;z+ x+w+a+h+d+ snd+.  a+l+b+t+h+ t+a+
+   &#1705;n+w+n+ b+r+a+&#1740;  &#1705;s+&#1740;  a+&#1740;n+ a+t+f+a+q+
+   n+&#1740;f+t+a+d+h+ a+s+t+ w+ t+c+m+&#1740;m+ gfr+d+a+n+d+gfa+n+
+   PostgreSQL aMn+ a+s+t+ &#1705;h+ q+b+l+ a+z+ aMn+&#1705;h+ a+&#1740;n+
+   a+t+f+a+q+ r+x+ d+h+d+ a+&#1740;n+ m+sn&#1705;l+ r+a+ b+r+tjr+f+
+   &#1705;n+n+d+.
+   
+   TIDh+a+ b+r+a+&#1740; snn+a+s+a+&#1740;&#1740; m+hkl+
+   f+&#1740;z+&#1740;&#1705;&#1740; &#1740;&#1705; r+d+&#1740;f+ b+r+
+   a+s+a+s+ b+l+w+&#1705; w+ aMf+s+t+ m+&#1740; b+a+snd+. TIDh+a+ b+e+d+
+   a+z+ t+i+&#1740;&#1740;r+ p+&#1740;d+a+ &#1705;r+d+n+ &#1740;&#1705;
+   r+d+&#1740;f+ w+ &#1740;a+  b+a+z+x+w+a+n+&#1740;  aMn+  e+w+dd
+   m+&#1740; snw+n+d+. TIDh+a+ t+w+s+tj n+m+a+&#1740;h+ h+a+
+   a+s+t+f+a+d+h+ m+&#1740; snw+n+d+.
+   
+    4.17) m+e+n+y+ b+e+ddy+ a+z+ t+r+m+h+a+ w+ k+l+m+a+t+y+ k+h+ d+r+
+    PostgreSQL a+s+t+f+a+d+h+ m+y+snw+d+ tcy+s+t+?+
+    
+   l+&#1740;s+t+ b+r+x+&#1740; a+z+ t+r+m+h+a+ w+ &#1705;l+m+a+t+&#1740;
+   &#1705;h+ a+s+t+f+a+d+h+ m+&#1740; snw+n+d+:
+     * table, relation, class :&#1705;l+a+s+,+ r+a+b+tjh+,+ g+d+w+l+
+     * row, record, tuple tcn+d+t+a+&#1740;&#1740;,+ r+&#1705;w+r+d+,+
+       r+d+&#1740;f+
+     * column, field, attribute c+f+t+,+ f+&#1740;l+d+,+ s+t+w+n+
+     * retrieve, select a+n+t+x+a+b+,+ x+w+a+n+d+n+
+     * replace, updateb+h+ r+w+z+ &#1705;r+d+n+,+
+       g+a+&#1740;gfz+&#1740;n+&#1740;
+     * append, insert d+r+g+,+ a+dda+f+h+ &#1705;r+d+n+
+     * OID, serial value m+q+d+a+r+ s+r+&#1740;a+l+
+     * portal, cursor
+     * range variable, table name, table alias
+       
+   &#1740;&#1705; l+&#1740;s+t+ e+m+w+m+&#1740; a+z+ t+r+m+h+a+&#1740;
+   m+w+r+d+ a+s+t+f+a+d+h+ d+r+ p+a+&#1740;gfa+h+ d+a+d+h+ d+r+ aMd+r+s+
+   http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary
+   /glossary.htm w+g+w+d+ d+a+r+d+.
+   
+    4.18) tcr+a+ m+n+ x+tja+y+ "ERROR: Memory exhausted in AllocSetAlloc" m+y+
+    gfy+r+m+?+
+    
+   a+&#1740;n+ x+tja+ a+hkt+m+a+l+a+:+ &#1740;a+ b+h+ x+a+tjr+ t+m+a+m+
+   snd+n+ hka+f+zHh+ m+g+a+z+&#1740; s+&#1740;s+t+m+ snm+a+s+t+ w+
+   &#1740;a+ a+&#1740;n+&#1705;h+ &#1705;r+n+l+ b+r+a+&#1740;
+   b+r+n+a+m+h+ h+a+ d+r+ m+w+r+d+ m+&#1740;z+a+n+ a+s+t+f+a+d+h+ a+z+
+   hka+f+zHh+ m+g+a+z+&#1740; m+hkd+w+d+&#1740;t+ a+e+m+a+l+
+   &#1705;r+d+h+ a+s+t+. q+b+l+ a+z+ a+g+r+a+&#1740; b+r+n+a+m+h+
+   a+c+l+&#1740; &#1740;&#1705;&#1740; a+z+ d+s+t+w+r+a+t+ z+&#1740;r+
+   r+a+ a+g+r+a+ &#1705;n+&#1740;d+.
+   
     ulimit -d 262144
     limit datasize 256m
-بسته به نوع شل یکی از این دستورات ممکن است با موفقیت اجرا شود. با اجرای آن دستور 
-محدودیت حافظه مجازی برای برنامه ها برداشته شده و با این کار احتمالاً درخواستی که 
-قبلاً خطا می داده است اجرا خواهد شد.
-4.19) از كجا تشخيص دهم كه ويرايش يا نسخه PostgreSQLيي كه من استفاده مي‌كنم چيست؟
-با اجرای دستور ()SELECT version
-4.20) چرا حین اجرای عملیات روی large-objectها خطای "invalid large obj 
-descriptor"به وجود می آید؟
-شما باید قبل از شروع دستوراتی که با large-objectها کار می کنند BEGIN  و بعد از 
-آنها هم یک END بگذارید. در حال حاضر PostgreSQL هندل large-objectها را در زمان 
-نهایی شدن تراکنش (commitشدن) می بندد. به همین دلیل اولین تلاش برای انجام هر کاری 
-با هندل منجر به خطای invalid large obj descriptor خواهد شد. برای جلوگیری از این 
-خطا حتماً باید از یک تراکنش استفاده کنید. این کار همانطور که قبلاً گفته شد با 
-استفاده از قرار دادن BEGIN و END در ابتدا و انتهای دستورات انجام می شود.
-اگر این خطا را در حین استفاده از یک درایور ODBC دریافت کردید احتمالاً باید این 
-دستور را اجرا کنید: set auto-commit off
-4.21) چگونه يك ستون ايجاد كنم كه مقدار زمان جاري را به عنوان مقدار پيش‌فرض داشته 
-باشد؟
-از CURRENT_TIMESTAMP  استفاده کنید در مثال زیر نحوه انجام این کار نشان داده شده 
-است:
+
+   b+s+t+h+ b+h+ n+w+e+ snl+ &#1740;&#1705;&#1740; a+z+ a+&#1740;n+
+   d+s+t+w+r+a+t+ m+m+&#1705;n+ a+s+t+ b+a+ m+w+f+q+&#1740;t+ a+g+r+a+
+   snw+d+. b+a+ a+g+r+a+&#1740; aMn+ d+s+t+w+r+ m+hkd+w+d+&#1740;t+
+   hka+f+zHh+ m+g+a+z+&#1740; b+r+a+&#1740; b+r+n+a+m+h+ h+a+
+   b+r+d+a+snt+h+ snd+h+ w+ b+a+ a+&#1740;n+ &#1705;a+r+ a+hkt+m+a+l+a+:+
+   d+r+x+w+a+s+t+&#1740; &#1705;h+ q+b+l+a+:+ x+tja+ m+&#1740; d+a+d+h+
+   a+s+t+ a+g+r+a+ x+w+a+h+d+ snd+.
+   
+    4.19) a+z+ k+g+a+ t+snx+y+c+ d+h+m+ k+h+ w+y+r+a+y+sn y+a+ n+s+x+h+
+    PostgreSQLy+y+ k+h+ m+n+ a+s+t+f+a+d+h+ m+y+k+n+m+ tcy+s+t+?+
+    
+   b+a+ a+g+r+a+&#1740; d+s+t+w+r+ ()SELECT version
+   
+    4.20) tcr+a+ hk&#1740;n+ a+g+r+a+&#1740; e+m+l+&#1740;a+t+ r+w+&#1740;
+    large-objecth+a+ x+tja+&#1740; "invalid large obj descriptor"b+h+ w+g+w+d+
+    m+&#1740; aM&#1740;d+?+
+    
+          snm+a+ b+a+&#1740;d+ q+b+l+ a+z+ snr+w+e+ d+s+t+w+r+a+t+&#1740;
+      &#1705;h+ b+a+ large-objecth+a+ &#1705;a+r+ m+&#1740; &#1705;n+n+d+
+                   BEGIN  w+ b+e+d+ a+z+ aMn+h+a+ h+m+ &#1740;&#1705; END
+            b+gfdka+r+&#1740;d+. d+r+ hka+l+ hka+ddr+ PostgreSQL h+n+d+l+
+          large-objecth+a+ r+a+ d+r+ z+m+a+n+ n+h+a+&#1740;&#1740; snd+n+
+                t+r+a+&#1705;n+sn (commitsnd+n+) m+&#1740; b+n+d+d+. b+h+
+       h+m+&#1740;n+ d+l+&#1740;l+ a+w+l+&#1740;n+ t+l+a+sn b+r+a+&#1740;
+           a+n+g+a+m+ h+r+ &#1705;a+r+&#1740; b+a+ h+n+d+l+ m+n+g+r+ b+h+
+              x+tja+&#1740; invalid large obj descriptor x+w+a+h+d+ snd+.
+           b+r+a+&#1740; g+l+w+gf&#1740;r+&#1740; a+z+ a+&#1740;n+ x+tja+
+           hkt+m+a+:+ b+a+&#1740;d+ a+z+ &#1740;&#1705; t+r+a+&#1705;n+sn
+               a+s+t+f+a+d+h+ &#1705;n+&#1740;d+. a+&#1740;n+ &#1705;a+r+
+    h+m+a+n+tjw+r+ &#1705;h+ q+b+l+a+:+ gff+t+h+ snd+ b+a+ a+s+t+f+a+d+h+
+                   a+z+ q+r+a+r+ d+a+d+n+ BEGIN w+ END d+r+ a+b+t+d+a+ w+
+            a+n+t+h+a+&#1740; d+s+t+w+r+a+t+ a+n+g+a+m+ m+&#1740; snw+d+.
+   
+   a+gfr+ a+&#1740;n+ x+tja+ r+a+ d+r+ hk&#1740;n+ a+s+t+f+a+d+h+ a+z+
+   &#1740;&#1705; d+r+a+&#1740;w+r+ ODBC d+r+&#1740;a+f+t+
+   &#1705;r+d+&#1740;d+ a+hkt+m+a+l+a+:+ b+a+&#1740;d+ a+&#1740;n+
+   d+s+t+w+r+ r+a+ a+g+r+a+ &#1705;n+&#1740;d+: set auto-commit off
+   
+    4.21) tcgfw+n+h+ y+k+ s+t+w+n+ a+y+g+a+d+ k+n+m+ k+h+ m+q+d+a+r+ z+m+a+n+
+    g+a+r+y+ r+a+ b+h+ e+n+w+a+n+ m+q+d+a+r+ p+y+snf+r+dd d+a+snt+h+ b+a+snd+?+
+    
+   a+z+ CURRENT_TIMESTAMP  a+s+t+f+a+d+h+ &#1705;n+&#1740;d+ d+r+
+   m+tka+l+ z+&#1740;r+ n+hkw+h+ a+n+g+a+m+ a+&#1740;n+ &#1705;a+r+
+   n+sna+n+ d+a+d+h+ snd+h+ a+s+t+:
+   
 CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
 
-4.22) چرا "زير درخواستهايي" كه از IN استفاده مي‌كنند كند هستند؟
-در نسخه های قبل از 7.4 عمل الحاق زیر درخواست و درخواست اصلی به این صورت انجام می 
-شود که نتایج به دست آمده از زیر درخواست به صورت ترتیبی برای هر ردیف اعمال می 
-شود. اگر زیردرخواست ردیف های کمی را به عنوان خروجی برگرداند و درخواست بیرونی 
-ردیف های زیادی را شامل شود استفاده از IN بهترین روش است در غیر اینصورت بهتر است 
-از EXISTS استفاده شود
+    4.22) tcr+a+ "z+y+r+ d+r+x+w+a+s+t+h+a+y+y+" k+h+ a+z+ IN a+s+t+f+a+d+h+
+    m+y+k+n+n+d+ k+n+d+ h+s+t+n+d+?+
+    
+   d+r+ n+s+x+h+ h+a+&#1740; q+b+l+ a+z+ 7.4 e+m+l+ a+l+hka+q+
+   z+&#1740;r+ d+r+x+w+a+s+t+ w+ d+r+x+w+a+s+t+ a+c+l+&#1740; b+h+
+   a+&#1740;n+ c+w+r+t+ a+n+g+a+m+ m+&#1740; snw+d+ &#1705;h+
+   n+t+a+&#1740;g+ b+h+ d+s+t+ aMm+d+h+ a+z+ z+&#1740;r+ d+r+x+w+a+s+t+
+   b+h+ c+w+r+t+ t+r+t+&#1740;b+&#1740; b+r+a+&#1740; h+r+ r+d+&#1740;f+
+   a+e+m+a+l+ m+&#1740; snw+d+. a+gfr+ z+&#1740;r+d+r+x+w+a+s+t+
+   r+d+&#1740;f+ h+a+&#1740; &#1705;m+&#1740; r+a+ b+h+ e+n+w+a+n+
+   x+r+w+g+&#1740; b+r+gfr+d+a+n+d+ w+ d+r+x+w+a+s+t+
+   b+&#1740;r+w+n+&#1740; r+d+&#1740;f+ h+a+&#1740; z+&#1740;a+d+&#1740;
+   r+a+ sna+m+l+ snw+d+ a+s+t+f+a+d+h+ a+z+ IN b+h+t+r+&#1740;n+ r+w+sn
+   a+s+t+ d+r+ i+&#1740;r+ a+&#1740;n+c+w+r+t+ b+h+t+r+ a+s+t+ a+z+
+   EXISTS a+s+t+f+a+d+h+ snw+d+
+   
     SELECT *
     FROM tab
     WHERE col IN (SELECT subcol FROM subtab);
-به:
+
+   b+h+:
+   
     SELECT *
     FROM tab
     WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
-برای اجرای سریع این درخواست باید برای ستون subcol نمایه ایجاد شده باشد.
-در نسخه های بعد از 7.4 IN برای الحاق از همان تکنیک پیچیده مورد استفاده در 
-دستورات معمولی استفاده می کند و بنابراین استفاده از آن نسبت به EXISTS ارجحیت 
-دارد.
-4.23) چگونه مي‌توانم يك الحاق خارجي (outer join) انجام دهم؟
-برای انجام الحاق خارجی به روش زیر عمل کنید:
+
+   b+r+a+&#1740; a+g+r+a+&#1740; s+r+&#1740;e+ a+&#1740;n+ d+r+x+w+a+s+t+
+   b+a+&#1740;d+ b+r+a+&#1740; s+t+w+n+ subcol n+m+a+&#1740;h+
+   a+&#1740;g+a+d+ snd+h+ b+a+snd+.
+   
+   d+r+ n+s+x+h+ h+a+&#1740; b+e+d+ a+z+ 7.4 IN b+r+a+&#1740; a+l+hka+q+
+   a+z+ h+m+a+n+ t+&#1705;n+&#1740;&#1705; p+&#1740;tc&#1740;d+h+
+   m+w+r+d+ a+s+t+f+a+d+h+ d+r+ d+s+t+w+r+a+t+ m+e+m+w+l+&#1740;
+   a+s+t+f+a+d+h+ m+&#1740; &#1705;n+d+ w+ b+n+a+b+r+a+&#1740;n+
+   a+s+t+f+a+d+h+ a+z+ aMn+ n+s+b+t+ b+h+ EXISTS a+r+g+hk&#1740;t+
+   d+a+r+d+.
+   
+    4.23) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ a+l+hka+q+ x+a+r+g+y+ (outer join)
+    a+n+g+a+m+ d+h+m+?+
+    
+   b+r+a+&#1740; a+n+g+a+m+ a+l+hka+q+ x+a+r+g+&#1740; b+h+ r+w+sn
+   z+&#1740;r+ e+m+l+ &#1705;n+&#1740;d+:
+   
     SELECT *
     FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
-یا
+
+   &#1740;a+
+   
     SELECT *
     FROM t1 LEFT OUTER JOIN t2 USING (col);
-درخواستهای بالا t1.col , t2.col را به هم الحاق می کند و همچنین ردیفهای t1 که 
-نظیر آنها در t2 نبوده است را نیز برمی گرداند. اگر از RIGHT استفاده شود نتیجه بر 
-عکس است. یعنی ردیفهای t2 که نظیر آنها در t1 نباشد را نشان می دهد و اگر از FULL 
-استفاده شود نتیجه هم شامل ردیفهای t1 است  و هم شامل ردیفهای t2. استفاده از کلمه 
-OUTER اختیاری است چرا که این کلمه به طور ضمنی در دستورهای LEFT, RIGHT, FULL وجود 
-دارد.
-در نسخه های قبلی پایگاه داده می توانیم الحاق خارجی را به کمک دستورهای UNION, NOT 
-IN شبیه سازی کنیم. این کار در مثال زیر نشان داده شده است:
 
+   d+r+x+w+a+s+t+h+a+&#1740; b+a+l+a+ t1.col , t2.col r+a+ b+h+ h+m+
+   a+l+hka+q+ m+&#1740; &#1705;n+d+ w+ h+m+tcn+&#1740;n+
+   r+d+&#1740;f+h+a+&#1740; t1 &#1705;h+ n+zH&#1740;r+ aMn+h+a+ d+r+ t2
+   n+b+w+d+h+ a+s+t+ r+a+ n+&#1740;z+ b+r+m+&#1740; gfr+d+a+n+d+. a+gfr+
+   a+z+ RIGHT a+s+t+f+a+d+h+ snw+d+ n+t+&#1740;g+h+ b+r+ e+&#1705;s+
+   a+s+t+. &#1740;e+n+&#1740; r+d+&#1740;f+h+a+&#1740; t2 &#1705;h+
+   n+zH&#1740;r+ aMn+h+a+ d+r+ t1 n+b+a+snd+ r+a+ n+sna+n+ m+&#1740;
+   d+h+d+ w+ a+gfr+ a+z+ FULL a+s+t+f+a+d+h+ snw+d+ n+t+&#1740;g+h+ h+m+
+   sna+m+l+ r+d+&#1740;f+h+a+&#1740; t1 a+s+t+  w+ h+m+ sna+m+l+
+   r+d+&#1740;f+h+a+&#1740; t2. a+s+t+f+a+d+h+ a+z+ &#1705;l+m+h+ OUTER
+   a+x+t+&#1740;a+r+&#1740; a+s+t+ tcr+a+ &#1705;h+ a+&#1740;n+
+   &#1705;l+m+h+ b+h+ tjw+r+ ddm+n+&#1740; d+r+ d+s+t+w+r+h+a+&#1740;
+   LEFT, RIGHT, FULL w+g+w+d+ d+a+r+d+.
+   
+   d+r+ n+s+x+h+ h+a+&#1740; q+b+l+&#1740; p+a+&#1740;gfa+h+ d+a+d+h+
+   m+&#1740; t+w+a+n+&#1740;m+ a+l+hka+q+ x+a+r+g+&#1740; r+a+ b+h+
+   &#1705;m+&#1705; d+s+t+w+r+h+a+&#1740; UNION, NOT IN snb+&#1740;h+
+   s+a+z+&#1740; &#1705;n+&#1740;m+. a+&#1740;n+ &#1705;a+r+ d+r+
+   m+tka+l+ z+&#1740;r+ n+sna+n+ d+a+d+h+ snd+h+ a+s+t+:
+   
     SELECT tab1.col1, tab2.col2
     FROM tab1, tab2
     WHERE tab1.col1 = tab2.col1
@@ -819,59 +1569,125 @@ IN شبیه سازی کنیم. این کار در مثال زیر نشان دا
     FROM tab1
     WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
     ORDER BY col1
-4.24) چگونه مي‌توان درخواستهايي از چند پايگاه داده توليد كرد؟
-در حال حاضر این کار امکان پذیر نیست. PostgreSQL فقط امکان درخواست از پایگاه داده 
-ای را می دهد که در حال حاضر به آن متصل باشید و نمی‌توان به طور همزمان از دو 
-پایگاه داده استفاده کرد. البته یک برنامه کاربردی خود می تواند به طور همزمان دو  
-پایگاه داده را مورد استفاده قرار داده و نتایج را با هم ترکیب کند ولی نمی تواند 
-در یک درخواست به هر  دو پایگاه داده رجوع کند.
-4.25) چگونه خروجي يك تابع مي‌تواند  چند رديف يا ستون باشد؟
-در نسخه 7.3 خروجی یک تابع می تواند چند ردیف یا چند ستون باشد. برای دیدن  اطلاعات 
-بیشتر به سایت زیر مراجعه 
-کنید:http://techdocs.postgresql.org/guides/SetReturningFunctions  
-4.26) در توابع PL/PgSQL چرا نمي‌توان با اطمينان جداول موقت را ايجاد يا حذف كرد؟
-PL/PgSQL محتوای توابع را ذخیره (cache) می کند. یک اثر بد جانبی این کار آن است که 
-اگر در تابع از یک جدول موقت استفاده شود و بعداً آن جدول حذف و یک جدول جدید به 
-جای آن ایجاد شود، در فراخوانی مجدد  آن تابع، محتوای ذخیره شده تابع  هنوز به جدول 
-قدیمی اشاره می کند و بنابراین اجرای تابع با اشکال مواجه می شود. راه حل این مشکل 
-آن است که برای جداول موقت از دستور EXECUTE استفاده شود که این کار سبب می شود که 
-درخواست برای هر بار اجرا مجدداً پیمایش و تفسیر شود.
-4.27) چه گزينه‌هايي براي تكرار (replication) وجود دارد؟ 
-There are several master/slave replication options available. These allow only 
-the master to make database changes and the slave can only do database reads. 
-The bottom of http://gborg.PostgreSQL.org/genpage?replication_research lists 
-them. A multi-master replication solution is being worked on at 
-http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
-4.28) چه گزينه‌هايي براي رمزنگاري وجود دارد؟ 
-  contrib/pgcrypto شامل توابع رمزنگاری زیادی است که می توان از آنها در دستورات 
-  SQL استفاده کرد.
-  برای رمز کردن ارتباط بین client و server  پایگاه داده حتماً گزینه SSL را بر 
-  روی پایگاه داده فعال کنیم.
-  در نسخه 7.3 به بعد کلمات عبور کاربران به طور اتوماتیک به صورت رمز شده ذخیره می 
-  شود ولی در نسخه های قبلی باید گزینه PASSWORD_ENCRYPTION را در 
-  فایلpostgresql.conf فعال کنیم. 
-  می توان پایگاههای داده را روی یک فایل سیستم رمزشده نگاهداری کرد
-
-
 
-Extending PostgreSQL
-5.1) من يك تابع نوشته‌ام. چگونه آن را در psql اجرا كنم؟ چرا با اجراي آن core 
-dump مي‌گيرم؟
-دلایل مختلفی می تواند باعث بروز این مشکل شود. اما قبل از همه، تابع خود را به 
-صورت جدا تست کنید.
-5.2) چگونه مي‌توانم در توليد نوع‌ها و توابع جديد و جالب براي PostgreSQL‌ همكاري 
-و مشاركت داشته باشم؟
-کد خود را به گروه پستی pgsql-hackers   ارسال کنید.
-5.3)  چگونه مي‌توانم يك تابع به زبان C بنويسم كه خروجي آن يك ‌tuple  (چند تايي) 
-باشد؟
-در نسخه های 7.3 به بعد یک تابع می تواند یک جدول را به عنوان خروجی برگرداند. این 
-ویژگی در توابعی که به زبانهای C و PL/PgSQL نوشته می‌شوند به طور کامل وجود دارد. 
-راهنما برنامه نویسان را مطالعه کنید. یک مثال از نحوه برگرداندن یک جدول به عنوان 
-خروجی در contrib/tablefunc آمده است.
-5.4) من يك فايل منبع را عوض كرده ام چرا در عمليات كامپيل مجدد آن، تغيير ديده 
-نمي‌شود؟
-Makefile برای فایلهای include شده وابستگیها را به درستی نشان نمی دهد. برای 
-اطمینان از اینکه فایلی که عوض کرده اید حتماً دوباره کامپیل می‌شود دستور make 
-clean را اجرا کنید. اگر از کامپیلر gcc استفاده می کنید می توانید از گزینه 
-enable-depend-- در موقع اجرای برنامه configure استفاده کنید این گزینه باعث می 
-شود که وابستگیها به طور اتوماتیک تولید شود.
\ No newline at end of file
+    4.24) tcgfw+n+h+ m+y+t+w+a+n+ d+r+x+w+a+s+t+h+a+y+y+ a+z+ tcn+d+
+    p+a+y+gfa+h+ d+a+d+h+ t+w+l+y+d+ k+r+d+?+
+    
+   d+r+ hka+l+ hka+ddr+ a+&#1740;n+ &#1705;a+r+ a+m+&#1705;a+n+
+   p+dk&#1740;r+ n+&#1740;s+t+. PostgreSQL f+q+tj a+m+&#1705;a+n+
+   d+r+x+w+a+s+t+ a+z+ p+a+&#1740;gfa+h+ d+a+d+h+ a+&#1740; r+a+
+   m+&#1740; d+h+d+ &#1705;h+ d+r+ hka+l+ hka+ddr+ b+h+ aMn+ m+t+c+l+
+   b+a+sn&#1740;d+ w+ n+m+&#1740;t+w+a+n+ b+h+ tjw+r+ h+m+z+m+a+n+ a+z+
+   d+w+ p+a+&#1740;gfa+h+ d+a+d+h+ a+s+t+f+a+d+h+ &#1705;r+d+. a+l+b+t+h+
+   &#1740;&#1705; b+r+n+a+m+h+ &#1705;a+r+b+r+d+&#1740; x+w+d+ m+&#1740;
+   t+w+a+n+d+ b+h+ tjw+r+ h+m+z+m+a+n+ d+w+  p+a+&#1740;gfa+h+ d+a+d+h+
+   r+a+ m+w+r+d+ a+s+t+f+a+d+h+ q+r+a+r+ d+a+d+h+ w+ n+t+a+&#1740;g+ r+a+
+   b+a+ h+m+ t+r+&#1705;&#1740;b+ &#1705;n+d+ w+l+&#1740; n+m+&#1740;
+   t+w+a+n+d+ d+r+ &#1740;&#1705; d+r+x+w+a+s+t+ b+h+ h+r+  d+w+
+   p+a+&#1740;gfa+h+ d+a+d+h+ r+g+w+e+ &#1705;n+d+.
+   
+    4.25) tcgfw+n+h+ x+r+w+g+y+ y+k+ t+a+b+e+ m+y+t+w+a+n+d+  tcn+d+ r+d+y+f+
+    y+a+ s+t+w+n+ b+a+snd+?+
+    
+   d+r+ n+s+x+h+ 7.3 x+r+w+g+&#1740; &#1740;&#1705; t+a+b+e+ m+&#1740;
+   t+w+a+n+d+ tcn+d+ r+d+&#1740;f+ &#1740;a+ tcn+d+ s+t+w+n+ b+a+snd+.
+   b+r+a+&#1740; d+&#1740;d+n+  a+tjl+a+e+a+t+ b+&#1740;snt+r+ b+h+
+   s+a+&#1740;t+ z+&#1740;r+ m+r+a+g+e+h+
+   &#1705;n+&#1740;d+:http://techdocs.postgresql.org/guides/SetReturningF
+   unctions
+   
+    4.26) d+r+ t+w+a+b+e+ PL/PgSQL tcr+a+ n+m+y+t+w+a+n+ b+a+ a+tjm+y+n+a+n+
+    g+d+a+w+l+ m+w+q+t+ r+a+ a+y+g+a+d+ y+a+ hkdkf+ k+r+d+?+
+    
+   PL/PgSQL m+hkt+w+a+&#1740; t+w+a+b+e+ r+a+ dkx+&#1740;r+h+ (cache)
+   m+&#1740; &#1705;n+d+. &#1740;&#1705; a+tkr+ b+d+ g+a+n+b+&#1740;
+   a+&#1740;n+ &#1705;a+r+ aMn+ a+s+t+ &#1705;h+ a+gfr+ d+r+ t+a+b+e+
+   a+z+ &#1740;&#1705; g+d+w+l+ m+w+q+t+ a+s+t+f+a+d+h+ snw+d+ w+
+   b+e+d+a+:+ aMn+ g+d+w+l+ hkdkf+ w+ &#1740;&#1705; g+d+w+l+
+   g+d+&#1740;d+ b+h+ g+a+&#1740; aMn+ a+&#1740;g+a+d+ snw+d+,+ d+r+
+   f+r+a+x+w+a+n+&#1740; m+g+d+d+  aMn+ t+a+b+e+,+ m+hkt+w+a+&#1740;
+   dkx+&#1740;r+h+ snd+h+ t+a+b+e+  h+n+w+z+ b+h+ g+d+w+l+
+   q+d+&#1740;m+&#1740; a+sna+r+h+ m+&#1740; &#1705;n+d+ w+
+   b+n+a+b+r+a+&#1740;n+ a+g+r+a+&#1740; t+a+b+e+ b+a+ a+sn&#1705;a+l+
+   m+w+a+g+h+ m+&#1740; snw+d+. r+a+h+ hkl+ a+&#1740;n+ m+sn&#1705;l+
+   aMn+ a+s+t+ &#1705;h+ b+r+a+&#1740; g+d+a+w+l+ m+w+q+t+ a+z+
+   d+s+t+w+r+ EXECUTE a+s+t+f+a+d+h+ snw+d+ &#1705;h+ a+&#1740;n+
+   &#1705;a+r+ s+b+b+ m+&#1740; snw+d+ &#1705;h+ d+r+x+w+a+s+t+
+   b+r+a+&#1740; h+r+ b+a+r+ a+g+r+a+ m+g+d+d+a+:+ p+&#1740;m+a+&#1740;sn
+   w+ t+f+s+&#1740;r+ snw+d+.
+   
+    4.27) tch+ gfz+y+n+h+h+a+y+y+ b+r+a+y+ t+k+r+a+r+ (replication) w+g+w+d+
+    d+a+r+d+?+
+    
+   There are several master/slave replication options available. These
+   allow only the master to make database changes and the slave can only
+   do database reads. The bottom of
+   http://gborg.PostgreSQL.org/genpage?replication_research lists them. A
+   multi-master replication solution is being worked on at
+   http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
+   
+    4.28) tch+ gfz+y+n+h+h+a+y+y+ b+r+a+y+ r+m+z+n+gfa+r+y+ w+g+w+d+ d+a+r+d+?+
+    
+     * contrib/pgcrypto sna+m+l+ t+w+a+b+e+ r+m+z+n+gfa+r+&#1740;
+       z+&#1740;a+d+&#1740; a+s+t+ &#1705;h+ m+&#1740; t+w+a+n+ a+z+
+       aMn+h+a+ d+r+ d+s+t+w+r+a+t+ SQL a+s+t+f+a+d+h+ &#1705;r+d+.
+     * b+r+a+&#1740; r+m+z+ &#1705;r+d+n+ a+r+t+b+a+tj b+&#1740;n+ client
+       w+ server  p+a+&#1740;gfa+h+ d+a+d+h+ hkt+m+a+:+ gfz+&#1740;n+h+
+       SSL r+a+ b+r+ r+w+&#1740; p+a+&#1740;gfa+h+ d+a+d+h+ f+e+a+l+
+       &#1705;n+&#1740;m+.
+     * d+r+ n+s+x+h+ 7.3 b+h+ b+e+d+ &#1705;l+m+a+t+ e+b+w+r+
+       &#1705;a+r+b+r+a+n+ b+h+ tjw+r+ a+t+w+m+a+t+&#1740;&#1705; b+h+
+       c+w+r+t+ r+m+z+ snd+h+ dkx+&#1740;r+h+ m+&#1740; snw+d+
+       w+l+&#1740; d+r+ n+s+x+h+ h+a+&#1740; q+b+l+&#1740; b+a+&#1740;d+
+       gfz+&#1740;n+h+ PASSWORD_ENCRYPTION r+a+ d+r+
+       f+a+&#1740;l+postgresql.conf f+e+a+l+ &#1705;n+&#1740;m+.
+     * m+&#1740; t+w+a+n+ p+a+&#1740;gfa+h+h+a+&#1740; d+a+d+h+ r+a+
+       r+w+&#1740; &#1740;&#1705; f+a+&#1740;l+ s+&#1740;s+t+m+
+       r+m+z+snd+h+ n+gfa+h+d+a+r+&#1740; &#1705;r+d+
+     _________________________________________________________________
+   
+                            Extending PostgreSQL
+                                      
+    5.1) m+n+ y+k+ t+a+b+e+ n+w+snt+h+a+m+. tcgfw+n+h+ aMn+ r+a+ d+r+ psql
+    a+g+r+a+ k+n+m+?+ tcr+a+ b+a+ a+g+r+a+y+ aMn+ core dump m+y+gfy+r+m+?+
+    
+   d+l+a+&#1740;l+ m+x+t+l+f+&#1740; m+&#1740; t+w+a+n+d+ b+a+e+tk
+   b+r+w+z+ a+&#1740;n+ m+sn&#1705;l+ snw+d+. a+m+a+ q+b+l+ a+z+ h+m+h+,+
+   t+a+b+e+ x+w+d+ r+a+ b+h+ c+w+r+t+ g+d+a+ t+s+t+ &#1705;n+&#1740;d+.
+   
+    5.2) tcgfw+n+h+ m+y+t+w+a+n+m+ d+r+ t+w+l+y+d+ n+w+e+h+a+ w+ t+w+a+b+e+
+    g+d+y+d+ w+ g+a+l+b+ b+r+a+y+ PostgreSQL h+m+k+a+r+y+ w+ m+sna+r+k+t+
+    d+a+snt+h+ b+a+snm+?+
+    
+   &#1705;d+ x+w+d+ r+a+ b+h+ gfr+w+h+ p+s+t+&#1740; pgsql-hackers
+    a+r+s+a+l+ &#1705;n+&#1740;d+.
+   
+    5.3)  tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ t+a+b+e+ b+h+ z+b+a+n+ C b+n+w+y+s+m+
+    k+h+ x+r+w+g+y+ aMn+ y+k+ tuple  (tcn+d+ t+a+y+y+) b+a+snd+?+
+    
+   d+r+ n+s+x+h+ h+a+&#1740; 7.3 b+h+ b+e+d+ &#1740;&#1705; t+a+b+e+
+   m+&#1740; t+w+a+n+d+ &#1740;&#1705; g+d+w+l+ r+a+ b+h+ e+n+w+a+n+
+   x+r+w+g+&#1740; b+r+gfr+d+a+n+d+. a+&#1740;n+ w+&#1740;zjgf&#1740;
+   d+r+ t+w+a+b+e+&#1740; &#1705;h+ b+h+ z+b+a+n+h+a+&#1740; C w+
+   PL/PgSQL n+w+snt+h+ m+&#1740;snw+n+d+ b+h+ tjw+r+ &#1705;a+m+l+
+   w+g+w+d+ d+a+r+d+. r+a+h+n+m+a+ b+r+n+a+m+h+ n+w+&#1740;s+a+n+ r+a+
+   m+tja+l+e+h+ &#1705;n+&#1740;d+. &#1740;&#1705; m+tka+l+ a+z+ n+hkw+h+
+   b+r+gfr+d+a+n+d+n+ &#1740;&#1705; g+d+w+l+ b+h+ e+n+w+a+n+
+   x+r+w+g+&#1740; d+r+ contrib/tablefunc aMm+d+h+ a+s+t+.
+   
+    5.4) m+n+ y+k+ f+a+y+l+ m+n+b+e+ r+a+ e+w+dd k+r+d+h+ a+m+ tcr+a+ d+r+
+    e+m+l+y+a+t+ k+a+m+p+y+l+ m+g+d+d+ aMn+,+ t+i+y+y+r+ d+y+d+h+ n+m+y+
+    snw+d+?+
+    
+   Makefile b+r+a+&#1740; f+a+&#1740;l+h+a+&#1740; include snd+h+
+   w+a+b+s+t+gf&#1740;h+a+ r+a+ b+h+ d+r+s+t+&#1740; n+sna+n+ n+m+&#1740;
+   d+h+d+. b+r+a+&#1740; a+tjm+&#1740;n+a+n+ a+z+ a+&#1740;n+&#1705;h+
+   f+a+&#1740;l+&#1740; &#1705;h+ e+w+dd &#1705;r+d+h+ a+&#1740;d+
+   hkt+m+a+:+ d+w+b+a+r+h+ &#1705;a+m+p+&#1740;l+ m+&#1740;snw+d+
+   d+s+t+w+r+ make clean r+a+ a+g+r+a+ &#1705;n+&#1740;d+. a+gfr+ a+z+
+   &#1705;a+m+p+&#1740;l+r+ gcc a+s+t+f+a+d+h+ m+&#1740;
+   &#1705;n+&#1740;d+ m+&#1740; t+w+a+n+&#1740;d+ a+z+ gfz+&#1740;n+h+
+   enable-depend-- d+r+ m+w+q+e+ a+g+r+a+&#1740; b+r+n+a+m+h+ configure
+   a+s+t+f+a+d+h+ &#1705;n+&#1740;d+ a+&#1740;n+ gfz+&#1740;n+h+ b+a+e+tk
+   m+&#1740; snw+d+ &#1705;h+ w+a+b+s+t+gf&#1740;h+a+ b+h+ tjw+r+
+   a+t+w+m+a+t+&#1740;&#1705; t+w+l+&#1740;d+ snw+d+.
index 1423aee9b03d700ad2c061c75606edf385b4fc2e..1b224e877cab440d3b4dc9c0136a0c764ee82e63 100644 (file)
    
    PostgreSQL Data Base Management System
    
-   Portions copyright (c) 1996-2004, PostgreSQL Global Development Group
+   Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
    Portions Copyright (c) 1994-6 Regents of the University of California
    
    Permission to use, copy, modify, and distribute this software and its
    Pour changer le type de données d'une colonne, faites :
     BEGIN;
     ALTER TABLE table ADD COLUMN nouvelle_colonne nouveau_type_de_donnees;
-    UPDATE table SET nouvelle_colonne = CAST(ancienne_colonne AS nouveau_type_d
-e_donnees);
+    UPDATE table SET nouvelle_colonne = CAST(ancienne_colonne AS nouveau_type_de_donnees);
     ALTER TABLE table DROP COLUMN ancienne_colonne;
     COMMIT;
 
@@ -772,14 +771,12 @@ e_donnees);
     données ?
     
    Les limites sont :
-    Taille maximum pour une base de données     illimitée (il existe des bases
-de 32 To)
+    Taille maximum pour une base de données     illimitée (il existe des basesde 32 To)
     Taille maximum pour une table               32 To
     Taille maximum pour une ligne               1,6 To
     Taille maximum pour un champ                1 Go
     Nombre maximum de lignes dans une table     illimité
-    Nombre maximum de colonnes dans une table   250-1600, selon le type de colo
-nnes
+    Nombre maximum de colonnes dans une table   250-1600, selon le type de colonnes
     Nombre maximum d'index sur une table        illimité
 
    Bien sûr, ces valeurs ne sont pas vraiment illimitée, elles sont
@@ -813,21 +810,17 @@ nnes
    ----------------------------------------
     60 octets par ligne
 
-   La taille des pages de données dans PostgreSQL est de 8192 octets (8 KO), do
-nc :
+   La taille des pages de données dans PostgreSQL est de 8192 octets (8 KO), donc :
 
    8192 octets par page
-   ----------------------   = 136 lignes par page de base de données (arrondi à
- l'entier inférieur)
+   ----------------------   = 136 lignes par page de base de données (arrondi à l'entier inférieur)
      60 octets par ligne
 
    100000 lignes de données
-   -------------------------  =  735 pages de base de données (arrondi à l'enti
-er supérieur)
+   -------------------------  =  735 pages de base de données (arrondi à l'entier supérieur)
       128 lignes par page
 
-735 pages de base de données * 8192 octets par page  =  6 021 120 octets (6,4 M
-o)
+735 pages de base de données * 8192 octets par page  =  6 021 120 octets (6,4 Mo)
 
    Les index utilisent moins d'espace, mais ils contiennent les données
    indexées, ils peuvent donc également être grands.
@@ -1025,8 +1018,7 @@ BYTEA           bytea           tableau d'octets (accepte les octets nuls)
    table d'exemple de la section 4.15.1, un exemple dans un
    pseudo-langage ressemblerait à ceci :
     nouvelle_id = execute("SELECT nextval('personne_id_seq')");
-    execute("INSERT INTO personne (id, nom) VALUES (nouvelle_id, 'Blaise Pascal
-')");
+    execute("INSERT INTO personne (id, nom) VALUES (nouvelle_id, 'Blaise Pascal')");
 
    Vous pourriez ensuite utiliser la nouvelle valeur stockée dans
    nouvelle_id avec d'autres requêtes (c'est-à-dire en tant que clé
@@ -1085,8 +1077,7 @@ BYTEA           bytea           tableau d'octets (accepte les octets nuls)
    en quelque chose d'autre ou si vous voulez faire une copie de la table
    avec les OID originaux, il n'y a pas de raisons pour ne pas le faire :
     CREATE TABLE nouvelle_table (macolonne int);
-    SELECT oid AS ancienne_oid, macolonne INTO table_temporaire FROM ancienne_t
-able;
+    SELECT oid AS ancienne_oid, macolonne INTO table_temporaire FROM ancienne_table;
     COPY table_temporaire FROM '/tmp/tablepg';
     COPY nouvelle_table WITH OIDS FROM '/tmp/tablepg';
     DROP TABLE table_temporaire;
@@ -1178,8 +1169,7 @@ CREATE TABLE test (x int, heuremodif timestamp DEFAULT CURRENT_TIMESTAMP );
    to:
     SELECT *
     FROM table
-    WHERE EXISTS (SELECT souscolonne FROM soustable WHERE souscolonne = colonne
-);
+    WHERE EXISTS (SELECT souscolonne FROM soustable WHERE souscolonne = colonne);
 
    Pour que ceci soit rapide, souscolonne doit être une colonne indexée.
    
index 49375224b4a0117d6dde03bdf4dee1bfa275ea6d..dcb38cec778fcf2d189674e153ab65846407c9ea 100644 (file)
    
    Wenn der postmaster hingegen läuft, führen Sie psql in einem Fenster
    aus, ermitteln Sie die Prozessnummer (PID) des postgres-Prozesses, der
-   von psql verwendet wird (mit
-SELECT pg_backend_pid()
-
-   ). Binden Sie einen Debugger an diese PID und führen Sie Abfragen von
-   psql aus. Wenn Sie den postgres-Serverstart analysieren wollen, setzen
-   Sie die Umgebungsvariable PGOPTIONS="-W n", und starten Sie dann psql.
-   Dies verzögert den Start um n Sekunden, damit Sie einen Debugger an
-   den Prozess binden und ggf. Breakpoints setzen können, bevor die
+   von psql verwendet wird (mit SELECT pg_backend_pid()). Binden Sie
+   einen Debugger an diese PID und führen Sie Abfragen von psql aus. Wenn
+   Sie den postgres-Serverstart analysieren wollen, setzen Sie die
+   Umgebungsvariable PGOPTIONS="-W n", und starten Sie dann psql. Dies
+   verzögert den Start um n Sekunden, damit Sie einen Debugger an den
+   Prozess binden und ggf. Breakpoints setzen können, bevor die
    Startsequenz begonnen wird.
    
    Es gibt verschiedene Einstellungen (die log_*-Gruppe), die diverse
index 609f8198f03d7ba5230320ed5b2054893fc75ac7..b271d6509760fc7c8f04ae28e587dfe82e2cb73f 100644 (file)
@@ -1,22 +1,20 @@
-PostgreSQL(¥Ý¥¹¥È¥°¥ì¥¹¡¦¥­¥å¡¼¡¦¥¨¥ë)¤Ë¤Ä¤¤¤Æ¤è¤¯¤¢¤ë¼ÁÌä¤È¤½¤Î²òÅú(FAQ)
 
-¸¶Ê¸ºÇ½ª¹¹¿·Æü: Sun Jan 9 14:44:04 EST 2005
-
-¸½ºß¤Î°Ý»ý´ÉÍý¼Ô: Bruce Momjian (pgman@candle.pha.pa.us)
-Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)
-
-¤³¤Îʸ½ñ¤ÎºÇ¿·ÈǤϠ"http://www.postgresql.org/files/documentation/faqs/
-FAQ.html"> http://www.postgresql.org/files/documentation/faqs/FAQ.html
-
-¤Ç¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-
-¥×¥é¥Ã¥È¥Û¡¼¥à¤ËÆÃÍ­¤Î¼ÁÌä¤Ë¤Ä¤¤¤Æ¤Ï: "http://www.postgresql.org/docs/faq/">
-http://www.postgresql.org/docs/faq/
-
-
-¤Ë²óÅú¤¬¤¢¤ê¤Þ¤¹¡£
-
-(°Ê²¼¡¢Ìõ¼Ô¤Ë¤è¤ëÃí¼á¤ò [ÌõÃí¡§ ¤È ] ¤È¤Ç°Ï¤ó¤Çµ­¤·¤Þ¤¹¡£)
+   PostgreSQL(¥Ý¥¹¥È¥°¥ì¥¹¡¦¥¥å¡¼¡¦¥¨¥ë)¤Ë¤Ä¤¤¤Æ¤è¤¯¤¢¤ë¼ÁÌä¤È¤½¤Î²òÅú(FAQ)
+                                       
+   ¸¶Ê¸ºÇ½ª¹¹¿·Æü: Sun Jan 9 14:44:04 EST 2005
+   
+   ¸½ºß¤Î°Ý»ý´ÉÍý¼Ô: Bruce Momjian (pgman@candle.pha.pa.us)
+   Maintainer of Japanese Translation: Jun Kuwamura (juk at
+   PostgreSQL.jp)
+   
+   ¤³¤Îʸ½ñ¤ÎºÇ¿·ÈǤÏ
+   http://www.postgresql.org/files/documentation/faqs/FAQ.html
+   ¤Ç¸«¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+   
+   ¥×¥é¥Ã¥È¥Û¡¼¥à¤ËÆÃͤμÁÌä¤Ë¤Ä¤¤¤Æ¤Ï:
+   http://www.postgresql.org/docs/faq/
+   ¤Ë²óÅú¤¬¤¢¤ê¤Þ¤¹¡£
+(°Ê²¼¡¢Ìõ¼Ô¤Ë¤è¤ëÃí¼á¤ò [ÌõÃí¡§ ¤È ] ¤È¤Ç°Ï¤ó¤Çµ¤·¤Þ¤¹¡£)
 [ÌõÃí¡§
         ÆüËܸìÈÇÀ½ºî¤Ë¤Ä¤¤¤Æ¤Î¥á¥â¤ÏºÇ¸åÈø¤Ø°Üư¤·¤Þ¤·¤¿¡£
 
@@ -27,180 +25,201 @@ http://www.postgresql.org/docs/faq/
                 http://www.rccm.co.jp/~juk/pgsql/
                 http://www.linux.or.jp/JF/
 
-        ¤³¤ÎÏÂÌõ¤Ë¤Ä¤¤¤Æ¤ªµ¤¤Å¤­¤ÎÅÀ¤Ï(juk at PostgreSQL.jp)¤Þ¤Ç¥á¡¼¥ë¤Ç¤ª´ó¤»²¼¤µ¤¤¡£
+        ¤³¤ÎÏÂÌõ¤Ë¤Ä¤¤¤Æ¤ªµ¤¤Å¤¤ÎÅÀ¤Ï(juk at PostgreSQL.jp)¤Þ¤Ç¥á¡¼¥ë¤Ç¤ª´ó¤»²¼¤µ¤¤¡£
 
                                                 2005ǯ01·î12Æü    ·¬Â¼ ½á
 ]
-
-¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬ 
-
-                                 °ìÈÌŪ¤Ê¼ÁÌä                                  
-                                                                               
-1.1) PostgreSQL¤È¤Ï²¿¤Ç¤¹¤«¡©²¿¤ÈÆÉ¤ß¤Þ¤¹¤«¡©
-1.2) PostgreSQL¤ÎÃøºî¸¢¤Ï¤É¤¦¤Ê¤Ã¤Æ¤Þ¤¹¤«¡©
-1.3) PostgreSQL¤Îưºî¤¹¤ëUnix¥×¥é¥Ã¥È¥Û¡¼¥à¤Ï¡©
-1.4) Unix°Ê³°¤Î°Ü¿¢ÈǤǻȤ¨¤ë¤â¤Î¤Ï¡©
-1.5) PostgreSQL¤Ï¤É¤³¤«¤éÆþ¼ê¤Ç¤­¤Þ¤¹¤«¡©
-1.6) ¥µ¥Ý¡¼¥È¤Ï¤É¤³¤Ç¼õ¤±¤é¤ì¤Þ¤¹¤«¡©
-1.7) ºÇ¿·ÈǤϤɤì¤Ç¤¹¤«
-1.8) ¤É¤Î¤è¤¦¤Êʸ½ñ¤¬¤¢¤ê¤Þ¤¹¤«¡©
-1.9) ´ûÃΤΥХ°¤ä̤¤À̵¤¤µ¡Ç½¤Ï¤É¤¦¤ä¤Ã¤Æ¸«¤Ä¤±¤Þ¤¹¤«¡©
-1.10) SQL¤Ï¤É¤¦¤¹¤ì¤Ð³Ø¤Ù¤Þ¤¹¤«¡©
-1.11) PostgreSQL¤ÏÀ¾Îñ2000ǯÌäÂê(Y2K)¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¤«¡©
-1.12) ³«È¯¥Á¡¼¥à¤Ë¤Ï¤É¤Î¤è¤¦¤Ë»²²Ã¤·¤Þ¤¹¤«¡©
-1.13) ¥Ð¥°¥ì¥Ý¡¼¥È¤Ï¤É¤Î¤è¤¦¤Ëȯ¿®¤·¤Þ¤¹¤«¡©
-1.14) Â¾¤ÎDBMS¤ÈÈæ¤Ù¤ÆPostgreSQL¤Ï¤É¤¦¤Ê¤Î¤Ç¤¹¤«¡©
-1.15) PostgreSQL¤ò»ñ¶âÌ̤DZç½õ¤¹¤ë¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤è¤¤¤Ç¤¹¤«¡©
-
-                         ¥æ¡¼¥¶¡¼¡¦¥¯¥é¥¤¥¢¥ó¥È¤Î¼ÁÌä                          
-                                                                               
-2.1) PostgreSQL ¤Î ODBC ¥É¥é¥¤¥Ð¡¼¤Ï¤¢¤ê¤Þ¤¹¤«¡©
-2.2) PostgreSQL ¤ò Web ¥Ú¡¼¥¸¤ÈÏ¢·È¤µ¤»¤ë¤Ë¤Ï¤É¤ó¤Ê¥Ä¡¼¥ë¤¬¤¢¤ê¤Þ¤¹¤«¡©
-2.3) PostgreSQL ¤Ë¥°¥é¥Õ¥£¥«¥ë¡¦¥æ¡¼¥¶¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï¤¢¤ê¤Þ¤¹¤«¡©
-2.4) ¤É¤Î¤è¤¦¤Ê¸À¸ì¤Ç PostgreSQL ¤ÈÄÌ¿®¤Ç¤­¤¹¤«¡©
-
-                                 ´ÉÍý¾å¤Î¼ÁÌä                                  
-                                                                               
-3.1) ¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð /usr/local/pgsql °Ê³°¤Î¾ì½ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤Þ¤¹¤«¡©
-3.2) postmaster ¤òÁö¤é¤»¤ë¤È¡¢ Bad System Call ¤È¤«¥³¥¢¡¦¥À¥ó¥×¤·¤¿¤È¤Î¥á¥Ã¥»¡¼
-¥¸¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
-3.3) postmaster ¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢ IpcMemoryCreate ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹
-¤«¡©
-3.4) postmaster¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢ IpcSemaphoreCreate ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç
-¤¹¤«¡©
-3.5) Â¾¤Î¥Û¥¹¥È¤«¤é¤ÎÀܳ¤Ï¤É¤Î¤è¤¦¤ËÀ©¸æ¤·¤Þ¤¹¤«¡©
-3.6) ¤è¤êÎɤ¤À­Ç½¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥¨¥ó¥¸¥ó¤ò¤É¤Î¤è¤¦¤ËÄ´À°¤¹¤ì¤ÐÎÉ
-¤¤¤Ç¤¹¤«¡©
-3.7) ¤É¤Î¤è¤¦¤Ê¥Ç¥Ð¥°µ¡Ç½¤¬»È¤¨¤Þ¤¹¤«¡©
-3.8) Àܳ¤·¤è¤¦¤È¤¹¤ë¤È¤­¤Ë 'Sorry, too many clients' ¤¬½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
-3.9) pgsql_tmp ¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤Ë¤Ï²¿¤¬¤¢¤ê¤Þ¤¹¤«¡©
-3.10) PostgreSQL¤Î¥á¥¸¥ã¡¼¥ê¥ê¡¼¥¹¤ò¥¢¥Ã¥×¥Ç¡¼¥È¤¹¤ë¤Î¤Ë¥À¥ó¥×¤È¥ê¥¹¥È¥¢¤ò¤·¤Ê
-¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
-3.11) ¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤Ï¤É¤ó¤Ê¥³¥ó¥Ô¥å¡¼¥¿¤ò»È¤¨¤Ð¤è¤¤¤Ç¤¹¤«¡©
-
-                                 Áàºî¾å¤Î¼ÁÌä                                  
-                                                                               
-4.1) ¥Ð¥¤¥Ê¥ê¡¦¥«¡¼¥½¥ë¤ÈÄ̾參¡¼¥½¥ë¤È¤Î°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
-4.2) ºÇ½é¤Î¿ô¥í¥¦¤Î¤ß¤ò select ¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©¥é¥ó¥À¥à¤Ê¥í¥¦¡©
-4.3) ¥Æ¡¼¥Ö¥ë¤ä¤½¤Î¾¤Î¾ðÊó¤Î¥ê¥¹¥È¤ò psql ¤Ç¸«¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
-4.4) ¥Æ¡¼¥Ö¥ë¤«¤é¥«¥é¥à¤Îºï½ü¡¢¤¢¤ë¤¤¤Ï¡¢¥Ç¡¼¥¿·¿¤òÊѹ¹¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
-4.5) ¥í¥¦¡¢¥Æ¡¼¥Ö¥ë¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇÂ祵¥¤¥º¤Ï¡©
-4.6) °ìÈÌŪ¤Ê¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤òÊݸ¤¹¤ë¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ç¥£¥¹¥¯ÍÆ
-Î̤ϤɤΤ¯¤é¤¤É¬ÍפǤ¹¤«¡©
-4.7) ÄêµÁ¤µ¤ì¤¿¥Æ¡¼¥Ö¥ë¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¡¢¤ª¤è¤Ó¡¢¥æ¡¼¥¶¤ò¤É¤Î¤è¤¦¤Ë
-¤·¤Æ¸«¤Ä¤±½Ð¤·¤Þ¤¹¤«¡©
-4.8) Ì䤤¹ç¤ï¤»¤¬ÃÙ¤¤¤¦¤¨¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤Ã¤Æ¤¤¤ëÍͻҤ¬¤¢¤ê¤Þ¤»¤ó¡£¤Ê¤¼¤Ç¤¹¤«
-¡©
-4.9) Ì䤤¹ç¤ï¤»¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤¬¤É¤Î¤è¤¦¤ËÌ䤤¹ç¤ï¤»¤òɾ²Á¤¹¤ë¤«¤ò¸«¤ë¤Ë¤Ï¤É¤¦¤·
-¤Þ¤¹¤«¡©
-4.10) R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¤Ï²¿¤Ç¤¹¤«¡©
-4.11) °äÅÁŪÌ䤤¹ç¤ï¤»ºÇŬ²½¤È¤Ï²¿¤Ç¤¹¤«¡©
-4.12) Àµµ¬É½¸½¤Ç¤Î¸¡º÷¤äÂçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤Àµµ¬É½¸½¸¡º÷¤Ï¤É¤Î¤è¤¦¤Ë¼Â
-¸½¤·¤Þ¤¹¤«¡©Âçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤¸¡º÷¤Î¤¿¤á¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¤É¤Î¤è¤¦¤Ë»È
-¤¤¤Þ¤¹¤«¡©
-4.13) Ì䤤¹ç¤ï¤»¤ÎÃæ¤Ç¡¢¥Õ¥£¡¼¥ë¥É¤¬ NULL ¤Ç¤¢¤ë¤³¤È¤ò¸¡½Ð¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«
-¡©
-4.14) ¿§¡¹¤Êʸ»ú·¿¤Î¤½¤ì¤¾¤ì¤Î°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
-4.15.1) ÄÌÈÖ(serial)¡¿¼«Æ°Áýʬ¥Õ¥£¡¼¥ë¥É¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
-4.15.2) SERIAL¥Ç¡¼¥¿·¿¤ËÁÞÆþ¤µ¤ì¤ëÃͤϡ¢¤É¤¦¤¹¤ì¤ÐÆÀ¤é¤ì¤Þ¤¹¤«¡©
-4.15.3) currval() ¤Ï¾¤Î¥æ¡¼¥¶¤È¤Î¶¥¹ç¾õÂ֤˴٤뤳¤È¤Ï¤Ê¤¤¤Ç¤¹¤«¡©
-4.15.4) ¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤¬ÃæÃǤ·¤¿¤È¤­¤Ë¤â¤¦¤¤¤Á¤É¥·¡¼¥±¥ó¥¹Èֹ椬»È¤ï¤ì¤Ê¤¤¤Î
-¤Ï¤Ê¤¼¤Ç¤¹¤«¡©¥·¡¼¥±¥ó¥¹¡¿SERIAL¥«¥é¥à¤Ë¶õ¤­¤¬¤¢¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
-4.16) OID ¤È¤Ï²¿¤Ç¤¹¤«¡© TID ¤È¤Ï²¿¤Ç¤¹¤«¡©
-4.17) PostgreSQL ¤Ç»È¤ï¤ì¤ë¤¤¤¯¤Ä¤«¤ÎÍѸì¤Î°ÕÌ£¤Ï²¿¤Ç¤¹¤«¡©
-4.18) ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ "ERROR: Memory exhausted in AllocSetAlloc()"¤¬½Ð¤ë¤Î¤Ï¤Ê
-¤¼¤Ç¤¹¤«¡©
-4.19) ¤É¤Î¥Ð¡¼¥¸¥ç¥ó¤Î PostgreSQL ¤òÁö¤é¤»¤Æ¤¤¤ë¤Î¤«¤òÄ´¤Ù¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
-4.20) ¥é¡¼¥¸¥ª¥Ö¥¸¥§¥¯¥È¤ÎÁàºî¤Ç¡¢invalid large obj descriptor¤È½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç
-¤¹¤«¡©
-4.21) ¸½ºß¤Î»þ¹ï¤¬¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¤è¤¦¤Ê¥«¥é¥à¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
-4.22) ¤Ê¤¼¡¢IN¤ò»È¤¦ÉûÌ䤤¹ç¤ï¤»¤¬¤È¤Æ¤âÃÙ¤¤¤Î¤Ç¤¹¤«¡©
-4.23) ³°Éô·ë¹ç(outer join)¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤·¤Þ¤¹¤«?
-4.24) Ê£¿ô¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»È¤¦Ì䤤¹ç¤ï¤»¤Ï¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤Ç¤­¤Þ¤¹¤«¡©
-4.25) ´Ø¿ô¤ÇÊ£¿ô¤Î¥í¥¦¤Þ¤¿¤Ï¥«¥é¥à¤òÊÖ¤¹¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
-4.26) ¤Ê¤¼¡¢PL/PgSQL ´Ø¿ô¤ÎÃæ¤«¤é°ì»þ¥Æ¡¼¥Ö¥ë¤ò³Î¼Â¤Ë create/drop ¤¹¤ë¤³¤È¤¬¤Ç
-¤­¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©
-4.27) ¤É¤Î¤è¤¦¤Ê°Å¹æ²½¥ª¥×¥·¥ç¥ó¤òÍøÍѤǤ­¤Þ¤¹¤«?
-
-                        PostgreSQL¤Î³ÈÄ¥¤Ë¤Ä¤¤¤Æ¤Î¼ÁÌä                         
-                                                                               
-5.1) ¼«Ê¬¤Ç½ñ¤¤¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤ò psql ¤ÎÃæ¤Ç¼Â¹Ô¤¹¤ë¤È¥³¥¢¡¦¥À¥ó¥×¤·¤Æ¤·¤Þ¤¦¤Î
-¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
-5.2) PostgreSQL ÍѤ˽ñ¤¤¤¿¤Á¤ç¤Ã¤ÈÁÇŨ¤Ê¿·¤·¤¤·¿¤ä´Ø¿ô¤òÄ󶡤·¤Æ¥×¥í¥¸¥§¥¯¥È¤Ë
-¹×¸¥¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡©
-5.3) ¥¿¥×¥ë¤òÊÖ¤¹ C¸À¸ì¤Î´Ø¿ô¤Ï¤É¤Î¤è¤¦¤Ë½ñ¤­¤Þ¤¹¤«¡©
-5.4) ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤òÊѹ¹¤·¤Þ¤·¤¿¡£ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤âÊѲ½¤¬¸«¤é¤ì¤Ê¤¤¤Î¤Ï¤Ê¤¼
-¤Ç¤¹¤«¡©
-
-¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬ 
-
-                                 °ìÈÌŪ¤Ê¼ÁÌä                                  
-                                                                               
-1.1) PostgreSQL ¤È¤Ï²¿¤Ç¤¹¤«¡©²¿¤ÈÆÉ¤ß¤Þ¤¹¤«¡©
-
-PostgreSQL¤ÏPost-Gres-Q-L(¥Ý¥¹¥È - ¥°¥ì¥¹ - ¥­¥å¡¼ - ¥¨¥ë) ¤Èȯ²»¤·¤Þ¤¹¡£
-
-PostgreSQL ¤Ï¼¡À¤Âå DBMS ¸¦µæÍѤΥץí¥È¥¿¥¤¥×¤Ç¤¢¤Ã¤¿ POSTGRES ¥Ç¡¼¥¿¥Ù¡¼¥¹´ÉÍý
-¥·¥¹¥Æ¥à¤Î²þÎÉÈǤǤ¹¡Ê¤³¤Î¤¿¤á¡¢º£¤Ç¤â¤È¤­¤É¤­ "Postgres" ¤È¸Æ¤Ð¤ì¤ë¤³¤È¤¬¤¢¤ê
-¤Þ¤¹¡Ë¡£PostgreSQL ¤Ï POSTGRES ¤Î¶¯ÎϤʥǡ¼¥¿¡¦¥â¥Ç¥ë¤ÈË­É٤ʥǡ¼¥¿¡¦¥¿¥¤¥×(·¿)
-¤òÊÝ»ý¤·¤Ê¤¬¤é¡¢POSTGRES ¤Ç»È¤ï¤ì¤¿ PostQuel Ì䤤¹ç¤ï¤»¸À¸ì¤ò¡¢³ÈÄ¥¤·¤¿ SQL ¤Î
-¥µ¥Ö¥»¥Ã¥È¤ËÃÖ¤­´¹¤¨¤Æ¤¤¤Þ¤¹¡£PostgreSQL ¤Ï̵ÎÁ¤Ç´°Á´¤Ê¥½¡¼¥¹¤òÍøÍѤǤ­¤Þ¤¹¡£
-
-PostgreSQL ¤Î³«È¯¤Ï¡¢PostgreSQL ³«È¯¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë»²²Ã¤·¤Æ¤¤¤ë³«È¯¼Ôã¤Î¥Á
-¡¼¥à¤Ç¤¹¤Ù¤Æ¹Ô¤Ê¤ï¤ì¤Æ¤¤¤Þ¤¹¡£¸½ºß¤ÎºÂĹ¤Ï Marc G. Fournier (
-scrappy@PostgreSQL.org )¤Ç¤¹¡£(²¼µ­¤Î1.6Àá¤Ë»²²Ã¤Î»ÅÊý¤¬¤¢¤ê¤Þ¤¹¡£)¸½ºß¡¢¤³¤Î¥Á
-¡¼¥à¤¬ PostgreSQL ³«È¯¤Î¤¹¤Ù¤Æ¤ÎÌÌÅݤò¤ß¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥Á¡¼¥à¤Ï¥³¥ß¥å¥Ë¥Æ¥£¥×¥í
-¥¸¥§¥¯¥È¤Ç¤¢¤ê¡¢¤¤¤«¤Ê¤ë´ë¶È¤Ë¤è¤Ã¤Æ¤âÀ©¸æ¤ò¼õ¤±¤Þ¤»¤ó¡£»²²Ã¤·¤¿¤±¤ì¤Ð¡¢ http:/
-/www.postgresql.org/files/documentation/faqs/FAQ_DEV.html ¤Ë¤¢¤ë³«È¯¼Ô¸þ¤±¤ÎFAQ
-¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£
-
-Postgres95-1.01 ¤ÎÃæ¿´Åª¤Ê³«È¯¼Ô¤Ï Andrew Yu ¤È Jolly Chen ¤Ç¤·¤¿¤¬¡¢¤½¤Î¾ÂçÀª
-¤Î¿Í¡¹¤¬¤³¤Î¥³¡¼¥É¤Î°Ü¿¢¡¢¥Æ¥¹¥È¡¢¥Ç¥Ð¥°¡¢¤ª¤è¤Ó¡¢²þÎɤ˻²²Ã¤·¤Þ¤·¤¿¡£
-PostgreSQL ¤ÎÇÉÀ¸¸µ¥³¡¼¥É¤Ç¤¢¤ë Postgres ¤Ï¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¥Ð¡¼¥¯¥ì¥¤¹»¤Ë¤ª¤¤
-¤Æ¡¢ Michael Stonebraker ¶µ¼ø¤Î»Ø´ø¤Î¤â¤È¡¢Â¿¤¯¤Î³ØÀ¸¡¢Â´¶ÈÀ¸¡¢ËÜ¿¦¤Î¥×¥í¥°¥é¥Þ
-¤¿¤Á¤ÎÅØÎϤˤè¤êºî¤é¤ì¤Þ¤·¤¿¡£
-
-¥Ð¡¼¥¯¥ì¥¤¤Ë¤ª¤±¤ë¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤Î¤â¤È¤Î̾Á°¤Ï Postgres ¤Ç¤·¤¿¤¬¡¢SQL ¤Îµ¡Ç½
-¤¬Äɲ䵤줿 1995 Ç¯¤Ë¤½¤Î̾Á°¤Ï Postgres95 ¤ËÊѹ¹¤µ¤ì¡¢1996 Ç¯¤Î½ª¤ê¤Ë¤½¤Î̾Á°
-¤Ï PostgreSQL ¤ËÊѹ¹¤µ¤ì¤Þ¤·¤¿¡£
-
-1.2) PostgreSQL ¤ÎÃøºî¸¢¤Ï¤É¤¦¤Ê¤Ã¤Æ¤Þ¤¹¤«¡©
-
-PostgreSQL ¤Ï²¼µ­¤ÎÃøºî¸¢¤Ë½¾¤¤¤Þ¤¹¡£
-
+     _________________________________________________________________
+   
+                                °ìÈÌŪ¤Ê¼ÁÌä
+                                      
+   1.1) PostgreSQL¤È¤Ï²¿¤Ç¤¹¤«¡© ²¿¤ÈÆÉ¤ß¤Þ¤¹¤«¡©
+   1.2) PostgreSQL¤ÎÃøºî¸¢¤Ï¤É¤¦¤Ê¤Ã¤Æ¤Þ¤¹¤«¡©
+   1.3) PostgreSQL¤Îưºî¤¹¤ëUnix¥×¥é¥Ã¥È¥Û¡¼¥à¤Ï¡©
+   1.4) Unix°Ê³°¤Î°Ü¿¢ÈǤǻȤ¨¤ë¤â¤Î¤Ï¡©
+   1.5) PostgreSQL¤Ï¤É¤³¤«¤éÆþ¼ê¤Ç¤¤Þ¤¹¤«¡©
+   1.6) ¥µ¥Ý¡¼¥È¤Ï¤É¤³¤Ç¼õ¤±¤é¤ì¤Þ¤¹¤«¡©
+   1.7) ºÇ¿·ÈǤϤɤì¤Ç¤¹¤«
+   1.8) ¤É¤Î¤è¤¦¤Êʸ½ñ¤¬¤¢¤ê¤Þ¤¹¤«¡©
+   1.9) ´ûÃΤΥХ°¤ä̤¤À̵¤¤µ¡Ç½¤Ï¤É¤¦¤ä¤Ã¤Æ¸«¤Ä¤±¤Þ¤¹¤«¡©
+   1.10) SQL¤Ï¤É¤¦¤¹¤ì¤Ð³Ø¤Ù¤Þ¤¹¤«¡©
+   1.11) PostgreSQL¤ÏÀ¾Îñ2000ǯÌäÂê(Y2K)¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¤«¡©
+   1.12) ³«È¯¥Á¡¼¥à¤Ë¤Ï¤É¤Î¤è¤¦¤Ë»²²Ã¤·¤Þ¤¹¤«¡©
+   1.13) ¥Ð¥°¥ì¥Ý¡¼¥È¤Ï¤É¤Î¤è¤¦¤Ëȯ¿®¤·¤Þ¤¹¤«¡©
+   1.14) Â¾¤ÎDBMS¤ÈÈæ¤Ù¤ÆPostgreSQL¤Ï¤É¤¦¤Ê¤Î¤Ç¤¹¤«¡©
+   1.15) PostgreSQL¤ò»ñ¶âÌ̤DZç½õ¤¹¤ë¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤è¤¤¤Ç¤¹¤«¡©
+   
+                        ¥æ¡¼¥¶¡¼¡¦¥¯¥é¥¤¥¢¥ó¥È¤Î¼ÁÌä
+                                      
+   2.1) PostgreSQL ¤Î ODBC ¥É¥é¥¤¥Ð¡¼¤Ï¤¢¤ê¤Þ¤¹¤«¡©
+   2.2) PostgreSQL ¤ò Web
+   ¥Ú¡¼¥¸¤ÈÏ¢·È¤µ¤»¤ë¤Ë¤Ï¤É¤ó¤Ê¥Ä¡¼¥ë¤¬¤¢¤ê¤Þ¤¹¤«¡©
+   2.3) PostgreSQL ¤Ë¥°¥é¥Õ¥£¥«¥ë¡¦¥æ¡¼¥¶¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï¤¢¤ê¤Þ¤¹¤«¡©
+   2.4) ¤É¤Î¤è¤¦¤Ê¸À¸ì¤Ç PostgreSQL ¤ÈÄÌ¿®¤Ç¤¤¹¤«¡©
+   
+                                ´ÉÍý¾å¤Î¼ÁÌä
+                                      
+   3.1) ¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð /usr/local/pgsql °Ê³°¤Î¾ì½ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­
+   ¤Þ¤¹¤«¡©
+   3.2) postmaster ¤òÁö¤é¤»¤ë¤È¡¢ Bad System Call
+   ¤È¤«¥³¥¢¡¦¥À¥ó¥×¤·¤¿¤È¤Î¥á¥Ã¥»¡¼¥¸¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
+   3.3) postmaster ¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢ IpcMemoryCreate
+   ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
+   3.4) postmaster¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢ IpcSemaphoreCreate
+   ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
+   3.5) Â¾¤Î¥Û¥¹¥È¤«¤é¤ÎÀܳ¤Ï¤É¤Î¤è¤¦¤ËÀ©¸æ¤·¤Þ¤¹¤«¡©
+   3.6) ¤è¤êÎɤ¤À­
+   Ç½¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥¨¥ó¥¸¥ó¤ò¤É¤Î¤è¤¦¤ËÄ´À°¤¹¤ì¤ÐÎɤ¤¤Ç¤¹
+   ¤«¡©
+   3.7) ¤É¤Î¤è¤¦¤Ê¥Ç¥Ð¥°µ¡Ç½¤¬»È¤¨¤Þ¤¹¤«¡©
+   3.8) Àܳ¤·¤è¤¦¤È¤¹¤ë¤È¤¤Ë 'Sorry, too many clients'
+   ¤¬½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+   3.9) pgsql_tmp ¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤Ë¤Ï²¿¤¬¤¢¤ê¤Þ¤¹¤«¡©
+   3.10)
+   PostgreSQL¤Î¥á¥¸¥ã¡¼¥ê¥ê¡¼¥¹¤ò¥¢¥Ã¥×¥Ç¡¼¥È¤¹¤ë¤Î¤Ë¥À¥ó¥×¤È¥ê¥¹¥È¥¢¤ò¤·
+   ¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+   3.11) ¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤Ï¤É¤ó¤Ê¥³¥ó¥Ô¥å¡¼¥¿¤ò»È¤¨¤Ð¤è¤¤¤Ç¤¹¤«¡©
+   
+                                Áàºî¾å¤Î¼ÁÌä
+                                      
+   4.1) ¥Ð¥¤¥Ê¥ê¡¦¥«¡¼¥½¥ë¤ÈÄ̾參¡¼¥½¥ë¤È¤Î°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
+   4.2) ºÇ½é¤Î¿ô¥í¥¦¤Î¤ß¤ò select ¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡© ¥é¥ó¥À¥à¤Ê¥í¥¦¡©
+   4.3) ¥Æ¡¼¥Ö¥ë¤ä¤½¤Î¾¤Î¾ðÊó¤Î¥ê¥¹¥È¤ò psql ¤Ç¸«¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+   4.4)
+   ¥Æ¡¼¥Ö¥ë¤«¤é¥«¥é¥à¤Îºï½ü¡¢¤¢¤ë¤¤¤Ï¡¢¥Ç¡¼¥¿·¿¤òÊѹ¹¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«
+   ¡©
+   4.5) ¥í¥¦¡¢¥Æ¡¼¥Ö¥ë¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇÂ祵¥¤¥º¤Ï¡©
+   4.6) °ìÈÌŪ¤Ê¥Æ¥­
+   ¥¹¥È¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤òÊݸ¤¹¤ë¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ç¥£¥¹¥¯ÍÆÎ̤ϤɤÎ
+   ¤¯¤é¤¤É¬ÍפǤ¹¤«¡©
+   4.7)
+   ÄêµÁ¤µ¤ì¤¿¥Æ¡¼¥Ö¥ë¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¡¢¤ª¤è¤Ó¡¢¥æ¡¼¥¶¤ò¤É¤Î¤è
+   ¤¦¤Ë¤·¤Æ¸«¤Ä¤±½Ð¤·¤Þ¤¹¤«¡©
+   4.8)
+   Ì䤤¹ç¤ï¤»¤¬ÃÙ¤¤¤¦¤¨¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤Ã¤Æ¤¤¤ëÍͻҤ¬¤¢¤ê¤Þ¤»¤ó¡£¤Ê¤¼¤Ç
+   ¤¹¤«¡©
+   4.9)
+   Ì䤤¹ç¤ï¤»¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤¬¤É¤Î¤è¤¦¤ËÌ䤤¹ç¤ï¤»¤òɾ²Á¤¹¤ë¤«¤ò¸«¤ë¤Ë¤Ï¤É
+   ¤¦¤·¤Þ¤¹¤«¡©
+   4.10) R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¤Ï²¿¤Ç¤¹¤«¡©
+   4.11) °äÅÁŪÌ䤤¹ç¤ï¤»ºÇŬ²½¤È¤Ï²¿¤Ç¤¹¤«¡©
+   4.12)
+   Àµµ¬É½¸½¤Ç¤Î¸¡º÷¤äÂçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤Àµµ¬É½¸½¸¡º÷¤Ï¤É¤Î¤è¤¦¤Ë
+   ¼Â¸½¤·¤Þ¤¹¤«¡©Âçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤¸¡º÷¤Î¤¿¤á¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¤É
+   ¤Î¤è¤¦¤Ë»È¤¤¤Þ¤¹¤«¡©
+   4.13) Ì䤤¹ç¤ï¤»¤ÎÃæ¤Ç¡¢¥Õ¥£¡¼¥ë¥É¤¬ NULL
+   ¤Ç¤¢¤ë¤³¤È¤ò¸¡½Ð¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+   4.14) ¿§¡¹¤Êʸ»ú·¿¤Î¤½¤ì¤¾¤ì¤Î°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
+   4.15.1) ÄÌÈÖ(serial)¡¿¼«Æ°Áýʬ¥Õ¥£¡¼¥ë¥É¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
+   4.15.2) SERIAL¥Ç¡¼¥¿·¿¤ËÁÞÆþ¤µ¤ì¤ëÃͤϡ¢¤É¤¦¤¹¤ì¤ÐÆÀ¤é¤ì¤Þ¤¹¤«¡©
+   4.15.3) currval() ¤Ï¾¤Î¥æ¡¼¥¶¤È¤Î¶¥¹ç¾õÂ֤˴٤뤳¤È¤Ï¤Ê¤¤¤Ç¤¹¤«¡©
+   4.15.4) ¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤¬ÃæÃǤ·¤¿¤È¤­
+   ¤Ë¤â¤¦¤¤¤Á¤É¥·¡¼¥±¥ó¥¹Èֹ椬»È¤ï¤ì¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©¥·¡¼¥±¥ó¥¹¡¿SERI
+   AL¥«¥é¥à¤Ë¶õ¤¤¬¤¢¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+   4.16) OID ¤È¤Ï²¿¤Ç¤¹¤«¡© TID ¤È¤Ï²¿¤Ç¤¹¤«¡©
+   4.17) PostgreSQL ¤Ç»È¤ï¤ì¤ë¤¤¤¯¤Ä¤«¤ÎÍѸì¤Î°ÕÌ£¤Ï²¿¤Ç¤¹¤«¡©
+   4.18) ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ "ERROR: Memory exhausted in
+   AllocSetAlloc()"¤¬½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+   4.19) ¤É¤Î¥Ð¡¼¥¸¥ç¥ó¤Î PostgreSQL
+   ¤òÁö¤é¤»¤Æ¤¤¤ë¤Î¤«¤òÄ´¤Ù¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+   4.20) ¥é¡¼¥¸¥ª¥Ö¥¸¥§¥¯¥È¤ÎÁàºî¤Ç¡¢invalid large obj
+   descriptor¤È½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+   4.21)
+   ¸½ºß¤Î»þ¹ï¤¬¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¤è¤¦¤Ê¥«¥é¥à¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
+   4.22) ¤Ê¤¼¡¢IN¤ò»È¤¦ÉûÌ䤤¹ç¤ï¤»¤¬¤È¤Æ¤âÃÙ¤¤¤Î¤Ç¤¹¤«¡©
+   4.23) ³°Éô·ë¹ç(outer join)¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤·¤Þ¤¹¤«?
+   4.24) Ê£¿ô¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»È¤¦Ì䤤¹ç¤ï¤»¤Ï¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤Ç¤¤Þ¤¹¤«¡©
+   4.25) ´Ø¿ô¤ÇÊ£¿ô¤Î¥í¥¦¤Þ¤¿¤Ï¥«¥é¥à¤òÊÖ¤¹¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+   4.26) ¤Ê¤¼¡¢PL/PgSQL ´Ø¿ô¤ÎÃæ¤«¤é°ì»þ¥Æ¡¼¥Ö¥ë¤ò³Î¼Â¤Ë create/drop
+   ¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©
+   4.27) ¤É¤Î¤è¤¦¤Ê°Å¹æ²½¥ª¥×¥·¥ç¥ó¤òÍøÍѤǤ¤Þ¤¹¤«?
+   
+                       PostgreSQL¤Î³ÈÄ¥¤Ë¤Ä¤¤¤Æ¤Î¼ÁÌä
+                                      
+   5.1) ¼«Ê¬¤Ç½ñ¤¤¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤ò psql
+   ¤ÎÃæ¤Ç¼Â¹Ô¤¹¤ë¤È¥³¥¢¡¦¥À¥ó¥×¤·¤Æ¤·¤Þ¤¦¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+   5.2) PostgreSQL
+   ÍѤ˽ñ¤¤¤¿¤Á¤ç¤Ã¤ÈÁÇŨ¤Ê¿·¤·¤¤·¿¤ä´Ø¿ô¤òÄ󶡤·¤Æ¥×¥í¥¸¥§¥¯¥È¤Ë¹×¸¥¤·¤¿
+   ¤¤¤Î¤Ç¤¹¤¬¡©
+   5.3) ¥¿¥×¥ë¤òÊÖ¤¹ C¸À¸ì¤Î´Ø¿ô¤Ï¤É¤Î¤è¤¦¤Ë½ñ¤¤Þ¤¹¤«¡©
+   5.4)
+   ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤òÊѹ¹¤·¤Þ¤·¤¿¡£ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤âÊѲ½¤¬¸«¤é¤ì¤Ê¤¤¤Î¤Ï
+   ¤Ê¤¼¤Ç¤¹¤«¡©
+     _________________________________________________________________
+   
+                                °ìÈÌŪ¤Ê¼ÁÌä
+                                      
+    1.1) PostgreSQL ¤È¤Ï²¿¤Ç¤¹¤«¡© ²¿¤ÈÆÉ¤ß¤Þ¤¹¤«¡©
+    
+   PostgreSQL¤ÏPost-Gres-Q-L(¥Ý¥¹¥È - ¥°¥ì¥¹ - ¥¥å¡¼ - ¥¨¥ë)
+   ¤Èȯ²»¤·¤Þ¤¹¡£
+   
+   PostgreSQL ¤Ï¼¡À¤Âå DBMS ¸¦µæÍѤΥץí¥È¥¿¥¤¥×¤Ç¤¢¤Ã¤¿ POSTGRES
+   ¥Ç¡¼¥¿¥Ù¡¼¥¹´ÉÍý¥·¥¹¥Æ¥à¤Î²þÎÉÈǤǤ¹¡Ê¤³¤Î¤¿¤á¡¢º£¤Ç¤â¤È¤¤É¤­
+   "Postgres" ¤È¸Æ¤Ð¤ì¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡Ë¡£PostgreSQL ¤Ï POSTGRES
+   ¤Î¶¯ÎϤʥǡ¼¥¿¡¦¥â¥Ç¥ë¤ÈË­
+   É٤ʥǡ¼¥¿¡¦¥¿¥¤¥×(·¿)¤òÊÝ»ý¤·¤Ê¤¬¤é¡¢POSTGRES ¤Ç»È¤ï¤ì¤¿ PostQuel
+   Ì䤤¹ç¤ï¤»¸À¸ì¤ò¡¢³ÈÄ¥¤·¤¿ SQL ¤Î¥µ¥Ö¥»¥Ã¥È¤ËÃÖ¤­
+   ´¹¤¨¤Æ¤¤¤Þ¤¹¡£PostgreSQL ¤Ï̵ÎÁ¤Ç´°Á´¤Ê¥½¡¼¥¹¤òÍøÍѤǤ¤Þ¤¹¡£
+   
+   PostgreSQL ¤Î³«È¯¤Ï¡¢PostgreSQL
+   ³«È¯¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë»²²Ã¤·¤Æ¤¤¤ë³«È¯¼Ôã¤Î¥Á¡¼¥à¤Ç¤¹¤Ù¤Æ¹Ô¤Ê¤ï¤ì¤Æ¤¤
+   ¤Þ¤¹¡£¸½ºß¤ÎºÂĹ¤Ï Marc G. Fournier (scrappy@PostgreSQL.org
+   )¤Ç¤¹¡£(²¼µ¤Î1.6Àá¤Ë»²²Ã¤Î»ÅÊý¤¬¤¢¤ê¤Þ¤¹¡£)¸½ºß¡¢¤³¤Î¥Á¡¼¥à¤¬
+   PostgreSQL
+   ³«È¯¤Î¤¹¤Ù¤Æ¤ÎÌÌÅݤò¤ß¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥Á¡¼¥à¤Ï¥³¥ß¥å¥Ë¥Æ¥£¥×¥í¥¸¥§¥¯¥È¤Ç
+   ¤¢¤ê¡¢¤¤¤«¤Ê¤ë´ë¶È¤Ë¤è¤Ã¤Æ¤âÀ©¸æ¤ò¼õ¤±¤Þ¤»¤ó¡£»²²Ã¤·¤¿¤±¤ì¤Ð¡¢
+   http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html
+   ¤Ë¤¢¤ë³«È¯¼Ô¸þ¤±¤ÎFAQ¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£
+   
+   Postgres95-1.01 ¤ÎÃæ¿´Åª¤Ê³«È¯¼Ô¤Ï Andrew Yu ¤È Jolly Chen
+   ¤Ç¤·¤¿¤¬¡¢¤½¤Î¾ÂçÀª¤Î¿Í¡¹¤¬¤³¤Î¥³¡¼¥É¤Î°Ü¿¢¡¢¥Æ¥¹¥È¡¢¥Ç¥Ð¥°¡¢¤ª¤è¤Ó¡¢
+   ²þÎɤ˻²²Ã¤·¤Þ¤·¤¿¡£PostgreSQL ¤ÎÇÉÀ¸¸µ¥³¡¼¥É¤Ç¤¢¤ë Postgres
+   ¤Ï¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¥Ð¡¼¥¯¥ì¥¤¹»¤Ë¤ª¤¤¤Æ¡¢ Michael Stonebraker
+   ¶µ¼ø¤Î»Ø´ø¤Î¤â¤È¡¢Â¿¤¯¤Î³ØÀ¸¡¢Â´¶ÈÀ¸¡¢ËÜ¿¦¤Î¥×¥í¥°¥é¥Þ¤¿¤Á¤ÎÅØÎϤˤè¤ê
+   ºî¤é¤ì¤Þ¤·¤¿¡£
+   
+   ¥Ð¡¼¥¯¥ì¥¤¤Ë¤ª¤±¤ë¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤Î¤â¤È¤Î̾Á°¤Ï Postgres
+   ¤Ç¤·¤¿¤¬¡¢SQL ¤Îµ¡Ç½¤¬Äɲ䵤줿 1995 Ç¯¤Ë¤½¤Î̾Á°¤Ï Postgres95
+   ¤ËÊѹ¹¤µ¤ì¡¢1996 Ç¯¤Î½ª¤ê¤Ë¤½¤Î̾Á°¤Ï PostgreSQL ¤ËÊѹ¹¤µ¤ì¤Þ¤·¤¿¡£
+   
+    1.2) PostgreSQL ¤ÎÃøºî¸¢¤Ï¤É¤¦¤Ê¤Ã¤Æ¤Þ¤¹¤«¡©
+    
+   PostgreSQL ¤Ï²¼µ¤ÎÃøºî¸¢¤Ë½¾¤¤¤Þ¤¹¡£
     [ÌõÃí¡§
-        ÀµÊ¸¤Ï±Ñ¸ì¤Ç¤¹¡£»²¹Í¤È¤·¤Æ¡¢Ìõʸ¤òÊ»µ­·ÇºÜ¤·¤Þ¤¹¡£
+        ÀµÊ¸¤Ï±Ñ¸ì¤Ç¤¹¡£»²¹Í¤È¤·¤Æ¡¢Ìõʸ¤òÊ»µ·ÇºÜ¤·¤Þ¤¹¡£
     ]
 
-PostgreSQL Data Base Management System
-
-Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group Portions
-Copyright (c) 1994-6 Regents of the University of California
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose, without fee, and without a written agreement is
-hereby granted, provided that the above copyright notice and this paragraph and
-the following two paragraphs appear in all copies.
-
-IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
-DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST
-PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
-THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGE.
-
-THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND
-THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE,
-SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
-
+   PostgreSQL Data Base Management System
+   
+   Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
+   Portions Copyright (c) 1994-6 Regents of the University of California
+   
+   Permission to use, copy, modify, and distribute this software and its
+   documentation for any purpose, without fee, and without a written
+   agreement is hereby granted, provided that the above copyright notice
+   and this paragraph and the following two paragraphs appear in all
+   copies.
+   
+   IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
+   FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
+   INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND
+   ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN
+   ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+   
+   THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
+   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
+   PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
+   CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
+   UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
         POSTGRESQL ¥Ç¡¼¥¿¥Ù¡¼¥¹´ÉÍý¥·¥¹¥Æ¥à
 
         ÉôÊ¬ÅªÃøºî¸¢ (c) 1996-2004, PostgreSQL¹ñºÝ³«È¯¥Á¡¼¥à
         ÉôÊ¬ÅªÃøºî¸¢ (c) 1994-6 ¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³ØËܹ»
 
 
-          ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ª¤è¤Ó¤½¤Îʸ½ñ°ì¼°¤Ï¾åµ­¤ÎÃøºî¸¢É½¼¨¤È¡¢¤³¤Îʸ¾Ï
+          ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ª¤è¤Ó¤½¤Îʸ½ñ°ì¼°¤Ï¾åµ¤ÎÃøºî¸¢É½¼¨¤È¡¢¤³¤Îʸ¾Ï
         ¤ª¤è¤Ó¤³¤ì¤Ë³¤¯Æó¤Ä¤ÎÃÊÍÁ´¤Æ¤ÎÊ£À½¤ËźÉÕ¤µ¤ì¤Æ¤¤¤ë¸Â¤ê¤Ë¤ª¤¤
         ¤Æ¡¢»ÈÍÑ¡¢Ê£À½¡¢½¤Àµ¤ª¤è¤ÓÇÛÉդεö²Ä¤ò¡¢¤¤¤«¤Ê¤ëÌÜŪ¤Ç¤¢¤Ã¤Æ¤â¡¢
         Ìµ½þ¤Ç¤«¤ÄƱ°Õ½ñ̵¤·¤Ë¹Ô¤Ê¤¨¤ë¤³¤È¤ò¤³¤³¤Ëǧ¤á¤Þ¤¹¡£
@@ -211,49 +230,50 @@ SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
         ¤ò¼õ¤±¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢°ìÀÚ¤ÎÀÕǤ¤òÉ餤¤Þ¤»¤ó¡£
         
           ¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¤Ï¡¢¾¦ÍÑÌÜŪ¤Ë¤ª¤±¤ë°ÅÌÛ¤ÎÊݾڤȡ¢ÆÃÄêÌÜŪ¤Ç
-        ¤ÎŬ¹çÀ­¤Ë´Ø¤·¤Æ¤Ï¤â¤È¤è¤ê¡¢¤³¤ì¤é¤Ë¸Â¤é¤º¡¢¤¤¤«¤Ê¤ëÊݾڤâÊü´þ¤¹
+        ¤ÎŬ¹çÀ¤Ë´Ø¤·¤Æ¤Ï¤â¤È¤è¤ê¡¢¤³¤ì¤é¤Ë¸Â¤é¤º¡¢¤¤¤«¤Ê¤ëÊݾڤâÊü´þ¤¹
         ¤ë¤³¤È¤òÌÀ¸À¤·¤Þ¤¹¡£°Ê²¼¤ËÍѰդµ¤ì¤¿¥½¥Õ¥È¥¦¥§¥¢¤Ï¡Ö¤½¤Î¤Þ¤Þ¡×¤ò
         ´ðËܸ¶Íý¤È¤·¡¢¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¤Ï¤½¤ì¤ò°Ý»ý¡¢»Ù±ç¡¢¹¹¿·¡¢²þÎɤ¢
         ¤ë¤¤¤Ï½¤Àµ¤¹¤ëµÁ̳¤òÉ餤¤Þ¤»¤ó¡£
 
     [ÌõÃí¡§
-        Ãøºî¸¢¤Ë´Ø¤¹¤ëÀµÊ¸¤Ï¾åµ­¤Î±Ñ¸ì¤Ë¤è¤ëɽµ­¤Ç¤¹¡£ÆüËܸìÌõ¤Ï¤¢¤¯¤Þ¤Ç
+        Ãøºî¸¢¤Ë´Ø¤¹¤ëÀµÊ¸¤Ï¾åµ¤Î±Ñ¸ì¤Ë¤è¤ëɽµ¤Ç¤¹¡£ÆüËܸìÌõ¤Ï¤¢¤¯¤Þ¤Ç
         »²¹Í¤Ç¤¹¡£
     ]
 
-¾åµ­¤ÏBSD¥é¥¤¥»¥ó¥¹¤Ç¸Å¤­¥ª¡¼¥×¥ó¥½¡¼¥¹¤Î¥é¥¤¥»¥ó¥¹¤Ç¤¹¡£¥½¡¼¥¹¥³¡¼¥É¤¬¤É¤Î¤è¤¦
-¤Ë»È¤ï¤ì¤è¤¦¤È¤âÀ©¸Â¤·¤Þ¤»¤ó¡£¹¥¤Þ¤·¤¤¤³¤È¤Ê¤Î¤Ç¡¢²æ¡¹¤â¤½¤ì¤òÊѤ¨¤ë¤Ä¤â¤ê¤Ï¤¢
-¤ê¤Þ¤»¤ó¡£
-
-1.3) PostgreSQL ¤Îưºî´Ä¶­¤Ï¡©
-
-°ìÈÌŪ¤Ë¡¢ºÇ¶á¤ÎUnix¸ß´¹¥×¥é¥Ã¥È¥Û¡¼¥à¤Ç¤¢¤ì¤ÐPostgreSQL¤ò²ÔƯ¤µ¤»¤é¤ì¤ë¤Ï¤º¤Ç
-¤¹¡£¥ê¥ê¡¼¥¹¤Î»þÅÀ¤Ç¼ÂºÝ¤Ë¥Æ¥¹¥È¤ò¹Ô¤Ê¤Ã¤¿¤³¤È¤ÎÊó¹ð¤¬¤Ê¤µ¤ì¤¿¥×¥é¥Ã¥È¥Û¡¼¥à¤Ë
-¤Ä¤¤¤Æ¤Ï¥¤¥ó¥¹¥È¡¼¥ë¼ê°ú½ñ¤ËÎóµó¤·¤Æ¤¢¤ê¤Þ¤¹¡£
-
-1.4) Unix°Ê³°¤Î°Ü¿¢ÈǤǻȤ¨¤ë¤â¤Î¤Ï¡©
-
-¥Ð¡¼¥¸¥ç¥ó8.0¤Ë¤Ê¤ê¡¢PostgreSQL ¤Ï¡¢Win2000, WinXP, Win2003¤Ê¤É¤Î Microsoft
-Windows NT¥Ù¡¼¥¹¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ç¥Í¥¤¥Æ¥£¥Ö¤ËÁö¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
-¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ê¤Ã¤¿¥¤¥ó¥¹¥È¡¼¥é¤¬¡¢http://pgfoundry.org/projects/pginstaller¤«¤é
-Æþ¼ê¤Ç¤­¤Þ¤¹¡£ Windows (Win95, Win98, WinMe)¤Ê¤É¡¢MSDOS¥Ù¡¼¥¹¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢
-Cygwin ¤ò»È¤Ã¤ÆPostgreSQL¤òÁö¤é¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-
+   ¾åµ¤ÏBSD¥é¥¤¥»¥ó¥¹¤Ç¸Å¤¥ª¡¼¥×¥ó¥½¡¼¥¹¤Î¥é¥¤¥»¥ó¥¹¤Ç¤¹¡£¥½¡¼¥¹¥³¡¼¥É
+   ¤¬¤É¤Î¤è¤¦¤Ë»È¤ï¤ì¤è¤¦¤È¤âÀ©¸Â¤·¤Þ¤»¤ó¡£¹¥¤Þ¤·¤¤¤³¤È¤Ê¤Î¤Ç¡¢²æ¡¹¤â¤½¤ì
+   ¤ò ÊѤ¨¤ë¤Ä¤â¤ê¤Ï¤¢¤ê¤Þ¤»¤ó¡£
+   
+    1.3) PostgreSQL ¤Îưºî´Ä¶¤Ï¡©
+    
+   °ìÈÌŪ¤Ë¡¢ºÇ¶á¤ÎUnix¸ß´¹¥×¥é¥Ã¥È¥Û¡¼¥à¤Ç¤¢¤ì¤ÐPostgreSQL¤ò²ÔƯ¤µ¤»¤é¤ì
+   ¤ë¤Ï¤º¤Ç¤¹¡£¥ê¥ê¡¼¥¹¤Î»þÅÀ¤Ç¼ÂºÝ¤Ë¥Æ¥¹¥È¤ò¹Ô¤Ê¤Ã¤¿¤³¤È¤ÎÊó¹ð¤¬¤Ê¤µ¤ì¤¿
+   ¥×¥é¥Ã¥È¥Û¡¼¥à¤Ë¤Ä¤¤¤Æ¤Ï¥¤¥ó¥¹¥È¡¼¥ë¼ê°ú½ñ¤ËÎóµó¤·¤Æ¤¢¤ê¤Þ¤¹¡£
+   
+    1.4) Unix°Ê³°¤Î°Ü¿¢ÈǤǻȤ¨¤ë¤â¤Î¤Ï¡©
+    
+   ¥Ð¡¼¥¸¥ç¥ó8.0¤Ë¤Ê¤ê¡¢PostgreSQL ¤Ï¡¢Win2000, WinXP, Win2003¤Ê¤É¤Î
+   Microsoft Windows
+   NT¥Ù¡¼¥¹¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ç¥Í¥¤¥Æ¥£¥Ö¤ËÁö¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
+   ¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ê¤Ã¤¿¥¤¥ó¥¹¥È¡¼¥é¤¬¡¢http://pgfoundry.org/projects/pginst
+   aller¤«¤éÆþ¼ê¤Ç¤¤Þ¤¹¡£ Windows (Win95, Win98,
+   WinMe)¤Ê¤É¡¢MSDOS¥Ù¡¼¥¹¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢Cygwin
+   ¤ò»È¤Ã¤ÆPostgreSQL¤òÁö¤é¤»¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
     [ÌõÃí
         pgInstaller ¤ÎÆþ¼ê¤ÏFTP¥ß¥é¡¼¥µ¥¤¥È¤Î win32 ¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤â²Äǽ¤Ç¤¹¡£
             http://www.postgresql.org/mirrors-ftp.html
     ]
 
-¼¡¤Î¥µ¥¤¥È¤Ë Novell Netware 6 ¤Ø¤Î°Ü¿¢¤â¤¢¤ê¤Þ¤¹¡£ http://forge.novell.com ¤Þ¤¿
-¡¢OS/2 (eComStation) ¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢ http://hobbes.nmsu.edu/cgi-bin/h-search?sh=
-1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F¤Ë¤¢¤ê¤Þ¤¹¡£
-
-
-1.5) PostgreSQL ¤Ï¤É¤³¤«¤éÆþ¼ê¤Ç¤­¤Þ¤¹¤«¡©
-
-PostgreSQL ¤ÎÂ縵¤Î anonymous ftp ¥µ¥¤¥È¤Ï ftp://ftp.PostgreSQL.org/pub/ ¤Ç¤¹¡£
-¥ß¥é¡¼¥µ¥¤¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢²æ¡¹¤Î¥á¥¤¥ó Web ¥Ú¡¼¥¸¤ò¤´Í÷²¼¤µ¤¤¡£
-
+   ¼¡¤Î¥µ¥¤¥È¤Ë Novell Netware 6 ¤Ø¤Î°Ü¿¢¤â¤¢¤ê¤Þ¤¹¡£
+   http://forge.novell.com ¤Þ¤¿¡¢OS/2 (eComStation) ¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢
+   http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre
+   SQL&stype=all&sort=type&dir=%2F¤Ë¤¢¤ê¤Þ¤¹¡£
+   
+    1.5) PostgreSQL ¤Ï¤É¤³¤«¤éÆþ¼ê¤Ç¤¤Þ¤¹¤«¡©
+    
+   PostgreSQL ¤ÎÂ縵¤Î anonymous ftp ¥µ¥¤¥È¤Ï
+   ftp://ftp.PostgreSQL.org/pub/ ¤Ç¤¹¡£
+   ¥ß¥é¡¼¥µ¥¤¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢²æ¡¹¤Î¥á¥¤¥ó Web ¥Ú¡¼¥¸¤ò¤´Í÷²¼¤µ¤¤¡£
     [ÌõÃí:
 
         °Ê²¼¤ÏÆüËܤΥߥ顼¥µ¥¤¥È¤Ç¤¹:
@@ -272,54 +292,58 @@ PostgreSQL 
        Japan: ftp://ring.aist.go.jp/pub/misc/db/PostgreSQL/
     ]
 
-1.6) ¥µ¥Ý¡¼¥È¤Ï¤É¤³¤Ç¼õ¤±¤é¤ì¤Þ¤¹¤«¡©
-
-¼çÍפʥ᡼¥ê¥ó¥°¡¦¥ê¥¹¥È¤Ï: pgsql-general@PostgreSQL.org¤Ç¤¹¡£PostgreSQL ¤Ë´Ø¤¹
-¤ë¤³¤È¤Ç¤¢¤ì¤ÐµÄÏÀ¤¬¤Ç¤­¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Ï¡¢ÅŻҥ᡼¥ë¤ÎËÜʸ(Subject ¹Ô
-¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó)¤Ë¼¡¤Î£²¹Ô¤ò½ñ¤¤¤Æ¡¢
-
+    1.6) ¥µ¥Ý¡¼¥È¤Ï¤É¤³¤Ç¼õ¤±¤é¤ì¤Þ¤¹¤«¡©
+    
+   ¼çÍפʥ᡼¥ê¥ó¥°¡¦¥ê¥¹¥È¤Ï:
+   pgsql-general@PostgreSQL.org¤Ç¤¹¡£PostgreSQL
+   ¤Ë´Ø¤¹¤ë¤³¤È¤Ç¤¢¤ì¤ÐµÄÏÀ¤¬¤Ç¤­
+   ¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Ï¡¢ÅŻҥ᡼¥ë¤ÎËÜʸ(Subject
+   ¹Ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó)¤Ë¼¡¤Î£²¹Ô¤ò½ñ¤¤¤Æ¡¢
         subscribe
         end
 
-pgsql-general-request@PostgreSQL.org ¤ØÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
-
-¥À¥¤¥¸¥§¥¹¥ÈÈǤΥ᡼¥ê¥ó¥°¡¦¥ê¥¹¥È¤â¤¢¤ê¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Ï "ËÜʸ"¤Ë¡§
-
+   pgsql-general-request@PostgreSQL.org ¤ØÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
+   
+   ¥À¥¤¥¸¥§¥¹¥ÈÈǤΥ᡼¥ê¥ó¥°¡¦¥ê¥¹¥È¤â¤¢¤ê¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Ï
+   "ËÜʸ"¤Ë¡§
         subscribe
         end
 
-¤È½ñ¤¤¤Æ pgsql-general-digest-request@PostgreSQL.org ¤ØÅŻҥ᡼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤
-¡£
-
-¥À¥¤¥¸¥§¥¹¥ÈÈǤϡ¢¥á¥¤¥ó¥ê¥¹¥È¤Ç¼õ¿®¤¹¤ë¥á¥Ã¥»¡¼¥¸¤¬ 30k ÄøÅÙί¤ëËè¤Ë¥À¥¤¥¸¥§¥¹
-¥ÈÈǥꥹ¥È¤Î¥á¥ó¥Ð¡¼¤ËÁ÷ÉÕ¤µ¤ì¤Þ¤¹¡£
-
-¥Ð¥°¥ì¥Ý¡¼¥ÈÍѤΥ᡼¥ê¥ó¥°¥ê¥¹¥È¤â¤¢¤ê¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Ï "ËÜʸ" ¤Ë¡§
-
+   ¤È½ñ¤¤¤Æ pgsql-general-digest-request@PostgreSQL.org
+   ¤ØÅŻҥ᡼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
+   
+   ¥À¥¤¥¸¥§¥¹¥ÈÈǤϡ¢¥á¥¤¥ó¥ê¥¹¥È¤Ç¼õ¿®¤¹¤ë¥á¥Ã¥»¡¼¥¸¤¬ 30k
+   ÄøÅÙί¤ëËè¤Ë¥À¥¤¥¸¥§¥¹¥ÈÈǥꥹ¥È¤Î¥á¥ó¥Ð¡¼¤ËÁ÷ÉÕ¤µ¤ì¤Þ¤¹¡£
+   
+   ¥Ð¥°¥ì¥Ý¡¼¥ÈÍѤΥ᡼¥ê¥ó¥°¥ê¥¹¥È¤â¤¢¤ê¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Ï
+   "ËÜʸ" ¤Ë¡§
         subscribe
         end
 
-¤È½ñ¤¤¤Æpgsql-bugs-request@PostgreSQL.org ¤ØÅŻҥ᡼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
-
-³«È¯¼Ô¤ÎµÄÏÀ¤Î¤¿¤á¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤âÍøÍѤǤ­¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤ÏÅŻҥá
-¡¼¥ë¤ÎËÜʸ¤Ë¡§
-
+   ¤È½ñ¤¤¤Æpgsql-bugs-request@PostgreSQL.org ¤ØÅŻҥ᡼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
+   
+   ³«È¯¼Ô¤ÎµÄÏÀ¤Î¤¿¤á¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤âÍøÍѤǤ­
+   ¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤ÏÅŻҥ᡼¥ë¤ÎËÜʸ¤Ë¡§
         subscribe
         end
 
-¤È½ñ¤¤¤Æ¡¢pgsql-hackers-request@PostgreSQL.org¤ØÅŻҥ᡼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
-
-http://www.PostgreSQL.org
-
-¥á¥¸¥ã¡¼¤ÊIRC ¥Á¥ã¥ó¥Í¥ë¤Ï¡¢Freenode (irc.freenode.net)¤Î #PostgreSQL ¤È¤¤¤¦¥Á
-¥ã¥ó¥Í¥ë¤Ç¤¹¡£ UNIX ¥³¥Þ¥ó¥É¤Ç¡¢ irc -c '#PostgreSQL' "$USER" irc.freenode.net.
-¤ò»È¤Ã¤Æ»²²Ã¤Ç¤­¤Þ¤¹¡£Æ±¤¸¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¡¢¥¹¥Ú¥¤¥ó¸ì¤Î¥Á¥ã¥ó¥Í¥ë(#
-postgresql-es)¤â¤¢¤ê¡¢¥Õ¥é¥ó¥¹¸ì¤Î¥Á¥ã¥ó¥Í¥ë(#postgresqlfr)¤â¤¢¤ê¤Þ¤¹¡£ EFNet¤Ë
-¤âPostgreSQL¥Á¥ã¥ó¥Í¥ë¤¬¤¢¤ê¤Þ¤¹¡£
-
+   ¤È½ñ¤¤¤Æ¡¢pgsql-hackers-request@PostgreSQL.org¤ØÅŻҥ᡼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ
+   ¤¤¡£
+   
+   PostgreSQL ¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È¾Ü¤·¤¯ÃΤꤿ¤±¤ì¤Ð¡¢¼¡¤Î PostgreSQL
+   WWW¥Û¡¼¥à¥Ú¡¼¥¸¤«¤é¤¿¤É¤ì¤Þ¤¹¡§
+   
+     http://www.PostgreSQL.org
+     
+   ¥á¥¸¥ã¡¼¤ÊIRC ¥Á¥ã¥ó¥Í¥ë¤Ï¡¢Freenode (irc.freenode.net)¤Î #PostgreSQL
+   ¤È¤¤¤¦¥Á¥ã¥ó¥Í¥ë¤Ç¤¹¡£ UNIX ¥³¥Þ¥ó¥É¤Ç¡¢ irc -c '#PostgreSQL' "$USER"
+   irc.freenode.net. ¤ò»È¤Ã¤Æ»²²Ã¤Ç¤¤Þ¤¹¡£
+   Æ±¤¸¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¡¢¥¹¥Ú¥¤¥ó¸ì¤Î¥Á¥ã¥ó¥Í¥ë(#postgresql-es)¤â¤¢
+   ¤ê¡¢¥Õ¥é¥ó¥¹¸ì¤Î¥Á¥ã¥ó¥Í¥ë(#postgresqlfr)¤â¤¢¤ê¤Þ¤¹¡£
+   EFNet¤Ë¤âPostgreSQL¥Á¥ã¥ó¥Í¥ë¤¬¤¢¤ê¤Þ¤¹¡£
     [ÌõÃí:
           1999ǯ7·î23Æü¡¢ÆüËܥݥ¹¥È¥°¥ì¥¹¥æ¡¼¥¶¡¼²ñ¡¢Î¬¾ÎJPUG¤¬ÀßΩ¤µ¤ì¤Þ¤·¤¿¡£
-        JPUG ¤ÏÈó±ÄÍøÁÈ¿¥¤Ç¡¢PostgreSQL¤òÍøÍѤ¹¤ë¿Íã¤ÎÁê¸ß¶¨ÎϤξì¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£  
+        JPUG ¤ÏÈó±ÄÍøÁÈ¿¥¤Ç¡¢PostgreSQL¤òÍøÍѤ¹¤ë¿Íã¤ÎÁê¸ß¶¨ÎϤξì¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
         (2003ǯ5·î17Æü¡¢¡ÖÆüËÜPostgreSQL¥æ¡¼¥¶²ñ¡×¤Ë̾¾Î¤ò²þ¤á¤Þ¤·¤¿¡£)
         Àµ²ñ°÷¤Î²ñÈñ¤Ï̵ÎÁ¤Ç¤¹¤¬¡¢¶¨»¿²ñ°÷¤Î²ñÈñ¤È²ñ°÷¤ÎÀѶËŪ¤Ê¹×¸¥¤¬²ñ¤Î±¿±Ä¤ò½õ¤±¤Æ¤¤¤Þ¤¹¡£
         ¾Ü¤·¤¯¤Ï¡¢JPUG ¤ÎWeb ¥µ¥¤¥È:
@@ -328,76 +352,77 @@ postgresql-es)
 
         ÆüËܸì¤ÎIRC¥Á¥ã¥ó¥Í¥ë '#PostgreSQL*jp' ¤â¸ºß¤·¤Þ¤¹¡£
 
-¾¦ÍÑ¥µ¥Ý¡¼¥È²ñ¼Ò¤Î¥ê¥¹¥È¤Ïhttp://techdocs.postgresql.org/companies.php¤Ë¤¢¤ê¤Þ
-¤¹¡£
-
-1.7) ºÇ¿·ÈǤϤɤì¤Ç¤¹¤«
-
-PostgreSQL ¤ÎºÇ¿·ÈǤϥС¼¥¸¥ç¥ó 7.4.6 ¤Ç¤¹¡£
-
-²æ¡¹¤Ï¡¢6¡Á8¥«·îËè¤Ë¥á¥¸¥ã¡¼¥ê¥ê¡¼¥¹¤ò¹Ô¤Ê¤¦¤³¤È¤ò·×²è¤·¤Æ¤¤¤Þ¤¹¡£
-
-1.8) ¤É¤Î¤è¤¦¤Êʸ½ñ¤¬¤¢¤ê¤Þ¤¹¤«¡©
-
-ÇÛÉÕ¤ÎÃæ¤Ë¡¢¤¤¤¯¤Ä¤«¤Î¥Þ¥Ë¥å¥¢¥ë¤È¥ª¥ó¥é¥¤¥ó¡¦¥Þ¥Ë¥å¥¢¥ë(¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸)¤ª
-¤è¤Ó¤¤¤¯¤Ä¤«¤Î¾®¤µ¤Ê¥Æ¥¹¥ÈÎãÂ꤬´Þ¤Þ¤ì¤Þ¤¹¡£/doc ¥Ç¥£¥ì¥¯¥È¥ê¤ò¤´Í÷²¼¤µ¤¤¡£¤Þ¤¿
-¡¢¥Þ¥Ë¥å¥¢¥ë¤Ï¡¢http://www.ca.PostgreSQL.org/docs/¤Ç¥ª¥ó¥é¥¤¥ó¤Ç¤â±ÜÍ÷¤Ç¤­¤Þ¤¹
-¡£
-
+   ¾¦ÍÑ¥µ¥Ý¡¼¥È²ñ¼Ò¤Î¥ê¥¹¥È¤Ïhttp://techdocs.postgresql.org/companies.php
+   ¤Ë¤¢¤ê¤Þ¤¹¡£
+   
+    1.7) ºÇ¿·ÈǤϤɤì¤Ç¤¹¤«
+    
+   PostgreSQL ¤ÎºÇ¿·ÈǤϥС¼¥¸¥ç¥ó 7.4.6 ¤Ç¤¹¡£
+   
+   ²æ¡¹¤Ï¡¢6¡Á8¥«·îËè¤Ë¥á¥¸¥ã¡¼¥ê¥ê¡¼¥¹¤ò¹Ô¤Ê¤¦¤³¤È¤ò·×²è¤·¤Æ¤¤¤Þ¤¹¡£
+   
+    1.8) ¤É¤Î¤è¤¦¤Êʸ½ñ¤¬¤¢¤ê¤Þ¤¹¤«¡©
+    
+   ÇÛÉÕ¤ÎÃæ¤Ë¡¢¤¤¤¯¤Ä¤«¤Î¥Þ¥Ë¥å¥¢¥ë¤È¥ª¥ó¥é¥¤¥ó¡¦¥Þ¥Ë¥å¥¢¥ë(¥Þ¥Ë¥å¥¢¥ë¡¦¥
+   Ú¡¼¥¸)¤ª¤è¤Ó¤¤¤¯¤Ä¤«¤Î¾®¤µ¤Ê¥Æ¥¹¥ÈÎãÂ꤬´Þ¤Þ¤ì¤Þ¤¹¡£/doc
+   ¥Ç¥£¥ì¥¯¥È¥ê¤ò¤´Í÷²¼¤µ¤¤¡£¤Þ¤¿¡¢¥Þ¥Ë¥å¥¢¥ë¤Ï¡¢http://www.ca.PostgreSQL
+   .org/docs/¤Ç¥ª¥ó¥é¥¤¥ó¤Ç¤â±ÜÍ÷¤Ç¤¤Þ¤¹¡£
     [ÌõÃí:
         ¡Ê³ô¡ËSRA¤ÈÆüËÜPostgreSQL¥æ¡¼¥¶²ñ¤ÇËÝÌõ¤µ¤ì¡¢
         ¡ÖPostgreSQL ¥ª¥Õ¥£¥·¥ã¥ë¥Þ¥Ë¥å¥¢¥ë¡×
         ¤È¤·¤Æ½ÐÈǤµ¤ì¤Æ¤¤¤Þ¤¹¡£
     ]
 
-¥ª¥ó¥é¥¤¥ó¤Ç»²¾È¤Ç¤­¤ë PostgreSQL ¤ÎËܤâ2ºý¤¢¤ê¤Þ¤¹¡£http://www.PostgreSQL.org/
-docs/awbook.html
-
+   ¥ª¥ó¥é¥¤¥ó¤Ç»²¾È¤Ç¤¤ë PostgreSQL
+   ¤ÎËܤâ2ºý¤¢¤ê¤Þ¤¹¡£http://www.PostgreSQL.org/docs/awbook.html
     [ÌõÃí:
         ÆüËܥݥ¹¥È¥°¥ì¥¹¥æ¡¼¥¶¡¼²ñ¤Î    ¡ÖPostgreSQL BookËÝÌõʬ²Ê²ñ¡×
         ¤Ë¤ÆËÝÌõ¤µ¤ì¤Þ¤·¤¿¡£
     ]
 
-¤ª¤è¤Ó¡¢ http://www.commandprompt.com/ppbook/ ¤Ç¤¹¡£¹ØÆþ²Äǽ¤Ê½ñÀÒ¤ÎÌÜÏ¿¤Ï¡¢
-http://techdocs.PostgreSQL.org/techdocs/bookreviews.php ¤Ë¤¢¤ê¤Þ¤¹¡£ PostgreSQL
-µ»½Ñ¾ðÊóµ­»ö¤â¡¢http://techdocs.PostgreSQL.org/ ¤Ë¤¢¤ê¤Þ¤¹¡£
-
-[ÌõÃí: ÏÂÌõʸ½ñ¤Ï¡¢ÆüËܥݥ¹¥È¥°¥ì¥¹¥æ¡¼¥¶¡¼²ñ¤Îhttp://www.postgresql.jp/
-document/ ¤ò¤´¤é¤ó²¼¤µ¤¤¡£ ]
-
-¥³¥Þ¥ó¥É¥é¥¤¥ó¤Î¥¯¥é¥¤¥¢¥ó¥È¥×¥í¥°¥é¥àpsql ¤â¡¢·¿¡¢±é»»»Ò¡¢´Ø¿ô¡¢½¸Ì󡢤½¤Î¾¤Î
-¾ðÊó¤ò¤ª¸«¤»¤¹¤ë¡¢¤¤¤¯¤Ä¤«¤ÎÁÇÀ²¤é¤·¤¤ \d ¥³¥Þ¥ó¥É¤ò»ý¤Á¤Þ¤¹¡£ - \? ¤ò»È¤¦¤ÈÍø
-ÍѲÄǽ¤Ê¥³¥Þ¥ó¥É¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
-
-²æ¡¹¤Î Web ¥µ¥¤¥È¤Ë¤Ï¡¢¤â¤Ã¤ÈÂô»³¤Îʸ½ñ¤¬¤¢¤ê¤Þ¤¹¡£
-
-1.9) ´ûÃΤΥХ°¤ä̤¤À̵¤¤µ¡Ç½¤Ï¤É¤¦¤ä¤Ã¤Æ¸«¤Ä¤±¤Þ¤¹¤«¡©
-
-PostgreSQL¤Ï³ÈÄ¥¤µ¤ì¤¿SQL-92¤Î¥µ¥Ö¥»¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£²æ¡¹¤Î¥Ú¡¼¥¸¤Î TODO
-¥ê¥¹¥È¤Ë¡¢´ûÃΤΥХ°¤ä·çÍǽ¤ä¾­Íè·×²è¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ê¤Þ¤¹¡£
-
-1.10) SQL ¤Ï¤É¤¦¤¹¤ì¤Ð³Ø¤Ù¤Þ¤¹¤«¡©
-
-http://www.PostgreSQL.org/docs/awbook.html ¤Ë¤¢¤ëPostgreSQLËܤǠSQL ¤ò¶µ¤¨¤Æ¤¤
-¤Þ¤¹¡£
-
+   ¤ª¤è¤Ó¡¢ http://www.commandprompt.com/ppbook/ ¤Ç¤¹¡£
+   ¹ØÆþ²Äǽ¤Ê½ñÀÒ¤ÎÌÜÏ¿¤Ï¡¢http://techdocs.PostgreSQL.org/techdocs/bookre
+   views.php ¤Ë¤¢¤ê¤Þ¤¹¡£ PostgreSQL µ»½Ñ¾ðÊóµ­
+   »ö¤â¡¢http://techdocs.PostgreSQL.org/ ¤Ë¤¢¤ê¤Þ¤¹¡£
+   
+   [ÌõÃí:
+   ÏÂÌõʸ½ñ¤Ï¡¢ÆüËܥݥ¹¥È¥°¥ì¥¹¥æ¡¼¥¶¡¼²ñ¤Îhttp://www.postgresql.jp/docum
+   ent/ ¤ò¤´¤é¤ó²¼¤µ¤¤¡£ ]
+   
+   ¥³¥Þ¥ó¥É¥é¥¤¥ó¤Î¥¯¥é¥¤¥¢¥ó¥È¥×¥í¥°¥é¥àpsql
+   ¤â¡¢·¿¡¢±é»»»Ò¡¢´Ø¿ô¡¢½¸Ì󡢤½¤Î¾¤Î¾ðÊó¤ò¤ª¸«¤»¤¹¤ë¡¢¤¤¤¯¤Ä¤«¤ÎÁÇÀ²¤é
+   ¤·¤¤ \d ¥³¥Þ¥ó¥É¤ò»ý¤Á¤Þ¤¹¡£ - \?
+   ¤ò»È¤¦¤ÈÍøÍѲÄǽ¤Ê¥³¥Þ¥ó¥É¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
+   
+   ²æ¡¹¤Î Web ¥µ¥¤¥È¤Ë¤Ï¡¢¤â¤Ã¤ÈÂô»³¤Îʸ½ñ¤¬¤¢¤ê¤Þ¤¹¡£
+   
+    1.9) ´ûÃΤΥХ°¤ä̤¤À̵¤¤µ¡Ç½¤Ï¤É¤¦¤ä¤Ã¤Æ¸«¤Ä¤±¤Þ¤¹¤«¡©
+    
+   PostgreSQL¤Ï³ÈÄ¥¤µ¤ì¤¿SQL-92¤Î¥µ¥Ö¥»¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
+   ²æ¡¹¤Î¥Ú¡¼¥¸¤Î TODO ¥ê¥¹¥È¤Ë¡¢´ûÃΤΥХ°¤ä·çÍǽ¤ä¾­
+   Íè·×²è¤Ë¤Ä¤¤¤Æ¤Îµ½Ò¤¬¤¢¤ê¤Þ¤¹¡£
+   
+  1.10) SQL ¤Ï¤É¤¦¤¹¤ì¤Ð³Ø¤Ù¤Þ¤¹¤«¡©
+  
+   http://www.PostgreSQL.org/docs/awbook.html ¤Ë¤¢¤ëPostgreSQLËܤǠSQL
+   ¤ò¶µ¤¨¤Æ¤¤¤Þ¤¹¡£
     [ÌõÃí:
         ÆüËܥݥ¹¥È¥°¥ì¥¹¥æ¡¼¥¶¡¼²ñ¤Î    ¡ÖPostgreSQL BookËÝÌõʬ²Ê²ñ¡×
         ¤Ë¤ÆËÝÌõ¤µ¤ì½ÐÈǤµ¤ì¤Æ¤¤¤Þ¤¹¡£
     ]
 
-¤½¤Î¾¤Ë¤â PostgreSQLËܤȤ·¤Æ¡¢http://www.commandprompt.com/ppbook ¤¬¤¢¤ê¤Þ¤¹¡£
-ÁÇÀ²¤é¤·¤¤¼ê°ú½ñ¤Ï¡¢http://www.intermedia.net/support/sql/sqltut.shtm, http://
-ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM, ¤½¤·¤Æ¡¢http://
-sqlcourse.com ¤Ë¤¢¤ê¤Þ¤¹¡£
-
-¤½¤Î¾¤Ç¤Ï¡¢ "Teach Yourself SQL in 21 Days, Second Edition" ¤¬ http://
-members.tripod.com/er4ebus/sql/index.htm¤Ë¤¢¤ê¤Þ¤¹¡£
-
-¿¤¯¤Î¥æ¡¼¥¶¤Ë¡¢ The Practical SQL Handbook, Bowman Judith S. et al.,
-Addison-Wesley ¤¬¹¥É¾¤Ç¤¹¡£¤½¤Î¾¤Ë¡¢The Complete Reference SQL, Groff et al.,
-McGraw-Hill ¤Î¤è¤¦¤Ê¤Î¤â¤¢¤ê¤Þ¤¹¡£
-
+   ¤½¤Î¾¤Ë¤â PostgreSQLËܤȤ·¤Æ¡¢http://www.commandprompt.com/ppbook
+   ¤¬¤¢¤ê¤Þ¤¹¡£
+   ÁÇÀ²¤é¤·¤¤¼ê°ú½ñ¤Ï¡¢http://www.intermedia.net/support/sql/sqltut.shtm,
+   http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM,
+   ¤½¤·¤Æ¡¢http://sqlcourse.com ¤Ë¤¢¤ê¤Þ¤¹¡£
+   
+   ¤½¤Î¾¤Ç¤Ï¡¢ "Teach Yourself SQL in 21 Days, Second Edition" ¤¬
+   http://members.tripod.com/er4ebus/sql/index.htm¤Ë¤¢¤ê¤Þ¤¹¡£
+   
+   Â¿¤¯¤Î¥æ¡¼¥¶¤Ë¡¢ The Practical SQL Handbook, Bowman Judith S. et al.,
+   Addison-Wesley ¤¬¹¥É¾¤Ç¤¹¡£ ¤½¤Î¾¤Ë¡¢The Complete Reference SQL,
+   Groff et al., McGraw-Hill ¤Î¤è¤¦¤Ê¤Î¤â¤¢¤ê¤Þ¤¹¡£
     [ÌõÃí:
          ÀаæÃ£É×»á¤Ë¤è¤ëÆüËܸì¤Î»²¹Íʸ¸¥¤Î¾Ò²ð¥Ú¡¼¥¸
                 http://www.SRA.co.jp/people/t-ishii/PostgreSQL/doc-jp/index.html
@@ -407,138 +432,158 @@ McGraw-Hill 
         ¤¬¤¢¤ê¤Þ¤¹(¤ä¤ä¸Å¤¤2000ǯÈÇ)¡£
          ËÙÅÄÎѱѻá¤Î¡ÖPostgreSQLÆüËܸì¥Þ¥Ë¥å¥¢¥ë¡×
                 http://www.net-newbie.com/
-        ¤Ç¤Ï¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Î¸¡º÷¤¬¤Ç¤­¤Þ¤¹¡£
+        ¤Ç¤Ï¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Î¸¡º÷¤¬¤Ç¤¤Þ¤¹¡£
          ´Ý»³ÉÔÆóÉ×»á¤ÎUNIX ¥Ç¡¼¥¿¥Ù¡¼¥¹ÆþÌç
                 http://www.wakhok.ac.jp/DB/DB.html
-        ¤â¥ª¥ó¥é¥¤¥ó¤ÇÆÉ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
+        ¤â¥ª¥ó¥é¥¤¥ó¤ÇÆÉ¤à¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
     ]
 
-1.11) PostgreSQL¤ÏÀ¾Îñ2000ǯÌäÂê(Y2K)¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¤«¡©
-
-Âбþ¤·¤Æ¤Þ¤¹¡£À¾Îñ2000ǯ¤è¤ê¸å¤ÎÆüÉդ⡢µª¸µÁ°2000ǯ¤è¤êÁ°¤ÎÆüÉդ⡢´Êñ¤Ë°·¤¨
-¤Þ¤¹¡£
-
-1.12) ³«È¯¥Á¡¼¥à¤Ë¤Ï¤É¤Î¤è¤¦¤Ë»²²Ã¤·¤Þ¤¹¤«¡©
-
-¤Þ¤ººÇ½é(£±ÈÖÌÜ)¤Ë¡¢ºÇ¿·¤Î¥½¡¼¥¹¤ò¥À¥¦¥ó¥í¡¼¥É¤·¡¢²æ¡¹¤Î Web ¥µ¥¤¥È¤«ÇÛÉۤ˴ޤÞ
-¤ì¤Æ¤¤¤ëPostgreSQL Developers¤Îʸ½ñ¤òÆÉ¤ß¤Þ¤¹¡££²ÈÖÌܤˡ¢pgsql-hackers ¤È
-pgsql-patches ¥á¡¼¥ê¥ó¥°¡¦¥ê¥¹¥È¤ò¹ØÆÉ(subscribe)¤·¤Þ¤¹¡££³ÈÖÌܤˡ¢¹âÉʼÁ¤Î¥Ñ¥Ã
-¥Á¤òpgsql-patches¤Ëȯ¿®¤·¤Þ¤¹¡£
-
-¤ª¤è¤½½½¿Í¤Á¤ç¤Ã¤È¤Î¿Í㤬¡¢PostgreSQL CVS¥¢¡¼¥«¥¤¥Ö¤Ë¥³¥ß¥Ã¥È¤¹¤ë¸¢¸Â¤ò»ý¤Ã¤Æ
-¤¤¤Þ¤¹¡£¤½¤Î¤½¤ì¤¾¤ì¤Î¿Í㤬Âô»³¤Î¹âÉʼÁ¤Ê¥Ñ¥Ã¥Á¤òȯ¿®¤¹¤ë¤Î¤Ç¡¢¸½ºß¥³¥ß¥Ã¥¿¡¼
-¤È¤Ê¤Ã¤Æ¤¤¤ë¿Íã¤Ï¤½¤ì¤ËÄɤ¤ÉÕ¤¯¤Î¤¬ÂçÊѤǤ¹¤¬¡¢²æ¡¹¤ÏÈà¤é¤¬¥³¥ß¥Ã¥È¤·¤¿¥Ñ¥Ã¥Á
-¤Ï¹âÉʼÁ¤Ç¤¢¤ë¤È³Î¿®¤·¤Æ¤¤¤Þ¤¹¡£
-
-1.13) ¥Ð¥°¥ì¥Ý¡¼¥È¤Ï¤É¤Î¤è¤¦¤Ëȯ¿®¤·¤Þ¤¹¤«¡©
-
-http://www.postgresql.org/support/submitbug ¤ÎPostgreSQL ¥Ð¥°¥Õ¥©¡¼¥à¤òˬ¤ì¤Æ²¼
-¤µ¤¤¡£¥Ð¥°¥ì¥Ý¡¼¥È¤òÄó½Ð¤¹¤ë»ÅÊý¤Ë¤Ä¤¤¤Æ¤Î¼ê°ú¤È»Ø¿Ë¤¬¤¢¤ê¤Þ¤¹¡£
-
-¤½¤ì¤ÈƱ»þ¤Ë ftp ¥µ¥¤¥È ftp://ftp.PostgreSQL.org/pub/¤Ç¡¢¤â¤Ã¤È¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó
-¤Î PostgreSQL ¤¢¤ë¤¤¤Ï¥Ñ¥Ã¥Á¤ò¤µ¤¬¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£
-
-1.14) Â¾¤ÎDBMS¤ÈÈæ¤Ù¤ÆPostgreSQL¤Ï¤É¤¦¤Ê¤Î¤Ç¤¹¤«¡©
-
-¥½¥Õ¥È¥¦¥§¥¢¤ò·×¤ëÊýË¡¤Ë¤Ï¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£µ¡Ç½¤ÈÀ­Ç½¤È¿®ÍêÀ­¤È¥µ¥Ý¡¼¥È¤È²Á³Ê
-¤Ç¤¹¡£
-
-µ¡Ç½(Features)
-    PostgreSQL¤Ï¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¡¢ÉûÌ䤤¹ç¤ï¤»¡¢¥È¥ê¥¬¡¼¡¢¥Ó¥å¡¼¡¢³°Éô¥­¡¼À°
-    ¹çÀ­»²¾È¡¢¤ª¤è¤Ó¡¢ÀöÎý¤µ¤ì¤¿¥í¥Ã¥¯µ¡¹½¤Ê¤É¡¢Â絬ÌϾ¦ÍÑDBMS¤¬»ý¤Äµ¡Ç½¤ò¤Û¤È
-    ¤ó¤É»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤µ¤é¤Ë PostgreSQL¤Ï¡¢¥æ¡¼¥¶ÄêµÁ·¿¡¢·Ñ¾µ¡¢¥ë¡¼¥ë¡¢¤½¤ì¤«¤é
-    ¡¢¥í¥Ã¥¯¶¥¹ç¤ò½Ì¾®¤¹¤ë¥Þ¥ë¥Á¥Ð¡¼¥¸¥ç¥óƱ»þÀ­À©¸æ¤Ê¤É¡¢¾¦ÍÑDBMS¤â»ý¤Á¹ç¤ï¤»
-    ¤Ê¤¤¤è¤¦¤Êµ¡Ç½¤ò¤¤¤¯¤Ä¤«»ý¤Á¹ç¤ï¤»¤Æ¤¤¤Þ¤¹¡£
-À­Ç½(Performance)
-    PostgreSQL¤Ï¾¤Î¾¦ÍѤ¢¤ë¤¤¤Ï¥ª¡¼¥×¥ó¥½¡¼¥¹¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¸ß³Ñ¤ÎÀ­Ç½¤â»ý¤Á
-    ¤Þ¤¹¡£¤¢¤ëÌ̤ǤϤè¤êÁᤫ¤Ã¤¿¤ê¡¢¤Û¤«¤ÎÌ̤ǤϤè¤êÃÙ¤«¤Ã¤¿¤ê¤·¤Þ¤¹¡£MySQL¤Ê¤É
-    ¤ÎÆÃ²½·¿¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥·¥¹¥Æ¥à¤Ë¤¯¤é¤Ù¤Æ¡¢PostgreSQL ¤ÏÊ£¿ô¥æ¡¼¥¶¤äÊ£»¨¤ÊÌä
-    ¤¤¹ç¤ï¤»¡¢¤Þ¤¿¡¢ read/write Ì䤤¹ç¤ï¤»¤Î¥í¡¼¥É¤¬¤è¤ê¹â®¤Ç¤¹¡£MySQL¤Ï¾¯¤Ê¤¤
-    ¥æ¡¼¥¶¤Ç¤Îñ½ã¤Ê SELECT Ì䤤¹ç¤ï¤»¤Ç¤Ï¹â®¤Ç¤¹¡£¤â¤Á¤í¤ó¡¢MySQL¤Ë¤Ï¾åµ­¤Î
-    Features¤ÎÀá¤Ë¼¨¤¹¤è¤¦¤Êµ¡Ç½¤Ï¤Û¤È¤ó¤É¤¢¤ê¤Þ¤»¤ó¡£²æ¡¹¤Ï¡¢PostgreSQL¤Ë½ÀÆð
-    À­¤Èµ¡Ç½À­¤òÁȤ߹þ¤ß¤Ê¤¬¤é¤â¡¢À䤨¤ºÀ­Ç½¤Î²þÁ±¤ò³¤±¤Æ¤¤¤Þ¤¹¡£
-¿®ÍêÀ­(Reliability)
-    ²æ¡¹¤Ï¡¢DBMS¤Î¿®ÍêÀ­¤¬¹â¤¯¤Ê¤¯¤Æ¤Ï¤½¤Î²ÁÃͤ¬Ìµ¤¤¤³¤È¤òÍý²ò¤·¤Æ¤Þ¤¹¡£½½Ê¬¥Æ
-    ¥¹¥È¤·¤Æ¡¢°ÂÄꤷ¤¿¥³¡¼¥É¤ò¥Ð¥°¤òºÇ¾®¤Ë¤·¤Æ¤«¤é¥ê¥ê¡¼¥¹¤¹¤ë¤è¤¦¤ËÅØ¤á¤Æ¤Þ¤¹
-    ¡£¤½¤ì¤¾¤ì¤Î¥ê¥ê¡¼¥¹¤Ï¾¯¤Ê¤¯¤È¤â1¥«·î°Ê¾å¤Î¥Ù¡¼¥¿¡¦¥Æ¥¹¥È¤ò¹Ô¤Ê¤¤¡¢¤³¤ì¤Þ¤Ç
-    ¤Î¥ê¥ê¡¼¥¹¤ÎÍúÎò¤¬¡¢À½ÉÊÈǤȤ·¤Æ°ÂÄꤷ¤¿·ø¸Ç¤Ê¥ê¥ê¡¼¥¹¤Ç¤¢¤ë¤³¤È¤òʪ¸ì¤Ã¤Æ
-    ¤¤¤Þ¤¹¡£¤³¤ÎʬÌî¤Ç¤Ï¡¢Â¾¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÈÈæ¤Ù¤Æ¤â½¿§¤¬¤Ê¤¤¤³¤È¤Ë¼«¿®¤ò»ý¤Ã
-    ¤Æ¤¤¤Þ¤¹¡£
-¥µ¥Ý¡¼¥È(Support)
-    ²æ¡¹¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ï¡¢Áø¶ø¤¹¤ë¤¤¤«¤Ê¤ëÌäÂê¤Ë¤Ä¤¤¤Æ¤â²ò·è¤Ø¤Î¼ê½õ¤±¤ò¤·
-    ¤Æ¤¯¤ì¤ë¡¢³«È¯¼Ô¤ä¥æ¡¼¥¶¤ÎÂ礭¤Ê½¸¤Þ¤ê¤Ø¤ÎÀÜÅÀ¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£²æ¡¹¤ÏÌäÂê
-    ¤Î²ò·è¤òÊݾڤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤¬¡¢¾¦Íѥǡ¼¥¿¥Ù¡¼¥¹¤Ç¤¢¤Ã¤Æ¤â¾ï¤Ë²ò·è¤µ¤ì
-    ¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£³«È¯¼Ô¤ä¡¢¥æ¡¼¥¶¡¦¥³¥ß¥å¥Ë¥Æ¥£¡¢¥Þ¥Ë¥å¥¢¥ëÎà¡¢¤½¤ì¤Ë
-    ¡¢¥½¡¼¥¹¥³¡¼¥É¤Ê¤É¤ØÄ¾ÀÜ¥¢¥¯¥»¥¹¤Ç¤­¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢PostgreSQL¤Î¥µ¥Ý¡¼¥È¤Ï
-    ¡¢Â¾¤ÎDBMS¥µ¥Ý¡¼¥È¤è¤ê¤âÍ¥¤ì¤¿¤â¤Î¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¸æÍ×˾¤ËÅú¤¨¤Æ¡¢»öÊÁËè¤Î
-    ¾¦ÍÑ¥µ¥Ý¡¼¥È¤Ê¤É¤â¤¢¤ê¤Þ¤¹¡ÊFAQ1.6Àá¤ò¤´Í÷²¼¤µ¤¤¡Ë¡£
-²Á³Ê(Price)
-    PostgreSQL¤ÎÍøÍѤϡ¢¾¦ÍѤǤâÈó¾¦ÍѤǤ⡢¤¹¤Ù¤ÆÌµÎÁ¤Ç¤¹¡£¾åµ­¤Ë¼¨¤·¤Æ¤¢¤ëBSD
-    ¥¹¥¿¥¤¥ë¤Î»ÈÍѵöÂú¤Ë³°¤ì¤Ê¤¤¸Â¤ê¡¢PostgreSQL¤Î¥³¡¼¥É¤òÀ©¸Â̵¤·¤Ç¾¦ÉʤËÁȤß
-    ¹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-
-1.15) PostgreSQL¤ò»ñ¶âÌ̤DZç½õ¤¹¤ë¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤è¤¤¤Ç¤¹¤«¡©
-
-PostgreSQL¤Ï¡¢²æ¡¹¤¬»Ï¤á¤¿ 1996ǯ°ÊÍè¡¢ºÇ¹â¥¯¥é¥¹¤Î¾ðÊó´ðÈפò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤ì
-¤Ï¤¹¤Ù¤Æ¡¢Marc Fournie¤µ¤ó¤Î¤ª¤«¤²¤Ç¡¢Èà¤Ï¤³¤Î´ðÈפòÁϤê½Ð¤·¡¢²¿Ç¯¤Ë¤â¤ï¤¿¤Ã¤Æ
-´ÉÍý¤·¤Æ¤­¤Þ¤·¤¿¡£
-
-¼Á¤ÎÎɤ¤´ðÈפϡ¢¥ª¡¼¥×¥ó¥½¡¼¥¹¡¦¥×¥í¥¸¥§¥¯¥È¤Ë¤È¤Ã¤Æ¤Ï¤È¤Æ¤âÂçÀڤʤâ¤Î¤Ç¡¢¥×¥í
-¥¸¥§¥¯¥È¤¬Á°¿Ê¤¹¤ëÀª¤¤¤ò¼º¤Ã¤ÆÊ¬Îö¤¹¤ë¤Î¤ò²óÈò¤·¤Þ¤¹¡£
-
-¤â¤Á¤í¤ó¡¢¤³¤Î´ðÈפϰ¤¤¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£°Ý»ý¤·Â³¤±¤ë¤¿¤á¤Ë¤ÏËè·î¤¢¤ë¤¤¤Ï°ì
-»þŪ¤Ë·ÐÈñ¤¬¤«¤«¤ê¤Þ¤¹¡£¤â¤·¡¢¤¢¤Ê¤¿¤ä¤¢¤Ê¤¿¤Î²ñ¼Ò¤Ë¡¢¤³¤¦¤·¤¿ÅØÎϤΤ¿¤á¤Î»ñ¶â
-¤Î±ç½õ¤ò»Ü¤¹¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ç¤·¤¿¤é¡¢http://store.pgsql.com/shopping/¤«¤é´óÉÕ
-¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£
-
-¤Þ¤¿¡¢Web¥Ú¡¼¥¸¤Ë¤Ï PostgreSQL,Inc ¤È¤¢¤ê¤Þ¤¹¤¬¡¢¤½¤³¤Î "¹×¸¥(contributions)"¤È
-¤¤¤¦¹àÌܤϡ¢ PostgreSQL ¥×¥í¥¸¥§¥¯¥È¤ò»Ù±ç¤¹¤ë¤À¤±¤Î¤¿¤á¤Ç¡¢·è¤·¤ÆÆÃÄê¤Î²ñ¼Ò¤Î
-¤¿¤á¤Î»ñ¶â¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤â¤·¡¢¾®ÀÚ¼ê(check)¤ÎÊý¤¬ÅÔ¹ç¤è¤±¤ì¤ÐÏ¢ÍíÀè¤Î½»½ê¤Ø¤ª
-Á÷¤ê²¼¤µ¤¤¡£
-
-¤µ¤é¤Ë¡¢PostgreSQL¤ò»È¤Ã¤¿À®¸ù»öÎã¤ò¤ª»ý¤Á¤Ç¤¢¤ì¤Ð¡¢¤¼¤Ò¡¢¤ï¤ì¤ï¤ì¤Î»öÎã¾Ò²ð¥ê
-¥¹¥È pgsql-advocacy@postgresql.org ¤Ø¤ªÁ÷¤ê¤¯¤À¤µ¤¤¡£
-
-¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬ 
-
-                         ¥æ¡¼¥¶¡¼¡¦¥¯¥é¥¤¥¢¥ó¥È¤Î¼ÁÌä                          
-                                                                               
-2.1) PostgreSQL ¤Î¤¿¤á¤Î ODBC ¥É¥é¥¤¥Ð¡¼¤Ï¤¢¤ê¤Þ¤¹¤«¡©
-
-PsqlODBC ¤È OpenLink ODBC ¤ÎÆó¤Ä¤Î ODBC ¥É¥é¥¤¥Ð¡¼¤¬ÍøÍѲÄǽ¤Ç¤¹¡£
-
-PsqlODBC ¤Ï¼¡¤Î¾ì½ê¤«¤é¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤Þ¤¹¡£ http://gborg.postgresql.org/
-project/psqlodbc/projdisplay.php
-
-OpenLink ODBC ¤Ï http://www.openlinksw.com/¤«¤éÆþ¼ê¤Ç¤­¤Þ¤¹¡£É¸½àŪ¤Ê ODBC ¥¯¥é
-¥¤¥¢¥ó¥È¡¦¥½¥Õ¥È¥¦¥§¥¢¤Ç»È¤¨¤Þ¤¹¤Î¤Ç¡¢»Ù±ç¤·¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥×¥é¥Ã¥È¥Û¡¼¥à(Win,
-Mac, Unix, VMS)¤«¤é PostgreSQL ¤Î ODBC ¤¬ÍøÍѤǤ­¤Þ¤¹¡£
-
-¤¿¤Ö¤óÈà¤é¤Ï¡¢¾¦ÍÑÉʼÁ¤Î¥µ¥Ý¡¼¥È¤ÎɬÍפʿ͡¹¤ËÇä¤Ã¤Æ¤¤¤ë¤È»×¤¤¤Þ¤¹¤¬¡¢¥Õ¥ê¡¼¥¦
-¥§¥¢ÈǤϤ¤¤Ä¤Ç¤âÆþ¼ê²Äǽ¤Î¤è¤¦¤Ç¤¹¡£¼ÁÌä¤Ï¡¢postgres95@openlink.co.uk ¤ØÁ÷¤Ã¤Æ
-²¼¤µ¤¤¡£
-
-Programmer's Guide ¤Î ODBC ¤Î¾Ï¤â¤´Í÷¤¯¤À¤µ¤¤¡£
-
-2.2) PostgreSQL ¤ò Web ¥Ú¡¼¥¸¤ÈÏ¢·È¤µ¤»¤ë¤Ë¤Ï¤É¤ó¤Ê¥Ä¡¼¥ë¤¬¤¢¤ê¤Þ¤¹¤«¡©
-
-¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò΢¤Ë»ý¤Ä Web ¥Ú¡¼¥¸¤Ë¤Ä¤¤¤Æ¤ÎÁÇÀ²¤é¤·¤¤¾Ò²ð¤¬¡¢
-http://www.webreview.com¤Ë¤¢¤ê¤Þ¤¹¡£
-
-Web ¤Ø¤Î³ÈÄ¥¤Î¤¿¤á¤Ë¤Ï¡¢PHP ¤¬Âî±Û¤·¤¿¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£http://
-www.php.net/¤Ë¤¢¤ê¤Þ¤¹¡£
-
+    1.11) PostgreSQL¤ÏÀ¾Îñ2000ǯÌäÂê(Y2K)¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¤«¡©
+    
+   Âбþ¤·¤Æ¤Þ¤¹¡£À¾Îñ2000ǯ¤è¤ê¸å¤ÎÆüÉդ⡢µª¸µÁ°2000ǯ¤è¤êÁ°¤ÎÆüÉդ⡢´Ê
+   Ã±¤Ë°·¤¨¤Þ¤¹¡£
+   
+    1.12) ³«È¯¥Á¡¼¥à¤Ë¤Ï¤É¤Î¤è¤¦¤Ë»²²Ã¤·¤Þ¤¹¤«¡©
+    
+   ¤Þ¤ººÇ½é(£±ÈÖÌÜ)¤Ë¡¢ºÇ¿·¤Î¥½¡¼¥¹¤ò¥À¥¦¥ó¥í¡¼¥É¤·¡¢²æ¡¹¤Î Web
+   ¥µ¥¤¥È¤«ÇÛÉÛ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ëPostgreSQL Developers¤Îʸ½ñ¤òÆÉ¤ß¤Þ¤¹¡£
+   £²ÈÖÌܤˡ¢pgsql-hackers ¤È pgsql-patches
+   ¥á¡¼¥ê¥ó¥°¡¦¥ê¥¹¥È¤ò¹ØÆÉ(subscribe)¤·¤Þ¤¹¡£
+   £³ÈÖÌܤˡ¢¹âÉʼÁ¤Î¥Ñ¥Ã¥Á¤òpgsql-patches¤Ëȯ¿®¤·¤Þ¤¹¡£
+   
+   ¤ª¤è¤½½½¿Í¤Á¤ç¤Ã¤È¤Î¿Í㤬¡¢PostgreSQL
+   CVS¥¢¡¼¥«¥¤¥Ö¤Ë¥³¥ß¥Ã¥È¤¹¤ë¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
+   ¤½¤Î¤½¤ì¤¾¤ì¤Î¿Í㤬Âô»³¤Î¹âÉʼÁ¤Ê¥Ñ¥Ã¥Á¤òȯ¿®¤¹¤ë¤Î¤Ç¡¢¸½ºß¥³¥ß¥Ã¥¿¡¼
+   ¤È¤Ê¤Ã¤Æ¤¤¤ë¿Íã¤Ï¤½¤ì¤ËÄɤ¤ÉÕ¤¯¤Î¤¬ÂçÊѤǤ¹¤¬¡¢²æ¡¹¤ÏÈà¤é¤¬¥³¥ß¥Ã¥È¤·
+   ¤¿¥Ñ¥Ã¥Á¤Ï¹âÉʼÁ¤Ç¤¢¤ë¤È³Î¿®¤·¤Æ¤¤¤Þ¤¹¡£
+   
+    1.13) ¥Ð¥°¥ì¥Ý¡¼¥È¤Ï¤É¤Î¤è¤¦¤Ëȯ¿®¤·¤Þ¤¹¤«¡©
+    
+   http://www.postgresql.org/support/submitbug ¤ÎPostgreSQL
+   ¥Ð¥°¥Õ¥©¡¼¥à¤òˬ¤ì¤Æ²¼¤µ¤¤¡£
+   ¥Ð¥°¥ì¥Ý¡¼¥È¤òÄó½Ð¤¹¤ë»ÅÊý¤Ë¤Ä¤¤¤Æ¤Î¼ê°ú¤È»Ø¿Ë¤¬¤¢¤ê¤Þ¤¹¡£
+   
+   ¤½¤ì¤ÈƱ»þ¤Ë ftp ¥µ¥¤¥È
+   ftp://ftp.PostgreSQL.org/pub/¤Ç¡¢¤â¤Ã¤È¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Î PostgreSQL
+   ¤¢¤ë¤¤¤Ï¥Ñ¥Ã¥Á¤ò¤µ¤¬¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£
+   
+    1.14) Â¾¤ÎDBMS¤ÈÈæ¤Ù¤ÆPostgreSQL¤Ï¤É¤¦¤Ê¤Î¤Ç¤¹¤«¡©
+    
+   ¥½¥Õ¥È¥¦¥§¥¢¤ò·×¤ëÊýË¡¤Ë¤Ï¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£µ¡Ç½¤ÈÀǽ¤È¿®ÍêÀ­
+   ¤È¥µ¥Ý¡¼¥È¤È²Á³Ê¤Ç¤¹¡£
+   
+   µ¡Ç½(Features)
+          PostgreSQL¤Ï¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¡¢ÉûÌ䤤¹ç¤ï¤»¡¢¥È¥ê¥¬¡¼¡¢¥Ó¥å¡¼¡
+          ¢³°Éô¥¡¼À°¹çÀ­
+          »²¾È¡¢¤ª¤è¤Ó¡¢ÀöÎý¤µ¤ì¤¿¥í¥Ã¥¯µ¡¹½¤Ê¤É¡¢Â絬ÌϾ¦ÍÑDBMS¤¬»ý¤Äµ¡Ç
+          ½¤ò¤Û¤È¤ó¤É»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤µ¤é¤Ë
+          PostgreSQL¤Ï¡¢¥æ¡¼¥¶ÄêµÁ·¿¡¢·Ñ¾µ¡¢¥ë¡¼¥ë¡¢¤½¤ì¤«¤é¡¢¥í¥Ã¥¯¶¥¹ç¤
+          ò½Ì¾®¤¹¤ë¥Þ¥ë¥Á¥Ð¡¼¥¸¥ç¥óƱ»þÀ­
+          À©¸æ¤Ê¤É¡¢¾¦ÍÑDBMS¤â»ý¤Á¹ç¤ï¤»¤Ê¤¤¤è¤¦¤Êµ¡Ç½¤ò¤¤¤¯¤Ä¤«»ý¤Á¹ç¤ï¤
+          »¤Æ¤¤¤Þ¤¹¡£
+          
+   Àǽ(Performance)
+          PostgreSQL¤Ï¾¤Î¾¦ÍѤ¢¤ë¤¤¤Ï¥ª¡¼¥×¥ó¥½¡¼¥¹¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¸ß³Ñ¤
+          ÎÀ­
+          Ç½¤â»ý¤Á¤Þ¤¹¡£¤¢¤ëÌ̤ǤϤè¤êÁᤫ¤Ã¤¿¤ê¡¢¤Û¤«¤ÎÌ̤ǤϤè¤êÃÙ¤«¤Ã¤
+          ¿¤ê¤·¤Þ¤¹¡£MySQL¤Ê¤É¤ÎÆÃ²½·¿¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥·¥¹¥Æ¥à¤Ë¤¯¤é¤Ù¤Æ¡¢P
+          ostgreSQL ¤ÏÊ£¿ô¥æ¡¼¥¶¤äÊ£»¨¤ÊÌ䤤¹ç¤ï¤»¡¢¤Þ¤¿¡¢ read/write
+          Ì䤤¹ç¤ï¤»¤Î¥í¡¼¥É¤¬¤è¤ê¹â®¤Ç¤¹¡£MySQL¤Ï¾¯¤Ê¤¤¥æ¡¼¥¶¤Ç¤Îñ½ã¤Ê
+          SELECT Ì䤤¹ç¤ï¤»¤Ç¤Ï¹â®¤Ç¤¹¡£¤â¤Á¤í¤ó¡¢MySQL¤Ë¤Ï¾åµ­
+          ¤ÎFeatures¤ÎÀá¤Ë¼¨¤¹¤è¤¦¤Êµ¡Ç½¤Ï¤Û¤È¤ó¤É¤¢¤ê¤Þ¤»¤ó¡£²æ¡¹¤Ï¡¢Pos
+          tgreSQL¤Ë½ÀÆðÀ¤Èµ¡Ç½À¤òÁȤ߹þ¤ß¤Ê¤¬¤é¤â¡¢À䤨¤ºÀ­
+          Ç½¤Î²þÁ±¤ò³¤±¤Æ¤¤¤Þ¤¹¡£
+          
+   ¿®ÍêÀ(Reliability)
+          ²æ¡¹¤Ï¡¢DBMS¤Î¿®ÍêÀ­
+          ¤¬¹â¤¯¤Ê¤¯¤Æ¤Ï¤½¤Î²ÁÃͤ¬Ìµ¤¤¤³¤È¤òÍý²ò¤·¤Æ¤Þ¤¹¡£½½Ê¬¥Æ¥¹¥È¤·¤Æ¡
+          ¢°ÂÄꤷ¤¿¥³¡¼¥É¤ò¥Ð¥°¤òºÇ¾®¤Ë¤·¤Æ¤«¤é¥ê¥ê¡¼¥¹¤¹¤ë¤è¤¦¤ËÅØ¤á¤Æ¤Þ
+          ¤¹¡£¤½¤ì¤¾¤ì¤Î¥ê¥ê¡¼¥¹¤Ï¾¯¤Ê¤¯¤È¤â1¥«·î°Ê¾å¤Î¥Ù¡¼¥¿¡¦¥Æ¥¹¥È¤ò¹Ô
+          ¤Ê¤¤¡¢¤³¤ì¤Þ¤Ç¤Î¥ê¥ê¡¼¥¹¤ÎÍúÎò¤¬¡¢À½ÉÊÈǤȤ·¤Æ°ÂÄꤷ¤¿·ø¸Ç¤Ê¥ê¥
+          ê¡¼¥¹¤Ç¤¢¤ë¤³¤È¤òʪ¸ì¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤ÎʬÌî¤Ç¤Ï¡¢Â¾¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹
+          ¤ÈÈæ¤Ù¤Æ¤â½¿§¤¬¤Ê¤¤¤³¤È¤Ë¼«¿®¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
+          
+   ¥µ¥Ý¡¼¥È(Support)
+          ²æ¡¹¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ï¡¢Áø¶ø¤¹¤ë¤¤¤«¤Ê¤ëÌäÂê¤Ë¤Ä¤¤¤Æ¤â²ò·è¤Ø¤
+          Î¼ê½õ¤±¤ò¤·¤Æ¤¯¤ì¤ë¡¢³«È¯¼Ô¤ä¥æ¡¼¥¶¤ÎÂ礭
+          ¤Ê½¸¤Þ¤ê¤Ø¤ÎÀÜÅÀ¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£²æ¡¹¤ÏÌäÂê¤Î²ò·è¤òÊݾڤ¹¤ë¤³¤
+          È¤Ï¤Ç¤­
+          ¤Þ¤»¤ó¤¬¡¢¾¦Íѥǡ¼¥¿¥Ù¡¼¥¹¤Ç¤¢¤Ã¤Æ¤â¾ï¤Ë²ò·è¤µ¤ì¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤
+          Þ¤»¤ó¡£³«È¯¼Ô¤ä¡¢¥æ¡¼¥¶¡¦¥³¥ß¥å¥Ë¥Æ¥£¡¢¥Þ¥Ë¥å¥¢¥ëÎà¡¢¤½¤ì¤Ë¡¢¥½
+          ¡¼¥¹¥³¡¼¥É¤Ê¤É¤ØÄ¾ÀÜ¥¢¥¯¥»¥¹¤Ç¤­
+          ¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢PostgreSQL¤Î¥µ¥Ý¡¼¥È¤Ï¡¢Â¾¤ÎDBMS¥µ¥Ý¡¼¥È¤è¤ê¤âÍ
+          ¥¤ì¤¿¤â¤Î¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¸æÍ×˾¤ËÅú¤¨¤Æ¡¢»öÊÁËè¤Î¾¦ÍÑ¥µ¥Ý¡¼¥È¤Ê
+          ¤É¤â¤¢¤ê¤Þ¤¹¡ÊFAQ1.6Àá¤ò¤´Í÷²¼¤µ¤¤¡Ë¡£
+          
+   ²Á³Ê(Price)
+          PostgreSQL¤ÎÍøÍѤϡ¢¾¦ÍѤǤâÈó¾¦ÍѤǤ⡢¤¹¤Ù¤ÆÌµÎÁ¤Ç¤¹¡£¾åµ­
+          ¤Ë¼¨¤·¤Æ¤¢¤ëBSD¥¹¥¿¥¤¥ë¤Î»ÈÍѵöÂú¤Ë³°¤ì¤Ê¤¤¸Â¤ê¡¢PostgreSQL¤Î¥³
+          ¡¼¥É¤òÀ©¸Â̵¤·¤Ç¾¦ÉʤËÁȤ߹þ¤à¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+          
+    1.15) PostgreSQL¤ò»ñ¶âÌ̤DZç½õ¤¹¤ë¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤è¤¤¤Ç¤¹¤«¡©
+    
+   PostgreSQL¤Ï¡¢²æ¡¹¤¬»Ï¤á¤¿ 1996ǯ°ÊÍè¡¢ºÇ¹â¥¯¥é¥¹¤Î¾ðÊó´ðÈפò»ý¤Ã¤Æ¤¤
+   ¤Þ¤¹¡£¤³¤ì¤Ï¤¹¤Ù¤Æ¡¢Marc
+   Fournie¤µ¤ó¤Î¤ª¤«¤²¤Ç¡¢Èà¤Ï¤³¤Î´ðÈפòÁϤê½Ð¤·¡¢²¿Ç¯¤Ë¤â¤ï¤¿¤Ã¤Æ´ÉÍý¤·¤
+   Æ¤¤Þ¤·¤¿¡£
+   
+   ¼Á¤ÎÎɤ¤´ðÈפϡ¢¥ª¡¼¥×¥ó¥½¡¼¥¹¡¦¥×¥í¥¸¥§¥¯¥È¤Ë¤È¤Ã¤Æ¤Ï¤È¤Æ¤âÂçÀڤʤâ¤Î
+   ¤Ç¡¢¥×¥í¥¸¥§¥¯¥È¤¬Á°¿Ê¤¹¤ëÀª¤¤¤ò¼º¤Ã¤ÆÊ¬Îö¤¹¤ë¤Î¤ò²óÈò¤·¤Þ¤¹¡£
+   
+   ¤â¤Á¤í¤ó¡¢¤³¤Î´ðÈפϰ¤¤¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£°Ý»ý¤·Â³¤±¤ë¤¿¤á¤Ë¤ÏËè·î¤¢
+   ¤ë¤¤¤Ï°ì»þŪ¤Ë·ÐÈñ¤¬¤«¤«¤ê¤Þ¤¹¡£¤â¤·¡¢¤¢¤Ê¤¿¤ä¤¢¤Ê¤¿¤Î²ñ¼Ò¤Ë¡¢¤³¤¦¤·¤¿
+   ÅØÎϤΤ¿¤á¤Î»ñ¶â¤Î±ç½õ¤ò»Ü¤¹¤³¤È¤¬¤Ç¤­
+   ¤ë¤è¤¦¤Ç¤·¤¿¤é¡¢http://store.pgsql.com/shopping/¤«¤é´óÉÕ¤ò¤ª´ê¤¤¤·¤Þ¤¹
+   ¡£
+   
+   ¤Þ¤¿¡¢Web¥Ú¡¼¥¸¤Ë¤Ï PostgreSQL,Inc ¤È¤¢¤ê¤Þ¤¹¤¬¡¢¤½¤³¤Î
+   "¹×¸¥(contributions)"¤È¤¤¤¦¹àÌܤϡ¢ PostgreSQL
+   ¥×¥í¥¸¥§¥¯¥È¤ò»Ù±ç¤¹¤ë¤À¤±¤Î¤¿¤á¤Ç¡¢·è¤·¤ÆÆÃÄê¤Î²ñ¼Ò¤Î¤¿¤á¤Î»ñ¶â¤Ç¤Ï¤¢
+   ¤ê¤Þ¤»¤ó¡£¤â¤·¡¢¾®ÀÚ¼ê(check)¤ÎÊý¤¬ÅÔ¹ç¤è¤±¤ì¤ÐÏ¢ÍíÀè¤Î½»½ê¤Ø¤ªÁ÷¤ê²¼¤
+   µ¤¤¡£
+   
+   ¤µ¤é¤Ë¡¢PostgreSQL¤ò»È¤Ã¤¿À®¸ù»öÎã¤ò¤ª»ý¤Á¤Ç¤¢¤ì¤Ð¡¢¤¼¤Ò¡¢¤ï¤ì¤ï¤ì¤Î
+   »öÎã¾Ò²ð¥ê¥¹¥È pgsql-advocacy@postgresql.org ¤Ø¤ªÁ÷¤ê¤¯¤À¤µ¤¤¡£
+     _________________________________________________________________
+   
+                        ¥æ¡¼¥¶¡¼¡¦¥¯¥é¥¤¥¢¥ó¥È¤Î¼ÁÌä
+                                      
+    2.1) PostgreSQL ¤Î¤¿¤á¤Î ODBC ¥É¥é¥¤¥Ð¡¼¤Ï¤¢¤ê¤Þ¤¹¤«¡©
+    
+   PsqlODBC ¤È OpenLink ODBC ¤ÎÆó¤Ä¤Î ODBC ¥É¥é¥¤¥Ð¡¼¤¬ÍøÍѲÄǽ¤Ç¤¹¡£
+   
+   PsqlODBC ¤Ï¼¡¤Î¾ì½ê¤«¤é¥À¥¦¥ó¥í¡¼¥É¤Ç¤¤Þ¤¹¡£
+   http://gborg.postgresql.org/project/psqlodbc/projdisplay.php
+   
+   OpenLink ODBC ¤Ï http://www.openlinksw.com/¤«¤éÆþ¼ê¤Ç¤¤Þ¤¹¡£É¸½àŪ¤Ê
+   ODBC
+   ¥¯¥é¥¤¥¢¥ó¥È¡¦¥½¥Õ¥È¥¦¥§¥¢¤Ç»È¤¨¤Þ¤¹¤Î¤Ç¡¢»Ù±ç¤·¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥×¥é¥Ã¥È
+   ¥Û¡¼¥à(Win, Mac, Unix, VMS)¤«¤é PostgreSQL ¤Î ODBC ¤¬ÍøÍѤǤ¤Þ¤¹¡£
+   
+   ¤¿¤Ö¤óÈà¤é¤Ï¡¢¾¦ÍÑÉʼÁ¤Î¥µ¥Ý¡¼¥È¤ÎɬÍפʿ͡¹¤ËÇä¤Ã¤Æ¤¤¤ë¤È»×¤¤¤Þ¤¹¤¬¡¢
+   ¥Õ¥ê¡¼¥¦¥§¥¢ÈǤϤ¤¤Ä¤Ç¤âÆþ¼ê²Äǽ¤Î¤è¤¦¤Ç¤¹¡£¼ÁÌä¤Ï¡¢postgres95@openlin
+   k.co.uk ¤ØÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
+   
+   Programmer's Guide ¤Î ODBC ¤Î¾Ï¤â¤´Í÷¤¯¤À¤µ¤¤¡£
+   
+    2.2) PostgreSQL ¤ò Web ¥Ú¡¼¥¸¤ÈÏ¢·È¤µ¤»¤ë¤Ë¤Ï¤É¤ó¤Ê¥Ä¡¼¥ë¤¬¤¢¤ê¤Þ¤¹¤«¡©
+    
+   ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò΢¤Ë»ý¤Ä Web ¥Ú¡¼¥¸¤Ë¤Ä¤¤¤Æ¤ÎÁÇÀ²¤é¤·¤¤¾Ò²ð¤¬¡¢
+   http://www.webreview.com¤Ë¤¢¤ê¤Þ¤¹¡£
+   
+   Web ¤Ø¤Î³ÈÄ¥¤Î¤¿¤á¤Ë¤Ï¡¢PHP
+   ¤¬Âî±Û¤·¤¿¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£http://www.php.net/¤Ë¤¢¤ê¤Þ¤
+   ¹¡£
     [ÌõÃí:
-          PHP¤Ë´Ø¤¹¤ëÆüËܸì¤Î¾ðÊó¤Ï¡¢2000ǯ4·î19Æü¤Ëȯ­¤·¤¿ÆüËÜPHP¥æ¡¼¥¶²ñ¤Î¥µ¥¤¥È
+          PHP¤Ë´Ø¤¹¤ëÆüËܸì¤Î¾ðÊó¤Ï¡¢2000ǯ4·î19Æü¤Ëȯ¤·¤¿ÆüËÜPHP¥æ¡¼¥¶²ñ¤Î¥µ¥¤¥È
                 http://www.php.gr.jp/
         ¤¢¤ë¤¤¤Ï¡¢×¢Àî Îव¤ó¤Î¥µ¥¤¥È
                 http://www.geocities.jp/rui_hirokawa/php/
         ¤Ë¤«¤Ê¤ê¤Þ¤È¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£
     ]
 
-½èÍý¤¬Ê£»¨¤Ê¾ì¹ç¡¢Â¿¤¯¤Î¿Í¤Ï Perl ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤È CGI.pm ¤« mod_perl ¤ò»È¤¤
-¤Þ¤¹¡£
-
+   ½èÍý¤¬Ê£»¨¤Ê¾ì¹ç¡¢Â¿¤¯¤Î¿Í¤Ï Perl ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤È CGI.pm ¤«
+   mod_perl ¤ò»È¤¤¤Þ¤¹¡£
     [ÌõÃí:
         WDB ¤Ï¡¢Web ¤«¤é DataBase ¤Ø¤Î Perl ¤Î Interface ¤Ç¤¹¡£
         wdb-p95 ¤Ø¤Î¥ê¥ó¥¯¤ÏÀÚ¤ì¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£¤ª¤½¤é¤¯¡¢Perl DBI ·Ðͳ¤Ç DBD::Pg ¤ÎÍøÍѤ¬²Äǽ¤È»×¤ï¤ì¤Þ¤¹¡£
@@ -549,286 +594,317 @@ www.php.net/
         ¤È¤¬¤¢¤ê¤Þ¤¹¡£¤½¤Î·Ð°Þ¤Ï¤è¤¯¤ï¤«¤ê¤Þ¤»¤ó¡£
     ]
 
-2.3) PostgreSQL ¤Ë¥°¥é¥Õ¥£¥«¥ë¡¦¥æ¡¼¥¶¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï¤¢¤ê¤Þ¤¹¤«¡©
-
-¤â¤Á¤í¤ó¡¢PostgreSQL ¤Ø¤Î¥°¥é¥Õ¥£¥«¥ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤¬¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£¤½¤ÎÃæ
-¤ËPgAccess http://www.pgaccess.org ¤â´Þ¤Þ¤ì¤Þ¤¹¡£ PgAdmin III (http://
-www.pgadmin.org)¤â¤¢¤ê¤Þ¤¹¡£ RHDB Admin (http://sources.redhat.com/rhdb/ )¡¢
-TORA (http://www.globecom.net/tora/ (ÉôʬŪ¤Ë¾¦ÍÑ)) ¤ª¤è¤Ó¡¢ Rekall ( http://
-www.thekompany.com/products/rekall/, proprietary)¤â¤¢¤ê¤Þ¤¹¡£ PhpPgAdmin (
-http://phppgadmin.sourceforge.net/ ) ¤ÏPostgreSQL¤Ø¤ÎWeb¥Ù¡¼¥¹¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤
-¥¹¤òÄ󶡤·¤Þ¤¹¡£
-
-¤è¤ê¾ÜºÙ¤Ê¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢http://techdocs.postgresql.org/guides/GUITools ¤ò¤´
-Í÷¤¯¤À¤µ¤¤¡£
-
-2.4) ¤É¤Î¤è¤¦¤Ê¸À¸ì¤Ç PostgreSQL ¤ÈÄÌ¿®¤Ç¤­¤¹¤«¡©
-
-¿Íµ¤¤Î¤¢¤ë¤Û¤È¤ó¤É¤Î¸À¸ì¤ÏPostgreSQL¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤¢¤Ê¤¿
-¤¬»È¤¦¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Î³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Î¥ê¥¹¥È¤òÇÁ¤¤¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
-
-°Ê²¼¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ÏPostgreSQL¤ÎÇÛÉÛ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
-
- ¡¦ C (libpq)
- ¡¦ Ëä¤á¹þ¤ßC (ecpg)
- ¡¦ Java (jdbc)
- ¡¦ Python (PyGreSQL)
- ¡¦ TCL (libpgtcl)
-
-¤½¤Î¾¤ÎÍøÍѲÄǽ¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï http://gborg.postgresql.org ¤ÎDrivers/
-Interfaces¤Î¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ê¤Þ¤¹¡£
-
+    2.3) PostgreSQL ¤Ë¥°¥é¥Õ¥£¥«¥ë¡¦¥æ¡¼¥¶¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï¤¢¤ê¤Þ¤¹¤«¡©
+    
+   ¤â¤Á¤í¤ó¡¢PostgreSQL
+   ¤Ø¤Î¥°¥é¥Õ¥£¥«¥ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤¬¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£ ¤½¤ÎÃæ¤ËPgAccess
+   http://www.pgaccess.org ¤â´Þ¤Þ¤ì¤Þ¤¹¡£ PgAdmin III
+   (http://www.pgadmin.org)¤â¤¢¤ê¤Þ¤¹¡£ RHDB Admin
+   (http://sources.redhat.com/rhdb/ )¡¢TORA
+   (http://www.globecom.net/tora/ (ÉôʬŪ¤Ë¾¦ÍÑ)) ¤ª¤è¤Ó¡¢ Rekall (
+   http://www.thekompany.com/products/rekall/, proprietary)¤â¤¢¤ê¤Þ ¤¹¡£
+   PhpPgAdmin ( http://phppgadmin.sourceforge.net/ )
+   ¤ÏPostgreSQL¤Ø¤ÎWeb¥Ù¡¼¥¹¤Î ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤òÄ󶡤·¤Þ¤¹¡£
+   
+   ¤è¤ê¾ÜºÙ¤Ê¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢http://techdocs.postgresql.org/guides/GUIT
+   ools ¤ò¤´Í÷¤¯¤À¤µ¤¤¡£
+   
+    2.4) ¤É¤Î¤è¤¦¤Ê¸À¸ì¤Ç PostgreSQL ¤ÈÄÌ¿®¤Ç¤¤¹¤«¡©
+    
+   ¿Íµ¤¤Î¤¢¤ë¤Û¤È¤ó¤É¤Î¸À¸ì¤ÏPostgreSQL¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹
+   ¡£
+   ¤¢¤Ê¤¿¤¬»È¤¦¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Î³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Î¥ê¥¹¥È¤òÇÁ¤¤¤Æ¤ß¤Æ¤¯¤À
+   ¤µ¤¤¡£
+   
+   °Ê²¼¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ÏPostgreSQL¤ÎÇÛÉÛ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
+     * C (libpq)
+     * Ëä¤á¹þ¤ßC (ecpg)
+     * Java (jdbc)
+     * Python (PyGreSQL)
+     * TCL (libpgtcl)
+       
+   ¤½¤Î¾¤ÎÍøÍѲÄǽ¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï http://gborg.postgresql.org
+   ¤ÎDrivers/Interfaces¤Î¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ê¤Þ¤¹¡£
     [ÌõÃí¡§
         ±Ê°Â¸ç»Ë¤µ¤ó¤Ï Palm ÈǤΠlibpq ¤ò³«È¯¤µ¤ì¤Þ¤·¤¿¡£
                 http://www.snaga.org/libpq/
     ]
-
-¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬ 
-
-                                 ´ÉÍý¾å¤Î¼ÁÌä                                  
-                                                                               
-3.1) ¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð /usr/local/pgsql °Ê³°¤Î¾ì½ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤Þ¤¹¤«¡©
-
-´Êñ¤ÊÊýË¡¤Ï¡¢ configure ¤òÁö¤é¤»¤ë¤È¤­¤Ë --prefix ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤Ç¤¹
-¡£
-
-3.2) postmaster ¤òÁö¤é¤»¤ë¤È¡¢Bad System Call ¤È¤«¥³¥¢¡¦¥À¥ó¥×¤·¤¿¤È¤Î¥á¥Ã¥»¡¼
-¥¸¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
-
-¤µ¤Þ¤¶¤Þ¤ÊÌäÂ꤬¹Í¤¨¤é¤ì¤Þ¤¹¤¬¡¢¤Þ¤ººÇ½é¤Ë¤¢¤Ê¤¿¤Î¥«¡¼¥Í¥ë¤Ë System V IPC ¤Î³È
-Ä¥¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Æ¸«¤Æ¤¯¤À¤µ¤¤¡£PostgreSQL ¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤ë
-¶¦Í­¥á¥â¥ê¡¼¤È¥»¥Þ¥Õ¥©¤Î¥µ¥Ý¡¼¥È¤òɬÍפȤ·¤Þ¤¹¡£
-
-3.3) postmaster ¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢IpcMemoryCreate ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹
-¤«¡©
-
-¥«¡¼¥Í¥ë¤¬¶¦Í­¥á¥â¥ê¡¼¤ò»ý¤ÄÀßÄê¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¤«¡¢¤Ç¤Ê¤±¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤ËÂÐ
-¤·¤Æ»È¤¨¤ë¶¦Í­¥á¥â¥ê¡¼¤ÎÂ礭¤µ¤òÂ礭¤¯ÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¶ñÂÎŪ¤ÊÂ礭¤µ¤Ï
-¡¢»È¤Ã¤Æ¤¤¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Èpostmaster ¤òÁö¤é¤»¤ë¤È¤­¤ËÀßÄꤹ¤ë¥Ð¥Ã¥Õ¥¡¤Î¿ô¤È¥Ð
-¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤Ë°Í¸¤·¤Þ¤¹¡£¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢´ûÄêÃͤΥХåե¡¥µ¥¤¥º
-¤Î¤Þ¤Þ¤Ç¡¢¾¯¤Ê¤¯¤È¤âÌó1MB¤¬É¬ÍפǤ¹¡£ PostgreSQL Administrator's Guide/Server
-Run-time Environment/Managing Kernel Resources ¤Ë¶¦Í­¥á¥â¥ê¡¼¤È¥»¥Þ¥Õ¥©¤Ë¤Ä¤¤¤Æ
-¤Î¾ðÊó¤Î¾ÜºÙ¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¤´Í÷¤¯¤À¤µ¤¤¡£
-
-3.4) postmaster¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢IpcSemaphoreCreate ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç
-¤¹¤«¡©
-
-¤â¤·¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬IpcSemaphoreCreate: semget failed (No space left on
-device)¤Ç¤¢¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤¬½½Ê¬¤Ê¥»¥Þ¥Õ¥©¤ò»È¤¨¤ë¤è¤¦¤Ë¹½À®¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£
-Postgres¤ÏÀøºßŪ¤Ê¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹Ëè¤Ë°ì¤Ä¤Î¥»¥Þ¥Õ¥©¤òɬÍפȤ·¤Þ¤¹¡£¤È¤ê¤¢
-¤¨¤º¤Î²ò·èºö¤Ïpostmaster¤òµ¯Æ°¤¹¤ë¤È¤­¤Ë¡¢¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤Î¿ô¤ò¤è¤ê¾¯¤Ê¤¯
-À©¸Â¤ò¤¹¤ë¤³¤È¤Ç¤¹¡£´ûÄêÃͤÎ32¤è¤ê¾®¤µ¤Ê¿ô¤Î¥Ñ¥é¥á¡¼¥¿¤ò-N¤Ç»È¤¤¤Þ¤¹¡£¤è¤ê¹±µ×
-Ū¤Ê²ò·èºö¤Ï¡¢¥«¡¼¥Í¥ë¤ÎSEMMNS ¤È SEMMNI ¥Ñ¥é¥á¡¼¥¿¤òÁý¤ä¤¹¤³¤È¤Ç¤¹¡£
-
-ÁàºîÉÔǽ¤Î¥»¥Þ¥Õ¥©¤â²áÅ٤ʥǡ¼¥¿¥Ù¡¼¥¹¥¢¥¯¥»¥¹¤Î´Ö¤Ë¥¯¥é¥Ã¥·¥å¤òµ¯¤³¤¹²ÄǽÀ­¤¬
-¤¢¤ê¤Þ¤¹¡£
-
-¤â¤·¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬¤Ê¤Ë¤«Â¾¤Î¤â¤Î¤Ç¤¢¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤Î¹½À®¤Ç¤Þ¤Ã¤¿¤¯¥»¥Þ¥Õ
-¥©¤Î¥µ¥Ý¡¼¥È¤ò¤·¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£ PostgreSQL Administrator's Guide ¤Ë¶¦
-Í­¥á¥â¥ê¡¼¤È¥»¥Þ¥Õ¥©¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Î¾ÜºÙ¤¬¤¢¤ê¤Þ¤¹¡£
-
-3.5) Â¾¤Î¥Û¥¹¥È¤«¤é¤ÎÀܳ¤Ï¤É¤Î¤è¤¦¤ËÀ©¸æ¤·¤Þ¤¹¤«¡©
-
-´ûÄêÃͤǤϡ¢PostgreSQL ¤Ï Unix ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¡¢¤Þ¤¿¤Ï¡¢TCP/IPÀܳ¤Î¥í¡¼¥«¥ë¥Þ
-¥·¥ó¤«¤é¤ÎÀܳ¤·¤«µö¤·¤Þ¤»¤ó¡£postgresql.conf ¤ÎÃæ¤Î listen_addresses ¤ò½¤Àµ¤·
-¡¢¤«¤Ä¡¢$PGDATA/pg_hba.conf ¥Õ¥¡¥¤¥ë¤òŬÀڤ˾¤·¤Æ¡¢¥Û¥¹¥È¼çƳ·¿Ç§¾Ú¤òÍ­¸ú¤Ë¤·
-¤Ê¤¤¤«¤®¤ê¤Ï¡¢Â¾¤Î¥Þ¥·¥ó¤«¤é¤ÏÀܳ¤Ç¤­¤Ê¤¤¤Ç¤·¤ç¤¦¡£
-
-3.6) ¤è¤êÎɤ¤À­Ç½¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥¨¥ó¥¸¥ó¤ò¤É¤Î¤è¤¦¤ËÄ´À°¤¹¤ì¤ÐÎÉ
-¤¤¤Ç¤¹¤«¡©
-
-³Î¤«¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÏÌ䤤¹ç¤ï¤»¤Î®ÅÙ¤òÁý¤·¤Þ¤¹¡£EXPLAIN ANALYZE¥³¥Þ¥ó¥É¤Ç
-PostgreSQL ¤¬¤É¤Î¤è¤¦¤Ë¤¢¤Ê¤¿¤ÎÌ䤤¹ç¤ï¤»¤òËÝÌõ¤·¤Æ¤¤¤ë¤«¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¡¢¤½¤·
-¤Æ¡¢¤É¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬»È¤ï¤ì¤Æ¤¤¤ë¤«¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-
-¤â¤· INSERT ¤ò¿ÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢COPY ¥³¥Þ¥ó¥É¤ò»È¤Ã¤ÆÂ礭¤Ê¥Ð¥Ã¥Á½èÍý¤Ç¤½¤ì¤ò
-¹Ô¤Ê¤¦¤³¤È¤ò¸¡Æ¤¤·¤Æ²¼¤µ¤¤¡£¤³¤ì¤Ï¡¢INSERT ¤òÊÌ¡¹¤Ë¹Ô¤Ê¤¦¤è¤ê¤â¤Ã¤È¹â®¤Ç¤¹¡£¼¡
-¤Ë¡¢BEGIN WORK/COMMIT ¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¡¦¥Ö¥í¥Ã¥¯¤ÎÃæ¤Ë̵¤¤Ê¸¤Ï¡¢¤½¤ì¤é¼«¿È¤¬
-¤½¤ì¤¾¤ì¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤ËÆþ¤Ã¤Æ¤¤¤ë¤È¸«¤Ê¤µ¤ì¤Þ¤¹¡£¤¤¤¯¤Ä¤«¤Îʸ¤ò°ì¤Ä¤Î¥È¥é
-¥ó¥¶¥¯¥·¥ç¥ó¡¦¥Ö¥í¥Ã¥¯¤ÎÃæ¤Ç¹Ô¤Ê¤¦¤³¤È¤ò¹Í¤¨¤Æ²¼¤µ¤¤¡£¤³¤ì¤Ë¤è¤ê¥È¥é¥ó¥¶¥¯¥·¥ç
-¥ó¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤¬¸º¤ê¤Þ¤¹¡£¤Þ¤¿¡¢Â礭¤Ê¥Ç¡¼¥¿¤ÎÊѹ¹¤ò¹Ô¤Ê¤¦ºÝ¤Ï¥¤¥ó¥Ç¥Ã¥¯¥¹
-¤ò°ìÅÙ³°¤·¤Æ¡¢ºî¤êľ¤¹¤³¤È¤ò¹Í¤¨¤Æ¤ß¤Æ²¼¤µ¤¤¡£
-
-Administration Guide/Server Run-time Environment/Run-time Configuration¤Ë¤Ï¡¢¥Á
-¥å¡¼¥Ë¥ó¥°¤Î¥ª¥×¥·¥ç¥ó¤¬¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£fsync¥ª¥×¥·¥ç¥ó¤Çfsync() ¤ò̵¸ú¤Ë¤¹¤ë
-¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤ì¤Ë¤è¤Ã¤Æ¡¢³Æ¥È¥é¥ó¥¶¥¯¥·¥ç¥óËè¤Ë fsync() ¤Ç¥Ç¥£¥¹¥¯¤ò¹¹¿·¤¹
-¤ë¤Î¤ò»ß¤á¤µ¤»¤Þ¤¹¡£
-
-shared_buffers¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥Ð¥Ã¥¯¥¨¥ó¥É¡¦¥×¥í¥»¥¹¤Ë¤è¤ê»È¤ï¤ì¤ë¶¦Í­¥á¥â¥ê
-¡¼¡¦¥Ð¥Ã¥Õ¥¡¤òÂ礭¤¯¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤â¤·¡¢¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ò¹â¤¯¤·¤¹¤®¤ë¤È¡¢
-¥«¡¼¥Í¥ë¤Î¶¦Í­¥á¥â¥ê¡¼¶õ´Ö¤ÎÀ©¸ÂÃͤò±Û¤¨¤Æ¤·¤Þ¤¦¤¿¤á¤Ë postmaster ¤¬Áö¤é¤Ê¤¯¤Ê
-¤ë¤Ç¤·¤ç¤¦¡£´ûÄêÃͤǤϡ¢¤½¤ì¤¾¤ì¤Î¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤Ï 8K ¤Ç¡¢¥Ð¥Ã¥Õ¥¡¿ô¤Ï 1000
-¤Ç¤¹¡£
-
-sort_mem (PostgreSQL 8.0¤«¤é¤Ï: work_mem)¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢¤½¤ì¤¾¤ì¤Î¥Ð¥Ã¥¯¥¨
-¥ó¥É¡¦¥×¥í¥»¥¹¤¬°ì»þŪ¤ÊʤÙÂØ¤¨¤Ë¤è¤Ã¤Æ»È¤¦¥á¥â¥ê¡¼¤ÎºÇÂ祵¥¤¥º¤òÁý¤ä¤¹¤³¤È¤â
-¤Ç¤­¤Þ¤¹¡£´ûÄêÃͤϠ1024 (¤¹¤Ê¤ï¤Á¡¢1MB)¤Ç¤¹¡£
-
-¤Þ¤¿¡¢CLUSTER ¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¡¢¥Æ¡¼¥Ö¥ë¤Î¥Ç¡¼¥¿¤ò¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ë¹ç¤ï¤»¤ë¤¿¤á¤Ë
-¥°¥ë¡¼¥×²½¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¾Ü¤·¤¯¤Ï¡¢¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç CLUSTER ¤ò¸«¤Æ²¼
-¤µ¤¤¡£
-
-3.7) ¤É¤Î¤è¤¦¤Ê¥Ç¥Ð¥°µ¡Ç½¤¬»È¤¨¤Þ¤¹¤«¡©
-
-PostgreSQL ¤Ï¡¢¥Ç¥Ð¥°¤Î¤¿¤á¤Ë°ÕÌ£¤Î¤¢¤ë¡¢¾õÂÖ¾ðÊó¤òÊó¹ð¤¹¤ë¤¤¤¯¤Ä¤«¤Îµ¡Ç½¤ò»ý¤Á
-¤Þ¤¹¡£
-
-¤Þ¤º¡¢--enable-cassert ¥ª¥×¥·¥ç¥ó¤Ç configure ¤òÁö¤é¤»¤Þ¤¹¡£¤½¤¦¤·¤Æ¥³¥ó¥Ñ¥¤¥ë
-¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢Âô»³¤Î assert() ¤¬¡¢¥Ð¥Ã¥¯¥¨¥ó¥É¤Î¿ÊĽ¾õ¶·¤ò´Æ»ë¤·¡¢²¿¤«Í½´ü¤»
-¤Ì¤³¤È¤¬µ¯¤­¤ë¤È¥×¥í¥°¥é¥à¤òÄä»ß¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
-
-postmaster ¤È postgres ¤ÎξÊý¤Ç¤¤¤¯¤Ä¤«¤Î¥Ç¥Ð¥°¡¦¥ª¥×¥·¥ç¥ó¤ÎÍøÍѤ¬¤Ç¤­¤Þ¤¹¡£¤Þ
-¤º¡¢¼¡¤Î¤è¤¦¤Ë postmaster ¤òµ¯Æ°¤¹¤ë¤È¤­¤Ï¤¤¤Ä¤Ç¤â¡¢É¸½à½ÐÎϤȥ¨¥é¡¼½ÐÎϤò¥í¥°
-¡¦¥Õ¥¡¥¤¥ë¤ËÁ÷¤ë¤è¤¦¤Ë¤·¤Æ¤¢¤ë¤³¤È¤ò³Î¤«¤á¤Æ²¼¤µ¤¤¡£
-
+     _________________________________________________________________
+   
+                                ´ÉÍý¾å¤Î¼ÁÌä
+                                      
+    3.1) ¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð /usr/local/pgsql °Ê³°¤Î¾ì½ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤¤Þ¤¹¤«¡©
+    
+   ´Êñ¤ÊÊýË¡¤Ï¡¢ configure ¤òÁö¤é¤»¤ë¤È¤¤Ë --prefix
+   ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤Ç¤¹¡£
+   
+    3.2) postmaster ¤òÁö¤é¤»¤ë¤È¡¢Bad System Call
+    ¤È¤«¥³¥¢¡¦¥À¥ó¥×¤·¤¿¤È¤Î¥á¥Ã¥»¡¼¥¸¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
+    
+   ¤µ¤Þ¤¶¤Þ¤ÊÌäÂ꤬¹Í¤¨¤é¤ì¤Þ¤¹¤¬¡¢¤Þ¤ººÇ½é¤Ë¤¢¤Ê¤¿¤Î¥«¡¼¥Í¥ë¤Ë System V
+   IPC ¤Î³ÈÄ¥¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Æ¸«¤Æ¤¯¤À¤µ¤¤¡£PostgreSQL
+   ¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤ë¶¦Í¥á¥â¥ê¡¼¤È¥»¥Þ¥Õ¥©¤Î¥µ¥Ý¡¼¥È¤òɬÍפȤ·¤Þ¤¹¡£
+   
+    3.3) postmaster ¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢IpcMemoryCreate
+    ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
+    
+   ¥«¡¼¥Í¥ë¤¬¶¦Í­
+   ¥á¥â¥ê¡¼¤ò»ý¤ÄÀßÄê¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¤«¡¢¤Ç¤Ê¤±¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤ËÂФ·¤Æ»È
+   ¤¨¤ë¶¦Í¥á¥â¥ê¡¼¤ÎÂ礤µ¤òÂ礤¯ÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¶ñÂÎŪ¤ÊÂ礭
+   ¤µ¤Ï¡¢»È¤Ã¤Æ¤¤¤ë¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Èpostmaster ¤òÁö¤é¤»¤ë¤È¤­
+   ¤ËÀßÄꤹ¤ë¥Ð¥Ã¥Õ¥¡¤Î¿ô¤È¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤Ë°Í¸¤·¤Þ¤¹¡£¤Û¤È¤ó¤É¤Î¥·
+   ¥¹¥Æ¥à¤Ç¤Ï¡¢´ûÄêÃͤΥХåե¡¥µ¥¤¥º¤Î¤Þ¤Þ¤Ç¡¢¾¯¤Ê¤¯¤È¤âÌó1MB¤¬É¬ÍפǤ¹¡
+   £ PostgreSQL Administrator's Guide/Server Run-time
+   Environment/Managing Kernel Resources ¤Ë¶¦Í­
+   ¥á¥â¥ê¡¼¤È¥»¥Þ¥Õ¥©¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Î¾ÜºÙ¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¤´Í÷¤¯¤À¤µ¤¤¡£
+   
+    3.4) postmaster¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢IpcSemaphoreCreate
+    ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
+    
+   ¤â¤·¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬IpcSemaphoreCreate: semget failed (No space left
+   on
+   device)¤Ç¤¢¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤¬½½Ê¬¤Ê¥»¥Þ¥Õ¥©¤ò»È¤¨¤ë¤è¤¦¤Ë¹½À®¤µ¤ì¤Æ¤¤¤Þ¤
+   »¤ó¡£Postgres¤ÏÀøºßŪ¤Ê¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹Ëè¤Ë°ì¤Ä¤Î¥»¥Þ¥Õ¥©¤òɬÍפȤ
+   ·¤Þ¤¹¡£¤È¤ê¤¢¤¨¤º¤Î²ò·èºö¤Ïpostmaster¤òµ¯Æ°¤¹¤ë¤È¤­
+   ¤Ë¡¢¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤Î¿ô¤ò¤è¤ê¾¯¤Ê¤¯À©¸Â¤ò¤¹¤ë¤³¤È¤Ç¤¹¡£´ûÄêÃͤÎ32
+   ¤è¤ê¾®¤µ¤Ê¿ô¤Î¥Ñ¥é¥á¡¼¥¿¤ò-N¤Ç»È¤¤¤Þ¤¹¡£¤è¤ê¹±µ×Ū¤Ê²ò·èºö¤Ï¡¢¥«¡¼¥Í¥ë
+   ¤ÎSEMMNS ¤È SEMMNI ¥Ñ¥é¥á¡¼¥¿¤òÁý¤ä¤¹¤³¤È¤Ç¤¹¡£
+   
+   ÁàºîÉÔǽ¤Î¥»¥Þ¥Õ¥©¤â²áÅ٤ʥǡ¼¥¿¥Ù¡¼¥¹¥¢¥¯¥»¥¹¤Î´Ö¤Ë¥¯¥é¥Ã¥·¥å¤ò
+   µ¯¤³¤¹²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£
+   
+   ¤â¤·¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬¤Ê¤Ë¤«Â¾¤Î¤â¤Î¤Ç¤¢¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤Î¹½À®¤Ç¤Þ¤Ã¤¿
+   ¤¯¥»¥Þ¥Õ¥©¤Î¥µ¥Ý¡¼¥È¤ò¤·¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£ PostgreSQL
+   Administrator's Guide ¤Ë¶¦Í­
+   ¥á¥â¥ê¡¼¤È¥»¥Þ¥Õ¥©¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Î¾ÜºÙ¤¬¤¢¤ê¤Þ¤¹¡£
+   
+    3.5) Â¾¤Î¥Û¥¹¥È¤«¤é¤ÎÀܳ¤Ï¤É¤Î¤è¤¦¤ËÀ©¸æ¤·¤Þ¤¹¤«¡©
+    
+   ´ûÄêÃͤǤϡ¢PostgreSQL ¤Ï Unix
+   ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¡¢¤Þ¤¿¤Ï¡¢TCP/IPÀܳ¤Î¥í¡¼¥«¥ë¥Þ¥·¥ó¤«¤é¤ÎÀܳ¤·¤«µö¤·
+   ¤Þ¤»¤ó¡£postgresql.conf ¤ÎÃæ¤Î listen_addresses
+   ¤ò½¤Àµ¤·¡¢¤«¤Ä¡¢$PGDATA/pg_hba.conf
+   ¥Õ¥¡¥¤¥ë¤òŬÀڤ˾¤·¤Æ¡¢¥Û¥¹¥È¼çƳ·¿Ç§¾Ú¤òÍ­
+   ¸ú¤Ë¤·¤Ê¤¤¤«¤®¤ê¤Ï¡¢Â¾¤Î¥Þ¥·¥ó¤«¤é¤ÏÀܳ¤Ç¤¤Ê¤¤¤Ç¤·¤ç¤¦¡£
+   
+    3.6) ¤è¤êÎɤ¤À­
+    Ç½¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥¨¥ó¥¸¥ó¤ò¤É¤Î¤è¤¦¤ËÄ´À°¤¹¤ì¤ÐÎɤ¤¤Ç¤¹¤«¡©
+    
+   ³Î¤«¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÏÌ䤤¹ç¤ï¤»¤Î®ÅÙ¤òÁý¤·¤Þ¤¹¡£EXPLAIN
+   ANALYZE¥³¥Þ¥ó¥É¤Ç PostgreSQL
+   ¤¬¤É¤Î¤è¤¦¤Ë¤¢¤Ê¤¿¤ÎÌ䤤¹ç¤ï¤»¤òËÝÌõ¤·¤Æ¤¤¤ë¤«¤ò¸«¤ë¤³¤È¤¬¤Ç¤­
+   ¡¢¤½¤·¤Æ¡¢¤É¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬»È¤ï¤ì¤Æ¤¤¤ë¤«¤ò¸«¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+   
+   ¤â¤· INSERT ¤ò¿ÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢COPY ¥³¥Þ¥ó¥É¤ò»È¤Ã¤ÆÂ礭
+   ¤Ê¥Ð¥Ã¥Á½èÍý¤Ç¤½¤ì¤ò¹Ô¤Ê¤¦¤³¤È¤ò¸¡Æ¤¤·¤Æ²¼¤µ¤¤¡£¤³¤ì¤Ï¡¢INSERT
+   ¤òÊÌ¡¹¤Ë¹Ô¤Ê¤¦¤è¤ê¤â¤Ã¤È¹â®¤Ç¤¹¡£¼¡¤Ë¡¢BEGIN WORK/COMMIT
+   ¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¡¦¥Ö¥í¥Ã¥¯¤ÎÃæ¤Ë̵¤¤Ê¸¤Ï¡¢¤½¤ì¤é¼«¿È¤¬¤½¤ì¤¾¤ì¤Î¥È¥é
+   ¥ó¥¶¥¯¥·¥ç¥ó¤ËÆþ¤Ã¤Æ¤¤¤ë¤È¸«¤Ê¤µ¤ì¤Þ¤¹¡£¤¤¤¯¤Ä¤«¤Îʸ¤ò°ì¤Ä¤Î¥È¥é¥ó¥¶¥¯
+   ¥·¥ç¥ó¡¦¥Ö¥í¥Ã¥¯¤ÎÃæ¤Ç¹Ô¤Ê¤¦¤³¤È¤ò¹Í¤¨¤Æ²¼¤µ¤¤¡£¤³¤ì¤Ë¤è¤ê¥È¥é¥ó¥¶¥¯¥·
+   ¥ç¥ó¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤¬¸º¤ê¤Þ¤¹¡£¤Þ¤¿¡¢Â礭
+   ¤Ê¥Ç¡¼¥¿¤ÎÊѹ¹¤ò¹Ô¤Ê¤¦ºÝ¤Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò°ìÅÙ³°¤·¤Æ¡¢ºî¤êľ¤¹¤³¤È¤ò¹Í¤¨
+   ¤Æ¤ß¤Æ²¼¤µ¤¤¡£
+   
+   Administration Guide/Server Run-time Environment/Run-time
+   Configuration¤Ë¤Ï¡¢
+   ¥Á¥å¡¼¥Ë¥ó¥°¤Î¥ª¥×¥·¥ç¥ó¤¬¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£fsync¥ª¥×¥·¥ç¥ó¤Çfsync()
+   ¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤³¤ì¤Ë¤è¤Ã¤Æ¡¢³Æ¥È¥é¥ó¥¶¥¯¥·¥ç¥óËè¤Ë
+   fsync() ¤Ç¥Ç¥£¥¹¥¯¤ò¹¹¿·¤¹¤ë¤Î¤ò»ß¤á¤µ¤»¤Þ¤¹¡£
+   
+   shared_buffers¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥Ð¥Ã¥¯¥¨¥ó¥É¡¦¥×¥í¥»¥¹¤Ë¤è¤ê»È¤ï¤ì¤ë¶¦
+   Í¥á¥â¥ê¡¼¡¦¥Ð¥Ã¥Õ¥¡¤òÂ礤¯¤¹¤ë¤³¤È¤â¤Ç¤­
+   ¤Þ¤¹¡£¤â¤·¡¢¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ò¹â¤¯¤·¤¹¤®¤ë¤È¡¢¥«¡¼¥Í¥ë¤Î¶¦Í­
+   ¥á¥â¥ê¡¼¶õ´Ö¤ÎÀ©¸ÂÃͤò±Û¤¨¤Æ¤·¤Þ¤¦¤¿¤á¤Ë postmaster
+   ¤¬Áö¤é¤Ê¤¯¤Ê¤ë¤Ç¤·¤ç¤¦¡£´ûÄêÃͤǤϡ¢¤½¤ì¤¾¤ì¤Î¥Ð¥Ã¥Õ¥¡¤ÎÂ礤µ¤Ï 8K
+   ¤Ç¡¢¥Ð¥Ã¥Õ¥¡¿ô¤Ï 1000 ¤Ç¤¹¡£
+   
+   sort_mem (PostgreSQL 8.0¤«¤é¤Ï:
+   work_mem)¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢¤½¤ì¤¾¤ì¤Î¥Ð¥Ã¥¯¥¨¥ó¥É¡¦¥×¥í¥»¥¹¤¬°ì»þŪ¤
+   ÊʤÙÂØ¤¨¤Ë¤è¤Ã¤Æ»È¤¦¥á¥â¥ê¡¼¤ÎºÇÂ祵¥¤¥º¤òÁý¤ä¤¹¤³¤È¤â¤Ç¤¤Þ¤¹¡£
+   ´ûÄêÃͤϠ1024 (¤¹¤Ê¤ï¤Á¡¢1MB)¤Ç¤¹¡£
+   
+   ¤Þ¤¿¡¢CLUSTER
+   ¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¡¢¥Æ¡¼¥Ö¥ë¤Î¥Ç¡¼¥¿¤ò¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ë¹ç¤ï¤»¤ë¤¿¤á¤Ë¥°¥ë¡¼
+   ¥×²½¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£¾Ü¤·¤¯¤Ï¡¢¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç CLUSTER
+   ¤ò¸«¤Æ²¼¤µ¤¤¡£
+   
+    3.7) ¤É¤Î¤è¤¦¤Ê¥Ç¥Ð¥°µ¡Ç½¤¬»È¤¨¤Þ¤¹¤«¡©
+    
+   PostgreSQL
+   ¤Ï¡¢¥Ç¥Ð¥°¤Î¤¿¤á¤Ë°ÕÌ£¤Î¤¢¤ë¡¢¾õÂÖ¾ðÊó¤òÊó¹ð¤¹¤ë¤¤¤¯¤Ä¤«¤Îµ¡Ç½¤ò»ý¤Á¤Þ
+   ¤¹¡£
+   
+   ¤Þ¤º¡¢--enable-cassert ¥ª¥×¥·¥ç¥ó¤Ç configure
+   ¤òÁö¤é¤»¤Þ¤¹¡£¤½¤¦¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢Âô»³¤Î assert()
+   ¤¬¡¢¥Ð¥Ã¥¯¥¨¥ó¥É¤Î¿ÊĽ¾õ¶·¤ò´Æ»ë¤·¡¢²¿¤«Í½´ü¤»¤Ì¤³¤È¤¬µ¯¤­
+   ¤ë¤È¥×¥í¥°¥é¥à¤òÄä»ß¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
+   
+   postmaster ¤È postgres
+   ¤ÎξÊý¤Ç¤¤¤¯¤Ä¤«¤Î¥Ç¥Ð¥°¡¦¥ª¥×¥·¥ç¥ó¤ÎÍøÍѤ¬¤Ç¤¤Þ¤¹¡£¤Þ¤º¡¢¼¡¤Î¤è¤¦¤Ë
+   postmaster ¤òµ¯Æ°¤¹¤ë¤È¤­
+   ¤Ï¤¤¤Ä¤Ç¤â¡¢É¸½à½ÐÎϤȥ¨¥é¡¼½ÐÎϤò¥í¥°¡¦¥Õ¥¡¥¤¥ë¤ËÁ÷¤ë¤è¤¦¤Ë¤·¤Æ¤¢¤ë¤³
+   ¤È¤ò³Î¤«¤á¤Æ²¼¤µ¤¤¡£
         cd /usr/local/pgsql
         ./bin/postmaster >server.log 2>&1 &
 
-¤³¤ì¤Ë¤è¤ê PostgreSQL ¤ÎºÇ¾åÉô¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë server.log ¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤Þ¤¹
-¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥µ¡¼¥Ð¡¼¤¬Áø¶ø¤·¤¿ÌäÂê¤ä¥¨¥é¡¼¤Ë¤Ä¤¤¤ÆÍ­ÍѤʾðÊó¤ò´Þ¤ß¤Þ¤¹¡£
-Postmaster ¤Ï¹¹¤Ë¾ÜºÙ¤Ê¾ðÊó¤òÊó¹ð¤¹¤ë¤¿¤á¤Î -d ¥ª¥×¥·¥ç¥ó¤ò»ý¤Á¤Þ¤¹¡£¤½¤Î -d ¥ª
-¥×¥·¥ç¥ó¤Ï¡¢¥Ç¥Ð¥°¡¦¥ì¥Ù¥ë¤ò»ØÄꤷ¤Þ¤¹¡£¹â¤¤¥Ç¥Ð¥°¡¦¥ì¥Ù¥ë¤Ç¤Ï¡¢Â礭¤Ê¥í¥°¥Õ¥¡
-¥¤¥ë¤òÀ¸À®¤¹¤ë¤³¤È¤ËÃí°Õ¤·¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£
-
-¤â¤·¡¢postmaster¤¬Áö¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢postgres¥Ð¥Ã¥¯¥¨¥ó¥É¤ò¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤éÁö
-¤é¤»¤ë¤³¤È¤¬¤Ç¤­¡¢Ä¾ÀÜSQLʸ¤ò¥¿¥¤¥×¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤Î¤ä¤ê¤«¤¿¤Ï¡¢¥Ç¥Ð¥°ÌÜ
-Ū¤Î¤È¤­¤À¤±¤ª¾©¤á¤·¤Þ¤¹¡£¥»¥ß¥³¥í¥ó¤Ç¤Ï¤Ê¤¯¡¢²þ¹Ô¤¬Ì䤤¹ç¤ï¤»¤Î½ª¤ê¤Ë¤Ê¤ë¤³¤È
-¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¤â¤·¡¢¥Ç¥Ð¥°¥·¥ó¥Ü¥ë¤òÆþ¤ì¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¤¤ì¤Ð¡¢¥Ç¥Ð¥Ã¥¬
-¤ò»È¤Ã¤Æ²¿¤¬µ¯¤­¤Æ¤¤¤ë¤«¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£postmaster ¤«¤é¥Ð¥Ã¥¯¥¨¥ó¥É¤ò³«»Ï
-¤·¤¿¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢ÆÈΩ¤Ê´Ä¶­¤ÇÁö¤Ã¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¯¥í¥Ã¥¯¡¿¥Ð¥Ã¥¯¥¨¥ó¥É¤È¤Î
-ÂÐÏäÎÌäÂ꤬½ÅÊ£¤¹¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£
-
-¤â¤·¡¢postmaster¤¬Áö¤Ã¤Æ¤¤¤ì¤Ð¡¢¤¢¤ë¥¦¥£¥ó¥É¥¦¤Çpsql¤ò³«»Ï¤¹¤ë¤È¡¢
-
-SELECT pg_backend_pid()
-
-¤ò»È¤Ã¤Æ¡¢psql ¤Ç»È¤ï¤ì¤ë postgres ¥×¥í¥»¥¹¤ÎPID¤¬¸«¤Ä¤«¤ê¤Þ¤¹¡£¥Ç¥Ð¥Ã¥¬¤ò»È¤Ã
-¤Æpostgres¤ÎPID¤Ë¥¢¥¿¥Ã¥Á(attach)¤·¤Þ¤¹¡£¥Ç¥Ð¥Ã¥¬¤ÎÃæ¤«¤é¥Ö¥ì¡¼¥¯¡¦¥Ý¥¤¥ó¥È¤ò¥»
-¥Ã¥È¤·¡¢psql ¤«¤éÌ䤤¹ç¤ï¤»¤òȯ¹Ô¤·¤Þ¤¹¡£¥Ç¥Ð¥°¤Î¤¿¤á¤Ëpostgres¤ò»Ïư¤¹¤ë¾ì¹ç¤Ï
-¡¢PGOPTIONS="-W n" ¤òÀßÄê¤Ç¤­¡¢¤½¤ì¤«¤é¡¢psql ¤ò³«»Ï¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢n Éó«
-»Ï¤òÃ٤餻¤ë¤Ï¤º¤Ê¤Î¤Ç¡¢¥Ç¥Ð¥Ã¥¬¤Ç¥×¥í¥»¥¹¤Ë¥¢¥¿¥Ã¥Á¤·¤Æ¡¢¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀß
-Äꤷ¡¢³«»Ï¤«¤é½ç¤òÄɤäƸ«¤Æ¤æ¤¯¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-
-¤¤¤¯¤Ä¤«¤Î
-
-log_*
-
-¥µ¡¼¥Ð¹½À®ÊÑ¿ô¤Ï¡¢¥Ç¥Ð¥Ã¥°¤ÈÀ­Ç½Â¬Äê¤Ë¤È¤Æ¤âÌò¤ËΩ¤Ä¥×¥í¥»¥¹¤ÎÅý·×¤Î°õºþ¤ò²Äǽ
-¤Ë¤·¤Þ¤¹¡£
-
-²¿¤È¤¤¤¦´Ø¿ô¤¬¤É¤Î¤¯¤é¤¤¼Â¹Ô»þ´Ö¤ò¿©¤Ã¤Æ¤¤¤ë¤«¤ò¸«¤ë¤¿¤á¤Ë¡¢¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¡Ê
-¥×¥í¥Õ¥£¡¼¥ëÉÕ¤­¡Ë¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¤½¤Î¥Ð¥Ã¥¯¥¨¥ó¥É¤Î¥×¥í¥Õ¥£¡¼
-¥ë¡¦¥Õ¥¡¥¤¥ë¤Ï pgsql/data/base/dbname ¥Ç¥£¥ì¥¯¥È¥ê¤Ë³ÊǼ¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£¥¯¥é¥¤
-¥¢¥ó¥È¤Î¥×¥í¥Õ¥£¡¼¥ë¤Ï¥¯¥é¥¤¥¢¥ó¥È¤Î¸½¹Ô¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤ë¤Ç¤·¤ç¤¦¡£Linux
-¤Ç¤Þ¤È¤â¤Ê¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤ò¹Ô¤¦¤Ë¤Ï -DLINUX_PROFILE ¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ê
-¤Þ¤¹¡£
-
-3.8) Àܳ¤·¤è¤¦¤È¤¹¤ë¤È¤­¤Ë 'Sorry, too many clients' ¤¬½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
-
-postmaster¤¬Æ±»þ»Ïư¤Ç¤­¤ë¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤ËÂФ¹¤ëÀ©¸Â¿ô¤òÁý¤ä¤¹É¬Íפ¬¤¢¤ê
-¤Þ¤¹¡£
-
-´ûÄê¤ÎºÇÂç¥×¥í¥»¥¹¤Ï32¥×¥í¥»¥¹¤Ç¤¹¡£-N¤ËŬÀÚ¤ÊÃͤò°ú¿ô¤Ë¤·¤Æpostmaster¤òºÆµ¯Æ°
-¤¹¤ë¤«¡¢PostgreSQL.conf ¤ò½¤Àµ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤½¤ÎÃͤòÁý¤ä¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-
-¤â¤·¡¢-N ¤ò 32¤è¤ê¤âÂ礭¤¯¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢-B¤â´ûÄê¤Î64¤è¤êÂ礭¤¤ÃͤËÁý²Ã¤µ¤»¤Ê
-¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤·¡¢-B ¤Ï¾¯¤Ê¤¯¤È¤â -N ¤Î2ÇܤϤʤ¯¤Æ¤Ï¤Ê¤é¤º¡¢¤ª¤½¤é¤¯ºÇ¹âÀ­Ç½¤ò
-˾¤à¤Ê¤é¤Ð¤½¤ì¤è¤êÂ礭¤¤Ãͤ¬É¬ÍפʤϤº¤Ç¤¹¡£¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤ò¤¿¤¯¤µ¤ó¤Ë¤¹
-¤ë¤È¡¢¤¤¤í¤¤¤í¤ÊUnix¥«¡¼¥Í¥ë¹½À®¥Ñ¥é¥á¡¼¥¿¤âÁý¤ä¤¹¤³¤È¤¬É¬Íפˤʤ뤫¤â¤·¤ì¤Þ¤»
-¤ó¡£¶¦Í­¥á¥â¥ê¡¼¡¦¥Ö¥í¥Ã¥¯¤ÎºÇÂçÃÍ(SHMMAX)¡¢¥»¥Þ¥Õ¥©¤ÎºÇÂç¿ô(SEMMNS¤ÈSEMMNI)¡¢
-¥×¥í¥»¥¹¤ÎºÇÂç¿ô(NPROC)¡¢¥æ¡¼¥¶Ëè¤ÎºÇÂç¥×¥í¥»¥¹¿ô(MAXUPRC)¡¢³«¤¯¥Õ¥¡¥¤¥ë¤ÎºÇÂç
-¿ô(NFILE¤ÈNINODE) ¤â³Îǧ»ö¹à¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£ PostgreSQL¤Ëµö¤µ¤ì¤ë¥Ð¥Ã¥¯¥¨¥ó¥É¤Î¥×
-¥í¥»¥¹¿ô¤¬À©¸Â¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢¥·¥¹¥Æ¥à¤Î¥ê¥½¡¼¥¹¤ò»È¤¤²Ì¤·¤Æ¤·¤Þ¤¦¤³¤È¤òÈò¤±¤ë
-¤¿¤á¤Ç¤¹¡£
-
-3.9) pgsql_tmp ¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤Ë¤Ï²¿¤¬¤¢¤ê¤Þ¤¹¤«¡©
-
-Ì䤤¹ç¤ï¤»¼Â¹Ô¥â¥¸¥å¡¼¥ë¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¿°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤¬¡¢¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê
-¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£Î㤨¤Ð¡¢¤â¤· ORDER BY ¶ç¤òËþ¤¿¤¹¤¿¤á¤Ë¥Ð¥Ã¥¯¥¨¥ó¥É¤Î -S ¥Ñ¥é¥á¡¼
-¥¿¤Çµö²Ä¤·¤¿Ãͤè¤ê¤âÂ礭¤Ê¥¹¥Ú¡¼¥¹¤¬¥½¡¼¥È¤ÎºÝ¤ËɬÍפÀ¤È¤¹¤ë¤È¡¢°î¤ì¤¿¥Ç¡¼¥¿¤ò
-ÊÝ»ý¤¹¤ë¤¿¤á¤Ë°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤¬¤¤¤¯¤Ä¤«¤³¤³¤ËÀ¸À®¤µ¤ì¤Þ¤¹¡£
-
-°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤Ï¼«Æ°Åª¤Ë¾Ã¤·µî¤é¤ì¤ë¤Ï¤º¤Ç¤¹¤¬¡¢¤â¤·¡¢¥½¡¼¥È¤ÎÅÓÃæ¤Ç¥Ð¥Ã¥¯¥¨
-¥ó¥É¤¬¥¯¥é¥Ã¥·¥å¤·¤Æ¤·¤Þ¤¦¤È¤½¤¦¤Ï¤Ê¤ê¤Þ¤»¤ó¡£postmaster¤ÎÄä»ß¤È¥ê¥¹¥¿¡¼¥È¤Ç¤³
-¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¾Ã¤·¤µ¤é¤ì¤Þ¤¹¡£
-
+   ¤³¤ì¤Ë¤è¤ê PostgreSQL ¤ÎºÇ¾åÉô¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë server.log
+   ¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤Þ¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥µ¡¼¥Ð¡¼¤¬Áø¶ø¤·¤¿ÌäÂê¤ä¥¨¥é¡¼¤Ë¤Ä
+   ¤¤¤ÆÍÍѤʾðÊó¤ò´Þ¤ß¤Þ¤¹¡£Postmaster ¤Ï¹¹¤Ë¾ÜºÙ¤Ê¾ðÊó¤òÊó¹ð¤¹¤ë¤¿¤á¤Î
+   -d ¥ª¥×¥·¥ç¥ó¤ò»ý¤Á¤Þ¤¹¡£¤½¤Î -d
+   ¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Ç¥Ð¥°¡¦¥ì¥Ù¥ë¤ò»ØÄꤷ¤Þ¤¹¡£¹â¤¤¥Ç¥Ð¥°¡¦¥ì¥Ù¥ë¤Ç¤Ï¡¢Â礭
+   ¤Ê¥í¥°¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¤³¤È¤ËÃí°Õ¤·¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£
+   
+   ¤â¤·¡¢postmaster¤¬Áö¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢postgres¥Ð¥Ã¥¯¥¨¥ó¥É¤ò¥³¥Þ¥ó¥É¥é¥¤
+   ¥ó¤«¤éÁö¤é¤»¤ë¤³¤È¤¬¤Ç¤¡¢Ä¾ÀÜSQLʸ¤ò¥¿¥¤¥×¤¹¤ë¤³¤È¤¬¤Ç¤­
+   ¤Þ¤¹¡£¤³¤Î¤ä¤ê¤«¤¿¤Ï¡¢¥Ç¥Ð¥°ÌÜŪ¤Î¤È¤­
+   ¤À¤±¤ª¾©¤á¤·¤Þ¤¹¡£¥»¥ß¥³¥í¥ó¤Ç¤Ï¤Ê¤¯¡¢²þ¹Ô¤¬Ì䤤¹ç¤ï¤»¤Î½ª¤ê¤Ë¤Ê¤ë¤³¤È
+   ¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¤â¤·¡¢¥Ç¥Ð¥°¥·¥ó¥Ü¥ë¤òÆþ¤ì¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¤¤ì¤Ð¡¢
+   ¥Ç¥Ð¥Ã¥¬¤ò»È¤Ã¤Æ²¿¤¬µ¯¤¤Æ¤¤¤ë¤«¤ò¸«¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£postmaster
+   ¤«¤é¥Ð¥Ã¥¯¥¨¥ó¥É¤ò³«»Ï¤·¤¿¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢ÆÈΩ¤Ê´Ä¶­
+   ¤ÇÁö¤Ã¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¯¥í¥Ã¥¯¡¿¥Ð¥Ã¥¯¥¨¥ó¥É¤È¤ÎÂÐÏäÎÌäÂ꤬½ÅÊ£¤¹¤ë¤³¤È
+   ¤Ï¤¢¤ê¤Þ¤»¤ó¡£
+   
+   ¤â¤·¡¢postmaster¤¬Áö¤Ã¤Æ¤¤¤ì¤Ð¡¢¤¢¤ë¥¦¥£¥ó¥É¥¦¤Çpsql¤ò³«»Ï¤¹¤ë¤È¡¢SELE
+   CT pg_backend_pid()¤ò»È¤Ã¤Æ¡¢psql ¤Ç»È¤ï¤ì¤ë postgres
+   ¥×¥í¥»¥¹¤ÎPID¤¬¸«¤Ä¤«¤ê¤Þ¤¹¡£
+   ¥Ç¥Ð¥Ã¥¬¤ò»È¤Ã¤Æpostgres¤ÎPID¤Ë¥¢¥¿¥Ã¥Á(attach)¤·¤Þ¤¹¡£¥Ç¥Ð¥Ã¥¬¤ÎÃæ¤«¤
+   é¥Ö¥ì¡¼¥¯¡¦¥Ý¥¤¥ó¥È¤ò¥»¥Ã¥È¤·¡¢psql
+   ¤«¤éÌ䤤¹ç¤ï¤»¤òȯ¹Ô¤·¤Þ¤¹¡£¥Ç¥Ð¥°¤Î¤¿¤á¤Ëpostgres¤ò»Ïư¤¹¤ë¾ì¹ç¤Ï¡¢PG
+   OPTIONS="-W n" ¤òÀßÄê¤Ç¤¡¢¤½¤ì¤«¤é¡¢psql ¤ò³«»Ï¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢n
+   Éó«»Ï¤òÃ٤餻¤ë¤Ï¤º¤Ê¤Î¤Ç¡¢¥Ç¥Ð¥Ã¥¬¤Ç¥×¥í¥»¥¹¤Ë¥¢¥¿¥Ã¥Á¤·¤Æ¡¢¥Ö¥ì¡¼¥¯
+   ¥Ý¥¤¥ó¥È¤òÀßÄꤷ¡¢³«»Ï¤«¤é½ç¤òÄɤäƸ«¤Æ¤æ¤¯¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+   
+   ¤¤¤¯¤Ä¤«¤Îlog_*¥µ¡¼¥Ð¹½À®ÊÑ¿ô¤Ï¡¢¥Ç¥Ð¥Ã¥°¤ÈÀ­
+   Ç½Â¬Äê¤Ë¤È¤Æ¤âÌò¤ËΩ¤Ä¥×¥í¥»¥¹¤ÎÅý·×¤Î°õºþ¤ò²Äǽ¤Ë¤·¤Þ¤¹¡£
+   
+   ²¿¤È¤¤¤¦´Ø¿ô¤¬¤É¤Î¤¯¤é¤¤¼Â¹Ô»þ´Ö¤ò¿©¤Ã¤Æ¤¤¤ë¤«¤ò¸«¤ë¤¿¤á¤Ë¡¢¥×¥í¥Õ¥¡¥¤
+   ¥ê¥ó¥°¡Ê¥×¥í¥Õ¥£¡¼¥ëÉÕ¤­
+   ¡Ë¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¤½¤Î¥Ð¥Ã¥¯¥¨¥ó¥É¤Î¥×¥í¥Õ¥£¡¼¥ë¡¦¥Õ¥¡
+   ¥¤¥ë¤Ï pgsql/data/base/dbname
+   ¥Ç¥£¥ì¥¯¥È¥ê¤Ë³ÊǼ¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£¥¯¥é¥¤¥¢¥ó¥È¤Î¥×¥í¥Õ¥£¡¼¥ë¤Ï¥¯¥é¥¤¥¢
+   ¥ó¥È¤Î¸½¹Ô¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤ë¤Ç¤·¤ç¤¦¡£Linux
+   ¤Ç¤Þ¤È¤â¤Ê¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤ò¹Ô¤¦¤Ë¤Ï -DLINUX_PROFILE
+   ¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
+   
+    3.8) Àܳ¤·¤è¤¦¤È¤¹¤ë¤È¤¤Ë 'Sorry, too many clients' ¤¬½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+    
+   postmaster¤¬Æ±»þ»Ïư¤Ç¤­
+   ¤ë¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤ËÂФ¹¤ëÀ©¸Â¿ô¤òÁý¤ä¤¹É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
+   
+   ´ûÄê¤ÎºÇÂç¥×¥í¥»¥¹¤Ï32¥×¥í¥»¥¹¤Ç¤¹¡£-N¤ËŬÀÚ¤ÊÃͤò°ú¿ô¤Ë¤·¤Æpostmaster
+   ¤òºÆµ¯Æ°¤¹¤ë¤«¡¢PostgreSQL.conf
+   ¤ò½¤Àµ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤½¤ÎÃͤòÁý¤ä¤¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+   
+   ¤â¤·¡¢-N ¤ò 32¤è¤ê¤âÂ礤¯¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢-B¤â´ûÄê¤Î64¤è¤êÂ礭
+   ¤¤ÃͤËÁý²Ã¤µ¤»¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤·¡¢-B ¤Ï¾¯¤Ê¤¯¤È¤â -N
+   ¤Î2ÇܤϤʤ¯¤Æ¤Ï¤Ê¤é¤º¡¢¤ª¤½¤é¤¯ºÇ¹âÀǽ¤ò˾¤à¤Ê¤é¤Ð¤½¤ì¤è¤êÂ礭
+   ¤¤Ãͤ¬É¬ÍפʤϤº¤Ç¤¹¡£¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤ò¤¿¤¯¤µ¤ó¤Ë¤¹¤ë¤È¡¢¤¤¤í¤¤¤í
+   ¤ÊUnix¥«¡¼¥Í¥ë¹½À®¥Ñ¥é¥á¡¼¥¿¤âÁý¤ä¤¹¤³¤È¤¬É¬Íפˤʤ뤫¤â¤·¤ì¤Þ¤»¤ó¡£
+   ¶¦Í¥á¥â¥ê¡¼¡¦¥Ö¥í¥Ã¥¯¤ÎºÇÂçÃÍ(SHMMAX)¡¢
+   ¥»¥Þ¥Õ¥©¤ÎºÇÂç¿ô(SEMMNS¤ÈSEMMNI)¡¢ ¥×¥í¥»¥¹¤ÎºÇÂç¿ô(NPROC)¡¢
+   ¥æ¡¼¥¶Ëè¤ÎºÇÂç¥×¥í¥»¥¹¿ô(MAXUPRC)¡¢
+   ³«¤¯¥Õ¥¡¥¤¥ë¤ÎºÇÂç¿ô(NFILE¤ÈNINODE) ¤â³Îǧ»ö¹à¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£
+   PostgreSQL¤Ëµö¤µ¤ì¤ë¥Ð¥Ã¥¯¥¨¥ó¥É¤Î¥×¥í¥»¥¹¿ô¤¬À©¸Â¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢
+   ¥·¥¹¥Æ¥à¤Î¥ê¥½¡¼¥¹¤ò»È¤¤²Ì¤·¤Æ¤·¤Þ¤¦¤³¤È¤òÈò¤±¤ë¤¿¤á¤Ç¤¹¡£
+   
+    3.9) pgsql_tmp ¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤Ë¤Ï²¿¤¬¤¢¤ê¤Þ¤¹¤«¡©
+    
+   Ì䤤¹ç¤ï¤»¼Â¹Ô¥â¥¸¥å¡¼¥ë¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¿°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤¬¡¢¤³¤Î¥Ç¥£
+   ¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£Î㤨¤Ð¡¢¤â¤· ORDER BY
+   ¶ç¤òËþ¤¿¤¹¤¿¤á¤Ë¥Ð¥Ã¥¯¥¨¥ó¥É¤Î -S ¥Ñ¥é¥á¡¼¥¿¤Çµö²Ä¤·¤¿Ãͤè¤ê¤âÂ礭
+   ¤Ê¥¹¥Ú¡¼¥¹¤¬¥½¡¼¥È¤ÎºÝ¤ËɬÍפÀ¤È¤¹¤ë¤È¡¢°î¤ì¤¿¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¤¿¤á¤Ë°ì
+   »þŪ¤Ê¥Õ¥¡¥¤¥ë¤¬¤¤¤¯¤Ä¤«¤³¤³¤ËÀ¸À®¤µ¤ì¤Þ¤¹¡£
+   
+   °ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤Ï¼«Æ°Åª¤Ë¾Ã¤·µî¤é¤ì¤ë¤Ï¤º¤Ç¤¹¤¬¡¢¤â¤·¡¢¥½¡¼¥È¤ÎÅÓÃæ¤Ç
+   ¥Ð¥Ã¥¯¥¨¥ó¥É¤¬¥¯¥é¥Ã¥·¥å¤·¤Æ¤·¤Þ¤¦¤È¤½¤¦¤Ï¤Ê¤ê¤Þ¤»¤ó¡£postmaster¤ÎÄä»ß
+   ¤È¥ê¥¹¥¿¡¼¥È¤Ç¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¾Ã¤·¤µ¤é¤ì¤Þ¤¹¡£
     [ÌõÃí¡§
-         SYSLOGD ·Ðͳ¤Ç¥í¥°¤ò½ÐÎϤ¹¤ë¤Ë¤Ï¡¢¤Þ¤º¡¢configure ¤ò --enable-syslog 
-        ÉÕ¤­¤ÇÁö¤é¤»¤¿¸å¡¢¥³¥ó¥Ñ¥¤¥ë¤È¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£
-         ¼¡¤Ë¡¢syslog.conf ¤Ë local?.* ¤Î ½ÐÎÏÀè¤ò»ØÄꤷ(´Ä¶­ÊÑ¿ô¤ÇÊѹ¹²Äǽ)¡¢
-        syslogd ¤Ë HUP ¥·¥°¥Ê¥ë¤òÁ÷¤Ã¤Æ½é´ü²½¤·¤Æ¤ª¤­¤Þ¤¹¡£¤½¤·¤Æ¡¢
-        $PGDATA/pg_options ¤Ë syslog=2 ¤ò²Ã¤¨¤Æ¡¢ postmaster ¤ò -S 
-        ¥ª¥×¥·¥ç¥óÉÕ¤­¤Ë¤Æ¥µ¡¼¥Ð¥â¡¼¥É¤Çµ¯Æ°¤·¤Þ¤¹¡£(¥Ð¡¼¥¸¥ç¥ó 7.1 ¤«¤é¤Ï 
+         SYSLOGD ·Ðͳ¤Ç¥í¥°¤ò½ÐÎϤ¹¤ë¤Ë¤Ï¡¢¤Þ¤º¡¢configure ¤ò --enable-syslog
+        ÉÕ¤¤ÇÁö¤é¤»¤¿¸å¡¢¥³¥ó¥Ñ¥¤¥ë¤È¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£
+         ¼¡¤Ë¡¢syslog.conf ¤Ë local?.* ¤Î ½ÐÎÏÀè¤ò»ØÄꤷ(´Ä¶ÊÑ¿ô¤ÇÊѹ¹²Äǽ)¡¢
+        syslogd ¤Ë HUP ¥·¥°¥Ê¥ë¤òÁ÷¤Ã¤Æ½é´ü²½¤·¤Æ¤ª¤¤Þ¤¹¡£¤½¤·¤Æ¡¢
+        $PGDATA/pg_options ¤Ë syslog=2 ¤ò²Ã¤¨¤Æ¡¢ postmaster ¤ò -S
+        ¥ª¥×¥·¥ç¥óÉÕ¤¤Ë¤Æ¥µ¡¼¥Ð¥â¡¼¥É¤Çµ¯Æ°¤·¤Þ¤¹¡£(¥Ð¡¼¥¸¥ç¥ó 7.1 ¤«¤é¤Ï
         pg_options ¤Ï PostgreSQL.conf ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£)
     ]
 
-3.10) PostgreSQL¤Î¥á¥¸¥ã¡¼¥ê¥ê¡¼¥¹¤ò¥¢¥Ã¥×¥Ç¡¼¥È¤¹¤ë¤Î¤Ë¥À¥ó¥×¤È¥ê¥¹¥È¥¢¤ò¤·¤Ê
-¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
-
-PostgreSQL¥Á¡¼¥à¤Ï¥Þ¥¤¥Ê¡¼¥ê¥ê¡¼¥¹¤Ç¤Ï¾®¤µ¤ÊÊѹ¹¤·¤«¹Ô¤Ê¤¤¤Þ¤»¤ó¤Î¤Ç¡¢7.2 ¤«¤é
-7.2.1 ¤Ø¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É¤Ë¤Ï¥À¥ó¥×¤È¥ê¥¹¥È¥¢¤ÎɬÍפϤ¢¤ê¤Þ¤»¤ó¡£¤·¤«¤·¡¢¥á¥¸¥ã
-¡¼¥ê¥ê¡¼¥¹(¤¿¤È¤¨¤Ð¡¢7.2¤«¤é7.3¤Ø¤Î¤è¤¦¤Ê)¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¥Æ¡¼¥Ö¥ë¤ä¥Ç¡¼¥¿¥Õ¥¡¥¤
-¥ë¤ÎÆâÉô¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎÊѹ¹¤ò¤·¤Ð¤·¤Ð¹Ô¤Ê¤¤¤Þ¤¹¡£¤³¤ì¤é¤ÎÊѹ¹¤Ï¤¿¤¤¤Æ¤¤Ê£»¨¤Ç¡¢
-¤½¤Î¤¿¤á²æ¡¹¤Ï¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤Î¤¿¤á¤Î¸åÊý¸ß´¹À­¤ò°Ý»ý¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£¥À¥ó
-¥×¤ÏÈÆÍÑ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¥Ç¡¼¥¿¤ò½ÐÎϤ·¡¢¤½¤ì¤ò¿·¤·¤¤ÆâÉô¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÆÉ¤ß¹þ¤à¤³
-¤È¤¬¤Ç¤­¤Þ¤¹¡£
-
-¥Ç¥£¥¹¥¯¾å¤Ç¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÊѹ¹¤Î¤Ê¤¤Æ±°ì¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢¥¢¥Ã¥×¥°¥ì¡¼¥É¤Ï¡¢¥À¥ó
-¥×¡¿¥ê¥¹¥È¥¢¤Ç¤Ï¤Ê¤¯¡¢pg_upgrade ¥¹¥¯¥ê¥×¥È¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥ê¥ê¡¼¥¹¥Î¡¼¥È
-¤Ë¤Ï¡¢pg_upgrade ¤¬ÍøÍѲÄǽ¤Ê¥ê¥ê¡¼¥¹¤«¤É¤¦¤«µ­¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
-
-3.11) ¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤Ï¤É¤ó¤Ê¥³¥ó¥Ô¥å¡¼¥¿¤ò»È¤¨¤Ð¤è¤¤¤Ç¤¹¤«¡©
-
-PC¥Ï¡¼¥É¥¦¥§¥¢¤Ï¤Û¤È¤ó¤É¸ß´¹À­¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤Û¤È¤ó¤É¤Î¿Í¤Ï¡¢¤¹¤Ù¤Æ¤ÎPC¥Ï¡¼¥É
-¥¦¥§¥¢¤¬Æ±¤¸ÉʼÁ¤À¤È»×¤¤¹þ¤à·¹¸þ¤¬¤¢¤ê¤Þ¤¹¡£¤·¤«¤·¡¢¤½¤ì¤Ï´Ö°ã¤¤¤Ç¤¹¡£ECC RAM¡¢
-SCSI¡¢¤ª¤è¤Ó¡¢¹âÉʼÁ¥Þ¥¶¡¼¥Ü¡¼¥É¤Ï¡¢°Â¤¤¥Ï¡¼¥É¥¦¥§¥¢¤ËÈæ¤Ù¤ë¤È¡¢¤è¤ê¿®ÍêÀ­¤¬¹â
-¤¯¡¢¤è¤êÀ­Ç½¤âÎɤ¤¤Î¤Ç¤¹¡£PostgreSQL ¤Ï¤Û¤È¤ó¤É¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Ç²ÔƯ¤·¤Þ¤¹¤¬¡¢¿®
-ÍêÀ­¤äÀ­Ç½¤¬½ÅÍפʾì¹ç¤Ï¡¢¥Ï¡¼¥É¥¦¥§¥¢¤Î¥ª¥×¥·¥ç¥ó¤ò¸¦µæ¤¹¤ë¤³¤È¤¬¸­ÌÀ¤Ç¤¹¡£¥á
-¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¤â¥Ï¡¼¥É¥¦¥§¥¢¥ª¥×¥·¥ç¥ó¤È¥È¥ì¡¼¥É¥ª¥Õ¤Ë¤Ä¤¤¤ÆµÄÏÀ¤¹¤ë¤³¤È¤¬¤Ç
-¤­¤Þ¤¹¡£
-
-¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬ 
-
-                                 Áàºî¾å¤Î¼ÁÌä                                  
-                                                                               
-4.1) ¥Ð¥¤¥Ê¥ê¡¦¥«¡¼¥½¥ë¤ÈÄ̾參¡¼¥½¥ë¤È¤Î¸·Ì©¤Ê°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
-
-¾Ü½Ò¤Ï¡¢¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç DECLARE ¤ò¸«¤Æ²¼¤µ¤¤¡£
-
-4.2) ºÇ½é¤Î¿ô¥í¥¦¤Î¤ß¤ò SELECT¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©¥é¥ó¥À¥à¤Ê¥í¥¦¡©
-
-¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤ÇFETCH¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£¤¢¤ë¤¤¤Ï¡¢SELECT ... LIMIT....¤ò»È¤Ã
-¤Æ¤ß¤Æ²¼¤µ¤¤¡£
-
-¤¿¤È¤¨¡¢Íߤ·¤¤¤Î¤ÏºÇ½é¤Î¿ô¥í¥¦¤À¤±¤Ç¤â¡¢¤¹¤Ù¤Æ¤ÎÌ䤤¹ç¤ï¤»¤òɾ²Á¤·¤Ê¤¯¤Æ¤Ï¤Ê¤é
-¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£ORDER BY ¤ò»ý¤Ã¤¿Ì䤤¹ç¤ï¤»¤ò»È¤¦¤³¤È¤ò¹Í¤¨¤Æ¤ß¤Æ²¼¤µ¤¤¡£¤â
-¤·¡¢ORDER BY¤Ë¹ç¤Ã¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ë¤È¤¹¤ë¤È PostgreSQL¤ÏÍ׵ᤵ¤ì¤¿ºÇ½é¤Î¿ô¥í
-¥¦¤À¤±¤Çɾ²Á¤Ç¤­¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢¤Ç¤Ê¤ì¤Ð¡¢PostgreSQL ¤Ï°Õ¿Þ¤·¤¿¥í¥¦¤¬À¸À®¤µ
-¤ì¤ë¤Þ¤Ç¤¹¤Ù¤Æ¤Î¥í¥¦¤òɾ²Á¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£
-
-¥é¥ó¥À¥à¤Ê¥í¥¦¤òSELECT¤¹¤ë¤Ë¤Ï¡¢¼¡¤Îʸ¤ò»È¤¤¤Þ¤¹¡§
-
+    3.10)
+    PostgreSQL¤Î¥á¥¸¥ã¡¼¥ê¥ê¡¼¥¹¤ò¥¢¥Ã¥×¥Ç¡¼¥È¤¹¤ë¤Î¤Ë¥À¥ó¥×¤È¥ê¥¹¥È¥¢¤ò¤·¤Ê¤¯¤
+    Æ¤Ï¤Ê¤é¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+    
+   PostgreSQL¥Á¡¼¥à¤Ï¥Þ¥¤¥Ê¡¼¥ê¥ê¡¼¥¹¤Ç¤Ï¾®¤µ¤ÊÊѹ¹¤·¤«¹Ô¤Ê¤¤¤Þ¤»¤ó¤Î¤Ç¡¢
+   7.2 ¤«¤é 7.2.1
+   ¤Ø¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É¤Ë¤Ï¥À¥ó¥×¤È¥ê¥¹¥È¥¢¤ÎɬÍפϤ¢¤ê¤Þ¤»¤ó¡£¤·¤«¤·¡¢¥á¥¸
+   ¥ã¡¼¥ê¥ê¡¼¥¹(¤¿¤È¤¨¤Ð¡¢7.2¤«¤é7.3¤Ø¤Î¤è¤¦¤Ê)¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¥Æ¡¼¥Ö¥ë¤ä¥Ç
+   ¡¼¥¿¥Õ¥¡¥¤¥ë¤ÎÆâÉô¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎÊѹ¹¤ò¤·¤Ð¤·¤Ð¹Ô¤Ê¤¤¤Þ¤¹¡£¤³¤ì¤é¤ÎÊѹ¹
+   ¤Ï¤¿¤¤¤Æ¤¤Ê£»¨¤Ç¡¢¤½¤Î¤¿¤á²æ¡¹¤Ï¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤Î¤¿¤á¤Î¸åÊý¸ß´¹À­
+   ¤ò°Ý»ý¤¹¤ë¤³¤È¤¬¤Ç¤­
+   ¤Þ¤»¤ó¡£¥À¥ó¥×¤ÏÈÆÍÑ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¥Ç¡¼¥¿¤ò½ÐÎϤ·¡¢¤½¤ì¤ò¿·¤·¤¤ÆâÉô¥Õ¥©
+   ¡¼¥Þ¥Ã¥È¤ËÆÉ¤ß¹þ¤à¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+   
+   ¥Ç¥£¥¹¥¯¾å¤Ç¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÊѹ¹¤Î¤Ê¤¤Æ±°ì¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢¥¢¥Ã¥×¥°¥ì¡¼¥É
+   ¤Ï¡¢¥À¥ó¥×¡¿¥ê¥¹¥È¥¢¤Ç¤Ï¤Ê¤¯¡¢pg_upgrade ¥¹¥¯¥ê¥×¥È¤ò»È¤¦¤³¤È¤¬¤Ç¤­
+   ¤Þ¤¹¡£¥ê¥ê¡¼¥¹¥Î¡¼¥È¤Ë¤Ï¡¢pg_upgrade ¤¬ÍøÍѲÄǽ¤Ê¥ê¥ê¡¼¥¹¤«¤É¤¦¤«µ­
+   ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
+   
+    3.11) ¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤Ï¤É¤ó¤Ê¥³¥ó¥Ô¥å¡¼¥¿¤ò»È¤¨¤Ð¤è¤¤¤Ç¤¹¤«¡©
+    
+   PC¥Ï¡¼¥É¥¦¥§¥¢¤Ï¤Û¤È¤ó¤É¸ß´¹À­
+   ¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤Û¤È¤ó¤É¤Î¿Í¤Ï¡¢¤¹¤Ù¤Æ¤ÎPC¥Ï¡¼¥É¥¦¥§¥¢¤¬Æ±¤¸ÉʼÁ¤À¤È»×
+   ¤¤¹þ¤à·¹¸þ¤¬¤¢¤ê¤Þ¤¹¡£¤·¤«¤·¡¢¤½¤ì¤Ï´Ö°ã¤¤¤Ç¤¹¡£ECC
+   RAM¡¢SCSI¡¢¤ª¤è¤Ó¡¢¹âÉʼÁ¥Þ¥¶¡¼¥Ü¡¼¥É¤Ï¡¢°Â¤¤¥Ï¡¼¥É¥¦¥§¥¢¤ËÈæ¤Ù¤ë¤È¡¢¤
+   è¤ê¿®ÍêÀ¤¬¹â¤¯¡¢¤è¤êÀǽ¤âÎɤ¤¤Î¤Ç¤¹¡£PostgreSQL
+   ¤Ï¤Û¤È¤ó¤É¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Ç²ÔƯ¤·¤Þ¤¹¤¬¡¢¿®ÍêÀ¤äÀ­
+   Ç½¤¬½ÅÍפʾì¹ç¤Ï¡¢¥Ï¡¼¥É¥¦¥§¥¢¤Î¥ª¥×¥·¥ç¥ó¤ò¸¦µæ¤¹¤ë¤³¤È¤¬¸­
+   ÌÀ¤Ç¤¹¡£¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¤â¥Ï¡¼¥É¥¦¥§¥¢¥ª¥×¥·¥ç¥ó¤È¥È¥ì¡¼¥É¥ª¥Õ¤Ë¤Ä¤¤
+   ¤ÆµÄÏÀ¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+     _________________________________________________________________
+   
+                                Áàºî¾å¤Î¼ÁÌä
+                                      
+    4.1) ¥Ð¥¤¥Ê¥ê¡¦¥«¡¼¥½¥ë¤ÈÄ̾參¡¼¥½¥ë¤È¤Î¸·Ì©¤Ê°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
+    
+   ¾Ü½Ò¤Ï¡¢¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç DECLARE ¤ò¸«¤Æ²¼¤µ¤¤¡£
+   
+    4.2) ºÇ½é¤Î¿ô¥í¥¦¤Î¤ß¤ò SELECT¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©¥é¥ó¥À¥à¤Ê¥í¥¦¡©
+    
+   ¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤ÇFETCH¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£¤¢¤ë¤¤¤Ï¡¢SELECT ...
+   LIMIT....¤ò»È¤Ã¤Æ¤ß¤Æ²¼¤µ¤¤¡£
+   
+   ¤¿¤È¤¨¡¢Íߤ·¤¤¤Î¤ÏºÇ½é¤Î¿ô¥í¥¦¤À¤±¤Ç¤â¡¢¤¹¤Ù¤Æ¤ÎÌ䤤¹ç¤ï¤»¤òɾ²Á¤·¤Ê¤¯
+   ¤Æ¤Ï¤Ê¤é¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£ORDER BY
+   ¤ò»ý¤Ã¤¿Ì䤤¹ç¤ï¤»¤ò»È¤¦¤³¤È¤ò¹Í¤¨¤Æ¤ß¤Æ²¼¤µ¤¤¡£ ¤â¤·¡¢ORDER
+   BY¤Ë¹ç¤Ã¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ë¤È¤¹¤ë¤È
+   PostgreSQL¤ÏÍ׵ᤵ¤ì¤¿ºÇ½é¤Î¿ô¥í¥¦¤À¤±¤Çɾ²Á¤Ç¤­
+   ¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢¤Ç¤Ê¤ì¤Ð¡¢PostgreSQL
+   ¤Ï°Õ¿Þ¤·¤¿¥í¥¦¤¬À¸À®¤µ¤ì¤ë¤Þ¤Ç¤¹¤Ù¤Æ¤Î¥í¥¦¤òɾ²Á¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤â
+   ¤·¤ì¤Þ¤»¤ó¡£
+   
+   ¥é¥ó¥À¥à¤Ê¥í¥¦¤òSELECT¤¹¤ë¤Ë¤Ï¡¢¼¡¤Îʸ¤ò»È¤¤¤Þ¤¹¡§
     SELECT col
     FROM tab
     ORDER BY random()
     LIMIT 1;
 
-4.3) ¥Æ¡¼¥Ö¥ë¤ä¤½¤Î¾¤Î¾ðÊó¤Î¥ê¥¹¥È¤ò psql ¤Ç¸«¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
-
-psql¤ÎÃæ¤Ç¡¢ \dt ¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¥Æ¡¼¥Ö¥ë¤ò¸«¤Þ¤¹¡£psql ¤ÎÃæ¤Î¥³¥Þ¥ó¥É¤Î´°Á´¤Ê
-¥ê¥¹¥È¤Ë¤Ï \? ¤ò»È¤¨¤Þ¤¹¡£¤¢¤ë¤¤¤Ï¡¢psql¤Î¥½¡¼¥¹¥³¡¼¥É¤Îpgsql/src/bin/psql/
-describe.c¥Õ¥¡¥¤¥ë¤ò¸«¤ë¤³¤È¤â¤Ç¤­¤Æ¡¢¤½¤ÎÃæ¤Ë¤Ïpsql¤Î¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¥³¥Þ¥ó¥É
-¤Î½ÐÎϤòÀ¸À®¤¹¤ëSQL¥³¥Þ¥ó¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£¤Þ¤¿¡¢psql¤ò -E ¥ª¥×¥·¥ç¥ó¤È°ì½ï¤Ë
-³«»Ï¤¹¤ë¤È¡¢¼Â¹Ô¤µ¤»¤¿¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë»È¤¦Ì䤤¹ç¤ï¤»¤ò½ÐÎϤ¹¤ë¤è¤¦¤Ë¤Ê
-¤ê¤Þ¤¹¡£PostgreSQL¤Ï¤Þ¤¿¡¢SQLiÂбþ¤Î INFORMATION SCHEMA ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÍѰÕ
-¤·¤Æ¤¤¤Æ¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÆÀ¤ë¤¿¤á¤ËÌ䤤¹ç¤ï¤»¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹
-¡£
-
-4.4) ¥Æ¡¼¥Ö¥ë¤«¤é¥«¥é¥à¤Îºï½ü¡¢¤¢¤ë¤¤¤Ï¡¢¥Ç¡¼¥¿·¿¤òÊѹ¹¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
-
-DROP COLUMNµ¡Ç½¤¬¡¢ALTER TABLE DROP COLUMN ¤È¤·¤Æ¥ê¥ê¡¼¥¹7.3 ¤Ë²Ã¤¨¤é¤ì¤Þ¤·¤¿¡£
-¤½¤ì¤Þ¤Ç¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢¤½¤ÎÂå¤ï¤ê¤Ë¤³¤¦¤·¤Þ¤¹:
-
+    4.3) ¥Æ¡¼¥Ö¥ë¤ä¤½¤Î¾¤Î¾ðÊó¤Î¥ê¥¹¥È¤ò psql ¤Ç¸«¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+    
+   psql¤ÎÃæ¤Ç¡¢ \dt ¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¥Æ¡¼¥Ö¥ë¤ò¸«¤Þ¤¹¡£psql
+   ¤ÎÃæ¤Î¥³¥Þ¥ó¥É¤Î´°Á´¤Ê¥ê¥¹¥È¤Ë¤Ï \?
+   ¤ò»È¤¨¤Þ¤¹¡£¤¢¤ë¤¤¤Ï¡¢psql¤Î¥½¡¼¥¹¥³¡¼¥É¤Îpgsql/src/bin/psql/describe.
+   c¥Õ¥¡¥¤¥ë¤ò¸«¤ë¤³¤È¤â¤Ç¤­
+   ¤Æ¡¢¤½¤ÎÃæ¤Ë¤Ïpsql¤Î¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¥³¥Þ¥ó¥É¤Î½ÐÎϤòÀ¸À®¤¹¤ëSQL¥³¥Þ¥ó¥
+   É¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£¤Þ¤¿¡¢psql¤ò -E
+   ¥ª¥×¥·¥ç¥ó¤È°ì½ï¤Ë³«»Ï¤¹¤ë¤È¡¢¼Â¹Ô¤µ¤»¤¿¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë»È¤¦Ìä
+   ¤¤¹ç¤ï¤»¤ò½ÐÎϤ¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£PostgreSQL¤Ï¤Þ¤¿¡¢SQLiÂбþ¤Î
+   INFORMATION SCHEMA
+   ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÍѰդ·¤Æ¤¤¤Æ¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÆÀ¤ë¤¿¤á¤Ë
+   Ì䤤¹ç¤ï¤»¤ò»È¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+   
+    4.4)
+    ¥Æ¡¼¥Ö¥ë¤«¤é¥«¥é¥à¤Îºï½ü¡¢¤¢¤ë¤¤¤Ï¡¢¥Ç¡¼¥¿·¿¤òÊѹ¹¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+    
+   DROP COLUMNµ¡Ç½¤¬¡¢ALTER TABLE DROP COLUMN ¤È¤·¤Æ¥ê¥ê¡¼¥¹7.3
+   ¤Ë²Ã¤¨¤é¤ì¤Þ¤·¤¿¡£¤½¤ì¤Þ¤Ç¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢¤½¤ÎÂå¤ï¤ê¤Ë¤³¤¦¤·¤Þ¤¹:
         BEGIN;
         LOCK TABLE old_table;
         SELECT ...  -- ºï½ü¤·¤¿¤¤¥«¥é¥à°Ê³°¤Î¥«¥é¥à¤ò¤¹¤Ù¤ÆÁªÂò¤·¤Þ¤¹¡£
@@ -838,21 +914,20 @@ DROP COLUMN
         ALTER TABLE new_table RENAME TO old_table;
         COMMIT;
 
-¥«¥é¥à¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤Ï¼¡¤Îʸ¤ÇÊѤ¨¤é¤ì¤Þ¤¹¡§
-
+   ¥«¥é¥à¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤Ï¼¡¤Îʸ¤ÇÊѤ¨¤é¤ì¤Þ¤¹¡§
     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;
 
-¤³¤ì¤ò¹Ô¤Ê¤Ã¤¿¤È¤­¤Ï¡¢Ëõ¾Ã¤µ¤ì¤¿¹Ô¤¬»È¤Ã¤Æ¤¤¤ë¥Ç¥£¥¹¥¯¶õ´Ö¤ò²ó¼ý¤¹¤ë¤¿¤á¤Ë
-VACUUM FULL tab¤ò¤·¤¿¤Û¤¦¤¬Îɤ¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£
-
-4.5) ¥í¥¦¡¢¥Æ¡¼¥Ö¥ë¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇÂ祵¥¤¥º¤Ï¡©
-
-À©¸Â¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£
-
+   ¤³¤ì¤ò¹Ô¤Ê¤Ã¤¿¤È¤­
+   ¤Ï¡¢Ëõ¾Ã¤µ¤ì¤¿¹Ô¤¬»È¤Ã¤Æ¤¤¤ë¥Ç¥£¥¹¥¯¶õ´Ö¤ò²ó¼ý¤¹¤ë¤¿¤á¤ËVACUUM FULL
+   tab¤ò¤·¤¿¤Û¤¦¤¬Îɤ¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£
+   
+    4.5) ¥í¥¦¡¢¥Æ¡¼¥Ö¥ë¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇÂ祵¥¤¥º¤Ï¡©
+    
+   À©¸Â¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£
 ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇÂ祵¥¤¥º?       À©¸Â̵¤· (32 TB ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤â¸ºß¤·¤Þ¤¹)
 ¥Æ¡¼¥Ö¥ë¤ÎºÇÂ祵¥¤¥º?           32TB
 ¥í¥¦¤ÎºÇÂ祵¥¤¥º?               1.6TB
@@ -861,30 +936,32 @@ VACUUM FULL tab
 ¥Æ¡¼¥Ö¥ëÆâ¤Ç¤ÎºÇÂ祫¥é¥à¿ô?     ¥«¥é¥à¤Î·¿¤Ë¤è¤ê250-1600
 ¥Æ¡¼¥Ö¥ëÆâ¤Ç¤ÎºÇÂ祤¥ó¥Ç¥Ã¥¯¥¹¿ô? À©¸Â̵¤·
 
-¤â¤Á¤í¤ó¡¢¤³¤ì¤é¤Ï¼ÂºÝ¤Ï̵À©¸Â¤Ç¤Ï¤Ê¤¯¡¢¥Ç¥£¥¹¥¯ÍÆÎ̤ȥá¥â¥ê¡¼¤ä¥¹¥ï¥Ã¥×¥¹¥Ú¡¼
-¥¹¤ÎÂ礭¤µ¤Ë¤è¤êÀ©¸Â¤µ¤ì¤Þ¤¹¡£À­Ç½¤Ï¤³¤ì¤é¤ÎÃͤ¬¤³¤È¤Î¤Û¤«Â礭¤Ê»þ¤ËÀú¤ê¤ò¼õ¤±
-¤Þ¤¹¡£
-
-ºÇÂç¥Æ¡¼¥Ö¥ë¥µ¥¤¥º¤Î32TB¤Ï¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤è¤ëµðÂç¥Õ¥¡¥¤¥ë¤Î¥µ¥Ý¡¼¥È
-¤ÏɬÍפȤ·¤Þ¤»¤ó¡£µðÂç¤Ê¥Æ¡¼¥Ö¥ë¤ÏÊ£¿ô¤Î1GB¤Î¥Õ¥¡¥¤¥ë¤Ëʬ¤±¤ÆÊݸ¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢
-¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÀ©¸Â¤Ï½ÅÍפǤϤ¢¤ê¤Þ¤»¤ó¡£
-
-¥Ç¥Õ¥©¥ë¥È¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò32k¤Ë¤¹¤ë¤³¤È¤Ç¡¢ºÇÂç¥Æ¡¼¥Ö¥ë¥µ¥¤¥º¤ÈºÇÂ祫¥é¥à¿ô¤È
-¤ò£´Çܤˤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-
-4.6) °ìÈÌŪ¤Ê¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤òÊݸ¤¹¤ë¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ç¥£¥¹¥¯ÍÆ
-Î̤ϤɤΤ¯¤é¤¤É¬ÍפǤ¹¡©
-
-ÉáÄ̤Υƥ­¥¹¥È¥Õ¥¡¥¤¥ë¤ò PostgreSQL ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÊݸ¤¹¤ë¤Ë¤Ï¡¢ºÇÂç¤ÇÌó5ÇܤÎ
-¥Ç¥£¥¹¥¯ÍÆÎ̤òɬÍפȤ·¤Þ¤¹¡£
-
-ÎãÂê¤È¤·¤Æ¡¢³Æ¹Ô¤ËÀ°¿ô¤È¥Æ¥­¥¹¥Èµ­½Ò¤ò»ý¤Ä 100,000¹Ô¤Î¥Õ¥¡¥¤¥ë¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç
-¤¦¡£¥Æ¥­¥¹¥È¤Îʸ»úÎó¤ÎÊ¿¶ÑŤµ¤ò20¥Ð¥¤¥È¤È²¾Äꤹ¤ë¤È¡¢¥Õ¥é¥Ã¥È¥Õ¥¡¥¤¥ë¤ÎÂ礭¤µ
-¤ÏÌó2.8MB ¤Ç¤¹¡£¤³¤Î¥Ç¡¼¥¿¤ò´Þ¤à PostgreSQL ¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÂ礭¤µ¤Ï¼¡¤Î
-¤è¤¦¤ËÌó6.4MB¤È¸«ÀѤâ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡§
-
+   ¤â¤Á¤í¤ó¡¢¤³¤ì¤é¤Ï¼ÂºÝ¤Ï̵À©¸Â¤Ç¤Ï¤Ê¤¯¡¢¥Ç¥£¥¹¥¯ÍÆÎ̤ȥá¥â¥ê¡¼¤ä¥¹¥ï¥Ã
+   ¥×¥¹¥Ú¡¼¥¹¤ÎÂ礤µ¤Ë¤è¤êÀ©¸Â¤µ¤ì¤Þ¤¹¡£Àǽ¤Ï¤³¤ì¤é¤ÎÃͤ¬¤³¤È¤Î¤Û¤«Â礭
+   ¤Ê»þ¤ËÀú¤ê¤ò¼õ¤±¤Þ¤¹¡£
+   
+   ºÇÂç¥Æ¡¼¥Ö¥ë¥µ¥¤¥º¤Î32TB¤Ï¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤è¤ëµðÂç¥Õ¥¡¥¤¥ë¤Î
+   ¥µ¥Ý¡¼¥È¤ÏɬÍפȤ·¤Þ¤»¤ó¡£µðÂç¤Ê¥Æ¡¼¥Ö¥ë¤ÏÊ£¿ô¤Î1GB¤Î¥Õ¥¡¥¤¥ë¤Ëʬ¤±¤ÆÊ
+   Ý¸¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÀ©¸Â¤Ï½ÅÍפǤϤ¢¤ê¤Þ¤»¤ó¡£
+   
+   ¥Ç¥Õ¥©¥ë¥È¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò32k¤Ë¤¹¤ë¤³¤È¤Ç¡¢ºÇÂç¥Æ¡¼¥Ö¥ë¥µ¥¤¥º¤ÈºÇÂç¥
+   «¥é¥à¿ô¤È¤ò£´Çܤˤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+   
+    4.6) °ìÈÌŪ¤Ê¥Æ¥­
+    ¥¹¥È¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤òÊݸ¤¹¤ë¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ç¥£¥¹¥¯ÍÆÎ̤ϤɤΤ¯¤é¤
+    ¤É¬ÍפǤ¹¡©
+    
+   ÉáÄ̤Υƥ¥¹¥È¥Õ¥¡¥¤¥ë¤ò PostgreSQL
+   ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÊݸ¤¹¤ë¤Ë¤Ï¡¢ºÇÂç¤ÇÌó5ÇܤΥǥ£¥¹¥¯ÍÆÎ̤òɬÍפȤ·¤Þ¤¹¡
+   £
+   
+   ÎãÂê¤È¤·¤Æ¡¢³Æ¹Ô¤ËÀ°¿ô¤È¥Æ¥¥¹¥Èµ½Ò¤ò»ý¤Ä 100,000¹Ô¤Î¥Õ¥¡¥¤¥ë¤ò¹Í¤¨
+   ¤Æ¤ß¤Þ¤·¤ç¤¦¡£¥Æ¥­
+   ¥¹¥È¤Îʸ»úÎó¤ÎÊ¿¶ÑŤµ¤ò20¥Ð¥¤¥È¤È²¾Äꤹ¤ë¤È¡¢¥Õ¥é¥Ã¥È ¥Õ¥¡¥¤¥ë¤ÎÂ礭
+   ¤µ¤ÏÌó2.8MB ¤Ç¤¹¡£¤³¤Î¥Ç¡¼¥¿¤ò´Þ¤à PostgreSQL ¥Ç¡¼¥¿¥Ù¡¼¥¹
+   ¥Õ¥¡¥¤¥ë¤ÎÂ礤µ¤Ï¼¡¤Î¤è¤¦¤ËÌó6.4MB¤È¸«ÀѤâ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡§
     32 bytes: ³Æ¥í¥¦¤Î¥Ø¥Ã¥À(³µ»»)
-    24 bytes: À°¿ô(int)¥Õ¥£¡¼¥ë¥É¤È¥Æ¥­¥¹¥È(text)¥Õ¥£¡¼¥ë¥É
+    24 bytes: À°¿ô(int)¥Õ¥£¡¼¥ë¥É¤È¥Æ¥¥¹¥È(text)¥Õ¥£¡¼¥ë¥É
    + 4 bytes: ¥Ú¡¼¥¸¾å¤Î¥¿¥Ã¥×¥ë¤Ø¤Î¥Ý¥¤¥ó¥¿
    ----------------------------------------
    60 bytes per row
@@ -898,198 +975,208 @@ VACUUM FULL tab
    100000 data rows
    --------------------  =  782 database pages (ÀÚ¤ê¾å¤²)
       128 rows per page
-  735 database pages * 8192 bytes per page  =  6,021,120 bytes (6 MB)
-
-¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢¤³¤ì¤Û¤É¤Î¥ª¡¼¥Ð¥Ø¥Ã¥É¤ÏÍ׵ᤷ¤Þ¤»¤ó¤¬¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹ÉÕ¤±¤µ¤ì¤ë
-¥Ç¡¼¥¿¤ò´Þ¤à°Ê¾å¡¢¤½¤ì¤Ê¤ê¤ËÂ礭¤¯¤Ê¤ê¤Þ¤¹¡£
-
-NULL¤Ï¥Ó¥Ã¥È¥Þ¥Ã¥×¤È¤·¤ÆÊݸ¤µ¤ì¤Æ¤¤¤Æ¡¢¤½¤ì¤é¤¬¤ï¤º¤«¤Ë¥¹¥Ú¡¼¥¹¤ò»È¤¤¤Þ¤¹¡£
-
-4.7) ÄêµÁ¤µ¤ì¤¿¥Æ¡¼¥Ö¥ë¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¡¢¤ª¤è¤Ó¡¢¥æ¡¼¥¶¤ò¤É¤Î¤è¤¦¤Ë
-¤·¤Æ¸«¤Ä¤±½Ð¤·¤Þ¤¹¤«¡©
-
-psql ¤Ë¤Ï¤¤¤í¤¤¤í¤Ê¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¡¦¥³¥Þ¥ó¥É¤¬¤¢¤ê¡¢¤³¤¦¤·¤¿¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£
-¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¡¦¥³¥Þ¥ó¥É¤Î¼ïÎà¤ò¸«¤ë¤Ë¤Ï \? ¤ò»È¤Ã¤Æ²¼¤µ¤¤¡£¤Þ¤¿¡¢pg_ ¤Ç»Ï¤Þ
-¤ë¥·¥¹¥Æ¥à¥Æ¡¼¥Ö¥ë¤Ë¤âµ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤µ¤é¤Ë¡¢psql -l ¤Ï¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹
-¤ò¥ê¥¹¥Èɽ¼¨¤·¤Þ¤¹¡£
-
-¤Þ¤¿¡¢pgsql/src/tutorial/syscat.source ¥Õ¥¡¥¤¥ë¤òÁö¤é¤»¤Æ¤ß¤Æ²¼¤µ¤¤¡£¤½¤ì¤Ï¡¢Âô
-»³¤Î SELECT Ê¸¤Ë¤è¤êɬÍפʾðÊó¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥à¡¦¥Æ¡¼¥Ö¥ë¤«¤é¼è¤ê½Ð¤·¤Æ
-Î㼨¤·¤Æ¤¯¤ì¤Þ¤¹¡£
-
-4.8) Ì䤤¹ç¤ï¤»¤¬ÃÙ¤¤¤¦¤¨¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤Ã¤Æ¤¤¤ëÍͻҤ¬¤¢¤ê¤Þ¤»¤ó¡£¤Ê¤¼¤Ç¤¹¤«
-¡©
-
-¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¼«Æ°Åª¤Ë¤¹¤Ù¤Æ¤ÎÌ䤤¹ç¤ï¤»¤Ç»È¤ï¤ì¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¥Æ¡¼¥Ö¥ë
-¤¬ºÇ¾®¥µ¥¤¥º¤è¤êÂ礭¤¯¡¢Ì䤤¹ç¤ï¤»¤Ç¤½¤Î¤ï¤º¤«¤Ê¥Ñ¡¼¥»¥ó¥Æ¡¼¥¸¤Î¥í¥¦¤òÁªÂò¤¹¤ë
-»þ¤À¤±¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï»È¤ï¤ì¤Þ¤¹¡£¤³¤ì¤Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¥¹¥­¥ã¥ó¤Ë¤è¤êµ¯¤³¤µ¤ì¤ë¥é
-¥ó¥À¥à¤Ê¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹¤Ï¡¢¥Æ¡¼¥Ö¥ë¤ò¥¹¥È¥ì¡¼¥È¤ËÆÉ¤à½ç¼¡Áöºº¤è¤ê¤âÃÙ¤¯¤Ê¤ë¤³
-¤È¤¬¤¢¤ë¤«¤é¤Ç¤¹¡£
-
-¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤¦¤«¤ò·èÄꤹ¤ë¤¿¤á¤Ë¡¢PostgreSQL ¤Ï¥Æ¡¼¥Ö¥ë¤Ë¤Ä¤¤¤Æ¤ÎÅý·×¾ðÊó¤ò
-»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ÎÅý·×¾ðÊó¤Ï¡¢VACUUM ANALYZE¤Þ¤¿¤Ï¡¢Ã±¤Ë ANALYZE ¤ò»È
-¤Ã¤Æ¼ý½¸¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£Åý·×¾ðÊó¤ò»È¤Ã¤Æ¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤Ï¥Æ¡¼¥Ö¥ë¤ÎÃæ¤Ë¤¢¤ë
-¥í¥¦¿ô¤òÃΤꡢ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤¦¤Ù¤­¤«¤Î·èÄê¤ò¤è¤êÀµ¤·¤¯¤Ç¤­¤Þ¤¹¡£Åý·×¾ðÊó¤ÏºÇ
-Ŭ¤Ê·ë¹ç½ç¤ä·ë¹çÊýË¡¤ò·è¤á¤ë¾å¤Ç¤âµ®½Å¤Ê¤â¤Î¤â¤¢¤ê¤Þ¤¹¡£Åý·×¾ðÊó¤Î¼ý½¸¤Ï¡¢¥Æ¡¼
-¥Ö¥ë¤ÎÆâÍÆ¤¬¤«¤ï¤ë¤ÈËè¤Ë·«ÊÖ¤·¤Ê¤µ¤ì¤ë¤Ù¤­¤Ç¤¹¡£
-
-¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢Ä̾ï ORDER BY ¤ä·ë¹ç¤ò¹Ô¤Ê¤¦¤¿¤á¤Ë¤Ï»È¤ï¤ì¤Þ¤»¤ó¡£½ç¼¡¥¹¥­¥ã¥ó
-¤Ë³¤¯ÌÀ¼¨Åª¥½¡¼¥È¤Ï¡¢µðÂç¤Ê¥Æ¡¼¥Ö¥ë¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¥¹¥­¥ã¥ó¤è¤ê¤âÉáÄ̤Ϲ⮤Ǥ¹
-¡£
 
-¤·¤«¤·¡¢ORDER BY¤ÈÁȤ߹ç¤ï¤µ¤ì¤¿LIMIT ¤Ï¡¢¥Æ¡¼¥Ö¥ë¤Î¾®¤µ¤ÊÉôʬ¤òÊÖ¤¹¤¿¤á¤Ë¤¿¤Ó
-¤¿¤Ó¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤¦¤Ç¤·¤ç¤¦¡£¼ÂºÝ¡¢MAX() ¤ä MIN() ¤¬¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤ï¤Ê¤¤¤È
-¤·¤Æ¤â¡¢¤³¤Î¤è¤¦¤ÊÃͤò ORDER BY ¤È LIMIT ¤ò»È¤Ã¤Æ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤Ã¤Æ¼è¤ê½Ð¤¹¤³
-¤È¤¬²Äǽ¤Ç¤¹:
+  735 database pages * 8192 bytes per page  =  6,021,120 bytes (6 MB)
 
+   ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢¤³¤ì¤Û¤É¤Î¥ª¡¼¥Ð¥Ø¥Ã¥É¤ÏÍ׵ᤷ¤Þ¤»¤ó¤¬¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹ÉÕ
+   ¤±¤µ¤ì¤ë¥Ç¡¼¥¿¤ò´Þ¤à°Ê¾å¡¢¤½¤ì¤Ê¤ê¤ËÂ礤¯¤Ê¤ê¤Þ¤¹¡£
+   
+   NULL¤Ï¥Ó¥Ã¥È¥Þ¥Ã¥×¤È¤·¤ÆÊݸ¤µ¤ì¤Æ¤¤¤Æ¡¢¤½¤ì¤é¤¬¤ï¤º¤«¤Ë¥¹¥Ú¡¼¥¹¤ò»È¤¤
+   ¤Þ¤¹¡£
+   
+    4.7)
+    ÄêµÁ¤µ¤ì¤¿¥Æ¡¼¥Ö¥ë¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¡¢¤ª¤è¤Ó¡¢¥æ¡¼¥¶¤ò¤É¤Î¤è¤¦¤Ë¤
+    ·¤Æ¸«¤Ä¤±½Ð¤·¤Þ¤¹¤«¡©
+    
+   psql
+   ¤Ë¤Ï¤¤¤í¤¤¤í¤Ê¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¡¦¥³¥Þ¥ó¥É¤¬¤¢¤ê¡¢¤³¤¦¤·¤¿¾ðÊó¤òɽ¼¨¤·¤Þ
+   ¤¹¡£¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¡¦¥³¥Þ¥ó¥É¤Î¼ïÎà¤ò¸«¤ë¤Ë¤Ï \?
+   ¤ò»È¤Ã¤Æ²¼¤µ¤¤¡£¤Þ¤¿¡¢pg_ ¤Ç»Ï¤Þ¤ë¥·¥¹¥Æ¥à¥Æ¡¼¥Ö¥ë¤Ë¤âµ­
+   ½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤µ¤é¤Ë¡¢psql -l
+   ¤Ï¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥ê¥¹¥Èɽ¼¨¤·¤Þ¤¹¡£
+   
+   ¤Þ¤¿¡¢pgsql/src/tutorial/syscat.source
+   ¥Õ¥¡¥¤¥ë¤òÁö¤é¤»¤Æ¤ß¤Æ²¼¤µ¤¤¡£¤½¤ì¤Ï¡¢Âô»³¤Î SELECT
+   Ê¸¤Ë¤è¤êɬÍפʾðÊó¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥à¡¦¥Æ¡¼¥Ö¥ë¤«¤é¼è¤ê½Ð¤·¤ÆÎ㼨
+   ¤·¤Æ¤¯¤ì¤Þ¤¹¡£
+   
+    4.8)
+    Ì䤤¹ç¤ï¤»¤¬ÃÙ¤¤¤¦¤¨¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤Ã¤Æ¤¤¤ëÍͻҤ¬¤¢¤ê¤Þ¤»¤ó¡£¤Ê¤¼¤Ç¤¹¤«¡
+    ©
+    
+   ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¼«Æ°Åª¤Ë¤¹¤Ù¤Æ¤ÎÌ䤤¹ç¤ï¤»¤Ç»È¤ï¤ì¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
+   ¥Æ¡¼ ¥Ö¥ë¤¬ºÇ¾®¥µ¥¤¥º¤è¤êÂ礭
+   ¤¯¡¢Ì䤤¹ç¤ï¤»¤Ç¤½¤Î¤ï¤º¤«¤Ê¥Ñ¡¼¥»¥ó¥Æ¡¼¥¸¤Î¥í¥¦¤ò
+   ÁªÂò¤¹¤ë»þ¤À¤±¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï»È¤ï¤ì¤Þ¤¹¡£¤³¤ì¤Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¥¹¥­
+   ¥ã¥ó¤Ë¤è
+   ¤êµ¯¤³¤µ¤ì¤ë¥é¥ó¥À¥à¤Ê¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹¤Ï¡¢¥Æ¡¼¥Ö¥ë¤ò¥¹¥È¥ì¡¼¥È¤ËÆÉ¤à½ç
+   ¼¡ Áöºº¤è¤ê¤âÃÙ¤¯¤Ê¤ë¤³¤È¤¬¤¢¤ë¤«¤é¤Ç¤¹¡£
+   
+   ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤¦¤«¤ò·èÄꤹ¤ë¤¿¤á¤Ë¡¢PostgreSQL ¤Ï¥Æ¡¼¥Ö¥ë¤Ë¤Ä¤¤
+   ¤Æ¤ÎÅý·×¾ðÊó¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ÎÅý·×¾ðÊó¤Ï¡¢VACUUM
+   ANALYZE¤Þ¤¿¤Ï¡¢Ã±¤Ë ANALYZE ¤ò»È¤Ã¤Æ¼ý½¸¤¹¤ë¤³¤È ¤¬¤Ç¤­
+   ¤Þ¤¹¡£Åý·×¾ðÊó¤ò»È¤Ã¤Æ¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤Ï¥Æ¡¼¥Ö¥ë¤ÎÃæ¤Ë¤¢¤ë¥í¥¦¿ô¤òÃÎ
+   ¤ê¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤¦¤Ù¤¤«¤Î·èÄê¤ò¤è¤êÀµ¤·¤¯¤Ç¤¤Þ¤¹¡£Åý·×¾ðÊó¤ÏºÇŬ
+   ¤Ê·ë¹ç½ç¤ä·ë¹çÊýË¡¤ò·è¤á¤ë¾å¤Ç¤âµ®½Å¤Ê¤â¤Î¤â¤¢¤ê¤Þ¤¹¡£Åý·×¾ðÊó¤Î¼ý½¸¤Ï
+   ¡¢ ¥Æ¡¼¥Ö¥ë¤ÎÆâÍÆ¤¬¤«¤ï¤ë¤ÈËè¤Ë·«ÊÖ¤·¤Ê¤µ¤ì¤ë¤Ù¤¤Ç¤¹¡£
+   
+   ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢Ä̾ï ORDER BY ¤ä·ë¹ç¤ò¹Ô¤Ê
+   ¤¦¤¿¤á¤Ë¤Ï»È¤ï¤ì¤Þ¤»¤ó¡£½ç¼¡¥¹¥­
+   ¥ã¥ó¤Ë³¤¯ÌÀ¼¨Åª¥½¡¼¥È¤Ï¡¢µðÂç¤Ê¥Æ¡¼¥Ö¥ë ¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¥¹¥­
+   ¥ã¥ó¤è¤ê¤âÉáÄ̤Ϲ⮤Ǥ¹¡£
+   
+   ¤·¤«¤·¡¢ORDER BY¤ÈÁȤ߹ç¤ï¤µ¤ì¤¿LIMIT
+   ¤Ï¡¢¥Æ¡¼¥Ö¥ë¤Î¾®¤µ¤ÊÉôʬ¤òÊÖ¤¹¤¿¤á¤Ë¤¿¤Ó¤¿¤Ó¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤¦¤Ç¤·¤ç¤¦
+   ¡£ ¼ÂºÝ¡¢MAX() ¤ä MIN()
+   ¤¬¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤ï¤Ê¤¤¤È¤·¤Æ¤â¡¢¤³¤Î¤è¤¦¤ÊÃͤò ORDER BY ¤È LIMIT
+   ¤ò»È¤Ã¤Æ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤Ã¤Æ¼è¤ê½Ð¤¹¤³¤È¤¬²Äǽ¤Ç¤¹:
     SELECT col
     FROM tab
     ORDER BY col [ DESC ]
     LIMIT 1;
 
-¤â¤·¡¢¥ª¥×¥Æ¥£¥Þ¥¤¥¶¤¬´Ö°ã¤Ã¤Æ¥·¡¼¥±¥ó¥·¥ã¥ë¥¹¥­¥ã¥ó¤òÁªÂò¤·¤¿¤³¤È¤Ëµ¿¤¤¤¬¤Ê¤±
-¤ì¤Ð¡¢SET enable_seqscan TO 'off'¤ò»È¤Ã¤Æ¥¤¥ó¥Ç¥Ã¥¯¥¹¥¹¥­¥ã¥ó¤Ç¤Þ¤Á¤¬¤¤¤Ê¤¯Â®¤¯
-¤Ê¤Ã¤Æ¤¤¤ë¤«¤ò¥Æ¥¹¥È¤ò¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
-
-LIKE ¤¢¤ë¤¤¤Ï ~ ¤Î¤è¤¦¤Ê¥ï¥¤¥ë¥É¥«¡¼¥É±é»»»Ò¤ÏÆÃÊ̤ʴĶ­¤Ç¤·¤«»È¤¨¤Þ¤»¤ó¡§
-
- ¡¦ ¸¡º÷ʸ»úÎó¤¬Ê¸»úÎó¤ÎºÇ½é¤Ë¤­¤­¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡§
-     ¢¢ LIKE ¥Ñ¥¿¡¼¥ó¤¬%¤Ç»Ï¤Þ¤é¤Ê¤¤
-     ¢¢ ~ (Àµµ¬É½¸½) ¥Ñ¥¿¡¼¥ó¤Ï^¤Ç»Ï¤Þ¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤
- ¡¦ ¸¡º÷ʸ»úÎó¤òʸ»ú¥¯¥é¥¹¤«¤é»Ï¤á¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£¤¿¤È¤¨¤Ð¡¢[a-e]¡£
- ¡¦ ILIKE ¤ä ~* ¤Î¤è¤¦¤ÊÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤¸¡º÷¤Ï»È¤¨¤Þ¤»¤ó¡£¤½¤Î¤«¤ï¤ê
-    ¡¢¤³¤ÎFAQ¤Î4.12Àá¤ÇÀâÌÀ¤¹¤ë´Ø¿ô¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬»È¤¨¤Þ¤¹¡£
- ¡¦ initdb ¤Ë¤ª¤¤¤Æ¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤ÇC¥í¥±¡¼¥ë¤¬»È¤ï¤ì¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤½¤ÎÍý
-    Í³¤Ï¡¢C¥í¥±¡¼¥ë°Ê³°¤Ç¤Ï¼¡¤ËÂ礭¤Êʸ»ú¤òÃΤ뤳¤È¤¬¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¹¡£¤³¤Î¤è¤¦
-    ¤Ê¾ì¹ç¡¢
+   ¤â¤·¡¢¥ª¥×¥Æ¥£¥Þ¥¤¥¶¤¬´Ö°ã¤Ã¤Æ¥·¡¼¥±¥ó¥·¥ã¥ë¥¹¥­
+   ¥ã¥ó¤òÁªÂò¤·¤¿¤³¤È¤Ëµ¿¤¤¤¬¤Ê¤±¤ì¤Ð¡¢SET enable_seqscan TO
+   'off'¤ò»È¤Ã¤Æ¥¤¥ó¥Ç¥Ã¥¯¥¹¥¹¥­
+   ¥ã¥ó¤Ç¤Þ¤Á¤¬¤¤¤Ê¤¯Â®¤¯¤Ê¤Ã¤Æ¤¤¤ë¤«¤ò¥Æ¥¹¥È¤ò¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
    
-    LIKE
-    
-    ¥¤¥ó¥Ç¥¯¥·¥ó¥°¤Ë¤À¤±Æ¯¤¯¤è¤¦¤Ê¡¢ÆÃÊ̤Ê
+   LIKE ¤¢¤ë¤¤¤Ï ~ ¤Î¤è¤¦¤Ê¥ï¥¤¥ë¥É¥«¡¼¥É±é»» »Ò¤ÏÆÃÊ̤ʴĶ­
+   ¤Ç¤·¤«»È¤¨¤Þ¤»¤ó¡§
+     * ¸¡º÷ʸ»úÎó¤¬Ê¸»úÎó¤ÎºÇ½é¤Ë¤¤¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡§
+          + LIKE ¥Ñ¥¿¡¼¥ó¤¬%¤Ç»Ï¤Þ¤é¤Ê¤¤
+          + ~ (Àµµ¬É½¸½) ¥Ñ¥¿¡¼¥ó¤Ï^¤Ç»Ï¤Þ¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤
+     * ¸¡º÷ʸ»úÎó¤òʸ»ú¥¯¥é¥¹¤«¤é»Ï¤á¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£¤¿¤È¤¨¤Ð¡¢[a-e]¡£
+     * ILIKE ¤ä ~* ¤Î¤è¤¦¤ÊÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·
+       ¤Ê¤¤¸¡º÷¤Ï»È¤¨¤Þ¤»¤ó¡£¤½¤Î¤«¤ï¤ê¡¢¤³¤ÎFAQ¤Î4.12Àá¤ÇÀâÌÀ¤¹¤ë´Ø¿ô¤Î¥
+       ¤¥ó¥Ç¥Ã¥¯¥¹¤¬»È¤¨¤Þ¤¹¡£
+     * initdb ¤Ë¤ª¤¤¤Æ¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤ÇC¥í¥±¡¼¥ë¤¬»È¤ï¤ì¤Ê
+       ¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤½¤ÎÍýͳ¤Ï¡¢C¥í¥±¡¼¥ë°Ê³°¤Ç¤Ï¼¡¤ËÂ礭
+       ¤Êʸ»ú¤òÃΤ뤳¤È ¤¬¤Ç¤­
+       ¤Ê¤¤¤«¤é¤Ç¤¹¡£¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢LIKE¥¤¥ó¥Ç¥¯¥·¥ó¥°¤Ë¤À¤±
+       Æ¯¤¯¤è¤¦¤Ê¡¢ÆÃÊ̤Êtext_pattern_ops¥¤¥ó¥Ç¥Ã¥¯¥¹¤òºîÀ®
+       ¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
+       
+   8.0¤è¤êÁ°¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢¥Ç¡¼¥¿·¿¤¬¤Á¤ç¤¦¤É¥¤¥ó¥Ç¥Ã¥¯¥
+   ¹¤Î¥«¥é¥à¤Î·¿¤È°ìÃפ·¤Ê¤±¤ì¤Ð¡¢»È¤¨¤Ê¤¤¤³¤È¤¬¤·¤Ð¤·¤Ð¤¢¤ê¤Þ¤·¤¿¡£¤ª¤½¤
+   é¤¯¡¢int2, int8, ¤ª¤è¤Ó numeric Åù¤Î¥«¥é¥à¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤½¤¦¤Ç¤¹¡£
+   [ÌõÃí¡§ ¶¯À©Åª¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤¦¤Ë¤Ï SET enable_seqscan = off
+   ¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ]
    
-    text_pattern_ops
+    4.9)
+    Ì䤤¹ç¤ï¤»¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤¬¤É¤Î¤è¤¦¤ËÌ䤤¹ç¤ï¤»¤òɾ²Á¤¹¤ë¤Î¤«¤ò¸«¤ë¤Ë¤Ï¤É¤¦¤
+    ·¤Þ¤¹¤«¡©
     
-    ¥¤¥ó¥Ç¥Ã¥¯¥¹¤òºîÀ®¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£
-
-8.0¤è¤êÁ°¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢¥Ç¡¼¥¿·¿¤¬¤Á¤ç¤¦¤É¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î¥«¥é¥à
-¤Î·¿¤È°ìÃפ·¤Ê¤±¤ì¤Ð¡¢»È¤¨¤Ê¤¤¤³¤È¤¬¤·¤Ð¤·¤Ð¤¢¤ê¤Þ¤·¤¿¡£¤ª¤½¤é¤¯¡¢int2, int8,
-¤ª¤è¤Ó numeric Åù¤Î¥«¥é¥à¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤½¤¦¤Ç¤¹¡£
-
-[ÌõÃí¡§¶¯À©Åª¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤¦¤Ë¤Ï SET enable_seqscan = off ¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ]
-
-4.9) Ì䤤¹ç¤ï¤»¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤¬¤É¤Î¤è¤¦¤ËÌ䤤¹ç¤ï¤»¤òɾ²Á¤¹¤ë¤Î¤«¤ò¸«¤ë¤Ë¤Ï¤É¤¦
-¤·¤Þ¤¹¤«¡©
-
-¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç EXPLAIN ¤ò¸«¤Æ²¼¤µ¤¤¡£
-
-4.10) R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¤Ï²¿¤Ç¤¹¤«¡©
-
-R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¶õ´ÖŪ¤Ê¥Ç¡¼¥¿¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÉÕ¤±¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£¥Ï¥Ã
-¥·¥å¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤ÏÈϰϤθ¡º÷¤¬¤Ç¤­¤Þ¤»¤ó¡£¤Þ¤¿¡¢B-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤Ï¡¢£±¼¡
-¸µ¤Ç¤·¤«ÈϰϤθ¡º÷¤¬¤Ç¤­¤Þ¤»¤ó¡£R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ì¤Ð¿¼¡¸µ¤Î¥Ç¡¼¥¿¤ò°·¤¨
-¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¤â¤· R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò point ·¿¤Î°À­¤ËÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¤È
-¤¹¤ë¤È¥·¥¹¥Æ¥à¤Ï¡¢¡ÖĹÊý·Á¤Ë°Ï¤Þ¤ì¤¿ÅÀ¤ò¤¹¤Ù¤ÆÁªÂò¤¹¤ë¡×¤È¤¤¤¦¤è¤¦¤ÊÌ䤤¹ç¤ï¤»
-¤Ë¡¢¤è¤ê¸úΨÎɤ¯Åú¤¨¤é¤ì¤Þ¤¹¡£
-
-R-Tree ¤ÎÀ߷פθ¶Åµ¤È¤Ê¤ë¸¢°Ò¤¢¤ëÏÀʸ¤Ï:
-
-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.
-
-¤³¤ÎÏÀʸ¤Ï¡¢Stonebraker ¶µ¼ø¤Î "Readings in Database Systems" ¤Ç¤â¼è¤ê¾å¤²¤é¤ì
-¤Æ¤¤¤Þ¤¹¡£
-
+   ¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç EXPLAIN ¤ò¸«¤Æ²¼¤µ¤¤¡£
+   
+  4.10) R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¤Ï²¿¤Ç¤¹¤«¡©
+  
+   R-tree
+   ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¶õ´ÖŪ¤Ê¥Ç¡¼¥¿¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÉÕ¤±¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£¥Ï
+   ¥Ã¥·¥å¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤ÏÈϰϤθ¡º÷¤¬¤Ç¤¤Þ¤»¤ó¡£¤Þ¤¿¡¢B-tree
+   ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤Ï¡¢£±¼¡¸µ¤Ç¤·¤«ÈϰϤθ¡º÷¤¬¤Ç¤¤Þ¤»¤ó¡£R-tree
+   ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ì¤Ð¿¼¡¸µ¤Î¥Ç¡¼¥¿¤ò°·¤¨¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¤â¤· R-tree
+   ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò point ·¿¤Î°À¤ËÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­
+   ¤ë¤È¤¹¤ë¤È¥·¥¹¥Æ¥à¤Ï¡¢¡ÖĹÊý·Á¤Ë°Ï¤Þ¤ì¤¿ÅÀ¤ò¤¹¤Ù¤ÆÁªÂò¤¹¤ë¡×¤È¤¤¤¦¤è¤¦
+   ¤ÊÌ䤤¹ç¤ï¤»¤Ë¡¢¤è¤ê¸úΨÎɤ¯Åú¤¨¤é¤ì¤Þ¤¹¡£
+   
+   R-Tree ¤ÎÀ߷פθ¶Åµ¤È¤Ê¤ë¸¢°Ò¤¢¤ëÏÀʸ¤Ï:
+   
+   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.
+   
+   ¤³¤ÎÏÀʸ¤Ï¡¢Stonebraker ¶µ¼ø¤Î "Readings in Database Systems"
+   ¤Ç¤â¼è¤ê¾å¤²¤é¤ì¤Æ¤¤¤Þ¤¹¡£
     [ÌõÃí¡§
-          ÆàÎÉÀèüÂç¤ÎÀÐÀî²Â¼£¤µ¤ó¤è¤êR-Tree´Ø·¸¤Îʸ¸¥¤ò¾Ò²ð¤·¤ÆÄº¤­¤Þ¤·¤¿¡£
-        ÆüËܸì Postgres ML ¤Î¥¢¡¼¥«¥¤¥Ö¤«¤é "Subject: [postgres95 801] spatial data structures" 
+          ÆàÎÉÀèüÂç¤ÎÀÐÀî²Â¼£¤µ¤ó¤è¤êR-Tree´Ø·¸¤Îʸ¸¥¤ò¾Ò²ð¤·¤ÆÄº¤¤Þ¤·¤¿¡£
+        ÆüËܸì Postgres ML ¤Î¥¢¡¼¥«¥¤¥Ö¤«¤é "Subject: [postgres95 801] spatialdata structures"
                 http://www.sra.co.jp/people/t-ishii/PostgreSQL/mhonarc/pgsql-jp/1996Oct/msg00007.html
         ¤ò¤´Í÷²¼¤µ¤¤¡£
     ]
 
-Áȹþ¤ß¤Î R-Tree ¤Ç¥Ý¥ê¥´¥ó¤ä¥Ü¥Ã¥¯¥¹¤òÁàºî¤Ç¤­¤Þ¤¹¡£ÍýÏÀŪ¤Ë¤ÏR-Tree ¤Ï¤â¤Ã¤È¹â
-¤¤¼¡¸µ¤òÁàºî¤¹¤ë¤è¤¦¤Ë¤â³ÈÄ¥¤Ç¤­¤Þ¤¹¡£¼Â¼ÁŪ¤Ë¤Ï¡¢R-Tree ¤Î³ÈÄ¥¤Ë¤Ï¤Á¤ç¤Ã¤È¤·¤¿
-ºî¶È¤¬É¬ÍפǤ·¤Æ¡¢¸½ºß¡¢²æ¡¹¤Ï¤½¤ì¤ò¤É¤Î¤è¤¦¤Ë¤¹¤ë¤«¤Ë¤Ä¤¤¤Æ¤Îʸ½ñ¤ò»ý¤Ã¤Æ¤¤¤Þ
-¤»¤ó¡£
-
+   Áȹþ¤ß¤Î R-Tree ¤Ç¥Ý¥ê¥´¥ó¤ä¥Ü¥Ã¥¯¥¹¤òÁàºî¤Ç¤¤Þ¤¹¡£ÍýÏÀŪ¤Ë¤ÏR-Tree
+   ¤Ï¤â¤Ã¤È¹â¤¤¼¡¸µ¤òÁàºî¤¹¤ë¤è¤¦¤Ë¤â³ÈÄ¥¤Ç¤¤Þ¤¹¡£¼Â¼ÁŪ¤Ë¤Ï¡¢R-Tree
+   ¤Î³ÈÄ¥¤Ë¤Ï¤Á¤ç¤Ã¤È¤·¤¿ºî¶È¤¬É¬ÍפǤ·¤Æ¡¢¸½ºß¡¢²æ¡¹¤Ï¤½¤ì¤ò¤É¤Î¤è¤¦¤Ë¤¹
+   ¤ë¤«¤Ë¤Ä¤¤¤Æ¤Îʸ½ñ¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£
     [ÌõÃí¡§
         R-Tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÏGiST¤Ç³«È¯¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
         http://www.sai.msu.su/~megera/postgres/gist/
     ]
 
-4.11) °äÅÁŪÌ䤤¹ç¤ï¤»ºÇŬ²½¤È¤Ï²¿¤Ç¤¹¤«¡©
-
-GEQO ¥â¥¸¥å¡¼¥ë¤Ï¡¢Âô»³¤Î¥Æ¡¼¥Ö¥ë¤ò·ë¹ç¤¹¤ë¤È¤­¤Ë¡¢°äÅÁŪ¥¢¥ë¥´¥ê¥º¥à(GA)¤ÇÌä¹ç
-¤ï¤»¤ò¹â®²½¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢¤·¤é¤ß¤Ä¤Ö¤·¤Ëõº÷¤ò¹Ô¤Ê¤ï¤Ê¤¯¤Æ¤â¡¢Â礭¤Ê·ë¹ç
-(join queries)¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
-
-4.12) Àµµ¬É½¸½¤Ç¤Î¸¡º÷¤äÂçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤Àµµ¬É½¸½¸¡º÷¤Ï¤É¤Î¤è¤¦¤Ë¼Â
-¸½¤·¤Þ¤¹¤«¡©Âçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤¸¡º÷¤Î¤¿¤á¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¤É¤Î¤è¤¦¤Ë»È
-¤¤¤Þ¤¹¤«¡©
-
-~±é»»»Ò¤ÏÀµµ¬É½¸½¾È¹ç¤ò¹Ô¤Ê¤¤¡¢~* ¤ÏÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤
-(case-insensitive)Àµµ¬É½¸½¾È¹ç¤ò¹Ô¤¤¤Þ¤¹¡£Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤ LIKE ±é»»
-»Ò¤ò ILIKE ¤È¤¤¤¤¤Þ¤¹¡£
-
-Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤ÅùÃÍÈæ³Ó¤Ï¼¡¤Î¤è¤¦¤Ëɽ¸½¤Ç¤­¤ë¡§
-
+    4.11) °äÅÁŪÌ䤤¹ç¤ï¤»ºÇŬ²½¤È¤Ï²¿¤Ç¤¹¤«¡©
+    
+   GEQO ¥â¥¸¥å¡¼¥ë¤Ï¡¢Âô»³¤Î¥Æ¡¼¥Ö¥ë¤ò·ë¹ç¤¹¤ë¤È¤­
+   ¤Ë¡¢°äÅÁŪ¥¢¥ë¥´¥ê¥º¥à(GA)¤ÇÌä¹ç¤ï¤»¤ò¹â®²½¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢¤·¤é¤ß
+   ¤Ä¤Ö¤·¤Ëõº÷¤ò¹Ô¤Ê¤ï¤Ê¤¯¤Æ¤â¡¢Â礤ʷë¹ç(join queries)¤ò°·¤¦¤³¤È¤¬¤Ç¤­
+   ¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
+   
+    4.12)
+    Àµµ¬É½¸½¤Ç¤Î¸¡º÷¤äÂçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤Àµµ¬É½¸½¸¡º÷¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤
+    ·¤Þ¤¹¤«¡©Âçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤¸¡º÷¤Î¤¿¤á¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¤É¤Î¤è¤¦¤Ë»È
+    ¤¤¤Þ¤¹¤«¡©
+    
+   ~±é»»»Ò¤ÏÀµµ¬É½¸½¾È¹ç¤ò¹Ô¤Ê¤¤¡¢~*
+   ¤ÏÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤(case-insensitive)Àµµ¬É½¸½¾È¹ç¤ò¹Ô¤¤¤Þ¤¹¡£
+   Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤ LIKE ±é»»»Ò¤ò ILIKE ¤È¤¤¤¤¤Þ¤¹¡£
+   
+   Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤ÅùÃÍÈæ³Ó¤Ï¼¡¤Î¤è¤¦¤Ëɽ¸½¤Ç¤¤ë¡§
     SELECT *
     FROM tab
     WHERE lower(col) = 'abc';
 
-ɸ½à¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤Ï»È¤ï¤ì¤º¡¢¤·¤«¤·¤Ê¤¬¤é¡¢¤â¤·´Ø¿ô¥¤¥ó¥Ç¥Ã¥¯¥¹¤òºî¤Ã¤¿¤Ê¤é¤½
-¤ì¤¬»È¤ï¤ì¤ë¤Ç¤·¤ç¤¦¡£
-
+   É¸½à¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤Ï»È¤ï¤ì¤º¡¢¤·¤«¤·¤Ê¤¬¤é¡¢¤â¤·´Ø¿ô¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò
+   ºî¤Ã¤¿¤Ê¤é¤½¤ì¤¬»È¤ï¤ì¤ë¤Ç¤·¤ç¤¦¡£
    CREATE INDEX tabindex ON tab (lower(col));
-   
-
-4.13) Ì䤤¹ç¤ï¤»¤ÎÃæ¤Ç¡¢¥Õ¥£¡¼¥ë¥É¤¬ NULL ¤Ç¤¢¤ë¤³¤È¤ò¸¡½Ð¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«
-¡©
-
-¥«¥é¥à¤ò IS NULL ¤È IS NOT NULL ¤È¤Ç»î¤·¤Æ¤ß¤Þ¤¹¡£
 
-4.14) ÍÍ¡¹¤Êʸ»ú·¿¤Î¤½¤ì¤¾¤ì¤Î°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
 
+    4.13) Ì䤤¹ç¤ï¤»¤ÎÃæ¤Ç¡¢¥Õ¥£¡¼¥ë¥É¤¬ NULL
+    ¤Ç¤¢¤ë¤³¤È¤ò¸¡½Ð¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+    
+   ¥«¥é¥à¤ò IS NULL ¤È IS NOT NULL ¤È¤Ç»î¤·¤Æ¤ß¤Þ¤¹¡£
+   
+    4.14) ÍÍ¡¹¤Êʸ»ú·¿¤Î¤½¤ì¤¾¤ì¤Î°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
+    
 Type            Internal Name   Notes
 --------------------------------------------------
 VARCHAR(n)      varchar         ºÇÂçĹ¤Î¥µ¥¤¥º¤ò»ØÄꤹ¤ë¡¢µÍ¤áʪ̵¤·
 CHAR(n)         bpchar          »ØÄꤵ¤ì¤¿¸ÇÄêĹ¤È¤Ê¤ë¤è¤¦¤Ë¶õÇò¤¬µÍ¤á¤é¤ì¤ë
-TEXT            text            Ä¹¤µ¤Ë¾å¸Â¤Î̵¤¤¥Æ¥­¥¹¥È
+TEXT            text            Ä¹¤µ¤Ë¾å¸Â¤Î̵¤¤¥Æ¥¥¹¥È
 BYTEA           bytea           ²ÄÊÑĹ¤Î¥Ð¥¤¥ÈÇÛÎó(null-byte safe)
 "char"          char            £±Ê¸»ú
 
-ÆâÉô̾¤Ë¤ªÌܤˤ«¤«¤ë¤Î¤Ï¡¢¥·¥¹¥Æ¥à¡¦¥«¥¿¥í¥°¤òÄ´¤Ù¤ë¤È¤­¤ä¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò
-¼õ¤±¼è¤ë¤È¤­¤Ç¤¹¡£
-
-¾åµ­¤Î·¿¤Î¤¦¤ÁºÇ½é¤Î£´¤Ä¤Î·¿¤Ï "varlena" ·¿¤Ç¤¹(¤¹¤Ê¤ï¤Á¡¢¥Ç¥£¥¹¥¯¤ÎºÇ½é¤Î£´¥Ð
-¥¤¥È¤¬¥Ç¡¼¥¿Ä¹¤Ç¡¢¤½¤ì¤Î¸å¤Ë¼ÂºÝ¤Î¥Ç¡¼¥¿¤¬Â³¤­¤Þ¤¹)¡£¤³¤Î¤è¤¦¤Ë¼ÂºÝ¤Î¶õ´Ö¤ÏÀë¸À
-¤µ¤ì¤¿Â礭¤µ¤è¤ê¤â¾¯¤·Â礭¤¯¤Ê¤ê¤Þ¤¹¡£¤·¤«¤·¡¢¤³¤ì¤é¤Î¥Ç¡¼¥¿·¿¤ÏTOAST¤Ë¤è¤ê°µ½Ì
-¤µ¤ì¤¿¤êÊ£¿ô¥í¥¦¤ËÅϤäÆÊݸ¤µ¤ì¤¿¤ê¤·¤Æ¡¢¥Ç¥£¥¹¥¯¾å¤Î¶õ´Ö¤Ï»×¤Ã¤¿¤è¤ê¾®¤µ¤¯¤Ê
-¤ê¤Þ¤¹¡£
-
-VARCHAR(n) ¤Ï²ÄÊÑŤÎʸ»úÎó¤òÊݸ¤¹¤ë¤Î¤ËºÇŬ¤Ç¤¹¤¬¡¢Êݸ¤Ç¤­¤ëʸ»úÎó¤ÎŤµ¤ËÀ©
-¸Â¤¬¤¢¤ê¤Þ¤¹¡£TEXT ¤ÏŤµ¤ËÀ©¸Â¤Î̵¤¤Ê¸»úÎó¤ÎÊݸ¤Î¤¿¤á¤Î¤â¤Î¤Ç¡¢ºÇÂç¤Ç 1¥®¥¬¥Ð
-¥¤¥È¤Ç¤¹¡£ CHAR(n)¤Ï¡¢VARCHAR(n)¤¬Í¿¤¨¤é¤ì¤¿Ê¸»ú¤À¤±¤òÊݸ¤¹¤ë¤Î¤ËÂФ·¡¢¥Ö¥é¥ó
-¥¯¤òµÍ¤á¹þ¤ó¤Ç¤¤¤Ä¤âƱ¤¸Ä¹¤µ¤Çʸ»úÎó¤òÊݸ¤¹¤ë¤Î¤ËºÇŬ¤Ç¤¹¡£BYTEA¤Ï¡¢ÉôʬŪ¤Ë
-NULL ¤Î¥Ð¥¤¥È¤ò´Þ¤à¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿¤òÊݸ¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£¤³¤ì¤é¤Î¥¿¥¤¥×¤ÏƱ¤¸
-¤¯¤é¤¤¤ÎÀ­Ç½ÆÃÀ­¤ò¤â¤Á¤Þ¤¹¡£
-
-4.15.1) ÄÌÈÖ(serial)¡¿¼«Æ°Áýʬ¥Õ¥£¡¼¥ë¥É¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
-
-PostgreSQL ¤Ï SERIAL ¥Ç¡¼¥¿·¿¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¥«¥é¥à¾å¤Ë¥·¡¼¥±¥ó¥¹¤ò¼«Æ°ºîÀ®¤·
-¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢
-
-        CREATE TABLE person ( 
-                id   SERIAL, 
-                name TEXT 
+   ÆâÉô̾¤Ë¤ªÌܤˤ«¤«¤ë¤Î¤Ï¡¢¥·¥¹¥Æ¥à¡¦¥«¥¿¥í¥°¤òÄ´¤Ù¤ë¤È¤­
+   ¤ä¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¼è¤ë¤È¤¤Ç¤¹¡£
+   
+   ¾åµ¤Î·¿¤Î¤¦¤ÁºÇ½é¤Î£´¤Ä¤Î·¿¤Ï "varlena"
+   ·¿¤Ç¤¹(¤¹¤Ê¤ï¤Á¡¢¥Ç¥£¥¹¥¯¤ÎºÇ½é¤Î£´¥Ð¥¤¥È¤¬¥Ç¡¼¥¿Ä¹¤Ç¡¢¤½¤ì¤Î¸å¤Ë¼ÂºÝ¤
+   Î¥Ç¡¼¥¿¤¬Â³¤¤Þ¤¹)¡£¤³¤Î¤è¤¦¤Ë¼ÂºÝ¤Î¶õ´Ö¤ÏÀë¸À¤µ¤ì¤¿Â礤µ¤è¤ê¤â¾¯¤·Â礭
+   ¤¯¤Ê¤ê¤Þ¤¹¡£¤·¤«¤·¡¢¤³¤ì¤é¤Î¥Ç¡¼¥¿·¿¤ÏTOAST¤Ë¤è¤ê°µ½Ì¤µ¤ì¤¿¤êÊ£¿ô¥í¥¦¤
+   ËÅϤäÆÊݸ¤µ¤ì¤¿¤ê¤·¤Æ¡¢¥Ç¥£¥¹¥¯¾å¤Î¶õ´Ö¤Ï»×¤Ã¤¿¤è¤ê¾®¤µ¤¯¤Ê¤ê¤Þ¤¹¡£
+   
+   VARCHAR(n) ¤Ï²ÄÊÑŤÎʸ»úÎó¤òÊݸ¤¹¤ë¤Î¤ËºÇŬ¤Ç¤¹¤¬¡¢Êݸ¤Ç¤­
+   ¤ëʸ»úÎó¤ÎŤµ¤ËÀ©¸Â¤¬¤¢¤ê¤Þ¤¹¡£TEXT
+   ¤ÏŤµ¤ËÀ©¸Â¤Î̵¤¤Ê¸»úÎó¤ÎÊݸ¤Î¤¿¤á¤Î¤â¤Î¤Ç¡¢ºÇÂç¤Ç 1¥®¥¬¥Ð¥¤¥È¤Ç¤¹¡£
+   CHAR(n)¤Ï¡¢VARCHAR(n)¤¬Í¿¤¨¤é¤ì¤¿Ê¸»ú¤À¤±¤òÊݸ¤¹¤ë¤Î¤ËÂФ·¡¢¥Ö¥é¥ó¥¯¤
+   òµÍ¤á¹þ¤ó¤Ç¤¤¤Ä¤âƱ¤¸Ä¹¤µ¤Çʸ»úÎó¤òÊݸ¤¹¤ë¤Î¤ËºÇŬ¤Ç¤¹¡£BYTEA¤Ï¡¢Éôʬ
+   Åª¤ËNULL
+   ¤Î¥Ð¥¤¥È¤ò´Þ¤à¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿¤òÊݸ¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£¤³¤ì¤é¤Î¥¿¥¤¥×¤Ï
+   Æ±¤¸¤¯¤é¤¤¤ÎÀǽÆÃÀ¤ò¤â¤Á¤Þ¤¹¡£
+   
+    4.15.1) ÄÌÈÖ(serial)¡¿¼«Æ°Áýʬ¥Õ¥£¡¼¥ë¥É¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
+    
+   PostgreSQL ¤Ï SERIAL
+   ¥Ç¡¼¥¿·¿¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¥«¥é¥à¾å¤Ë¥·¡¼¥±¥ó¥¹¤ò¼«Æ°ºîÀ®¤·¤Þ¤¹¡£¤¿¤È¤¨
+   ¤Ð¡¢
+        CREATE TABLE person (
+                id   SERIAL,
+                name TEXT
         );
 
-¤Ï¼«Æ°Åª¤Ë¼¡¤Î¤è¤¦¤ËËÝÌõ¤µ¤ì¤Þ¤¹:
-
+   ¤Ï¼«Æ°Åª¤Ë¼¡¤Î¤è¤¦¤ËËÝÌõ¤µ¤ì¤Þ¤¹:
         CREATE SEQUENCE person_id_seq;
-        CREATE TABLE person ( 
+        CREATE TABLE person (
                 id   INT4 NOT NULL DEFAULT nextval('person_id_seq'),
-                name TEXT 
+                name TEXT
         );
 
     [ÌõÃí¡§
@@ -1097,186 +1184,203 @@ PostgreSQL 
         ¤Ï¡¢ 7.3 ¤«¤é¤Ï¼«Æ°Åª¤Ë¤Ï¹Ô¤Ê¤ï¤ì¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¡£
     ]
 
-ÄÌÈ֤ˤĤ¤¤Æ¤Î¤â¤Ã¤È¾Ü¤·¤¤¾ðÊó¤Ï¡¢¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç create_sequence ¤ò¤´Í÷
-²¼¤µ¤¤¡£
-
-¤Þ¤¿¡¢³Æ¥í¥¦¤ÎOID¥Õ¥£¡¼¥ë¥É¤ò°ì°ÕÃͤȤ·¤Æ»È¤¦¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢¤â¤·
-¤â¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥À¥ó¥×¤·¤Æ¥ê¥í¡¼¥É¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¢OID¤ò²¹Â¸¤¹¤ë¤¿¤á¤Ë
-pg_dump ¤Ç -o¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤«¡¢¤Þ¤¿¤Ï¡¢COPY WITH OIDS¥ª¥×¥·¥ç¥ó¤ò»È¤¦É¬Íפ¬¤¢
-¤ê¤Þ¤¹¡£
-
-4.15.2) SERIAL¥Ç¡¼¥¿·¿¤ËÁÞÆþ¤µ¤ì¤ëÃͤϡ¢¤É¤¦¤¹¤ì¤ÐÆÀ¤é¤ì¤Þ¤¹¤«¡©
-
-¤Ò¤È¤Ä¤ÎÊýË¡¤Ï¡¢nextval() ´Ø¿ô¤ò»È¤Ã¤Æ¤½¤ÎÃͤòÁÞÆþ¤¹¤ëÁ°(before)¤Ë SEQUENCE ¥ª
-¥Ö¥¸¥§¥¯¥È¤«¤é¼¡¤Î SERIAL Ãͤò¼è¤ê½Ð¤·¡¢¤½¤ì¤«¤é¼ÂºÝ¤ËÁÞÆþ¤ò¤¹¤ë¤³¤È¤Ç¤¹¡£
-4.15.1 ¤Î¥Æ¡¼¥Ö¥ë¤ÎÎã¤ò»È¤¦¤È¤¹¤ë¤È¡¢µ¿»÷¸À¸ì¤Ç¤Ï¤³¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
-
+   ÄÌÈ֤ˤĤ¤¤Æ¤Î¤â¤Ã¤È¾Ü¤·¤¤¾ðÊó¤Ï¡¢¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç
+   create_sequence ¤ò¤´Í÷²¼¤µ¤¤¡£
+   
+   ¤Þ¤¿¡¢³Æ¥í¥¦¤ÎOID¥Õ¥£¡¼¥ë¥É¤ò°ì°ÕÃͤȤ·¤Æ»È¤¦¤³¤È¤â¤Ç¤­
+   ¤Þ¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢¤â¤·¤â¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥À¥ó¥×¤·¤Æ¥ê¥í¡¼¥É¤¹¤ëɬÍפ¬¤¢
+   ¤ë¾ì¹ç¤Ï¡¢OID¤ò²¹Â¸¤¹¤ë¤¿¤á¤Ëpg_dump ¤Ç
+   -o¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤«¡¢¤Þ¤¿¤Ï¡¢COPY WITH
+   OIDS¥ª¥×¥·¥ç¥ó¤ò»È¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
+   
+    4.15.2) SERIAL¥Ç¡¼¥¿·¿¤ËÁÞÆþ¤µ¤ì¤ëÃͤϡ¢¤É¤¦¤¹¤ì¤ÐÆÀ¤é¤ì¤Þ¤¹¤«¡©
+    
+   ¤Ò¤È¤Ä¤ÎÊýË¡¤Ï¡¢nextval() ´Ø¿ô¤ò»È¤Ã¤Æ¤½¤ÎÃͤòÁÞÆþ¤¹¤ëÁ°(before)¤Ë
+   SEQUENCE ¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¼¡¤Î SERIAL
+   Ãͤò¼è¤ê½Ð¤·¡¢¤½¤ì¤«¤é¼ÂºÝ¤ËÁÞÆþ¤ò¤¹¤ë¤³¤È¤Ç¤¹¡£4.15.1
+   ¤Î¥Æ¡¼¥Ö¥ë¤ÎÎã¤ò»È¤¦¤È¤¹¤ë¤È¡¢µ¿»÷¸À¸ì¤Ç¤Ï¤³¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
         new_id = execute("SELECT nextval('person_id_seq')");
         execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
 
-¤½¤¦¤·¤Æ¡¢new_id ¤ËÊݸ¤·¤¿¿·¤·¤¤Ãͤò¾¤ÎÌ䤤¹ç¤ï¤»¤Ë(¤¿¤È¤¨¤Ð¡¢person ¥Æ¡¼¥Ö¥ë
-¤ËÂФ¹¤ë³°Éô¥­¡¼(foreign key)¤Î¤è¤¦¤Ë)»È¤¦¤È¤è¤¤¤Ç¤·¤ç¤¦¡£¼«Æ°Åª¤Ëºî¤é¤ì¤¿
-SEQUENCE¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤Ï¡¢<table>_<serialcolumn>_seq ¤Î¤è¤¦¤Ë¤Ê¤ê¡¢¤³¤Î¤¦¤Á
-¡¢table ¤È serialcolumn ¤Ï¤½¤ì¤¾¤ì¥Æ¡¼¥Ö¥ë¤Î̾Á°¤ÈSERIAL¥«¥é¥à¤Î̾Á°¤Ç¤¹¡£
-
-¤¢¤ë¤¤¤Ï¡¢Í¿¤¨¤é¤ì¤¿SERIALÃͤò¡¢¤½¤ì¤¬´ûÄêÃͤȤ·¤ÆÁÞÆþ¤µ¤ì¤¿¸å¤Ç(after)¡¢
-currval() ´Ø¿ô¤ò»È¤Ã¤Æ¼è¤ê½Ð¤¹¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢
-
+   ¤½¤¦¤·¤Æ¡¢new_id ¤ËÊݸ¤·¤¿¿·¤·¤¤Ãͤò¾¤ÎÌ䤤¹ç¤ï¤»¤Ë(¤¿¤È¤¨¤Ð¡¢person
+   ¥Æ¡¼¥Ö¥ë¤ËÂФ¹¤ë³°Éô¥¡¼(foreign
+   key)¤Î¤è¤¦¤Ë)»È¤¦¤È¤è¤¤¤Ç¤·¤ç¤¦¡£¼«Æ°Åª¤Ëºî¤é¤ì¤¿SEQUENCE¥ª¥Ö¥¸¥§¥¯¥È¤
+   Î̾Á°¤Ï¡¢<table>_<serialcolumn>_seq ¤Î¤è¤¦¤Ë¤Ê¤ê¡¢¤³¤Î¤¦¤Á¡¢table ¤È
+   serialcolumn ¤Ï¤½¤ì¤¾¤ì¥Æ¡¼¥Ö¥ë¤Î̾Á°¤ÈSERIAL¥«¥é¥à¤Î̾Á°¤Ç¤¹¡£
+   
+   ¤¢¤ë¤¤¤Ï¡¢Í¿¤¨¤é¤ì¤¿SERIALÃͤò¡¢¤½¤ì¤¬´ûÄêÃͤȤ·¤ÆÁÞÆþ¤µ¤ì¤¿¸å¤Ç(after
+   )¡¢ currval() ´Ø¿ô¤ò»È¤Ã¤Æ¼è¤ê½Ð¤¹¤³¤È¤â¤Ç¤¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢
         execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
         new_id = execute("SELECT currval('person_id_seq')");
 
-ºÇ¸å¤Ë¡¢INSERTʸ¤«¤éÊÖ¤ëOID¤ò»È¤Ã¤Æ¡¢´ûÄêÃͤò¤ß¤Ä¤±¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¤¬¡¢¤·¤«¤·¡¢
-oid¤ÎÃͤÏ40²¯¤Ë㤹¤ë¤È¤â¤È¤ËÌá¤Ã¤Æ¤·¤Þ¤¤¡¢ºÇ¤â°Ü¿¢À­¤ÎÄ㤤¤ä¤êÊý¤È¤Ê¤ë¤Ç¤·¤ç¤¦
-¡£Perl DBI ¤Î DBD::Pg ¥â¥¸¥å¡¼¥ë¤ò»È¤¨¤Ð¡¢$sth->execute() ¤Î¸å¤Ë $sth->
-{pg_oid_status} ¤ò·Ðͳ¤·¤Æ¤½¤Î OID Ãͤò»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤¹¡£
-
-4.15.3) currval() ¤Ï¾¤Î¥æ¡¼¥¶¤È¤Î¶¥¹ç¾õÂ֤˴٤뤳¤È¤Ï¤Ê¤¤¤Ç¤¹¤«¡©
-
-¤½¤ì¤Ï¤¢¤ê¤Þ¤»¤ó¡£currval() ¤Ï¡¢¤¹¤Ù¤Æ¤Î¥æ¡¼¥¶¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢¤¢¤Ê¤¿¤Î¥Ð¥Ã¥¯
-¥¨¥ó¥É¤ËÍ¿¤¨¤é¤ì¤¿¸½ºß¤ÎÃͤòÊÖ¤·¤Þ¤¹¡£
-
-4.15.4) ¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤¬ÃæÃǤ·¤¿¤È¤­¤Ë¤â¤¦¤¤¤Á¤É¥·¡¼¥±¥ó¥¹Èֹ椬»È¤ï¤ì¤Ê¤¤¤Î
-¤Ï¤Ê¤¼¤Ç¤¹¤«¡©¥·¡¼¥±¥ó¥¹¡¿SERIAL¥«¥é¥à¤Ë¶õ¤­¤¬¤¢¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
-
-Ʊ»þÀ­¤ò²þÁ±¤¹¤ë¤¿¤á¤Ë¡¢¼Â¹ÔÃæ¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Ë¡¢É¬Íפǥȥé¥ó¥¶¥¯¥·¥ç¥ó¤¬½ª
-λ¤¹¤ë¤Þ¤Ç¥í¥Ã¥¯¤µ¤ì¤Ê¤¤¥·¡¼¥±¥ó¥¹ÃͤòÍ¿¤¨¤Æ¤¤¤Þ¤¹¡£¤³¤Î¤¿¤á¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤¬
-ÃæÃǤµ¤ì¤ë¤ÈÈÖ¹æ³ä¤êÅö¤Æ¤Ë¥®¥ã¥Ã¥×¤òÀ¸¤¸¤Þ¤¹¡£
-
-4.16) OID ¤È¤Ï²¿¤Ç¤¹¤«¡© TID ¤È¤Ï²¿¤Ç¤¹¤«¡©
-
-OID ¤È¤Ï°ì°Õ¤Î¥í¥¦ID ¤ËÂФ¹¤ë PostgreSQL ¤ÎÅú¤¨¤Ç¤¹¡£PostgreSQL ¤ÎÃæ¤Ç¤Ä¤¯¤é¤ì
-¤ë¤¹¤Ù¤Æ¤Î¥í¥¦¤Ï°ì°Õ¤Î OID ¤òÆÀ¤Þ¤¹¡£initdb ¤ÇȯÀ¸¤µ¤ì¤ë OID ¤Ï¤¹¤Ù¤Æ 16384
-(include/access/transam.h ¤«¤é)¤è¤ê¾®¤µ¤ÊÃͤǤ¹¡£initdb ¸å¤Î¤¹¤Ù¤Æ¤Î OID (¥æ¡¼
-¥¶ºîÀ®)¤Ï¤½¤ì°Ê¾å¤ÎÃͤˤʤê¤Þ¤¹¡£´ûÄê¤Ç¤Ï¡¢¤³¤ì¤é¤¹¤Ù¤Æ¤Î OID¤Ï°ì¤Ä¤Î¥Ç¡¼¥Ö¥ë¤ä
-¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤Ëα¤Þ¤é¤º¡¢PostgreSQL ¥¤¥ó¥¹¥È¥ì¡¼¥·¥ç¥óÁ´ÂΤÎÃæ¤Ç°ì°Õ¤Ç¤¹¡£
-
-PostgreSQL ¤Ï¥Æ¡¼¥Ö¥ë´Ö¤Î¥í¥¦¤ò·ë¤Ó¤Ä¤±¤ë¤¿¤á¤Ë¡¢¤½¤Î¥·¥¹¥Æ¥à¥Æ¡¼¥Ö¥ëÆâ¤Ë OID
-¤ò»È¤¤¤Þ¤¹¡£¤³¤Î OID ¤ÏÆÃÄê¤Î¥æ¡¼¥¶¤Î¥í¥¦¤ò¼±Ê̤¹¤ë¤¿¤á¤ä·ë¹ç¤ÎÃæ¤Ç»È¤ï¤ì¤ë¤³¤È
-¤¬¤Ç¤­¤Þ¤¹¡£OID ¤ÎÃͤòÊݸ¤¹¤ë¤¿¤á¤Ë¤Ï OID ·¿¤ò¥«¥é¥à¤Ë»È¤¦¤³¤È¤ò¾©¤á¤Þ¤¹¡£¤è¤ê
-®¤¯¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë OID ¥Õ¥£¡¼¥ë¥É¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òºî¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ OID
-¤Ï¡¢Á´¤Æ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ç»È¤ï¤ì¤ëÃæ±ûÎΰ褫¤é¡¢Á´¤Æ¤Î¿·¤·¤¤¥í¥¦¤Ë³ä¤êÅö¤Æ¤é¤ì¤Þ
-¤¹¡£OID ¤ò¾¤Î²¿¤«¤ËÊѤ¨¤¿¤¤¡¢¤¢¤ë¤¤¤Ï¸µ¤Î OID ¤â¥Æ¡¼¥Ö¥ë¤È°ì½ï¤Ë¥³¥Ô¡¼¤·¤¿¤¤¤Î
-¤Ê¤é¡¢¤Ç¤­¤Ê¤¯¤Ï¤¢¤ê¤Þ¤»¤ó¡£
-
+   ºÇ¸å¤Ë¡¢INSERTʸ¤«¤éÊÖ¤ëOID¤ò»È¤Ã¤Æ¡¢´ûÄêÃͤò¤ß¤Ä¤±¤ë¤³¤È¤â¤Ç¤­
+   ¤Þ¤¹¤¬¡¢¤·¤«¤·¡¢oid¤ÎÃͤÏ40²¯¤Ë㤹¤ë¤È¤â¤È¤ËÌá¤Ã¤Æ¤·¤Þ¤¤¡¢ºÇ¤â°Ü¿¢À­
+   ¤ÎÄ㤤¤ä¤êÊý¤È¤Ê¤ë¤Ç¤·¤ç¤¦¡£Perl DBI ¤Î DBD::Pg
+   ¥â¥¸¥å¡¼¥ë¤ò»È¤¨¤Ð¡¢$sth->execute() ¤Î¸å¤Ë $sth->{pg_oid_status}
+   ¤ò·Ðͳ¤·¤Æ¤½¤Î OID Ãͤò»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤¹¡£
+   
+    4.15.3) currval() ¤Ï¾¤Î¥æ¡¼¥¶¤È¤Î¶¥¹ç¾õÂ֤˴٤뤳¤È¤Ï¤Ê¤¤¤Ç¤¹¤«¡©
+    
+   ¤½¤ì¤Ï¤¢¤ê¤Þ¤»¤ó¡£currval()
+   ¤Ï¡¢¤¹¤Ù¤Æ¤Î¥æ¡¼¥¶¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢¤¢¤Ê¤¿¤Î¥Ð¥Ã¥¯¥¨¥ó¥É¤ËÍ¿¤¨¤é¤ì¤¿¸½
+   ºß¤ÎÃͤòÊÖ¤·¤Þ¤¹¡£
+   
+    4.15.4) ¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤¬ÃæÃǤ·¤¿¤È¤­
+    ¤Ë¤â¤¦¤¤¤Á¤É¥·¡¼¥±¥ó¥¹Èֹ椬»È¤ï¤ì¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©¥·¡¼¥±¥ó¥¹¡¿SERIAL¥«¥
+    é¥à¤Ë¶õ¤¤¬¤¢¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+    
+   Æ±»þÀ­
+   ¤ò²þÁ±¤¹¤ë¤¿¤á¤Ë¡¢¼Â¹ÔÃæ¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Ë¡¢É¬Íפǥȥé¥ó¥¶¥¯¥·¥ç¥ó¤¬
+   ½ªÎ»¤¹¤ë¤Þ¤Ç¥í¥Ã¥¯¤µ¤ì¤Ê¤¤¥·¡¼¥±¥ó¥¹ÃͤòÍ¿¤¨¤Æ¤¤¤Þ¤¹¡£¤³¤Î¤¿¤á¥È¥é¥ó¥¶
+   ¥¯¥·¥ç¥ó¤¬ÃæÃǤµ¤ì¤ë¤ÈÈÖ¹æ³ä¤êÅö¤Æ¤Ë¥®¥ã¥Ã¥×¤òÀ¸¤¸¤Þ¤¹¡£
+   
+    4.16) OID ¤È¤Ï²¿¤Ç¤¹¤«¡© TID ¤È¤Ï²¿¤Ç¤¹¤«¡©
+    
+   OID ¤È¤Ï°ì°Õ¤Î¥í¥¦ID ¤ËÂФ¹¤ë PostgreSQL ¤ÎÅú¤¨¤Ç¤¹¡£PostgreSQL
+   ¤ÎÃæ¤Ç¤Ä¤¯¤é¤ì¤ë¤¹¤Ù¤Æ¤Î¥í¥¦¤Ï°ì°Õ¤Î OID ¤òÆÀ¤Þ¤¹¡£initdb ¤ÇȯÀ¸¤µ¤ì¤ë
+   OID ¤Ï¤¹¤Ù¤Æ 16384 (include/access/transam.h
+   ¤«¤é)¤è¤ê¾®¤µ¤ÊÃͤǤ¹¡£initdb ¸å¤Î¤¹¤Ù¤Æ¤Î OID
+   (¥æ¡¼¥¶ºîÀ®)¤Ï¤½¤ì°Ê¾å¤ÎÃͤˤʤê¤Þ¤¹¡£ ´ûÄê¤Ç¤Ï¡¢¤³¤ì¤é¤¹¤Ù¤Æ¤Î
+   OID¤Ï°ì¤Ä¤Î¥Ç¡¼¥Ö¥ë¤ä¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤Ëα¤Þ¤é¤º¡¢PostgreSQL
+   ¥¤¥ó¥¹¥È¥ì¡¼¥·¥ç¥óÁ´ÂΤÎÃæ¤Ç°ì°Õ¤Ç¤¹¡£
+   
+   PostgreSQL
+   ¤Ï¥Æ¡¼¥Ö¥ë´Ö¤Î¥í¥¦¤ò·ë¤Ó¤Ä¤±¤ë¤¿¤á¤Ë¡¢¤½¤Î¥·¥¹¥Æ¥à¥Æ¡¼¥Ö¥ëÆâ¤Ë OID
+   ¤ò»È¤¤¤Þ¤¹¡£¤³¤Î OID
+   ¤ÏÆÃÄê¤Î¥æ¡¼¥¶¤Î¥í¥¦¤ò¼±Ê̤¹¤ë¤¿¤á¤ä·ë¹ç¤ÎÃæ¤Ç»È¤ï¤ì¤ë¤³¤È¤¬¤Ç¤­
+   ¤Þ¤¹¡£OID ¤ÎÃͤòÊݸ¤¹¤ë¤¿¤á¤Ë¤Ï OID
+   ·¿¤ò¥«¥é¥à¤Ë»È¤¦¤³¤È¤ò¾©¤á¤Þ¤¹¡£¤è¤ê®¤¯¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë OID
+   ¥Õ¥£¡¼¥ë¥É¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òºî¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ OID
+   ¤Ï¡¢Á´¤Æ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ç»È¤ï¤ì¤ëÃæ±ûÎΰ褫¤é¡¢Á´¤Æ¤Î¿·¤·¤¤¥í¥¦¤Ë³ä¤êÅö
+   ¤Æ¤é¤ì¤Þ¤¹¡£OID ¤ò¾¤Î²¿¤«¤ËÊѤ¨¤¿¤¤¡¢¤¢¤ë¤¤¤Ï¸µ¤Î OID
+   ¤â¥Æ¡¼¥Ö¥ë¤È°ì½ï¤Ë¥³¥Ô¡¼¤·¤¿¤¤¤Î¤Ê¤é¡¢¤Ç¤¤Ê¤¯¤Ï¤¢¤ê¤Þ¤»¤ó¡£
         CREATE TABLE new_table(mycol int);
         SELECT oid AS old_oid, mycol INTO tmp_table FROM old_table;
         COPY tmp_table TO '/tmp/pgtable';
         COPY new_table WITH OIDS FROM '/tmp/pgtable';
         DROP TABLE tmp_table;
 
-OID ¤Ï¡¢4¥Ð¥¤¥È¤ÎÀ°¿ô¤È¤·¤ÆÊݸ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢40²¯¤ò±Û¤¨¤ë¤È°î¤ì¤Æ¤·¤Þ¤¦¤Ç¤·¤ç
-¤¦¡£Ã¯¤â¤³¤ì¤¬µ¯¤­¤¿¤ÈÊó¹ð¤·¤Æ¤¯¤ë¿Í¤Ï¤¤¤Þ¤»¤ó¤Ç¤·¤¿¤¬¡¢¤½¤¦¤Ê¤ëÁ°¤Ë¤³¤ÎÀ©¸Â¤ò
-¼è¤ê½ü¤¯¤³¤È¤ò·×²è¤·¤Æ¤¤¤Þ¤¹¡£
-
-TID ¤ÏÆÃÄê¤ÎʪÍý¥í¥¦¤ò¤½¤Î¥Ö¥í¥Ã¥¯¤È¥ª¥Õ¥»¥Ã¥ÈÃͤǼ±Ê̤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£TID
-¤Ï¥í¥¦¤¬½¤Àµ¤µ¤ì¤¿¤êºÆ¥í¡¼¥É¤µ¤ì¤ë¤ÈÊѤï¤ê¤Þ¤¹¡£¤½¤ì¤é¤Î TID ¤Ï¡¢ÊªÍý¥í¥¦¤ò»Ø¤¹
-¤¿¤á¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹µ­ºÜ¤Ç»È¤ï¤ì¤Þ¤¹¡£
-
-4.17) PostgreSQL ¤Ç»È¤ï¤ì¤ë¤¤¤¯¤Ä¤«¤ÎÍѸì¤Î°ÕÌ£¤Ï²¿¤Ç¤¹¤«¡©
-
-¤¤¤¯¤Ä¤«¤Î¥½¡¼¥¹¥³¡¼¥É¤ä¸Å¤¤Ê¸½ñ¤ÎÃæ¤Ë¤Ï¡¢¤½¤ì¤¾¤ÎÀìÌçʬÌî¤ÎÃæ¤Ç¤â¤Ã¤È°ìÈÌŪ¤Ë
-»È¤ï¤ì¤ëÀìÌçÍѸ줬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
-
- ¡¦ ¥Æ¡¼¥Ö¥ë(table)¡¢´Ø·¸(relation)¡¢¥¯¥é¥¹(class)
- ¡¦ ¥í¥¦(row)¡¢¥ì¥³¡¼¥É(record)¡¢¥¿¥Ã¥×¥ë(tuple)
- ¡¦ ¥«¥é¥à(column)¡¢¥Õ¥£¡¼¥ë¥É(field)¡¢Â°À­(attribute)
- ¡¦ ¼èÆÀ(retrieve)¡¢ÁªÂò(select)
- ¡¦ ÃÖ´¹(replace)¡¢¹¹¿·(update)
- ¡¦ ÄɲÃ(append)¡¢ÁÞÆþ(insert)
- ¡¦ OID, Ï¢ÈÖ(serial value)
- ¡¦ ¥Ý¡¼¥¿¥ë(portal), ¥«¡¼¥½¥ë(cursor)
- ¡¦ ÎΰèÊÑ¿ô(range variable)¡¢¥Æ¡¼¥Ö¥ë̾(table name)¡¢¥Æ¡¼¥Ö¥ëÊÌ̾(table alias)
-
-°ìÈÌŪ¤Ê¥Ç¡¼¥¿¥Ù¡¼¥¹ÍѸì¤Î¥ê¥¹¥È¤Ï¡§http://hea-www.harvard.edu/MST/simul/
-software/docs/pkgs/pgsql/glossary/glossary.html ¤Ç¸«¤Ä¤±¤é¤ì¤Þ¤¹¡£
-
-4.18) ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ "ERROR: Memory exhausted in AllocSetAlloc()"¤¬½Ð¤ë¤Î¤Ï¤Ê
-¤¼¤Ç¤¹¤«¡©
-
-¤ª¤½¤é¤¯¡¢¥·¥¹¥Æ¥à¤Î²¾ÁÛ¥á¥â¥ê¡¼¤òÁ´¤Æ»È¤¤²Ì¤¿¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë¤«¡¢
-¥«¡¼¥Í¥ë¤¬¤¢¤ë¥ê¥½¡¼¥¹¤Ë¤Ä¤¤¤Æ¤â¤ÄÀ©¸ÂÃͤ¬Ä㤹¤®¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ postmaster
-¤ò»Ïư¤¹¤ëÁ°¤Ë¤³¤ì¤ò»î¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡§
-
+   OID
+   ¤Ï¡¢4¥Ð¥¤¥È¤ÎÀ°¿ô¤È¤·¤ÆÊݸ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢40²¯¤ò±Û¤¨¤ë¤È°î¤ì¤Æ¤·¤Þ¤¦¤
+   Ç¤·¤ç¤¦¡£Ã¯¤â¤³¤ì¤¬µ¯¤­
+   ¤¿¤ÈÊó¹ð¤·¤Æ¤¯¤ë¿Í¤Ï¤¤¤Þ¤»¤ó¤Ç¤·¤¿¤¬¡¢¤½¤¦¤Ê¤ëÁ°¤Ë¤³¤ÎÀ©¸Â¤ò¼è¤ê½ü¤¯¤³
+   ¤È¤ò·×²è¤·¤Æ¤¤¤Þ¤¹¡£
+   
+   TID
+   ¤ÏÆÃÄê¤ÎʪÍý¥í¥¦¤ò¤½¤Î¥Ö¥í¥Ã¥¯¤È¥ª¥Õ¥»¥Ã¥ÈÃͤǼ±Ê̤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹
+   ¡£TID ¤Ï¥í¥¦¤¬½¤Àµ¤µ¤ì¤¿¤êºÆ¥í¡¼¥É¤µ¤ì¤ë¤ÈÊѤï¤ê¤Þ¤¹¡£¤½¤ì¤é¤Î TID
+   ¤Ï¡¢ÊªÍý¥í¥¦¤ò»Ø¤¹¤¿¤á¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹µºÜ¤Ç»È¤ï¤ì¤Þ¤¹¡£
+   
+    4.17) PostgreSQL ¤Ç»È¤ï¤ì¤ë¤¤¤¯¤Ä¤«¤ÎÍѸì¤Î°ÕÌ£¤Ï²¿¤Ç¤¹¤«¡©
+    
+   ¤¤¤¯¤Ä¤«¤Î¥½¡¼¥¹¥³¡¼¥É¤ä¸Å¤¤Ê¸½ñ¤ÎÃæ¤Ë¤Ï¡¢¤½¤ì¤¾¤ÎÀìÌçʬÌî¤ÎÃæ¤Ç¤â¤Ã¤È
+   °ìÈÌŪ¤Ë»È¤ï¤ì¤ëÀìÌçÍѸ줬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
+     * ¥Æ¡¼¥Ö¥ë(table)¡¢´Ø·¸(relation)¡¢¥¯¥é¥¹(class)
+     * ¥í¥¦(row)¡¢¥ì¥³¡¼¥É(record)¡¢¥¿¥Ã¥×¥ë(tuple)
+     * ¥«¥é¥à(column)¡¢¥Õ¥£¡¼¥ë¥É(field)¡¢Â°À(attribute)
+     * ¼èÆÀ(retrieve)¡¢ÁªÂò(select)
+     * ÃÖ´¹(replace)¡¢¹¹¿·(update)
+     * ÄɲÃ(append)¡¢ÁÞÆþ(insert)
+     * OID, Ï¢ÈÖ(serial value)
+     * ¥Ý¡¼¥¿¥ë(portal), ¥«¡¼¥½¥ë(cursor)
+     * ÎΰèÊÑ¿ô(range variable)¡¢¥Æ¡¼¥Ö¥ë̾(table
+       name)¡¢¥Æ¡¼¥Ö¥ëÊÌ̾(table alias)
+       
+   °ìÈÌŪ¤Ê¥Ç¡¼¥¿¥Ù¡¼¥¹ÍѸì¤Î¥ê¥¹¥È¤Ï¡§http://hea-www.harvard.edu/MST/sim
+   ul/software/docs/pkgs/pgsql/glossary/glossary.html ¤Ç¸«¤Ä¤±¤é¤ì¤Þ¤¹¡£
+   
+    4.18) ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ "ERROR: Memory exhausted in
+    AllocSetAlloc()"¤¬½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+    
+   ¤ª¤½¤é¤¯¡¢¥·¥¹¥Æ¥à¤Î²¾ÁÛ¥á¥â¥ê¡¼¤òÁ´¤Æ»È¤¤²Ì¤¿¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë²ÄǽÀ­
+   ¤¬¤¢¤ë¤«¡¢¥«¡¼¥Í¥ë¤¬¤¢¤ë¥ê¥½¡¼¥¹¤Ë¤Ä¤¤¤Æ¤â¤ÄÀ©¸ÂÃͤ¬Ä㤹¤®¤ë²ÄǽÀ­
+   ¤¬¤¢¤ê¤Þ¤¹¡£ postmaster ¤ò»Ïư¤¹¤ëÁ°¤Ë¤³¤ì¤ò»î¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡§
         ulimit -d 262144
         limit datasize 256m
 
-¥·¥§¥ë¤Ë¤è¤Ã¤Æ¡¢¤É¤Á¤é¤«¤Ò¤È¤Ä¤¬À®¸ù¤¹¤ë¤Ç¤·¤ç¤¦¤¬¡¢¤³¤ì¤Ï¥×¥í¥»¥¹¤Î¥Ç¡¼¥¿¥»¥°
-¥á¥ó¥ÈÀ©¸Â¤ò¤è¤ê¹â¤¯ÀßÄꤷ¡¢¤¿¤Ö¤óÌ䤤¹ç¤ï¤»¤¬´°·ë¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£¤³¤Î
-¥³¥Þ¥ó¥É¤Ï¸½¹Ô¤Î¥×¥í¥»¥¹¤È¡¢¤³¤Î¥³¥Þ¥ó¥É¤òÁö¤é¤»¤¿¸å¤Ëºî¤é¤ì¤ëÁ´¤Æ¤Î¥µ¥Ö¥×¥í¥»
-¥¹¤Ë¤Ä¤¤¤ÆÅ¬ÍѤµ¤ì¤Þ¤¹¡£¥Ð¥Ã¥¯¥¨¥ó¥É¤¬¤È¤Æ¤â¿¤¯¤Î¥Ç¡¼¥¿¤òÊÖ¤¹¤¿¤á¤ËSQL ¥¯¥é¥¤
-¥¢¥ó¥È¤ÇÌäÂ꤬³¤¤¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢¥¯¥é¥¤¥¢¥ó¥È¤ò³«»Ï¤¹¤ëÁ°¤Ë¤³¤ì¤ò»î¤·¤Æ¤ß¤Æ
-¤¯¤À¤µ¤¤¡£
-
-4.19) ¤É¤Î¥Ð¡¼¥¸¥ç¥ó¤Î PostgreSQL ¤òÁö¤é¤»¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
-
-psql ¤«¤é SELECT version(); ¤ò¥¿¥¤¥×¤·¤Þ¤¹¡£
-
-4.20) ¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÎÁàºî¤Çinvalid large obj descriptor ¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿
-¡£¤Ê¤¼¤Ç¤·¤ç¤¦¤«¡©
-
-¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥ÈÁàºî¤ò¤¹¤ë¤È¤­¤Ï¡¢Á°¸å¤ËBEGIN WORK¤ÈCOMMIT¤òÉÕ¤±¤ëɬÍפ¬¤¢
-¤ê¤Þ¤¹¡£¤¹¤Ê¤ï¤Á¡¢lo_open ... lo_close¤ò¤Ï¤µ¤ß¹þ¤ß¤Þ¤¹¡£
-
-¸½ºß¤Ï¡¢PostgreSQL¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Î¥³¥ß¥Ã¥È»þ¤Ë¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥È¡¦¥Ï¥ó¥É
-¥ë¤òÊĤ¸¤ë¤³¤È¤Ë¤è¤ê¡¢lo_open¥³¥Þ¥ó¥É¤¬´°Î»¤·¤¿Ä¾¸å¤Ë¶¯À©Åª¤Ë¥ë¡¼¥ë¤ò¼Â¹Ô¤·¤Þ¤¹
-¡£¤³¤Î¤¿¤á¡¢ºÇ½é¤Ë¥Ï¥ó¥É¥ë¤ËÂФ·¤Æ²¿¤«¤ò¤·¤è¤¦¤È¤¹¤ë¤È¡¢invalid large obj
-descriptor(¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Îµ­½Ò»Ò¤¬ÉÔÀµ)¤È¤Ê¤ê¤Þ¤¹¡£¤½¤ì¤Ç¡¢¤â¤·¡¢¥È¥é¥ó
-¥¶¥¯¥·¥ç¥ó¤ò»È¤¦¤Î¤ò˺¤ì¤ë¤È¡¢¡Ê¾¯¤Ê¤¯¤È¤â¤Û¤È¤ó¤É¤Î»þ´Ö¡ËƯ¤¤¤Æ¤¤¤¿¥³¡¼¥É¤¬¥¨
-¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½Ð¤¹¤Î¤Ç¤¹¡£
-
-¤â¤·¡¢ODBC¤Î¤è¤¦¤Ê¥¯¥é¥¤¥¢¥ó¥È¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò¤ª»È¤¤¤Ê¤é¡¢auto-commit off¤òÀß
-Äꤹ¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
-
-4.21) ¸½ºß¤Î»þ¹ï¤¬¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¤è¤¦¤Ê¥«¥é¥à¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
-
-CURRENT_TIMESTAMP¤ò»È¤¤¤Þ¤¹:
-
+   ¥·¥§¥ë¤Ë¤è¤Ã¤Æ¡¢¤É¤Á¤é¤«¤Ò¤È¤Ä¤¬À®¸ù¤¹¤ë¤Ç¤·¤ç¤¦¤¬¡¢¤³¤ì¤Ï¥×¥í¥»¥¹¤Î¥Ç
+   ¡¼¥¿¥»¥°¥á¥ó¥ÈÀ©¸Â¤ò¤è¤ê¹â¤¯ÀßÄꤷ¡¢¤¿¤Ö¤óÌ䤤¹ç¤ï¤»¤¬´°·ë¤¹¤ë¤è¤¦¤Ë¤Ê
+   ¤ë¤Ç¤·¤ç¤¦¡£¤³¤Î¥³¥Þ¥ó¥É¤Ï¸½¹Ô¤Î¥×¥í¥»¥¹¤È¡¢¤³¤Î¥³¥Þ¥ó¥É¤òÁö¤é¤»¤¿¸å¤Ë
+   ºî¤é¤ì¤ëÁ´¤Æ¤Î¥µ¥Ö¥×¥í¥»¥¹¤Ë¤Ä¤¤¤ÆÅ¬ÍѤµ¤ì¤Þ¤¹¡£¥Ð¥Ã¥¯¥¨¥ó¥É¤¬¤È¤Æ¤â¿
+   ¤¯¤Î¥Ç¡¼¥¿¤òÊÖ¤¹¤¿¤á¤ËSQL
+   ¥¯¥é¥¤¥¢¥ó¥È¤ÇÌäÂ꤬³¤¤¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢¥¯¥é¥¤¥¢¥ó¥È¤ò³«»Ï¤¹¤ëÁ°¤Ë¤³
+   ¤ì¤ò»î¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
+   
+    4.19) ¤É¤Î¥Ð¡¼¥¸¥ç¥ó¤Î PostgreSQL
+    ¤òÁö¤é¤»¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+    
+   psql ¤«¤é SELECT version(); ¤ò¥¿¥¤¥×¤·¤Þ¤¹¡£
+   
+    4.20) ¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÎÁàºî¤Çinvalid large obj descriptor
+    ¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿¡£¤Ê¤¼¤Ç¤·¤ç¤¦¤«¡©
+    
+   ¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥ÈÁàºî¤ò¤¹¤ë¤È¤¤Ï¡¢Á°¸å¤ËBEGIN
+   WORK¤ÈCOMMIT¤òÉÕ¤±¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤¹¤Ê¤ï¤Á¡¢lo_open ...
+   lo_close¤ò¤Ï¤µ¤ß¹þ¤ß¤Þ¤¹¡£
+   
+   ¸½ºß¤Ï¡¢PostgreSQL¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Î¥³¥ß¥Ã¥È»þ¤Ë¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥È
+   ¡¦¥Ï¥ó¥É¥ë¤òÊĤ¸¤ë¤³¤È¤Ë¤è¤ê¡¢lo_open¥³¥Þ¥ó¥É¤¬´°Î»¤·¤¿Ä¾¸å¤Ë¶¯À©Åª¤Ë¥
+   ë¡¼¥ë¤ò¼Â¹Ô¤·¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢ºÇ½é¤Ë¥Ï¥ó¥É¥ë¤ËÂФ·¤Æ²¿¤«¤ò¤·¤è¤¦¤È¤¹¤ë¤
+   È¡¢invalid large obj descriptor(¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Îµ­
+   ½Ò»Ò¤¬ÉÔÀµ)¤È¤Ê¤ê¤Þ¤¹¡£¤½¤ì¤Ç¡¢¤â¤·¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤ò»È¤¦¤Î¤ò˺¤ì¤ë¤
+   È¡¢¡Ê¾¯¤Ê¤¯¤È¤â¤Û¤È¤ó¤É¤Î»þ´Ö¡ËƯ¤¤¤Æ¤¤¤¿¥³¡¼¥É¤¬¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½Ð¤
+   ¹¤Î¤Ç¤¹¡£
+   
+   ¤â¤·¡¢ODBC¤Î¤è¤¦¤Ê¥¯¥é¥¤¥¢¥ó¥È¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò¤ª»È¤¤¤Ê¤é¡¢auto-commi
+   t off¤òÀßÄꤹ¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
+   
+    4.21) ¸½ºß¤Î»þ¹ï¤¬¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¤è¤¦¤Ê¥«¥é¥à¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
+    
+   CURRENT_TIMESTAMP¤ò»È¤¤¤Þ¤¹:
         CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
 
-4.22) ¤Ê¤¼¡¢IN¤ò»È¤¦ÉûÌ䤤¹ç¤ï¤»¤¬¤È¤Æ¤âÃÙ¤¤¤Î¤Ç¤¹¤«¡©
-
-7.4 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ÉûÌ䤤¹ç¤ï¤»¤Ï¡¢ÉûÌ䤤¹ç¤ï¤»¤Î·ë²Ì¤ò³°ÉôÌ䤤¹ç¤ï¤»
-¤Î³Æ¥í¥¦¤Ë¤Ä¤¤¤Æ½ç¼¡Áöºº¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢³°Éô¤ÎÌ䤤¹ç¤ï¤»¤Ë·ë¹ç¤µ¤»¤é¤ì¤ë¡£Éû
-Ì䤤¹ç¤ï¤»¤¬¤ï¤º¤«¤Ê¥í¥¦¤·¤«ÊÖ¤µ¤º¡¢³°ÉôÌ䤤¹ç¤ï¤»¤¬Âô»³¤Î¥í¥¦¤òÊÖ¤¹¾ì¹ç¤Ï¡¢IN
-¤¬ºÇ¤âÁᤤ¤Ç¤¹¡£Â¾¤ÎÌ䤤¹ç¤ï¤»¤ò¹â®²½¤¹¤ë¤Ë¤Ï¡¢IN¤òEXISTS¤ËÃÖ´¹¤·¤Þ¤¹:
-
+    4.22) ¤Ê¤¼¡¢IN¤ò»È¤¦ÉûÌ䤤¹ç¤ï¤»¤¬¤È¤Æ¤âÃÙ¤¤¤Î¤Ç¤¹¤«¡©
+    
+   7.4
+   ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ÉûÌ䤤¹ç¤ï¤»¤Ï¡¢ÉûÌ䤤¹ç¤ï¤»¤Î·ë²Ì¤ò³°ÉôÌ䤤¹ç
+   ¤ï¤»¤Î³Æ¥í¥¦¤Ë¤Ä¤¤¤Æ½ç¼¡Áöºº¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢³°Éô¤ÎÌ䤤¹ç¤ï¤»¤Ë·ë¹ç¤µ
+   ¤»¤é¤ì¤ë¡£
+   ÉûÌ䤤¹ç¤ï¤»¤¬¤ï¤º¤«¤Ê¥í¥¦¤·¤«ÊÖ¤µ¤º¡¢³°ÉôÌ䤤¹ç¤ï¤»¤¬Âô»³¤Î¥í¥¦¤òÊÖ¤¹
+   ¾ì¹ç¤Ï¡¢IN¤¬ºÇ¤âÁᤤ¤Ç¤¹¡£Â¾¤ÎÌ䤤¹ç¤ï¤»¤ò¹â®²½¤¹¤ë¤Ë¤Ï¡¢IN¤òEXISTS¤Ë
+   ÃÖ´¹¤·¤Þ¤¹:
         SELECT *
         FROM tab
         WHERE col IN (SELECT subcol FROM subtab)
 
-¤ò¡¢ÃÖ¤­´¹¤¨¤Æ¡§
-
+   ¤ò¡¢ÃÖ¤´¹¤¨¤Æ¡§
         SELECT *
         FROM tab
         WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col)
 
-¤È¤·¤Þ¤¹¡£¤³¤ì¤¬¼ê¤Ã¼è¤êÁᤤ¤Ç¤¹¤¬¡¢subcol¤Ïº÷°úÉÕ¤­¥«¥é¥à¤Ç¤¢¤ë¤Ù¤­¤Ç¤¹¡£
-
-¥Ð¡¼¥¸¥ç¥ó7.4°Ê¹ß¤Ç¤Ï¡¢IN¤Ï¡¢Ä̾ï¤ÎÌ䤤¹ç¤ï¤»¤ÈƱÍͤÎÀöÎý¤µ¤ì¤¿¥¸¥ç¥¤¥ó¤Îµ»½Ñ¤ò
-¼ÂºÝ¤Ë»È¤¤¡¢EXISTS¤ò»È¤¦¤³¤È¤ò¹¥¤ß¤Þ¤¹¡£
-
-4.23) ³°Éô·ë¹ç(outer join)¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤·¤Þ¤¹¤«?
-
-PostgreSQL ¤Ï SQL É¸½à¹½Ê¸¤ò»È¤¦³°Éô·ë¹ç(¥¢¥¦¥¿¡¼¥¸¥ç¥¤¥ó)¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¤³
-¤³¤Ë 2¤Ä¤ÎÎãÂ꤬¤¢¤ê¤Þ¤¹¡£
-
+   ¤È¤·¤Þ¤¹¡£ ¤³¤ì¤¬¼ê¤Ã¼è¤êÁᤤ¤Ç¤¹¤¬¡¢subcol¤Ïº÷°úÉÕ¤¥«¥é¥à¤Ç¤¢¤ë¤Ù¤­
+   ¤Ç¤¹¡£
+   
+   ¥Ð¡¼¥¸¥ç¥ó7.4°Ê¹ß¤Ç¤Ï¡¢IN¤Ï¡¢Ä̾ï¤ÎÌ䤤¹ç¤ï¤»¤ÈƱÍͤÎÀöÎý¤µ¤ì¤¿¥¸¥ç¥¤¥
+   ó¤Îµ»½Ñ¤ò¼ÂºÝ¤Ë»È¤¤¡¢EXISTS¤ò»È¤¦¤³¤È¤ò¹¥¤ß¤Þ¤¹¡£
+   
+    4.23) ³°Éô·ë¹ç(outer join)¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤·¤Þ¤¹¤«?
+    
+   PostgreSQL ¤Ï SQL
+   É¸½à¹½Ê¸¤ò»È¤¦³°Éô·ë¹ç(¥¢¥¦¥¿¡¼¥¸¥ç¥¤¥ó)¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¤³¤³¤Ë
+   2¤Ä¤ÎÎãÂ꤬¤¢¤ê¤Þ¤¹¡£
         SELECT *
         FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
 
-¤¢¤ë¤¤¤Ï
-
+   ¤¢¤ë¤¤¤Ï
         SELECT *
         FROM t1 LEFT OUTER JOIN t2 USING (col);
 
-¤³¤ì¤é¤Î¾ÝħŪ¤ÊÌ䤤¹ç¤ï¤»¤Ç¤Ï t1.col ¤ò t2.col ¤È·ë¹ç¤·¤Æ¡¢t1 ¤Î·ë¹ç¤µ¤ì¤Ê¤«¤Ã
-¤¿¥í¥¦(t2 ¤È°ìÃפ·¤Ê¤«¤Ã¤¿¥í¥¦)¤âÊÖ¤·¤Æ¤¤¤Þ¤¹¡£RIGHT ·ë¹ç¤Ï t2 ¤Î·ë¹ç¤µ¤ì¤Ê¤«¤Ã
-¤¿¥í¥¦¤ò²Ã¤¨¤ë¤Ç¤·¤ç¤¦¡£FULL ·ë¹ç¤Ï¡¢°ìÃפ·¤¿¥í¥¦¤Ë t1 ¤È t2 ¤«¤é¤Ï·ë¹ç¤µ¤ì¤Ê¤«
-¤Ã¤¿¥í¥¦¤òÊÖ¤¹¤Ç¤·¤ç¤¦¡£OUTER ¤È¤¤¤¦¸ÀÍդϥª¥×¥·¥ç¥ó¤Ç LEFT, RIGHT, ¤Þ¤¿¤Ï FULL
-¤Ê¤É¤Î·ë¹ç¤ò²¾Äꤵ¤ì¤Æ¤¤¤Þ¤¹¡£Ä̾·ë¹ç¤ÏINNER·ë¹ç¤È¸Æ¤Ð¤ì¤Þ¤¹¡£°ÊÁ°¤Î¥ê¥ê¡¼¥¹
-¤Ç¤Ï³°Éô·ë¹ç(outer join)¤òUNION ¤È NOT IN ¤ò»È¤Ã¤Æ¥·¥ß¥å¥ì¡¼¥È¤Ç¤­¤Þ¤¹¡£¤¿¤È¤¨
-¤Ð¡¢tab1 ¤È tab2 ¤ò·ë¹ç¤¹¤ë¤È¤­¤Ï¡¢¼¡¤ÎÌ䤤¹ç¤ï¤»¤ÇÆó¤Ä¤Î¥Æ¡¼¥Ö¥ë¤ò³°Éô·ë¹ç¤·¤Þ
-¤¹¡£
-
+   ¤³¤ì¤é¤Î¾ÝħŪ¤ÊÌ䤤¹ç¤ï¤»¤Ç¤Ï t1.col ¤ò t2.col ¤È·ë¹ç¤·¤Æ¡¢t1
+   ¤Î·ë¹ç¤µ¤ì¤Ê¤«¤Ã¤¿¥í¥¦(t2 ¤È°ìÃפ·¤Ê¤«¤Ã¤¿¥í¥¦)¤âÊÖ¤·¤Æ¤¤¤Þ¤¹¡£RIGHT
+   ·ë¹ç¤Ï t2 ¤Î·ë¹ç¤µ¤ì¤Ê¤«¤Ã¤¿¥í¥¦¤ò²Ã¤¨¤ë¤Ç¤·¤ç¤¦¡£FULL
+   ·ë¹ç¤Ï¡¢°ìÃפ·¤¿¥í¥¦¤Ë t1 ¤È t2
+   ¤«¤é¤Ï·ë¹ç¤µ¤ì¤Ê¤«¤Ã¤¿¥í¥¦¤òÊÖ¤¹¤Ç¤·¤ç¤¦¡£OUTER
+   ¤È¤¤¤¦¸ÀÍդϥª¥×¥·¥ç¥ó¤Ç LEFT, RIGHT, ¤Þ¤¿¤Ï FULL
+   ¤Ê¤É¤Î·ë¹ç¤ò²¾Äꤵ¤ì¤Æ¤¤¤Þ¤¹¡£Ä̾·ë¹ç¤ÏINNER·ë¹ç¤È¸Æ¤Ð¤ì¤Þ¤¹¡£
+   
+   °ÊÁ°¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï³°Éô·ë¹ç(outer join)¤òUNION ¤È NOT IN
+   ¤ò»È¤Ã¤Æ¥·¥ß¥å¥ì¡¼¥È¤Ç¤¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢tab1 ¤È tab2 ¤ò·ë¹ç¤¹¤ë¤È¤­
+   ¤Ï¡¢¼¡¤ÎÌ䤤¹ç¤ï¤»¤ÇÆó¤Ä¤Î¥Æ¡¼¥Ö¥ë¤ò³°Éô·ë¹ç¤·¤Þ¤¹¡£
         SELECT tab1.col1, tab2.col2
         FROM tab1, tab2
         WHERE tab1.col1 = tab2.col1
@@ -1286,48 +1390,57 @@ PostgreSQL 
         WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
         ORDER BY col1
 
-4.24) Ê£¿ô¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»È¤¦Ì䤤¹ç¤ï¤»¤Ï¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤Ç¤­¤Þ¤¹¤«¡©
-
-¸½¹Ô¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹°Ê³°¤Ø¤ÎÌ䤤¹ç¤ï¤»ÊýË¡¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤È¤¤¤¦¤Î¤âPostgreSQL¤¬¥Ç
-¡¼¥¿¥Ù¡¼¥¹»ÅÍͤΥ·¥¹¥Æ¥à¥«¥¿¥í¥°¤òÆÉ¤ß¹þ¤à¤¿¤á¤Ç¡¢¤½¤³¤Ë¤Ï¡¢¤¿¤È¤¨¤½¤Î¤Õ¤ê¤ò¤¹
-¤ë¤À¤±¤Ë¤·¤í¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò±Û¤¨¤ÆÌ䤤¹ç¤ï¤»¤ò¤¹¤ë¤¹¤Ù¤¬¤¢¤ê¤Þ¤»¤ó¡£
-
-contrib/dblink ¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹´Ö(cross-database)¤ÎÌ䤤¹ç¤ï¤»¤ò´Ø¿ô¸Æ½Ð¤·¤Ë¤è¤êµö
-¤·¤Þ¤¹¡£¤â¤Á¤í¤ó¡¢¥¯¥é¥¤¥¢¥ó¥È¤ÏƱ»þ¤ËÀܳ¤òÊ̤Υǡ¼¥¿¥Ù¡¼¥¹¤Ø¤âÄ¥¤é¤Ê¤¯¤Æ¤Ï¤Ê
-¤é¤º¡¢·ë²Ì¤ò¥¯¥é¥¤¥¢¥ó¥È¦¤Ç¥Þ¡¼¥¸¤·¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£
-
-4.25) ´Ø¿ô¤ÇÊ£¿ô¤Î¥í¥¦¤Þ¤¿¤Ï¥«¥é¥à¤òÊÖ¤¹¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
-
-7.3¤Ç¤Ï´Ø¿ô¤«¤é¡¢Ê£¿ô¤Î¥í¥¦¤äÊ£¿ô¥«¥é¥à¤ò´Êñ¤ËÊÖ¤»¤Þ¤¹¡£ http://
-techdocs.postgresql.org/guides/SetReturningFunctions¡£
-
-4.26)¤Ê¤¼¡¢PL/PgSQL ´Ø¿ô¤ÎÃæ¤«¤é°ì»þ¥Æ¡¼¥Ö¥ë¤ò³Î¼Â¤Ë create/drop ¤¹¤ë¤³¤È¤¬¤Ç¤­
-¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©
-
-PL/PgSQL ¤Ï´Ø¿ô¤ÎÆâÍÆ¤ò¥­¥ã¥Ã¥·¥å¤·¡¢¤½¤ÎÉÔ¹¬¤ÊÉûºîÍѤΤ¿¤á¡¢¤â¤· PL/PgSQL ´Ø¿ô
-¤¬°ì»þ¥Æ¡¼¥Ö¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È¡¢¤½¤Î¥Æ¡¼¥Ö¥ë¤Ï¤¢¤È¤Ç¥É¥í¥Ã¥×¤µ¤ìºÆºîÀ®¤µ¤ì¤Þ¤¹
-¤¬¡¢´Ø¿ô¤¬ºÆ¤Ó¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¡¢¥­¥ã¥Ã¥·¥å¤µ¤ì¤Æ¤¤¤ë¤½¤Î´Ø¿ô¤ÎÆâÍÆ¤Ï¤Þ¤À¸Å¤¤°ì»þ
-¥Æ¡¼¥Ö¥ë¤ò°ÍÁ³¤È¤·¤Æ»Ø¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£²ò·èºö¤Ï¡¢ PL/PgSQL ¤ÎÃæ¤Ç EXECUTE ¤ò°ì
-»þ¥Æ¡¼¥Ö¥ë¥¢¥¯¥»¥¹¤Î¤¿¤á¤Ë»È¤¦¤³¤È¤Ç¤¹¡£¤³¤ì¤Ç¡¢Ëè²óÌ䤤¹ç¤ï¤»¤ò¥Ñ¡¼¥¹¤·Ä¾¤¹¤³
-¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£
-
-4.27) ¤É¤Î¤è¤¦¤Ê°Å¹æ²½¥ª¥×¥·¥ç¥ó¤òÍøÍѤǤ­¤Þ¤¹¤«?
-
- ¡¦ contrib/pgcrypto¤Ë¤ÏSQLÌ䤤¹ç¤ï¤»¤ÎÃæ¤Ç»È¤¦¤¿¤á¤ÎÂô»³¤Î°Å¹æ²½¤ò´Þ¤ß¤Þ¤¹¡£
- ¡¦ ¥¯¥é¥¤¥¢¥ó¥È¤È¥µ¡¼¥Ð¤È¤Î´Ö¤ÎÅÁÁ÷¤ò°Å¹æ²½¤¹¤ë¤Ë¤Ï¡¢¥µ¡¼¥Ð¤Ç¤Ïpostgresql.conf
-    ¤Îssl¥ª¥×¥·¥ç¥ó¤òtrue ¤ËÀßÄꤷ¡¢pg_hba.conf¤Ë¤ÏŬÍѤ¹¤ëhost¤¢¤ë¤¤¤Ïhostssl
-    ¤Î¹Ô¤¬¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤½¤·¤Æ¡¢¥¯¥é¥¤¥¢¥ó¥È¤Ç¤Ïsslmode¤òdisable¤Ë¤·¤Æ¤Ï
-    ¤Ê¤ê¤Þ¤»¤ó¡£ (PostgreSQL½ãÀµ¤ÎSSLÀܳ¤Î¤«¤ï¤ê¤Ë¡¢stunnel ¤ä ssh ¥µ¡¼¥É¥Ñ¡¼
-    ¥Æ¥£À½¤Î°Å¹æ²½Å¾Á÷¤ò»È¤¦¤³¤È¤â²Äǽ¤Ç¤¢¤ë¤³¤È¤âµ­¤·¤Æ¤ª¤­¤Þ¤¹¡£)
- ¡¦ ¥Ð¡¼¥¸¥ç¥ó7.3 ¤Ç¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É¤ÏÊݸ¤µ¤ì¤ë»þ¤Ë¼«Æ°Åª¤Ë°Å
-    ¹æ²½¤µ¤ì¤Þ¤¹¡£¤½¤ì¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ïpostgresql.confÃæ¤Ç
-    PASSWORD_ENCRYPTION¤òÍ­¸ú¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
- ¡¦ ¥µ¡¼¥Ð¡¼¤òÁö¤é¤»¤ë¤Î¤Ë°Å¹æ²½¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»È¤¦¤³¤È¤â¤Ç¤­¤Þ¤¹¡£
-
+    4.24) Ê£¿ô¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»È¤¦Ì䤤¹ç¤ï¤»¤Ï¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤Ç¤¤Þ¤¹¤«¡©
+    
+   ¸½¹Ô¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹°Ê³°¤Ø¤ÎÌ䤤¹ç¤ï¤»ÊýË¡¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤È¤¤¤¦¤Î¤âPostgr
+   eSQL¤¬¥Ç¡¼¥¿¥Ù¡¼¥¹»ÅÍͤΥ·¥¹¥Æ¥à¥«¥¿¥í¥°¤òÆÉ¤ß¹þ¤à¤¿¤á¤Ç¡¢¤½¤³¤Ë¤Ï¡¢¤¿
+   ¤È¤¨¤½¤Î¤Õ¤ê¤ò¤¹¤ë¤À¤±¤Ë¤·¤í¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò±Û¤¨¤ÆÌ䤤¹ç¤ï¤»¤ò¤¹¤ë¤¹¤Ù
+   ¤¬¤¢¤ê¤Þ¤»¤ó¡£
+   
+   contrib/dblink
+   ¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹´Ö(cross-database)¤ÎÌ䤤¹ç¤ï¤»¤ò´Ø¿ô¸Æ½Ð¤·¤Ë¤è¤êµö¤·¤Þ¤¹
+   ¡£¤â¤Á¤í¤ó¡¢¥¯¥é¥¤¥¢¥ó¥È¤ÏƱ»þ¤ËÀܳ¤òÊ̤Υǡ¼¥¿¥Ù¡¼¥¹¤Ø¤âÄ¥¤é¤Ê¤¯¤Æ¤Ï
+   ¤Ê¤é¤º¡¢·ë²Ì¤ò¥¯¥é¥¤¥¢¥ó¥È¦¤Ç¥Þ¡¼¥¸¤·¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£
+   
+    4.25) ´Ø¿ô¤ÇÊ£¿ô¤Î¥í¥¦¤Þ¤¿¤Ï¥«¥é¥à¤òÊÖ¤¹¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+    
+   7.3¤Ç¤Ï´Ø¿ô¤«¤é¡¢Ê£¿ô¤Î¥í¥¦¤äÊ£¿ô¥«¥é¥à¤ò´Êñ¤ËÊÖ¤»¤Þ¤¹¡£
+   http://techdocs.postgresql.org/guides/SetReturningFunctions¡£
+   
+    4.26)¤Ê¤¼¡¢PL/PgSQL ´Ø¿ô¤ÎÃæ¤«¤é°ì»þ¥Æ¡¼¥Ö¥ë¤ò³Î¼Â¤Ë create/drop
+    ¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©
+    
+   PL/PgSQL ¤Ï´Ø¿ô¤ÎÆâÍÆ¤ò¥¥ã¥Ã¥·¥å¤·¡¢¤½¤ÎÉÔ¹¬¤ÊÉûºîÍѤΤ¿¤á¡¢¤â¤·
+   PL/PgSQL
+   ´Ø¿ô¤¬°ì»þ¥Æ¡¼¥Ö¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È¡¢¤½¤Î¥Æ¡¼¥Ö¥ë¤Ï¤¢¤È¤Ç¥É¥í¥Ã¥×¤µ¤ìºÆ
+   ºîÀ®¤µ¤ì¤Þ¤¹¤¬¡¢´Ø¿ô¤¬ºÆ¤Ó¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¡¢¥­
+   ¥ã¥Ã¥·¥å¤µ¤ì¤Æ¤¤¤ë¤½¤Î´Ø¿ô¤ÎÆâÍÆ¤Ï¤Þ¤À¸Å¤¤°ì»þ¥Æ¡¼¥Ö¥ë¤ò°ÍÁ³¤È¤·¤Æ»Ø¤·
+   ¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£²ò·èºö¤Ï¡¢ PL/PgSQL ¤ÎÃæ¤Ç EXECUTE
+   ¤ò°ì»þ¥Æ¡¼¥Ö¥ë¥¢¥¯¥»¥¹¤Î¤¿¤á¤Ë»È¤¦¤³¤È¤Ç¤¹¡£¤³¤ì¤Ç¡¢Ëè²óÌ䤤¹ç¤ï¤»¤ò¥Ñ
+   ¡¼¥¹¤·Ä¾¤¹¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£
+   
+    4.27) ¤É¤Î¤è¤¦¤Ê°Å¹æ²½¥ª¥×¥·¥ç¥ó¤òÍøÍѤǤ¤Þ¤¹¤«?
+    
+     * contrib/pgcrypto¤Ë¤ÏSQLÌ䤤¹ç¤ï¤»¤ÎÃæ¤Ç»È¤¦¤¿¤á¤ÎÂô»³¤Î°Å¹æ²½¤ò´Þ¤
+       ß¤Þ¤¹¡£
+     * ¥¯¥é¥¤¥¢¥ó¥È¤È¥µ¡¼¥Ð¤È¤Î´Ö¤ÎÅÁÁ÷¤ò°Å¹æ²½¤¹¤ë¤Ë¤Ï¡¢¥µ¡¼¥Ð¤Ç¤Ïpostgr
+       esql.conf¤Îssl¥ª¥×¥·¥ç¥ó¤òtrue
+       ¤ËÀßÄꤷ¡¢pg_hba.conf¤Ë¤ÏŬÍѤ¹¤ëhost¤¢¤ë¤¤¤Ïhostssl¤Î¹Ô¤¬¤Ê¤¯¤Æ¤Ï
+       ¤Ê¤ê¤Þ¤»¤ó¡£¤½¤·¤Æ¡¢¥¯¥é¥¤¥¢¥ó¥È¤Ç¤Ïsslmode¤òdisable¤Ë¤·¤Æ¤Ï¤Ê¤ê¤Þ
+       ¤»¤ó¡£ (PostgreSQL½ãÀµ¤ÎSSLÀܳ¤Î¤«¤ï¤ê¤Ë¡¢stunnel ¤ä ssh
+       ¥µ¡¼¥É¥Ñ¡¼¥Æ¥£À½¤Î°Å¹æ²½Å¾Á÷¤ò»È¤¦¤³¤È¤â²Äǽ¤Ç¤¢¤ë¤³¤È¤âµ¤·¤Æ¤ª¤­
+       ¤Þ¤¹¡£)
+     * ¥Ð¡¼¥¸¥ç¥ó7.3
+       ¤Ç¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É¤ÏÊݸ¤µ¤ì¤ë»þ¤Ë¼«Æ°Åª¤Ë°Å¹æ²½¤µ
+       ¤ì¤Þ¤¹¡£
+       ¤½¤ì¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ïpostgresql.confÃæ¤ÇPASSWORD_ENCRYPTION¤ò
+       Í¸ú¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
+     * ¥µ¡¼¥Ð¡¼¤òÁö¤é¤»¤ë¤Î¤Ë°Å¹æ²½¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»È¤¦¤³¤È¤â¤Ç¤¤Þ¤¹¡£
+       
 [ÌõÃí
    ¥ì¥×¥ê¥±¡¼¥·¥ç¥ó´ØÏ¢¤Î¹àÌܤ¬¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¤¬¡¢ÌõÃí¤Î¤ß»Ä¤·¤Æ¤¢¤ê¤Þ¤¹¡£
 
-    Jan Wieck¤µ¤ó¤Ë¤è¤ë¥«¥¹¥±¡¼¥É²Äǽ¤Ê¥Þ¥¹¥¿¡¼¡¦¥¹¥ì¡¼¥Ö·¿¤Î¥ì¥×¥ê¥±¡¼¥·¥ç¥ó Slony-I 
+    Jan Wieck¤µ¤ó¤Ë¤è¤ë¥«¥¹¥±¡¼¥É²Äǽ¤Ê¥Þ¥¹¥¿¡¼¡¦¥¹¥ì¡¼¥Ö·¿¤Î¥ì¥×¥ê¥±¡¼¥·¥ç¥ó Slony-I
         http://gborg.postgresql.org/project/slony1/projdisplay.php
 
     ÀаæÃ£Éפµ¤ó¤Ë¤è¤ë¥³¥Í¥¯¥·¥ç¥ó¥×¡¼¥ë ¥µ¡¼¥Ð PGPool
@@ -1340,67 +1453,70 @@ PL/PgSQL 
     ¤Î¼ÂÁõ¤ò¹Ô¤¤¤Þ¤·¤¿¡£
         http://www.postgresql.jp/wg/dt/index.html
 ]
-
-¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬ 
-
-                        PostgreSQL¤Î³ÈÄ¥¤Ë¤Ä¤¤¤Æ¤Î¼ÁÌä                         
-                                                                               
-5.1) ¼«Ê¬¤Ç½ñ¤¤¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤ò psql ¤ÎÃæ¤Ç¼Â¹Ô¤¹¤ë¤È¥³¥¢¡¦¥À¥ó¥×¤·¤Æ¤·¤Þ¤¦¤Î
-¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
-
-ÌäÂê¤Ï¿§¡¹¤È¹Í¤¨¤é¤ì¤Þ¤¹¤¬¡¢¤Þ¤ººÇ½é¤Ë¡¢ºîÀ®¤·¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤òñÆÈ¤Î¥Æ¥¹¥È¥×
-¥í¥°¥é¥à¤Ë¤·¤Æ»î¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£
-
-5.2) PostgreSQL ÍѤ˽ñ¤¤¤¿¤Á¤ç¤Ã¤ÈÁÇŨ¤Ê¿·¤·¤¤·¿¤ä´Ø¿ô¤òÄ󶡤·¤Æ¥×¥í¥¸¥§¥¯¥È¤Ë
-¹×¸¥¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡©
-
-³§¤µ¤ó¤Î¹Ô¤Ê¤Ã¤¿³ÈÄ¥¤ò¡¢pgsql-hackers ¥á¡¼¥ê¥ó¥°¡¦¥ê¥¹¥È¤ËÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£¤½¤·
-¤Æ¡¢¤æ¤¯¤æ¤¯¤Ï¤½¤¦¤·¤¿³ÈÄ¥¤¬ contrib/ ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤ËÆþ¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·
-¤ç¤¦¡£
-
-5.3) ¥¿¥×¥ë¤òÊÖ¤¹ C¸À¸ì¤Î´Ø¿ô¤Ï¤É¤Î¤è¤¦¤Ë½ñ¤­¤Þ¤¹¤«¡©
-
-¥Ð¡¼¥¸¥ç¥ó7.3°Ê¹ß¤ÎPostgreSQL¤Ç¤Ï¡¢¥Æ¡¼¥Ö¥ë¤òÊÖ¤¹´Ø¿ô¤ò C, PL/PgSQL¡¢¤½¤·¤Æ SQL
-¤Ë¤Æ´°Á´¤Ë¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¾Ü¤·¤¯¤Ï¥×¥í¥°¥é¥Þ¥¬¥¤¥É¤Î¾ðÊó¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£C¤ÇÄêµÁ
-¤µ¤ì¤¿É½¤òÊÖ¤¹´Ø¿ô¤ÎÎãÂ꤬contrib/tablefunc¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹¡£
-
-5.4) ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤òÊѹ¹¤·¤Þ¤·¤¿¡£ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤âÊѲ½¤¬¸«¤é¤ì¤Ê¤¤¤Î¤Ï¤Ê¤¼
-¤Ç¤¹¤«¡©
-
-¤¤¤¯¤Ä¤«¤Î Makefile ¤¬¥¤¥ó¥¯¥ë¡¼¥É¡¦¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÅ¬Àڤʰ͸´Ø·¸¤ò»ý¤Ã¤Æ¤¤¤Þ
-¤»¤ó¡£make clean ¤ò¤·¤Æ¤«¤é¤â¤¦°ìÅÙ make ¤ò¹Ô¤Ê¤ï¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤â¤·¡¢GCC
-¤ò¤ª»È¤¤¤Ç¤¢¤ì¤Ð configure ¤Î --enable-depend ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢¥³¥ó¥Ñ¥¤¥é¤Ë
-°Í¸´Ø·¸¤ò¼«Æ°Åª¤ËÄ´¤Ù¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£
-
-¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬ 
-
+     _________________________________________________________________
+   
+                       PostgreSQL¤Î³ÈÄ¥¤Ë¤Ä¤¤¤Æ¤Î¼ÁÌä
+                                      
+    5.1) ¼«Ê¬¤Ç½ñ¤¤¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤ò psql
+    ¤ÎÃæ¤Ç¼Â¹Ô¤¹¤ë¤È¥³¥¢¡¦¥À¥ó¥×¤·¤Æ¤·¤Þ¤¦¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+    
+   ÌäÂê¤Ï¿§¡¹¤È¹Í¤¨¤é¤ì¤Þ¤¹¤¬¡¢¤Þ¤ººÇ½é¤Ë¡¢ºîÀ®¤·¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤òñÆÈ¤Î
+   ¥Æ¥¹¥È¥×¥í¥°¥é¥à¤Ë¤·¤Æ»î¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£
+   
+    5.2) PostgreSQL
+    ÍѤ˽ñ¤¤¤¿¤Á¤ç¤Ã¤ÈÁÇŨ¤Ê¿·¤·¤¤·¿¤ä´Ø¿ô¤òÄ󶡤·¤Æ¥×¥í¥¸¥§¥¯¥È¤Ë¹×¸¥¤·¤¿¤¤¤Î¤
+    Ç¤¹¤¬¡©
+    
+   ³§¤µ¤ó¤Î¹Ô¤Ê¤Ã¤¿³ÈÄ¥¤ò¡¢pgsql-hackers
+   ¥á¡¼¥ê¥ó¥°¡¦¥ê¥¹¥È¤ËÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£¤½¤·¤Æ¡¢¤æ¤¯¤æ¤¯¤Ï¤½¤¦¤·¤¿³ÈÄ¥¤¬
+   contrib/ ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤ËÆþ¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£
+   
+    5.3) ¥¿¥×¥ë¤òÊÖ¤¹ C¸À¸ì¤Î´Ø¿ô¤Ï¤É¤Î¤è¤¦¤Ë½ñ¤¤Þ¤¹¤«¡©
+    
+   ¥Ð¡¼¥¸¥ç¥ó7.3°Ê¹ß¤ÎPostgreSQL¤Ç¤Ï¡¢¥Æ¡¼¥Ö¥ë¤òÊÖ¤¹´Ø¿ô¤ò C,
+   PL/PgSQL¡¢¤½¤·¤Æ SQL
+   ¤Ë¤Æ´°Á´¤Ë¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¾Ü¤·¤¯¤Ï¥×¥í¥°¥é¥Þ¥¬¥¤¥É¤Î¾ðÊó¤ò¸«¤Æ¤¯¤À¤µ¤¤
+   ¡£C¤ÇÄêµÁ¤µ¤ì¤¿É½¤òÊÖ¤¹´Ø¿ô¤ÎÎãÂ꤬contrib/tablefunc¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹¡£
+   
+    5.4)
+    ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤òÊѹ¹¤·¤Þ¤·¤¿¡£ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤âÊѲ½¤¬¸«¤é¤ì¤Ê¤¤¤Î¤Ï¤Ê¤¼¤
+    Ç¤¹¤«¡©
+    
+   ¤¤¤¯¤Ä¤«¤Î Makefile
+   ¤¬¥¤¥ó¥¯¥ë¡¼¥É¡¦¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÅ¬Àڤʰ͸´Ø·¸¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£make
+   clean ¤ò¤·¤Æ¤«¤é¤â¤¦°ìÅÙ make ¤ò¹Ô¤Ê¤ï¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤â¤·¡¢GCC
+   ¤ò¤ª»È¤¤¤Ç¤¢¤ì¤Ð configure ¤Î --enable-depend
+   ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢¥³¥ó¥Ñ¥¤¥é¤Ë°Í¸´Ø·¸¤ò¼«Æ°Åª¤ËÄ´¤Ù¤µ¤»¤ë¤³¤È¤â¤Ç¤­
+   ¤Þ¤¹¡£
+     _________________________________________________________________
+   
 [ÌõÃí¡§
   ÆüËܸìÈǤÎÀ½ºî¤Ë¤Ä¤¤¤Æ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
 
   ºÇ½ª¹¹¿·Æü:   2005ǯ01·î12Æü
   ËÝÌõ¼Ô:       ·¬Â¼ ½á (Jun Kuwamura <juk at PostgreSQL.jp>)
 
-  ¤³¤ÎFAQ¤ÎÏÂÌõ¤ÎºîÀ®¤Ë¤¢¤¿¤ê¶¨ÎϤò¤·¤Æ¤¯¤À¤µ¤Ã¤¿Êý¡¹(·É¾Î¤Ïά¤µ¤»¤Æ¤¤¤¿¤À¤­¤Þ¤¹):
+  ¤³¤ÎFAQ¤ÎÏÂÌõ¤ÎºîÀ®¤Ë¤¢¤¿¤ê¶¨ÎϤò¤·¤Æ¤¯¤À¤µ¤Ã¤¿Êý¡¹(·É¾Î¤Ïά¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤¹):
 
-                ÅÄÃç Ì­(Minoru TANAKA <Tanaka.Minoru at keiken.co.jp>)
+                ÅÄÃç Ì(Minoru TANAKA <Tanaka.Minoru at keiken.co.jp>)
                 Àаæ Ã£É×(Tatsuo ISHII <t-ishii at sra.co.jp>)
                 óîÆ£ ÃοÍ(Tomohito SAITOH <tomos at elelab.nsc.co.jp>)
                 ÇϾ젠ȥ(Hajime BABA <baba at kusastro.kyoto-u.ac.jp>)
                 ²¬ËÜ °ì¹¬(Kazuyuki OKAMOTO <kokamoto at itg.hitachi.co.jp>)
                 ¾®¿û ¾¼°ì(Shoichi Kosuge <s-kosuge at str.hitachi.co.jp>)
                 »³²¼ µÁÇ·(Yoshiyuki YAMASHITA <dica at eurus.dti.ne.jp>)
-              &nb