Improvements to Ian Barwick patch.

This commit is contained in:
Bruce Momjian 2002-10-14 03:15:33 +00:00
parent 0896707ef6
commit daaf999fcb
2 changed files with 49 additions and 46 deletions

36
doc/FAQ
View File

@ -1,7 +1,7 @@
Frequently Asked Questions (FAQ) for PostgreSQL
Last updated: Sun Oct 13 22:49:56 EDT 2002
Last updated: Sun Oct 13 23:15:09 EDT 2002
Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
@ -52,7 +52,7 @@
3.6) How do I tune the database engine for better performance?
3.7) What debugging features are available?
3.8) Why do I get "Sorry, too many clients" when trying to connect?
3.9) What are the pg_sorttempNNN.NN files in my database directory?
3.9) What is in the pgsql_tmp directory?
3.10) Why do I need to do a dump and restore to upgrade PostgreSQL
releases?
@ -197,8 +197,7 @@
distribution or the MS Windows FAQ at
http://www.PostgreSQL.org/docs/faq-mswin.html.
A native port to some Microsoft platforms is currently being worked
upon.
A native port to MS Win NT/2000/XP is currently being worked on.
1.5) Where can I get PostgreSQL?
@ -368,7 +367,7 @@
1.15) How can I financially assist PostgreSQL?
PostgreSQL has had a first-class infrastructure since we started in
1994. This is all thanks to Marc Fournier, who has created and managed
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
@ -419,9 +418,9 @@
2.3) Does PostgreSQL have a graphical user interface? A report generator?
An embedded query language interface?
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 http://www.pgaccess.org/.
We have a nice graphical user interface called PgAccess which can also
be used as a report generator. The Web page is
http://www.pgaccess.org/.
We also include ecpg, which is an embedded SQL query language
interface for C.
@ -433,7 +432,7 @@
* C++ (libpq++)
* Embedded C (ecpg)
* Java (jdbc)
* Perl (DBD::Pg)
* Perl (DBD::Pg and perl5)
* ODBC (odbc)
* Python (PyGreSQL)
* TCL (libpgtcl)
@ -441,7 +440,8 @@
* PHP ('pg_' functions, Pear::DB)
Additional interfaces are available at
http://www.PostgreSQL.org/interfaces.html.
http://www.PostgreSQL.org/interfaces.html and
http://gborg.PostgreSQL.org.
_________________________________________________________________
Administrative Questions
@ -596,16 +596,16 @@
was 64, and changing it required a rebuild after altering the
MaxBackendId constant in include/storage/sinvaladt.h.
3.9) What are the pg_tempNNN.NN files in my database directory?
3.9) What are the pgsql_tmp directory?
They are 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 to hold the extra data.
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.
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?
@ -649,8 +649,8 @@
4.4) How do you remove a column from a table?
Prior to version 7.3, ALTER TABLE DROP COLUMN is not supported. You
can do this instead:
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
@ -815,11 +815,11 @@
Case-insensitive equality comparisons are normally expressed as:
SELECT *
FROM tab
WHERE LOWER(col) = 'abc';
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));
CREATE INDEX tabindex ON tab (lower(col));
4.13) In a query, how do I detect if a field is NULL?

View File

@ -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