Postgre SQL

̶߮ฮ ϊৎϦૡ೶য

                                                        ߳ଔ߮ϖग़χϪરϪड़ 
†¯ÂÀÌ·{ Postgre SQLÃ{Y{ÃZ´ËZadˀË|»

߳ϡ̳߮ϥΨϤঘΧଣ΋Ϋ΋ 
€§Êf Ë€‹Ê^fn» 
É{€m€Æ»Y¾»ÂÅ 

{Y{€y 

PostgreSQLʧ€ » 
|/‹Z]Ê» object-RelationalORDBMSÃ{Y{ÃZ´ËZaÊfˀË|»ºfˆÌ‡®ËPostgreSQL 
Z/Ì¿€¨Ì·Z¯ÃZ´Œ/¿Y{Ê/¸¯€]ɀeÂÌb»Z¯¹Â¸ŸŠz]{POSTGRES version 4.21…Z‡Y€]į 
 d‡YÃ|‹Ã{Y{Ä ‡Âe 
½Â/qÊËZ/ÅÃÁ€/³ÁdËY|/ÅMichael stonebreakerˆ/§Á€a–/‡ÂePOSTGRESÃÁ€a 
¹Â/¸Ÿ{Z/ÌÀ],AROŠ/eYcZ¬Ì¬veÃY{Y,DARPAZ§{Äf§€ŒÌacZ¬Ì¬veÉZÅÃÁ€a†¿YƒM 
 |¿{Â]½M½ZÌ»Zu,ɀ´Ë{Äfˆ]YÁÉZ”ŸYÁESL,NFSʸ» 
ÁSQL92/SQL99½Z/]YÁ|/‹Z]Ê/»ʸY|¯¾ËYYopen-sourceÄzˆ¿PostgreSQL 
 |À¯Ê»Ê¿Z^ÌfŒaɁÁ€»YÉZÅY‚]Y€´Ë{ 
ÃZ/´ËZaYʔ ]{ object-RelationalºÌÅZ¨»YÉZ̈]¹Z´ŒÌa½YÂÀ ]POSTGRES½ÂÀ¯Y 
Y,ʼË|/«RDBMSRelationalÃZ´ËZadˀË|»ºfˆÌ‡{ {{€³Ê»ē€ŸÉZneÉZÅÃ{Y{ 
ÉZƼfˆ/̇{Á|/‹Ê/»Ê¿Z^ÌfŒ/a|/¿{Â]½Â/´¼ÅÊeZ¨/¶»Z‹Ê´¼Åį,Äfˆ]YÁÉZŹZ¿ğ¼n»
Date,Money ,Character , Number Floating point ¶»Z/‹ʟYÂ/¿Y,Ê/¸ §ÊmZ/y 
ÉZ/ÅÄ/»Z¿€]ÉY€/]µ|/»¾/ËYÄ/¯d‡YÊÆË|]‚Ì¿ĸXˆ»¾ËY|‹Z]ʻʿZ^ÌfŒÌa¶]Z«string,Integer 
 dˆÌ¿ʧZ¯Ã|ÀËMData processing 
ZÀ¯{|‹Z]YY{YºfˆÌ‡Ä ‡ÂeÊÌ¿YÂe€]Z¯įʬˀ˜]YʧZ“YºÆ»d̸]Z«|ÀqPostgreSQL 
 {Y{Ê»ē€Ÿ€ËºÌÅZ¨» 
Inheritanc 
Data Type 
Function  

|‹Z]Ê»ɀfŒÌ]¥Z˜ ¿YÁZÅd̸]Z«¶»Z‹įɀ´Ë{ÉZÅY‚]Y‚Ì¿Á
Constraints 
Triggers 
Rules 
Transactional Integrity  
¶/]Z«Ád‡YÃ{Y{Y€«Object-RelationalÃ{Y{ÃZ´ËZaÀ»{YPostgreSQLZÅd̸]Z«¾ËY 
Object-oriented½YÂ/ÀŸÄ/]Ä/¯Ê/ËÃ{Y{ÉZ/ÅÃZ/´ËZaZ/]ɂËZ¼eÄmÁ©Â§ºÌÅZ¨»įd‡YÄmÂe 
¾ËY€]Z/À],|¿Â/‹Ê»[ˆv»|¿Y|¿¶»Z¯ÉZ³Z‡ʼË|«Äfˆ]YÁÃ{Y{ÉZÅÃZ´ËZaZ]Á|¿YÃ|‹ē€Ÿ 
Ã{{Z/»Y{Y{YObject-Orientedµ|/»ÉZ/Åd/̸]Z«Yʔ/ ]PostgreSQLÄ/¯|/Àq€Å
.{‹Ê»ÄfyZ‡RelationalÃ{Y{ÉZÅÃZ´ËZa 

PostgreSQL€]ÉYÄrzËZe 

ÄfyZÀ‹PostgreSQL½YÂÀŸÄ]įObject-RelationalÃ{Y{ÉZÅÃZ´ËZadˀË|»ºfˆÌ‡ÁÁ€»Y 

Ä/¯POSTGRESÉY‚/§Y¹€¿Äfˆ]Y{‹Ê»[Z˜ypostgres 95ďÔy˜]Ád‡YÃ|‹ 
Ä/Å{®/ˁYŠÌ/]Z/]PostgreSQL d/‡YÃ|/‹Ä/f§€³€]|‹|Ì·Âeʸ¯€]{ZÌ¿€¨Ì·Z¯ÃZ´Œ¿Y{{ 
Äzˆ/¿½Z/»‚¼Åµ€/fÀ¯Ã|ÀÅ{ÄWYYįd‡ZÌ¿{€‡Y€‡{…‡¾ËYÃ{Y{ÃZ´ËZa¾Ë€eÄf§€ŒÌa,Ä ‡Âe 
,subselectsÂ//e{ÂeÉZƌ//À˂³¶»Z//‹SQLÉZÅZfyZ//‡Ä//¼ÅYÊ¿Z^ÌfŒ//a,Â//Àf»ÉZ//Å 
ÉZ/Æ¿Z]YÉ{Z/ˁZ̈/]{Y| eÁ|À¯Ê»¦Ë€ e€]Z¯įÉYÃ{Y{Y¿YÁž]YÂe,Transactions 
 |‹Z]Ê»python,Tcl,perl Java, c++,c|À¿Z»µZeY¶]Z«  

ʸ¯€]ÃZ´Œ¿Y{{PostgreSQLÃÁ€a 

POSTGRES½MY†/aÁ|/Ë{€³Z/£MµZ‡{POSTGRES DBMSÃÁ€aÉY€mY 

¶/]Z«µZ/‡{ºfˆ/̇demo wareY‚/§YÄ/¿Â¼¿¾Ì/·ÁYÁd/‹Y~³€‡dŒaYZŒf¿Y¾Ë|Àq 
µZ/‡¾/WÁƒÃZ/»{Äzˆ/¿ |/Ë{€³Ä/“€ŸµZ‡AGM-SIGMOD†¿Y€¨À¯{ÁÃ{Z¨f‡Y 
ŠÀ¯YÁ{POSTGRES¾Ì¿Y«ºfˆÌ‡ |‹Ã{Y{Y€«{YM½Y€]Z¯Y|ÀqÉ{Y| eZÌfyY{
(system A commentary on POSTGRESrules ¾Ì¿Y«ºfˆÌ‡¾Ì·ÁYY{Z¬f¿Y®ËÄ] 
Z/ÅviewÁCaching,Z/Åprocedure,ZÅRuleÉÁÊeZuԘYÊÀ Ë|‹ÊuY€—0Y{|n»the 
µZ/‡{|Ë{€³ē€Ÿ¾WÁƒ{|Ë|m¾Ì¿Y«ºfˆÌ‡ÃY€¼ÅÄ]½MÄzˆ¿ÁÃ{Y{ÃZ´ËZaºfˆÌ‡{ 
d/‡YÂy{Ã|/ÀÀ¯Y€/mY®/Ë,Â/Àf»€ËZy}dˀË|»ºfˆÌ‡YÊ¿Z^ÌfŒa½{¼¿ħZ“YZ] Äzˆ¿ 
É| ]ÉZÅŠËY€ËÁ¾ÌÀr¼Å |‹YZ]{YÁÁÊuY€—¿YŠËY€ËÁ¶]Z«¾Ì¿Y«ºfˆÌ‡®ËÁÃ|‹ÄÀÌÆ] 
Ã|‹‚¯€¼f»ÉY|ËZaÁÊËZn]ZmÉZÆf̸]Z«ÉÁ€],ZÆf¼ˆ«YÉZ̈]{POSTGRES 95Äzˆ¿Ze 
 |¿{Â] 
cZ/ŸÔ—Y¶/̸veºfˆ/̇¶/Ì^«YÊËZ/ÅÄ/»Z¿€]|Ì·ÂeÁcZ¬Ì¬veÉY€mY€Ì³{,POSTGRE 
cZ/ŸÔ—YÃ{Y{ÃZ/´ËZa,Z/ÅÃZf/‡½{€/¯µZ/^¿{ÉY€/]Ã{Y{ÃZ/´ËZa,d/mÂe»ÉÁÀÆ]µ€fÀ¯,Ê·Z» 
POSTGRESZÆÅZ´Œ/¿Y{Yʔ/ ]{¾Ì/Àr¼Å |‹ÊËZ̧Y€¤mcZŸÔ—YºfˆÌ‡¾Ë|ÀqÁÊ°‹‚a 
Ä/]ZÅ|/ ]Ä/¯tllustratecZ/ŸÔ—YÉÁZ/À§d/ËZÆ¿{ |/Ë{€³Ê/‹Â»MY‚/]Y®/ËÄ/]¶Ë|/^e 
Y½M,ž/m€»ÉZÅ|/¯¾f§€/³Z/ÌfyY{Z/] d‡YIBMÄ]Äfˆ]YÁ½ÂÀ¯YÁd‡ÂÌaInformixl 
ÃÁ€//a{Ã{Y{ÃZ//´ËZa€Ë|//»¾Ì//·ÁY,€//yYÁY{POSTGRES½Z//‡¾Ë|//] dyZ//‡ÉZ//ne 
{Â/]t“YÁÁ|‹€]Y€]Á{{YM½Y€]Z¯{Y| eµZ‡{ |Ë{€³sequoia 2003ʼ¸ŸcZ^‡Zv» 
Ã{Y{ÃZ/´ËZaÉÁcZ/¬Ì¬veÄ/]|/ËZ]Ä/¯YÉ{ZˁZ̈]½Z»,Ê¿Z^ÌfŒaÁÄÌ·ÁYÉZÅ|¯YÉY|Æ´¿į 

Z/ÅÊ¿Z^ÌfŒ/aZ/]¾/ËYŠÅZ/¯d/ÆmÊ/‹Ôe{¾ËY€]Z/À]d/‡YÃ{Y{Z/fyY{ÂyÄ]|‹Ê»¥€
|̌z]½ZËZa{ÂyZ¯Ä],Äzˆ¿Z]ʼ‡c]Berkeley POSTGRES ÃÁ€a 

postgres95 

Á|¿{Á‚§YPOSTGRESÄ]SQL½Z]ºm€f»®ËJolly Chen ,Andrew YuµZ‡{ 
 |¿{Y{ZŒf¿Y[ÁªË€—YYpostgres 95 0Z^«Z f» 
ŠÅZ/¯|/{‚/Ì¿½MÁY|/¿YÁd/§€³¶°/‹ANSI C{¶/»Z¯—Ä]Postgres95 
{Y|¿Zf‡Y€]ZÀ] |¿{Á‚§YºfˆÌ‡Ê]ZˁZ]d̸]Z«ÁÉÁÀÆ]Ä],Ê¿Á{cZ¬Ì¬veYÉZ̈]¾ÌÀr¼Å d§ZË  
d/§ZËZŒ/f¿Y,Äzˆ/¿Y€f Ë€/‡|{Ze,POSTGRES95,I.O.XÄzˆ¿,†¿Z°‡Á 
{º//Æ»ÉZ//Åd§€Œ//ÌaÄ//¸¼mY€//ˁ{YÂ//»,{Â//m»ÉZ//Å{Y€ËYYÊ//y€]ž//§Z//À¯{¾Ì//Àr¼Å 
’ËÂ/ eSQLZ/],postquelqueryd/‡YÂy{½Z/] |¿Â‹Ê»Ã{€¼‹€]POSTGRES 95 
Á|//‹Ê//¼¿Ê¿Z^ÌfŒ//a 

d̸]Z«Yʸ^«ÉZÅÄzˆ¿{Äf^·Y |Ë{€³ÄÌ^ eSERVER{|Ë{€³

Aggregate  |/‹Ê/»ɁZ/‡ÄÌ^/‹{€/¯Ê»¦Ë€ eSQL{€]Z¯įÊ ]YÂe–‡Âed̸]Z«¾ËY 
{Ã{Z¨f/‡Yd/ÆmGROUP BYcYZ/^Ÿ½Â/qÊeZ/¿Z°»YÁ|¿|/‹ɁZ‡Ã{ZÌaÃZ]Á{function 
Â//œÀ»Ä//] |//¿Z»Ê«Z//]C{ʈ//Ë¿Ä//»Z¿€]d//ÆmLibpq†Ì§€//fÀËY¾Ì//Àr¼Å|//‹Ã{Á‚//§YQuery 
SQLÉZ/ÅqueryZ/]ÉYÃÁZ/v»•Z/^eYÉY€]psql ¹Z¿Ä]|Ë|mÄ»Z¿€]®Ë,ZÅÄ»Z¿€]²ÀËÂfÌ¿Z» 
 |Ë{€³ºÅY€§ 
TCL€/]Ê/Àf^»ÉZ/ÅÃ|/¿€Ì³†ËÁ€/‡YÄ/¯Libpgtcl¹Z/¿Ä/]|Ë|mFront-endÄ¿Zz]Zf¯®Ë 
TCLcYÂf/‡{Ä/¯{Â/¼¿ÃZ/‹YpgtclshÄf‡ÂaÄ]½YÂeÊ»Ŀ¼¿ÉY€]|‹ħZ“Y|À¯Ê»Ê¿Z^ÌfŒa 
 d‡YÃ{€¯ºÅY€§ postgres95 Back-end Z]TCLÄ»Z¿€]•Z^eYÉY€]É|Ë|m 

±‚/]€Ë{Z/¬»À/Ìy}ÉY€/]ÃYZ/ÆÀe,ɁZ/‡Ä/¿ÁYÁ |/Ë{€³ɀ´¿Z]I.arge-objecet–]Y 
 |Ë{€³¥~uºfˆÌ‡¶]Z«ɁZ‡Ä¿ÁYÁ|Ë{€³ 
|‹¥~uInstance-level rule systemÄ/¯Ê]Â/y½Z/¼ÅÄ/]Ä/f^·Y,{Y{€aÊ»SQLlËYÉZÅY‚]Y¦ÌÂeÄ],€fz»Â»M{Ây®Ë 
ÉZ/mÄ/]GNU make Y {€/¯Ê/»€Œ/fÀ»žm€»ÉZÅ|¯ÃY€¼ÅÄ]POSTGRES95  

Ã|Œ/¿sԏYGcc€¸]ZÌ»Z¯–‡Âedˆ¿YÂeÊ»POSTGRES95¾ÌÀr¼Å |‹Ã{Z¨f‡YBSD mak 
 {‹¶ËZb»Z¯ 

PostgreSQL 
¹Z/¿Z/»¾ËY€]Z/À]dˆ/Ì¿\/‡ZÀ»Z/¯Ä/»Y{YÉY€/]postgres95¹Z¿|‹ŽzŒ»į{Â]µZ‡{ 
SQLÉZ/Æf̸]Z«Ä/¯€ÌyYÉZÅÄzˆ¿ÁÄÌ·ÁYPOSTGRESĘ]Y…Z° ¿YÉY€]YPostgreSQL 
‚/Ì¿YZÅÄzˆ¿ÉY~³ÃZ¼‹½Z»¾Ì¼Å{Á|‹Z]Z³Z‡ZÅÄzˆ¿¹Z¼eZ]ZeºË|˂³€]|¿{Â]YY{Y 
cÔ°Œ/»­{ÁŽÌzŒ/eÉÁ€/]postgres95Ä /‡ÂeÉY€/]ʸ/Y|/̯Pe ºË{¼¿Z£M6.0Y 
Ä/mÂe\/¿YÂmÄ/¼ÅÄ]½ZÀr¼ÅįÊ·Zu{PostgreSQLZ] {Â]Back-endÉZÅ|¯{{Âm» 
ÉZ/Åd§€Œ/Ìa d/§ZËŠËY‚/§YZ/Åd/̸]Z«ÁZ/ÅY‚]Y¶/̼°eÁÄ /‡ÂeÉÁ€/]d̼ÅYÁ|̯Pe,|‹Ê» 
|À‹Z]Ê»€Ë{Y»¶»Z‹PostgreSQL€Ì´¼Œq 
multiversion concurrency control½Z»‚¼Å€ˆ¨»|ÀqÉZŀ·€fÀ¯Z]Table-level¶¨« 
Z/ÅÃ|Àˆ/Ë¿į­€fŒ»cZŸÔ—Y½|¿YÂyZ]Ze{Y{Ê»ÁZmYZÅÃ|À¿YÂyÄ]€Ì̤e¾ËY,|¿|‹¾Ë‚´ËZm( 
ÃZ´ËZaįÊ»Z´ÀÅpg-dumpY|À‹Z]{Z«Á|ÀÅ{Ä»Y{Y½Z»‚¼ÅcÄ]|¿{Â]½M‰Z´¿µZu{ 
¶/Ì^«YÊ/¼Æ»Z̈/]ÉZ/ÅY‚]Y |ÀËZ¼¿ÄÌÆe²¿{Ô]½Z^ÌfŒa d‡Y{YMZÅQueryÄ]x‡ZaÉY€]Ã{Y{ 
 |¿|‹ÄÌ^ e defaults,triggers ,constrains, subselects

Quoted ¶»Z//‹|¿|//‹ħZ//“Yºfˆ//̇ Ä//]Ä//¯SQL92½Z//]Z//]Z³Z//‡ʧZ//“YÉZ//ÅY‚]Y 
ÉZ/ÅÉ{ÁÁTypa casting,Ê/œ¨·cÔ/¼m`/ËZe½{€/¯tÌv/eidentifier,primary key 
 |¿{Â]µZ¼Ì‡{Y‚´ÅtÌv{Y|ŸYÁɀÀËZ] 
Y¿YÁ|Ë|mÉZÅdate/timeY¿YYʠ̇Á¦Ì—¶»Z‹Á|¿|‹sԏYZÅBuilt-in type 
Backe-endÉZÅ|/¯Ä/̸¯dŸ€/‡d/§ZËZŒ/f¿Y6.0Äzˆ¿įÊ»Z´ÀÅ |¿|Ë{€³|Ë|mÊËZ̧Y€¤m 
 d§ZËŠÅZ¯|{ZeZÆ¿M½|‹Z¯Ä]Ã{Z»M½Z»ÁŠËY‚§Y|{ZeÊ^ˀ¬ec] 

PostgreSQL 

ºfˆ//̇€Ë|//»{Y{Ã|//ƟÄ//]YZ//ÅÃ|//ÀÅ{†ËÁ€//‡ɀ//^ÅÁ\//¿Ä//¯ʐ//z‹Ê//¸¯Â//˜] 

YPostgreSQLYÃ{Z¨f/‡YÊËZ/¿YÂeįd‡Yʈ¯€]Z¯Á{‹Ê»[Z˜y(Administrator 
¾/ËY|Ì/‹Z]Äf/‹Y{Ä/mÂeÄ/f^·Y |/‹Z]PostgreSQL¦/¸fz»ÉZÆf¼ˆ/«Ä]ʇ€f‡{Zf‡YÂyÁÄf‹Y{ 
YÊf]Z/i0Ô»Z/¯{Á|/u‚Ì¿žmY€»ÁcY|Àfˆ»¾ËYÁ{‹€Ìˆ¨e{Á|v»ʸÌyc]|ËZ^¿cZuԘY 
dataYÁ\¿ČËÄyZ‹½YÂÀŸÄ]/usr/local/pgsqlYZ» |À¯ʼ¿½ZÌ]dˀË|»ÉZÅÄËÁÉY€] 
Z¼‹dËZ‡{ZÅ…{M¾ËY,{‹Ê»{ZËÃZ´ËZaÉZƸËZ§ÉÂfv»ÄyZ‹½YÂÀŸÄ] /usr/local/pgsql/ 
¶/]Z«Administrator’s Guide{€fŒ/Ì]cZ/ÌW‚mÄ/˜]Y¾/ËY{Ä/¯-|À/‹Z]Â/Àf»d‡Y¾°¼» 
Z/ÅKeywordZ/ËÉZ/ÌfyYcYZ/^Ÿ½Z/ËZ¼¿,Z/Æf¯Y€]Âf/‡{®Ë‰Z´¿{ |À‹Z]Ê»…€f‡{ 
Ê/»Y|/mºÅY ”_“É{¼Ÿ•Â˜y–‡ÂeÁ{€Ì³Ê»Y€«{,}ZÅ{Ó¯M{įÄr¿M€ÅÁ|ÀfˆÅ 
½ZŒ/¿YÊeYÂf/‡{Z/ŵZ/j» |/ËZ¼¿[Zzf¿YYcYZ^Ÿ½MYÊ°Ë|ËZ]Z¼‹į|ÀfˆÅ¾ËY½ZËZ¼¿,|¿Â‹ 
Äf/‡Âa®/ˁYįÊeYÂf‡{d‡Y¾°¼»,|¿YÃ|‹Y€mYʨ¸fz»ÉZÅÄ»Z¿€]ÁZÆ]ZˆuYį{Y{|ÀÅYÂy 
Ä/ËÁ€]Z/¯®/Ë[ZˆuYįÊeYÂf‡{Á|¿Â‹Ê»Á€‹$Ó{d»ÔŸZ]|¿Â‹Ê»Y€mYUNIX 
cZvÌ/“ÂeÃY€/¼ÅÄ/]ÁÉY~/³d»ÔŸZyÉYĿ³Ä]|¿Â‹Y€mY|ËZ] postgresZË root|À¿Z» 

–ËY€/‹Ä/]Äfˆ/]Z/ËÁ|¿Â/‹Á€/‹ ”=>”d»ÔŸZ]SQLcYÂf‡{d‡Y¾°¼»¾ÌÀr¼Å |À¯ÄWYY 
 |À‹Z]Äf‹Y|¿Z£M{Êf»ÔŸĿ´rÌÅ 

postgreSQL½Y€^ÅYÉY€]ÊËZ¼ÀÅY 
\¿ÄËÁ  

ZÆË|À»ZÌ¿ 

d‡€Æ§€Ë{ |À¯Y€mYYpostgreSQL|¿YÂeÊ»†°Ì¿ÂË€fˆ]Z]Z³Z‡¹{»®Ëʸ¯—Ä]

d‡YÃ|‹Ã{ÁMÄËÁÉZÅ€fˆ]Z]Ę]Y{ÊnËYcÓY‡,žËÂe|À‡ 
d‡Y¹ÓpostgreSQL¾fyZ‡ÉY€]€ËÉY‚§Y¹€¿ÉZÅÄfˆ] 
GNU make {€/¯|/ÀÅYÂz¿Z/¯makeÉZÅÄ»Z¿€]€´Ë{d‡YZÌ¿{»GNU make 
{‹Ê»Ä̏ÂedˆÅISO/ANSIC€¸ËZb»Z¯®ËÄ]ZÌ¿ {‹Ê»\¿gmake¹Z¿€Ë{\¸£Y 
{Y|/ eZ/]Ä/¯|/‹Z]Ê/»d/̸]Z«¾ËYÉYY{postgreSQLÊ·Á {‹Ã{Z¨f‡YGCCÄzˆ¿¾Ë€yMY 
|/À»ZÌ¿,ž/ˁÂeÄfˆ/]½{€/¯Z/]Â/œÀ»Ä]µÁYĸu€»{ d‡YZ³Z‡¦¸fz»ÉZÅ€¸ËZb»Z¯YÉ{Zˁ 
Ê]Z//ˁZ]Á•Â//˜yŠËY€//ËÁ{d·ÂÆ//‡Â//œÀ»Ä//]GNU ReadlineÄ//¿Zz]Zf¯ |Ì//‹Z]Ê//»gzip 
Ê»|ÌfˆÌ¿½MYÃ{Z¨f‡YÄ]¶ËZ»Är¿ZÀq |‹|ÅYÂyÃ{Z¨f‡Y‘€§ŠÌacÄ]cYÂf‡{ÄrzËZe 

Ä/¿Zz]Zf¯NetBSDÉÁ€/] |ÌÀ¯[Zzf¿YYWithout – readlineÄÀ˂³,É|À]€°Ìa{|Ì¿YÂe 
 {‹Ê»Ã{Z¨f‡Y½MY,|‹Z^¿{Âm»libreadline€³YÁ|ÀfˆÅZ³Z‡readlineZ]libedit 
ÁCygwinÉY‚/§Y¹€/¿ÉZ/ÅÄfˆ/]|/À»ZÌ¿Z¼‹Á|ÀËÁZËNTÁ|ÀËÁÉÁ€]\¿œÀ»Ä] 
 |ÌWZ»€§Ä mY€»lËYcÓYR‡¶§Ä]€fŒÌ]cZÌW‚mYÔ—YÉY€] |ÌfˆÅeygip 
|‹Z]ʼ¿ÉZmÄÌ·ÁYÉ|À]€°Ìa{Á|ÀfˆÅÉZÌfyY{‹Ê»ʇ€]Ä»Y{Y{įÉY‚§Y¹€¿ÉZÅÄfˆ] 
Ä/»Z¿€]½Z/]{Z/nËYÉY€/] |/ÌÀ¯d/«{€/ˁ{YÂ/»Ä] |ÀfˆÅZÌ¿{»ʸYÉZÅÄÀ˂³\¿Y†aÁ 
ÉZ/ÅÄ/¿Zz]Zf¯¶»Z/‹Ä/¯ |Ì/‹Z]Ê/»Perl¶/»Z¯\/¿®/Ë|/À»ZÌ¿Z¼/‹PL/PerlÁ€‡ʈË¿ 
Ê/»­€fŒ»ÉZÅÄ¿Zz]Zf¯L‚mZŀfˆ]€j¯Y{ZÅÄ¿Zz]Zf¯¾ËY |‹Z]Ê»|ÀËM€‡ÉZŶËZ§Álibperl 
{‹Ê»€ÅZ›€ËcÄ]Ê»ZÌa|̋Z]Äf‹Y|¿­€fŒ»Ä¿Zz]Zf¯Z¼‹€³Y |‹Z]
{‹ÄfyZ‡PL/PerlZe|ÌÀ¯\¿Êf‡{cÄ]YPerlÃZ]Á{|ËZ]Z¼‹c¾ËY{  

 |ÌfˆÅTcl\¿|À»ZÌ¿,|ÌfˆÅPL/Perl½Z]ÁdÀËÔ¯TkÉY‚mYZËTcl®Ë{ZnËYœÀ»Ä] 
®/ËAnt |Ìfˆ/ÅJDK®/ËÁ€eÓZ/]ZËAnt 1.5Ä]kZÌfuYZ¼‹JDBCÃ|À¿Y{€³{ZnËYœÀ»Ä] 
[ÁYY½M|À¿YÂeÊ»½Y€]Z¯į|‹Z]Ê»YÁZmÄËZa€]ÉY‚§Y¹€¿ÉZÅÄfˆ]{ZnËYœÀ»Ä]ÄËÁY‚]Y 
 |ÀÀ¯ɀ̳Z]1 AntdËZ‡ 
É|À]€°ÌaÄ]Äfˆ],|ËYÃ{€¯\¿{ÂyºfˆÌ‡ÉÁ€]YÁZm¦¸fz»€¸ËZb»Z¯|Àq€³YAntYÊ°Ë 

ÉZŞˁÂe {‹Ê»Ã{Z¨f‡YZÆ¿MAnt¶ËZ§®Ë½|¿YÂyœÀ»Ä]0Ó¼ »antrcʐz‹d‡€Æ§Y 
®ËYÃ{Z¨f‡YÉY€]µZj»½YÂÀŸÄ] {‹Ê»Ã{Z¨f‡YÉ|À]€°ÌaÉY€]ÉZm€]Z¯JDKYcÁZ¨f» 

|̇€]ÄnÌf¿Ä]€ËÃYY|ËZ‹,{Y{{ÂmÁ‘€§ŠÌa—Ä]įÄr¿M  

ª]Z˜» |̇ʼ¿ÄnÌf¿Ä]ÃY¾ËYY |ÌÀ°¿Ã{Z¨f‡YjavacZËantYÃ|À¿Y{€³®Ë¾fyZ‡ÉY€]ÄmÂe 
Ê/³„ËÁɁZ/‡µZ/ §Â/œÀ»Ä/] |/ÌWZ¼¿Y€/mYYgmaked/‡YÃ|/‹Ã{ÁM€Ë{įµÂ¼ŸÁ‰Á 
Z¼/‹ ʈ/̸´¿YY€/̣ʿZ/]Ä/]Ä/»Z¿€]ÉZ/Æ»Z¤ÌaŠËZ¼¿d̸]Z«ÊÀ Ë NISÊ»Â]½Z]YÊ¿Z^ˆfŒa 
|/À¿Z»|Àfˆ/ÅÄfˆ/]¾/ËYÉYY{Z/Ƹ»ZŸºfˆ/̇YÊ/y€]|Ìfˆ/ÅGettext AplYY€/mY®Ë|À»ZÌ¿ 
d/¿€fÀËY…{MYY€/¿M|/Ì¿YÂeÊ/»Z¼/‹ZƸ»ZŸºfˆÌ‡Ê«Z]{Ê·Á†ËÓ‡NetBSD,†¯ÂÀÌ· 
ÉY‚/§Y¹€/¿Äfˆ/]Ä/]Ã{Â/¼¿d§ZË{ http://www.postgresql.org/~petere/gettext.htm 
Z¼/‹|/ÌÀ¯Ê/»Ã{Z¨f‡YÂÀ³{cÄ¿Zz]Zf¯ÉÁ€]gettext ÉY€mYYZ¼‹Är¿ZÀq |ÌWZ¼¿ħZ“Y{Ây 
€/´Ë{ÉY€/] |Ìfˆ/Å|À»{‡ÉZÅÄ»Z¿€]YÊy€]ÉY€]GNU GettextÉZÅÄfˆ]YÊy€]Ä]kZÌfuY 
 |ËY|¿ɁZÌ¿½MÄ]ZÅɁZ‡Ã{ZÌa 
Z/ËOpenSSL.kerberosÉZƈ/ËÁ€‡Y|/ËY{d/ËÂŁY€uYÊ¿Z^ÌfŒaÁÃ{Z¨f‡YÄ]¶ËZ¼eZ¼‹€³Y 
d/y{Y,ž/^À»–/‡ÂeÃ|/‹€ŒfÀ»ÉY‚§Y¹€¿Äfˆ]YÃ{Z¨f‡YÉZmÄ]Z¼‹€³Y |ÌWZ¼¿Ã{Z¨f‡YPAM 
 |ÌfˆÅ€ËÉZÅÄfˆ]|À»ZÌ¿,|ËY{ÉY‚§Y¹€¿Ä ‡ÂeÄ]ºÌ¼eÄr¿ZÀqZËÁ|ÌÀ¯Ê»Ã{Z¨f‡Ycvs 
BisonÁ Flex,ʸ/Y€³Ä˂neZË€´ŒËÂaÉZƸËZ§{€Ì̤e{ZnËYZËcvsʇYÁ®Ë¾fyZ‡ÉY€] 
Y€eÓZ]ÁBison 1.50Á€eÓZ]ZËFlex 2.5.4į|Ë‹¾X¼˜»ZÆ¿MÄ]ZÌ¿c{ d‡Y¹Ó 
½MYÃ{Z¨f/‡YÊ·Á|¿€Ì³Ê»Y€«Ã{Z¨f‡Y{»‚Ì¿yassÉZÅÄ»Z¿€]€´Ë{{Y»YÊy€]{ |ˀ̴] 
ÉYÄ/ÀÌËMdËZ/‡¾Ë€/e®/Ë{‚¿YY½M|/Ì¿YÂeÊ»|ˀ̴]YÂÀ³Äfˆ]|ÌÅYÂyÊ»€³Y d‡Y€edz‡ 
Z/Ë|/ÌÀ¯Ä mY€»http://www.gnu.org/order/ftp.htm…{MÄ]ZÆ¿M¹Z¿Ã|ÅZŒ»ÉY€]ÂÀ³ 
 |ÌWZ¼¿d§ZË{ftp://ftp.gnu.org/gnuY 

ÉY€/]Z”/§d/ËZ]Z´»Ä/]Z¼/‹ |ÌWZ¼¿¶Zu½ZÀ̼—Y‚Ì¿®ˆË{ÉZ”§½{Â]ʧZ¯Y¾ÌÀr¼Å 
Ê·ZyÉYċÂyÃ{Y{ÃZ´ËZa®Ë |ËY{ZÌ¿ZÆf‡€Æ§\¿ÉY€]dËZ]Z´»¾ÌÀr¼ÅÁž^À»dy{ 
Y|/¬»½Z/¼ÅZ]Ã{Z‡ÊÀf»¶ËZ§®Ëįd‡YÊËZ”§€]Y€]Y|¬»¾ËYį|À¯Ê»µZ¤‹YZ”§dËZ]Z´» 
Ä/œ§Zud/ËZ]Z´»|/À»ZÌ¿|/ËY{ÊfŒ/³€]cZŒËZ»MÉY€mYÄ]ºÌ¼eZ¼‹€³Y|À¯Ê»µZ¤‹YÃ{Y{ 
 |ÌWZ¼¿Ã{Z¨f‡Y,ʧZ¯ÉZ”§{ÂmÁY½ZÀ̼—YµÂuÉY€]dfÂf‡{Y |ËY{ʧZ“Y 
 |ÌWZ¼¿ºÅ€§€Ë…{MY|Ì¿YÂeÊ»YpostgreSQL 7.3.2ž^À»  

Z/]Y€/¿M|/ËZ],Ã|/¿Á€a¾f§€³Y†a |ÌWZ¼¿ÃZ¨f‡YÉYÄÀÌWMdËZ‡®ËYd‡Y€ˆÌ»Z¼‹ÉY€]Är¿ZÀq 
|ÌÀ¯Z]€ËÂf‡{YÃ{Z¨f‡Y  

ž//^À»Ä//¯ÉZ//mÄyZ//‹{postgreSQL .7.3.2¹Z//¿Z//]Êf//‡€Æ§Âf//‡{¾//ËYÉY€//mYY†//a 
¾/ËYÄ/]\/¿|/ÀËY€§Ä/»Y{Y¹Z/n¿YÉY€/] {{€/³Ê/»{ZnËY{Y{Y€«½M{postgreSQL .7.3.2 
 |Ë‹{YÁd‡€Æ§ 
|ÌfˆÅÊ¿Z‡Á€]µZu{Är¿ZÀq  
{Â/‹Ê»¾Ë‚´ËZmpostgreSQL|Ë|mÄzˆ¿Z],Ã{Y{ʸyY{ÃZ³ÀÌy}\·Z«c¾ËY{ 
,|/ÌÀ¯Ê¿Z‡ÁÄ]Y|‹Z]ʼ¿7.3.x‰Z´¿ÃZ¼‹ÉYY{įYÉYÄzˆ¿|ÌÅYÂyÊ»Z¼‹€³Y 
ʸ §Ã|‹\¿Äzˆ¿į|ÌÀ¯‘€§ |ÌWZ¼¿ÄÌÆe½ZfeZŸÔ—YY€ËcYÂf‡{ª]Z˜»Ê¿Z^ÌfŒaÄzˆ¿|ËZ] 
Z///nÀËY{Z¼///‹ÉZ///ÅÃ{Y{Ã{Á|///v»Á|///‹Z]Äf///‹Y{Y€///«/usr/local/pgsqlÄyZ///‹{Z¼///‹ 
 |ÌÀ¯¾Ë‚´ËZmY{Ây\‡ZÀf»€Ìˆ»|‹Z]Äf‹Y{Y€«/usr/local/pgsql/data 

Ã{Y{ÃZ/´ËZa½Z^ÌfŒ/aÄzˆ/¿{Z/nËY|/ÀËM€§Y†aZ˵—{į|ÌWZ¼¿¶Zu½ZÀ̼—YY|f]Y{  
0Z¼¸ˆ/»Ê/·Á{Y|/¿½Z^ÌfŒ/aÄzˆ/¿{Z/nËYdv/ÉÁ€/]ɀÌiPeĸXˆ»¾ËYÄf^·Y {‹ʼ¿Ê¿Z‡Á€] 
cY€Ì̤e{ZnËYYɀ̳¸mœÀ»Ä] {{€³ʼ¿µZ¼ŸY½Z»¾ËY{ZÅÃ{Y{ÉÁ€]Ã|‹¹Zn¿YcY€Ì̤e
/usr/local/pgsql/data/pg-¶/ËZ§Ä/]YZ/Æ¿Mɀ]Z/¯Â/n»d/‡Y¹ÓÄ/r¿ZÀq½Y€´Ë{–‡Âe 
 |ÌÅ{€Ì̤ehad.conf 
|ÌWZ¼¿Y€mYY€Ë–yÃ{Y{ÃZ´ËZa\¿Y½Z^ÌfŒaÄzˆ¿{ZnËYÉY€]  
Pg-dumpall> outputfile 
|/ËY{|/ÌÀ¯Ê/»Ã{Z¨f/‡YÊmZy|̸¯½YÂÀŸÄ]ZÆ¿MYįÊ¿Z»|À¿Z»ZÅOIDš¨uÄ]¶ËZ¼e€³Y 
 |ÌWY‚§ZÌ]½MÄ]‚Ì¿Y–oÄÀ˂³,|ÌÀ¯Ê»Ã{Z¨f‡Ypg-dumpallYįÊ»Z´ÀÅ 
|ÌÀ¯Ê»Ã{Z¨f‡Y½MY½ÂÀ¯YºÅįÉYÄzˆ¿ÉY€]|Ì¿YÂeÊ»Z¼‹pg-dumpallÂf‡{YÃ{Z¨f‡YZ] 
 |ÌÀ¯ÄÌÆe½Z^ÌfŒaÄzˆ¿ 
¶^«,|ÌÀ¯Ê»\¿d‹Y{Y€«½M{ʼË|«Äzˆ¿įÉYÄyZ‹½Z¼Å{Y|Ë|mÄzˆ¿€³Y  
|ËÁZÌ]¾ÌWZaÂf‡{¾ËYZ]YʼË|«Á€‡,|Ë|mÉZƸËZ§\¿Y  

Ã{Z¨f/‡YÉYÄzˆ/¿¾ÌÀqYZ¼‹€³Yd‹Y|¿Ypostmaster.pid¶ËZ§7.0Y¶^«ÉZÅÄzˆ¿ 
†b‡ÁÃ{€¯Y|Ìaps ax _grepÂf‡{YÃ{Z¨f‡YZ]0ÓZj»YÁ€‡|ÀËM€§ćZÀ‹ÃZ¼‹|ËZ],|ÌÀ¯Ê» 
 |ˁZ‡¦«Âf»Y€¿MkillÂf‡{YÃ{Z¨f‡YZ] 
Á€‹¶ËZ§®Ë0ÓZ¼fuY,|À¯Ê»Z¯Ä]Á€‹½|»MÓZ]½Z»{postgreSQLįÊËZƼfˆÌ‡{ 
d/Å{†¯Â/ÀÌ·ºfˆ/̇®/Ë{µZ/j»½YÂ/ÀŸÄ/],{Y{Ã|Ɵ€]YĨ̛Á¾Ì¼Åį{Y{{ÂmÁÃ|ÀÀ¯ 

µZ/¼fuY |/‹Z]Äf/‹Y{Y€/«/etc/rc.dinit.d postgresql stopÄyZ/‹{¶/ËZ§¾ËYd‡Y¾°¼» 
 |‹Z]Ê»pg- ctl stop€´Ë{ 
|/ÌÀ¯Ê/»\/¿d/‹Y{Y€/«½M{ʼË|/«Äzˆ¿įÉYÄyZ‹½Z¼Å{Y|Ë|mÄzˆ¿€³Y  
|ˀ^]¾Ì]Y€ËÂf‡{Z]YÃ|‹\¿ʼË|«ÉZƸËZ§Ê»Z¼eįd‡Y¾ËY¶uÃY¾Ë€fÆ]  

|/Ë|mÁ€‡Á|ÌÀ¯{ZnËY|Ë|mÃ{Y{ÃZ´ËZaÉY€]ÄyZ‹®Ë,postgreSQL .7.3.2\¿Y†a 
|Ì¿YÂeÊ»Ã{Y{ÃZ´ËZaɀ]Z¯[Zˆu®ËÄ]{ÁÁY†aZ¼‹į|̋Z]Äf‹Y{€—ZyÄ] |ˁY|¿ZÌ]ÃYY 
 |ÌWZ¼¿Y€mYY€ËÉZÅÂf‡{  

|Ì¿Y{€³Z]€ËÂf‡{Z]Y{ÂyÉZÅÃ{Y{dËZÆ¿{  

 |ÌWZ¼¿Ã{Z¨f‡Y{Ây|Ë|mpsqlY†b‡Á 

\¿|ÀËM€§ 
É|À]€°Ìa  
Ê/»Z¼‹įd‡YÊËZÅÄÀ˂³[Zzf¿YÁZ¼‹ºfˆÌ‡ÉY€]ž^À»dy{É|À]€°Ìa,\¿Yĸu€»¾Ì·ÁY 
‘€§ŠÌacÄ]\¿d·Zu{ |‹|ÅYÂy¹Zn¿YÉ|À]€°Ìadbˀ°‡YÉY€mY–‡Âeį |ÌÅYÂy 
 |ÌWZ¼¿{YÁY€ËÂf‡{ 
./confiqure 

Y¶/»ZŸºfˆ/̇ŽËZ/¬¿Á|/Å{Ê/»¹Zn¿YYÊËZƌËZ»M,Äfˆ]YÁÉZŀÌ̤f»¾ÌÌ eÉY€]dbˀ°‡Y¾ËY 
Ã{€¯Y|ÌaįYÄr¿MÁ|À¯Ê»{ZnËYYÊËZƸËZ§Ã|‹ÄfyZ‡dy{{dËZÆ¿{Á|À¯Ê»ÊËZ‡ZÀ‹ 
 {Y{ʻĴ¿Zn¿M{Á 
kZy{YÉ|À]€°Ìa|Ì¿YÂeÊ»,|ËY{Ä´¿Y|mž^À»dy{YY{ZnËYÄyZ‹|ÌÅYÂyÊ»Z¼‹Är¿ZÀq 
É{€]Z/¯ÉZÅY‚§Y¹€¿,|À¯Ê»{ZnËYYZÅY‚]YÁÁ€‡,‘€§ŠÌaÉ|À]€°Ìa |ÌÀ¯Y€mYž^À»dy{ 
ÄyZ//‹{‘€//§ŠÌ//acÂ//Ä//]Z//ƸËZ§Ê»Z//¼e |//¿Y{cºm€//f»®//ËÄ//]Z//Ì¿–//¬§–//‡YÁÁ 
 |¿Â‹Ê»\¿/usr/local/pgsql 
Y–/y|/ÀqZ/Ë®/ËÂ/œÀ»¾/ËYÉY€/] |/ÌÀ¯ɁZ/‡Ê/‹Z¨‡Y{Z/nËYÁ\¿Ä]Á|Ì¿YÂeÊ»Z¼‹ 
 |ÌWZ¼¿Y€mYÉ|À]€°ÌaÉZÅÄÀ˂³{ZnËYÉY€]Y€ËcYÂf‡{ 
- -prefix=prefix 
ʬ̬uÉZƸËZ§ |ÌÀ¯\¿PREFIXd‡€Æ§{usr/local/pgsqlÄyZ‹ÉZmÄ]YZƸËZ§Ê»Z¼e 
PREFIXd/‡€Æ§{ºÌ¬fˆ/»c/]ʸËZ/§pÌ/Å |/‹|ÀÅYÂy\¿ʨ¸fz»ÉZÆf‡€Æ§€Ë{ 
 |‹|ÅYÂz¿\¿ 
--exe-prefix=exec-prefix 
|ˁZˆ]€ËÂf‡{Z]YÉYÄËÁÉZÆf‡€Æ§€Ë|Ì¿YÂeÊ»|ËY{ʏZyÉZÆË|À»ZÌ¿Z¼‹€³Y 
\/¿€/´Ë{,EXEC-PREFIXÊ/À Ë,prefix®/Ë{YÉZ/¼ »ÉZÆÌ´fˆ]YÁ|Ì¿YÂeÊ»Z¼‹ 
Z¼/‹€/³Y |/‹Z]Ê/»É|À»{‡Z¯‚Ì¿,ZÆ¿Z]‚Ì»¾Ì]{ÉZ¼ »ÉZÆÌ´fˆ]YÁ¾f‹Y~³­Y€f‹YÄ] |ÌÀ¯ 
Á¶¬fˆ»ÉZ¼ »ÉZƸËZ§ÁÄf§€³Y€«PREFIX/bin€]Y€] EXEC-PREFIX,|ÌÀ°¿YZ¯¾ËY 
 |‹|ÅYÂy\¿dy{½Z¼Å€Ë{Äfˆ]YÁ 
--bindir=directory

EXEC-ZÅÄ»Z¿€]Ŀ´ÀËYÉY€]‘€§ŠÌa€Ìˆ» |ÌÀ¯¦Ë€ eÄ¿Z³Y|mÄyZ‹ÊËY€mYÉZÅÄ»Z¿€]ÉY€] 
 |‹Z]Ê»/usr/local/pgsql/binÊÀ »Ä]0Ó¼ »į|‹Z]Ê»PREFIX/bin 
--datadir=directory  
|ÌÅ{Y€«,{‹Ê»Ã{Z¨f‡YÃ|‹\¿ÉZÅÄ»Z¿€]–‡ÂeįÊ¿|¿YÂy–¬§ÉZÅÃ{Y{ÉY€]ÄyZ‹®Ë 
ÃZ/´ËZaÄ/¯Ê¿Z°»Ä]ʘ]Â“»¾ËYį|ÌÀ¯ÄmÂe|‹Z]Ê»PREFIX/share‘€§ŠÌaÄyZ‹ 
 {Y|¿{Y{Y€«Z¼‹Ã{Y{ 
--sysconfdir=directory  
 

|‹Z]Ê»PREFIx/etc{Y{Y€«¦¸fz»É|À]€°ÌaÉZƸËZ§ÉY€]įʓ€§ŠÌaÄyZ‹ 

--libdir=directory 
Ê»EXEPREFIX/libeZËÂaÉY~³Z]¶]Z«ÉZÅÄ¿Z¼ÌaÁZÅÄ¿Zz]Zf¯\¿ÉY€]‘€§ŠÌa¶v»
.|‹Z] 
--includedir= director
|‹Z]Ê»prefix/INCLUDE{,C++ÁC|ÀËM€‡ÉZƸËZ§\¿ÉY€]‘€§ŠÌa¶v»
--docdir= directory 
 |‹|ÅYÂyPREFIX/doc‘€§ŠÌaÄyZ‹{mancZv¨ÉZÀjf‡YÄ]{ZÀ‡YÉZƸËZ§ 
  

ŠÌ/a- -mandir=directorycÂ/Ä/]|/‹Z]Ê»postgreSQLZ]ÃY€¼ÅįmancZv¨ 
 |‹|ÅYÂy\¿ėÂ]€»ÉZÆf‡€Æ§€ËÁPREFIX/manÄyZ‹€Ë{‘€§ 
½|/],/usr/local/include|/À¿Z»­€fŒ»ÉZÆ¿Z°»ÉÁ€]postgreSQL\¿Y0Z¼fuÄf°¿ 
cÂ/Ä/]“/postgresql”Äf‹Y|f]Y{|ÌÀ¯¶Zu½ZÀ̼—Y,ºfˆÌ‡Ê«Z]namespaced·Zy{ 
“postgres”įÄf‹¹Z¿Ä]ÄmÂeZ]docdirÁ{‹Ê»Ã{Á‚§Ydatadir sysconfdirÄ]Z¯{Ây 

Y/usr/localZ¼/‹€/³YµZ/j»½YÂÀŸÄ] d§ZË|ÅYÂy‰€fˆ³Á|‹|ÅYÂy€a|‹Z]Ê»“pgsql”ZË 
€/³YZ/»Y |/‹|/ÀÅYÂy\/¿/usr/local/doc/postgresql{{ZÀ‡Y,|ÌÀ¯[Zzf¿YprefixÉY€]  
d/§€³|/ÅYÂyY€«/opt/postgres doc{{ZÀ‡Y,|‹Z]/opt/postgresZ¼‹Ê]Zzf¿Ypretix 
Ê/»\/e€»namespaceÁ|¿Â/‹Ê/»\¿includedir{dÀËÔ³ʇYÁZ]c|ÀËM€‡ÉZƸËZ§ 
€/³Yd/ËZÆ¿{includedir€Ë{ʏyÄyZ‹®Ë{ÉÁ€‡ÁʸyY{|ÀËM€‡ÉZƸËZ§{‹ 
Ê/»Y€/«libdir€/ˁ{Z/ËÂaÉY~³Z]¶ËZ§ÉZÅÄ¿Z¼ÌaÉY€]ʏyd‡€Æ§€Ë®Ë|‹Z]¹Ó
{€Ì³ 
--with-includes=directories 
ÉZÅÂnfˆ/md/‡€Æ§Ä/]Ä/¯d/‡YÊËZÅÄyZ‹¹Z¿Y¶»Z¯d‡€Æ§®ËDIRECTORIES 
Z¼‹€³Y |¿Â‹Ê»Y|m€´Ë|°ËYcolonZ]į|‹Z]Ê»,|¿Â‹Ê»ħZ“Y|ÀËM€‡ÉZƸËZ§ÉZƼm€f» 
|/ÌÀ¯Ã{Z¨f‡YÄÀ˂³¾ËYY|ËZ]|¿YÃ|‹\¿{Y|¿Zf‡Y€Ì£ÉZÆfÌ «Â»{į|ËY{ÉZÌfyYÉZÅÄfˆ] 
µZj» |ÌWZ¼¿Ã{Z¨f‡Y–with- libraries½Âq¶¼°»ÉZÅÄÀ˂³Á  

Z/]Ä/¯Z/ÅÄ/¿Zz]Zf¯ÉÂnfˆ/mÉY€/]d/‡YZ/ÅÄyZ/‹¹Z¿Yd‡€Æ§®ËDIRECTORIES 
Y|/ËZ]0ÓZ¼fuY|ÌÀ¯Ê»Ã{Z¨f‡Y{Y|¿Zf‡Y€Ì£ÉZÅÄfˆ]YZ¼‹€³Y |¿Â‹Ê»Y|m€´Ë|°ËYcolon 
 

µZj»|ÌÀ¯Ã{Z¨f‡Y–with-includes½M¶¼°»ÄÀ˂³ÁÄÀ˂³¾ËY

{‹Ê»Ã{Y{Y€«ÉY|Æ´¿cZ»|yÉY€]įd‡YÊfËZ]®e½Z³ĈË¿Enable 
--enable-nls[=languages] 

Ê/»ʈ/̸´¿Y€Ì£ÉZÆ¿Z]Ä]Ä»Z¿€]ÉZÆ»ZÌaŠËZ¼¿½Z°»YįNLSʸ»ÉZÆ¿Z]YÊ¿Z^ÌfŒaZ‡Z¿YÂe 
 |‹Z] 
Z/]ZÅÄ»Z¿¾ËYÁ{‹Ê¿Z^ÌfŒa|ÌÅYÂyÊ»Z¼‹įd‡YÊËZÆ¿Z]YÊf‡€Æ§LANGUAGES 
d‡€Æ§ÁZ¼‹­€fŒ»¶§–enable-nls=de frµZj»½YÂÀŸÄ] |¿Â‹Ê»Y|m€´Ë|°ËYĸZ§ 
YZ/yÉZÆ¿Z]d‡€Æ§Z¼‹€³Y {‹Ê»Ä^‡Zv»Z¯{ÂycÄ],{Âm»Ã|‹ļm€eÉZÆ¿Z] 
|ËZ]Z¼/‹Ä/À˂³¾/ËYYÃ{Z¨f/‡YÂ/œÀ»Ä/] |/‹|/ÅYÂy\/¿¾/°¼»ÉZÅļm€eÉZ¼¿,|ÌÀ°¿¾ÌÌ e
|ÌWZ¼¿Y€mYYgettext API 
--with-pgport=number 
ÃZ¼‹¾ËY |ÌÀ¯ºÌœÀedÀËÔ¯ÁÁ€‡ÉY€]‘€§ŠÌaÃZ³{ÃZ¼‹½YÂÀŸÄ]YNUMBER 
,|/ÌÀ¯¾Ì/Ì »Y€/¿MZ/nÀËY{Z¼/‹Är¿ZÀqÊ·Á|À¯€Ì̤e|¿YÂeÊ»Ã|ÀËM{ÃZ¼‹¾ËY |‹Z]Ê» 
d/˂»Z/ÆÀe |/‹Z]Ê/»\/‡ZÀ»Z̈]į|¿€Ë~aÊ»Y‘€§ŠÌaY|¬»¾Ì¼ÅÁ{€ÅdÀËÔ¯ÁÁ€‡ 
|//ÀqÉY€//mY|//«Z¼//‹Ä//¯d//‡YÊ¿Z//»ÉY€//]‘€//§ŠÌ//aY|//¬»Y€//Ì£Y|//¬»®//Ë[Z//zf¿Y 
|̋Z]Äf‹Y{Y¾Ì‹Z»®Ë{Á€‡postgreSQL 
--with-peri
|ÌÀ¯{ZnËYY{ÂyÁ€‡pL/perl½Z] 
--with-python 
ÁÊËZ¿YÂe|ËZ]œÀ»¾ËYÉY€] |ÌWZ¼¿{ZnËYYÁ€‡pL/python½Z]Ápython–‡YÁÄ¿Z¼Ìa 
Ä/¯{Â/y‘€/§ŠÌ/a¶/v»{YpythonÄ¿Z¼Ìa|Ì¿YÂf]Ze|̋Z]Äf‹Y{ČË|u{ʇ€f‡{½Z°»Y
|ÌÀ¯\¿,|‹Z]Ê»/usr/lib/pythonx.y 
--with-tcl

PL/Tcl,lipgtcl. Y|//ÀeZ^ŸY‚//mY¾//ËY |/ ÌWZ¼¿{Z//nËY{Y{Z//Ì¿Tcl/TkÄ//¯YÊ//ËY‚mY 
,|/ÌÀ¯¾Ì/Ì eY –with-tclÄÀ˂³Z¼‹€³Y|ÌÀ¯d«{without-tk±Ä]Ê·Á,Pgtclsh.pgthsk
|ËYÄf§€³Ã|Ë{Z¿Y|¿Y{pgtkshTKÄ]kZÌfuYįÊËZÅÄ»Z¿€]
--with-tclconfig=directory 
--with-tkconfig=directory 
¹ÓcZŸÔ—Y¶»Z‹į|À¯Ê»\¿YtkConfig.sh, tclconfig.sh ÉZƸ̧TCL/TK 
{Z¯{ÂycÄ]0Ó¼ »ZƸËZ§¾ËY |‹Z]Ê»,TclZËTK–‡YÁÉZÅÄ¿Z¼Ìa{ZnËYcZ¼ÌœÀeÉY€] 
YTKZ/ËTclYcÁZ/¨f»‰Z´¿®Ëį|ËY{ºÌ¼e€³YÊ·Á,|¿Â‹Ê»Y|Ìa{ÂyŒ»ÉZÆ¿Z°»
|ÌÀ¯¾ÌÌ eY{Ây€œ¿{»ÄyZ‹|ËZ]|ÌÀ¯Ã{Z¨f‡Y 
--with-java
|ÌÀ¯{ZnËYYYÁZmÄ]•Â]€»ÉY‚§Y¹€¿ÉZÅÄfˆ]€´Ë{ÁJDBC€´fËY|Å
--with-krb4=directory 
--with-krb5=directory  

Ã{Z¨f/‡YZ/ˉZ/´¿ Kerberos|/Ì¿YÂeÊ/»Z¼‹ KerberosªË|eÉY€]Ê¿Z^ÌfŒa{ZnËYÉY€] 
/usr/Athenaį- Kerberos\¿,ČËÄyZ‹¾ÌÌ eÉY€]DIRECTORY½Z»Â³M |ÌÀ¯ 
ÄyZ/‹€Ë{Äfˆ]YÁÉZÅÄ¿Zz]Zf¯Á|ÀËM€‡ÉZƸËZ§€³Y d‡YÃ|‹Äf§€³€œ¿{‘€§ŠÌa½YÂÀŸÄ]
|ÌÀ¯Ã{Z¨f‡Y±–with-with-libraries,includesÉZÅÄÀ˂³Y|ËZ]|‹Z]Äf§€´¿Y€«|a 
--with-krb-srvnam=name  

 

Ê/»Ä/f§€³€œ¿{‘€§ŠÌa¹Z¿Postgres |‹Z]Ê»,Kerberos†ËÁ€‡¹Z¿¾ÌÌ eÂf‡{ 
{Y|¿{ÂmÁ½M’Ë eÉY€]ʸ̷{0Z»Â¼ŸÁ{‹ 
--with-openssl[=directory] 

  

|/‹Z]Ê/»open.SSLÉZ/ÅÄfˆ/]\¿|À»ZÌ¿Z°ÀËY |À¯Ê»{ZnËYYSSLcZ—Z^eYYÊ¿Z^ÌfŒa 
‘€§ŠÌacÄ]į |À¯Ê»¾ÌÌ eYopen.SSL,ČËÄyZ‹, DIRECTORY½Z»Â³M
{‹Ê»Äf§€³€œ¿{/usr/local/ssl 
--with-pam
{‹Ê»Ã{Z¨f‡YPAMpluggable Authenication ModulesYÊ¿Z^ÌfŒa{ZnËYÉY€] 
--without-readline 

 

Ä/rzËZeÁ½Z/»€§–/y{€Ì̤e{ZnËYÄÀ˂³¾ËY |À¯Ê»ɀ̳¸mReadlineÄ¿Zz]Zf¯,Ã{Z¨f‡YY
{‹ʼ¿Ä̏Âe½MYÃ{Z¨f‡Y¾ËY€]ZÀ] {Z‡Ê»¾°¼»€Ì£Ypsql 
--without-zlib 
€/Ì£Ypg-dump{ɁZ/‡Ã{€Œ/§½Z/°»YÄ/À˂³¾ËY |À¯Ê»ɀ̳¸mzlibÄ¿Zz]Zf¯Ã{Z¨f‡YY 
{Z‡Ê»¾°¼» 
--enable-debug 
|/Ì¿YÂeÊ/»Z¼/‹įd‡ZÀ »½Y|]¾ËY |À¯Ê»ÊËY{µZ°‹YÁļm€eYZÅÄ¿Zz]Zf¯ÁZÅÄ»Z¿€]Ê»Z¼e
|ÌÀ¯¶Ì¸veY€¿McÔ°Œ»ÁÃ{€¯Y€mYY{µZ°‹Y®Ë–‡ÂeYZÅÄ»Z¿€] 
--enable-cassert 

 

Z̈/]ÉYÄ /‡Âe¥Y|/ÅYÉY€/]Ä/À˂³¾ËY {ÁÊ»Z¯Ä]|f§ZÌ]©Z¨eY|ËZ^¿įʘËY€‹ŠËZ»MÉY€]
|‹Z]Ê»|À¼‹Y 
--enable-depend  
Z̈/]Ä/À˂³¾/ËY|Ìfˆ/ÅÃ|ÀÅ{Ä ‡ÂeZ¼‹Är¿ZÀq {‹Ê»µZ §Z¯{ÂyÊ]ZË{ʳ„ËÁÄÀ˂³¾ËYZ] 
 |À¯Ê»¥€»YÉ{ZˁZ]€‡½Z»|ÌÀ¯ļm€eÁ\¿Z^°ËY€¿M|ÌÅYÂz]Ê·Á {Â]|ÅYÂy|̨» 

:{ZnËY  
gmake:|̈ËÂÀ]dˆz¿{ZnËYÄ]Á€‹ÉY€] 

¾/°¼»Z¼‹ʼfˆÌ‡Ä]Äfˆ]ĸu€»¾ËY |ÌÀ¯Ã{Z¨f‡YGNUgmakeYį|̋Z]Äf‹Y{€—Zz]0Z¼fu 
|‹Z]€Ë–y|ËZ]{‹Ê»Ã{Y{ŠËZ¼¿įʘy¾Ë€yM|»Zn¿YµÂ—Ä]dŸZ‡ºÌ¿ZeYd‡Y 
All of postgresql is successfully made.ready to install. 
ÊfŒ³Z]ÉZÅŠËZ»M  
ÉZ/ÅŠËZ/»M|Ì¿YÂeÊ»|ÌÀ¯½Zvf»Y\¿Y¶^«Y{ÂyÃ|‹{ZnËYÁ€‡|ÌÅYÂyÊ»Z¼‹€³Y 
ºfˆ/̇ÉÁ€/]PostgreSQLtÌv/ÉY€/mYY½ZÀ̼—YÉY€]ŠËZ»M¾ËY |ÌÀ¯Y€mYYÊfŒ³‚¸] 
|̈ËÂÀ]ŠËZ»M¾ËY¹Zn¿YÉY€] |‹Z]Ê»ėÂ]€» 
Gmake check 
d/‡Y¾°¼»{€Ì³¹Zn¿Y|ËZ]Zf¼»€Ì£€]Z¯®Ë–‡ÂeÄ°¸]{‹ʼ¿Y€mYČË–‡ÂeÂf‡{¾ËY 
 |¿Â‹{Á{€»ZÅŠËZ»MÊy€] 
Äf°¿ZÅÃ|¿Á€a\¿  
Y|/Ë|mÉZ/Ŷ/ËZ§į|ËY{€œ¿{Á|ÌfˆÅ{Âm»ºfˆÌ‡®ËÊ¿Z‡Á€]µZu{Z¼‹€³Y 
Á€/‡Á|/ÌÀ¯Ä/ÌÆe½Z^ÌfŒ/aÄzˆ/¿{Â/yÉZÅÃ{Y{Y|ËZ]0Z¼fu,|ÌÀ¯\¿ʼË|«ÉZŶËZ§ÉÁ€] 
 |ÌÀ¯‰Â»ZyÊeYÂf‡{YÃ{Z¨f‡YZ]YʼË|« 
|ÌÀ¯{YÁY€Ë–yPostgreSQL\¿ÉY€]
Gmake install 
¾X/¼˜»0Z/¼fu {€¯|ÅYÂy\¿,ºË{€¯¾ÌÌ eʸ^«ĸm€»{įÊËZÅÄyZ‹{YZŶËZ§Âf‡{¾ËY 
€]Z/¯YYÄ/¸u€»¾/ËY|ËZ]µÂ¼ »—Ä] |̋Z]Äf‹Y{YÁÂu½MÄ]ʇ€f‡{Âv»Z¼‹į|Ë{‹ 
{Y¹Óʇ€f‡{ÉZÅÂv»ÁÃ{€¯{ZnËY¥|ÅÉZÅÄyZ‹|Ì¿YÂeÊ»½MÉZmÄ]ZË|ÌÀ¯Y€mYČË 
Ã{Z¨f/‡Ygmake installÉZ/mÄ/] gmake inctall- stripY|/Ì¿YÂeÊ»Z¼‹ |ÌÀ¯’Ë eZn¿M 
ħ€/Z”/§¥€/»{Z/¯¾ËYZ],|¿Â‹stripYÃ|‹\¿ÊËY€mYÉZÅÄ¿Zz]Zf¯ÁZŶËZ§Ze|ÌÀ¯ 

|/{Ê·Á |Å{Ê»¹Zn¿YZ”§{ÊËÂmħ€ÉY€]ʬ˜À»ÉZÅZ¯ÉY€]Âf‡{¾ËY |ÌÀ¯Ê»ÊËÂm 
Z¼/‹€/³Y |/ÌÅ{¹Z/n¿YYZ/¯¾/ËYÊf/‡{cÄ]|‹Z]¹Ó€³YÁ|Ë‹¶WZ«½MÉY€]ºÅÊËZ˜y 
,|ÌÀ¯Ê»Y€mYYÓZ]Âf‡{įÊ¿Z»,|ËYÃ|Œ¿{YÁČË€]Z¯YÁ|ËYÃ{€¯{ZnËYpython–‡YÁ 
†b/‡ÁÃ|/‹{YÁČ/Ë€]Z/¯Z/]|/ËZ]Z¼‹c¾ËY{ {Œ¿¹Zn¿Y\¿YÊf¼ˆ«d‡Y¾°¼» 
|ÌÀ¯Y€mYY€ËÂf‡{ 
Gmake –c src/interfaces/python install 
¹Ód/ÀËÔ¯É{€]Z/¯ÉZÅY‚§Y¹€¿Ä ‡ÂeÉY€]į|ÀËM€‡ÉZŶËZ§–¬§{Y|¿Zf‡Y\¿d·Zu{ 
PostgreSQL |/ËZ],|ËY{ÉÁ€‡Ä»Z¿€]Ŀ³€ÅÄ ‡ÂeÄ]ºÌ¼eZ¼‹€³Y|¿Â‹Ê»\¿d‡Y 
|ÌÀ¯Y€mYY€ËÂf‡{Z¯¾ËY¹Zn¿YÉY€] |ÌÀ¯\¿¶»Z¯—Ä]Y 
Gmake install-all-headers 
\/¿Y½M–/‡YÁÉZ/ÅÄ/¿Zz]Zf¯ÁdÀËÔ¯É{€]Z¯ÉZÅY‚§Y¹€¿–¬§į|ÌÅYÂyÊ»Z¼‹Är¿ZÀq 
|ÌÀ¯Y€mYY€ËcYÂf‡{|ËZ]|ÌÀ¯
Gmake –c src/bin install
Gmake –c src/include install
Gmake –c src/interfaces install
Gmake –c doc install 
\¿¤· 
,Z¯¾ËYZ]{ÂmÁ¾ËYZ]|ÌËZ¼¿Y€mYYgmake uninstallÂf‡{,\¿YdŒ³Z]Á¥Y€¿YÉY€] 
 |¿Áʼ¿¾Ì]YÃ|»M{ÂmÁÄ]ÉZÅÉÂf¯€ËY{Y¹Y|¯pÌÅ 
ɁZˆ¯Za 
YÂ/œÀ»¾ËYÉY€] |ˁZˆ]©ZeY,ž^À»dy{YÃ|‹ÄfyZ‡ÉZŶËZ§¥~uZ]|Ì¿YÂeÊ»\¿Y†a 
É|/À]€°ÌaÄ/»Z¿€]–/‡ÂeÃ|‹{ZnËYÉZŶËZ§|Ì·ÂeYZ¯¾ËY |ÌÀ¯Ã{Z¨f‡Ygmake cleanÂf‡{ 

½|¿ZŒ/¿Z]ÉY€] |ÌÀ¯ɁZ‡Z]Y‚ÌqļÅgmake Âf‡{Z]|Ì¿YÂeÊ»0Y| ]į |À¯Ê»ɀ̳¸m 
{Y½M€/³Y |/ÌÀ¯Ã{Z¨f‡Yuse gmake distclean Y{Â]Ã|‹žËÂeįÊf·ZuÄ]ž^À»dy{ 
½M{Z/nËY€ÅÉY€]ÁÃ{Y{¹Zn¿YZ¯¾ËY|ËZ]|ÌÀ¯{ZnËYž^À»®ËY,¦¸fz»ÉZŀfˆ]ÉY€]|ËY{€œ¿ 
 |ÌÀ¯ÃZ]Á{É|À]€°ÌaY 

\¿Y†acZ¼ÌœÀe 
­€fŒ»ÉZÅÄ¿Zz]Zf¯  
Ä/¿Zz]Zf¯{ÂyºfˆÌ‡Ä]|ËZ]Z¼‹|À‹Z]Ê»­€fŒ»ÉZÅÄ¿Zz]Zf¯ÉYY{įÊËZźfˆÌ‡€j¯Y{ 
ÉÁ€“Z¯¾ËYZÆ¿M{įÊËZźfˆÌ‡ |Ì¿Z‡ZÀŒ]YÃ|‹\¿ÁZe­€fŒ»ÉZÅÄ¿Zz]Zf¯{ÂyÉZÅ
Solaris, UX. IRIX. Linux. NetBSD. OpenBSD, Tru64 Y|/ÀeZ^Ÿ|À/‹Z]Ê/¼¿ 
UNIX BSD/OS. FreeBSD.HP |/‹Z]Ê/»cÁZ¨f»,¦¸fz»ÉZŀfˆ]{­€fŒ»ÉZÅÄ¿Zz]Zf¯ÉÂnfˆm€Ìˆ»ºÌœÀeÉZʼnÁ
(Sh. Äf/‡Âa{|/À¿Z»LD – LIBRARY – PATHÉZŀ̤f»¾ÌÌ e‰Á¾Ë€eÉ{€]Z¯Ê·Á 
Ksh. Bash. Zsh) Bourne 
tcshZËcsh{ZË 
,|/ËYÃ{€/¯¾Ì/Ì e±libdirÉY€/]µÁYÄ/¸u€»{Ä/¯ɂÌq€ÅZ]Y/usr/local/pgsql/lib 
/bash – profileZ/Ë/etc/profile|/À¿Z»Y|¿YÃY¶ËZ§Äf‡Âa{YcYÂf‡{¾ËY |ÌÀ¯¾Ë‚´ËZm 
Ê//////f¿€fÀËY…{M{‰Á¾//////ËYZ//////]Ä//////˜]Y{€fŒ//////Ì]cZ//////ŸÔ—Y |//////ÌÅ{Y€//////« 
¹Ó|ËZ/‹Z/źfˆÌ‡YÊy€]{ {Y{Y€« htpp://www.visi.com/~barr/ldpath.Html 
d/‡€Æ§ccygwin{ |/ÌÀ¯¾Ì/Ì e,{Z/nËYY¶^«YLD – RUN – PATHÉZŀ̤f»į|‹Z] 
Z¼/‹€/³Y|/ÌÀ¯¶/¬fÀ»/binÄyZ/‹Ä/]Ydll¶ËZ§ZË|ÌÅ{Y€«PATH{Y­€fŒ»ÉZÅÄ¿Zz]Zf¯ 
|Ë{€¯d§ZË{€ËÄ]ZŒ»Ê»ZÌa

Psql:error in loading shared libraries
Libpq:so.2.1: cannot open shared object file n:no such file or 
directory 
 |‹Z]Ê»ÉÁ€“Z̈]ĸu€»¾ËYÃZ´¿M 
YČ/Ë€]Z/¯Ê/‡€f‡{Â/n»Á|/ÌÀ¯Ê/»Ã{Z¨f‡Ysunos 4ZËLinux, BSD/ OSYZ¼‹€³Y 
dŸ€‡œÀ»Ä]Y€mYÄ]½Z»Ã|ÀÅ{|¿ÂÌaɁZ‡Z¿YÂeÉY€],\¿Y†aY€ËÂf‡{|Ì¿YÂeÊ»|ËY{ 
|ÌËZ¼¿Y€mY­€fŒ»ÉZÅÄ¿Zz]Zf¯¾f§ZË{ 
/sbin/ldcconfig/usr/local/pgsql/lib 
|ÌÀ¯Y€mYY€ËÂf‡{OpenBSD, NetBSD, FreeBSD { 
/sbin/ldcconfig/ -m /usr/local/pgsql/lib 
{Y|¿{ÂmÁÊ·{Z »Âf‡{ÄfyZÀ‹Z¿ÉZźfˆÌ‡€´Ë{ÉY€] 
–Ìv»ÉZŀ̤f»  
ŠÌ/ad/·Zu{Ä/¯ÊËZ/ŽZ/°»€´Ë{Z]/ust/ local pgsql€Ìˆ»{YPostgreSQLZ¼‹€³Y 
Yɀ´Ë{€Ìˆ»€ÅZ]usr/local/pgscl/bin€Ìˆ»|ËZ]Z¼‹|ËYÃ{€¯\¿|¿Â‹Ê»Ânfˆm‘€§ 
Z/¯¾/ËYįºÌÀ¯Ê»|̯PeºÅZ] |ÌÀ¯ħZ“YY|ËYÃ{€¯¾ÌÌ eµÁYĸu€»{--bindirÉY€]į 
 {‹€ffuYPostgreSQLYÃ{Z¨f‡Yį{‹Ê»hŸZ]Ê·ÁdˆÌ¿ÉÁ€“ 
€/³YZ/Ë~/.bash – profile|À¿Z»{ÂyY|¿YÃY¶ËZ§Äf‡ÂaÉY€]Y€ËµZ¼ŸYZ¯¾ËY¹Zn¿YÉY€] 
|ÌÅ{¹Zn¿Y/etc/profile¶ËZ§|ÌÅ{Y€«€ÌiPedveY½Y€]Z¯Ê»Z¼e|ÌÅYÂyÊ»
Path=/usr/local/pgsql/bin:$path 
Export path 
|ÌÀ¯Ã{Z¨f‡Y€ËÂf‡{Y,|ÌfˆÅtcshZËechYÃ{Z¨f‡YµZu{Z¼‹€³Y 
Set path=(/usr/local/pgqsl/bin $path) 

ÃZ/´ËZa½Z/]‚Ì»cÂ/Ä/]É{€]Z¯ÉZÅY‚§Y¹€¿PGPORTÁPGHOST–Ìv»ÉZŀ̤f» 
Yd/ÀËÔ¯É{€]Z/¯ÉZÅY‚§Y¹€¿|ÅYÂyÊ»į€]Z¯€Åįd‡Y€fÆ] |À¯Ê»¾ÌÌ eYÁ€‡Ã{Y{ 
 |¿ZŒ¿Z]YÃ{Y{ÃZ´ËZaPGHOST,|À¯Y€mYÁ{ÃYY 

|¿Â‹Ê»Ê¿Z^ÌfŒaįÊËZŀfˆ] 

ŠËZ/»M€/ˁÉZŀfˆ/]ÉÁ€/]½{€¯Z¯ÉY€]½Z³|ÀÅ{Ä ‡ÂeÄf̼¯–‡ÂePostgreSQL 

Ê//À Ë€fˆ//]®//ˁYÊ¿Z^ÌfŒ//a d//‡YÃ|//‹|//ÌËPeZŀfˆ//]¾//ËYÉÁ€//]½MÉY€//mYdv//ÁÃ|//‹ 
ÉÁ€]‚Ì¿ÊfŒ³Z]ÉZƌËZ»M¾ÌÀr¼ÅÁÃ|‹\¿ÓZ]cYÂf‡{ª^—,Ã|‹{ZnËYPostgreSQL 
 d‡YÃ|‹¹Zn¿YZÆ¿M
pgsql – bugs @ Êf¿€fÀËYÉZÅ…{MZ]|Ìf‹Y{Zŀfˆ]YÊ°ËZ]ʸ°Œ»\¿¹Z´ÀÅ{€³YÄf°¿ 
 |ÌÀ¯Y€«€]•Z^eYporst@postgresql.orgpgsql – ZËpostgreaql.org 

Á€‡Ã{Y{ÃZ´ËZa®ËZ¯Ä]Á€‹ 
½MÄ/]Ä/¯Á€/‡Ã{Y{ÃZ/´ËZa|/ËZ]Z¼/‹|/À¯Y|/ÌaÊ/‡€f‡{Ã{Y{ÃZ/´ËZaÄ]|¿YÂf]ʈ¯Ä°ÀËYYŠÌa 
Y€/«įYÊËZÅÃ{Y{|¿Y|]|ËZ]postmasterœÀ»¾Ë|] |ÌÀ¯ɁY|¿YÃYY|À˳postmaster 
¾Ë€eÃ{Z‡¾ËY€]ZÀ]{‹Ê»¹Zn¿Y–DÄÀ˂³–‡ÂeZ¯¾ËY |À¯Y|Ìa|ËZ]Zn¯YY|À¯Ã{Z¨f‡Yd‡Y 
|‹Z]Ê»€Ë–yÉY€mYÁ€‡ɁY|¿YÃYÉY€]ÃY 
$ postmaster –d /user/local/pgsql/data 
ÉZ/Å[Zˆ/u{YÁįÊ»Z´ÀÅ {‹Y€mY foreground {Á€‡į{‹Ê»hŸZ]Z¯¾ËY 
PGDATA–Ì/v»€Ì¤f»YÁ€‡–D½Á|]|f§YÊ»©Z¨eY¾ËY|Ë‹Ê»poctgre SQLɀ]Z¯ 

dˆ/°‹Ä/],|¿|Œ/¿ª/§Â»Á{¾/ËYY®/ËpÌ/Å€/³YÁ{€¯|ÅYÂyÃ{Z¨f‡YÃ{Y{ÉÂf¯€ËY{½YÂÀŸÄ] 
 ºÌÀ¯Ê»{Ây€] 
|‹|ÅYÂyY€mY€Ë–y0Ó¼ » background{ Postmaster 
$ postmaster –d /user/local/pgsql/data >logfile 2>&1& 
d/‡Y{Z/«¾Ì/Àr¼ÅPg-ctl {Y{Yd/‡YÃ|‹Ã{ÁM¶^«{įÊÀ »½Z¼Å–DÄÀ˂³‚Ì¿ZnÀËY{ 
 {Z‡¦«Âf»YÁ€‡ 
ºfˆ/̇{É{|/ f»ÉZ/ÅdbË€°/‡Y,{‹Y€mY½|‹cÂ]¹Z´ÀÅ{Á€‡į|ÌÅYÂyÊ»Z¼‹0Ó¼ » 
€]Z/¯ʇ€f‡{ÉZŁÂn»|ËZ]į{Y{{ÂmÁ/contrib/ startscripts€Ìˆ»{¦¸fz»ÉZŶ»ZŸ 
 {‹Ã{Y{½MÄ]ČË 
Ê/y€]0Ôj»|¿Y{ºfˆÌ‡½|»MÓZ]½Z»{Á€‡ÉY€mYÉY€]ʨ¸fz»ÉZʼnÁ¦¸fz»ÉZźfˆÌ‡ 
Á|/¿Y{etc/ rc.d/ rc. LocalZ/Ë/etc/ rc.d/ rc. Local€Ìˆ/»{ʸËZ/§ÉYY{Z/źfˆ/̇Y 
[Zˆu–‡Âe|ËZ]Á€‡,|ÌÅ{Ê»¹Zn¿YZ¼‹įÄr¿M€Å|ÀÀ¯Ê»Ã{Z¨f‡Yrc.dÄyZ‹Y€´Ë{ʔ ] 
¾/°¼»¾ËY€]Z/À] Z/Å[Zˆ/u€/´Ë{Z]ČËɀ]Z¯[ZˆuZ]Ä¿,{‹¹Zn¿Ypoctgre SQLɀ]Z¯ 
€ËÂf‡{µZj» ½YÂÀŸÄ]|ÌËZ¼¿Ã{Z¨f‡Y su-c'...' postgresÂf‡{Yį|̋Z]Äf‹Y{ZÌ¿Z¼‹d‡Y 
|ÌÀ¯Y€mYY   

Á€‡Z¯Ä]Á€‹ÉZÅZ˜y 

½MÄ]½{€]ÊaÉY€]į{Y{{ÂmÁpoctmaster Z¯Ä]Á€‹{dˆ°‹ÉY€]ʨ¸fz»¶ËÓ{ 

|À¿Z»d‡YÃ|‹½ZÌ]0Ô»Z¯d¸ŸZ˜yÉZŹZ¤Ìa¾ËYYÊy€] |ÌÀ¯®qY½Mlog¶ËZ§|ËZ]  

Y€/mYÃ|/‹ÁÉZ/Åc€aÃZ¼‹YÊ°Ë{YpoctmasterZ¼‹€³Y|ÌÀÌ]Ê»€Ë{į˜¿Z¼Å 
{‹Ê»€ÅZ›€Ë¹Z¤Ìa|ÌÀ¯  

d‡YÃ|‹Ã{ÁM€Ë{Z˜yÉZŹZ¤ÌaYĿ¼¿|Àq  

€f¼¯€§Z]ÉZ”§Y­€fŒ»Ĝ§ZuºnuÁd‡YÃ|‹{Á|v»Z¼‹ÄfˆÅÁY|¿Yįd‡YÊÀ »¾ËYÄ]į 
 |‹Z]Ê»  

Z¼/‹Äfˆ/ÅÄ/¯d/‡YÊ/À »¾Ë|/]Ä/°¸]d‡YÃ|‹€aZ¼‹®ˆË{ÉZ”§įdˆÌ¿ÊÀ »½Y|]¹ZÌa¾ËY 
Ê/»poctgre SQLįd‡YÊ¿MY€f¼¯ZÆ¿M{Y| eÁ|¿YÃ|‹{Á|v»VÉZŧZ¼‡{Y| e–‡Âe 
 |À¯{ZnËY|ÅYÂy 
dÀËÔ¯{•Z^eYÉY€«€]cÔ°Œ» 
Ä/]Äfˆ/]YÁ{Z/Æ¿MÁ€]d¸ŸÁ|f§YÊ»©Z¨eYÁ€‡d¼‡{cÔ°Œ»YÉZ̈]Ä°ÀËY{ÂmÁZ] 
Á€‡Z¯Ä]Á€‹Ê´¿Â´qZ]–^e€»d‡Y¾°¼»ZÆ¿MYÊy€]Ê·Á,|‹Z]Ê»É{€]Z¯ÉZÅY‚§Y¹€¿ 
 |‹Z]  

Á€/]•Z/^eYÉY€/«€]ÉY€]Á€‡½|Œ¿Y|Ìa¹Z´ÀÅ{įd‡YÊËZÅZ˜y¾Ë€f·Â¼ »Yʰ˹ZÌa¾ËY 
postmasterÄ/]į|‹Z]Ê»– iÄÀ˂³½{Y{Y€«½{€¯‰Â»Y€§,µÂ¼ »ÉZÅZ˜yYÊ°Ë |À¯Ê» 
 |Å{Ê»YTCP/ IPcZ—Z^eY¾f§€Ë~a½Z°»Y 
.....įÊ»Z´ÀÅ  

 {Y{{€]Z¯,\‡ZÀ»½Z°»Z]dÀËÔ¯•Z^eYÉY€«€]ÉY€]€yM–y 

Y€mY½Z»cZ¼ÌœÀe 

Ä/]¶/§¾/ËY{Ä/¯ {Y{€ÌiP/eÃ{Y{ÃZ/´ËZaºfˆÌ‡dÌ “ÁÉÁ€]į{Y{{ÂmÁÉZ̈]cZ¼ÌœÀe 
Â/¿Z/ÆqYÊ/°ËYÁ|Àfˆ/Åcase – insensitiveZ/ŀf»YZaÊ»Z/¼e ºËY{€/aÊ»ZÆ¿MYÊy€]
ON, OFF, TRUE, ¶»Z‹¾Ì·Â]ÉZʼnY |¿Y{YÉYÄf‹ÁÁZÀ‹‚̼»,tÌv{|Ÿ,¾Ì·Â] 

 |‹Z]Ê»ZÆ¿MºÆ^»€Ì£ÉZÅ|¿ÂŒÌaZ]ZËFALSE, YES, NO, I, 
ÉÂf¯€ËY{{Postgresql. conf ¶ËZ§{€Ì̤e{ZnËYZÅÄÀ˂³¾ËY½{€¯d‡ÉZʼnÁYÊ°Ë 
Ä]d‡Y¾°¼»¶ËZ§¾ËYµZj»½YÂÀŸÄ] d‡YÃ|‹\¿Zn¿M{‘€§ŠÌa¶ËZ§®Ëį|‹Z]Ê»Ã{Y{ 
|‹Z]€Ëc  

¥~/uÊ·Z/y•Â/˜yÁ|¿Y|¿‰YÊ·ZyÉZÅZ”§ d‡YÃYÂz·{,Y|¬»Á¹Z¿¾Ì]{ÉÁZˆ»d»ÔŸ 
Z/ËÁZ/ŀf»YZaÉZÅY|/¬» |/ÌÀ¯Ã{Z¨f/‡Y#d/»ÔŸY|Ì¿YÂeÊ»cZv̓Âe½{Y{Y€«ÉY€] |¿Â‹Ê» 
 {‹Ã{Y{Y€«‘ ‘¾Ì]{|ËZ]{Y|ŸY 

{‹Ê»dWY€«,|À¯Ê»d§ZË{SIGHUPµZÀ´Ì‡®ËpostmasterįÊ»Z´ÀÅÉ|À]€°Ìa¶ËZ§ 
Ä/]Á|/À¯Ê/»¶/¬fÀ»Y€/mYµZ/u{backendÉZÅ|/ÀËM€§Ê»Z¼eÄ]YµZÀ´Ì‡¾ËYpostmaster 
ºÌ¬fˆ»cÄ]YµZÀ´Ì‡¾ËY|Ì¿YÂeÊ»Z¼‹Äf^·Y |À¯Ê»¹ÔŸYY|Ë|mY|¬»¦¸fz»ÉZÅd¼ˆ« 
Ê/»€ËÂf‡{ÉY€mYZŀf»YZa¾ËYÉ|À]€°ÌaÉY€]¹Á{‰Á |ÌËZ¼¿µZ‡YbackendÉZÅ|ÀËM€§Ä] 
|‹Z]  

 |À¯Ê»ɀ̳¸mPostgresql.Conf{ÉZ³Z‡Z¿€Å{ZnËYYÓZ]Âf‡{ÉY€mY 
ÉY€/] |/‹Z]Ê/»ʧZ¯backendZyÉZÅd¼ˆ«ÉY€]–¬§Âf‡{–yÉY€mY{Y»YÊy€]{ 
 |ÌÀ¯Ã{Z¨f‡YdÀËÔ¯¥€—{PGOPTIONS–Ìv»€Ì¤f»YœÀ»¾ËYª¬ve  

µZj»½YÂÀŸÄ],|ÌÅ{€Ì̤eYSQL{€§Ä]€vÀ»ÉZÅd¼ˆ«YÊy€]|Ì¿YÂeÊ»SETÂf‡{Z]
=>set enable_seqscan to off; 
Ã{Y{ÃZ/´ËZa{½Y€]Z/¯ÉY€/]‘€§ŠÌacZ¼ÌœÀe,|À¯Ê»Z¯Ä]Á€‹session®Ëį½Z»€Å 
{Z/nËYÉY€/]ALTER USER ALTERDATABASE½Â/qÊeYÂf/‡{ {‹Ê»ÉY~³Z] 
{ÁÊ»Z¯Ä]cZ¼ÌœÀe¾ËY{ÊeY€Ì̤e 

ÄfˆÅž]ZÀ»dˀË|» 

{ {€/]¾Ì/]YY¶/»ZŸºfˆ/̇ž]Z/À»dË{Á|v»YÉZ̈]|Ì¿YÂeÊ»PostgreSQL¶»Z¯\¿Z] 
 |‹Z]ʼ¿¶»Z¯\¿Ä]ɁZÌ¿Á|‹Z]Ê»¾ÌËZaZ̈]Ä¿ZyZ¯ÉZÅ‘€¨ŒÌa,ZźfˆÌ‡YÊy€] 
Á€‡Z¯½ZËZa 

½{€¯‰Â»ZyÂ¿|Ì¿YÂeÊ»Z¼‹ |‹Z]Ê»Ã{Y{ÃZ´ËZaÁ€‡Z¯Ä]½{Y{ļeZyÉY€]ÉZ̈]ÉZÅÃY 

 {€¯µ€fÀ¯Á€‡ÉZÅ|ÀËM€§Ä]¦¸fz»ÉZÆ·ZÀ´Ì‡µZ‡YZ]YÁ€‡

ZÅ€´¸¼ŸÁž]YÂe 
YPostgreSQL ÉÂ/mÁ…€/a½Z/]€ËÉZÅŠz]½{€¯ħZ“YZ]½YÂeÊ»Ŀ´q,Šz]¾ËY{
{Y{‰€fˆ³ 
ž]YÂe 
Ã{Y{Y¿Y 
Zŀ´¸¼Ÿ 
{ZveY  
ž]YÂe 
d‡YÄf‹Y~³ZÌfyY{Yž]ZeÂ¿ZÆqPostgreSQL 
SQL{Ã|‹Äf‹Â¿ž]YÂeÂmÁ…€a½Z]ž]YÂe  

PL/pg SQLZËPL/TCL{ž]YÂeµZj»—Ä]ÉYÄËÁ½Z]ž]YÂe  

ʸyY{ž]YÂe 

C½Z]ž]YÂe  

ÂmÁ…€a½Z]ž]YÂe 

[Zˆ/uÉY€/]d/‡Y¾°¼»įÃ|‹Ã{Z¨f‡Y€ËµZj»Y,Ã{Z‡SQL ž]Ze®Ë½{Y{s€‹ÉY€]µZj» 
{€Ì³Y€«Ã{Z¨f‡Y{»®¿Z]
CREATE FUNCTION TPL (INTEGER,NUMRIC)RETURNS
INTEGER AS UPDATE BANK
SET BALANCE=BALANCE-$2
WHERE ACCOUNTNO=$1;
SELECT 1;
LANGUAGE SQL; 

 |À¯Y€mYÓ{ZËÊÅ|][ZˆuÉY€]Yž]Ze¾ËY|¿YÂeÊ»€]Z¯®Ë
SELECT tpl(17,100.0) 

ÉYÄËÁ½Z]ž]YÂe 

ÉZÅÄ¿Z¼ÌaYÃ{Z¨f‡YZ]ZŽZ]¾ËY d‡YÃ|Œ¿ÄfyZ‡PostgreSQLZ‡Z¯{ÉYÄËÁÉZŽZ] 

…€f/‡{{{Y|¿Zf/‡Y PostgreSQLºÌˆ¬e{ÉYÄËÁ½Z]ZÆq |¿Â‹Ê»ē€Ÿɀ̳Z]¶]Z« 
Ä/]|/¿YÂeÊ/»€/´Ë{ÉZ/ŽZ/] PL/Python ,PL/Perl,PL/Tel , PL/pg SQL|À/‹Z]Ê» 
 {‹¦Ë€ e½Y€]Z¯ĸ̇Á 

ʸyY{ž]YÂe 

PostgreSQLZ/‡Z¯Ä/]Zfˆ/ËYc]Á|¿YÃ|‹Äf‹Â¿C½Z]Ä]į|ÀfˆÅÊ ]YÂeʸyY{ž]YÂe 

Ä/¯|/‹Z]ÊËZ/ź‡YYÊ°Ë|ËZ^¿į|À¯Ê»ŽzŒ»Yž]Ze¹Z¿,ž]Ze¦Ë€ eÄ¿|] |¿YÃ|‹Ã{|¿ÂÌa 
c|/»{|¿Â/‹Ê/»€/“Zubackend{Ä/¯ʸyY{ž]YÂe¹Z¼eÉ{ZŸ˜] |À¯Ê»Ã{Z¨f‡YSQL 
Y|//¿YÂeÊ//»€]Z//¯®//ËZ//»Y |//¿YÃ|//‹¦//ˀ eÃ{Y{ÃZ//´ËZaclusterÄ//‹ÂyɁZ//£MÊÅ{Y|//¬»  
|/À¯Ã{Z¨f/‡YÊ/¸yY{ž]Z/eÉY€/]ʧZ“YZ fˆ»ÉZŹZ¿dyZ‡ÉY€]CREATE FUNCTION 
ÉY€/]µZ/j»Â/˜] {Â/‹Ê/»¦Ë€ eʸyY{½Z]¹Z¿Z]CREATE FUNCTION{ʸyY{ž]YÂe 
ºÌÀ¯Ê»¶¼Ÿ€Ëc]sqrtž]ZeÉY€]Z fˆ»®ËdyZ‡

C½Z]ž]YÂe 

ʈ/Ë¿Ä»Z¿€]½Z]{Ã|‹¦Ë€ eÄËZaY¿Y|‹Z]Ê»{Âm»PostgreSQL{Y¿YYĿ³Á{ 

 d‡YÃ|‹Ã{Y{t̓Âe|Ë|mÉYÄËZaY¿Y¦Ë€ eÊ´¿Â´qd¼ˆ«¾ËY{ \¯€»Y¿YÁ 
Äf/‹Y{Ê/mÁ€yÁÉ{ÁÁž/]YÂeČ/̼Å|/ËZ] (user.defined)€]Z/¯–‡ÂeÃ|‹¦Ë€ eÂ¿®Ë 
ĸÌ/‡ÁÄ/]É{ÁÁÉY€/] |¿Â/‹Ê/»€/“ZuZÅÄf‹{Â¿˜qį|ÀÀ¯Ê»¾ÌÌ ež]YÂe¾ËY |À‹Z] 
Äf/‹®/ËÉ{ÁÁž]Z/e {Â/‹Ê/»Ê/Å{½Z»Z/‡Ä/œ§Zu{Â¿˜qÁuserÄ]ÊmÁ€yÁuser 

Ê»€]YĜ§Zu{ʸyY{ʌËZ¼¿Â¿ÁÄf§€³É{ÁÁ½YÂÀŸÄ]Ymull-terminatedɀf¯YZ¯ 
ɀf¯YZ/¯Äf/‹®ËÁ{€Ì³Ê»É{ÁÁrepresentationŠËZ¼¿Â¿®ËÊmÁ€yž]Ze |¿Y{€³ 
Y|/ÀÅ{Ê»ŠËZ¼¿Y{Y|ŸYğ¼n»Â¿ğ¼n»®Ë|ÌÀ¯‘€§ |¿Y{€³Ê»€]null-terminate 
Ĝ§Zu{ğ¼n»®ËŠËZ¼¿ÉY€]Y€ËC stracture[Zzf¿YZ»,0Zf Ì^— ºÌÀ¯¦Ë€ e
Typedef struct complex {
Double x;
Double y;
} complex;  
|Àfˆ/Ì¿¶°Œ/»¾f/‹Â¿ÉY€/]0Ó¼ »ž]YÂe ÊmZyÄf‹ŠËZ¼¿½YÂÀŸÄ]Yx.y¹€§YÄf‹Â¿®ËÁ 
d§€³€œ¿{|ËZ]Y€ËcZ°¿ ÊmÁ€yž]YÂeÂz] 
Ä/˂ne®/˹Zn¿Y€/‡|/ËZ]Z¼/‹į|̋Z]Äf‹Y{€—ZyÄ],ÊmZyÄf‹ŠËZ¼¿¦Ë€ e½Z»  
 |̈ËÂÀ]É{ÁÁž]ZeŠËZ¼¿ÉY€]¶»Z¯Á|À»Á€Ì¿Ã|ÀÀ¯  

|‹Z]€Ëc]|¿YÂeÊ»ʳ{Z‡Ä]ÊmÁ€yž]Ze  

outÁComplexBin€]Z¯–‡ÂeÃ|‹¦Ë€ ež]ZeÁ{d‡YZÌ¿ÉYğ¼n»Â¿®Ë¦Ë€ eÉY€] 
 ºËZˆ]Â¿dyZ‡Y¶^«Y Complex B 

Zŀ´¸¼Ÿ 

Zŀ´¸¼Ÿ |À¯Ê»Ê¿Z^ÌfŒaÊËÁ{Á{ÉZŀ´¸¼ŸÁright unaryÁleft unaryYPostgreSQL 
Ä/¯Ê/¨¸fz»ÉZ/ŀ´¸¼ŸÉY€/]|/¿YÂeÊ»į|‹Z]Ê»€´¸¼Ÿ¹Z¿½Z¼Åį |¿€Ì´]ʧZ“YZ]|À¿YÂeÊ» 
ºfˆ/̇Á|‹Z]Äf‹Y{{ÂmÁºÆ^»¶°‹®Ë€³Y {‹Ã{Z¨f‡Y|À‹Z]Ê»YY{YZÅ|¿Â¸¼ŸY¿YÁ{Y|ŸY 
Yd/‡Y¾°¼» {‹Ê»Ê¿Y{€³Z]Z˜y¹Z¤Ìa®Ë,|À¯[Zzf¿YÃ{Z¨f‡YÉY€]YtÌv€´¸¼Ÿ|¿YÂf¿ 
ÉY€]€´¸¼Ÿ¹Y|¯œÀ»Ä°ÀËYÄ]®¼¯ÉY€]d‡Y `qÉZÅ|¿Â¸¼Ÿį{‹Ã{Z¨f‡Ytype- cast 
 |‹Z]Ê»Ã{Z¨f‡Y 
YÊ/ «YÁZ¯į|‹Z]Ê»underlyingž]Ze®ËÊ¿YÂyY€§ÉY€]"syntactic sugar"€´¸¼Ÿ€Å 
®/Ë,cÂ/€/ÅÄ] {‹ÄfyZ‡underlyingž]Ze,€´¸¼ŸdyZ‡Y¶^«|ËZ]†a |Å{Ê»¹Zn¿Y 
…€as€—Ä]|¿YÂeÊ»įYʧZ“YcZŸÔ—Y,¾ËYY€Ë |‹Z]ʼ¿ syntactic sugar0Z§€€´¸¼Ÿ 
 |À¯Ê»®¼¯,|À¯Ê»Ã{Z¨f‡Y€´¸¼ŸįÊËZÅÂmÁ…€a½{€¯ɁZ‡ÄÀÌÆ]ÉY€]ÂmÁ 
Ê/»|/À¯Ê/»ž/¼m€´Ë|/°ËZ]Y{|Ÿğ¼n»Á{į€´¸¼Ÿ®ËdyZ‡ÉY€]µZj»®ËZnÀËYµZj» 
Á|Å{¹Zn¿YZ¯įd‡YZÌ¿Ê ]ZeY|f]Y{ d‡YÃ|‹¹Zn¿Y‚Ì¿Y¿Yğ¼n»¦Ë€ e¾ÌÀr¼Å |‹Z] 
{€¯¦Ë€ e€´¸¼ŸºÌ¿YÂeÊ»ÃZ´¿M  

{ZveY 

|/¿YÂeÊ»{ZveY |¿YÃ|‹½ZÌ]d·ZuµZ¬f¿Yž]YÂeÁd·Zu€Ë{Z¬»½YÂÀ ]PostgreSQL{{ZveYž]YÂe 
¦/ˀ e{€/Ì´]Y€/«½Z/ˀm{Â/»É{ÁÁÄÀ˂³®Ëį½Z»€Å|¿Â‹Ê»sԏYd·ZucYZ^Ÿ{ 
Y|¬»®Ë {‹Ê»[Zzf¿Yd·ZuY|¬»ÉY€]Ã{Y{Â¿®Ë,|Ë|m{ZveYž]Ze®Ë¦Ë€ eÉY€] {‹ 
®/Ë–/¬§d/·ZuµZ/¬f¿Yž]Ze,d·ZuµZ¬f¿Yž]ZeÁ,d·ZuÉY€]ÄÌ·ÁYY|¬»®Ë {‹Ê»[Zzf¿YÄÌ·ÁY 
|/¿YÂeÊ/»ÊËZÆ¿ž]Ze®Ë {€Ì´]Y€«Ã{Z¨f‡Y{»{ZveY¾f»YkZy|¿YÂeÊ»įd‡Yʷ¼ »ž]Ze 
Y€mYd·ZuÉY€mY¹Z´ÀÅ{ÉY|Æ´¿Ä]ZÌ¿įÉYÃ{Y{Z]{ZveYZœf¿Y{»ÊmÁ€y |‹Z]Âz] 
Â/¿®/Ë,{ZveY€]Z¯€œ¿YÉYÄnÌf¿Ã{Y{Y¿YÁÉ{ÁÁÂ¼n»{¾ËY€]ZÀ] |‹Z]Ê»cÁZ¨f»{Y{  
|/‹Z]cÁZ/¨f»Ä/nÌf¿YÂ/¿YÁÉ{ÁÁÉÁ{€ÅZ]d‡Y¾°¼»į{Y{{ÂmÁʸyY{d·ZuY|¬»Ã{Y{ 
€Ë{Z¬»ÉY€mYž]Zeį{Y{{ÂmÁÉ{ZveY {‹¦Ë€ e,|À¯ʼ¿Ã{Z¨f‡YÊËZÆ¿ž]ZeY{ZveY®Ë€³Y 
Á{Â/‹Ê/»Á€/‹€¨Ysum d‡Y{ZveYÂ¿¾ËYYÊ·Zj»Sum |À¯Ê»Ä^‡Zv»€˜‡€ÅY½Âf‡ 
ž/¼m{Z/veY®/Ë€/³Y,µZj»ÉY€] |À¯Ê»ž¼m{ÂyÉY€mYµZu{Â¼n»Z]Yʸ §€Ë{Z¬»Č̼Š
kZ/ÌfuYÃ{Y{Â/¿½MÉY€]ž¼mž]ZeÄ]–¬§,{‹ÄfyZ‡ğ¼n»{Y|ŸYÉY€]Ã{Y{Â¿ÉÁZ¯ÉY€] 
 d‡Y 
|‹Z]Ê»€Ëc]{ZveY¦Ë€ e  

ÉYÄËÁÉZŽZ] 
Áž/]YÂe¾f/‹Â¿d/ÆmY|/Ë|mʈË¿Ä»Z¿€]ÉZÆ¿Z]½{€¯ħZ“Y½Z°»Y½Y€]Z¯Ä]PostgreSQL 
€/´Ë€eÄ/ËÁ®ËZËž]Ze®Ë{»{ |À˳Ê»(PL) ÉYÄËÁÉZÆ¿Z]ZÆ¿MÄ]į|Å{Ê»ZÅÄËÁ  
{Y|/¿ž/^À»¾f/»€Ìˆ/¨eÊ´¿Â/´qÃZ/]{ʌ/¿Y{Ã{Y{ÃZ´ËZaÁ€‡,ÉYÄËÁ½Z]®ËÄ]Ã|‹Äf‹Â¿ 
cZÌW‚mZ]į{‹Ê»Ã{Zf‡€§ÉYÄËÁÃ|À¿Y{€³Ä]Ĩ̛Á¾ËY‘Ÿ{ 
,ÉÂ/v¿¶/̸veÁÄ/˂ne,…Z/acZ̸¼ŸÄ]•Â]€»ÉZÅZ¯Ê»Z¼eÃ|À¿Y{€³¾ËY d‡YZÀ‹M½Z] 
ɁZ/‡Ã{Z/ÌaÁPostgreSQL¾Ì/]glue½YÂ/ÀŸÄ/]Z/ËÁ|/Å{Ê»¹Zn¿Y{ÂyYẠ̀ÁY€mY 
Ä/ËÁʈË¿Ä»Z¿€]½Z]ž]Ze®ËÃ|À¿Y{€³¾ËY{Ây |ËZ¼¿d»|y,ʈË¿Ä»Z¿€]½Z]{{Âm» 
 {‹Ê»ÉY~³Z]Z“Z¬e€]ZÀ]ÁÃ|‹¶ËZb»Z¯­€fŒ»V̋®Ë½YÂÀŸÄ]įd‡Y 

PL/pgSQL SQLÉYÄËÁ½Z]  
|/‹Z]Ê/»PostgreSQLÃ{Y{ÃZ/´ËZaºfˆ/̇ÉY€/]ÉY~³Z]¶]Z«½Z]®ËPL/pgSQL ½Z] 
įd‡YÉY~³Z]¶]Z«ÉYÄËÁ½Z]{ZnËYPL/pgSQL ÊuY€—Y¥|Å 
 |‹Z]Ã{Z¨f‡Y¶]Z«€´Ë€eÉZÅÄËÁÁž]YÂe{ZnËYdÆm

|À¯ħZ“YSQL½Z]Ä]YÊ·€fÀ¯ÉZÅZfyZ‡

|Å{¹Zn¿YYÃ|ÌrÌacZ^‡Zv»|¿YÂf]

{€]gYÄ]Y€]Z¯–‡ÂeÃ|‹¦Ë€ eÉZŀ´¸¼ŸÁž]YÂe,Y¿YÊ»Z¼e

{‹¦Ë€ e|‹Z]{Z¼fŸY¶]Z«Á€‡ÉY€]įʬˀ—Ä]

|‹Z]½Z‡MÁÃ{Z‡½MYÃ{Z¨f‡Y

 

Ê/ËÁ{Á{¶¼ ·YÂf/‡{dy{®ËÁÃ{€¯…ZaYž]Ze¾f»Ã|‹Ê¿YÂyY€§PL/pgSQL Ã|À¿Y{€³ 
¶/»Z¯Â/—Ä]¶¼ ·YÂf‡{dy{ |À¯Ê»|Ì·Âe,{‹Ê»Ê¿YÂyY€§ž]ZeįÉZ]¾Ì·ÁY{YʸyY{ 
ÉZÅÂmÁ…€aÁSQLZyʬ˜À»cYZ^ŸZ»Y|À¯Ê»ļm€eYPL/pgSQL cYÂf‡{ZfyZ‡ 
 |¿Â‹ʼ¿ļm€e0Y§ž]YÂe{Ã|‹Ã{Z¨f‡YSQL 
€ˆ/¨»,|/¿{€³Ã{Z¨f/‡Yž]Z/e{Z/]¾Ì/·ÁYÉY€/]SQLÉZ/ÅÂmÁ…€/acYZ/^ŸY®Ë€ÅÄr¿ZÀq 
ÁSPI_prreparež/]YÂeYÃ{Z¨f/‡YZ/]|/ËZ¼¿Ê/»{Z/nËYÃ{Z/»MÊ/ËY€mYȬ¿®ËPL/pgSQL  
|¿Â/‹Ê/»Ã{Z¨f/‡YČ/¬¿{0Y{|/n»Z/ÅÂmÁ…€aZ]cYZ^Ÿ½MÄË¿Zi|Ë{Z]{SPI_saveplan 
d/‡Y¾/°¼»Ê/ËY€mYČ/¬¿įd‡YÉZ̈]cYZ^Ÿ¶»Z‹įʗ€‹ÉZÅ|¯Z]ž]Ze®ËZÆÀe¾ËY€]ZÀ] 
Y|¿Â/‹Ê»Ã{Z¨f‡YÃ{Y{ÃZ´ËZa•Z^eYµÂ—{0Z «YÁįYÊËZÅȬ¿½MÁÃ|‹Ã{Z»M |‹Z]Äf‹Y{ZÌ¿ 
ÉZ/ÅȬ¿Á|Å{ŠÅZ¯Y…ZadÆm¹Óʸ¯½Z»½Y‚Ì»0Z‡Z‡Y|¿YÂeÊ»€»Y¾ËY |ËZ¼¿Ê»ÀÌy} 
Ä/¯d/‡Y¾/ËY‰Á¾/ËYµZ°/‹Y |/À¯|Ì·ÂeYÉYÄËÁ½Z]ž]Ze{{Âm»cYZ^ŸÉY€]ÂmÁ…€a 
Y€/mYÄ/¸u€»Ä/]ž]Z/eYd¼ˆ/«½MÄ°Ì¿Z»Ze ZyÉÂmÁ…€aZËcZ^Ÿ®Ë{{Âm»ÉZÅZ˜y 
 {Áʼ¿¾Ì]Y,|‡€¿ 
,{Z/‡Ê/»ž]Z/e®Ë{ʏZyÉÂmÁ…€aÉY€]ÂmÁ…€aȬ¿Z^°ËPL/pgSQLįÊ»Z´ÀÅ 
{Â/^Æ]\^/‡€/»Y¾/ËY |/À¯Ê/»Ã{Z¨f/‡YÃ{Y{ÃZ/´ËZa•Z^eYÉY€«€]½Z»µÂ—{Ȭ¿½MY0Y{|n» 
ÊeÔ°Œ/»d/‡Y¾°¼»,|ÌÅ{€Ì̤eY{ÂyÃ{Y{ÃZ´ËZaÉZ¼‹ZËÂacÄ]€³YZ»Y {{€³Ê»ÊËYZ¯ 
 |ËMŠÌa  

ÉÂ/mÁ…€/aČ/¬¿{my_function() •Â/]€»OIDÄ/],|ÌËZ¼¿Y€/mYYÓZ/]ž]Z/eÄ°Ìe{ 
my_function() Z¼/‹0Y| ]Är¿ZÀq,{‹Ê»Ã{Y{ZmYPERFORMcZ^ŸÉY€]Ã|‹ÄfyZ‡ 
 my_function() |¿YÂeʼ¿POPULATE()ÃZ´¿M,|ˁZˆ]Y½M0Y{|n»ÁÃ{€¯DROPY 
|/Ë|mSESSION®ËZËÁ{€¯{ZnËYYPOPULATE0Y{|n»|ËZ]c¾ËY{ |À¯Y|ÌaY 
 {€¯¶ËZb»Z¯¿YY½M|ËZ]ÄnÌf¿{Á{€¯Z£MYÃ{Y{ÃZ´ËZaÉY€] 
Ä/]Ä/¯ÊËZ/ÅÂmÁ…€/a |/À¯Ê/»ÀÌy}YÊËY€mYÉZÅȬ¿ªË€—¾Ë|]PL/pgSQLįZn¿MY 
Ä/ mY€»Y€/mY€Å{ÊÆ]ZŒ»ÉZÅ|¸Ì§ÁµÁY|mÄ]{‹Ê»€ÅZ›PL/pgSQLž]Ze{ºÌ¬fˆ»c 
ÉÁ{ÉY€] |ÌÀ¯Ã{Z¨f‡YÂmÁ…€a{|¸Ì§Z˵Á|m¹Z¿½Z¼ÅZ]ɀf»YZa|Ì¿YÂeʼ¿Á¾ËYY-|ÀÀ¯ 
cZ/^ŸYÄ/¯|/ÌÀ¯ɂ/Ës€/—ÉÂ/—Y{ÂyÉZËÂaÉZÅÂmÁ…€a|Ì¿YÂeÊ»,dË{Á|v»¾ËYY 
{Z/nËY|Ë|mÉÂmÁ…€aȬ¿®ËY€mY€ÅÉY€]įÄÀ˂žËYZ]Äf^·Y |ÀÀ¯Ã{Z¨f‡YEXECUTE 
 |ÌËZ¼¿ 
PL/pgsqlYÃ{Z¨f‡YÉZËY‚»
€eÓZ]ÊËYZ¯ 
sqlYÊ¿Z^ÌfŒa  
ÊËZn]ZmÁµZ¬f¿Yd̸]Z«  

PL/Tel – Tel ÉYÄËÁ½Z] 

½Z/]Ä/¯|/‹Z]Ê/»PostgreSQLÃ{Y{ÃZ´ËZaÉY€]ÉY~³Z]¶ËZ§ÉYÄËÁ½Z]®ËPL/Tel 
 {‹Ã{Z¨f‡Y€´Ë€eÉZÅÄËÁÁž]YÂe¾f‹Â¿ÉY€]{Z‡Ê»{Z«YTel 
ÉZÀjf‡YÄ],|ÀÅ{Ê»ÄWYY,{Y{ZÌfyY{C½Z]{ž]ZeÃ|ÀˆË¿®ËįYÊeZ¿Z°»Y€fŒÌ]PL/Tel 
 dË{Á|v»ʼ¯{Y| e 
ğ¼n»{ÃÁԟÄ] {‹Ê»Y€mYTel¾¼ËY€ˆ¨»®Ë{‚ÌqļÅįdˆÀËY[ÂydË{Á|v»®Ë 
ª/ˀ—YÃ{Y{ÃZ´ËZaÄ]ʇ€f‡{dÆmcYÂf‡{Yʼ¯{Y| eZÆÀe,¾¼ËYTelÃ|‹{Á|v»cYÂf‡{ 
Ã{Y{ÃZ/´ËZa¶/yY{Ä/]Ê/‡€f‡{ÉY€/]Ê/ÅYpÌ/Å |À/‹Z]Ê/»…€f‡{{elog()¹Z¤Ìa|Ì·ÂeÁSPI  
{Y|/¿{Â/mÁPostgreSQLÁuser IDÉZŁÂn»dveOS-levelÄ]ʇ€f‡{ZËÁbackend 
Y½Z/]¾ËYYÃ{Z¨f‡Y½Z°»Y,Ã{Y{ÃZ´ËZaÄËÁ€Ì£€]Z¯pÌÅÁ¾ËYY|À¿YÂeÊ»Cž]YÂeįĿ´¿M 
ž/]YÂe{Z/nËYd/Æm|/À¿YÂeÊ/»Tel ÉZ/ÅÄËÁįd‡Y¾ËYÃ|‹ɁZ‡Ã{ZÌadË{Á|v»€´Ë{ {Y{ 
 |¿Â‹Ã{Z¨f‡Y|Ë|mÉYÃ{Y{Y¿YÉY€]ÊmÁ€y É{ÁÁ 
Ä]d‡Y¾°¼»€¨¿®Ë0Ôj» |À‹Z]Ã|Œ¿{Á|v»,¾¼ËYTelÄ]į|¿Â‹Äf‹Â¿Ê ]YÂed‡Y¹ÓÊÅZ³
PL/Tel YÉ{| f»ÉZÅÄÀ˂³É{Y»¾ÌÀq{ |‹Z]Äf‹Y{ZÌ¿,|À¯Ê»µZ‡YmailįTelž]Ze 
Tel€ˆ¨»®ËÄ°ÀËY‚mÄ]|‹Z]Ê»½Z]½Z¼Å0Z¬Ì«{¾ËY |¿Â‹Ê»Ã|Ì»Z¿PL/TclUį|¿Y{{ÂmÁ 
€/Ì£ÉYÄ/ËÁ½Z]®Ë½YÂÀŸÄ]|ËZ],{{€³Ê»Ã{Z¨f‡YPL/TclU Är¿ZÀq {‹Ê»Ã{Z¨f‡Y¶»Z¯ 
ž]Z/eÃ|Àˆ/Ë¿ |/¿Y{Y½M{ž]Z/e{Z/nËY½Z/°»YZ/ÅsuperuserZ/ÆÀeÄ/¯{{€/³\/¿{Z¼fŸY¶]Z« 
½YÂ/ÀŸÄ/]€]Z¯Ä°ÀËY€´»|Å{¹Zn¿YÉZ¯pÌÅ|¿YÂeʼ¿ž]Zeį|‹Z]Äf‹Y{ÄmÂe|ËZ]PL/TclU 
 {‹{YÁÃ{Y{ÃZ´ËZa€^ÅY®Ë 
PL/PerlÉYÄËÁ½Z] 

½Z/]Ä/]YPostgreSQLž]Z/e¾f/‹Â¿½Z/°»YZ¼‹Ä]įd‡Y€´Ë{ÉYÄËÁ½Z]®ËPL/Perl 
 |Å{Ê» PerlʈË¿Ä»Z¿€] 
Ä/mÂe |ÌËZ¼¿Ã{Z¨f‡Ycreatelang piperi dhnameY|ËZ]Ã{Y{ÃZ´ËZa{PL/Perl\¿ÉY€] 
ÉYÃ{Y{ÉZÆÅZ´ËZaÊ»Z¼e|‹Z]Ã|‹\¿templatel{½Z]®ËÄr¿ZÀqįd‡YºÆ»Äf°¿¾ËYÄ] 
 d‹Y{|ÀÅYÂyY½Z]¾ËYZ¯{ÂycÄ]|¿{€³{ZnËY½MY†aį 
{ {{€³Ê»\¿plperl¹Z¿dve{Z¼fŸY¶]Z«ʈË¿Ä»Z¿€]½Z]®Ë½YÂÀŸÄ]PL/Perl0Ó¼ » 
Ê/¸¯cÂ/Ä/] {{€/³Ê/»µZ/ §€/Ì£perlÉZÆeZ̸¼ŸYÊy€],dÌÀ»Yš¨uÉY€]\¿‰Á¾ËY 
Ä/]Ê/‡€f‡{ÉY€/]Ê/ÅYpÌ/Å |/À¸»Z e{–Ì/v»Z]į|ÀfˆÅÊËZÆ¿M{‹Ê»{Á|v»įÊËZÆeZ̸¼Ÿ 
user ID ÉZ///ŁÂn»d///veOS-levelÄ///]Ê///‡€f‡{Z///]ÁbackendÃ{Y{ÃZ///´ËZa¶///yY{ 
Ã{Y{ÃZ´ËZaÄËÁ€Ì£€]Z¯pÌÅÁ¾ËYY|À¿YÂeÊ»Cž]YÂeįĿ´ÀËY {Y|¿{ÂmÁPostgreSQL 
{Âm»PL/Perl{€“ZuµZu{€Ë{Ã|‹s€˜»ÉZÆ̳„ËÁ {Y{Y½Z]¾ËYYÃ{Z¨f‡Y½Z°»Y, 
|¿{€³ž«YÁd¯ZŒ»dÆm½Y|À¼«ÔŸÄmÂe{»d‡Y¾°¼»Á|À‹Z]ʼ¿ 
Ê]ÉZÆ·YÁ€ËZÆ¿MY€Ë|ÀÀ¯Ê¿YÂyY€§Y€´Ë|°Ë0Z¼Ì¬fˆ»|À¿YÂeʼ¿PL/Perlž]YÂe

 

¾f/‹Y~³­Y€f/‹YÄ/]d/ÆmZ/Æ¿MÉY€/]ÊÅY€/“ZuµZ/u{ |À/‹Z]Ê»perl{¹Z¿
{Y|¿{ÂmÁɀ‡Y€‡ÉZŀ̤f» 
 {€¯Ã{Z¨f‡Y€´Ë€ež]YÂe¾f‹Â¿ÉY€]½YÂeʼ¿YPL/Perl

 

ž/¼mPostgreSQL{Y|¿Zf/‡Yž/ˁÂe{|/ËZ]Ä]ZŒ»ÉZÆf̸]Z«ZËÁDBD::pgSPI

|¿{€³  

PL/PythonÉYÄËÁ½Z] 

ʈ//Ë¿Ä//»Z¿€]½Z//]Ä//]PostgreSQLž//]YÂe¾f//‹Â¿½Z//°»Yd//‡YÉYÄ//ËÁ½Z//]PL/Python 
{Z¼fŸY¶]Z«½Z]®Ë½YÂÀŸÄ]ZÆÀe€“ZuµZu{PL/Python {Âm»Äzˆ¿ |Å{Ê»YPython 
Y PL/PythonÄËÁÄ] d‡Y¾°¼»€Ì£ʸv»ž]ZÀ»€´Ë{ÁºfˆÌ‡¶ËZ§Ä]ʇ€f‡{|ËZ¼¿Ê»¶¼Ÿ 

Ã{Z¨f‡Y{€fŒÌ]dË{Á|v»µZ¼ŸY\^‡{Ây¾ËYį,|À¯Ê»Ã{Z¨f‡YPython{Á|v»ÊËY€mY–Ìv» 
 |Å{Ê»{ÁÁÁZmYÄËÁdˆÌ·®ËYÊËZÆ·ÁƒZ»Ä]–¬§Á{{€³Ê»¶ËZ§openÊ¿YÂyY€§Y                 

~yN»Áž]ZÀ»
1) http://s2k-ftp.cs.berkeley.edu.8000/postgres/postgres.html
2) www.linux-magazin.com
3) www.bostill-linux.org
4) http://www.unixodbc.org/doc/ooomysql.pdf
5) http://www.openoffice.org/licenses/pdl.pdf
6) †¯ÂÀÌ·ÉZ¼ÀÅY[Zf¯ utf 8d¼ˆ«

Sign up to vote on this title
UsefulNot useful