Commit 709392b8 authored by Bruce Momjian's avatar Bruce Momjian

Update FAQ.

parent d811461b
...@@ -252,7 +252,7 @@ ...@@ -252,7 +252,7 @@
Additional mailing lists and information about PostgreSQL can be found Additional mailing lists and information about PostgreSQL can be found
via the PostgreSQL WWW home page at: via the PostgreSQL WWW home page at:
http://postgreSQL.org http://www.postgreSQL.org
There is also an IRC channel on EFNet, channel #PostgreSQL. I use the There is also an IRC channel on EFNet, channel #PostgreSQL. I use the
unix command irc -c '#PostgreSQL' "$USER" irc.phoenix.net. unix command irc -c '#PostgreSQL' "$USER" irc.phoenix.net.
...@@ -453,6 +453,7 @@ ...@@ -453,6 +453,7 @@
3.1) Why does initdb fail? 3.1) Why does initdb fail?
Try these:
* check that you don't have any of the previous version's binaries * check that you don't have any of the previous version's binaries
in your path in your path
* check to see that you have the proper paths set * check to see that you have the proper paths set
...@@ -469,7 +470,7 @@ ...@@ -469,7 +470,7 @@
message. Why? message. Why?
It could be a variety of problems, but first check to see that you It could be a variety of problems, but first check to see that you
have system V extensions installed in your kernel. PostgreSQL requires have System V extensions installed in your kernel. PostgreSQL requires
kernel support for shared memory and semaphores. kernel support for shared memory and semaphores.
3.4) When I try to start the postmaster, I get IpcMemoryCreate errors. Why? 3.4) When I try to start the postmaster, I get IpcMemoryCreate errors. Why?
...@@ -606,7 +607,7 @@ ...@@ -606,7 +607,7 @@
You need to increase the postmaster's limit on how many concurrent You need to increase the postmaster's limit on how many concurrent
backend processes it can start. backend processes it can start.
In Postgres 6.5 and up, the default limit is 32 processes. You can In PostgreSQL 6.5 and up, the default limit is 32 processes. You can
increase it by restarting the postmaster with a suitable -N value. increase it by restarting the postmaster with a suitable -N value.
With the default configuration you can set -N as large as 1024; if you With the default configuration you can set -N as large as 1024; if you
need more, increase MAXBACKENDS in include/config.h and rebuild. You need more, increase MAXBACKENDS in include/config.h and rebuild. You
...@@ -622,12 +623,12 @@ ...@@ -622,12 +623,12 @@
number of semaphores, SEMMNS and SEMMNI, the maximum number of number of semaphores, SEMMNS and SEMMNI, the maximum number of
processes, NPROC, the maximum number of processes per user, MAXUPRC, processes, NPROC, the maximum number of processes per user, MAXUPRC,
and the maximum number of open files, NFILE and NINODE. The reason and the maximum number of open files, NFILE and NINODE. The reason
that Postgres has a limit on the number of allowed backend processes that PostgreSQL has a limit on the number of allowed backend processes
is so that you can ensure that your system won't run out of resources. is so that you can ensure that your system won't run out of resources.
In Postgres versions prior to 6.5, the maximum number of backends was In PostgreSQL versions prior to 6.5, the maximum number of backends
64, and changing it required a rebuild after altering the MaxBackendId was 64, and changing it required a rebuild after altering the
constant in include/storage/sinvaladt.h. MaxBackendId constant in include/storage/sinvaladt.h.
3.13) What are the pg_tempNNN.NN files in my database directory? 3.13) What are the pg_tempNNN.NN files in my database directory?
...@@ -704,7 +705,7 @@ Maximum number of indexes on a table? unlimited ...@@ -704,7 +705,7 @@ Maximum number of indexes on a table? unlimited
4.7)How much database disk space is required to store data from a typical 4.7)How much database disk space is required to store data from a typical
flat file? flat file?
A Postgres database can require about six and a half times the disk A PostgreSQL database can require about six and a half times the disk
space required to store the data in a flat file. space required to store the data in a flat file.
Consider a file of 300,000 lines with two integers on each line. The Consider a file of 300,000 lines with two integers on each line. The
...@@ -772,7 +773,7 @@ Maximum number of indexes on a table? unlimited ...@@ -772,7 +773,7 @@ Maximum number of indexes on a table? unlimited
4.11) What is an R-tree index? 4.11) What is an R-tree index?
An r-tree index is used for indexing spatial data. A hash index can't 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 handle range searches. A B-tree index only handles range searches in a
single dimension. R-tree's can handle multi-dimensional data. For single dimension. R-tree's can handle multi-dimensional data. For
example, if an R-tree index can be built on an attribute of type example, if an R-tree index can be built on an attribute of type
...@@ -839,13 +840,13 @@ BYTEA bytea variable-length array of bytes ...@@ -839,13 +840,13 @@ BYTEA bytea variable-length array of bytes
4.16.1) How do I create a serial/auto-incrementing field? 4.16.1) How do I create a serial/auto-incrementing field?
PostgreSQL supports SERIAL data type. It auto-creates a sequence and PostgreSQL supports SERIAL data type. It auto-creates a sequence and
index on the column. For example, this... index on the column. For example, this:
CREATE TABLE person ( CREATE TABLE person (
id SERIAL, id SERIAL,
name TEXT name TEXT
); );
...is automatically translated into this... is automatically translated into this:
CREATE SEQUENCE person_id_seq; CREATE SEQUENCE person_id_seq;
CREATE TABLE person ( CREATE TABLE person (
id INT4 NOT NULL DEFAULT nextval('person_id_seq'), id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
...@@ -858,7 +859,7 @@ BYTEA bytea variable-length array of bytes ...@@ -858,7 +859,7 @@ BYTEA bytea variable-length array of bytes
However, if you need to dump and reload the database, you need to use 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. pg_dump's -o option or COPY WITH OIDS option to preserve the oids.
For more details, see Bruce Momjian's chapter on Numbering Rows. Numbering Rows.
4.16.2) How do I get the back the generated SERIAL value after an insert? 4.16.2) How do I get the back the generated SERIAL value after an insert?
......
...@@ -324,7 +324,7 @@ Additional mailing lists and information about PostgreSQL can be found ...@@ -324,7 +324,7 @@ Additional mailing lists and information about PostgreSQL can be found
via the PostgreSQL WWW home page at: via the PostgreSQL WWW home page at:
<BLOCKQUOTE> <BLOCKQUOTE>
<A HREF="http://postgreSQL.org">http://postgreSQL.org</A> <A HREF="http://www.postgreSQL.org">http://www.postgreSQL.org</A>
</BLOCKQUOTE><P> </BLOCKQUOTE><P>
There is also an IRC channel on EFNet, channel #PostgreSQL. There is also an IRC channel on EFNet, channel #PostgreSQL.
...@@ -573,6 +573,7 @@ We have: ...@@ -573,6 +573,7 @@ We have:
<H4><A NAME="3.1">3.1</A>) Why does initdb fail?</H4><P> <H4><A NAME="3.1">3.1</A>) Why does initdb fail?</H4><P>
Try these:
<UL> <UL>
<LI> check that you don't have any of the previous version's binaries in <LI> check that you don't have any of the previous version's binaries in
your path your path
...@@ -593,7 +594,7 @@ accordingly, or create a Makefile.custom and define POSTGRESDIR there.<P> ...@@ -593,7 +594,7 @@ accordingly, or create a Makefile.custom and define POSTGRESDIR there.<P>
System Call</I> or core dumped message. Why?</H4><P> System Call</I> or core dumped message. Why?</H4><P>
It could be a variety of problems, but first check to see that you It could be a variety of problems, but first check to see that you
have system V extensions installed in your kernel. PostgreSQL requires have System V extensions installed in your kernel. PostgreSQL requires
kernel support for shared memory and semaphores.<P> kernel support for shared memory and semaphores.<P>
...@@ -750,7 +751,7 @@ to connect. Why?</H4><P> ...@@ -750,7 +751,7 @@ to connect. Why?</H4><P>
You need to increase the postmaster's limit on how many concurrent backend You need to increase the postmaster's limit on how many concurrent backend
processes it can start.<P> processes it can start.<P>
In Postgres 6.5 and up, the default limit is 32 processes. You can In PostgreSQL 6.5 and up, the default limit is 32 processes. You can
increase it by restarting the postmaster with a suitable <I>-N</I> increase it by restarting the postmaster with a suitable <I>-N</I>
value. With the default configuration you can set <I>-N</I> as large as value. With the default configuration you can set <I>-N</I> as large as
1024; if you need more, increase <SMALL>MAXBACKENDS</SMALL> in 1024; if you need more, increase <SMALL>MAXBACKENDS</SMALL> in
...@@ -768,11 +769,11 @@ check include the maximum size of shared memory blocks, ...@@ -768,11 +769,11 @@ check include the maximum size of shared memory blocks,
<SMALL>SEMMNS</SMALL> and <SMALL>SEMMNI,</SMALL> the maximum number of <SMALL>SEMMNS</SMALL> and <SMALL>SEMMNI,</SMALL> the maximum number of
processes, <SMALL>NPROC,</SMALL> the maximum number of processes per processes, <SMALL>NPROC,</SMALL> the maximum number of processes per
user, <SMALL>MAXUPRC,</SMALL> and the maximum number of open files, user, <SMALL>MAXUPRC,</SMALL> and the maximum number of open files,
<SMALL>NFILE</SMALL> and <SMALL>NINODE.</SMALL> The reason that Postgres <SMALL>NFILE</SMALL> and <SMALL>NINODE.</SMALL> The reason that PostgreSQL
has a limit on the number of allowed backend processes is so that you has a limit on the number of allowed backend processes is so that you
can ensure that your system won't run out of resources.<P> can ensure that your system won't run out of resources.<P>
In Postgres versions prior to 6.5, the maximum number of backends was In PostgreSQL versions prior to 6.5, the maximum number of backends was
64, and changing it required a rebuild after altering the MaxBackendId 64, and changing it required a rebuild after altering the MaxBackendId
constant in <I>include/storage/sinvaladt.h.</I><P> constant in <I>include/storage/sinvaladt.h.</I><P>
...@@ -872,7 +873,7 @@ Row length limit will be removed in 7.1.<P> ...@@ -872,7 +873,7 @@ Row length limit will be removed in 7.1.<P>
<H4><A NAME="4.7">4.7</A>)How much database disk space is required to <H4><A NAME="4.7">4.7</A>)How much database disk space is required to
store data from a typical flat file?<BR></H4><P> store data from a typical flat file?<BR></H4><P>
A Postgres database can require about six and a half times the disk space A PostgreSQL database can require about six and a half times the disk space
required to store the data in a flat file.<P> required to store the data in a flat file.<P>
Consider a file of 300,000 lines with two integers on each line. The Consider a file of 300,000 lines with two integers on each line. The
...@@ -948,7 +949,7 @@ See the <SMALL>EXPLAIN</SMALL> manual page.<P> ...@@ -948,7 +949,7 @@ See the <SMALL>EXPLAIN</SMALL> manual page.<P>
<H4><A NAME="4.11">4.11</A>) What is an R-tree index?</H4><P> <H4><A NAME="4.11">4.11</A>) What is an R-tree index?</H4><P>
An r-tree index is used for indexing spatial data. A hash index can't 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 handle range searches. A B-tree index only handles range searches in a
single dimension. R-tree's can handle multi-dimensional data. For single dimension. R-tree's can handle multi-dimensional data. For
example, if an R-tree index can be built on an attribute of type <I>point,</I> example, if an R-tree index can be built on an attribute of type <I>point,</I>
...@@ -1027,14 +1028,14 @@ first column of this type.<P> ...@@ -1027,14 +1028,14 @@ first column of this type.<P>
serial/auto-incrementing field?</H4><P> serial/auto-incrementing field?</H4><P>
PostgreSQL supports <SMALL>SERIAL</SMALL> data type. It auto-creates a PostgreSQL supports <SMALL>SERIAL</SMALL> data type. It auto-creates a
sequence and index on the column. For example, this... sequence and index on the column. For example, this:
<PRE> <PRE>
CREATE TABLE person ( CREATE TABLE person (
id SERIAL, id SERIAL,
name TEXT name TEXT
); );
</PRE> </PRE>
...is automatically translated into this... is automatically translated into this:
<PRE> <PRE>
CREATE SEQUENCE person_id_seq; CREATE SEQUENCE person_id_seq;
CREATE TABLE person ( CREATE TABLE person (
...@@ -1049,7 +1050,6 @@ You can also use each row's <I>oid</I> field as a unique value. However, if ...@@ -1049,7 +1050,6 @@ You can also use each row's <I>oid</I> field as a unique value. However, if
you need to dump and reload the database, you need to use <I>pg_dump's -o</I> you need to dump and reload the database, you need to use <I>pg_dump's -o</I>
option or <SMALL>COPY WITH OIDS</SMALL> option to preserve the oids.<P> option or <SMALL>COPY WITH OIDS</SMALL> option to preserve the oids.<P>
For more details, see Bruce Momjian's chapter on
<A HREF="http://www.postgresql.org/docs/aw_pgsql_book">Numbering Rows.</A> <A HREF="http://www.postgresql.org/docs/aw_pgsql_book">Numbering Rows.</A>
<H4><A NAME="4.16.2">4.16.2</A>) How do I get the back the generated SERIAL value after an insert?</H4><P> <H4><A NAME="4.16.2">4.16.2</A>) How do I get the back the generated SERIAL value after an insert?</H4><P>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment