]> granicus.if.org Git - postgresql/commitdiff
Update Turkish FAQ, Devrim GUNDUZ
authorBruce Momjian <bruce@momjian.us>
Thu, 31 Jul 2003 04:41:56 +0000 (04:41 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 31 Jul 2003 04:41:56 +0000 (04:41 +0000)
doc/FAQ_turkish
doc/src/FAQ/FAQ_turkish.html

index ce15326b6fedfa6cb7cd105f47812d366e8be5da..e9e23986fb8608dd033f8f9726d9a3c942ed636c 100644 (file)
+               PostgreSQL için Sýkça Sorulan Sorular (SSS)
+                                       
+   Son güncelleme : 19.05.2003 Cuma 05:03
 
-   PostgreSQL için Sýkça Sorulan Sorular (SSS) Son güncelleme : 19 Mayýs
-   2003 Pazartesi - 03:05:21 Current maintainer: Bruce Momjian
-   (pgman@candle.pha.pa.us ) Çeviren : Devrim GÜNDÜZ (devrim@gunduz.org )
-   Nicolai Tufar (ntufar@yahoo.com ) Bu belgenin en güncel hali,
-   http://www.PostgreSQL.org/docs/faqs/FAQ_turkish.html ve
-   http://www.gunduz.org/seminer/pg/FAQ_turkish adreslerinde görülebilir.
-   Platforma özel sorularýnýz,http://www.PostgreSQL.org/docs/index.html
-   adresinde yanýtlanýr..
-   ----------------------------------------------------------------------
-   -- Genel Sorular 1.1 <#1.1>) PostgreSQL nedir? Nasýl okunur? 1.2
-   <#1.2>) PostgreSQL' in haklarý nedir? 1.3 <#1.3>) PostgreSQL, hangi
-   Unix platformlarýnda çalýsýr? 1.4 <#1.4>) Hangi Unix olmayan
-   uyarlamalarý bulunmaktadýr? 1.5 <#1.5>) PostgreSQL'i nereden
-   indirebilirim? 1.6 <#1.6>) Desteði nereden alabilirim? 1.7 <#1.7>) En
-   son sürümü nedir? 1.8 <#1.8>) Hangi belgelere ulasabilirim? 1.9
-   <#1.9>) Bilinen hatalar ya da eksik özelliklere nereden ulasabilirim?
-   1.10 <#1.10>) Nasýl SQL öðrenebilirim? 1.11 <#1.11>) PostgreSQL 2000
-   yýlýna uyumlu mudur? 1.12 <#1.12>) Geliþtirme takýmýna nasýl
-   katýlabilirim?? 1.13 <#1.13>) Bir hata raporunu nasýl gönderebilirim?
-   1.14 <#1.14>) PostgreSQL, diger VTYS(DBMS lerle nasýl
-   karþýlaþtýrýlabilir? 1.15 <#1.15>) PostgreSQL'e maddi açýdan nasýl
-   destek olabilirim? Kullanýcý/istemci Sorularý 2.1 <#2.1>) Are there
-   ODBC drivers for PostgreSQL? 2.2 <#2.2>) What tools are available for
-   using PostgreSQL with Web pages? 2.3 <#2.3>) Does PostgreSQL have a
-   graphical user interface? 2.4 <#2.4>) What languages are available to
-   communicate with PostgreSQL? Administrative Questions 3.1 <#3.1>) How
-   do I install PostgreSQL somewhere other than //usr/local/pgsql/? 3.2
-   <#3.2>) When I start /postmaster/, I get a /Bad System Call/ or core
-   dumped message. Why? 3.3 <#3.3>) When I try to start /postmaster/, I
-   get /IpcMemoryCreate/ errors. Why? 3.4 <#3.4>) When I try to start
-   /postmaster/, I get /IpcSemaphoreCreate/ errors. Why? 3.5 <#3.5>) How
-   do I control connections from other hosts? 3.6 <#3.6>) How do I tune
-   the database engine for better performance? 3.7 <#3.7>) What debugging
-   features are available? 3.8 <#3.8>) Why do I get /"Sorry, too many
-   clients"/ when trying to connect? 3.9 <#3.9>) What is in the
-   /pgsql_tmp/ directory? 3.10 <#3.10>) Why do I need to do a dump and
-   restore to upgrade PostgreSQL releases? Operational Questions 4.1
-   <#4.1>) What is the difference between binary cursors and normal
-   cursors? 4.2 <#4.2>) How do I SELECT only the first few rows of a
-   query? 4.3 <#4.3>) How do I get a list of tables or other things I can
-   see in /psql/? 4.4 <#4.4>) How do you remove a column from a table?
-   4.5 <#4.5>) What is the maximum size for a row, a table, and a
-   database? 4.6 <#4.6>) How much database disk space is required to
-   store data from a typical text file? 4.7 <#4.7>) How do I find out
-   what tables, indexes, databases, and users are defined? 4.8 <#4.8>) My
-   queries are slow or don't make use of the indexes. Why? 4.9 <#4.9>)
-   How do I see how the query optimizer is evaluating my query? 4.10
-   <#4.10>) What is an R-tree index? 4.11 <#4.11>) What is the Genetic
-   Query Optimizer? 4.12 <#4.12>) How do I perform regular expression
-   searches and case-insensitive regular expression searches? How do I
-   use an index for case-insensitive searches? 4.13 <#4.13>) In a query,
-   how do I detect if a field is NULL? 4.14 <#4.14>) What is the
-   difference between the various character types? 4.15.1 <#4.15.1>) How
-   do I create a serial/auto-incrementing field? 4.15.2 <#4.15.2>) How do
-   I get the value of a SERIAL insert? 4.15.3 <#4.15.3>) Don't
-   /currval()/ and /nextval()/ lead to a race condition with other users?
-   4.15.4 <#4.15.4>) Why aren't my sequence numbers reused on transaction
-   abort? Why are there gaps in the numbering of my sequence/SERIAL
-   column? 4.16 <#4.16>) What is an OID? What is a TID? 4.17 <#4.17>)
-   What is the meaning of some of the terms used in PostgreSQL? 4.18
-   <#4.18>) Why do I get the error /"ERROR: Memory exhausted in
-   AllocSetAlloc()"/? 4.19 <#4.19>) How do I tell what PostgreSQL version
-   I am running? 4.20 <#4.20>) Why does my large-object operations get
-   /"invalid large obj descriptor"/? 4.21 <#4.21>) How do I create a
-   column that will default to the current time? 4.22 <#4.22>) Why are my
-   subqueries using |IN| so slow? 4.23 <#4.23>) How do I perform an outer
-   join? 4.24 <#4.24>) How do I perform queries using multiple databases?
-   4.25 <#4.25>) How do I return multiple rows or columns from a
-   function? 4.26 <#4.26>) Why can't I reliably create/drop temporary
-   tables in PL/PgSQL functions? 4.27 <#4.27>) What replication options
-   are available? 4.28 <#4.28>) What encryption options are available?
-   Extending PostgreSQL 5.1 <#5.1>) I wrote a user-defined function. When
-   I run it in /psql/, why does it dump core? 5.2 <#5.2>) How can I
-   contribute some nifty new types and functions to PostgreSQL? 5.3
-   <#5.3>) How do I write a C function to return a tuple? 5.4 <#5.4>) I
-   have changed a source file. Why does the recompile not see the change?
-   ----------------------------------------------------------------------
-   -- General Questions 1.1) What is PostgreSQL? How is it pronounced?
-   PostgreSQL is pronounced /Post-Gres-Q-L/. PostgreSQL is an enhancement
-   of the POSTGRES database management system, a next-generation DBMS
-   research prototype. While PostgreSQL retains the powerful data model
-   and rich data types of POSTGRES, it replaces the PostQuel query
-   language with an extended subset of SQL. PostgreSQL is free and the
-   complete source is available. PostgreSQL development is performed by a
-   team of developers who all subscribe to the PostgreSQL development
-   mailing list. The current coordinator is Marc G. Fournier
-   (scrappy@PostgreSQL.org ). (See section 1.6 <#1.6> on how to join).
-   This team is now responsible for all development of PostgreSQL. The
-   authors of PostgreSQL 1.01 were Andrew Yu and Jolly Chen. Many others
-   have contributed to the porting, testing, debugging, and enhancement
-   of the code. The original Postgres code, from which PostgreSQL is
-   derived, was the effort of many graduate students, undergraduate
-   students, and staff programmers working under the direction of
-   Professor Michael Stonebraker at the University of California,
-   Berkeley. The original name of the software at Berkeley was Postgres.
-   When SQL functionality was added in 1995, its name was changed to
-   Postgres95. The name was changed at the end of 1996 to PostgreSQL.
-   1.2) What is the copyright on PostgreSQL? PostgreSQL is subject to the
-   following COPYRIGHT: PostgreSQL Data Base Management System Portions
-   copyright (c) 1996-2002, PostgreSQL Global Development Group Portions
-   Copyright (c) 1994-6 Regents of the University of California
+   Bruce Momjian (pgman@candle.pha.pa.us)
+   Çeviren : Devrim GÜNDÜZ (devrim@gunduz.org), Nicolai Tufar (ntufar@yahoo.com), Volkan Yazýcý (volkany@celiknet.com)
+   
+   Bu belgenin en güncel hali, http://www.gunduz.org/seminer/pg/FAQ_turkish ve 
+   http://www.PostgreSQL.org/docs/faq-turkish.html 
+   adreslerinde gorülebilir.
+   
+   Platforma özel sorularýnýz, 
+   http://www.PostgreSQL.org/users-lounge/docs/faq.html adresinde yanýtlanýr.
+     _________________________________________________________________
+   
+                             Genel Sorular
+                                      
+   1.1) PostgreSQL nedir? Nasýl okunur?
+   1.2) PostgreSQL' in haklarý nedir?
+   1.3) PostgreSQL, hangi Unix platformlarýnda çalýsýr?
+   1.4) Hangi Unix olmayan uyarlamalarý bulunmaktadýr?
+   1.5) PostgreSQL'i nereden indirebilirim?
+   1.6) Desteði nereden alabilirim?
+   1.7) En son sürümü nedir?
+   1.8) Hangi belgelere ulasabilirim?
+   1.9) Bilinen hatalar ya da eksik özelliklere nereden ulasabilirim?
+   1.10) Nasýl SQL ögrenebilirim?
+   1.11) PostgreSQL 2000 yýlýna uyumlu mudur?
+   1.12) Geliþtirme takýmýna nasýl katýlabilirim?
+   1.13) Bir hata raporunu nasýl gönderebilirim?
+   1.14) PostgreSQL, diger DBMS'lerle nasýl karþýlaþtýrýlabilir?
+   1.15) PostgreSQL'e maddi açýdan nasýl destek olabilirim?
+   
+                      Kullanýcý/istemci Sorularý
+                                      
+   2.1) PostgreSQL icin ODBC sürücüleri var mý?
+   2.2) PostgreSQL'i web sayfalarýnda kullanabilmek için hangi araçlar bulunmaktadýr?
+   2.3) PostgreSQL'in grafik kullanýcý arabirimi var mýdýr? 
+        Report generator var mýdýr? Gömülü sorgu dili arabirimi var mýdýr?
+   2.4) PostgreSQL ile iletiþimi kurabilmek için hangi dilleri kullanabilirim?
+   
+                   Yönetimsel Sorular
+                                      
+
+   3.1) PostgreSQL'i, /usr/local/pgsql dizininden baþka dizinlere nasýl kurabilirim?
+   3.2) Postmaster'i baslattýgýmda, Bad System Call ya da core dumped mesajý 
+       alýyorum. Neden?
+   3.3) Postmaster'i baþlattýðýmda, IpcMemoryCreate hatasý alýyorum. Neden?
+   3.4) Postmaster'i baþlattýðýmda, IpcSemaphoreCreate hatasý alýyorum. Neden?
+   3.5) Diðer bilgisayarlarýn benim PostgreSQL veritabaný sunucuma baðlantýlarýný nasýl 
+       kontrol edebilirim?
+   3.6) Veritabaný motorunu daha iyi baþarým icin nasýl ayarlayabilirim?
+   3.7) Hangi hata ayýklama özellikleri bulunmaktadýr?
+   3.8) Baðlanmaya çalýþýrken, neden "Sorry, too many clients" hatasýný alýyorum?
+   3.9) pgsql_tmp dizininin içindeki dosyalar nelerdir?
+   3.10) PostgreSQL sürümlerini yükselmek için neden bir dump/reload iþlemi gerçekleþtirmek 
+       zorundayým?
+
+                        Ýþletimsel Sorular
+                                      
+   4.1) Binary cursor ve normal cursor arasýndaki fark nedir?
+   4.2) Sorgunun sadece ilk birkaç satýrýný nasýl SELECT edebilirim?
+   4.3) psql'in içinde gördüðüm tablolarýn ya da diðer þeylerin listesini nasil alabilirim?
+   4.4) Bir tablodan bir kolonu nasýl kaldýrabilirim?
+   4.5) Bir satýr, tablo ve veritabaný icin en fazla büyüklük nedir? 
+   4.6) Tipik bir metin dosyasýndaki veriyi saklamak için ne kadar disk alaný gereklidir?
+   4.7) Veritabanýnda hangi tablo ya da indexlerin tanýmlandýgýný nasýl görebilirim?
+   4.8) Sorgularým cok yavaþ, ya da indexlerimi kullanmýyorlar. Neden?
+   4.9) Query-optimizer in sorgularýmý nasýl deðerlendirdigini, iþleme soktuðunu nasýl görebilirim?
+   4.10) R-tree index nedir?
+   4.11) Genetic Query Optimizer nedir?
+   4.12) Düzenli ifade (Regular Expression) aramalarýný ve büyük/küçük harfe duyarsýz aramalarý nasil yapabilirim?
+       Bu büyük(küçük harfe duyarlý aramalar için indeksi nasil kullanabilirim?
+
+   4.13) Bir sorguda, bir alanýn "NULL" olduðunu nasýl ortaya çýkarabilirim?
+   4.14) Çesitli karakter tipleri arasýndaki farklar nelerdir?
+   4.15.1) Nasýl serial/otomatik artan(auto-incrementing) bir alan yaratabilirim?
+   4.15.2) SERIAL giriþinin deðerini nasýl alabilirim?
+   4.15.3) currval() ve  nextval() diðer kullanýcýlara sorun yaratmaz mý?
+   4.15.4) Neden sequence sayýlarýn transaction iþleminin iptalinden sonra yeniden kullanýlýyor? Neden sequence/SERIAL 
+       kolonumdaki sayýlarda atlamalar oluyor?
+   4.16) OID nedir? TID nedir?
+   4.17) PostgreSQL' de kullanýlan bazý terimlerin anlamlarý nelerdir?
+   4.18) Neden  "ERROR: Memory exhausted in AllocSetAlloc()"? hatasýný alýyorum?
+   4.19) Hangi PostgreSQL sürümünü çalýstýrdýðýmý nasýl görebilirim?
+   4.20) Neden large-object iþlemlerim, "invalid large obj descriptor"? hatasýný veriyor?
+   4.21) Þu andaki zamaný öntanýmlý deðer olarak kabul eden kolonu nasýl yaratýrým?
+   4.22) Neden IN kullanan subquerylerim çok yavaþ?
+   4.23) Outer join iþlemini nasýl yapabilirim?
+   4.24) Ayný anda birden fazla veritabanýnda nasýl iþlem yapabilirim?
+   4.25) Bir fonksiyondan nasýl çoklu satýr ya da kolon döndürebilirim?
+   4.26) Neden Pl/PgSQL fonksiyonlarý içinden güvenli bir þekilde tablo yaratma/kaldýrma iþlemlerini yapamýyoruz?
+   4.27) Hangi replikasyon seçenekleri bulunmaktadýr?
+   4.28) Hangi þifreleme seçenekleri bulunmaktadýr?
+       
+       PostgreSQL Özelliklerini Geniþletmek
+                                      
+   5.1) Kullanýcý-tanýmlý bir fonksiyon yazdým. psql'de çalýþtýrdýðým zaman neden 
+       core dump ediyor?
+   5.2) PostgreSQL'e nasýl yeni veri tipleri/fonksiyonlar ekleyebilirim?
+   5.3) Bir tuple döndürmek için bir C fonksiyonunu nasýl yazarým?
+   5.4) Bir kaynak dosyasýnda deðisiklik yaptým. Yeniden derlememe raðmen 
+       deðiþiklik geçerli olmuyor. Neden?
+     _________________________________________________________________
+   
+                             Genel sorular
+                                      
+    1.1) PostgreSQL nedir?
+    
+   PostgreSQL, Post-Gres-Q-L olarak okunur.
+   
+   PostgreSQL, yeni-nesil VTYS arastýrma prototipi olan POSTGRES veritabaný 
+   yönetim sisteminin geliþtirilmesidir. POSTGRES' in zengin veri 
+   tiplerini ve güçlü veri modelini tutarken, SQL'in geliþtirilmis alt kümesi 
+   olan PostQuel dilini kullanýr. PostgreSQL ücretsizdir ve kaynak kodu açýk daðýtýlýr.
+
+   PostgreSQL, PostgreSQL gelistirme listesine üye olan bir ýnternet gelistirici
+   takýmý tarafýndan geliþtirilir. Þu andaki koordinatör, Marc G. Fournier 
+   (scrappy@PostgreSQL.org). (Bu takýma nasýl katýlacagýnýzý ögrenmek için  
+   1.6 numaralý maddeyi okuyunuz.) Bu takým, tüm PostgreSQL geliþiminden sorumludur.
+
+   PostgreSQL 1.01 sürümünün yazarlarý Andrew Yu ve Jolly Chen idi. Bunlarýn dýsýnda bir kaç kisi de uyarlama,
+   hata ayýklama ve kodun gelistirilmesi için çalýsmýstý. PostgreSQL'in türedigi orijinal Postgres kodu, 
+   lisans, lisansüstü ve akademisyenler tarafindan, Professor Michael Stonebraker ) University of
+   California, Berkeley) koordinatörlügünde yazýlmýstýr.
+   
+   Berkley'deki yazýlýmým adý Postgres idi. SQL uyumlulugu 1995'te eklenince, adý Postgres 95
+   oldu. 1996 yýlýnýn sonlarýnda adý PostgreSQL olarak degistirildi.
+   
+       1.2) PostgreSQL'in haklarý nedir?
+       
+   PostgreSQL Data Base Management System
+   
+   Portions copyright (c) 1996-2002, 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. The
-   above is the BSD license, the classic open-source license. It has no
-   restrictions on how the source code may be used. We like it and have
-   no intention of changing it. 1.3) What Unix platforms does PostgreSQL
-   run on? In general, a modern Unix-compatible platform should be able
-   to run PostgreSQL. The platforms that had received explicit testing at
-   the time of release are listed in the installation instructions. 1.4)
-   What non-Unix ports are available? *Client* It is possible to compile
-   the /libpq/ C library, psql, and other interfaces and client
-   applications to run on MS Windows platforms. In this case, the client
-   is running on MS Windows, and communicates via TCP/IP to a server
-   running on one of our supported Unix platforms. A file /win32.mak/ is
-   included in the distribution for making a Win32 /libpq/ library and
-   /psql/. PostgreSQL also communicates with ODBC clients. *Server* The
-   database server can run on Windows NT and Win2k using Cygwin, the
-   Cygnus Unix/NT porting library. See /pgsql/doc/FAQ_MSWIN/ in the
-   distribution or the MS Windows FAQ at
-   http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN
-   www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN>. A native port to MS Win
-   NT/2000/XP is currently being worked on. For more details on the
-   current status of PostgreSQL on Windows see
-   http://techdocs.postgresql.org/guides/Windows
-   techdocs.postgresql.org/guides/Windows>. There is also a Novell
-   Netware 6 port at http://forge.novell.com. 1.5) Where can I get
-   PostgreSQL? The primary anonymous ftp site for PostgreSQL is
-   ftp://ftp.PostgreSQL.org/pub. For mirror sites, see our main web site.
-   1.6) Where can I get support? The main mailing list is:
-   pgsql-general@PostgreSQL.org . It is available for discussion of
-   matters pertaining to PostgreSQL. To subscribe, send mail with the
-   following lines in the body (not the subject line): subscribe end to
-   pgsql-general-request@PostgreSQL.org . There is also a digest list
-   available. To subscribe to this list, send email to:
-   pgsql-general-digest-request@PostgreSQL.org with a body of: subscribe
-   end Digests are sent out to members of this list whenever the main
-   list has received around 30k of messages. The bugs mailing list is
-   available. To subscribe to this list, send email to
-   pgsql-bugs-request@PostgreSQL.org with a body of: subscribe end There
-   is also a developers discussion mailing list available. To subscribe
-   to this list, send email to pgsql-hackers-request@PostgreSQL.org with
-   a body of: subscribe end Additional mailing lists and information
-   about PostgreSQL can be found via the PostgreSQL WWW home page at:
-   http://www.PostgreSQL.org There is also an IRC channel on EFNet and
-   OpenProjects, channel /#PostgreSQL/. I use the Unix command |irc -c
-   '#PostgreSQL' "$USER" irc.phoenix.net.| A list of commercial support
-   companies is available at
-   http://www.ca.PostgreSQL.org/users-lounge/commercial-support.html.
-   1.7) What is the latest release? The latest release of PostgreSQL is
-   version 7.3.3. We plan to have major releases every four months. 1.8)
-   What documentation is available? Several manuals, manual pages, and
-   some small test examples are included in the distribution. See the
-   //doc/ directory. You can also browse the manuals online at
-   http://www.PostgreSQL.org/docs. There are two PostgreSQL books
-   available online at http://www.PostgreSQL.org/docs/awbook.html and
-   http://www.commandprompt.com/ppbook/. There is a list of PostgreSQL
-   books available for purchase at http://www.ca.PostgreSQL.org/books/.
-   There is also a collection of PostgreSQL technical articles at
-   http://techdocs.PostgreSQL.org/. /psql/ has some nice \d commands to
-   show information about types, operators, functions, aggregates, etc.
-   Our web site contains even more documentation. 1.9) How do I find out
-   about known bugs or missing features? PostgreSQL supports an extended
-   subset of SQL-92. See our TODO developer.PostgreSQL.org/todo.php> list
-   for known bugs, missing features, and future plans. 1.10) How can I
-   learn SQL? The PostgreSQL book at
-   http://www.PostgreSQL.org/docs/awbook.html teaches SQL. There is
-   another PostgreSQL book at http://www.commandprompt.com/ppbook.
-   www.commandprompt.com/ppbook/> There is a nice tutorial at
+   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.
+   
+   Üstteki metin klasik açýk-kod lisansý olan BSD lisansýdýr. Kaynak kodun nasýl 
+   kullanýlabileceðine dair sýnýrlamalarý yoktur. Bu lisansi seviyoruz ve deðiþtirme 
+   niyetimiz bulunmamaktadýr.
+   
+       1.3) PostgreSQL, hangi Unix platforlarýnda çalýsýr?
+    
+   Genel olarak, modern bir Unix-uyumlu platform PostgreSQL'i çalýstýracaktýr.
+   Ayrýntýlý bilgi için kurulum belgelerine bakabilirsiniz
+   
+       1.4) Hangi Unix olmayan uyarlamalarý bulunmaktadýr?
+    
+   Ýstemci
+   
+   libpq C kütüphanesini, psql ve diger arabirimleri ve binary dosyalarý, MS
+   Windows ortamlarýnda çalýsmasý için derlemeniz mümkündür. Bu örnekte  istemcide
+   MS Windows çalýsýyor ve desteklenen Unix platformlarýndan birinde çalýsan PostgreSQL
+   sunucuna TCP/IP ile baglanmaktadýr. Daðýtým içindeki win31.mak dosyasý ile,
+   Win32 libpg kütüphanesi ve psql yaratabilirsiniz. PostgreSQL ayný zamanda ODBC
+   istemcileri ile haberlesebilmektedir.
+
+   Sunucu
+
+   Veritabaný sunuucsu Cygwin kullanarak Windows NT, 2K ya da XP üzerinde calistirilabilir.
+   Dagýtým içindeki pgsql/doc/FAQ_MSWýN dosyasýný ya da web sitemizdeki MS Windows FAQ'u
+   inceleyebilirsiniz. 
+       
+   Doðal Windows NT/2000/XP portu için þu anda çalýþmalar devam etmektedir. Windows sürümü  
+   hakkýnda güncel bilgi için, http://techdocs.postgresql.org/guides/Windows adresini 
+   ziyaret edebilirsiniz.
+       
+   Ayrýca, http://forge.novell.com adresinde Novell Netware 6 portu bulunmaktadýr.  
+
+       1.5) PostgreSQL'in nereden indirebilirim?
+    
+   PostgreSQL için ana anonim ftp sitesi ftp://ftp.PostgreSQL.org/pub ' dur.
+   Yansýlar için, ana web sayfamýza bakabilirsiniz.
+   
+   1.6) Desteði nereden alabilirim?
+    
+   Ana e-posta listesi : pgsql-general@PostgreSQL.org. PostgreSQL konusundaki tartýsmalara
+   açýktýr. Üye olmak için, asagýdaki satýrlarý e-postanizin body kýsmýna (konu kýsmýna degil)
+   yazýp, pgsql-general-request@PostgreSQL.org adresine gönderin:
+
+    subscribe
+    end
+
+   Ayný zamanda, bir digest listesi bulunmaktadýr. Bu listeye üye olmak için, 
+    pgsql-general-digest-request@PostgreSQL.org adresine, body kýsmýnda
+   
+    subscribe
+    end
+
+   yazan bir e-posta atmanýz yeterli olacaktýr.
+
+   Digest postalar, ana liste 30k civarýnda e-postaya ulastiginda üyelere gönderilmektedir.
+
+   Buglar için bir e-posta listesi bulunmaktadýr. Bu listeye üye olmak için,
+   email to pgsql-bugs-request@PostgreSQL.org adresine, body kýsmýnda
+
+    subscribe
+    end
+
+    yazan bir e-posta atmanýz yeterli olacaktýr.
+
+   Ayný zamanda, gelistiriciler için tartýsma listesi bulunmaktadýr. Bu listeye üye olmak
+   için,  pgsql-hackers-request@PostgreSQL.org adresine,  body kýsmýnda
+
+    subscribe
+    end
+
+   yazan bir e-posta atmanýz yeterli olacaktýr.
+
+   Bunun dýsýndaki e-posta listelerine ve PostgreSQL hakkýnda bilgiye, PostgreSQL WWW 
+   ana sayfasýndan ulasabilirsiniz:
+   
+     http://www.PostgreSQL.org
+
+   Ayný zamanda, EFNet üzerinde, #PostgreSQL adlý bir ýRC kanalý bulunmaktadýr. Bunun için,
+    irc -c '#PostgreSQL' "$USER" irc.phoenix.net Unix komutunu kullanabilirsiniz.
+   
+   Ticari destek veren firmalarýn listesine,
+
+   http://www.postgresql.org/users-lounge/commercial-support.html
+   adresinden ulasabilirsiniz.
+   
+       1.7) En son sürümü nedir?
+    
+   PostgreSQL'in son sürümü 7.3.3'tür. 
+
+   Her 4 ayda major release çýkarýlmasý planlanmaktadýr.
+   
+       1.8) Hangi belgelere ulasabilirim?
+    
+   Daðýtýmýn icinde, kitapciklar, kitapcik sayfalari ve bazi küçük örnekler verilmektedir.
+   /doc dizinine bakýnýz. Ayrica, bu el kitapçýklarýný online olarak
+   http://www.PostgreSQL.org/docs/ adresinden inceleyebilirsiniz. 
+
+   http://www.PostgreSQL.org/docs/awbook.html ve http://www.commandprompt.com/ppbook 
+   adreslerinde PostgreSQL kitaplarý bulunmaktadýr. PostgreSQL kitablarýnýn listesine, 
+   http://www.ca.PostgreSQL.org/books/ adresinden ulaþaiblirsiniz. Ayrýca, PostgreSQL 
+   konusundaki teknik makalelere de http://techdocs.PostgreSQL.org/ adresinden 
+   ulaþabilirsiniz.
+
+   psql'in, \d ile baslayan veri tipler, operatorler, fonksiyonlar, aggregateler,vb. ile 
+   ilgili güzel komutlarý vardýr.
+   
+   Web sitemiz daha fazla belgeyi içermektedir.
+   
+       1.9) Bilinen hatalar ya da eksik özelliklere nereden ulasabilirim?
+    
+   PostgreSQL SQL-92 uyumlugugu icindedir, standartlardan fazla da özellikleri
+   bulunmaktadýr. Bilinen hatalar, eksik özellikler ve gelecek ile ilgili planlar için
+   TODO listesine bakýnýz.
+   
+       1.10) Nasýl SQL ögrenebilirim?
+    
+   http:/www.PostgreSQL.org/docs/awbook.html adresindeki kitap SQL ögretecektir.
+   http://www.commandprompt.com/ppbook adresinde de bir baska PostgreSQL kitabý bulunmaktadýr.
+
    http://www.intermedia.net/support/sql/sqltut.shtm,
