|
|
|
|
@ -14,7 +14,7 @@ |
|
|
|
|
alink="#0000ff"> |
|
|
|
|
<H1>Frequently Asked Questions (FAQ) for PostgreSQL</H1> |
|
|
|
|
|
|
|
|
|
<P>Last updated: Sun Oct 13 22:49:56 EDT 2002</P> |
|
|
|
|
<P>Last updated: Sun Oct 13 23:15:09 EDT 2002</P> |
|
|
|
|
|
|
|
|
|
<P>Current maintainer: Bruce Momjian (<A href= |
|
|
|
|
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> |
|
|
|
|
@ -78,8 +78,8 @@ |
|
|
|
|
<A href="#3.7">3.7</A>) What debugging features are available?<BR> |
|
|
|
|
<A href="#3.8">3.8</A>) Why do I get <I>"Sorry, too many |
|
|
|
|
clients"</I> when trying to connect?<BR> |
|
|
|
|
<A href="#3.9">3.9</A>) What are the <I>pg_sorttempNNN.NN</I> |
|
|
|
|
files in my database directory?<BR> |
|
|
|
|
<A href="#3.9">3.9</A>) What is in the <I>pgsql_tmp</I> |
|
|
|
|
directory?<BR> |
|
|
|
|
<A href="#3.10">3.10</A>) Why do I need to do a dump and restore |
|
|
|
|
to upgrade PostgreSQL releases?<BR> |
|
|
|
|
|
|
|
|
|
@ -250,10 +250,11 @@ |
|
|
|
|
<P>The database server can run on Windows NT and Win2k using |
|
|
|
|
Cygwin, the Cygnus Unix/NT porting library. See |
|
|
|
|
<I>pgsql/doc/FAQ_MSWIN</I> in the distribution or the MS Windows FAQ |
|
|
|
|
at <A href="http://www.PostgreSQL.org/docs/faq-mswin.html">http://www.PostgreSQL.org/docs/faq-mswin.html</A>.</P> |
|
|
|
|
at <A href="http://www.PostgreSQL.org/docs/faq-mswin.html"> |
|
|
|
|
http://www.PostgreSQL.org/docs/faq-mswin.html</A>.</P> |
|
|
|
|
|
|
|
|
|
<p>A native port to some Microsoft platforms is currently being worked |
|
|
|
|
upon.</p> |
|
|
|
|
<p>A native port to MS Win NT/2000/XP is currently being worked |
|
|
|
|
on.</p> |
|
|
|
|
|
|
|
|
|
<H4><A name="1.5">1.5</A>) Where can I get PostgreSQL?</H4> |
|
|
|
|
|
|
|
|
|
@ -484,7 +485,7 @@ |
|
|
|
|
PostgreSQL?</H4> |
|
|
|
|
|
|
|
|
|
<P>PostgreSQL has had a first-class infrastructure since we started |
|
|
|
|
in 1994. This is all thanks to Marc Fournier, who has created |
|
|
|
|
in 1996. This is all thanks to Marc Fournier, who has created |
|
|
|
|
and managed this infrastructure over the years.</P> |
|
|
|
|
|
|
|
|
|
<P>Quality infrastructure is very important to an open-source |
|
|
|
|
@ -545,9 +546,9 @@ |
|
|
|
|
interface? A report generator? An embedded query language |
|
|
|
|
interface?</H4> |
|
|
|
|
|
|
|
|
|
<P>We have a nice graphical user interface called PgAccess, which is |
|
|
|
|
shipped as part of the distribution. PgAccess also has a report |
|
|
|
|
generator. The Web page is <A href="http://www.pgaccess.org/">http://www.pgaccess.org/</A>.</P> |
|
|
|
|
<P>We have a nice graphical user interface called PgAccess which can |
|
|
|
|
also be used as a report generator. The Web page is |
|
|
|
|
<A href="http://www.pgaccess.org/">http://www.pgaccess.org/</A>.</P> |
|
|
|
|
|
|
|
|
|
<P>We also include <I>ecpg</I>, which is an embedded SQL query |
|
|
|
|
language interface for C.</P> |
|
|
|
|
@ -565,7 +566,7 @@ |
|
|
|
|
|
|
|
|
|
<LI>Java (jdbc)</LI> |
|
|
|
|
|
|
|
|
|
<LI>Perl (DBD::Pg)</LI> |
|
|
|
|
<LI>Perl (DBD::Pg and perl5)</LI> |
|
|
|
|
|
|
|
|
|
<LI>ODBC (odbc)</LI> |
|
|
|
|
|
|
|
|
|
@ -578,7 +579,9 @@ |
|
|
|
|
<LI>PHP ('pg_' functions, Pear::DB)</LI> |
|
|
|
|
</UL> |
|
|
|
|
<P>Additional interfaces are available at |
|
|
|
|
<a href="http://www.PostgreSQL.org/interfaces.html">http://www.PostgreSQL.org/interfaces.html</A>. |
|
|
|
|
<a href="http://www.PostgreSQL.org/interfaces.html">http://www.PostgreSQL.org/interfaces.html</A> |
|
|
|
|
and |
|
|
|
|
<a href="http://gborg.PostgreSQL.org">http://gborg.PostgreSQL.org</A>. |
|
|
|
|
</P> |
|
|
|
|
<HR> |
|
|
|
|
|
|
|
|
|
@ -765,8 +768,8 @@ |
|
|
|
|
the MaxBackendId constant in |
|
|
|
|
<I>include/storage/sinvaladt.h</I>.</P> |
|
|
|
|
|
|
|
|
|
<H4><A name="3.9">3.9</A>) What are the <I>pg_tempNNN.NN</I> |
|
|
|
|
files in my database directory?</H4> |
|
|
|
|
<H4><A name="3.9">3.9</A>) What are the <I>pgsql_tmp</I> |
|
|
|
|
directory?</H4> |
|
|
|
|
|
|
|
|
|
<P>They are temporary files generated by the query executor. For |
|
|
|
|
example, if a sort needs to be done to satisfy an <SMALL>ORDER |
|
|
|
|
@ -774,10 +777,9 @@ |
|
|
|
|
<I>-S</I> parameter allows, then temporary files are created to |
|
|
|
|
hold the extra data.</P> |
|
|
|
|
|
|
|
|
|
<P>The temporary files should be deleted automatically, but might |
|
|
|
|
not if a backend crashes during a sort. If you have no backends |
|
|
|
|
running at the time, it is safe to delete the pg_tempNNN.NN |
|
|
|
|
files.</P> |
|
|
|
|
<P>The temporary files are usually deleted automatically, but might |
|
|
|
|
remain if a backend crashes during a sort. A stop and restart of the |
|
|
|
|
<I>postmaster</I> will remove files from those directories.</P> |
|
|
|
|
|
|
|
|
|
<H4><A name="3.10">3.10</A>) Why do I need to do a dump and restore |
|
|
|
|
to upgrade between major PostgreSQL releases?</H4> |
|
|
|
|
@ -790,10 +792,10 @@ |
|
|
|
|
data in a generic format that can then be loaded in using the new internal |
|
|
|
|
format.</P> |
|
|
|
|
|
|
|
|
|
<p>In releases where the on-disk format does not change, the |
|
|
|
|
<i>pg_upgrade</i> script can be used to upgrade without a dump/restore. |
|
|
|
|
The release notes mention whether <i>pg_upgrade</i> is available for the |
|
|
|
|
release.</p> |
|
|
|
|
<P>In releases where the on-disk format does not change, the |
|
|
|
|
<I>pg_upgrade</I> script can be used to upgrade without a dump/restore. |
|
|
|
|
The release notes mention whether <I>pg_upgrade</I> is available for the |
|
|
|
|
release.</P> |
|
|
|
|
|
|
|
|
|
<HR> |
|
|
|
|
|
|
|
|
|
@ -831,8 +833,9 @@ |
|
|
|
|
<H4><A name="4.4">4.4</A>) How do you remove a column from a |
|
|
|
|
table?</H4> |
|
|
|
|
|
|
|
|
|
<P>Prior to version 7.3, <SMALL>ALTER TABLE DROP COLUMN</SMALL> is not supported. |
|
|
|
|
You can do this instead:</P> |
|
|
|
|
<P>This functionality was added in release 7.3 with |
|
|
|
|
<SMALL>ALTER TABLE DROP COLUMN</SMALL>. In earlier versions, |
|
|
|
|
you can do this:</P> |
|
|
|
|
<PRE> |
|
|
|
|
BEGIN; |
|
|
|
|
LOCK TABLE old_table; |
|
|
|
|
@ -1023,13 +1026,13 @@ |
|
|
|
|
<PRE> |
|
|
|
|
SELECT * |
|
|
|
|
FROM tab |
|
|
|
|
WHERE LOWER(col) = 'abc'; |
|
|
|
|
WHERE lower(col) = 'abc'; |
|
|
|
|
</PRE> |
|
|
|
|
|
|
|
|
|
This will not use an standard index. However, if you create a |
|
|
|
|
functional index, it will be used: |
|
|
|
|
<PRE> |
|
|
|
|
CREATE INDEX tabindex ON tab (LOWER(col)); |
|
|
|
|
CREATE INDEX tabindex ON tab (lower(col)); |
|
|
|
|
</PRE> |
|
|
|
|
|
|
|
|
|
<H4><A name="4.13">4.13</A>) In a query, how do I detect if a field |
|
|
|
|
@ -1118,7 +1121,7 @@ BYTEA bytea variable-length byte array (null-byte safe) |
|
|
|
|
and your <SMALL>SERIAL</SMALL> column, respectively. |
|
|
|
|
|
|
|
|
|
<P>Alternatively, you could retrieve the assigned |
|
|
|
|
<SMALL>SERIAL</SMALL> value with the <I>currval</I>() function |
|
|
|
|
<SMALL>SERIAL</SMALL> value with the <I>currval()</I> function |
|
|
|
|
<I>after</I> it was inserted by default, e.g.,</P> |
|
|
|
|
<PRE> |
|
|
|
|
execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); |
|
|
|
|
@ -1135,7 +1138,7 @@ BYTEA bytea variable-length byte array (null-byte safe) |
|
|
|
|
<H4><A name="4.15.3">4.15.3</A>) Don't <I>currval()</I> and |
|
|
|
|
<I>nextval()</I> lead to a race condition with other users?</H4> |
|
|
|
|
|
|
|
|
|
<P>No. <i>currval</i>() returns the current value assigned by your |
|
|
|
|
<P>No. <I>currval()</I> returns the current value assigned by your |
|
|
|
|
backend, not by all users.</P> |
|
|
|
|
|
|
|
|
|
<H4><A name="4.15.4">4.15.4</A>) Why aren't my sequence numbers |
|
|
|
|
|