-   www.intermedia.net/support/sql/sqltut.shtm> at
-   http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM,
-   ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM> and at
-   http://sqlcourse.com. sqlcourse.com/> Another one is "Teach Yourself
-   SQL in 21 Days, Second Edition" at
-   http://members.tripod.com/er4ebus/sql/index.htm Many of our users like
-   /The Practical SQL Handbook/, Bowman, Judith S., et al.,
-   Addison-Wesley. Others like /The Complete Reference SQL/, Groff et
-   al., McGraw-Hill. 1.11) Is PostgreSQL Y2K compliant? Yes, we easily
-   handle dates past the year 2000 AD, and before 2000 BC. 1.12) How do I
-   join the development team? First, download the latest source and read
-   the PostgreSQL Developers documentation on our web site, or in the
-   distribution. Second, subscribe to the /pgsql-hackers/ and
-   /pgsql-patches/ mailing lists. Third, submit high quality patches to
-   pgsql-patches. There are about a dozen people who have commit
-   privileges to the PostgreSQL CVS archive. They each have submitted so
-   many high-quality patches that it was impossible for the existing
-   committers to keep up, and we had confidence that patches they
-   committed were of high quality. 1.13) How do I submit a bug report?
-   Please visit the PostgreSQL BugTool page at
-   http://www.PostgreSQL.org/bugs/bugs.php, which gives guidelines and
-   directions on how to submit a bug report. Also check out our ftp site
-   ftp://ftp.PostgreSQL.org/pub to see if there is a more recent
-   PostgreSQL version or patches. 1.14) How does PostgreSQL compare to
-   other DBMSs? There are several ways of measuring software: features,
-   performance, reliability, support, and price. *Features* PostgreSQL
-   has most features present in large commercial DBMSs, like
-   transactions, subselects, triggers, views, foreign key referential
-   integrity, and sophisticated locking. We have some features they do
-   not have, like user-defined types, inheritance, rules, and
-   multi-version concurrency control to reduce lock contention.
-   *Performance* PostgreSQL has performance similar to other commercial
-   and open source databases. it is faster for some things, slower for
-   others. In comparison to MySQL or leaner database systems, we are
-   slower on inserts/updates because of transaction overhead. Of course,
-   MySQL does not have any of the features mentioned in the /Features/
-   section above. We are built for reliability and features, though we
-   continue to improve performance in every release. There is an
-   interesting Web page comparing PostgreSQL to MySQL at
-   http://openacs.org/philosophy/why-not-mysql.html
-   openacs.org/philosophy/why-not-mysql.html> *Reliability* We realize
-   that a DBMS must be reliable, or it is worthless. We strive to release
-   well-tested, stable code that has a minimum of bugs. Each release has
-   at least one month of beta testing, and our release history shows that
-   we can provide stable, solid releases that are ready for production
-   use. We believe we compare favorably to other database software in
-   this area. *Support* Our mailing lists provide contact with a large
-   group of developers and users to help resolve any problems
-   encountered. While we cannot guarantee a fix, commercial DBMSs do not
-   always supply a fix either. Direct access to developers, the user
-   community, manuals, and the source code often make PostgreSQL support
-   superior to other DBMSs. There is commercial per-incident support
-   available for those who need it. (See FAQ section 1.6 <#1.6>.) *Price*
-   We are free for all use, both commercial and non-commercial. You can
-   add our code to your product with no limitations, except those
-   outlined in our BSD-style license stated above. 1.15) How can I
-   financially assist PostgreSQL? PostgreSQL has had a first-class
-   infrastructure since we started in 1996. This is all thanks to Marc
-   Fournier, who has created and managed this infrastructure over the
-   years. Quality infrastructure is very important to an open-source
-   project. It prevents disruptions that can greatly delay forward
-   movement of the project. Of course, this infrastructure is not cheap.
-   There are a variety of monthly and one-time expenses that are required
-   to keep it going. If you or your company has money it can donate to
-   help fund this effort, please go to http://store.pgsql.com/shopping/
-   and make a donation. Although the web page mentions PostgreSQL, Inc,
-   the "contributions" item is solely to support the PostgreSQL project
-   and does not fund any specific company. If you prefer, you can also
-   send a check to the contact address.
-   ----------------------------------------------------------------------
-   -- User Client Questions 2.1) Are there ODBC drivers for PostgreSQL?
-   There are two ODBC drivers available, PsqlODBC and OpenLink ODBC. You
-   can download PsqlODBC from
-   http://gborg.postgresql.org/project/psqlodbc/projdisplay.php
-   gborg.postgresql.org/project/psqlodbc/projdisplay.php>. OpenLink ODBC
-   can be gotten from http://www.openlinksw.com www.openlinksw.com/>. It
-   works with their standard ODBC client software so you'll have
-   PostgreSQL ODBC available on every client platform they support (Win,
-   Mac, Unix, VMS). They will probably be selling this product to people
-   who need commercial-quality support, but a freeware version will
-   always be available. Please send questions to
-   postgres95@openlink.co.uk . 2.2) What tools are available for using
-   PostgreSQL with Web pages? A nice introduction to Database-backed Web
-   pages can be seen at: http://www.webreview.com For Web integration,
-   PHP is an excellent interface. It is at http://www.php.net. For
-   complex cases, many use the Perl interface and CGI.pm or mod_perl.
-   2.3) Does PostgreSQL have a graphical user interface? Yes, there are
-   several graphical interfaces to PostgreSQL available. These include
-   PgAccess http://www.pgaccess.org www.pgaccess.org>), PgAdmin II
-   (http://www.pgadmin.org, Win32-only), RHDB Admin
-   (http://sources.redhat.com/rhdb/ ) and Rekall (
-   http://www.thekompany.com/products/rekall/
-   www.thekompany.com/products/rekall/>, proprietary). There is also
-   PHPPgAdmin ( http://phppgadmin.sourceforge.net/
-   phppgadmin.sourceforge.net/>), a web-based interface to PostgreSQL.
-   See http://techdocs.postgresql.org/guides/GUITools for a more detailed
-   list. 2.4) What languages are able to communicate with PostgreSQL?
-   Most popular programming languages contain an interface to PostgreSQL.
-   Check your programming language's list of extension modules. The
-   following interfaces are included in the PostgreSQL distribution: * C
-   (libpq) * Embedded C (ecpg) * Java (jdbc) * Python (PyGreSQL) * TCL
-   (libpgtcl) Additional interfaces are available at
-   http://gborg.postgresql.org in the /Drivers/Interfaces/ section.
-   ----------------------------------------------------------------------
-   -- Administrative Questions 3.1) How do I install PostgreSQL somewhere
-   other than //usr/local/pgsql/? Specify the /--prefix/ option when
-   running /configure/. 3.2) When I start /postmaster/, I get a /Bad
-   System Call/ or core dumped message. Why? It could be a variety of
-   problems, but first check to see that you have System V extensions
-   installed in your kernel. PostgreSQL requires kernel support for
-   shared memory and semaphores. 3.3) When I try to start /postmaster/, I
-   get /IpcMemoryCreate/ errors. Why? You either do not have shared
-   memory configured properly in your kernel or you need to enlarge the
-   shared memory available in the kernel. The exact amount you need
-   depends on your architecture and how many buffers and backend
-   processes you configure for /postmaster/. For most systems, with
-   default numbers of buffers and processes, you need a minimum of ~1 MB.
-   See the PostgreSQL Administrator's Guide
-   www.PostgreSQL.org/docs/view.php?version=current&idoc=1&file=kernel-re
-   sources.html> for more detailed information about shared memory and
-   semaphores. 3.4) When I try to start /postmaster/, I get
-   /IpcSemaphoreCreate/ errors. Why? If the error message is
-   /IpcSemaphoreCreate: semget failed (No space left on device)/ then
-   your kernel is not configured with enough semaphores. Postgres needs
-   one semaphore per potential backend process. A temporary solution is
-   to start /postmaster/ with a smaller limit on the number of backend
-   processes. Use /-N/ with a parameter less than the default of 32. A
-   more permanent solution is to increase your kernel's SEMMNS and SEMMNI
-   parameters. Inoperative semaphores can also cause crashes during heavy
-   database access. If the error message is something else, you might not
-   have semaphore support configured in your kernel at all. See the
-   PostgreSQL Administrator's Guide for more detailed information about
-   shared memory and semaphores. 3.5) How do I control connections from
-   other hosts? By default, PostgreSQL only allows connections from the
-   local machine using Unix domain sockets. Other machines will not be
-   able to connect unless you add the /-i/ flag to /postmaster/, *and*
-   enable host-based authentication by modifying the file
-   /$PGDATA/pg_hba.conf/ accordingly. This will allow TCP/IP connections.
-   3.6) How do I tune the database engine for better performance?
-   Certainly, indexes can speed up queries. The EXPLAIN command allows
-   you to see how PostgreSQL is interpreting your query, and which
-   indexes are being used. If you are doing many INSERTs, consider doing
-   them in a large batch using the COPY command. This is much faster than
-   individual INSERTS. Second, statements not in a BEGIN WORK/COMMIT
-   transaction block are considered to be in their own transaction.
-   Consider performing several statements in a single transaction block.
-   This reduces the transaction overhead. Also, consider dropping and
-   recreating indexes when making large data changes. There are several
-   tuning options. You can disable /fsync()/ by starting /postmaster/
-   with a /-o -F/ option. This will prevent /fsync()/s from flushing to
-   disk after every transaction. You can also use the /postmaster/ /-B/
-   option to increase the number of shared memory buffers used by the
-   backend processes. If you make this parameter too high, the
-   /postmaster/ may not start because you have exceeded your kernel's
-   limit on shared memory space. Each buffer is 8K and the default is 64
-   buffers. You can also use the backend /-S/ option to increase the
-   maximum amount of memory used by the backend process for temporary
-   sorts. The /-S/ value is measured in kilobytes, and the default is 512
-   (i.e. 512K). You can also use the CLUSTER command to group data in
-   tables to match an index. See the CLUSTER manual page for more
-   details. 3.7) What debugging features are available? PostgreSQL has
-   several features that report status information that can be valuable
-   for debugging purposes. First, by running /configure/ with the
-   --enable-cassert option, many /assert()/s monitor the progress of the
-   backend and halt the program when something unexpected occurs. Both
-   /postmaster/ and /postgres/ have several debug options available.
-   First, whenever you start /postmaster/, make sure you send the
-   standard output and error to a log file, like: cd /usr/local/pgsql
-   ./bin/postmaster >server.log 2>&1 & This will put a server.log file in
-   the top-level PostgreSQL directory. This file contains useful
-   information about problems or errors encountered by the server.
-   /Postmaster/ has a /-d/ option that allows even more detailed
-   information to be reported. The /-d/ option takes a number that
-   specifies the debug level. Be warned that high debug level values
-   generate large log files. If /postmaster/ is not running, you can
-   actually run the /postgres/ backend from the command line, and type
-   your SQL statement directly. This is recommended *only* for debugging
-   purposes. Note that a newline terminates the query, not a semicolon.
-   If you have compiled with debugging symbols, you can use a debugger to
-   see what is happening. Because the backend was not started from
-   /postmaster/, it is not running in an identical environment and
-   locking/backend interaction problems may not be duplicated. If
-   /postmaster/ is running, start /psql/ in one window, then find the PID
-   of the /postgres/ process used by /psql/. Use a debugger to attach to
-   the /postgres/ PID. You can set breakpoints in the debugger and issue
-   queries from /psql/. If you are debugging /postgres/ startup, you can
-   set PGOPTIONS="-W n", then start /psql/. This will cause startup to
-   delay for /n/ seconds so you can attach to the process with the
-   debugger, set any breakpoints, and continue through the startup
-   sequence. The /postgres/ program has /-s, -A/, and /-t/ options that
-   can be very useful for debugging and performance measurements. You can
-   also compile with profiling to see what functions are taking execution
-   time. The backend profile files will be deposited in the
-   /pgsql/data/base/dbname/ directory. The client profile file will be
-   put in the client's current directory. Linux requires a compile with
-   /-DLINUX_PROFILE/ for proper profiling. 3.8) Why do I get /"Sorry, too
-   many clients"/ when trying to connect? You need to increase
-   /postmaster/'s limit on how many concurrent backend processes it can
-   start. The default limit is 32 processes. You can increase it by
-   restarting /postmaster/ with a suitable /-N/ value or modifying
-   /postgresql.conf/. Note that if you make /-N/ larger than 32, you must
-   also increase /-B/ beyond its default of 64; /-B/ must be at least
-   twice /-N/, and probably should be more than that for best
-   performance. For large numbers of backend processes, you are also
-   likely to find that you need to increase various Unix kernel
-   configuration parameters. Things to check include the maximum size of
-   shared memory blocks, SHMMAX; the maximum number of semaphores, SEMMNS
-   and SEMMNI; the maximum number of processes, NPROC; the maximum number
-   of processes per user, MAXUPRC; and the maximum number of open files,
-   NFILE and NINODE. The reason that PostgreSQL has a limit on the number
-   of allowed backend processes is so your system won't run out of
-   resources. 3.9) What is in the /pgsql_tmp/ directory? This directory
-   contains temporary files generated by the query executor. For example,
-   if a sort needs to be done to satisfy an ORDER BY and the sort
-   requires more space than the backend's /-S/ parameter allows, then
-   temporary files are created here to hold the extra data. The temporary
-   files are usually deleted automatically, but might remain if a backend
-   crashes during a sort. A stop and restart of the /postmaster/ will
-   remove files from those directories. 3.10) Why do I need to do a dump
-   and restore to upgrade between major PostgreSQL releases? The
-   PostgreSQL team makes only small changes between minor releases, so
-   upgrading from 7.2 to 7.2.1 does not require a dump and restore.
-   However, major releases (e.g. from 7.2 to 7.3) often change the
-   internal format of system tables and data files. These changes are
-   often complex, so we don't maintain backward compatability for data
-   files. A dump outputs data in a generic format that can then be loaded
-   in using the new internal format. In releases where the on-disk format
-   does not change, the /pg_upgrade/ script can be used to upgrade
-   without a dump/restore. The release notes mention whether /pg_upgrade/
-   is available for the release.
-   ----------------------------------------------------------------------
-   -- Operational Questions 4.1) What is the difference between binary
-   cursors and normal cursors? See the DECLARE manual page for a
-   description. 4.2) How do I SELECT only the first few rows of a query?
-   See the FETCH manual page, or use SELECT ... LIMIT.... The entire
-   query may have to be evaluated, even if you only want the first few
-   rows. Consider using a query that has an ORDER BY. If there is an
+   http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM
+   http://sqlcourse.com ve http://sqlcourse2.com adreslerinde de güzel belgeler bulunmaktadýr.
+
+   Bir baþkasý da,  http://members.tripod.com/er4ebus/sql/index.htm adresinde bulunan
+   "Teach Yourself SQL in 21 Days, Second Edition" kitabýdýr.
+   
+   Bazý kullanýcýlarýmýz da þu kitabý önermektedirler: 
+       The Practical SQL Handbook, Bowman, Judith S., et al.,Addison-Wesley. Others 
+       like The Complete Reference SQL, Groff et al., McGraw-Hill.    
+
+   1.11) PostgreSQL 2000 yýlýna uyumlu mudur?
+    
+   Evet. 
+   
+       1.12) Gelistirme takýmýna nasýl katýlabilirim?
+    
+   Öncelikle, en son kaynak kodunu indirin ve web sitemizdeki ya da dagýtýmýn içindeki 
+   PostgreSQL Developer belgesini okuyun. Ardindan, pgsql-hackers ve pgsql-patches 
+   listelerine üye olun. Üçüncü olarak da, pgsql-pacthes listesine yüksek kalitede 
+   yamalar gönderin.
+
+   PostgreSQL CVS arsivine erisim izni olan, 10 kadar gelistirici bulunmaktadir.
+   Hepsi defalarca, diger kisilerin yaptigindan cok daha  yüksek-kaliteli patchler 
+   gondermislerdir. Ayrica biz de bu gelistiricilerin ekledikleri yamalarin yüksek
+   kalitede olduguna güveniyoruz.
+   
+       1.13) Bir hata raporunu nasýl gönderebilirim? 
+
+  PostgreSQL BugTool sayfasina gidiniz. O sayfada bir bug bildirmek icin neleri 
+  yapmanýz gerektigi anlatilmistir.
+   
+  Ayrýca, ftp://ftp.PostgreSQL.org/pub ftp adresimizde, yeni bir PostgreSQL sürümü 
+  ya da yamasi olup olmadigini kontrol ediniz.
+   
+       1.14) PostgreSQL, diger DBMS'lerle nasýl karsilastýrýlabilir?
+    
+   Bir yazilimin gücünü ölçmek için çesitli yollar vardir: Yazilimin özellikleri, 
+   basarýmý, güvenilirligi, destegi ve ücreti.
+   
+   Özellikler
+
+   PostgreSQL mevcut büyük ticari veritabanlarinin, transaction, subselect, 
+   trigger, view, foreign key referential integrity ve sophisticated locking gibi
+   tüm özelliklerine sahiptir. Onlarin sahip olmadiklari, kullanici-tanimli tipler 
+   (user-defined types), rules, inheritance  ve lock cakýsmalarini düsürmek icin 
+   multi-version uyumluluk özellikleri bulunmaktadir.
+          
+   Performans (Baþarým)
+
+   PostgreSQL, diðer ticari ve açýk kaynak kodlu veritabanlarýyla yakýn baþarýmý saðlar. 
+   Bazý açýlardan daha hýzlýdýr, diðer açýlardan da yavaþtýr. MySQL ya da daha zayýf 
+   veritabanlarý ile karþýlaþtýrýldýðýnda,insert/update islemlerinde, transaction bazlý 
+   çalýstýðýmýz için daha yavaþýz. MySQL, yukarýdaki "Özellikler" kýsmýnda belirtilenlerden
+   hiç birine sahip deðildir. Biz, baþarýmýmýzý her sürümde arttýrsak da, esneklik ve 
+   geliþmiþ özellikler için yapýlanmýs durumdayýz . PostgreSQL'i MySQL ile karþýlaþtýran  
+   þu web sitesine bakabilirsiniz: http://openacs.org/why-not-mysql.html
+          
+   Güvenilirlik
+   DBMSlerin güvenilir olmasý gerketigi, yoksa degerleri olmayacagini düsünüyoruz
+   Çok iyi test edilmis, dengeli çalýsan minimum sayýda hata içeren kod sunmaya çalýsýyoruz.
+   Her bir sürüm en az 1 aylýk beta testlerinden geçirilmektedir. Sürüm geçmiþine bakarsanýz,
+   üretime hazýr, dengeli ve kararlý kodlar sundugumuzu görebilirsiniz. Bu alanda, diger 
+   veritabaný yaZýlýmlarýna üstünlügümüz olduguna inanmaktayýz
+
+   Destek
+   E-posta listemiz, olusan herhangi bir sorunu çözebilecek büyük sayýda kullanýcý
+   ve gelistirici grubunu içerir. Sorununuz için, en az bir ticari veritabaný kadar
+   rahat çözüm bulabilirsiniz. Gelistiricilere, kullanýcý grubuna, belgelere ve
+   kaynak koda direk olarak erisebilme, PostgreSQL destegini, diger DBMSlere göre daha
+   önemli kýlar. Gereksinimi olanlara, ticari destek verilebilir. (Destek için 1.6 bölümüne bakýnýz.)
+          
+   Fiyat
+   Ticari ve ticari olmayan tüm kullanýmlarýnýz için PostgreSQL ücretsizdir. Kodumuzu, yukarýda belirtilen
+   BSD-stili lisanstaki sýnýrlamalar hariç, ürününüzün içine ekleyebilirsiniz.
+          
+       1.15) PostgreSQL'e maddi açýdan nasýl destek olabilirim?
+    
+   PostgreSQL, 1996 yýlýndan beri 1.sýnýf altyapýya ashiptir. Bunun için, yýllar boyu çalýsýp bu altyapýyý
+   olusturup yöneten Marc Fournier'e tesekkürler.
+
+   Bir açýk kaynak kodlu proje için, kaliteli altyapý çok önemlidir. Bu altyapý, projenin
+   kesilmesini önler ve projenin ilerlemesini hýzlandýrýr.
+   
+   Tabii ki bu altyapý ucuz degildir. ýslerin yürümesi için çeþitli yýlýk ve anlýk 
+   harcamalarýmýz olmaktadýr. Eger siz ya da sirketinizin bu çabamýza bagýsta 
+   bulunabilecek parasý varsa, lütfen http://www.pgsql.com/pg_goodies adresine 
+   gidiniz ve bagýsta, hibede bulununuz.
+
+   Web sayfasýnýn PostgreSQL, ýnc.' den bahsetmesine ragmen, "katkýda bulunanlar" 
+   (contributors) maddesi sadece PostgreSQL projesini desteklemek içindir ve belirli bir 
+   sirketin para kaynagý degildir. isterseniz, baglantý adresine bir çek gönderebilirsiniz.
+
+   ____________________________________________________________________________
+   
+                      Kullanýcý/istemci Sorularý
+                                      
+   2.1) PostgreSQL icin ODBC sürücüleri var mý?
+    
+   iki tane ODBC sürücüsü bulunmaktadýr:  PsqlODBC ve OpenLink ODBC.
+   
+   PsqlODBC'i http://gborg.postgresql.org/project/psqlodbc/projdisplay.php adresinden 
+   indirebilirsiniz.
+  
+  OpenLink ODBC http://www.openlinksw.com adresinden alýnabilir.Bu sürücü,
+  kendi standart ODBC istemci yazýlýmý ile çalýstýðýndan, destekledikleri 
+  her platformda (Win, Mac, Unix, VMS) PostgreSQL ODBC bulunmalidir.
+   
+  Ücretsiz sürümü olmakla beraber, ticari kalitede destek almak isteyenlere satmak isteyeceklerdir. 
+  Sorularýnýzý lütfen postgres95@openlink.co.uk adresine gönderiniz.
+   
+        2.2) PostgreSQL'i web sayfalarýnda kullanabilmek için hangi araçlar bulunmaktadýr?
+
+   http://www.webreview.com adresinde, arka planda veritabaný çalýstýran Web sayfalarý
+   için giris seviyesinde bilgi bulunmaktadýr.
+   
+   Web ile bütünlesme için, PHP mükemmel bir arabirim sunar. http://www.php.net .
+   
+   Karmaþýk sorunlar için, çoðu kisi Perl arabirimini ve  CGI.pm  ya da mod_perl kullanýr.
+   
+
+       2.3) PostgreSQL'in grafik kullanýcý arabirimi var mýdýr? 
+    
+   Çeþitli grafik arabirimlerimiz bulunmaktadýr. Bunlarýn arasýnda, PgAccess (http://www.pgaccess.org),
+   PgAdmin II (http://www.pgadmin.org, sadece Win32 için), RHDB Admin (http://sources.redhat.com/rhdb/ )
+   ve Rekall (http://www.thekompany.com/products/rekall/) bulunmaktadýr. Ayrýca, PostgreSQL için web
+   tabanlý bir arabirim olan PHPPgAdmin (  http://phppgadmin.sourceforge.net/ ) bulunmaktadýr.
+   
+   Daha ayrýntýlý liste için http://techdocs.postgresql.org/guides/GUITools adresine bakabilirsiniz.
+
+       2.4) PostgreSQL ile iletiþimi kurabilmek için hangi dilleri kullanabilirim?
+
+     * C (libpq)
+     * Embedded C (ecpg)
+     * Java (jdbc)
+     * Python (PyGreSQL)
+     * TCL (libpgtcl)
+
+     Diðerleri için, http://gborg.postgresql.org adresindeki Drivers/Interfaces bölümüne 
+     bakabilirsiniz.
+     _________________________________________________________________
+   
+                       Yönetimsel Sorular
+                                      
+   3.1) PostgreSQL'i, /usr/local/pgsql dizininden baska dizinlere nasýl kurabilirim?
+    
+   configure betigini çalýstýrýrken, --prefix seçenegini veriniz.
+   
+       3.2) postmaster'i baslattýgýmda, a Bad System Call ya da core dumped mesajý 
+       alýyorum. Neden?
+    
+   Bunun birçok nedeni olabilir. Ancak ilk kontrol edilmesi gereken sey, çekirdeginize
+   System V uzantýlarýnýn kurulu olup olmadýgýný kontrol etmek olabilir. PostgreSQL 
+   shared memory ve semaphores için çekirdek destegine gereksinim duyar.
+
+       3.3) postmaster'i baslattýgýmda, a ýpcMemoryCreate hatasý alýyorum. Neden?
+    
+   Ya çekirdeginizde shared memory desteginiz düzgünce yapýlandýrýlmamýstýr, ya da 
+   çekirdeginizdeki mevcut shared memory miktarýný büyütmeniz gerekecektir. Gereksinim
+   duyacagýnýz miktar, mimarinize ve postmaster için ayarladýgýnýz tampon ile backend 
+   islemi sayýsýna baglýdýr. Tüm sistemler için, tamponlar ve islemlerde öntanýmlý sayýlarla,
+   ~ 1MB kadar yere gereksinmeniz olacaktir.PostgreSQL Administrator's Guide' a, shared memory 
+   ve semaphorelar  hakkýndaki ayrýntýlý bilgi için bakabilirsiniz.
+
+       3.4) postmaster'i baslattýgýmda, a ýpcSemaphoreCreate hatasý alýyorum. Neden?
+    
+   Eger hata, "ýpcSemaphoreCreate: semget failed (No space left on device)" ise, 
+   çekirdeginiz yeterli semaphore ile yapýlandýrýlmamýs demektir. Postgres, her 
+   bir potansiyel backend için bir semaphore gereksinmesi duyar. Geçici bir çözüm, 
+   postmasterý backend islemleri için daha az miktarda sýnýrla baslatmak olabilir. 
+   -N i varsaýlan deger olan 32'den küçük bir degerle baslatýnýz. Daha kalýcý bir 
+    çözüm, çekirdeðinizin SEMMNS ve SEMMNI parametrelerini yükseltmek olacaktýr.
+   
+   Çalýþmayan semaphorelar aðýr veritabaný islemlerinde çökme yaratabilirler.
+
+   Eger hata mesajýnýz baska birsey ise, çekirdeginizde semaphore destegini 
+   yapýlandýrmamýs olabilirsiniz. Shared memory ve semaphorelar hakkýndaki daha 
+   ayrýntýlý bilgi için PostgreSQL Administrator's Guide'a bakabilirsiniz.
+   
+       3.5) Diger bilgisayarlarýn benim PostgreSQL veritabaný sunucuma baglantýlarýný 
+       nasýl kontrol edebilirim?
+    
+   Ön tanýmlý olarak, PostgreSQL sadece yerel makineden Unix domain sockets kullanarak 
+   baglanýlmasýna izin verir. Diger makineler, postmaster'a -i etiketini geçirmezseniz 
+   ve $PGDATA_pg_hba.conf dosyasýný düzenleyerek  host-based authentication'a 
+   olanak vermezseniz, baglantý yapamayacaklardýr. 
+   
+       3.6) Veritabani motorunu daha iyi basarim icin nasil ayarlayabilirim?
+  
+   Indexler sorgularý hýzlandýrabilir. EXPLAIN komutu, PostgreSQL'in sorgunuzu nasýl
+   yorumladýðýný ve hangi indexleri kullandigini görmenize izin verir.
+
+   Eðer cok fazla INSERT islemi yapiyorsaniz, bunlarý büyük bir toplu islem dosyasi kullanýp
+   COPY komutu ile veritabanina girmeyi deneyiniz. Bu, tekil ýNSERTlerden daha hýzlýdýr.
+   ikinci olarak,  BEGýN WORK/COMMýT transaction blogu içinde olmayan  ifadeler kendi 
+   transactionlarindaymis gibi düsünülür. Çoklu ifadeleri tek bir transaction bloðu içinde 
+   yapabilirsiniz. Bu, transaction overheadini düþürecektir. Tek bir 
+   transaction bloðu içinde  birden çok ifadeyi çalýþtýrmayý 
+   deneyebilirsiniz. Bu, transaction overhead ini düþürür.
+   
+   Çeþitli ayarlama seçenekleri mevcuttur. fsync() iþlemini, postmaster'ý -o -F seçeneði ile 
+   baþlatarak devre dýþý býrakabilirsiniz. Bu iþlem, fsync()'lerin her transactiondan sonra 
+   diske flush etmesini engelleyecektir.
+
+   Ayný zamanda, postmaster'i -B seçeneði ile baþlatýp, backend iþlemleri tarafýndan kullanýlan 
+   shared memorf buffers sayýlarýný arttýrabilirsiniz. Eger bu parametreyi çok yüksek tutarsanýz, 
+   çekirdeðinizin shared memory bölgesindeki limiti aþma olasýlýðýnýz yüzünden postmaster 
+   baþlayamayabilir. Her bir tampon (buffer) 8K'dýr. Öntanýmlý sayý ise 64 tampondur.
+   
+   Ayný þekilde, backend'in -S seçeneðini geçici sýralamalar için backend süreçleri tarafýndan
+   kullanýlacak hafýzayý arttýrmak amacýyla kullanabilirsiniz. -S seçeneði kilobayt cinsinden deðer alýr 
+   ve ön tanýmlý deðeri 512'dir (512 K)
+     
+   Tablolardaki veriyi bir indekse eþlemek amacýyla gruplama için CLUSTER komutunu kullanabilirsiniz.
+   Ayrýntýlý bilgi için CLUSTER komutunun yardým sayfasýna bakabilirsiniz.
+
+       3.7) Hangi hata ayýklama özellikleri bulunmaktadýr?
+
+   PostgreSQL, hata ayýklama amacýyla kullanýlabilecek durum bilgisi rapor eden çeþitli 
+   özeliklere sahiptir.
+   Öncelikle, configure betiðini --enable-cassert seçeneðiyle çalýþtýrýrsanýz, bir çok assert() backend calýþmasýný 
+   gözlemler ve beklenmeyen bir durumda programý durdurur.
+
+   Postmaster ve postgres çeþitli hata ayýklama seçeneklerine sahiptir. Öncelikle, 
+   postmaster'i baþlattýðýnýzda, standart çýktýyý ve hatalarý bir log dosyasýna 
+   yönlendirdiðinize emin olun:
+
+    cd /usr/local/pgsql
+    ./bin/postmaster >server.log 2>&1 &
+
+    Bu iþlem PostgreSQL ana dizinine server.log dosyasý yerleþtirecektir. Bu dosya sunucunun 
+    yaþadýðý sorunlar ya da hatalar hakkýnda yararlý bilgiler içerir. -d seçeneði, hata 
+    ayýklama seviyesini belirten bir rakam ile kullanýlýr. Yüksek hata ayýklama 
+    seviyelerinin büyük log dosyalarý oluþturacaðýný unutmayýnýz.
+  
+    Eðer postmaster çalýþmýyorsa, postgres backend'ini komut satýrýndan çalýþtýrabilir ve SQL ifadenizi
+    direk olarak yazabilirsiniz. Bu sadece hata ayýklama amacýyla önerilir. Burada, noktalý virgülün deðil de
+    yeni bir satýrýn sorguyu sonlandýrdýðýný unutmayýnýz. Eðer hata ayýklama sembolleri ile derlediyseniz,
+    ne olduðunu görmek için bir hata ayýklayýcý kullanabilirsiniz. backend postmasterdan baþlatýlmadýðýndan,
+    eþdeðer bir ortamda çalýþmamaktadýr ve locking/backend etkileþim sorunlarý artabilir.
+   
+    Eðer postmaster çalýþýyorsa, bir pencerede psql'i çalýþtýrýn ve psql tarafýndan kullanýlan postgres sürecinin süreç 
+    numarasýný (PID) bulun. Postgres süreci ile iliþkilendirmek için bir hata ayýklarýcý kullanýn. Sorgularý psql 
+    aracýlýðý ile çalýþtýrabilirsiniz. Eðer postgres baþlangýcýnda hata ayýklamak istiyorsanýz, PGOPTIONS="-W n" 
+    seçeneðini ayarlayabilir ve psql'i baþlatabilirsiniz. Bu iþlem, baþlangýcýn n saniye kadar gecikmesini 
+    saðlayacaktýr; böylece hata ayýklayýcýyý sürece iliþkilendirdikten sonra baþlangýç sürecinin devam etmesini 
+    saðlayabilirsiniz.
+
+    postgres programý hata ayýklama ve baþarým ölçümleri için -s, -A ve -t seçeneklerine sahiptir.
+      
+       3.8) Baglanmaya çalýsýken, neden "Sorry, too many clients" hatasýný alýyorum?
+    
+   Postmaster'in  eþzamanlý olarak baþlatabileceði backend süreçleri sýnýrlarýný 
+   arttýrmanýz gerekmektedir.
+   
+   Ön tanýmlý deðer 32 süreçtir. Bunu, postmaster'i uygun -N deðeri ile ya da 
+   postgresql.conf dosyasýný düzenleyerek yeniden baþlatmakla arttýrabilirsiniz.
+
+   Eðer -N deðerini 32'den büyük yapacaksanýz, ayný zamanda -B deðerini de deðiþtirmeniz
+   gerektiðini unutmayýn. -B -N'nin en az 2 katý kadar olmalýdýr; daha iyi baþarým için 
+   bu sayýyý daha da arttýrmalýsýnýz. Yüksek sayýdaki backend süreçleri için, çeþitli çekirdek yapýlandýrma
+   parametrelerini arttýrmanýz gerekecektir. Yapýlmasý gerekenler, SHMMAX, SEMMNS, SEMMNI, NPROC, MAXUPRC ve 
+   açýlabilecek dosyalarýn maksimum sayýsý olan NFILE ve NINODE deðerlerini karýþtýrmaktýr. Bunun nedeni, PostgreSQL'in 
+   izin verilen backend süreçlerinin sayýsý üzerinde bir sýnýrý olmasýdýr. Böylelikle sistem kaynaklarýnýn dýþýna 
+   çýkýlmayacaktýr.
+
+   PostgreSQL'in 6.5 sürümüne kadar, en fazla backend sayýsý 64 idi ve bunu deðiþtirmek için 
+   include/storage/sinvaladt.h dosyasý içindeki MaxBAckendid sabitini deðiþtirdek sonra 
+   yazýlýmý yeniden derlemek gerekiyordu.
+   
+       3.9) pgsql_tmp dizinin içindeki dosyalar nelerdir?
+    
+   Sorgu çalýstýrýcý (query executer) tarafýndan yaratýlan geçici dosyalardýr. Örnegin,
+   bir sýralama ORDER BY ile yapilacaksa ve sýralama backend'in -s parametresinin izin
+   verdiginden daha fazla alana gereksinim duyuyorsa, ekstra veriyi tutmak için geçici
+   dosyalar yaratýlýr.
+
+   Geçici dosyalar, eger sýralama sýrasýnda backend göçmezse otomatik olarak silinecektir.
+   Eger çalýsan durumda bir backendiniz yoksa, pg_tempNNN.NN dosyalarýný silmeniz güvenlidir..
+
+   3.10) PostgreSQL sürümlerini yükselmek için neden bir dump/reload iþlemi gerçekleþtirmek zorundayým?
+
+   PostgreSQL takýmý ara sürümlerde sadece küçük deðiþiklikler yapmaktadýr; bu yüzden 7.2 
+   sürümünden 7.2.1'e yükseltmek dump/restore iþlemi gerekmemektedir. Ancak, esas sürümlerde 
+   (örnek: 7.2'den 7.3'e) çoðunlukla sistem tablolarýnýn ve veri dosyalarýnýn iç yapýsý 
+   deðiþtirilir. Bu deðiþiklikler çoðunlukla karmaþýktýr; dolayýsýyla veri dosyalarýnýn 
+   geriye dönük uyumluluðu iþlemlerini yapmýyoruz. Dump iþlemi, veriyi genel biçimde 
+   alacaðýndan yeniden yükleme esnasýnda veri, yeni iç biçime uygun þekilde 
+   yerleþtirilecektir.
+
+   Disk biçiminin deðiþmediði sürümlerde, pg_upgrade betiði güncellemenin bir dump/restore 
+   gerektirmeden yapýlmasýný saðlayacaktýr. pg_upgrade betiðinin o sürüm için bulunup 
+   bulunmadýðýný sürüm notlarý içinde bulabilirsiniz.
+
+     _________________________________________________________________
+   
+                       Ýþletimsel Sorular
+
+                                      
+       4.1) Binary cursor ve normal cursor arasindaki fark nedir?
+    
+   DECLARE yardým sayfasina bakiniz.
+   
+       4.2) Sorgunun sadece ilk birkaç satýrýný nasil SELECT edebilirim?
+           
+   FETCH yardým sayfasina bakiniz, aya da  SELECT ... LIMIT.... kullanýnýz.
+   
+   The entire query may have to be evaluated, even if you only want the
+   first few rows. Consider a query that has an ORDER BY. ýf there is an
    index that matches the ORDER BY, PostgreSQL may be able to evaluate
    only the first few records requested, or the entire query may have to
-   be evaluated until the desired rows have been generated. 4.3) How do I
-   get a list of tables or other things I can see in /psql/? You can read
-   the source code for /psql/ in file /pgsql/src/bin/psql/describe.c/. It
-   contains SQL commands that generate the output for psql's backslash
-   commands. You can also start /psql/ with the /-E/ option so it will
-   print out the queries it uses to execute the commands you give. 4.4)
-   How do you remove a column from a table? This functionality was added
-   in release 7.3 with ALTER TABLE DROP COLUMN. In earlier versions, you
-   can do this: BEGIN; LOCK TABLE old_table; SELECT ... -- select all
-   columns but the one you want to remove INTO TABLE new_table FROM
-   old_table; DROP TABLE old_table; ALTER TABLE new_table RENAME TO
-   old_table; COMMIT; 4.5) What is the maximum size for a row, a table,
-   and a database? These are the limits: Maximum size for a database?
-   unlimited (4 TB databases exist) Maximum size for a table? 16 TB
-   Maximum size for a row? 1.6TB Maximum size for a field? 1 GB Maximum
-   number of rows in a table? unlimited Maximum number of columns in a
-   table? 250-1600 depending on column types Maximum number of indexes on
-   a table? unlimited Of course, these are not actually unlimited, but
-   limited to available disk space and memory/swap space. Performance may
-   suffer when these values get unusually large. The maximum table size
-   of 16 TB does not require large file support from the operating
-   system. Large tables are stored as multiple 1 GB files so file system
-   size limits are not important. The maximum table size and maximum
-   number of columns can be increased if the default block size is
-   increased to 32k. 4.6) How much database disk space is required to
-   store data from a typical text file? A PostgreSQL database may require
-   up to five times the disk space to store data from a text file. As an
-   example, consider a file of 100,000 lines with an integer and text
-   description on each line. Suppose the text string avergages twenty
-   bytes in length. The flat file would be 2.8 MB. The size of the
-   PostgreSQL database file containing this data can be estimated as 6.4
-   MB: 36 bytes: each row header (approximate) 24 bytes: one int field
-   and one text field + 4 bytes: pointer on page to tuple
-   ---------------------------------------- 64 bytes per row The data
-   page size in PostgreSQL is 8192 bytes (8 KB), so: 8192 bytes per page
-   ------------------- = 128 rows per database page (rounded down) 64
-   bytes per row 100000 data rows -------------------- = 782 database
-   pages (rounded up) 128 rows per page 782 database pages * 8192 bytes
-   per page = 6,406,144 bytes (6.4 MB) Indexes do not require as much
-   overhead, but do contain the data that is being indexed, so they can
-   be large also. NULLs are stored in bitmaps, so they use very little
-   space. 4.7) How do I find out what tables, indexes, databases, and
-   users are defined? /psql/ has a variety of backslash commands to show
-   such information. Use \? to see them. There are also system tables
-   beginning with /pg_/ that describe these too. Also, /psql -l/ will
-   list all databases. Also try the file
-   /pgsql/src/tutorial/syscat.source/. It illustrates many of the SELECTs
-   needed to get information from the database system tables. 4.8) My
-   queries are slow or don't make use of the indexes. Why? Indexes are
-   not automatically used by every query. Indexes are only used if the
-   table is larger than a minimum size, and the query selects only a
-   small percentage of the rows in the table. This is because the random
-   disk access caused by an index scan can be slower than a straight read
-   through the table, or sequential scan. To determine if an index should
-   be used, PostgreSQL must have statistics about the table. These
-   statistics are collected using VACUUM ANALYZE, or simply ANALYZE.
-   Using statistics, the optimizer knows how many rows are in the table,
-   and can better determine if indexes should be used. Statistics are
-   also valuable in determining optimal join order and join methods.
-   Statistics collection should be performed periodically as the contents
-   of the table change. Indexes are normally not used for ORDER BY or to
-   perform joins. A sequential scan followed by an explicit sort is
-   usually faster than an index scan of a large table. However, LIMIT
-   combined with ORDER BY often will use an index because only a small
-   portion of the table is returned. In fact, though MAX() and MIN()
-   don't use indexes, it is possible to retrieve such values using an
-   index with ORDER BY and LIMIT: SELECT col FROM tab ORDER BY col [ DESC
-   ] LIMIT 1; If you believe the optimizer is incorrect in choosing a
-   sequential scan, use |SET enable_seqscan TO 'off'| and run tests to
-   see if an index scan is indeed faster. When using wild-card operators
-   such as LIKE or /~/, indexes can only be used in certain
-   circumstances: * The beginning of the search string must be anchored
-   to the start of the string, i.e. o LIKE patterns must not start with
-   /%/. o /~/ (regular expression) patterns must start with /^/. * The
-   search string can not start with a character class, e.g. [a-e]. *
-   Case-insensitive searches such as ILIKE and /~*/ do not utilise
-   indexes. Instead, use functional indexes, which are described in
-   section 4.12 <#4.12>. * The default /C/ locale must be used during
-   /initdb/. 4.9) How do I see how the query optimizer is evaluating my
-   query? See the EXPLAIN manual page. 4.10) What is an R-tree index? An
-   R-tree index is used for indexing spatial data. A hash index can't
-   handle range searches. A B-tree index only handles range searches in a
-   single dimension. R-trees can handle multi-dimensional data. For
-   example, if an R-tree index can be built on an attribute of type
-   /point/, the system can more efficiently answer queries such as
-   "select all points within a bounding rectangle." The canonical paper
-   that describes the original R-tree design is: 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. You can also find
-   this paper in Stonebraker's "Readings in Database Systems". Built-in
-   R-trees can handle polygons and boxes. In theory, R-trees can be
-   extended to handle higher number of dimensions. In practice, extending
-   R-trees requires a bit of work and we don't currently have any
-   documentation on how to do it. 4.11) What is the Genetic Query
-   Optimizer? The GEQO module speeds query optimization when joining many
-   tables by means of a Genetic Algorithm (GA). It allows the handling of
-   large join queries through nonexhaustive search. 4.12) How do I
-   perform regular expression searches and case-insensitive regular
-   expression searches? How do I use an index for case-insensitive
-   searches? The /~/ operator does regular expression matching, and /~*/
-   does case-insensitive regular expression matching. The
-   case-insensitive variant of LIKE is called ILIKE. Case-insensitive
-   equality comparisons are normally expressed as: SELECT * FROM tab
-   WHERE lower(col) = 'abc'; This will not use an standard index.
-   However, if you create a functional index, it will be used: CREATE
-   INDEX tabindex ON tab (lower(col)); 4.13) In a query, how do I detect
-   if a field is NULL? You test the column with IS NULL and IS NOT NULL.
-   4.14) What is the difference between the various character types? Type
-   Internal Name Notes --------------------------------------------------
-   VARCHAR(n) varchar size specifies maximum length, no padding CHAR(n)
-   bpchar blank padded to the specified fixed length TEXT text no
-   specific upper limit on length BYTEA bytea variable-length byte array
-   (null-byte safe) "char" char one character You will see the internal
-   name when examining system catalogs and in some error messages. The
-   first four types above are "varlena" types (i.e., the first four bytes
-   on disk are the length, followed by the data). Thus the actual space
-   used is slightly greater than the declared size. However, these data
-   types are also subject to compression or being stored out-of-line by
-   TOAST, so the space on disk might also be less than expected.
-   VARCHAR(n) is best when storing variable-length strings and it limits
-   how long a string can be. TEXT is for strings of unlimited length,
-   with a maximum of one gigabyte. CHAR(n) is for storing strings that
-   are all the same length. CHAR(n) pads with blanks to the specified
-   length, while VARCHAR(n) only stores the characters supplied. BYTEA is
-   for storing binary data, particularly values that include NULL bytes.
-   All the types described here have similar performance characteristics.
-   4.15.1) How do I create a serial/auto-incrementing field? PostgreSQL
-   supports a SERIAL data type. It auto-creates a sequence and index on
-   the column. For example, this: CREATE TABLE person ( id SERIAL, name
-   TEXT ); is automatically translated into this: 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 ); See the /create_sequence/ manual page
-   for more information about sequences. You can also use each row's
-   /OID/ field as a unique value. However, if you need to dump and reload
-   the database, you need to use /pg_dump/'s /-o/ option or COPY WITH
-   OIDS option to preserve the OIDs. 4.15.2) How do I get the value of a
-   SERIAL insert? One approach is to retrieve the next SERIAL value from
-   the sequence object with the /nextval()/ function /before/ inserting
-   and then insert it explicitly. Using the example table in 4.15.1
-   <#4.15.1>, an example in a pseudo-language would look like this:
-   new_id = execute("SELECT nextval('person_id_seq')"); execute("INSERT
-   INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); You would
-   then also have the new value stored in |new_id| for use in other
-   queries (e.g., as a foreign key to the |person| table). Note that the
-   name of the automatically created SEQUENCE object will be named
-   __/seq/, where /table/ and /serialcolumn/ are the names of your table
-   and your SERIAL column, respectively. Alternatively, you could
-   retrieve the assigned SERIAL value with the /currval()/ function
-   /after/ it was inserted by default, e.g., execute("INSERT INTO person
-   (name) VALUES ('Blaise Pascal')"); new_id = execute("SELECT
-   currval('person_id_seq')"); Finally, you could use the OID <#4.16>
-   returned from the INSERT statement to look up the default value,
-   though this is probably the least portable approach. In Perl, using
-   DBI with Edmund Mergl's DBD::Pg module, the oid value is made
-   available via /$sth->{pg_oid_status}/ after /$sth->execute()/. 4.15.3)
-   Don't /currval()/ and /nextval()/ lead to a race condition with other
-   users? No. /currval()/ returns the current value assigned by your
-   backend, not by all users. 4.15.4) Why aren't my sequence numbers
-   reused on transaction abort? Why are there gaps in the numbering of my
-   sequence/SERIAL column? To improve concurrency, sequence values are
-   given out to running transactions as needed and are not locked until
-   the transaction completes. This causes gaps in numbering from aborted
-   transactions. 4.16) What is an OID? What is a TID? OIDs are
-   PostgreSQL's answer to unique row ids. Every row that is created in
-   PostgreSQL gets a unique OID. All OIDs generated during /initdb/ are
-   less than 16384 (from /include/access/transam.h/). All user-created
-   OIDs are equal to or greater than this. By default, all these OIDs are
-   unique not only within a table or database, but unique within the
-   entire PostgreSQL installation. PostgreSQL uses OIDs in its internal
-   system tables to link rows between tables. These OIDs can be used to
-   identify specific user rows and used in joins. It is recommended you
-   use column type OID to store OID values. You can create an index on
-   the OID field for faster access. OIDs are assigned to all new rows
-   from a central area that is used by all databases. If you want to
-   change the OID to something else, or if you want to make a copy of the
-   table, with the original OIDs, there is no reason you can't do it:
-   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'; OIDs are stored as 4-byte integers,
-   and will overflow at 4 billion. No one has reported this ever
-   happening, and we plan to have the limit removed before anyone does.
+   be evaluated until the desired rows have been generated.
+   
+       4.3) psql'in içinde gördügüm tablolarin ya da diger seylerin listesini nasil alabilirim?
+    
+   pgsql/src/bin/psql/describe.c içindeki psql kaynak kodunu okuyabilirsiniz. Bu kod, 
+   psql'in \ ile baslayan komutlarýnýn çýktýsýný olusturan SQL komutlarini içerir. Ayný 
+   zamanda, psql'i -E seçeneði ile baþlatýp, verdiðiniz komutlarý çalýþtýrmak için yaptýðý 
+   sorgularýn çýktýlarýný görebilirsiniz.
+
+       4.4) Bir tablodan bir kolonu nasýl kaldýrabilirim?
+    
+   Bu özellik (ALTER TABLE DROP COLUMN)  7.3 sürümü ile gelmiþtir. Eski sürümlerde 
+   aþaðýdakileri uygulamalýsýnýz: 
+
+    BEGIN;
+    LOCK TABLE old_table;
+    SELECT ...  -- select all columns but the one you want to remove
+    INTO TABLE new_table
+    FROM old_table;
+    DROP TABLE old_table;
+    ALTER TABLE new_table RENAME TO old_table;
+    COMMIT;
+
+       4.5) Bir satýr, tablo ve veritabaný icin en fazla büyüklük nedir? 
+  
+    Sýnýrlar:   
+    Veritabani icin en fazla büyüklük nedir?                   Sýnýrsýz (4 TB'lýk veritabaný bulunmaktadýr)
+    Bir tablo icin en fazla büyüklük nedir?                    16 TB
+    Bir satýr için en fazla büyüklük nedir?                    1.6 TB
+    Bir alan için en fazla büyüklük nedir?                     1 GB
+    Tabloda en fazla satýr sayýsý kaçtýr?                      Sýnýrsýz
+    Bir tabloda olabilecek en fazla kolon sayýsý kaçtýr?       Kolon tiplerine baðlý olarak  250-1600 
+    Bir tabloda olabilecek en fazla index sayýsý kaçtýr?       sýnýrsýz
+
+   Tabii ki bunlar aslinda sýnýrsýz degildir. Burada belirtilen sýnýrlar, fiziksel 
+   sýnýrlarýn haricindeki sýnýrlardýr. Boþ disk alaný, hafýza/takas alaný na baðlý 
+   sýnýrlamalar vardýr. Baþarým, sýnýr deðerlere yaklastýkça, ya da deðerler cok büyük 
+   olduðunda düþebilir.
+   
+   Bir tablo için büyüklük sýnýrý olan 16 TB, iþletim sisteminin büyük dosya desteði olup
+   olmamasýndan baðýmsýzdýr. Büyük tablolar, 1 GB'lik dosyalarda saklandýðý için, dosya 
+   sistemi sýnýrlarýnin bir önemi yoktur.
+   
+   Tablo ve kolon sayýsý büyüklükleri, ön tanýmlý blok büyüklüðü 32k ya çýkarýlarak 
+   arttýrýlabilir.
+   
+      4.6) Tipik bir metin dosyasýndaki veriyi saklamak için ne kadar disk alaný gereklidir?
+    
+   Bir PostgreSQL veritabaný, veriyi "flat" metin dosyasýnda saklamak için gereken 
+   alanýn 5 kat fazla disk alanýna gereksinim duyabilir.
+
+   Her satýrýnda bir tamsayý ve metin (text) içeren, 100.000 satýrlýk bir dosya düþünün. 
+   Her satýrýn ortalama 20 byte olduðunu farzedelim. Metin dosyasý 2.8 MB olacaktýr. Bu veriyi
+   tutan PostgreSQL veritabaný yaklaþýk 6.4 MB yer kaplayacaktýr.
+
+     36 byte: Her bir satýr baslýgý (yaklasik)
+   + 24 byte: Bir tamsayý (int) alani ve bir metin (text) alaný 
+   +  4 byte: Sayfada tuple a pointer
+   ----------------------------------------
+    64 byte -> kayýt basýna
+
+   PostgreSQL'de data page büyüklüðü 8192 byte (8k)dir, dolayýsýyla:
+
+   8192 byte -> page basýna
+   -------------------------  =  Her bir veritabani page i baþýna 128 satýr (yaklaþýk)
+     Satýr basýna 64 byte
+
+   100000 veri satýrý
+   --------------------  =  782 veritabaný sayfasý
+       128 satýr
+
+    782 veritabaný sayfasý * sayfa baþýna 8192 byte =  6,406,144 bytes (6.4 MB)
+
+   Indexler cok fazla yere gereksinim duymazlar, ama indexlenmis veriyi tutacaklarýndan
+   büyük olabilirler.
+   
+   NULL deðerler bitmapler içinde tutulur; dolayýsýyla çok az yer kaplarlar.
+
+       4.7) Veritabanýnda hangi tablo ya da indexlerin tanýmlandýgýný nasil görebilirim?
+    
+    psql, bu tür bilgileri göstermek için, \ ile baþlayan bir çok komut sunmaktadýr. 
+    \? komutu ile bu komutlarý görebilirsiniz. Ayrýca, bunlarý açýklayan ve pg_ ile baþlayan 
+    çok sayýda sistem tablosu bulunmaktadýr. Ayný zamanda, psql -l ile tüm veritabanlarýný 
+    listeyelebirsiniz.
+   
+   Ayrýca, pgsql/src/tutorial/syscat.source kodunu inceleyebilirsiniz. Bu dosya, veritabaný 
+   sistem dosyalarindan bilgiyi almak için gereksinim duyulan  bir çok SELECTleri gösterir.
+
+    4.8) Sorgularým cok yavaþ, ya da indexlerimi kullanmýyorlar. Neden? 
+
+ Indexes are not automatically used by every query. Indexes are only used if the table is larger than a minimum size,
+and the query selects only a small percentage of the rows in the table. This is because the random disk access caused
+by an index scan can be slower than a straight read through the table, or sequential scan.
+
+To determine if an index should be used, PostgreSQL must have statistics about the table. These statistics are
+collected using VACUUM ANALYZE, or simply ANALYZE. Using statistics, the optimizer knows how many rows are in the
+table, and can better determine if indexes should be used. Statistics are also valuable in determining optimal join
+order and join methods. Statistics collection should be performed periodically as the contents of the table change.
+
+Indexes are normally not used for ORDER BY or to perform joins. A sequential scan followed by an explicit sort is
+usually faster than an index scan of a large table.
+However, LIMIT combined with ORDER BY often will use an index because only a small portion of the table is returned.
+In fact, though MAX() and MIN() don't use indexes, it is possible to retrieve such values using an index with ORDER
+BY and LIMIT:
+
+    SELECT col
+    FROM tab
+    ORDER BY col [ DESC ]
+    LIMIT 1;
+
+   Eðer optimizer'in sequential scan iþleminde hata yaptýðýný düþünüyorsanýz, SET enable_seqscan TO 'off' 'u kullanýnýz 
+   ve index scan'in hala hýzlý olup olmadýðýný görmek için testler yapýnýz.
+
+   LIKE ya da ~ gibi operatorler kullaniyorsanýz, indeksler sadece aþaðýdaki koþullarda kullanýlabilir:
+
+    * Arama dizininin baþý, dizinin baþý ile baðlanmalýdýr. Yani, 
+         o LIKE sorgularý % ile baþlamamalýdýr.
+         o Düzenli ifade sorgularý ^ iþe baþlamamalýdýr.
+    * Arama metni bir karakter sýnýfý ile baþlayamaz. Örnek: [a-e]
+    * ILIKE ve ~* gibi  büyük/küçük harfe duyarsýz  aramalar indekslerden yararlanmazlar. Onun yerine, bölüm 4.12'de 
+anlatýlan fonksiyonel indeksleri kullanabilirsiniz.
+    * initdb sýrasýnda öntanýmlý C localei kullanýlmalýdýr.
+
+ 4.9) query-optimizer in sorgularýmý nasýl deðerlendirdiðini, iþleme soktuðunu nasýl görebilirim?
+    
+   EXPLAIN yardým sayfasýna bakýnýz.   
+   
+       4.10) R-tree index nedir?
+
+   An R-tree index is used for indexing spatial data. A hash index can't handle range searches. A B-tree index only
+handles range searches in a single dimension. R-trees can handle multi-dimensional data. For example, if an R-tree
+index can be built on an attribute of type point, the system can more efficiently answer queries such as "select all
+points within a bounding rectangle."
+
+The canonical paper that describes the original R-tree design is:
+
+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.
+
+Bu paperi, Stonebraker'ýn "Readings in Database Systems" kitabýnda bulabilirsiniz.
+
+Built-in R-trees can handle polygons and boxes. In theory, R-trees can be extended to handle higher number of
+dimensions. In practice, extending R-trees requires a bit of work and we don't currently have any documentation on
+how to do it.
+    
+       4.11) Genetic Query Optimizer nedir?
+  
+   GEQO modülü, Genetic Algorith(GA) kullanýlarak tablolar birleþtirildiðinde sorgu optimizasyonunu hýzlandýrýr. 
+   It  allows the handling of large   join queries through nonexhaustive search.
+   
+    4.12) Düzenli ifade (Regular Expression) aramalarýný ve büyük/küçük harfe duyarsýz aramalarý nasil yapabilirim?
+       Bu büyük(küçük harfe duyarlý aramalar için indeksi nasil kullanabilirim?
+    
+   ~ operatörü düzenli ifade eþleþmesi ve ~*  büyük/küçük harfe duyarsýz düzenli ifade eþleþmesi yapar.
+   Büyük/küçük harfe duyarlý olan LIKE'in  büyük/küçük harfe duyarsýz olan biçini ILIKE'týr ve PostgreSQL
+   7.1 sürümü ile birlikte gelmiþtir.
+     
+   Büyük-küçük harfe duyarsýz eþitlik karþýlaþtýrmalarý aþaðýdaki gibi ifade edilir:
+
+    SELECT *
+    FROM tab
+    WHERE lower(col) = 'abc'
+
+   Bu standart bir indeks yaratmayacaktýr. Ancak eðer fonksiyonel bir indeks yaratýrsanýz; o kullanýlacaktýr:
+
+    CREATE INDEX tabindex on tab (lower(col));
+
+    4.13)  Bir sorguda, bir alanin "NULL" oldugunu nasil ortaya çýkarabilirim?
+    
+   Kolonu, IS NULL ve IS NOT NULL ile test edebilirsiniz.
+   
+       4.14) Çesitli karakter tipleri arasýndaki farklar nelerdir?
+    
+Veri Tipi      Ýç Adý              Not
+--------------------------------------------------
+VARCHAR(n)      varchar         boyut en büyük uzunluðu verir; sadece verilen kadar veri tutulur.
+CHAR(n)         bpchar          belirtilen uzunlupa kadar sonuna  boþluk eklenir.
+TEXT            text            uzunlukta herhangi bir üst sýnýr yoktur. 
+BYTEA           bytea           variable-length byte array (null-byte safe)
+"char"          char            bir karakter 
+
+Ýç adlarý (internal name) sistem kataloglarýný ve bazý hata meajlarýný incelerken göreceksiniz.
+  
+   Ýlk dört veri tipi "varlena" tipidir (yani, diskteki ilk 4 bayt uzunluktur; devamý da veridir.) Dolayýsýyla,
+   Böylece, kullanýlan gerçek alan, belirtilen alandan biraz daha büyüktür. Ancak, bu veri tipleri, sýkýþtýrýlmaya tabi 
+   tutulabilir; dolayýsýyla disk alaný beklenilenden kücük olabilir. VARCHAR(n) büyüklüðü artabilen ama en büyük 
+   uzunluðu sýnýrlý oan verileri saklamak için en uygun yöntemdir. TEXT, 1 GB büyüklüðe kadar olan verileri tutmak için 
+   kullanýlýr.
+
+   CHAR(n), ayný uzunluktaki dizilerin saklanmasý için kullanýmýr. CHAR(n) belirtilen uzunluða kadar boþluk ile 
+   doldurur; ancak VARCHAR(n) sadece verilen karakterleri saklar.BYTEA binary veri saklamak içindir; ayrýca "NULL" bayt 
+   içeren deðerleri de saklar. Burada anlatýlan üç veri tipi de benzer baþarým karakteristiklere sahiptir.
+   
+       4.15.1) Nasil serial/otomatik artan(auto-incrementing) bir alan yaratabilirim?
+    
+     PostgreSQL'de SERIAL veri tipi vardýr. Bu veri tipi bir sequence ve kolon üzerinde bir indeks yaratýr.
+
+    Örnek, aþaðýdaki sorgu:
+
+    CREATE TABLE person (
+        id   SERýAL,
+        name TEXT
+    );
+
+    buna çevrilir:
+
+    CREATE SEQUENCE person_id_seq;
+    CREATE TABLE person (
+        id   ýNT4 NOT NULL DEFAULT nextval('person_id_seq'),
+        name TEXT
+    );
+    CREATE UNIQUE ýNDEX person_id_key ON person ( id );
+
+  Sequenceler hakkýnda daha fazla bilgi için create_sequence yardým sayfasýna bakabilirsiniz. Her satýrýn OID alanýný 
+  tekil bir sayý olarak alabilirsiniz. Ancak, veritabanýnýzýn dump'ýný alýp yeniden yüklerseniz, OID deðerlerini
+  koruyabilmek için pg_dump'ýn -o parametresini ya da "COPY WITH OIDS" seçeneðini kullanmanýz gerekecektir.
+   
+   4.15.2) SERIAL giriþinin degerini nasil alabilirim?
+    
+One approach is to retrieve the next SERIAL value from the sequence object with the nextval() function before
+inserting and then insert it explicitly. Using the example table in 4.15.1, an example in a pseudo-language would
+look like this:
+
+    new_id = execute("SELECT nextval('person_id_seq')");
+    execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
+
+You would then also have the new value stored in new_id for use in other queries (e.g., as a foreign key to the
+person table). Note that the name of the automatically created SEQUENCE object will be named
+<table>_<serialcolumn>_seq, where table and serialcolumn are the names of your table and your SERIAL column,
+respectively.
+
+ Alternatif olarak, atanmýþ SERIAL deðerini, deðer girildikten sonra currval() fonksiyonu ile alabilirsiniz:
+
+    execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
+    new_id = execute("SELECT currval('person_id_seq')");
+
+  Son olarak, ön tanýmlý deðeri bulmak için INSERT ifadesinden dönen OID deðerini kullanabilirsiniz; ancak bu
+  en az taþýnabilir çözüm olacaktýr. Perl'de, Edmund Mergl'in DBD:Pg mödülü ile birlikte DBI kullanarak, oid deðeri
+  $sth->execute() çalýþtýrýldýktan sonra $sth->(pg_oid_status) ile alýnabilir.
+
+       4.15.3) currval() ve  nextval() diger kullanicilara sorun yaratmaz mý?
+    
+   Hayýr. curval(), tüm kullanýcýlar degil, backend tarafýndan atanan geçerli  
+   degeri döndürür.
+   
+      4.15.4) Neden sequence sayýlarýn transaction iþleminin iptalinden sonra yeniden kullanýlýyor? Neden sequence/SERIAL 
+               kolonumdaki sayýlarda atlamalar oluyor?
+
+   Uyumluluðu arttýrmak için, sequence deðerleri çalýþan transactionlara gerektiði þekilde aktarýlýr ve transaction 
+   bitene kadar o deðer kilitlenmez. Bu, iptal edilen transaction iþlemleri nedeniyle boþluklara neden olur. 
+
+    4.16) OID nedir? TID nedir?
+    
+   OýDs are PostgreSQL's answer to unique row ids. Every row that is
+   created in PostgreSQL gets a unique OýD. All OýDs generated during
+   initdb are less than 16384 (from backend/access/transam.h). All
+   user-created OýDs are equal to or greater than this. By default, all
+   these OýDs are unique not only within a table or database, but unique
+   within the entire PostgreSQL installation.
+   
+   PostgreSQL uses OýDs in its internal system tables to link rows
+   between tables. These OýDs can be used to identify specific user rows
+   and used in joins. ýt is recommended you use column type OýD to store
+   OýD values. You can create an index on the OýD field for faster
+   access.
+   
+   OýDs are assigned to all new rows from a central area that is used by
+   all databases. ýf you want to change the OýD to something else, or if
+   you want to make a copy of the table, with the original OýDs, there is
+   no reason you can't do it:
+        CREATE TABLE new_table(old_oid oid, mycol int);
+        SELECT old_oid, mycol ýNTO new FROM old;
+        COPY new TO '/tmp/pgtable';
+        DELETE FROM new;
+        COPY new WýTH OýDS FROM '/tmp/pgtable';
+
+   OýDs are stored as 4-byte integers, and will overflow at 4 billion. No
+   one has reported this ever happening, and we plan to have the limit
+   removed before anyone does.
+   
    TIDs are used to identify specific physical rows with block and offset
-   values. TIDs change after rows are modified or reloaded. They are used
-   by index entries to point to physical rows. 4.17) What is the meaning
-   of some of the terms used in PostgreSQL? Some of the source code and
-   older documentation use terms that have more common usage. Here are
-   some: * 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 A list of general database terms can be found at:
-   http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary
-   /glossary.html 4.18) Why do I get the error /"ERROR: Memory exhausted
-   in AllocSetAlloc()"/? You probably have run out of virtual memory on
-   your system, or your kernel has a low limit for certain resources. Try
-   this before starting /postmaster/: ulimit -d 262144 limit datasize
-   256m Depending on your shell, only one of these may succeed, but it
-   will set your process data segment limit much higher and perhaps allow
-   the query to complete. This command applies to the current process,
-   and all subprocesses created after the command is run. If you are
-   having a problem with the SQL client because the backend is returning
-   too much data, try it before starting the client. 4.19) How do I tell
-   what PostgreSQL version I am running? From /psql/, type |SELECT
-   version();| 4.20) Why does my large-object operations get /"invalid
-   large obj descriptor"/? You need to put |BEGIN WORK| and |COMMIT|
-   around any use of a large object handle, that is, surrounding
-   |lo_open| ... |lo_close.| Currently PostgreSQL enforces the rule by
-   closing large object handles at transaction commit. So the first
-   attempt to do anything with the handle will draw /invalid large obj
-   descriptor/. So code that used to work (at least most of the time)
-   will now generate that error message if you fail to use a transaction.
-   If you are using a client interface like ODBC you may need to set
-   |auto-commit off.| 4.21) How do I create a column that will default to
-   the current time? Use /CURRENT_TIMESTAMP/: |CREATE TABLE test (x int,
-   modtime timestamp DEFAULT CURRENT_TIMESTAMP ); | 4.22) Why are my
-   subqueries using |IN| so slow? Currently, we join subqueries to outer
-   queries by sequentially scanning the result of the subquery for each
-   row of the outer query. If the subquery returns only a few rows and
-   the outer query returns many rows, |IN| is fastest. To speed up other
-   queries, replace |IN| with |EXISTS|: SELECT * FROM tab WHERE col IN
-   (SELECT subcol FROM subtab); to: SELECT * FROM tab WHERE EXISTS
-   (SELECT subcol FROM subtab WHERE subcol = col); For this to be fast,
-   |subcol| should be an indexed column. This preformance problem will be
-   fixed in 7.4. 4.23) How do I perform an outer join? PostgreSQL
-   supports outer joins using the SQL standard syntax. Here are two
-   examples: SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); or
-   SELECT * FROM t1 LEFT OUTER JOIN t2 USING (col); These identical
-   queries join t1.col to t2.col, and also return any unjoined rows in t1
-   (those with no match in t2). A RIGHT join would add unjoined rows of
-   t2. A FULL join would return the matched rows plus all unjoined rows
-   from t1 and t2. The word OUTER is optional and is assumed in LEFT,
-   RIGHT, and FULL joins. Ordinary joins are called INNER joins. In
-   previous releases, outer joins can be simulated using UNION and NOT
-   IN. For example, when joining /tab1/ and /tab2/, the following query
-   does an /outer/ join of the two tables: SELECT tab1.col1, tab2.col2
-   FROM tab1, tab2 WHERE tab1.col1 = tab2.col1 UNION ALL SELECT
-   tab1.col1, NULL FROM tab1 WHERE tab1.col1 NOT IN (SELECT tab2.col1
-   FROM tab2) ORDER BY col1 4.24) How do I perform queries using multiple
-   databases? There is no way to query a database other than the current
-   one. Because PostgreSQL loads database-specific system catalogs, it is
-   uncertain how a cross-database query should even behave.
-   /contrib/dblink/ allows cross-database queries using function calls.
-   Of course, a client can make simultaneous connections to different
-   databases and merge the results on the client side. 4.25) How do I
-   return multiple rows or columns from a function? In 7.3, you can
-   easily return multiple rows or columns from a function,
-   http://techdocs.postgresql.org/guides/SetReturningFunctions
-   techdocs.postgresql.org/guides/SetReturningFunctions>. 4.26) Why can't
-   I reliably create/drop temporary tables in PL/PgSQL functions?
-   PL/PgSQL caches function contents, and an unfortunate side effect is
-   that if a PL/PgSQL function accesses a temporary table, and that table
-   is later dropped and recreated, and the function called again, the
-   function will fail because the cached function contents still point to
-   the old temporary table. The solution is to use EXECUTE for temporary
-   table access in PL/PgSQL. This will cause the query to be reparsed
-   every time. 4.27) What replication options are available? 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
-   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) What encryption options are available? * /contrib/pgcrypto/
-   contains many encryption functions for use in SQL queries. * The only
-   way to encrypt transmission from the client to the server is by using
-   /hostssl/ in /pg_hba.conf/. * Database user passwords are
-   automatically encrypted when stored in version 7.3. In previous
-   versions, you must enable the option /PASSWORD_ENCRYPTION/ in
-   /postgresql.conf/. * The server can run using an encrypted file
-   system.
-   ----------------------------------------------------------------------
-   -- Extending PostgreSQL 5.1) I wrote a user-defined function. When I
-   run it in /psql/, why does it dump core? The problem could be a number
-   of things. Try testing your user-defined function in a stand-alone
-   test program first. 5.2) How can I contribute some nifty new types and
-   functions to PostgreSQL? Send your extensions to the /pgsql-hackers/
-   mailing list, and they will eventually end up in the /contrib//
-   subdirectory. 5.3) How do I write a C function to return a tuple? In
-   versions of PostgreSQL beginning with 7.3, table-returning functions
-   are fully supported in C, PL/PgSQL, and SQL. See the Programmer's
-   Guide for more information. An example of a table-returning function
-   defined in C can be found in /contrib/tablefunc/. 5.4) I have changed
-   a source file. Why does the recompile not see the change? The
-   /Makefiles/ do not have the proper dependencies for include files. You
-   have to do a /make clean/ and then another /make/. If you are using
-   GCC you can use the /--enable-depend/ option of /configure/ to have
-   the compiler compute the dependencies automatically.
+   values. TýDs change after rows are modified or reloaded. They are used
+   by index entries to point to physical rows.
+   
+       4.17) PostgreSQL'de kullanýlan bazý terimlerin anlamlarý nelerdir?
+    
+   Kaynak kodun bir kýsmý ve eski belgeler, daha genis kullaným alaný olan terimleri
+   kullanýrlar. Bunlarýn bazýlarý:
+
+     * 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
+
+  Genel veritabaný terimleri,
+
+    http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html
+   adresinde bulunabilir.
+   
+       4.18) Neden  "ERROR: Memory exhausted in AllocSetAlloc()"? hatasýný alýyorum?
+    
+   Sisteminizde sanal belleginizi tüketmis olabilirsiniz, ya da çekirdeginiz
+   belli kaynaklar icin düþük bir sýnýra sahip olabilir. postmasteri baslatmadan önce 
+   asagidakileri deneyebilirsiniz:
+
+    ulimit -d 262144
+    limit datasize 256m
+
+   Kabuðunuza baðlý olarak, bunlardan sadece biri olumlu sonuç verecektir, ama
+   bu iþlem veri segment sýnýrýnýzý arttýracak, ve belki de sorgunuzun tamamlanmasýný
+   saglayacaktýr. Bu komut, varolan isleme (current process) ve komut çalýstýrýldýktan
+   sonraki tüm alt islemlere uygulanir. Eger SQL istemcinizle, backendin çok fazla veri 
+   döndürmesi nedeniyle bir sorun yasýyorsanýz, bunu istemciyi baslatmadan önce deneyiniz.
+   
+       4.19) Hangi PostgreSQL sürümünü çalýstýrdýgýmý nasil görebilirim?
+    
+   psql arabiriminde, select version(); yazýnýz.
+   
+   4.20) Neden large-object islemlerim, "invalid large obj descriptor"? hatasýný veriyor?
+
+   Large object islemlerinizin uclarina, yani  lo_open ... lo_close komutlarýnýn çevresine, 
+    BEGIN WORK ve COMMIT koymanýz gerekmektedir;
+
+   Eger ODBC gibi bir istemci arabirimi kullanýyorsanýz, auto-commit'i kapatmanýz gerekebilir.
+   
+   4.21) Su andaki zamaný öntanýmlý deger olarak kabul eden How do ý create a column that will default to the current time?
+    
+   Alttakini kullanabilirsiniz:
+
+   CURRENT_TIMESTAMP:
+       CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
+
+   4.22) Neden IN kullanan subquerylerim çok yavas?
+    
+   Currently, we join subqueries to outer queries by sequentially scanning the result of the subquery for 
+   each row of the outer query. IN' i EXISTS ile deðiþtirerek bir çözüme ulaþýlabilir.
+
+SELECT *
+    FROM tab
+    WHERE col1 ýN (SELECT col2 FROM TAB2)
+
+   to:
+SELECT *
+    FROM tab
+    WHERE EXýSTS (SELECT col2 FROM TAB2 WHERE col1 = col2)
+
+   Bu sýnýrlamayý ilerdeki sürümlerimizde düzeltmeyi planlamaktayýz.
+   
+       4.23) Outer join islemini nasil yapabilirim?
+    
+   PostgreSQL outer joins islemlerini SQL standartlarýný kullanarak gerçeklestirmektedir.
+   Asagida 2 örnek bulunmaktadýr:
+
+    SELECT *
+    FROM t1 LEFT OUTER JOýN t2 ON (t1.col = t2.col);
+
+   ya da 
+
+    SELECT *
+    FROM t1 LEFT OUTER JOýN t2 USýNG (col);
+
+   Bu özdes sorgular t1.col ' i  t2.col'ye join ederler ve ayný zamanda t1'deki unjoined satýrlarý 
+   (t2'de eslenmenis olanlarla) döndürürler. RýGHT JOýN t2'nin unjoined satýrlarýný ekleyecektir.
+   Bir FULL join, eþleþmiþ btün satýrlarý ve t1 ile t2'den tüm baðlanmamýþ (unjoined) satýrlarý alýr.
+   OUTER sözcüðü seçimseldir ve LEFT, RIGHT ve FULL join iþlemlerinde olduðu kabul edilir. Sýradan 
+   join iþlemleri INNER join olarak adlandýrýlýr.
+
+   Önceki sürümlerde, OUTER JOINler UNION ve NOT IN kullanýlarak simüle edilebiliyordu. Örneðin, tab1 
+   ve tab2'yi birleþtirirken, aþaðýdaki sorgu iki tablonun dýþtan baðlanmasýný saðlar:
+
+    SELECT tab1.col1, tab2.col2
+    FROM tab1, tab2
+    WHERE tab1.col1 = tab2.col1
+    UNION ALL
+    SELECT tab1.col1, NULL
+    FROM tab1
+    WHERE tab1.col1 NOT ýN (SELECT tab2.col1 FROM tab2)
+    ORDER BY col1
+
+       4.24) Ayni andan birden fazla veritabaninda nasil islem yapabilirim?
+    
+   Mevcut veritabanýnýz dýsýndaki baska bir veritabanýnýzý sorgulamanýzýn bir yolu bulunmamaktadýr.
+   bunun nedeni, PostgreSQL'in veritabanýna özel sistem kataloglarý yüklemesidir. Bu nedenle, 
+   cross-database bir sorgunun nasil davranacagýný kestirmek zordur.
+   
+   contrib/dblink fonksiyon çaðrýlarýný kullanarak cross-database sorgulara izin verid. Tabii ki, 
+   bir istemci degisik veritabanlarýna ayný anda erisim saglayabilir ve bilgiyi bu sekilde
+   birlestirebilir.
+
+   4.25) Bir fonksiyondan nasýl çoklu satýr ya da kolon döndürebilirim?
+
+   7.3 sürümünde, bir fonksiyondan kolaylýkla çoklu satýr ya da sütun döndürebilirsiniz.
+
+       http://techdocs.postgresql.org/guides/SetReturningFunctions.
+
+   4.26) Neden Pl/PgSQL fonksiyonlarý içinden güvenli bir þekilde tablo yaratma/kaldýrma iþlemlerini yapamýyoruz?
+
+   PL/PgSQL fonksiyon içerikleri cacheler. Bunun istenmeyen bir tarafý, eðer bir PL/PgSQL fonksiyonu geçici bir
+   tabloya eriþiyorsa ve bu tablo ileride kaldýrýlýp yeniden oluþturulduktan sonra fonksiyon yeniden çaðrýlýrsa,
+   fonksiyon çalýþmayacaktýr; çünkü cachelenmiþ fonksiyon hala eski geçici tabloyu gösteriyor olacaktýr. Çözüm,
+   geçici tablo eriþimleri için PL/PgSQL'de EXECUTE kullanmaktýr. Bu, sorgunun her seferinde yeniden iþlenmesini
+   saðlayacaktýr.
+
+   4.27) Hangi replikasyon seçenekleri bulunmaktadýr?
+
+   Çeþitli master/slave replikasyon seçenekleri bulunmaktadýr. Bunlar master veritabanýnýn veritabaný deðiþikliklerini 
+   yaparken, slave sunucunun sadece veritabanýnda okuma yapmasýna izin verir. 
+   http://gborg.PostgreSQL.org/genpage?replication_research sayfasýnýn altýnda bunlarýn listesini bulabilirsiniz.
+   http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php adresinde, çoklu-master replikasyon çözümü 
+   üzerinde çalýþýlýyor.
+
+   4.28) Hangi þifreleme seçenekleri bulunmaktadýr?
+
+    * contrib/pgcrypto SQL sorgularýnda kullanýlabilmesi için þifreleme fonksiyonlarý içermektedir.
+    * Ýstemciden sunucuya iletiþimi þifrelemenin tek yolu, pg_hba.conf içinde hostssl kullanmaktýr.
+    * Veritabaný kullanýcý adý ve þifreleri 7.3 sürümü ile birlikte otomatik olarak þifrelenirler. Önceki 
+     sürümlerde, postgresql.conf içindeki PASSWORD_ENCRYPTION seçeneðini aktif hale getirmeniz gerekmektedir.
+    * Sunucunun kendisini þifreli dosya sistemi üzerinde çalýþtýrabilirsiniz.
+
+     _________________________________________________________________
+   
+               PostgreSQL Özelliklerini Geniþletmek
+
+    5.1)  Kullanici-tanimli bir fonksiyon yazdim. psql'de çalistirdigim zaman neden core dump ediyor?
+    
+   Sorunun nedeni birden fazla sey olabilir. Kullanici-tanimli fonksiyonunuzu stand-alone bir programda
+   calistirmayi deneyiniz.
+   
+    5.2) PostgreSQL'e nasil yeni tipler/fonksiyonlar ekleyeiblirim?
+    
+   Çalýsmalarýnýzý pgsql-hackers e-posta listesine gönderiniz. Kodunuz incelendikten sonra
+   /contrib dizinine konacaktýr.
+   
+    5.3) Bir tuple dondürmek icin bir C fonksiyonunu nasil yazarým?
+    
+     PostgreSQL 7.3 sürümü ile birlikte, C, PL/PgSQL ve SQL kullanýlarak tablo-döndüren 
+     fonksiyonlar tamamen desteklenmektedir. Ayrýntýlý bilgi için "Programmer's Guide" a 
+    bakabilrisiniz. Bir örneði contrib/tablefunc içinde bulabilirsiniz.
+
+    5.4) Bir kaynak dosyasýnda deðiþiklik yaptým. Yeniden derlememe raðmen deðiþiklik 
+geçerli olmuyor. Neden?
+    
+   Makefile'lar include dosyalarý için tam bir baðýmlýlýk içermezler. 
+   Öncelikle make clean, ardýndan da baska bir make iþlemi yapmanýz gerekir.
+   GCC kullanýyorsaniz, configure betiðinin --enable-depend seçeneðini, derleyicinin
+   baðýmlýlýklarý otomatik olarak hesaplamasý için kullanabilirsiniz. 
+
index 38944666bb86299c4add24e28d1c9b45bc7a9af5..9e700dac6789cb9b0e3cc8115810a9db2b568dc9 100644 (file)
-\r
-  PostgreSQL için Sýkça Sorulan Sorular (SSS)\r
-\r
-Son güncelleme : 19 Mayýs 2003 Pazartesi - 03:05:21\r
-\r
-Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us\r
-<mailto:pgman@candle.pha.pa.us>)\r
-\r
-Çeviren : Devrim GÜNDÜZ (devrim@gunduz.org <mailto:devrim@gunduz.org>)\r
-Nicolai Tufar (ntufar@yahoo.com <mailto:ntufar@yahoo.com>)\r
-\r
-Bu belgenin en güncel hali,\r
-http://www.PostgreSQL.org/docs/faqs/FAQ_turkish.html ve\r
-http://www.gunduz.org/seminer/pg/FAQ_turkish adreslerinde görülebilir.\r
-\r
-Platforma özel sorularýnýz,http://www.PostgreSQL.org/docs/index.html\r
-adresinde yanýtlanýr..\r
-\r
-------------------------------------------------------------------------\r
-\r
-\r
-    Genel Sorular\r
-\r
-1.1 <#1.1>) PostgreSQL nedir? Nasýl okunur?\r
-1.2 <#1.2>) PostgreSQL' in haklarý nedir?\r
-1.3 <#1.3>) PostgreSQL, hangi Unix platformlarýnda çalýsýr?\r
-1.4 <#1.4>) Hangi Unix olmayan uyarlamalarý bulunmaktadýr?\r
-1.5 <#1.5>) PostgreSQL'i nereden indirebilirim?\r
-1.6 <#1.6>) Desteði nereden alabilirim?\r
-1.7 <#1.7>) En son sürümü nedir?\r
-1.8 <#1.8>) Hangi belgelere ulasabilirim?\r
-1.9 <#1.9>) Bilinen hatalar ya da eksik özelliklere nereden ulasabilirim?\r
-1.10 <#1.10>) Nasýl SQL öðrenebilirim?\r
-1.11 <#1.11>) PostgreSQL 2000 yýlýna uyumlu mudur?\r
-1.12 <#1.12>) Geliþtirme takýmýna nasýl katýlabilirim??\r
-1.13 <#1.13>) Bir hata raporunu nasýl gönderebilirim?\r
-1.14 <#1.14>) PostgreSQL, diger VTYS(DBMS lerle nasýl karþýlaþtýrýlabilir?\r
-1.15 <#1.15>) PostgreSQL'e maddi açýdan nasýl destek olabilirim?\r
-\r
-\r
-    Kullanýcý/istemci Sorularý\r
-\r
-2.1 <#2.1>) Are there ODBC drivers for PostgreSQL?\r
-2.2 <#2.2>) What tools are available for using PostgreSQL with Web pages?\r
-2.3 <#2.3>) Does PostgreSQL have a graphical user interface?\r
-2.4 <#2.4>) What languages are available to communicate with PostgreSQL?\r
-\r
-\r
-    Administrative Questions\r
-\r
-3.1 <#3.1>) How do I install PostgreSQL somewhere other than\r
-//usr/local/pgsql/?\r
-3.2 <#3.2>) When I start /postmaster/, I get a /Bad System Call/ or core\r
-dumped message. Why?\r
-3.3 <#3.3>) When I try to start /postmaster/, I get /IpcMemoryCreate/\r
-errors. Why?\r
-3.4 <#3.4>) When I try to start /postmaster/, I get /IpcSemaphoreCreate/\r
-errors. Why?\r
-3.5 <#3.5>) How do I control connections from other hosts?\r
-3.6 <#3.6>) How do I tune the database engine for better performance?\r
-3.7 <#3.7>) What debugging features are available?\r
-3.8 <#3.8>) Why do I get /"Sorry, too many clients"/ when trying to connect?\r
-3.9 <#3.9>) What is in the /pgsql_tmp/ directory?\r
-3.10 <#3.10>) Why do I need to do a dump and restore to upgrade\r
-PostgreSQL releases?\r
-\r
-\r
-    Operational Questions\r
-\r
-4.1 <#4.1>) What is the difference between binary cursors and normal\r
-cursors?\r
-4.2 <#4.2>) How do I SELECT only the first few rows of a query?\r
-4.3 <#4.3>) How do I get a list of tables or other things I can see in\r
-/psql/?\r
-4.4 <#4.4>) How do you remove a column from a table?\r
-4.5 <#4.5>) What is the maximum size for a row, a table, and a database?\r
-4.6 <#4.6>) How much database disk space is required to store data from\r
-a typical text file?\r
-4.7 <#4.7>) How do I find out what tables, indexes, databases, and users\r
-are defined?\r
-4.8 <#4.8>) My queries are slow or don't make use of the indexes. Why?\r
-4.9 <#4.9>) How do I see how the query optimizer is evaluating my query?\r
-4.10 <#4.10>) What is an R-tree index?\r
-4.11 <#4.11>) What is the Genetic Query Optimizer?\r
-4.12 <#4.12>) How do I perform regular expression searches and\r
-case-insensitive regular expression searches? How do I use an index for\r
-case-insensitive searches?\r
-4.13 <#4.13>) In a query, how do I detect if a field is NULL?\r
-4.14 <#4.14>) What is the difference between the various character types?\r
-4.15.1 <#4.15.1>) How do I create a serial/auto-incrementing field?\r
-4.15.2 <#4.15.2>) How do I get the value of a SERIAL insert?\r
-4.15.3 <#4.15.3>) Don't /currval()/ and /nextval()/ lead to a race\r
-condition with other users?\r
-4.15.4 <#4.15.4>) Why aren't my sequence numbers reused on transaction\r
-abort? Why are there gaps in the numbering of my sequence/SERIAL column?\r
-4.16 <#4.16>) What is an OID? What is a TID?\r
-4.17 <#4.17>) What is the meaning of some of the terms used in PostgreSQL?\r
-4.18 <#4.18>) Why do I get the error /"ERROR: Memory exhausted in\r
-AllocSetAlloc()"/?\r
-4.19 <#4.19>) How do I tell what PostgreSQL version I am running?\r
-4.20 <#4.20>) Why does my large-object operations get /"invalid large\r
-obj descriptor"/?\r
-4.21 <#4.21>) How do I create a column that will default to the current\r
-time?\r
-4.22 <#4.22>) Why are my subqueries using |IN| so slow?\r
-4.23 <#4.23>) How do I perform an outer join?\r
-4.24 <#4.24>) How do I perform queries using multiple databases?\r
-4.25 <#4.25>) How do I return multiple rows or columns from a function?\r
-4.26 <#4.26>) Why can't I reliably create/drop temporary tables in\r
-PL/PgSQL functions?\r
-4.27 <#4.27>) What replication options are available?\r
-4.28 <#4.28>) What encryption options are available?\r
-\r
-\r
-    Extending PostgreSQL\r
-\r
-5.1 <#5.1>) I wrote a user-defined function. When I run it in /psql/,\r
-why does it dump core?\r
-5.2 <#5.2>) How can I contribute some nifty new types and functions to\r
-PostgreSQL?\r
-5.3 <#5.3>) How do I write a C function to return a tuple?\r
-5.4 <#5.4>) I have changed a source file. Why does the recompile not see\r
-the change?\r
-------------------------------------------------------------------------\r
-\r
-\r
-    General Questions\r
-\r
-\r
-        1.1) What is PostgreSQL? How is it pronounced?\r
-\r
-PostgreSQL is pronounced /Post-Gres-Q-L/.\r
-\r
-PostgreSQL is an enhancement of the POSTGRES database management system,\r
-a next-generation DBMS research prototype. While PostgreSQL retains the\r
-powerful data model and rich data types of POSTGRES, it replaces the\r
-PostQuel query language with an extended subset of SQL. PostgreSQL is\r
-free and the complete source is available.\r
-\r
-PostgreSQL development is performed by a team of developers who all\r
-subscribe to the PostgreSQL development mailing list. The current\r
-coordinator is Marc G. Fournier (scrappy@PostgreSQL.org\r
-<mailto:scrappy@PostgreSQL.org>). (See section 1.6 <#1.6> on how to\r
-join). This team is now responsible for all development of PostgreSQL.\r
-\r
-The authors of PostgreSQL 1.01 were Andrew Yu and Jolly Chen. Many\r
-others have contributed to the porting, testing, debugging, and\r
-enhancement of the code. The original Postgres code, from which\r
-PostgreSQL is derived, was the effort of many graduate students,\r
-undergraduate students, and staff programmers working under the\r
-direction of Professor Michael Stonebraker at the University of\r
-California, Berkeley.\r
-\r
-The original name of the software at Berkeley was Postgres. When SQL\r
-functionality was added in 1995, its name was changed to Postgres95. The\r
-name was changed at the end of 1996 to PostgreSQL.\r
-\r
-\r
-        1.2) What is the copyright on PostgreSQL?\r
-\r
-PostgreSQL is subject to the following COPYRIGHT:\r
-\r
-PostgreSQL Data Base Management System\r
-\r
-Portions copyright (c) 1996-2002, PostgreSQL Global Development Group\r
-Portions Copyright (c) 1994-6 Regents of the University of California\r
-\r
-Permission to use, copy, modify, and distribute this software and its\r
-documentation for any purpose, without fee, and without a written\r
-agreement is hereby granted, provided that the above copyright notice\r
-and this paragraph and the following two paragraphs appear in all copies.\r
-\r
-IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY\r
-FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,\r
-INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS\r
-DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF\r
-THE POSSIBILITY OF SUCH DAMAGE.\r
-\r
-THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,\r
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY\r
-AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS\r
-ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS\r
-TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.\r
-\r
-The above is the BSD license, the classic open-source license. It has no\r
-restrictions on how the source code may be used. We like it and have no\r
-intention of changing it.\r
-\r
-\r
-        1.3) What Unix platforms does PostgreSQL run on?\r
-\r
-In general, a modern Unix-compatible platform should be able to run\r
-PostgreSQL. The platforms that had received explicit testing at the time\r
-of release are listed in the installation instructions.\r
-\r
-\r
-        1.4) What non-Unix ports are available?\r
-\r
-*Client*\r
-\r
-It is possible to compile the /libpq/ C library, psql, and other\r
-interfaces and client applications to run on MS Windows platforms. In\r
-this case, the client is running on MS Windows, and communicates via\r
-TCP/IP to a server running on one of our supported Unix platforms. A\r
-file /win32.mak/ is included in the distribution for making a Win32\r
-/libpq/ library and /psql/. PostgreSQL also communicates with ODBC clients.\r
-\r
-*Server*\r
-\r
-The database server can run on Windows NT and Win2k using Cygwin, the\r
-Cygnus Unix/NT porting library. See /pgsql/doc/FAQ_MSWIN/ in the\r
-distribution or the MS Windows FAQ at\r
-http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN\r
-<http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN>.\r
-\r
-A native port to MS Win NT/2000/XP is currently being worked on. For\r
-more details on the current status of PostgreSQL on Windows see\r
-http://techdocs.postgresql.org/guides/Windows\r
-<http://techdocs.postgresql.org/guides/Windows>.\r
-\r
-There is also a Novell Netware 6 port at http://forge.novell.com.\r
-\r
-\r
-        1.5) Where can I get PostgreSQL?\r
-\r
-The primary anonymous ftp site for PostgreSQL is\r
-ftp://ftp.PostgreSQL.org/pub. For mirror sites, see our main web site.\r
-\r
-\r
-        1.6) Where can I get support?\r
-\r
-The main mailing list is: pgsql-general@PostgreSQL.org\r
-<mailto:pgsql-general@PostgreSQL.org>. It is available for discussion of\r
-matters pertaining to PostgreSQL. To subscribe, send mail with the\r
-following lines in the body (not the subject line):\r
-\r
-    subscribe\r
-    end\r
-\r
-to pgsql-general-request@PostgreSQL.org\r
-<mailto:pgsql-general-request@PostgreSQL.org>.\r
-\r
-There is also a digest list available. To subscribe to this list, send\r
-email to: pgsql-general-digest-request@PostgreSQL.org\r
-<mailto:pgsql-general-digest-request@PostgreSQL.org> with a body of:\r
-\r
-    subscribe\r
-    end\r
-\r
-Digests are sent out to members of this list whenever the main list has\r
-received around 30k of messages.\r
-\r
-The bugs mailing list is available. To subscribe to this list, send\r
-email to pgsql-bugs-request@PostgreSQL.org\r
-<mailto:pgsql-bugs-request@PostgreSQL.org> with a body of:\r
-\r
-    subscribe\r
-    end\r
-\r
-There is also a developers discussion mailing list available. To\r
-subscribe to this list, send email to\r
-pgsql-hackers-request@PostgreSQL.org\r
-<mailto:pgsql-hackers-request@PostgreSQL.org> with a body of:\r
-\r
-    subscribe\r
-    end\r
-\r
-Additional mailing lists and information about PostgreSQL can be found\r
-via the PostgreSQL WWW home page at:\r
-\r
-    http://www.PostgreSQL.org \r
-\r
-There is also an IRC channel on EFNet and OpenProjects, channel\r
-/#PostgreSQL/. I use the Unix command |irc -c '#PostgreSQL' "$USER"\r
-irc.phoenix.net.|\r
-\r
-A list of commercial support companies is available at\r
-http://www.ca.PostgreSQL.org/users-lounge/commercial-support.html.\r
-\r
-\r
-        1.7) What is the latest release?\r
-\r
-The latest release of PostgreSQL is version 7.3.3.\r
-\r
-We plan to have major releases every four months.\r
-\r
-\r
-        1.8) What documentation is available?\r
-\r
-Several manuals, manual pages, and some small test examples are included\r
-in the distribution. See the //doc/ directory. You can also browse the\r
-manuals online at http://www.PostgreSQL.org/docs.\r
-\r
-There are two PostgreSQL books available online at\r
-http://www.PostgreSQL.org/docs/awbook.html and\r
-http://www.commandprompt.com/ppbook/. There is a list of PostgreSQL\r
-books available for purchase at http://www.ca.PostgreSQL.org/books/.\r
-There is also a collection of PostgreSQL technical articles at\r
-http://techdocs.PostgreSQL.org/.\r
-\r
-/psql/ has some nice \d commands to show information about types,\r
-operators, functions, aggregates, etc.\r
-\r
-Our web site contains even more documentation.\r
-\r
-\r
-        1.9) How do I find out about known bugs or missing features?\r
-\r
-PostgreSQL supports an extended subset of SQL-92. See our TODO\r
-<http://developer.PostgreSQL.org/todo.php> list for known bugs, missing\r
-features, and future plans.\r
-\r
-\r
-        1.10) How can I learn SQL?\r
-\r
-The PostgreSQL book at http://www.PostgreSQL.org/docs/awbook.html\r
-teaches SQL. There is another PostgreSQL book at\r
-http://www.commandprompt.com/ppbook.\r
-<http://www.commandprompt.com/ppbook/> There is a nice tutorial at\r
-http://www.intermedia.net/support/sql/sqltut.shtm,\r
-<http://www.intermedia.net/support/sql/sqltut.shtm> at\r
-http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM,\r
-<http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM>\r
-and at http://sqlcourse.com. <http://sqlcourse.com/>\r
-\r
-Another one is "Teach Yourself SQL in 21 Days, Second Edition" at\r
-http://members.tripod.com/er4ebus/sql/index.htm\r
-\r
-Many of our users like /The Practical SQL Handbook/, Bowman, Judith S.,\r
-et al., Addison-Wesley. Others like /The Complete Reference SQL/, Groff\r
-et al., McGraw-Hill.\r
-\r
-\r
-        1.11) Is PostgreSQL Y2K compliant?\r
-\r
-Yes, we easily handle dates past the year 2000 AD, and before 2000 BC.\r
-\r
-\r
-        1.12) How do I join the development team?\r
-\r
-First, download the latest source and read the PostgreSQL Developers\r
-documentation on our web site, or in the distribution. Second, subscribe\r
-to the /pgsql-hackers/ and /pgsql-patches/ mailing lists. Third, submit\r
-high quality patches to pgsql-patches.\r
-\r
-There are about a dozen people who have commit privileges to the\r
-PostgreSQL CVS archive. They each have submitted so many high-quality\r
-patches that it was impossible for the existing committers to keep up,\r
-and we had confidence that patches they committed were of high quality.\r
-\r
-\r
-        1.13) How do I submit a bug report?\r
-\r
-Please visit the PostgreSQL BugTool page at\r
-http://www.PostgreSQL.org/bugs/bugs.php, which gives guidelines and\r
-directions on how to submit a bug report.\r
-\r
-Also check out our ftp site ftp://ftp.PostgreSQL.org/pub to see if there\r
-is a more recent PostgreSQL version or patches.\r
-\r
-\r
-        1.14) How does PostgreSQL compare to other DBMSs?\r
-\r
-There are several ways of measuring software: features, performance,\r
-reliability, support, and price.\r
-\r
-*Features*\r
-    PostgreSQL has most features present in large commercial DBMSs, like\r
-    transactions, subselects, triggers, views, foreign key referential\r
-    integrity, and sophisticated locking. We have some features they do\r
-    not have, like user-defined types, inheritance, rules, and\r
-    multi-version concurrency control to reduce lock contention.\r
-\r
-*Performance*\r
-    PostgreSQL has performance similar to other commercial and open\r
-    source databases. it is faster for some things, slower for others.\r
-    In comparison to MySQL or leaner database systems, we are slower on\r
-    inserts/updates because of transaction overhead. Of course, MySQL\r
-    does not have any of the features mentioned in the /Features/\r
-    section above. We are built for reliability and features, though we\r
-    continue to improve performance in every release. There is an\r
-    interesting Web page comparing PostgreSQL to MySQL at\r
-    http://openacs.org/philosophy/why-not-mysql.html\r
-    <http://openacs.org/philosophy/why-not-mysql.html>\r
-\r
-*Reliability*\r
-    We realize that a DBMS must be reliable, or it is worthless. We\r
-    strive to release well-tested, stable code that has a minimum of\r
-    bugs. Each release has at least one month of beta testing, and our\r
-    release history shows that we can provide stable, solid releases\r
-    that are ready for production use. We believe we compare favorably\r
-    to other database software in this area.\r
-\r
-*Support*\r
-    Our mailing lists provide contact with a large group of developers\r
-    and users to help resolve any problems encountered. While we cannot\r
-    guarantee a fix, commercial DBMSs do not always supply a fix either.\r
-    Direct access to developers, the user community, manuals, and the\r
-    source code often make PostgreSQL support superior to other DBMSs.\r
-    There is commercial per-incident support available for those who\r
-    need it. (See FAQ section 1.6 <#1.6>.)\r
-\r
-*Price*\r
-    We are free for all use, both commercial and non-commercial. You can\r
-    add our code to your product with no limitations, except those\r
-    outlined in our BSD-style license stated above.\r
-\r
-\r
-        1.15) How can I financially assist PostgreSQL?\r
-\r
-PostgreSQL has had a first-class infrastructure since we started in\r
-1996. This is all thanks to Marc Fournier, who has created and managed\r
-this infrastructure over the years.\r
-\r
-Quality infrastructure is very important to an open-source project. It\r
-prevents disruptions that can greatly delay forward movement of the project.\r
-\r
-Of course, this infrastructure is not cheap. There are a variety of\r
-monthly and one-time expenses that are required to keep it going. If you\r
-or your company has money it can donate to help fund this effort, please\r
-go to http://store.pgsql.com/shopping/ and make a donation.\r
-\r
-Although the web page mentions PostgreSQL, Inc, the "contributions" item\r
-is solely to support the PostgreSQL project and does not fund any\r
-specific company. If you prefer, you can also send a check to the\r
-contact address.\r
-\r
-------------------------------------------------------------------------\r
-\r
-\r
-    User Client Questions\r
-\r
-\r
-        2.1) Are there ODBC drivers for PostgreSQL?\r
-\r
-There are two ODBC drivers available, PsqlODBC and OpenLink ODBC.\r
-\r
-You can download PsqlODBC from\r
-http://gborg.postgresql.org/project/psqlodbc/projdisplay.php\r
-<http://gborg.postgresql.org/project/psqlodbc/projdisplay.php>.\r
-\r
-OpenLink ODBC can be gotten from http://www.openlinksw.com\r
-<http://www.openlinksw.com/>. It works with their standard ODBC client\r
-software so you'll have PostgreSQL ODBC available on every client\r
-platform they support (Win, Mac, Unix, VMS).\r
-\r
-They will probably be selling this product to people who need\r
-commercial-quality support, but a freeware version will always be\r
-available. Please send questions to postgres95@openlink.co.uk\r
-<mailto:postgres95@openlink.co.uk>.\r
-\r
-\r
-        2.2) What tools are available for using PostgreSQL with Web pages?\r
-\r
-A nice introduction to Database-backed Web pages can be seen at:\r
-http://www.webreview.com\r
-\r
-For Web integration, PHP is an excellent interface. It is at\r
-http://www.php.net.\r
-\r
-For complex cases, many use the Perl interface and CGI.pm or mod_perl.\r
-\r
-\r
-        2.3) Does PostgreSQL have a graphical user interface?\r
-\r
-Yes, there are several graphical interfaces to PostgreSQL available.\r
-These include PgAccess http://www.pgaccess.org\r
-<http://www.pgaccess.org>), PgAdmin II (http://www.pgadmin.org,\r
-Win32-only), RHDB Admin (http://sources.redhat.com/rhdb/ ) and Rekall (\r
-http://www.thekompany.com/products/rekall/\r
-<http://www.thekompany.com/products/rekall/>, proprietary). There is\r
-also PHPPgAdmin ( http://phppgadmin.sourceforge.net/\r
-<http://phppgadmin.sourceforge.net/>), a web-based interface to PostgreSQL.\r
-\r
-See http://techdocs.postgresql.org/guides/GUITools for a more detailed list.\r
-\r
-\r
-        2.4) What languages are able to communicate with PostgreSQL?\r
-\r
-Most popular programming languages contain an interface to PostgreSQL.\r
-Check your programming language's list of extension modules.\r
-\r
-The following interfaces are included in the PostgreSQL distribution:\r
-\r
-    * C (libpq)\r
-    * Embedded C (ecpg)\r
-    * Java (jdbc)\r
-    * Python (PyGreSQL)\r
-    * TCL (libpgtcl)\r
-\r
-Additional interfaces are available at http://gborg.postgresql.org in\r
-the /Drivers/Interfaces/ section.\r
-\r
-------------------------------------------------------------------------\r
-\r
-\r
-    Administrative Questions\r
-\r
-\r
-        3.1) How do I install PostgreSQL somewhere other than\r
-        //usr/local/pgsql/?\r
-\r
-Specify the /--prefix/ option when running /configure/.\r
-\r
-\r
-        3.2) When I start /postmaster/, I get a /Bad System Call/ or\r
-        core dumped message. Why?\r
-\r
-It could be a variety of problems, but first check to see that you have\r
-System V extensions installed in your kernel. PostgreSQL requires kernel\r
-support for shared memory and semaphores.\r
-\r
-\r
-        3.3) When I try to start /postmaster/, I get /IpcMemoryCreate/\r
-        errors. Why?\r
-\r
-You either do not have shared memory configured properly in your kernel\r
-or you need to enlarge the shared memory available in the kernel. The\r
-exact amount you need depends on your architecture and how many buffers\r
-and backend processes you configure for /postmaster/. For most systems,\r
-with default numbers of buffers and processes, you need a minimum of ~1\r
-MB. See the PostgreSQL Administrator's Guide\r
-<http://www.PostgreSQL.org/docs/view.php?version=current&idoc=1&file=kernel-resources.html>\r
-for more detailed information about shared memory and semaphores.\r
-\r
-\r
-        3.4) When I try to start /postmaster/, I get\r
-        /IpcSemaphoreCreate/ errors. Why?\r
-\r
-If the error message is /IpcSemaphoreCreate: semget failed (No space\r
-left on device)/ then your kernel is not configured with enough\r
-semaphores. Postgres needs one semaphore per potential backend process.\r
-A temporary solution is to start /postmaster/ with a smaller limit on\r
-the number of backend processes. Use /-N/ with a parameter less than the\r
-default of 32. A more permanent solution is to increase your kernel's\r
-SEMMNS and SEMMNI parameters.\r
-\r
-Inoperative semaphores can also cause crashes during heavy database access.\r
-\r
-If the error message is something else, you might not have semaphore\r
-support configured in your kernel at all. See the PostgreSQL\r
-Administrator's Guide for more detailed information about shared memory\r
-and semaphores.\r
-\r
-\r
-        3.5) How do I control connections from other hosts?\r
-\r
-By default, PostgreSQL only allows connections from the local machine\r
-using Unix domain sockets. Other machines will not be able to connect\r
-unless you add the /-i/ flag to /postmaster/, *and* enable host-based\r
-authentication by modifying the file /$PGDATA/pg_hba.conf/ accordingly.\r
-This will allow TCP/IP connections.\r
-\r
-\r
-        3.6) How do I tune the database engine for better performance?\r
-\r
-Certainly, indexes can speed up queries. The EXPLAIN command allows you\r
-to see how PostgreSQL is interpreting your query, and which indexes are\r
-being used.\r
-\r
-If you are doing many INSERTs, consider doing them in a large batch\r
-using the COPY command. This is much faster than individual INSERTS.\r
-Second, statements not in a BEGIN WORK/COMMIT transaction block are\r
-considered to be in their own transaction. Consider performing several\r
-statements in a single transaction block. This reduces the transaction\r
-overhead. Also, consider dropping and recreating indexes when making\r
-large data changes.\r
-\r
-There are several tuning options. You can disable /fsync()/ by starting\r
-/postmaster/ with a /-o -F/ option. This will prevent /fsync()/s from\r
-flushing to disk after every transaction.\r
-\r
-You can also use the /postmaster/ /-B/ option to increase the number of\r
-shared memory buffers used by the backend processes. If you make this\r
-parameter too high, the /postmaster/ may not start because you have\r
-exceeded your kernel's limit on shared memory space. Each buffer is 8K\r
-and the default is 64 buffers.\r
-\r
-You can also use the backend /-S/ option to increase the maximum amount\r
-of memory used by the backend process for temporary sorts. The /-S/\r
-value is measured in kilobytes, and the default is 512 (i.e. 512K).\r
-\r
-You can also use the CLUSTER command to group data in tables to match an\r
-index. See the CLUSTER manual page for more details.\r
-\r
-\r
-        3.7) What debugging features are available?\r
-\r
-PostgreSQL has several features that report status information that can\r
-be valuable for debugging purposes.\r
-\r
-First, by running /configure/ with the --enable-cassert option, many\r
-/assert()/s monitor the progress of the backend and halt the program\r
-when something unexpected occurs.\r
-\r
-Both /postmaster/ and /postgres/ have several debug options available.\r
-First, whenever you start /postmaster/, make sure you send the standard\r
-output and error to a log file, like:\r
-\r
-    cd /usr/local/pgsql\r
-    ./bin/postmaster >server.log 2>&1 &\r
-\r
-This will put a server.log file in the top-level PostgreSQL directory.\r
-This file contains useful information about problems or errors\r
-encountered by the server. /Postmaster/ has a /-d/ option that allows\r
-even more detailed information to be reported. The /-d/ option takes a\r
-number that specifies the debug level. Be warned that high debug level\r
-values generate large log files.\r
-\r
-If /postmaster/ is not running, you can actually run the /postgres/\r
-backend from the command line, and type your SQL statement directly.\r
-This is recommended *only* for debugging purposes. Note that a newline\r
-terminates the query, not a semicolon. If you have compiled with\r
-debugging symbols, you can use a debugger to see what is happening.\r
-Because the backend was not started from /postmaster/, it is not running\r
-in an identical environment and locking/backend interaction problems may\r
-not be duplicated.\r
-\r
-If /postmaster/ is running, start /psql/ in one window, then find the\r
-PID of the /postgres/ process used by /psql/. Use a debugger to attach\r
-to the /postgres/ PID. You can set breakpoints in the debugger and issue\r
-queries from /psql/. If you are debugging /postgres/ startup, you can\r
-set PGOPTIONS="-W n", then start /psql/. This will cause startup to\r
-delay for /n/ seconds so you can attach to the process with the\r
-debugger, set any breakpoints, and continue through the startup sequence.\r
-\r
-The /postgres/ program has /-s, -A/, and /-t/ options that can be very\r
-useful for debugging and performance measurements.\r
-\r
-You can also compile with profiling to see what functions are taking\r
-execution time. The backend profile files will be deposited in the\r
-/pgsql/data/base/dbname/ directory. The client profile file will be put\r
-in the client's current directory. Linux requires a compile with\r
-/-DLINUX_PROFILE/ for proper profiling.\r
-\r
-\r
-        3.8) Why do I get /"Sorry, too many clients"/ when trying to\r
-        connect?\r
-\r
-You need to increase /postmaster/'s limit on how many concurrent backend\r
-processes it can start.\r
-\r
-The default limit is 32 processes. You can increase it by restarting\r
-/postmaster/ with a suitable /-N/ value or modifying /postgresql.conf/.\r
-\r
-Note that if you make /-N/ larger than 32, you must also increase /-B/\r
-beyond its default of 64; /-B/ must be at least twice /-N/, and probably\r
-should be more than that for best performance. For large numbers of\r
-backend processes, you are also likely to find that you need to increase\r
-various Unix kernel configuration parameters. Things to check include\r
-the maximum size of shared memory blocks, SHMMAX; the maximum number of\r
-semaphores, SEMMNS and SEMMNI; the maximum number of processes, NPROC;\r
-the maximum number of processes per user, MAXUPRC; and the maximum\r
-number of open files, NFILE and NINODE. The reason that PostgreSQL has a\r
-limit on the number of allowed backend processes is so your system won't\r
-run out of resources.\r
-\r
-\r
-        3.9) What is in the /pgsql_tmp/ directory?\r
-\r
-This directory contains temporary files generated by the query executor.\r
-For example, if a sort needs to be done to satisfy an ORDER BY and the\r
-sort requires more space than the backend's /-S/ parameter allows, then\r
-temporary files are created here to hold the extra data.\r
-\r
-The temporary files are usually deleted automatically, but might remain\r
-if a backend crashes during a sort. A stop and restart of the\r
-/postmaster/ will remove files from those directories.\r
-\r
-\r
-        3.10) Why do I need to do a dump and restore to upgrade between\r
-        major PostgreSQL releases?\r
-\r
-The PostgreSQL team makes only small changes between minor releases, so\r
-upgrading from 7.2 to 7.2.1 does not require a dump and restore.\r
-However, major releases (e.g. from 7.2 to 7.3) often change the internal\r
-format of system tables and data files. These changes are often complex,\r
-so we don't maintain backward compatability for data files. A dump\r
-outputs data in a generic format that can then be loaded in using the\r
-new internal format.\r
-\r
-In releases where the on-disk format does not change, the /pg_upgrade/\r
-script can be used to upgrade without a dump/restore. The release notes\r
-mention whether /pg_upgrade/ is available for the release.\r
-\r
-------------------------------------------------------------------------\r
-\r
-\r
-    Operational Questions\r
-\r
-\r
-        4.1) What is the difference between binary cursors and normal\r
-        cursors?\r
-\r
-See the DECLARE manual page for a description.\r
-\r
-\r
-        4.2) How do I SELECT only the first few rows of a query?\r
-\r
-See the FETCH manual page, or use SELECT ... LIMIT....\r
-\r
-The entire query may have to be evaluated, even if you only want the\r
-first few rows. Consider using a query that has an ORDER BY. If there is\r
-an index that matches the ORDER BY, PostgreSQL may be able to evaluate\r
-only the first few records requested, or the entire query may have to be\r
-evaluated until the desired rows have been generated.\r
-\r
-\r
-        4.3) How do I get a list of tables or other things I can see in\r
-        /psql/?\r
-\r
-You can read the source code for /psql/ in file\r
-/pgsql/src/bin/psql/describe.c/. It contains SQL commands that generate\r
-the output for psql's backslash commands. You can also start /psql/ with\r
-the /-E/ option so it will print out the queries it uses to execute the\r
-commands you give.\r
-\r
-\r
-        4.4) How do you remove a column from a table?\r
-\r
-This functionality was added in release 7.3 with ALTER TABLE DROP\r
-COLUMN. In earlier versions, you can do this:\r
-\r
-    BEGIN;\r
-    LOCK TABLE old_table;\r
-    SELECT ...  -- select all columns but the one you want to remove\r
-    INTO TABLE new_table\r
-    FROM old_table;\r
-    DROP TABLE old_table;\r
-    ALTER TABLE new_table RENAME TO old_table;\r
-    COMMIT;\r
-\r
-\r
-        4.5) What is the maximum size for a row, a table, and a database?\r
-\r
-These are the limits:\r
-\r
-    Maximum size for a database?             unlimited (4 TB databases exist)\r
-    Maximum size for a table?                16 TB\r
-    Maximum size for a row?                  1.6TB\r
-    Maximum size for a field?                1 GB\r
-    Maximum number of rows in a table?       unlimited\r
-    Maximum number of columns in a table?    250-1600 depending on column types\r
-    Maximum number of indexes on a table?    unlimited\r
-\r
-Of course, these are not actually unlimited, but limited to available\r
-disk space and memory/swap space. Performance may suffer when these\r
-values get unusually large.\r
-\r
-The maximum table size of 16 TB does not require large file support from\r
-the operating system. Large tables are stored as multiple 1 GB files so\r
-file system size limits are not important.\r
-\r
-The maximum table size and maximum number of columns can be increased if\r
-the default block size is increased to 32k.\r
-\r
-\r
-        4.6) How much database disk space is required to store data from\r
-        a typical text file?\r
-\r
-A PostgreSQL database may require up to five times the disk space to\r
-store data from a text file.\r
-\r
-As an example, consider a file of 100,000 lines with an integer and text\r
-description on each line. Suppose the text string avergages twenty bytes\r
-in length. The flat file would be 2.8 MB. The size of the PostgreSQL\r
-database file containing this data can be estimated as 6.4 MB:\r
-\r
-    36 bytes: each row header (approximate)\r
-    24 bytes: one int field and one text field\r
-   + 4 bytes: pointer on page to tuple\r
-   ----------------------------------------\r
-    64 bytes per row\r
-\r
-   The data page size in PostgreSQL is 8192 bytes (8 KB), so:\r
-\r
-   8192 bytes per page\r
-   -------------------   =  128 rows per database page (rounded down)\r
-     64 bytes per row\r
-\r
-   100000 data rows\r
-   --------------------  =  782 database pages (rounded up)\r
-      128 rows per page\r
-\r
-782 database pages * 8192 bytes per page  =  6,406,144 bytes (6.4 MB)\r
-\r
-Indexes do not require as much overhead, but do contain the data that is\r
-being indexed, so they can be large also.\r
-\r
-NULLs are stored in bitmaps, so they use very little space.\r
-\r
-\r
-        4.7) How do I find out what tables, indexes, databases, and\r
-        users are defined?\r
-\r
-/psql/ has a variety of backslash commands to show such information. Use\r
-\? to see them. There are also system tables beginning with /pg_/ that\r
-describe these too. Also, /psql -l/ will list all databases.\r
-\r
-Also try the file /pgsql/src/tutorial/syscat.source/. It illustrates\r
-many of the SELECTs needed to get information from the database system\r
-tables.\r
-\r
-\r
-        4.8) My queries are slow or don't make use of the indexes. Why?\r
-\r
-Indexes are not automatically used by every query. Indexes are only used\r
-if the table is larger than a minimum size, and the query selects only a\r
-small percentage of the rows in the table. This is because the random\r
-disk access caused by an index scan can be slower than a straight read\r
-through the table, or sequential scan.\r
-\r
-To determine if an index should be used, PostgreSQL must have statistics\r
-about the table. These statistics are collected using VACUUM ANALYZE, or\r
-simply ANALYZE. Using statistics, the optimizer knows how many rows are\r
-in the table, and can better determine if indexes should be used.\r
-Statistics are also valuable in determining optimal join order and join\r
-methods. Statistics collection should be performed periodically as the\r
-contents of the table change.\r
-\r
-Indexes are normally not used for ORDER BY or to perform joins. A\r
-sequential scan followed by an explicit sort is usually faster than an\r
-index scan of a large table.\r
-\r
-However, LIMIT combined with ORDER BY often will use an index because\r
-only a small portion of the table is returned. In fact, though MAX() and\r
-MIN() don't use indexes, it is possible to retrieve such values using an\r
-index with ORDER BY and LIMIT:\r
-\r
-    SELECT col\r
-    FROM tab\r
-    ORDER BY col [ DESC ]\r
-    LIMIT 1;\r
-\r
-If you believe the optimizer is incorrect in choosing a sequential scan,\r
-use |SET enable_seqscan TO 'off'| and run tests to see if an index scan\r
-is indeed faster.\r
-\r
-When using wild-card operators such as LIKE or /~/, indexes can only be\r
-used in certain circumstances:\r
-\r
-    * The beginning of the search string must be anchored to the start\r
-      of the string, i.e.\r
-          o LIKE patterns must not start with /%/.\r
-          o /~/ (regular expression) patterns must start with /^/.\r
-    * The search string can not start with a character class, e.g. [a-e].\r
-    * Case-insensitive searches such as ILIKE and /~*/ do not utilise\r
-      indexes. Instead, use functional indexes, which are described in\r
-      section 4.12 <#4.12>.\r
-    * The default /C/ locale must be used during /initdb/.\r
-\r
-\r
-        4.9) How do I see how the query optimizer is evaluating my query?\r
-\r
-See the EXPLAIN manual page.\r
-\r
-\r
-        4.10) What is an R-tree index?\r
-\r
-An R-tree index is used for indexing spatial data. A hash index can't\r
-handle range searches. A B-tree index only handles range searches in a\r
-single dimension. R-trees can handle multi-dimensional data. For\r
-example, if an R-tree index can be built on an attribute of type\r
-/point/, the system can more efficiently answer queries such as "select\r
-all points within a bounding rectangle."\r
-\r
-The canonical paper that describes the original R-tree design is:\r
-\r
-Guttman, A. "R-trees: A Dynamic Index Structure for Spatial Searching."\r
-Proceedings of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data, 45-57.\r
-\r
-You can also find this paper in Stonebraker's "Readings in Database\r
-Systems".\r
-\r
-Built-in R-trees can handle polygons and boxes. In theory, R-trees can\r
-be extended to handle higher number of dimensions. In practice,\r
-extending R-trees requires a bit of work and we don't currently have any\r
-documentation on how to do it.\r
-\r
-\r
-        4.11) What is the Genetic Query Optimizer?\r
-\r
-The GEQO module speeds query optimization when joining many tables by\r
-means of a Genetic Algorithm (GA). It allows the handling of large join\r
-queries through nonexhaustive search.\r
-\r
-\r
-        4.12) How do I perform regular expression searches and\r
-        case-insensitive regular expression searches? How do I use an\r
-        index for case-insensitive searches?\r
-\r
-The /~/ operator does regular expression matching, and /~*/ does\r
-case-insensitive regular expression matching. The case-insensitive\r
-variant of LIKE is called ILIKE.\r
-\r
-Case-insensitive equality comparisons are normally expressed as:\r
-\r
-    SELECT *\r
-    FROM tab\r
-    WHERE lower(col) = 'abc';\r
-\r
-This will not use an standard index. However, if you create a functional\r
-index, it will be used:\r
-\r
-    CREATE INDEX tabindex ON tab (lower(col));\r
-\r
-\r
-        4.13) In a query, how do I detect if a field is NULL?\r
-\r
-You test the column with IS NULL and IS NOT NULL.\r
-\r
-\r
-        4.14) What is the difference between the various character types?\r
-\r
-Type            Internal Name   Notes\r
---------------------------------------------------\r
-VARCHAR(n)      varchar         size specifies maximum length, no padding\r
-CHAR(n)         bpchar          blank padded to the specified fixed length\r
-TEXT            text            no specific upper limit on length\r
-BYTEA           bytea           variable-length byte array (null-byte safe)\r
-"char"          char            one character\r
-\r
-You will see the internal name when examining system catalogs and in\r
-some error messages.\r
-\r
-The first four types above are "varlena" types (i.e., the first four\r
-bytes on disk are the length, followed by the data). Thus the actual\r
-space used is slightly greater than the declared size. However, these\r
-data types are also subject to compression or being stored out-of-line\r
-by TOAST, so the space on disk might also be less than expected.\r
-\r
-VARCHAR(n) is best when storing variable-length strings and it limits\r
-how long a string can be. TEXT is for strings of unlimited length, with\r
-a maximum of one gigabyte.\r
-\r
-CHAR(n) is for storing strings that are all the same length. CHAR(n)\r
-pads with blanks to the specified length, while VARCHAR(n) only stores\r
-the characters supplied. BYTEA is for storing binary data, particularly\r
-values that include NULL bytes. All the types described here have\r
-similar performance characteristics.\r
-\r
-\r
-        4.15.1) How do I create a serial/auto-incrementing field?\r
-\r
-PostgreSQL supports a SERIAL data type. It auto-creates a sequence and\r
-index on the column. For example, this:\r
-\r
-    CREATE TABLE person ( \r
-        id   SERIAL, \r
-        name TEXT \r
-    );\r
-\r
-is automatically translated into this:\r
-\r
-    CREATE SEQUENCE person_id_seq;\r
-    CREATE TABLE person ( \r
-        id   INT4 NOT NULL DEFAULT nextval('person_id_seq'),\r
-        name TEXT \r
-    );\r
-    CREATE UNIQUE INDEX person_id_key ON person ( id );\r
-\r
-See the /create_sequence/ manual page for more information about\r
-sequences. You can also use each row's /OID/ field as a unique value.\r
-However, if you need to dump and reload the database, you need to use\r
-/pg_dump/'s /-o/ option or COPY WITH OIDS option to preserve the OIDs.\r
-\r
-\r
-        4.15.2) How do I get the value of a SERIAL insert?\r
-\r
-One approach is to retrieve the next SERIAL value from the sequence\r
-object with the /nextval()/ function /before/ inserting and then insert\r
-it explicitly. Using the example table in 4.15.1 <#4.15.1>, an example\r
-in a pseudo-language would look like this:\r
-\r
-    new_id = execute("SELECT nextval('person_id_seq')");\r
-    execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");\r
-\r
-You would then also have the new value stored in |new_id| for use in\r
-other queries (e.g., as a foreign key to the |person| table). Note that\r
-the name of the automatically created SEQUENCE object will be named\r
-</table/>_</serialcolumn/>_/seq/, where /table/ and /serialcolumn/ are\r
-the names of your table and your SERIAL column, respectively.\r
-\r
-Alternatively, you could retrieve the assigned SERIAL value with the\r
-/currval()/ function /after/ it was inserted by default, e.g.,\r
-\r
-    execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");\r
-    new_id = execute("SELECT currval('person_id_seq')");\r
-\r
-Finally, you could use the OID <#4.16> returned from the INSERT\r
-statement to look up the default value, though this is probably the\r
-least portable approach. In Perl, using DBI with Edmund Mergl's DBD::Pg\r
-module, the oid value is made available via /$sth->{pg_oid_status}/\r
-after /$sth->execute()/.\r
-\r
-\r
-        4.15.3) Don't /currval()/ and /nextval()/ lead to a race\r
-        condition with other users?\r
-\r
-No. /currval()/ returns the current value assigned by your backend, not\r
-by all users.\r
-\r
-\r
-        4.15.4) Why aren't my sequence numbers reused on transaction\r
-        abort? Why are there gaps in the numbering of my sequence/SERIAL\r
-        column?\r
-\r
-To improve concurrency, sequence values are given out to running\r
-transactions as needed and are not locked until the transaction\r
-completes. This causes gaps in numbering from aborted transactions.\r
-\r
-\r
-        4.16) What is an OID? What is a TID?\r
-\r
-OIDs are PostgreSQL's answer to unique row ids. Every row that is\r
-created in PostgreSQL gets a unique OID. All OIDs generated during\r
-/initdb/ are less than 16384 (from /include/access/transam.h/). All\r
-user-created OIDs are equal to or greater than this. By default, all\r
-these OIDs are unique not only within a table or database, but unique\r
-within the entire PostgreSQL installation.\r
-\r
-PostgreSQL uses OIDs in its internal system tables to link rows between\r
-tables. These OIDs can be used to identify specific user rows and used\r
-in joins. It is recommended you use column type OID to store OID values.\r
-You can create an index on the OID field for faster access.\r
-\r
-OIDs are assigned to all new rows from a central area that is used by\r
-all databases. If you want to change the OID to something else, or if\r
-you want to make a copy of the table, with the original OIDs, there is\r
-no reason you can't do it:\r
-\r
-        CREATE TABLE new_table(old_oid oid, mycol int);\r
-        SELECT old_oid, mycol INTO new FROM old;\r
-        COPY new TO '/tmp/pgtable';\r
-        DELETE FROM new;\r
-        COPY new WITH OIDS FROM '/tmp/pgtable';\r
-\r
-OIDs are stored as 4-byte integers, and will overflow at 4 billion. No\r
-one has reported this ever happening, and we plan to have the limit\r
-removed before anyone does.\r
-\r
-TIDs are used to identify specific physical rows with block and offset\r
-values. TIDs change after rows are modified or reloaded. They are used\r
-by index entries to point to physical rows.\r
-\r
-\r
-        4.17) What is the meaning of some of the terms used in PostgreSQL?\r
-\r
-Some of the source code and older documentation use terms that have more\r
-common usage. Here are some:\r
-\r
-    * table, relation, class\r
-    * row, record, tuple\r
-    * column, field, attribute\r
-    * retrieve, select\r
-    * replace, update\r
-    * append, insert\r
-    * OID, serial value\r
-    * portal, cursor\r
-    * range variable, table name, table alias\r
-\r
-A list of general database terms can be found at:\r
-http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html\r
-\r
-\r
-        4.18) Why do I get the error /"ERROR: Memory exhausted in\r
-        AllocSetAlloc()"/?\r
-\r
-You probably have run out of virtual memory on your system, or your\r
-kernel has a low limit for certain resources. Try this before starting\r
-/postmaster/:\r
-\r
-    ulimit -d 262144\r
-    limit datasize 256m\r
-\r
-Depending on your shell, only one of these may succeed, but it will set\r
-your process data segment limit much higher and perhaps allow the query\r
-to complete. This command applies to the current process, and all\r
-subprocesses created after the command is run. If you are having a\r
-problem with the SQL client because the backend is returning too much\r
-data, try it before starting the client.\r
-\r
-\r
-        4.19) How do I tell what PostgreSQL version I am running?\r
-\r
-From /psql/, type |SELECT version();|\r
-\r
-\r
-        4.20) Why does my large-object operations get /"invalid large\r
-        obj descriptor"/?\r
-\r
-You need to put |BEGIN WORK| and |COMMIT| around any use of a large\r
-object handle, that is, surrounding |lo_open| ... |lo_close.|\r
-\r
-Currently PostgreSQL enforces the rule by closing large object handles\r
-at transaction commit. So the first attempt to do anything with the\r
-handle will draw /invalid large obj descriptor/. So code that used to\r
-work (at least most of the time) will now generate that error message if\r
-you fail to use a transaction.\r
-\r
-If you are using a client interface like ODBC you may need to set\r
-|auto-commit off.|\r
-\r
-\r
-        4.21) How do I create a column that will default to the current\r
-        time?\r
-\r
-Use /CURRENT_TIMESTAMP/:\r
-\r
-|CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );\r
-|\r
-\r
-\r
-        4.22) Why are my subqueries using |IN| so slow?\r
-\r
-Currently, we join subqueries to outer queries by sequentially scanning\r
-the result of the subquery for each row of the outer query. If the\r
-subquery returns only a few rows and the outer query returns many rows,\r
-|IN| is fastest. To speed up other queries, replace |IN| with |EXISTS|:\r
-\r
-    SELECT *\r
-    FROM tab\r
-    WHERE col IN (SELECT subcol FROM subtab);\r
-\r
-to:\r
-\r
-    SELECT *\r
-    FROM tab\r
-    WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);\r
-\r
-For this to be fast, |subcol| should be an indexed column. This\r
-preformance problem will be fixed in 7.4.\r
-\r
-\r
-        4.23) How do I perform an outer join?\r
-\r
-PostgreSQL supports outer joins using the SQL standard syntax. Here are\r
-two examples:\r
-\r
-    SELECT *\r
-    FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);\r
-\r
-or\r
-\r
-    SELECT *\r
-    FROM t1 LEFT OUTER JOIN t2 USING (col);\r
-\r
-These identical queries join t1.col to t2.col, and also return any\r
-unjoined rows in t1 (those with no match in t2). A RIGHT join would add\r
-unjoined rows of t2. A FULL join would return the matched rows plus all\r
-unjoined rows from t1 and t2. The word OUTER is optional and is assumed\r
-in LEFT, RIGHT, and FULL joins. Ordinary joins are called INNER joins.\r
-\r
-In previous releases, outer joins can be simulated using UNION and NOT\r
-IN. For example, when joining /tab1/ and /tab2/, the following query\r
-does an /outer/ join of the two tables:\r
-\r
-    SELECT tab1.col1, tab2.col2\r
-    FROM tab1, tab2\r
-    WHERE tab1.col1 = tab2.col1\r
-    UNION ALL\r
-    SELECT tab1.col1, NULL\r
-    FROM tab1\r
-    WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)\r
-    ORDER BY col1\r
-\r
-\r
-        4.24) How do I perform queries using multiple databases?\r
-\r
-There is no way to query a database other than the current one. Because\r
-PostgreSQL loads database-specific system catalogs, it is uncertain how\r
-a cross-database query should even behave.\r
-\r
-/contrib/dblink/ allows cross-database queries using function calls. Of\r
-course, a client can make simultaneous connections to different\r
-databases and merge the results on the client side.\r
-\r
-\r
-        4.25) How do I return multiple rows or columns from a function?\r
-\r
-In 7.3, you can easily return multiple rows or columns from a function,\r
-http://techdocs.postgresql.org/guides/SetReturningFunctions\r
-<http://techdocs.postgresql.org/guides/SetReturningFunctions>.\r
-\r
-\r
-        4.26) Why can't I reliably create/drop temporary tables in\r
-        PL/PgSQL functions?\r
-\r
-PL/PgSQL caches function contents, and an unfortunate side effect is\r
-that if a PL/PgSQL function accesses a temporary table, and that table\r
-is later dropped and recreated, and the function called again, the\r
-function will fail because the cached function contents still point to\r
-the old temporary table. The solution is to use EXECUTE for temporary\r
-table access in PL/PgSQL. This will cause the query to be reparsed every\r
-time.\r
-\r
-\r
-        4.27) What replication options are available?\r
-\r
-There are several master/slave replication options available. These\r
-allow only the master to make database changes and the slave can only do\r
-database reads. The bottom of\r
-http://gborg.PostgreSQL.org/genpage?replication_research\r
-<http://gborg.PostgreSQL.org/genpage?replication_research> lists them. A\r
-multi-master replication solution is being worked on at\r
-http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.\r
-\r
-\r
-        4.28) What encryption options are available?\r
-\r
-    * /contrib/pgcrypto/ contains many encryption functions for use in\r
-      SQL queries.\r
-    * The only way to encrypt transmission from the client to the server\r
-      is by using /hostssl/ in /pg_hba.conf/.\r
-    * Database user passwords are automatically encrypted when stored in\r
-      version 7.3. In previous versions, you must enable the option\r
-      /PASSWORD_ENCRYPTION/ in /postgresql.conf/.\r
-    * The server can run using an encrypted file system.\r
-\r
-------------------------------------------------------------------------\r
-\r
-\r
-    Extending PostgreSQL\r
-\r
-\r
-        5.1) I wrote a user-defined function. When I run it in /psql/,\r
-        why does it dump core?\r
-\r
-The problem could be a number of things. Try testing your user-defined\r
-function in a stand-alone test program first.\r
-\r
-\r
-        5.2) How can I contribute some nifty new types and functions to\r
-        PostgreSQL?\r
-\r
-Send your extensions to the /pgsql-hackers/ mailing list, and they will\r
-eventually end up in the /contrib// subdirectory.\r
-\r
-\r
-        5.3) How do I write a C function to return a tuple?\r
-\r
-In versions of PostgreSQL beginning with 7.3, table-returning functions\r
-are fully supported in C, PL/PgSQL, and SQL. See the Programmer's Guide\r
-for more information. An example of a table-returning function defined\r
-in C can be found in /contrib/tablefunc/.\r
-\r
-\r
-        5.4) I have changed a source file. Why does the recompile not\r
-        see the change?\r
-\r
-The /Makefiles/ do not have the proper dependencies for include files.\r
-You have to do a /make clean/ and then another /make/. If you are using\r
-GCC you can use the /--enable-depend/ option of /configure/ to have the\r
-compiler compute the dependencies automatically.\r
-\r
+
+  PostgreSQL için Sýkça Sorulan Sorular (SSS)
+
+Son güncelleme : 26 Temmuz 2003 Cumartesi - 18:32:11
+
+Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us
+<mailto:pgman@candle.pha.pa.us>)
+
+Çevirenler : Devrim Gündüz (devrim@gunduz.org <mailto:devrim@gunduz.org>)
+Nicholas Morris Tufar (ntufar@yahoo.com <mailto:ntufar@yahoo.com>)
+Volkan Yazýcý (volkany@celiknet.com <mailto:volkany@celiknet.com>)
+
+Bu belgenin en güncel hali,
+http://www.PostgreSQL.org/docs/faqs/FAQ_turkish.html
+<http://www.postgresql.org/docs/faqs/FAQ_turkish.html> ve
+http://www.gunduz.org/seminer/pg/FAQ_turkish adreslerinde görülebilir.
+
+Platforma özel sorularýnýz, http://www.PostgreSQL.org/docs/index.html
+<http://www.postgresql.org/docs/index.html> adresinde yanýtlanýr.
+
+------------------------------------------------------------------------
+
+
+    Genel Sorular
+
+1.1 <#1.1>) PostgreSQL nedir? Nasýl okunur?
+1.2 <#1.2>) PostgreSQL' in haklarý nedir?
+1.3 <#1.3>) PostgreSQL, hangi Unix platformlarýnda çalýsýr?
+1.4 <#1.4>) Hangi Unix olmayan uyarlamalarý bulunmaktadýr?
+1.5 <#1.5>) PostgreSQL'i nereden indirebilirim?
+1.6 <#1.6>) Desteði nereden alabilirim?
+1.7 <#1.7>) En son sürümü nedir?
+1.8 <#1.8>) Hangi belgelere ulaþabilirim?
+1.9 <#1.9>) Bilinen hatalar ya da eksik özelliklere nereden ulasabilirim?
+1.10 <#1.10>) Nasýl SQL öðrenebilirim?
+1.11 <#1.11>) PostgreSQL 2000 yýlýna uyumlu mudur?
+1.12 <#1.12>) Geliþtirme takýmýna nasýl katýlabilirim??
+1.13 <#1.13>) Bir hata raporunu nasýl gönderebilirim?
+1.14 <#1.14>) PostgreSQL, diðer VTYS(DBMS) lerle nasýl karþýlaþtýrýlabilir?
+1.15 <#1.15>) PostgreSQL'e maddi açýdan nasýl destek olabilirim?
+
+
+    Kullanýcý/istemci Sorularý
+
+2.1 <#2.1>) PostgreSQL için ODBC sürücüleri var mý ?
+2.2 <#2.2>) PostgreSQL'i web sayfalarýnda kullanabilmek için hangi
+araçlar bulunmaktadýr ?
+2.3 <#2.3>) PostgreSQL'in grafik kullanýcý arabirimi var mýdýr?
+2.4 <#2.4>) PostgreSQL ile iletiþimi kurabilmek için hangi dilleri
+kullanabilirim?
+
+
+    Yönetimsel Sorular
+
+3.1 <#3.1>) PostgreSQL'i //usr/local/pgsql/ dizininden baþka dizinlere
+nasýl kurabilirim??
+3.2 <#3.2>) /Postmaster/'ý baþlattýðýmda /Bad System Call/ ya da core
+dumped mesajý alýyorum. Neden?
+3.3 <#3.3>) /Postmaster/'ý baþlattýðýmda, /IpcMemoryCreate/ hatasý
+alýyorum. Neden?
+3.4 <#3.4>) /Postmaster/, baþlattýðýmda, /IpcSemaphoreCreate hatasý/
+alýyorum. Neden?
+3.5 <#3.5>) Diðer bilgisayarlarýn benim PostgreSQL veritabaný sunucuma
+baðlantýlarýný nasýl kontrol edebilirim?
+3.6 <#3.6>) Veritabaný motorunu daha iyi baþarým icin nasýl ayarlayabilirim?
+3.7 <#3.7>) Hangi hata ayýklama özellikleri bulunmaktadýr?
+3.8 <#3.8>) Baðlanmaya çalýþýrken, neden "/Sorry, too many clients/"
+hatasýný alýyorum?
+3.9 <#3.9>) /pgsql_tmp/dizinin içindeki dosyalar nelerdir?
+3.10 <#3.10>) PostgreSQL sürümlerini yükselmek için neden bir
+dump/reload iþlemi gerçekleþtirmek zorundayým?
+
+
+    Ýþletimsel Sorular
+
+4.1 <#4.1>) Binary cursor ve normal cursor arasýndaki fark nedýr?
+4.2 <#4.2>)Sorgunun sadece ilk birkaç satýrýný nasýl SELECT edebilirim?
+4.3 <#4.3>) /psql/'in içinde gördügüm tablolarin ya da diðer þeylerin
+listesini nasýl alabilirim?
+4.4 <#4.4>)Bir tablodan bir kolonu nasýl kaldýrabilirim?
+4.5 <#4.5>)Bir satýr, tablo ve veritabaný icin en fazla büyüklük nedir?
+4.6 <#4.6>) Tipik bir metin dosyasýndaki veriyi saklamak için ne kadar
+disk alaný gereklidir?
+4.7 <#4.7>) Veritabanýnda hangi tablo ya da indexlerin tanýmlandýgýný
+nasil görebilirim?
+4.8 <#4.8>) Sorgularým cok yavas, ya da indexlerimi kullanmiyorlar. Neden?
+4.9 <#4.9>) Query-optimizer in sorgularýmý nasýl deðerlendirdigini,
+iþleme soktuðunu nasýl görebilirim?
+4.10 <#4.10>) R-tree index nedir?
+4.11 <#4.11>) Genetic Query Optimizer nedir?
+4.12 <#4.12>) Düzenli ifade (Regular Expression) aramalarýný ve
+büyük/küçük harfe duyarsýz aramalarý nasil yapabilirim? Bu büyük(küçük
+harfe duyarlý aramalar için indeksi nasil kullanabilirim?
+4.13 <#4.13>) Bir sorguda, bir alanýn NULL olduðunu nasýl ortaya
+çýkarabilirim?
+4.14 <#4.14>) Çesitli karakter tipleri arasýndaki farklar nelerdir?
+4.15.1 <#4.15.1>) Nasýl serial/otomatik artan(auto-incrementing) bir
+alan yaratabilirim?
+4.15.2 <#4.15.2>) Serial giriþinin deðerini nasýl alabilirim?
+4.15.3 <#4.15.3>) /currval()/ ve /nextval()/ diðer kullanýcýlara sorun
+yaratmaz mý?>
+4.15.4 <#4.15.4>) Neden sequence sayýlarýn transaction iþleminin
+iptalinden sonra yeniden kullanýlýyor? Neden sequence/SERIAL kolonumdaki
+sayýlarda atlamalar oluyor?
+4.16 <#4.16>) OID nedir? TID nedir?
+4.17 <#4.17>) PostgreSQL' de kullanýlan bazý terimlerin anlamlarý nelerdi?
+4.18 <#4.18>) Neden /"ERROR: Memory exhausted in AllocSetAlloc()"/
+hatasýný alýyorum?
+4.19 <#4.19>) Hangi PostgreSQL sürümünü çalýstýrdýðýmý nasýl görebilirim??
+4.20 <#4.20>) Neden large-object iþlemlerim, /"invalid large obj
+descriptor"/ hatasýný veriyor?
+4.21 <#4.21>) Þu andaki zamaný öntanýmlý deðer olarak kabul eden kolonu
+nasýl yaratýrým?
+4.22 <#4.22>) Neden |IN| kullanan subquerylerim çok yavaþ?
+4.23 <#4.23>) Outer join iþlemini nasýl yapabilirim?
+4.24 <#4.24>) Ayný anda birden fazla veritabanýnda nasýl iþlem yapabilirim?
+4.25 <#4.25>) Bir fonksiyondan nasýl çoklu satýr ya da kolon
+döndürebilirim??
+4.26 <#4.26>) Neden Pl/PgSQL fonksiyonlarý içinden güvenli bir þekilde
+tablo yaratma/kaldýrma iþlemlerini yapamýyoruz?
+4.27 <#4.27>) Hangi replikasyon seçenekleri bulunmaktadýr?
+4.28"D <#4.28>) Hangi þifreleme seçenekleri bulunmaktadýr?
+
+
+    PostgreSQL Özelliklerini Geniþletmek
+
+5.1 <#5.1>) Kullanýcý-tanýmlý bir fonksiyon yazdým. /psql/'de
+çalýþtýrdýðým zaman neden core dump ediyor?
+5.2 <#5.2>) PostgreSQL'e nasýl yeni veri tipleri/fonksiyonlar ekleyebilirim?
+5.3 <#5.3>) Bir tuple döndürmek için bir C fonksiyonunu nasýl yazarým?
+5.4 <#5.4>) Bir kaynak dosyasýnda deðisiklik yaptým. Yeniden derlememe
+raðmen deðiþiklik geçerli olmuyor. Neden??
+------------------------------------------------------------------------
+
+
+    Genel Sorular
+
+
+        1.1) PostgreSQL nedir? Nasýl okunur?
+
+PostgreSQL, /Post-Gres-Q-L/. olarak okunur
+
+PostgreSQL, yeni-nesil VTYS araþtýrma prototipi olan POSTGRES veritabaný
+yönetim sisteminin geliþtirilmesidir. POSTGRES' in zengin veri tiplerini
+ve güçlü veri modelini tutarken, SQL'in geliþtirilmis alt kümesi olan
+PostQuel dilini kullanýr. PostgreSQL ücretsizdir ve kaynak kodu açýk
+daðýtýlýr.
+
+PostgreSQL, PostgreSQL geliþtirme listesine üye olan bir Internet
+geliþtirici takýmý tarafýndan geliþtirilir. Þu andaki koordinatör, Marc
+G. Fournier (scrappy@PostgreSQL.org <mailto:scrappy@PostgreSQL.org>).
+(Bu takýma nasýl katýlacagýnýzý öðrenmek için 1.6 <#1.6> numaralý
+maddeyi okuyunuz.) Bu takým, tüm PostgreSQL geliþiminden sorumludur.
+
+PostgreSQL 1.01 sürümünün yazarlarý Andrew Yu ve Jolly Chen idi.
+Bunlarýn dýþýnda bir kaç kisi de uyarlama, hata ayýklama ve kodun
+geliþtirilmesi için çalýsmýþtý. PostgreSQL'in türedigi orijinal Postgres
+kodu, lisans, lisansüstü ve akademisyenler tarafýndan, Professor Michael
+Stonebraker ) University of California, Berkeley) koordinatörlügünde
+yazýlmýstýr.
+
+Berkley'deki yazýlýmýn adý Postgres idi. SQL uyumluluðu 1995'te
+eklenince, adý Postgres 95 oldu. 1996 yýlýnýn sonlarýnda adý PostgreSQL
+olarak deðiþtirildi.
+
+
+        1.2) PostgreSQL'in haklarý nedir?
+
+PostgreSQL Data Base Management System
+
+Portions copyright (c) 1996-2002, 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.
+
+Üstteki metin klasik açýk-kod lisansý olan BSD lisansýdýr. Kaynak kodun
+nasýl kullanýlabileceðine dair sýnýrlamalarý yoktur. Bu lisansý
+seviyoruz. Deðiþtirme niyetimiz bulunmamaktadýr.
+
+
+        1.3) PostgreSQL, hangi Unix platforlarýnda çalýsýr?
+
+Genel olarak, modern bir Unix-uyumlu platform PostgreSQL'i
+çalýþtýracaktýr. Ayrýntýlý bilgi için kurulum belgelerine bakabilirsiniz.
+
+
+        1.4) Hangi Unix olmayan uyarlamalarý bulunmaktadýr?
+
+*Ýstemci*
+
+libpq C kütüphanesini, psql ve diger arabirimleri ve binary dosyalarý,
+MS Windows ortamlarýnda çalýsmasý için derlemeniz mümkündür. Bu örnekte
+istemcide MS Windows çalýsýyor ve desteklenen Unix platformlarýndan
+birinde çalýsan PostgreSQL sunucuna TCP/IP ile baglanmaktadýr. Daðýtým
+içindeki win31.mak dosyasý ile, Win32 libpg kütüphanesi ve psql
+yaratabilirsiniz. PostgreSQL ayný zamanda ODBC istemcileri ile
+haberlesebilmektedir.
+
+*Sunucu*
+
+Veritabaný sunuucsu Cygwin kullanarak Windows NT, 2K ya da XP üzerinde
+calistirilabilir. Dagýtým içindeki pgsql/doc/FAQ_MSWýN dosyasýný ya da
+web sitemizdeki MS Windows FAQ'u inceleyebilirsiniz.
+
+Doðal Windows NT/2000/XP portu için þu anda çalýþmalar devam etmektedir.
+Windows sürümü hakkýnda güncel bilgi için,
+http://techdocs.postgresql.org/guides/Windows adresini ziyaret
+edebilirsiniz.
+
+Ayrýca, http://forge.novell.com adresinde Novell Netware 6 portu
+bulunmaktadýr.
+
+
+        1.5) PostgreSQL'i nereden indirebilirim?
+
+PostgreSQL için ana anonim ftp sitesi ftp://ftp.PostgreSQL.org/pub' dur.
+Yansýlar için, ana web sayfamýza bakabilirsiniz.
+
+
+        1.6) Nereden destek alabilirim?
+
+Ana e-posta listesi : pgsql-general@PostgreSQL.org. PostgreSQL
+konusundaki tartýsmalara açýktýr. Üye olmak için, asagýdaki satýrlarý
+e-postanizin body kýsmýna (konu kýsmýna degil) yazýp,
+pgsql-general-request@PostgreSQL.org adresine gönderin:
+
+subscribe
+end
+
+Ayný zamanda, bir digest listesi bulunmaktadýr. Bu listeye üye olmak
+için, pgsql-general-digest-request@PostgreSQL.org adresine, body kýsmýnda
+
+subscribe
+end
+
+yazan bir e-posta atmanýz yeterli olacaktýr.
+
+Digest postalar, ana liste 30k civarýnda e-postaya ulastiginda üyelere
+gönderilmektedir.
+
+Buglar için bir e-posta listesi bulunmaktadýr. Bu listeye üye olmak
+için, email to pgsql-bugs-request@PostgreSQL.org adresine, body kýsmýnda
+
+subscribe
+end
+
+yazan bir e-posta atmanýz yeterli olacaktýr.
+
+Ayný zamanda, gelistiriciler için tartýsma listesi bulunmaktadýr. Bu
+listeye üye olmak için, pgsql-hackers-request@PostgreSQL.org adresine,
+body kýsmýnda
+
+subscribe
+end
+
+yazan bir e-posta atmanýz yeterli olacaktýr.
+
+Bunun dýsýndaki e-posta listelerine ve PostgreSQL hakkýnda bilgiye,
+PostgreSQL WWW ana sayfasýndan ulasabilirsiniz:
+
+http://www.PostgreSQL.org
+
+Ayný zamanda, EFNet üzerinde, #PostgreSQL adlý bir ýRC kanalý
+bulunmaktadýr. Bunun için, irc -c '#PostgreSQL' "$USER" irc.phoenix.net
+Unix komutunu kullanabilirsiniz.
+
+Ticari destek veren firmalarýn listesine
+
+http://www.postgresql.org/users-lounge/commercial-support.html
+
+adresinden ulasabilirsiniz.
+
+
+        1.7) En son sürüm nedir?
+
+PostgreSQL'in son sürümü 7.3.3'tür.
+
+Her 4 ayda major release çýkarýlmasý planlanmaktadýr.
+
+
+        1.8) Hangi belgelere ulasabilirim?
+
+Daðýtýmýn icinde, kitapciklar, kitapcik sayfalari ve bazi küçük örnekler
+verilmektedir. /doc dizinine bakýnýz. Ayrica, bu el kitapçýklarýný
+online olarak http://www.PostgreSQL.org/docs/ adresinden inceleyebilirsiniz.
+
+http://www.PostgreSQL.org/docs/awbook.html ve
+http://www.commandprompt.com/ppbook adreslerinde PostgreSQL kitaplarý
+bulunmaktadýr. PostgreSQL kitablarýnýn listesine,
+http://www.ca.PostgreSQL.org/books/ adresinden ulaþaiblirsiniz. Ayrýca,
+PostgreSQL konusundaki teknik makalelere de
+http://techdocs.PostgreSQL.org/ adresinden ulaþabilirsiniz.
+
+psql'in, \d ile baslayan veri tipler, operatorler, fonksiyonlar,
+aggregateler, vb. ile ilgili güzel komutlarý vardýr.
+
+Web sitemiz daha fazla belgeyi içermektedir.
+
+
+        1.9) Bilinen hatalar ya da eksik özelliklere nereden ulasabilirim?
+
+PostgreSQL SQL-92 uyumlugugu icindedir, standartlardan fazla da
+özellikleri bulunmaktadýr. Bilinen hatalar, eksik özellikler ve gelecek
+ile ilgili planlar için TODO listesine bakýnýz.
+
+
+        1.10) Nasýl SQL öðrenebilirim?
+
+http:/www.PostgreSQL.org/docs/awbook.html adresindeki kitap SQL
+ögretecektir. http://www.commandprompt.com/ppbook adresinde de bir baska
+PostgreSQL kitabý bulunmaktadýr.
+
+http://www.intermedia.net/support/sql/sqltut.shtm,
+http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM
+http://sqlcourse.com ve http://sqlcourse2.com adreslerinde de güzel
+belgeler bulunmaktadýr.
+
+Bir baþkasý da, http://members.tripod.com/er4ebus/sql/index.htm
+adresinde bulunan "Teach Yourself SQL in 21 Days, Second Edition" kitabýdýr.
+
+Bazý kullanýcýlarýmýz da þu kitabý önermektedirler: The Practical SQL
+Handbook, Bowman, Judith S., et al.,Addison-Wesley. Others like The
+Complete Reference SQL, Groff et al., McGraw-Hill.
+
+
+        1.11) PostgreSQL 2000 yýlýna uyumlu mudur?
+
+Evet.
+
+
+        1.12) Gelistirme takýmýna nasýl katýlabilirim?
+
+Öncelikle, en son kaynak kodunu indirin ve web sitemizdeki ya da
+dagýtýmýn içindeki PostgreSQL Developer belgesini okuyun. Ardindan,
+pgsql-hackers ve pgsql-patches listelerine üye olun. Üçüncü olarak da,
+pgsql-pacthes listesine yüksek kalitede yamalar gönderin.
+
+PostgreSQL CVS arsivine erisim izni olan, 10 kadar gelistirici
+bulunmaktadir. Hepsi defalarca, diger kisilerin yaptigindan cok daha
+yüksek-kaliteli patchler gondermislerdir. Ayrica biz de bu
+gelistiricilerin ekledikleri yamalarin yüksek kalitede olduguna güveniyoruz.
+
+
+        1.13) Bir hata raporunu nasýl gönderebilirim?
+
+PostgreSQL BugTool sayfasina gidiniz. O sayfada bir bug bildirmek icin
+neleri yapmanýz gerektigi anlatilmistir.
+
+Ayrýca, ftp://ftp.PostgreSQL.org/pub ftp adresimizde, yeni bir
+PostgreSQL sürümü ya da yamasi olup olmadigini kontrol ediniz.
+
+
+        1.14) PostgreSQL, diger DBMS'lerle nasýl karsilastýrýlabilir?
+
+Bir yazilimin gücünü ölçmek için çesitli yollar vardir: Yazilimin
+özellikleri, basarýmý, güvenilirligi, destegi ve ücreti.
+
+Özellikler:
+
+PostgreSQL mevcut büyük ticari veritabanlarinin, transaction, subselect,
+trigger, view, foreign key referential integrity ve sophisticated
+locking gibi (user-defined types), rules, inheritance ve lock
+cakýsmalarini düsürmek icin multi-version uyumluluk özellikleri
+bulunmaktadir.
+
+Performans (Baþarým):
+
+PostgreSQL, diðer ticari ve açýk kaynak kodlu veritabanlarýyla yakýn
+baþarýmý saðlar. Bazý açýlardan daha hýzlýdýr, diðer açýlardan da
+yavaþtýr. MySQL ya da daha zayýf veritabanlarý ile
+karþýlaþtýrýldýðýnda,insert/update islemlerinde, transaction bazlý
+çalýstýðýmýz için daha yavaþýz. MySQL, yukarýdaki "Özellikler" kýsmýnda
+belirtilenlerden hiç birine sahip deðildir. Biz, baþarýmýmýzý her
+sürümde arttýrsak da, esneklik ve geliþmiþ özellikler için yapýlanmýs
+durumdayýz . PostgreSQL'i MySQL ile karþýlaþtýran þu web sitesine
+bakabilirsiniz: http://openacs.org/why-not-mysql.html
+
+Güvenilirlik:
+
+DBMSlerin güvenilir olmasý gerketigi, yoksa degerleri olmayacagini
+düsünüyoruz Çok iyi test edilmis, dengeli çalýsan minimum sayýda hata
+içeren kod sunmaya çalýsýyoruz. Her bir sürüm en az 1 aylýk beta
+testlerinden geçirilmektedir. Sürüm geçmiþine bakarsanýz, üretime hazýr,
+dengeli ve kararlý kodlar sundugumuzu görebilirsiniz. Bu alanda, diger
+veritabaný yaZýlýmlarýna üstünlügümüz olduguna inanmaktayýz
+
+Destek:
+
+E-posta listemiz, olusan herhangi bir sorunu çözebilecek büyük sayýda
+kullanýcý ve gelistirici grubunu içerir. Sorununuz için, en az bir
+ticari veritabaný kadar rahat çözüm bulabilirsiniz. Gelistiricilere,
+kullanýcý grubuna, belgelere ve kaynak koda direk olarak erisebilme,
+PostgreSQL destegini, diger DBMSlere göre daha önemli kýlar. Gereksinimi
+olanlara, ticari destek verilebilir. (Destek için 1.6 bölümüne bakýnýz.)
+
+Fiyat:
+
+Ticari ve ticari olmayan tüm kullanýmlarýnýz için PostgreSQL
+ücretsizdir. Kodumuzu, yukarýda belirtilen BSD-stili lisanstaki
+sýnýrlamalar hariç, ürününüzün içine ekleyebilirsiniz.
+
+
+        1.15) PostgreSQL'e maddi açýdan nasýl destek olabilirim?
+
+PostgreSQL, 1996 yýlýndan beri 1.sýnýf altyapýya ashiptir. Bunun için,
+yýllar boyu çalýsýp bu altyapýyý olusturup yöneten Marc Fournier'e
+tesekkürler.
+
+Bir açýk kaynak kodlu proje için, kaliteli altyapý çok önemlidir. Bu
+altyapý, projenin kesilmesini önler ve projenin ilerlemesini hýzlandýrýr.
+
+Tabii ki bu altyapý ucuz degildir. ýslerin yürümesi için çeþitli yýlýk
+ve anlýk harcamalarýmýz olmaktadýr. Eger siz ya da sirketinizin bu
+çabamýza bagýsta bulunabilecek parasý varsa, lütfen
+http://www.pgsql.com/pg_goodies adresine gidiniz ve bagýsta, hibede
+bulununuz.
+
+Web sayfasýnýn PostgreSQL, ýnc.' den bahsetmesine ragmen, "katkýda
+bulunanlar" (contributors) maddesi sadece PostgreSQL projesini
+desteklemek içindir ve belirli bir sirketin para kaynagý degildir.
+isterseniz, baglantý adresine bir çek gönderebilirsiniz.
+
+------------------------------------------------------------------------
+
+
+    Kullanýcý/istemci Sorularý
+
+
+        2.1) PostgreSQL icin ODBC sürücüleri var mý?
+
+iki tane ODBC sürücüsü bulunmaktadýr: PsqlODBC ve OpenLink ODBC.
+
+PsqlODBC'i http://gborg.postgresql.org/project/psqlodbc/projdisplay.php
+adresinden indirebilirsiniz.
+
+OpenLink ODBC http://www.openlinksw.com adresinden alýnabilir.Bu sürücü,
+kendi standart ODBC istemci yazýlýmý ile çalýstýðýndan, destekledikleri
+her platformda (Win, Mac, Unix, VMS) PostgreSQL ODBC bulunmalidir.
+
+Ücretsiz sürümü olmakla beraber, ticari kalitede destek almak
+isteyenlere satmak isteyeceklerdir. Sorularýnýzý lütfen
+postgres95@openlink.co.uk adresine gönderiniz.
+
+
+        2.2) PostgreSQL'i web sayfalarýnda kullanabilmek için hangi
+        araçlar bulunmaktadýr?
+
+http://www.webreview.com adresinde, arka planda veritabaný çalýstýran
+Web sayfalarý için giris seviyesinde bilgi bulunmaktadýr.
+
+Web ile bütünlesme için, PHP mükemmel bir arabirim sunar. http://www.php.net
+
+Karmaþýk sorunlar için, çoðu kisi Perl arabirimini ve CGI.pm ya da
+mod_perl kullanýr.
+
+
+        2.3) PostgreSQL'in grafik kullanýcý arabirimi var mýdýr?
+
+Çeþitli grafik arabirimlerimiz bulunmaktadýr. Bunlarýn arasýnda,
+PgAccess (http://www.pgaccess.org), PgAdmin II (http://www.pgadmin.org,
+sadece Win32 için), RHDB Admin (http://sources.redhat.com/rhdb/ ) ve
+Rekall (http://www.thekompany.com/products/rekall/) bulunmaktadýr.
+Ayrýca, PostgreSQL için web tabanlý bir arabirim olan PHPPgAdmin (
+http://phppgadmin.sourceforge.net/ ) bulunmaktadýr.
+
+Daha ayrýntýlý liste için http://techdocs.postgresql.org/guides/GUITools
+adresine bakabilirsiniz.
+
+
+        2.4) PostgreSQL ile iletiþimi kurabilmek için hangi dilleri
+        kullanabilirim?
+
+    * C (libpq)
+    * Embedded C (ecpg)
+    * Java (jdbc)
+    * Python (PyGreSQL)
+    * TCL (libpgtcl)
+
+Diðerleri için, http://gborg.postgresql.org adresindeki
+Drivers/Interfaces bölümüne bakabilirsiniz.
+
+------------------------------------------------------------------------
+
+
+    Yönetimsel Sorular
+
+
+        3.1) PostgreSQL'i, /usr/local/pgsql dizininden baska dizinlere
+        nasýl kurabilirim?
+
+configure betigini çalýstýrýrken, --prefix seçenegini veriniz.
+
+
+        3.2) postmaster'i baslattýgýmda, a Bad System Call ya da core
+        dumped mesajý alýyorum. Neden?
+
+Bunun birçok nedeni olabilir. Ancak ilk kontrol edilmesi gereken sey,
+çekirdeginize System V uzantýlarýnýn kurulu olup olmadýgýný kontrol
+etmek olabilir. PostgreSQL shared memory ve semaphores için çekirdek
+destegine gereksinim duyar.
+
+
+        3.3) postmaster'i baslattýgýmda, a ýpcMemoryCreate hatasý
+        alýyorum. Neden?
+
+Ya çekirdeginizde shared memory desteginiz düzgünce
+yapýlandýrýlmamýstýr, ya da çekirdeginizdeki mevcut shared memory
+miktarýný büyütmeniz gerekecektir. Gereksinim duyacagýnýz miktar,
+mimarinize ve postmaster için ayarladýgýnýz tampon ile backend islemi
+sayýsýna baglýdýr. Tüm sistemler için, tamponlar ve islemlerde öntanýmlý
+sayýlarla, ~ 1MB kadar yere gereksinmeniz olacaktir.PostgreSQL
+Administrator's Guide' a, shared memory ve semaphorelar hakkýndaki
+ayrýntýlý bilgi için bakabilirsiniz.
+
+
+        3.4) postmaster'i baslattýgýmda, a ýpcSemaphoreCreate hatasý
+        alýyorum. Neden?
+
+Eger hata, "ýpcSemaphoreCreate: semget failed (No space left on device)"
+ise, çekirdeginiz yeterli semaphore ile yapýlandýrýlmamýs demektir.
+Postgres, her bir potansiyel backend için bir semaphore gereksinmesi
+duyar. Geçici bir çözüm, postmasterý backend islemleri için daha az
+miktarda sýnýrla baslatmak olabilir. -N i varsaýlan deger olan 32'den
+küçük bir degerle baslatýnýz. Daha kalýcý bir çözüm, çekirdeðinizin
+SEMMNS ve SEMMNI parametrelerini yükseltmek olacaktýr.
+
+Çalýþmayan semaphorelar aðýr veritabaný islemlerinde çökme yaratabilirler.
+
+Eger hata mesajýnýz baska birsey ise, çekirdeginizde semaphore destegini
+yapýlandýrmamýs olabilirsiniz. Shared memory ve semaphorelar hakkýndaki
+daha ayrýntýlý bilgi için PostgreSQL Administrator's Guide'a bakabilirsiniz.
+
+
+        3.5) Diger bilgisayarlarýn benim PostgreSQL veritabaný sunucuma
+        baglantýlarýný nasýl kontrol edebilirim?
+
+Ön tanýmlý olarak, PostgreSQL sadece yerel makineden Unix domain sockets
+kullanarak baglanýlmasýna izin verir. Diger makineler, postmaster'a -i
+etiketini geçirmezseniz ve $PGDATA_pg_hba.conf dosyasýný düzenleyerek
+host-based authentication'a olanak vermezseniz, baglantý yapamayacaklardýr.
+
+
+        3.6) Veritabani motorunu daha iyi basarim icin nasil
+        ayarlayabilirim?
+
+Indexler sorgularý hýzlandýrabilir. EXPLAIN komutu, PostgreSQL'in
+sorgunuzu nasýl yorumladýðýný ve hangi indexleri kullandigini görmenize
+izin verir.
+
+Eðer cok fazla INSERT islemi yapiyorsaniz, bunlarý büyük bir toplu islem
+dosyasi kullanýp COPY komutu ile veritabanina girmeyi deneyiniz. Bu,
+tekil ýNSERTlerden daha hýzlýdýr. ikinci olarak, BEGýN WORK/COMMýT
+transaction blogu içinde olmayan ifadeler kendi transactionlarindaymis
+gibi düsünülür. Çoklu ifadeleri tek bir transaction bloðu içinde
+yapabilirsiniz. Bu, transaction overheadini düþürecektir. Tek bir
+transaction bloðu içinde birden çok ifadeyi çalýþtýrmayý
+deneyebilirsiniz. Bu, transaction overhead ini düþürür.
+
+Çeþitli ayarlama seçenekleri mevcuttur. fsync() iþlemini, postmaster'ý
+-o -F seçeneði ile baþlatarak devre dýþý býrakabilirsiniz. Bu iþlem,
+fsync()'lerin her transactiondan sonra diske flush etmesini engelleyecektir.
+
+Ayný zamanda, postmaster'i -B seçeneði ile baþlatýp, backend iþlemleri
+tarafýndan kullanýlan shared memorf buffers sayýlarýný
+arttýrabilirsiniz. Eger bu parametreyi çok yüksek tutarsanýz,
+çekirdeðinizin shared memory bölgesindeki limiti aþma olasýlýðýnýz
+yüzünden postmaster baþlayamayabilir. Her bir tampon (buffer) 8K'dýr.
+Öntanýmlý sayý ise 64 tampondur.
+
+Ayný þekilde, backend'in -S seçeneðini geçici sýralamalar için backend
+süreçleri tarafýndan kullanýlacak hafýzayý arttýrmak amacýyla
+kullanabilirsiniz. -S seçeneði kilobayt cinsinden deðer alýr ve ön
+tanýmlý deðeri 512'dir (512 K)
+
+Tablolardaki veriyi bir indekse eþlemek amacýyla gruplama için CLUSTER
+komutunu kullanabilirsiniz. Ayrýntýlý bilgi için CLUSTER komutunun
+yardým sayfasýna bakabilirsiniz.
+
+
+        3.7) Hangi hata ayýklama özellikleri bulunmaktadýr?
+
+PostgreSQL, hata ayýklama amacýyla kullanýlabilecek durum bilgisi rapor
+eden çeþitli özeliklere sahiptir.
+
+Öncelikle, configure betiðini --enable-cassert seçeneðiyle
+çalýþtýrýrsanýz, bir çok assert() backend calýþmasýný gözlemler ve
+beklenmeyen bir durumda programý durdurur.
+
+Postmaster ve postgres çeþitli hata ayýklama seçeneklerine sahiptir.
+Öncelikle, postmaster'i baþlattýðýnýzda, standart çýktýyý ve hatalarý
+bir log dosyasýna yönlendirdiðinize emin olun:
+
+cd /usr/local/pgsql
+./bin/postmaster >server.log 2>&1 &
+
+Bu iþlem PostgreSQL ana dizinine server.log dosyasý yerleþtirecektir. Bu
+dosya sunucunun yaþadýðý sorunlar ya da hatalar hakkýnda yararlý
+bilgiler içerir. -d seçeneði, hata ayýklama seviyesini belirten bir
+rakam ile kullanýlýr. Yüksek hata ayýklama seviyelerinin büyük log
+dosyalarý oluþturacaðýný unutmayýnýz.
+
+Eðer postmaster çalýþmýyorsa, postgres backend'ini komut satýrýndan
+çalýþtýrabilir ve SQL ifadenizi direk olarak yazabilirsiniz. Bu sadece
+hata ayýklama amacýyla önerilir. Burada, noktalý virgülün deðil de yeni
+bir satýrýn sorguyu sonlandýrdýðýný unutmayýnýz. Eðer hata ayýklama
+sembolleri ile derlediyseniz, ne olduðunu görmek için bir hata
+ayýklayýcý kullanabilirsiniz. backend postmasterdan baþlatýlmadýðýndan,
+eþdeðer bir ortamda çalýþmamaktadýr ve locking/backend etkileþim
+sorunlarý artabilir.
+
+Eðer postmaster çalýþýyorsa, bir pencerede psql'i çalýþtýrýn ve psql
+tarafýndan kullanýlan postgres sürecinin süreç numarasýný (PID) bulun.
+Postgres süreci ile iliþkilendirmek için bir hata ayýklarýcý kullanýn.
+Sorgularý psql aracýlýðý ile çalýþtýrabilirsiniz. Eðer postgres
+baþlangýcýnda hata ayýklamak istiyorsanýz, PGOPTIONS="-W n" seçeneðini
+ayarlayabilir ve psql'i baþlatabilirsiniz. Bu iþlem, baþlangýcýn n
+saniye kadar gecikmesini saðlayacaktýr; böylece hata ayýklayýcýyý sürece
+iliþkilendirdikten sonra baþlangýç sürecinin devam etmesini
+saðlayabilirsiniz.
+
+postgres programý hata ayýklama ve baþarým ölçümleri için -s, -A ve -t
+seçeneklerine sahiptir.
+
+
+        3.8) Baglanmaya çalýsýken, neden "Sorry, too many clients"
+        hatasýný alýyorum?
+
+Postmaster'in eþzamanlý olarak baþlatabileceði backend süreçleri
+sýnýrlarýný arttýrmanýz gerekmektedir.
+
+Ön tanýmlý deðer 32 süreçtir. Bunu, postmaster'i uygun -N deðeri ile ya
+da postgresql.conf dosyasýný düzenleyerek yeniden baþlatmakla
+arttýrabilirsiniz.
+
+Eðer -N deðerini 32'den büyük yapacaksanýz, ayný zamanda -B deðerini de
+deðiþtirmeniz gerektiðini unutmayýn. -B -N'nin en az 2 katý kadar
+olmalýdýr; daha iyi baþarým için bu sayýyý daha da arttýrmalýsýnýz.
+Yüksek sayýdaki backend süreçleri için, çeþitli çekirdek yapýlandýrma
+parametrelerini arttýrmanýz gerekecektir. Yapýlmasý gerekenler, SHMMAX,
+SEMMNS, SEMMNI, NPROC, MAXUPRC ve açýlabilecek dosyalarýn maksimum
+sayýsý olan NFILE ve NINODE deðerlerini karýþtýrmaktýr. Bunun nedeni,
+PostgreSQL'in izin verilen backend süreçlerinin sayýsý üzerinde bir
+sýnýrý olmasýdýr. Böylelikle sistem kaynaklarýnýn dýþýna çýkýlmayacaktýr.
+
+PostgreSQL'in 6.5 sürümüne kadar, en fazla backend sayýsý 64 idi ve bunu
+deðiþtirmek için include/storage/sinvaladt.h dosyasý içindeki
+MaxBAckendid sabitini deðiþtirdek sonra yazýlýmý yeniden derlemek
+gerekiyordu.
+
+
+        3.9) pgsql_tmp dizinin içindeki dosyalar nelerdir?
+
+Sorgu çalýstýrýcý (query executer) tarafýndan yaratýlan geçici
+dosyalardýr. Örnegin, bir sýralama ORDER BY ile yapilacaksa ve sýralama
+backend'in -s parametresinin izin verdiginden daha fazla alana
+gereksinim duyuyorsa, ekstra veriyi tutmak için geçici dosyalar yaratýlýr.
+
+Geçici dosyalar, eger sýralama sýrasýnda backend göçmezse otomatik
+olarak silinecektir. Eger çalýsan durumda bir backendiniz yoksa,
+pg_tempNNN.NN dosyalarýný silmeniz güvenlidir..
+
+
+        3.10) PostgreSQL sürümlerini yükselmek için neden bir
+        dump/reload iþlemi gerçekleþtirmek zorundayým?
+
+PostgreSQL takýmý ara sürümlerde sadece küçük deðiþiklikler yapmaktadýr;
+bu yüzden 7.2 sürümünden 7.2.1'e yükseltmek dump/restore iþlemi
+gerekmemektedir. Ancak, esas sürümlerde (örnek: 7.2'den 7.3'e)
+çoðunlukla sistem tablolarýnýn ve veri dosyalarýnýn iç yapýsý
+deðiþtirilir. Bu deðiþiklikler çoðunlukla karmaþýktýr; dolayýsýyla veri
+dosyalarýnýn geriye dönük uyumluluðu iþlemlerini yapmýyoruz. Dump
+iþlemi, veriyi genel biçimde alacaðýndan yeniden yükleme esnasýnda veri,
+yeni iç biçime uygun þekilde yerleþtirilecektir.
+
+Disk biçiminin deðiþmediði sürümlerde, pg_upgrade betiði güncellemenin
+bir dump/restore gerektirmeden yapýlmasýný saðlayacaktýr. pg_upgrade
+betiðinin o sürüm için bulunup bulunmadýðýný sürüm notlarý içinde
+bulabilirsiniz.
+
+------------------------------------------------------------------------
+
+
+    Ýþletimsel Sorular
+
+
+        4.1) Binary cursor ve normal cursor arasindaki fark nedir?
+
+DECLARE yardým sayfasina bakiniz.
+
+
+        4.2) Sorgunun sadece ilk birkaç satýrýný nasil SELECT edebilirim?
+
+FETCH yardým sayfasina bakiniz, aya da SELECT ... LIMIT.... kullanýnýz.
+
+The entire query may have to be evaluated, even if you only want the
+first few rows. Consider a query that has an ORDER BY. ýf there is an
+index that matches the ORDER BY, PostgreSQL may be able to evaluate only
+the first few records requested, or the entire query may have to be
+evaluated until the desired rows have been generated.
+
+
+        4.3) psql'in içinde gördügüm tablolarin ya da diger seylerin
+        listesini nasil alabilirim?
+
+pgsql/src/bin/psql/describe.c içindeki psql kaynak kodunu
+okuyabilirsiniz. Bu kod, psql'in \ ile baslayan komutlarýnýn çýktýsýný
+olusturan SQL komutlarini içerir. Ayný zamanda, psql'i -E seçeneði ile
+baþlatýp, verdiðiniz komutlarý çalýþtýrmak için yaptýðý sorgularýn
+çýktýlarýný görebilirsiniz.
+
+
+        4.4) Bir tablodan bir kolonu nasýl kaldýrabilirim?
+
+Bu özellik (ALTER TABLE DROP COLUMN) 7.3 sürümü ile gelmiþtir. Eski
+sürümlerde aþaðýdakileri uygulamalýsýnýz:
+
+BEGIN;
+LOCK TABLE old_table;
+SELECT ...  -- select all columns but the one you want to remove
+INTO TABLE new_table
+FROM old_table;
+DROP TABLE old_table;
+ALTER TABLE new_table RENAME TO old_table;
+COMMIT;                
+               
+
+
+        4.5) Bir satýr, tablo ve veritabaný icin en fazla büyüklük nedir?
+
+Sýnýrlar:
+
+Veritabani icin en fazla büyüklük nedir?
+Sýnýrsýz (4 TB'lýk veritabaný bulunmaktadýr)
+
+Bir tablo icin en fazla büyüklük nedir?
+16 TB
+
+Bir satýr için en fazla büyüklük nedir?
+1.6 TB
+
+Bir alan için en fazla büyüklük nedir?
+1 GB
+
+Tabloda en fazla satýr sayýsý kaçtýr?
+Sýnýrsýz
+
+Bir tabloda olabilecek en fazla kolon sayýsý kaçtýr?
+Kolon tiplerine baðlý olarak 250-1600
+
+Bir tabloda olabilecek en fazla index sayýsý kaçtýr?
+sýnýrsýz
+
+These are the limits:
+
+    Maximum size for a database?               unlimited (4 TB databases exist)
+    Maximum size for a table?                  16 TB
+    Maximum size for a row?                    1.6TB
+    Maximum size for a field?                  1 GB
+    Maximum number of rows in a table?         unlimited
+    Maximum number of columns in a table?    250-1600 depending on column types
+    Maximum number of indexes on a table?    unlimited
+
+Of course, these are not actually unlimited, but limited to available
+disk space and memory/swap space. Performance may suffer when these
+values get unusually large.
+
+The maximum table size of 16 TB does not require large file support from
+the operating system. Large tables are stored as multiple 1 GB files so
+file system size limits are not important.
+
+The maximum table size and maximum number of columns can be increased if
+the default block size is increased to 32k.
+
+
+        4.6) How much database disk space is required to store data from
+        a typical text file?
+
+A PostgreSQL database may require up to five times the disk space to
+store data from a text file.
+
+As an example, consider a file of 100,000 lines with an integer and text
+description on each line. Suppose the text string avergages twenty bytes
+in length. The flat file would be 2.8 MB. The size of the PostgreSQL
+database file containing this data can be estimated as 6.4 MB:
+
+    36 bytes: each row header (approximate)
+    24 bytes: one int field and one text field
+   + 4 bytes: pointer on page to tuple
+   ----------------------------------------
+    64 bytes per row
+
+   The data page size in PostgreSQL is 8192 bytes (8 KB), so:
+
+   8192 bytes per page
+   -------------------   =  128 rows per database page (rounded down)
+       64 bytes per row
+
+   100000 data rows
+   --------------------  =  782 database pages (rounded up)
+       128 rows per page
+
+782 database pages * 8192 bytes per page  =  6,406,144 bytes (6.4 MB)
+
+Indexes do not require as much overhead, but do contain the data that is
+being indexed, so they can be large also.
+
+NULLs are stored in bitmaps, so they use very little space.
+
+
+        4.7) How do I find out what tables, indexes, databases, and
+        users are defined?
+
+/psql/ has a variety of backslash commands to show such information. Use
+\? to see them. There are also system tables beginning with /pg_/ that
+describe these too. Also, /psql -l/ will list all databases.
+
+Also try the file /pgsql/src/tutorial/syscat.source/. It illustrates
+many of the SELECTs needed to get information from the database system
+tables.
+
+
+        4.8) My queries are slow or don't make use of the indexes. Why?
+
+Indexes are not automatically used by every query. Indexes are only used
+if the table is larger than a minimum size, and the query selects only a
+small percentage of the rows in the table. This is because the random
+disk access caused by an index scan can be slower than a straight read
+through the table, or sequential scan.
+
+To determine if an index should be used, PostgreSQL must have statistics
+about the table. These statistics are collected using VACUUM ANALYZE, or
+simply ANALYZE. Using statistics, the optimizer knows how many rows are
+in the table, and can better determine if indexes should be used.
+Statistics are also valuable in determining optimal join order and join
+methods. Statistics collection should be performed periodically as the
+contents of the table change.
+
+Indexes are normally not used for ORDER BY or to perform joins. A
+sequential scan followed by an explicit sort is usually faster than an
+index scan of a large table.
+
+However, LIMIT combined with ORDER BY often will use an index because
+only a small portion of the table is returned. In fact, though MAX() and
+MIN() don't use indexes, it is possible to retrieve such values using an
+index with ORDER BY and LIMIT:
+
+    SELECT col
+    FROM tab
+    ORDER BY col [ DESC ]
+    LIMIT 1;
+
+If you believe the optimizer is incorrect in choosing a sequential scan,
+use |SET enable_seqscan TO 'off'| and run tests to see if an index scan
+is indeed faster.
+
+When using wild-card operators such as LIKE or /~/, indexes can only be
+used in certain circumstances:
+
+    * The beginning of the search string must be anchored to the start
+      of the string, i.e.
+          o LIKE patterns must not start with /%/.
+          o /~/ (regular expression) patterns must start with /^/.
+    * The search string can not start with a character class, e.g. [a-e].
+    * Case-insensitive searches such as ILIKE and /~*/ do not utilise
+      indexes. Instead, use functional indexes, which are described in
+      section 4.12 <#4.12>.
+    * The default /C/ locale must be used during /initdb/.
+
+
+        4.9) How do I see how the query optimizer is evaluating my query?
+
+See the EXPLAIN manual page.
+
+
+        4.10) What is an R-tree index?
+
+An R-tree index is used for indexing spatial data. A hash index can't
+handle range searches. A B-tree index only handles range searches in a
+single dimension. R-trees can handle multi-dimensional data. For
+example, if an R-tree index can be built on an attribute of type
+/point/, the system can more efficiently answer queries such as "select
+all points within a bounding rectangle."
+
+The canonical paper that describes the original R-tree design is:
+
+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.
+
+You can also find this paper in Stonebraker's "Readings in Database
+Systems".
+
+Built-in R-trees can handle polygons and boxes. In theory, R-trees can
+be extended to handle higher number of dimensions. In practice,
+extending R-trees requires a bit of work and we don't currently have any
+documentation on how to do it.
+
+
+        4.11) What is the Genetic Query Optimizer?
+
+The GEQO module speeds query optimization when joining many tables by
+means of a Genetic Algorithm (GA). It allows the handling of large join
+queries through nonexhaustive search.
+
+
+        4.12) How do I perform regular expression searches and
+        case-insensitive regular expression searches? How do I use an
+        index for case-insensitive searches?
+
+The /~/ operator does regular expression matching, and /~*/ does
+case-insensitive regular expression matching. The case-insensitive
+variant of LIKE is called ILIKE.
+
+Case-insensitive equality comparisons are normally expressed as:
+
+    SELECT *
+    FROM tab
+    WHERE lower(col) = 'abc';
+
+This will not use an standard index. However, if you create a functional
+index, it will be used:
+
+    CREATE INDEX tabindex ON tab (lower(col));
+
+
+        4.13) In a query, how do I detect if a field is NULL?
+
+You test the column with IS NULL and IS NOT NULL.
+
+
+        4.14) What is the difference between the various character types?
+
+Type           Internal Name   Notes
+--------------------------------------------------
+VARCHAR(n)     varchar         size specifies maximum length, no padding
+CHAR(n)        bpchar          blank padded to the specified fixed length
+TEXT           text            no specific upper limit on length
+BYTEA          bytea           variable-length byte array (null-byte safe)
+"char"         char            one character
+
+You will see the internal name when examining system catalogs and in
+some error messages.
+
+The first four types above are "varlena" types (i.e., the first four
+bytes on disk are the length, followed by the data). Thus the actual
+space used is slightly greater than the declared size. However, these
+data types are also subject to compression or being stored out-of-line
+by TOAST, so the space on disk might also be less than expected.
+
+VARCHAR(n) is best when storing variable-length strings and it limits
+how long a string can be. TEXT is for strings of unlimited length, with
+a maximum of one gigabyte.
+
+CHAR(n) is for storing strings that are all the same length. CHAR(n)
+pads with blanks to the specified length, while VARCHAR(n) only stores
+the characters supplied. BYTEA is for storing binary data, particularly
+values that include NULL bytes. All the types described here have
+similar performance characteristics.
+
+
+        4.15.1) How do I create a serial/auto-incrementing field?
+
+PostgreSQL supports a SERIAL data type. It auto-creates a sequence and
+index on the column. For example, this:
+
+    CREATE TABLE person ( 
+       id   SERIAL, 
+       name TEXT 
+    );
+
+is automatically translated into this:
+
+    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 );
+
+See the /create_sequence/ manual page for more information about
+sequences. You can also use each row's /OID/ field as a unique value.
+However, if you need to dump and reload the database, you need to use
+/pg_dump/'s /-o/ option or COPY WITH OIDS option to preserve the OIDs.
+
+
+        4.15.2) How do I get the value of a SERIAL insert?
+
+One approach is to retrieve the next SERIAL value from the sequence
+object with the /nextval()/ function /before/ inserting and then insert
+it explicitly. Using the example table in 4.15.1 <#4.15.1>, an example
+in a pseudo-language would look like this:
+
+    new_id = execute("SELECT nextval('person_id_seq')");
+    execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
+
+You would then also have the new value stored in |new_id| for use in
+other queries (e.g., as a foreign key to the |person| table). Note that
+the name of the automatically created SEQUENCE object will be named
+</table/>_</serialcolumn/>_/seq/, where /table/ and /serialcolumn/ are
+the names of your table and your SERIAL column, respectively.
+
+Alternatively, you could retrieve the assigned SERIAL value with the
+/currval()/ function /after/ it was inserted by default, e.g.,
+
+    execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
+    new_id = execute("SELECT currval('person_id_seq')");
+
+Finally, you could use the OID <#4.16> returned from the INSERT
+statement to look up the default value, though this is probably the
+least portable approach. In Perl, using DBI with Edmund Mergl's DBD::Pg
+module, the oid value is made available via /$sth->{pg_oid_status}/
+after /$sth->execute()/.
+
+
+        4.15.3) Don't /currval()/ and /nextval()/ lead to a race
+        condition with other users?
+
+No. /currval()/ returns the current value assigned by your backend, not
+by all users.
+
+
+        4.15.4) Why aren't my sequence numbers reused on transaction
+        abort? Why are there gaps in the numbering of my sequence/SERIAL
+        column?
+
+To improve concurrency, sequence values are given out to running
+transactions as needed and are not locked until the transaction
+completes. This causes gaps in numbering from aborted transactions.
+
+
+        4.16) What is an OID? What is a TID?
+
+OIDs are PostgreSQL's answer to unique row ids. Every row that is
+created in PostgreSQL gets a unique OID. All OIDs generated during
+/initdb/ are less than 16384 (from /include/access/transam.h/). All
+user-created OIDs are equal to or greater than this. By default, all
+these OIDs are unique not only within a table or database, but unique
+within the entire PostgreSQL installation.
+
+PostgreSQL uses OIDs in its internal system tables to link rows between
+tables. These OIDs can be used to identify specific user rows and used
+in joins. It is recommended you use column type OID to store OID values.
+You can create an index on the OID field for faster access.
+
+OIDs are assigned to all new rows from a central area that is used by
+all databases. If you want to change the OID to something else, or if
+you want to make a copy of the table, with the original OIDs, there is
+no reason you can't do it:
+
+       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';
+
+OIDs are stored as 4-byte integers, and will overflow at 4 billion. No
+one has reported this ever happening, and we plan to have the limit
+removed before anyone does.
+
+TIDs are used to identify specific physical rows with block and offset
+values. TIDs change after rows are modified or reloaded. They are used
+by index entries to point to physical rows.
+
+
+        4.17) What is the meaning of some of the terms used in PostgreSQL?
+
+Some of the source code and older documentation use terms that have more
+common usage. Here are some:
+
+    * 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
+
+A list of general database terms can be found at:
+http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html
+
+
+        4.18) Why do I get the error /"ERROR: Memory exhausted in
+        AllocSetAlloc()"/?
+
+You probably have run out of virtual memory on your system, or your
+kernel has a low limit for certain resources. Try this before starting
+/postmaster/:
+
+    ulimit -d 262144
+    limit datasize 256m
+
+Depending on your shell, only one of these may succeed, but it will set
+your process data segment limit much higher and perhaps allow the query
+to complete. This command applies to the current process, and all
+subprocesses created after the command is run. If you are having a
+problem with the SQL client because the backend is returning too much
+data, try it before starting the client.
+
+
+        4.19) How do I tell what PostgreSQL version I am running?
+
+From /psql/, type |SELECT version();|
+
+
+        4.20) Why does my large-object operations get /"invalid large
+        obj descriptor"/?
+
+You need to put |BEGIN WORK| and |COMMIT| around any use of a large
+object handle, that is, surrounding |lo_open| ... |lo_close.|
+
+Currently PostgreSQL enforces the rule by closing large object handles
+at transaction commit. So the first attempt to do anything with the
+handle will draw /invalid large obj descriptor/. So code that used to
+work (at least most of the time) will now generate that error message if
+you fail to use a transaction.
+
+If you are using a client interface like ODBC you may need to set
+|auto-commit off.|
+
+
+        4.21) How do I create a column that will default to the current
+        time?
+
+Use /CURRENT_TIMESTAMP/:
+
+|CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
+|
+
+
+        4.22) Why are my subqueries using |IN| so slow?
+
+Currently, we join subqueries to outer queries by sequentially scanning
+the result of the subquery for each row of the outer query. If the
+subquery returns only a few rows and the outer query returns many rows,
+|IN| is fastest. To speed up other queries, replace |IN| with |EXISTS|:
+
+    SELECT *
+    FROM tab
+    WHERE col IN (SELECT subcol FROM subtab);
+
+to:
+
+    SELECT *
+    FROM tab
+    WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
+
+For this to be fast, |subcol| should be an indexed column. This
+preformance problem will be fixed in 7.4.
+
+
+        4.23) How do I perform an outer join?
+
+PostgreSQL supports outer joins using the SQL standard syntax. Here are
+two examples:
+
+    SELECT *
+    FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
+
+or
+
+    SELECT *
+    FROM t1 LEFT OUTER JOIN t2 USING (col);
+
+These identical queries join t1.col to t2.col, and also return any
+unjoined rows in t1 (those with no match in t2). A RIGHT join would add
+unjoined rows of t2. A FULL join would return the matched rows plus all
+unjoined rows from t1 and t2. The word OUTER is optional and is assumed
+in LEFT, RIGHT, and FULL joins. Ordinary joins are called INNER joins.
+
+In previous releases, outer joins can be simulated using UNION and NOT
+IN. For example, when joining /tab1/ and /tab2/, the following query
+does an /outer/ join of the two tables:
+
+    SELECT tab1.col1, tab2.col2
+    FROM tab1, tab2
+    WHERE tab1.col1 = tab2.col1
+    UNION ALL
+    SELECT tab1.col1, NULL
+    FROM tab1
+    WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
+    ORDER BY col1
+
+
+        4.24) How do I perform queries using multiple databases?
+
+There is no way to query a database other than the current one. Because
+PostgreSQL loads database-specific system catalogs, it is uncertain how
+a cross-database query should even behave.
+
+/contrib/dblink/ allows cross-database queries using function calls. Of
+course, a client can make simultaneous connections to different
+databases and merge the results on the client side.
+
+
+        4.25) How do I return multiple rows or columns from a function?
+
+In 7.3, you can easily return multiple rows or columns from a function,
+http://techdocs.postgresql.org/guides/SetReturningFunctions
+<http://techdocs.postgresql.org/guides/SetReturningFunctions>.
+
+
+        4.26) Why can't I reliably create/drop temporary tables in
+        PL/PgSQL functions?
+
+PL/PgSQL caches function contents, and an unfortunate side effect is
+that if a PL/PgSQL function accesses a temporary table, and that table
+is later dropped and recreated, and the function called again, the
+function will fail because the cached function contents still point to
+the old temporary table. The solution is to use EXECUTE for temporary
+table access in PL/PgSQL. This will cause the query to be reparsed every
+time.
+
+
+        4.27) What replication options are available?
+
+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
+<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
+<http://gborg.postgresql.org/project/pgreplication/projdisplay.php>.
+
+
+        4.28) What encryption options are available?
+
+    * /contrib/pgcrypto/ contains many encryption functions for use in
+      SQL queries.
+    * The only way to encrypt transmission from the client to the server
+      is by using /hostssl/ in /pg_hba.conf/.
+    * Database user passwords are automatically encrypted when stored in
+      version 7.3. In previous versions, you must enable the option
+      /PASSWORD_ENCRYPTION/ in /postgresql.conf/.
+    * The server can run using an encrypted file system.
+
+------------------------------------------------------------------------
+
+
+    Extending PostgreSQL
+
+
+        5.1) I wrote a user-defined function. When I run it in /psql/,
+        why does it dump core?
+
+The problem could be a number of things. Try testing your user-defined
+function in a stand-alone test program first.
+
+
+        5.2) How can I contribute some nifty new types and functions to
+        PostgreSQL?
+
+Send your extensions to the /pgsql-hackers/ mailing list, and they will
+eventually end up in the /contrib// subdirectory.
+
+
+        5.3) Bir tuple döndürmek için bir C fonksiyonunu nasýl yazarým?
+
+PostgreSQL 7.3 sürümü ile birlikte, C, PL/PgSQL ve SQL kullanýlarak
+tablo-döndüren fonksiyonlar tamamen desteklenmektedir. Ayrýntýlý bilgi
+için "Programmer's Guide" a bakabilrisiniz. Bir örneði
+/contrib/tablefunc/ içinde bulabilirsiniz.
+
+
+        5.4) Bir kaynak dosyasýnda deðiþiklik yaptým. Yeniden derlememe
+        raðmen deðiþiklik geçerli olmuyor. Neden?
+
+/Makefile'lar/ include dosyalarý için tam bir baðýmlýlýk içermezler.
+Öncelikle /make clean/, ardýndan da baska bir /make/ iþlemi yapmanýz
+gerekir. GCC kullanýyorsaniz, /configure/ betiðinin /--enable-depend/
+seçeneðini, derleyicinin baðýmlýlýklarý otomatik olarak hesaplamasý için
+kullanabilirsiniz.
+