mirror of
https://github.com/postgres/postgres.git
synced 2025-07-26 01:22:12 +03:00
Update FAQ's for release.
This commit is contained in:
163
doc/FAQ
163
doc/FAQ
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
Frequently Asked Questions (FAQ) for PostgreSQL
|
Frequently Asked Questions (FAQ) for PostgreSQL
|
||||||
|
|
||||||
Last updated: Sat Oct 24 00:12:23 EDT 1998
|
Last updated: Fri Jun 4 23:30:19 EDT 1999
|
||||||
|
|
||||||
Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
|
Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
|
||||||
|
|
||||||
@ -9,13 +9,10 @@
|
|||||||
postgreSQL Web site, http://postgreSQL.org.
|
postgreSQL Web site, http://postgreSQL.org.
|
||||||
|
|
||||||
Linux-specific questions are answered in
|
Linux-specific questions are answered in
|
||||||
http://postgreSQL.org/docs/faq-linux.shtml.
|
http://postgreSQL.org/docs/faq-linux.html.
|
||||||
|
|
||||||
Irix-specific questions are answered in
|
Irix-specific questions are answered in
|
||||||
http://postgreSQL.org/docs/faq-irix.shtml.
|
http://postgreSQL.org/docs/faq-irix.html.
|
||||||
|
|
||||||
HPUX-specific questions are answered in
|
|
||||||
http://postgreSQL.org/docs/faq-hpux.shtml.
|
|
||||||
_________________________________________________________________
|
_________________________________________________________________
|
||||||
|
|
||||||
General questions
|
General questions
|
||||||
@ -59,8 +56,10 @@
|
|||||||
2.10) All my servers crash under concurrent table access. Why?
|
2.10) All my servers crash under concurrent table access. Why?
|
||||||
2.11) How do I tune the database engine for better performance?
|
2.11) How do I tune the database engine for better performance?
|
||||||
2.12) What debugging features are available in PostgreSQL?
|
2.12) What debugging features are available in PostgreSQL?
|
||||||
2.13) How do I enable more than 64 concurrent backends?
|
2.13) When I try to start the postmaster, I get IpcSemaphoreCreate
|
||||||
2.14) What non-unix ports are available?
|
errors. Why?
|
||||||
|
2.14) I get 'Sorry, too many clients' when trying to connect. Why?
|
||||||
|
2.15) What non-unix ports are available?
|
||||||
|
|
||||||
Operational questions
|
Operational questions
|
||||||
|
|
||||||
@ -70,9 +69,8 @@
|
|||||||
3.4) What is the exact difference between binary cursors and normal
|
3.4) What is the exact difference between binary cursors and normal
|
||||||
cursors?
|
cursors?
|
||||||
3.5) What is an R-tree index and what is it used for?
|
3.5) What is an R-tree index and what is it used for?
|
||||||
3.6) What is the maximum size for a tuple?
|
3.6) What is the maximum size for a row, table, database?
|
||||||
3.7) I defined indices but my queries don't seem to make use of them.
|
3.7) My queries are slow or don't make use of the indexes. Why?
|
||||||
Why?
|
|
||||||
3.8) How do I do regular expression searches? case-insensitive regexp
|
3.8) How do I do regular expression searches? case-insensitive regexp
|
||||||
searching?
|
searching?
|
||||||
3.9) I experienced a server crash during a vacuum. How do I remove the
|
3.9) I experienced a server crash during a vacuum. How do I remove the
|
||||||
@ -240,11 +238,11 @@ Section 1: General Questions
|
|||||||
http://postgreSQL.org
|
http://postgreSQL.org
|
||||||
|
|
||||||
There also an IRC channel on EFNet, channel #PostgreSQL. I use the
|
There also an IRC channel on EFNet, channel #PostgreSQL. I use the
|
||||||
unix command irc -c '#PostgreSQL' "$USER" irc.ais.net
|
unix command irc -c '#PostgreSQL' "$USER" irc.phoenix.net
|
||||||
|
|
||||||
1.6) Latest release of PostgreSQL
|
1.6) Latest release of PostgreSQL
|
||||||
|
|
||||||
The latest release of PostgreSQL is version 6.4.
|
The latest release of PostgreSQL is version 6.5.
|
||||||
|
|
||||||
We plan to have major releases every four months.
|
We plan to have major releases every four months.
|
||||||
|
|
||||||
@ -274,13 +272,12 @@ Section 1: General Questions
|
|||||||
1.10) Does PostgreSQL work with databases from earlier versions of
|
1.10) Does PostgreSQL work with databases from earlier versions of
|
||||||
PostgreSQL?
|
PostgreSQL?
|
||||||
|
|
||||||
Upgrading to 6.4 from release 6.3.* can be accomplished using the new
|
Upgrading to 6.5 can not use the pg_upgrade utility. Those upgrading
|
||||||
pg_upgrade utility. Those upgrading from earlier releases require a
|
from earlier releases require a dump and restore.
|
||||||
dump and restore.
|
|
||||||
|
|
||||||
Those ugrading from versions earlier than 1.09 must upgrade to 1.09
|
Those upgrading from versions earlier than 1.09 must upgrade to 1.09
|
||||||
first without a dump/reload, then dump the data from 1.09, and then
|
first without a dump/reload, then dump the data from 1.09, and then
|
||||||
load it into 6.4.
|
load it into 6.5.
|
||||||
|
|
||||||
1.11) Are there ODBC drivers for PostgreSQL?
|
1.11) Are there ODBC drivers for PostgreSQL?
|
||||||
|
|
||||||
@ -309,14 +306,14 @@ Section 1: General Questions
|
|||||||
PHP is great for simple stuff, but for more complex stuff, some still
|
PHP is great for simple stuff, but for more complex stuff, some still
|
||||||
use the perl interface and CGI.pm.
|
use the perl interface and CGI.pm.
|
||||||
|
|
||||||
An WWW gatway based on WDB using perl can be downloaded from
|
An WWW gateway based on WDB using perl can be downloaded from
|
||||||
http://www.eol.ists.ca/~dunlop/wdb-p95
|
http://www.eol.ists.ca/~dunlop/wdb-p95
|
||||||
|
|
||||||
1.13) Does PostgreSQL have a graphical user interface? A report generator? A
|
1.13) Does PostgreSQL have a graphical user interface? A report generator? A
|
||||||
embedded query language interface?
|
embedded query language interface?
|
||||||
|
|
||||||
We have a nice graphical user interface called pgaccess, which is
|
We have a nice graphical user interface called pgaccess, which is
|
||||||
shipped as part of the distribtion. Pgaccess also has a report
|
shipped as part of the distribution. Pgaccess also has a report
|
||||||
generator.
|
generator.
|
||||||
|
|
||||||
The web page is http://www.flex.ro/pgaccess We also include ecpg,
|
The web page is http://www.flex.ro/pgaccess We also include ecpg,
|
||||||
@ -365,8 +362,9 @@ Section 2: Installation Questions
|
|||||||
formats.
|
formats.
|
||||||
|
|
||||||
Check your locale configuration. PostgreSQL uses the locale settings
|
Check your locale configuration. PostgreSQL uses the locale settings
|
||||||
of the user that ran the postmaster process. Set those accordingly for
|
of the user that ran the postmaster process. There are postgres and
|
||||||
your operating environment.
|
psql SET commands to control the date format. Set those accordingly
|
||||||
|
for your operating environment.
|
||||||
|
|
||||||
2.4) How do I install PostgreSQL somewhere other than /usr/local/pgsql?
|
2.4) How do I install PostgreSQL somewhere other than /usr/local/pgsql?
|
||||||
|
|
||||||
@ -384,8 +382,9 @@ Section 2: Installation Questions
|
|||||||
You either do not have shared memory configured properly in kernel or
|
You either do not have shared memory configured properly in kernel or
|
||||||
you need to enlarge the shared memory available in the kernel. The
|
you need to enlarge the shared memory available in the kernel. The
|
||||||
exact amount you need depends on your architecture and how many
|
exact amount you need depends on your architecture and how many
|
||||||
buffers you configure postmaster to run with. For most systems, with
|
buffers and backend processes you configure postmaster to run with.
|
||||||
default buffer sizes, you need a minimum of ~760K.
|
For most systems, with default numbers of buffers and processes, you
|
||||||
|
need a minimum of ~1MB.
|
||||||
|
|
||||||
2.7) I have changed a source file, but a recompile does not see the change?
|
2.7) I have changed a source file, but a recompile does not see the change?
|
||||||
|
|
||||||
@ -420,7 +419,7 @@ Section 2: Installation Questions
|
|||||||
If you are doing a lot of inserts, consider doing them in a large
|
If you are doing a lot of inserts, consider doing them in a large
|
||||||
batch using the copy command. This is much faster than single
|
batch using the copy command. This is much faster than single
|
||||||
individual inserts. Second, statements not in a begin work/commit
|
individual inserts. Second, statements not in a begin work/commit
|
||||||
transaction block are considered to be their in their own transaction.
|
transaction block are considered to be in their own transaction.
|
||||||
Consider performing several statements in a single transaction block.
|
Consider performing several statements in a single transaction block.
|
||||||
This reduces the transaction overhead. Also consider dropping and
|
This reduces the transaction overhead. Also consider dropping and
|
||||||
recreating indices when making large data changes.
|
recreating indices when making large data changes.
|
||||||
@ -436,7 +435,7 @@ Section 2: Installation Questions
|
|||||||
|
|
||||||
You can also use the postgres -S option to increase the maximum amount
|
You can also use the postgres -S option to increase the maximum amount
|
||||||
of memory used by each backend process for temporary sorts. Each
|
of memory used by each backend process for temporary sorts. Each
|
||||||
buffer is 1K and the defualt is 512 buffers.
|
buffer is 1K and the default is 512 buffers.
|
||||||
|
|
||||||
You can also use the cluster command to group data in base tables to
|
You can also use the cluster command to group data in base tables to
|
||||||
match an index. See the cluster(l) manual page for more details.
|
match an index. See the cluster(l) manual page for more details.
|
||||||
@ -474,7 +473,7 @@ Section 2: Installation Questions
|
|||||||
operating system can attach to a running backend directly to diagnose
|
operating system can attach to a running backend directly to diagnose
|
||||||
problems.
|
problems.
|
||||||
|
|
||||||
The postgres program has a -s, -A, -t options that can be very usefull
|
The postgres program has a -s, -A, -t options that can be very useful
|
||||||
for debugging and performance measurements.
|
for debugging and performance measurements.
|
||||||
|
|
||||||
You can also compile with profiling to see what functions are taking
|
You can also compile with profiling to see what functions are taking
|
||||||
@ -482,25 +481,64 @@ Section 2: Installation Questions
|
|||||||
pgsql/data/base/dbname directory. The client profile file will be put
|
pgsql/data/base/dbname directory. The client profile file will be put
|
||||||
in the current directory.
|
in the current directory.
|
||||||
|
|
||||||
2.13) How do I enable more than 64 concurrent backends?
|
2.13) When I try to start the postmaster, I get IpcSemaphoreCreate errors.
|
||||||
|
Why?
|
||||||
|
|
||||||
Edit include/storage/sinvaladt.h, and change the value of
|
If the error message is IpcSemaphoreCreate: semget failed (No space
|
||||||
MaxBackendId. In the future, we plan to make this a configurable
|
left on device) then your kernel is not configured with enough
|
||||||
prameter.
|
semaphores. Postgres needs one semaphore per potential backend
|
||||||
|
process. A temporary solution is to start the 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.
|
||||||
|
|
||||||
2.14) What non-unix ports are available?
|
If the error message is something else, you might not have semaphore
|
||||||
|
support configured in your kernel at all.
|
||||||
|
|
||||||
|
2.14) I get 'Sorry, too many clients' when trying to connect. Why?
|
||||||
|
|
||||||
|
You need to increase the postmaster's limit on how many concurrent
|
||||||
|
backend processes it can start.
|
||||||
|
|
||||||
|
In Postgres 6.5, the default limit is 32 processes. You can 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 need
|
||||||
|
more, increase MAXBACKENDS in include/config.h and rebuild. You can
|
||||||
|
set the default value of -N at configuration time, if you like, using
|
||||||
|
configure's --with-maxbackends switch.
|
||||||
|
|
||||||
|
Note that if you make -N larger than 32, you should consider
|
||||||
|
increasing -B beyond its default of 64. 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
|
||||||
|
Postgres 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.
|
||||||
|
|
||||||
|
In Postgres versions prior to 6.5, the maximum number of backends was
|
||||||
|
64, and changing it required a rebuild after altering the MaxBackendId
|
||||||
|
constant in include/storage/sinvaladt.h.
|
||||||
|
|
||||||
|
2.15) What non-unix ports are available?
|
||||||
|
|
||||||
It is possible to compile the libpq C library, psql, and other
|
It is possible to compile the libpq C library, psql, and other
|
||||||
interfaces and binaries to run on MS Windows platforms. In this case,
|
interfaces and binaries to run on MS Windows platforms. In this case,
|
||||||
the client is running on MS Windows, and communicates via TCP/IP to a
|
the client is running on MS Windows, and communicates via TCP/IP to a
|
||||||
server running on one of our supported Unix platforms.
|
server running on one of our supported Unix platforms.
|
||||||
|
|
||||||
A file win32.mak is included in the distributiion for making a Win32
|
A file win32.mak is included in the distribution for making a Win32
|
||||||
libpq library and psql.
|
libpq library and psql.
|
||||||
|
|
||||||
Someone is attempting to port our PostgreSQL database server to
|
The database server is now working on Windows NT using the Cygnus
|
||||||
Windows NT using the Cygnus Unix/NT porting library. He has gotten it
|
Unix/NT porting library. The only feature missing is dynamic loading
|
||||||
compiled, but initdb is currently failing.
|
of user-defined functions/types. See
|
||||||
|
http://www.askesis.nl/AskesisPostgresIndex.html for more information.
|
||||||
|
|
||||||
|
There is another port using U/Win at
|
||||||
|
http://surya.wipro.com/uwin/ported.html.
|
||||||
_________________________________________________________________
|
_________________________________________________________________
|
||||||
|
|
||||||
Section 3: PostgreSQL Features
|
Section 3: PostgreSQL Features
|
||||||
@ -562,32 +600,42 @@ Section 3: PostgreSQL Features
|
|||||||
extending R-trees require a bit of work and we don't currently have
|
extending R-trees require a bit of work and we don't currently have
|
||||||
any documentation on how to do it.
|
any documentation on how to do it.
|
||||||
|
|
||||||
3.6) What is the maximum size for a tuple?
|
3.6) What is the maximum size for a row, table, database?
|
||||||
|
|
||||||
Tuples are limited to 8K bytes. Taking into account system attributes
|
Rows are limited to 8K bytes. Taking into account system attributes
|
||||||
and other overhead, one should stay well shy of 8,000 bytes to be on
|
and other overhead, one should stay well shy of 8,000 bytes to be on
|
||||||
the safe side. To use attributes larger than 8K, try using the large
|
the safe side. To use attributes larger than 8K, try using the large
|
||||||
objects interface.
|
objects interface.
|
||||||
|
|
||||||
Tuples do not cross 8k boundaries so a 5k tuple will require 8k of
|
Rows do not cross 8k boundaries so a 5k row will require 8k of
|
||||||
storage.
|
storage.
|
||||||
|
|
||||||
3.7) I defined indices but my queries don't seem to make use of them. Why?
|
Table and database sizes are unlimited. There are many databases that
|
||||||
|
are tens of gigabytes, and probably some that are hundreds of
|
||||||
|
gigabytes.
|
||||||
|
|
||||||
|
3.7) My queries are slow or don't make use of the indexes. Why?
|
||||||
|
|
||||||
PostgreSQL does not automatically maintain statistics. One has to make
|
PostgreSQL does not automatically maintain statistics. One has to make
|
||||||
an explicit vacuum call to update the statistics. After statistics are
|
an explicit vacuum call to update the statistics. After statistics are
|
||||||
updated, the optimizer knows how many rows in the table, and can
|
updated, the optimizer knows how many rows in the table, and can
|
||||||
better decide if it should use indices. Note that the optimizer does
|
better decide if it should use indices. Note that the optimizer does
|
||||||
not use indices in cases when the table is small because a sequentail
|
not use indices in cases when the table is small because a sequential
|
||||||
scan would be faster. For column-specific optimization statistics, use
|
scan would be faster.
|
||||||
vacuum analyze.
|
|
||||||
|
For column-specific optimization statistics, use vacuum analyze.
|
||||||
|
Vacuum analyze is important for complex multi-join queries, so the
|
||||||
|
optimizer can estimate the number of rows returned from each table,
|
||||||
|
and choose the proper join order. The backend does not keep track of
|
||||||
|
column statistics on its own, and vacuum analyze must be run to
|
||||||
|
collect them periodically.
|
||||||
|
|
||||||
Indexes are not used for order by operations.
|
Indexes are not used for order by operations.
|
||||||
|
|
||||||
When using wildcard operators like LIKE or ~, indices can only be used
|
When using wild-card operators like LIKE or ~, indices can only be
|
||||||
if the beginning of the search is anchored to the start of the string.
|
used if the beginning of the search is anchored to the start of the
|
||||||
So, to use indices, LIKE searches can should not begin with %, and
|
string. So, to use indices, LIKE searches can should not begin with %,
|
||||||
~(regular expression searches) should start with ^.
|
and ~(regular expression searches) should start with ^.
|
||||||
|
|
||||||
3.8) How do I do regular expression searches? case-insensitive regexp
|
3.8) How do I do regular expression searches? case-insensitive regexp
|
||||||
searching?
|
searching?
|
||||||
@ -606,7 +654,7 @@ Type Internal Name Notes
|
|||||||
CHAR char 1 character
|
CHAR char 1 character
|
||||||
CHAR(#) bpchar blank padded to the specified fixed length
|
CHAR(#) bpchar blank padded to the specified fixed length
|
||||||
VARCHAR(#) varchar size specifies maximum length, no padding
|
VARCHAR(#) varchar size specifies maximum length, no padding
|
||||||
TEXT text length limited only by maximum tuple length
|
TEXT text length limited only by maximum row length
|
||||||
BYTEA bytea variable-length array of bytes
|
BYTEA bytea variable-length array of bytes
|
||||||
|
|
||||||
You need to use the internal name when doing internal operations.
|
You need to use the internal name when doing internal operations.
|
||||||
@ -681,12 +729,15 @@ BYTEA bytea variable-length array of bytes
|
|||||||
all databases. If you want to change the oid to something else, or if
|
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 oid's, there
|
you want to make a copy of the table, with the original oid's, there
|
||||||
is no reason you can't do it:
|
is no reason you can't do it:
|
||||||
CREATE TABLE new_table (mycol int);
|
CREATE TABLE new_table(old_oid oid, mycol int);
|
||||||
INSERT INTO new_table SELECT oid, mycol FROM old_table;
|
SELECT INTO new SELECT old_oid, mycol FROM old;
|
||||||
|
COPY new TO '/tmp/pgtable';
|
||||||
|
DELETE FROM new;
|
||||||
|
COPY new WITH OIDS FROM '/tmp/pgtable';
|
||||||
|
|
||||||
Tids are used to indentify specific physical rows with block and
|
Tids are used to identify specific physical rows with block and offset
|
||||||
offset values. Tids change after rows are modified or reloaded. They
|
values. Tids change after rows are modified or reloaded. They are used
|
||||||
are used by index entries to point to physical rows.
|
by index entries to point to physical rows.
|
||||||
|
|
||||||
3.18) What is the meaning of some of the terms used in PostgreSQL?
|
3.18) What is the meaning of some of the terms used in PostgreSQL?
|
||||||
|
|
||||||
@ -797,10 +848,8 @@ Section 4: Extending PostgreSQL
|
|||||||
4.2) I get messages of the type NOTICE:PortalHeapMemoryFree: 0x402251d0 not
|
4.2) I get messages of the type NOTICE:PortalHeapMemoryFree: 0x402251d0 not
|
||||||
in alloc set!
|
in alloc set!
|
||||||
|
|
||||||
You are pfree'ing something that was not palloc'ed. When writing
|
You are pfree'ing something that was not palloc'ed. Beware of mixing
|
||||||
user-defined functions, do not include the file "libpq-fe.h". Doing so
|
malloc/free and palloc/pfree.
|
||||||
will cause your palloc to be a malloc instead of a free. Then, when
|
|
||||||
the backend pfrees the storage, you get the notice message.
|
|
||||||
|
|
||||||
4.3) I've written some nifty new types and functions for PostgreSQL.
|
4.3) I've written some nifty new types and functions for PostgreSQL.
|
||||||
|
|
||||||
|
76
doc/FAQ_DEV
76
doc/FAQ_DEV
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
Developer's Frequently Asked Questions (FAQ) for PostgreSQL
|
Developer's Frequently Asked Questions (FAQ) for PostgreSQL
|
||||||
|
|
||||||
Last updated: Fri Oct 2 15:21:32 EDT 1998
|
Last updated: Mon Feb 22 17:15:06 EST 1999
|
||||||
|
|
||||||
Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
|
Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ s
|
|||||||
|
|
||||||
Third, you need to get mkid from ftp.postgresql.org. By running
|
Third, you need to get mkid from ftp.postgresql.org. By running
|
||||||
tools/make_mkid, an archive of source symbols can be created that can
|
tools/make_mkid, an archive of source symbols can be created that can
|
||||||
be rapidly queried like grep or edited.
|
be rapidly queried like grep or edited. Others prefer glimpse.
|
||||||
|
|
||||||
make_diff has tools to create patch diff files that can be applied to
|
make_diff has tools to create patch diff files that can be applied to
|
||||||
the distribution.
|
the distribution.
|
||||||
@ -105,22 +105,72 @@ s
|
|||||||
|
|
||||||
We do this because this allows a consistent way to pass data inside
|
We do this because this allows a consistent way to pass data inside
|
||||||
the backend in a flexible way. Every node has a NodeTag which
|
the backend in a flexible way. Every node has a NodeTag which
|
||||||
specifies what type of data is inside the Node. Lists are lists of
|
specifies what type of data is inside the Node. Lists are groups of
|
||||||
Nodes. lfirst(), lnext(), and foreach() are used to get, skip, and
|
Nodes chained together as a forward-linked list.
|
||||||
traverse through Lists.
|
|
||||||
|
|
||||||
|
Here are some of the List manipulation commands:
|
||||||
|
|
||||||
|
lfirst(i)
|
||||||
|
return the data at list element i.
|
||||||
|
|
||||||
|
lnext(i)
|
||||||
|
return the next list element after i.
|
||||||
|
|
||||||
|
foreach(i, list)
|
||||||
|
loop through list, assigning each list element to i. It is
|
||||||
|
important to note that i is a List *, not the data in the List
|
||||||
|
element. You need to use lfirst(i) to get at the data. Here is
|
||||||
|
a typical code snipped that loops through a List containing Var
|
||||||
|
*'s and processes each one:
|
||||||
|
|
||||||
|
|
||||||
|
List *i, *list;
|
||||||
|
|
||||||
|
foreach(i, list)
|
||||||
|
{
|
||||||
|
Var *var = lfirst(i);
|
||||||
|
|
||||||
|
/* process var here */
|
||||||
|
}
|
||||||
|
|
||||||
|
lcons(node, list)
|
||||||
|
add node to the front of list, or create a new list with node
|
||||||
|
if list is NIL.
|
||||||
|
|
||||||
|
lappend(list, node)
|
||||||
|
add node to the end of list. This is more expensive that lcons.
|
||||||
|
|
||||||
|
nconc(list1, list2)
|
||||||
|
Concat list2 on to the end of list1.
|
||||||
|
|
||||||
|
length(list)
|
||||||
|
return the length of the list.
|
||||||
|
|
||||||
|
nth(i, list)
|
||||||
|
return the i'th element in list.
|
||||||
|
|
||||||
|
lconsi, ...
|
||||||
|
There are integer versions of these: lconsi, lappendi, nthi.
|
||||||
|
List's containing integers instead of Node pointers are used to
|
||||||
|
hold list of relation object id's and other integer quantities.
|
||||||
|
|
||||||
You can print nodes easily inside gdb. First, to disable output
|
You can print nodes easily inside gdb. First, to disable output
|
||||||
truncation:
|
truncation when you use the gdb print command:
|
||||||
|
|
||||||
(gdb) set print elements 0
|
(gdb) set print elements 0
|
||||||
|
|
||||||
You may then use either of the next two commands to print out List,
|
Instead of printing values in gdb format, you can use the next two
|
||||||
Node, and structure contents. The first prints in a short format, and
|
commands to print out List, Node, and structure contents in a verbose
|
||||||
the second in a long format:
|
format that is easier to understand. List's are unrolled into nodes,
|
||||||
|
and nodes are printed in detail. The first prints in a short format,
|
||||||
|
and the second in a long format:
|
||||||
|
|
||||||
(gdb) call print(any_pointer)
|
(gdb) call print(any_pointer)
|
||||||
(gdb) call pprint(any_pointer)
|
(gdb) call pprint(any_pointer)
|
||||||
|
|
||||||
|
The output appears in the postmaster log file, or on your screen if
|
||||||
|
you are running a backend directly without a postmaster.
|
||||||
|
|
||||||
5) How do I add a feature or fix a bug?
|
5) How do I add a feature or fix a bug?
|
||||||
|
|
||||||
The source code is over 250,000 lines. Many problems/features are
|
The source code is over 250,000 lines. Many problems/features are
|
||||||
@ -197,7 +247,7 @@ s
|
|||||||
} NameData;
|
} NameData;
|
||||||
typedef NameData *Name;
|
typedef NameData *Name;
|
||||||
|
|
||||||
Table, column, type, function, and view names that come in to the
|
Table, column, type, function, and view names that come into the
|
||||||
backend via user queries are stored as variable-length,
|
backend via user queries are stored as variable-length,
|
||||||
null-terminated character strings.
|
null-terminated character strings.
|
||||||
|
|
||||||
@ -244,12 +294,12 @@ s
|
|||||||
While scans automatically lock/unlock rows from the buffer cache, with
|
While scans automatically lock/unlock rows from the buffer cache, with
|
||||||
heap_fetch(), you must pass a Buffer pointer, and ReleaseBuffer() it
|
heap_fetch(), you must pass a Buffer pointer, and ReleaseBuffer() it
|
||||||
when completed. Once you have the row, you can get data that is common
|
when completed. Once you have the row, you can get data that is common
|
||||||
to all tuples, like t_ctid and t_oid, by mererly accessing the
|
to all tuples, like t_self and t_oid, by mererly accessing the
|
||||||
HeapTuple structure entries. If you need a table-specific column, you
|
HeapTuple structure entries. If you need a table-specific column, you
|
||||||
should take the HeapTuple pointer, and use the GETSTRUCT() macro to
|
should take the HeapTuple pointer, and use the GETSTRUCT() macro to
|
||||||
access the table-specific start of the tuple. You then cast the
|
access the table-specific start of the tuple. You then cast the
|
||||||
pointer as a Form_pg_proc pointer if you are accessing the pg_proc
|
pointer as a Form_pg_proc pointer if you are accessing the pg_proc
|
||||||
table, or TypeTupleForm if you are accessing pg_type. You can then
|
table, or Form_pg_type if you are accessing pg_type. You can then
|
||||||
access the columns by using a structure pointer:
|
access the columns by using a structure pointer:
|
||||||
|
|
||||||
((Form_pg_class) GETSTRUCT(tuple))->relnatts
|
((Form_pg_class) GETSTRUCT(tuple))->relnatts
|
||||||
@ -258,7 +308,7 @@ s
|
|||||||
is to use heap_tuplemodify() and pass it your palloc'ed tuple, and the
|
is to use heap_tuplemodify() and pass it your palloc'ed tuple, and the
|
||||||
values you want changed. It returns another palloc'ed tuple, which you
|
values you want changed. It returns another palloc'ed tuple, which you
|
||||||
pass to heap_replace(). You can delete tuples by passing the tuple's
|
pass to heap_replace(). You can delete tuples by passing the tuple's
|
||||||
t_ctid to heap_destroy(). Remember, tuples can be either system cache
|
t_self to heap_destroy(). Remember, tuples can be either system cache
|
||||||
versions, which may go away soon after you get them, buffer cache
|
versions, which may go away soon after you get them, buffer cache
|
||||||
version, which will go away when you heap_getnext(), heap_endscan, or
|
version, which will go away when you heap_getnext(), heap_endscan, or
|
||||||
ReleaseBuffer(), in the heap_fetch() case. Or it may be a palloc'ed
|
ReleaseBuffer(), in the heap_fetch() case. Or it may be a palloc'ed
|
||||||
|
63
doc/FAQ_HPUX
63
doc/FAQ_HPUX
@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
=======================================================
|
=======================================================
|
||||||
Frequently Asked Questions (FAQ) for PostgreSQL V6.4
|
Frequently Asked Questions (FAQ) for PostgreSQL V6.4
|
||||||
HP-UX Specific
|
HP-UX Specific
|
||||||
@ -10,19 +11,19 @@ original author: Tom Lane (tgl@sss.pgh.pa.us)
|
|||||||
|
|
||||||
|
|
||||||
Questions covered here:
|
Questions covered here:
|
||||||
1.1) What do I need to install PostgreSQL on HP-UX?
|
1.1) What do I need to install PostgreSQL on HP-UX?
|
||||||
1.2) Anything special about the build/install procedure?
|
1.2) Anything special about the build/install procedure?
|
||||||
1.3) yacc dies trying to process src/backend/parser/gram.y.
|
1.3) yacc dies trying to process src/backend/parser/gram.y.
|
||||||
1.4) Linking the main postgres executable fails, complaining that
|
1.4) Linking the main postgres executable fails, complaining that
|
||||||
there's no "alloca" function.
|
there's no "alloca" function.
|
||||||
1.5) OK, it seemed to build and install, but the regression test fails.
|
1.5) OK, it seemed to build and install, but the regression test fails.
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
Section 1: Installing PostgreSQL
|
Section 1: Installing PostgreSQL
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
1.1) What do I need to install PostgreSQL on HP-UX?
|
1.1) What do I need to install PostgreSQL on HP-UX?
|
||||||
|
|
||||||
PostgreSQL 6.4 is known to build and pass regression test on HPUX 9.03,
|
PostgreSQL 6.4 is known to build and pass regression test on HPUX 9.03,
|
||||||
9.05, and 10.20, given appropriate system patch levels and build tools.
|
9.05, and 10.20, given appropriate system patch levels and build tools.
|
||||||
@ -53,14 +54,14 @@ install on HPUX, so I recommend you not bother with anything older
|
|||||||
than 6.4.
|
than 6.4.
|
||||||
|
|
||||||
|
|
||||||
1.2) Anything special about the build/install procedure?
|
1.2) Anything special about the build/install procedure?
|
||||||
|
|
||||||
When you run configure, you will want to explicitly select either the
|
When you run configure, you will want to explicitly select either the
|
||||||
hpux_cc or hpux_gcc template depending on which compiler you plan to
|
hpux_cc or hpux_gcc template depending on which compiler you plan to
|
||||||
use:
|
use:
|
||||||
./configure --with-template=hpux_cc
|
./configure --with-template=hpux_cc
|
||||||
for HP's C compiler, or
|
for HP's C compiler, or
|
||||||
./configure --with-template=hpux_gcc
|
./configure --with-template=hpux_gcc
|
||||||
for GNU gcc. (If you omit --with-template, configure may either
|
for GNU gcc. (If you omit --with-template, configure may either
|
||||||
default to hpux_cc or give up entirely, depending on which HPUX and
|
default to hpux_cc or give up entirely, depending on which HPUX and
|
||||||
PostgreSQL releases you have.)
|
PostgreSQL releases you have.)
|
||||||
@ -86,7 +87,7 @@ Otherwise the standard build/install procedure described in the
|
|||||||
PostgreSQL documentation works fine.
|
PostgreSQL documentation works fine.
|
||||||
|
|
||||||
|
|
||||||
1.3) yacc dies trying to process src/backend/parser/gram.y.
|
1.3) yacc dies trying to process src/backend/parser/gram.y.
|
||||||
|
|
||||||
HP's yacc doesn't create its tables large enough to handle the Postgres
|
HP's yacc doesn't create its tables large enough to handle the Postgres
|
||||||
grammar (a lot of other vendors' yaccs have this problem too). There
|
grammar (a lot of other vendors' yaccs have this problem too). There
|
||||||
@ -106,15 +107,15 @@ are using HP's cc on HPUX 9 --- see next item.
|
|||||||
3. Increase yacc's table sizes enough to cope. With a pre-6.4
|
3. Increase yacc's table sizes enough to cope. With a pre-6.4
|
||||||
PostgreSQL grammar, I was able to get HPUX 9's yacc to work by
|
PostgreSQL grammar, I was able to get HPUX 9's yacc to work by
|
||||||
setting YFLAGS to
|
setting YFLAGS to
|
||||||
-d -Np2000 -Ns3000 -Nm100000 -Nl2000 -Na30000 -Nc10000
|
-d -Np2000 -Ns3000 -Nm100000 -Nl2000 -Na30000 -Nc10000
|
||||||
(You can edit YFLAGS either in the template file before running
|
(You can edit YFLAGS either in the template file before running
|
||||||
configure, or in src/Makefile.global afterwards.) Future PostgreSQL
|
configure, or in src/Makefile.global afterwards.) Future PostgreSQL
|
||||||
releases might require even larger tables, but this should do for
|
releases might require even larger tables, but this should do for
|
||||||
a starting point.
|
a starting point.
|
||||||
|
|
||||||
|
|
||||||
1.4) Linking the main postgres executable fails, complaining that
|
1.4) Linking the main postgres executable fails, complaining that
|
||||||
there's no "alloca" function.
|
there's no "alloca" function.
|
||||||
|
|
||||||
If you're using HP's cc on HPUX 9, it's right: there's no alloca
|
If you're using HP's cc on HPUX 9, it's right: there's no alloca
|
||||||
function. The only place in PostgreSQL that uses alloca is the parser
|
function. The only place in PostgreSQL that uses alloca is the parser
|
||||||
@ -131,7 +132,7 @@ There are several possible answers:
|
|||||||
before Y2K anyway...
|
before Y2K anyway...
|
||||||
|
|
||||||
|
|
||||||
1.5) OK, it seemed to build and install, but the regression test fails.
|
1.5) OK, it seemed to build and install, but the regression test fails.
|
||||||
|
|
||||||
There are several "expected failures" due to differences between HPUX
|
There are several "expected failures" due to differences between HPUX
|
||||||
and the regression test reference platform used by the PostgreSQL group.
|
and the regression test reference platform used by the PostgreSQL group.
|
||||||
@ -139,26 +140,26 @@ A look at the textual differences between the expected and actual
|
|||||||
outputs will usually reveal that the differences are minor. You should
|
outputs will usually reveal that the differences are minor. You should
|
||||||
expect these differences:
|
expect these differences:
|
||||||
|
|
||||||
TEST(S) COMMENTS
|
TEST(S) COMMENTS
|
||||||
|
|
||||||
int2, int4: pg_atoi generates a differently worded error
|
int2, int4: pg_atoi generates a differently worded error
|
||||||
message for integer overflow.
|
message for integer overflow.
|
||||||
|
|
||||||
float8: In 6.4, float8 shows some differences due to
|
float8: In 6.4, float8 shows some differences due to
|
||||||
different handling of overflow/underflow errors in
|
different handling of overflow/underflow errors in
|
||||||
exp() and pow(). This should be fixed in 6.4.1
|
exp() and pow(). This should be fixed in 6.4.1
|
||||||
and later.
|
and later.
|
||||||
|
|
||||||
float8, geometry: Lots of differences in the last digit or two
|
float8, geometry: Lots of differences in the last digit or two
|
||||||
because of different roundoff errors in floating
|
because of different roundoff errors in floating
|
||||||
arithmetic. Also, HPUX does not distinguish
|
arithmetic. Also, HPUX does not distinguish
|
||||||
-0 from 0 during printout, but the reference
|
-0 from 0 during printout, but the reference
|
||||||
platform does.
|
platform does.
|
||||||
|
|
||||||
horology: HPUX time library does not know about daylight
|
horology: HPUX time library does not know about daylight
|
||||||
savings time before 1970, so there are some
|
savings time before 1970, so there are some
|
||||||
places in horology where a time will be shown
|
places in horology where a time will be shown
|
||||||
in PST instead of PDT.
|
in PST instead of PDT.
|
||||||
|
|
||||||
In addition, the int8 regression test will fail massively on HPUX 9,
|
In addition, the int8 regression test will fail massively on HPUX 9,
|
||||||
because int8 doesn't actually work on this platform (sprintf/sscanf
|
because int8 doesn't actually work on this platform (sprintf/sscanf
|
||||||
|
529
doc/FAQ_Irix
529
doc/FAQ_Irix
@ -1,490 +1,41 @@
|
|||||||
======================================================
|
|
||||||
Frequently Asked Questions (FAQ) for PostgreSQL >=V6.1
|
|
||||||
IRIX Specific
|
|
||||||
TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
|
|
||||||
======================================================
|
|
||||||
last updated: Mon Mar 05 17:00:00 GMT 1998
|
|
||||||
|
|
||||||
current maintainer: Andrew C.R. Martin (martin@biochem.ucl.ac.uk)
|
Documentation and FAQs
|
||||||
original author: Andrew C.R. Martin (martin@biochem.ucl.ac.uk)
|
_________________________________________________________________
|
||||||
|
|
||||||
|
User
|
||||||
Changes in this version (* = modified, + = new, - = removed):
|
|
||||||
*1.5) Can I install PostgreSQL (<V6.3) under Irix 6.x?
|
* Tutorial - for those not familiar with PostgreSQL
|
||||||
+1.10) How do I install PostgreSQL V6.3 under Irix 6.x?
|
* User's Guide - general user information (download)
|
||||||
|
* Administrator's Guide - help in installing and managing PostgreSQL
|
||||||
This file is divided approximately as follows:
|
(download)
|
||||||
1.*) Installing PostgreSQL
|
* Programmer's Guide - for those programming in PostgreSQL, using
|
||||||
2.*) Uninstalling PostgreSQL
|
various interfaces (download)
|
||||||
3.*) Extending PostgreSQL
|
* Integrated Document (includes others above) - for those
|
||||||
|
programming in PostgreSQL, using various interfaces (download)
|
||||||
|
* Appendices
|
||||||
Questions answered:
|
* FAQ (Frequently Asked Questions)
|
||||||
1.1) What extra items do I need to install PostgreSQL under Irix?
|
+ English
|
||||||
1.2) What changes do I need to make to src/Makefile.global?
|
+ Japanese
|
||||||
1.3) What are the references in X11_LIB to libsocket and libnsl in
|
+ Korean by Jung Jik Han
|
||||||
src/Makefile.global?
|
* Platform-specific FAQ's
|
||||||
1.4) Are there any other changes I should make?
|
+ Linux
|
||||||
1.5) Can I install PostgreSQL (<V6.3) under Irix 6.x?
|
o English by Andrew Martin
|
||||||
1.6) The make fails with the following message:
|
o Japanese by Jun Kuwamura
|
||||||
ld32: ERROR 4: Conflicting flag setting: -call_shared
|
o Korean by Jung Jik Han
|
||||||
1.7) Why won't it link? (Problems with lorder)
|
o Italian by Daniele Medri
|
||||||
1.8) I have major problems with IRIX 6!
|
+ Irix
|
||||||
1.9) Why does lex fail with PostgreSQL 6.2.1?
|
+ HP-UX
|
||||||
1.10) How do I install PostgreSQL V6.3 under Irix 6.x?
|
* HISTORY file showing changes in each release.
|
||||||
2.1) Why can't I move the executable files?
|
* TODO list showing our future plans.
|
||||||
3.1) How do I compile a C program to create a function for extending
|
|
||||||
PostgreSQL
|
Developers
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
* How PostgreSQL Processes a Query - a guide to all modules and
|
||||||
Section 1: Installing PostgreSQL
|
directories, including a flowchart
|
||||||
----------------------------------------------------------------------
|
* Developer's FAQ
|
||||||
|
+ English by Bruce Momjian
|
||||||
1.1) What extra items do I need to install PostgreSQL under Irix?
|
+ Korean by Jung Jik Han
|
||||||
|
* Developer's Guide - for contributing to the PostgreSQL
|
||||||
You *must* have the following installed:
|
distribution
|
||||||
a) Gnu make (installed as gmake)
|
* CVS/CVSUP FAQ access to source code
|
||||||
|
* History of PostgreSQL Development
|
||||||
You are recommended to install the following:
|
|
||||||
a) GNU install (installed as ginstall)
|
|
||||||
(This is part of the GNU fileutils package)
|
|
||||||
|
|
||||||
You may choose to install the following:
|
|
||||||
a) GNU readline library (if you wish psql to have readline
|
|
||||||
support).
|
|
||||||
b) tcl/tk (if you wish to compile pgtclsh)
|
|
||||||
|
|
||||||
1.2) What changes do I need to make to src/Makefile.global or
|
|
||||||
src/Makefile.custom?
|
|
||||||
|
|
||||||
The easiest way to do this is to use the customize script in
|
|
||||||
the src directory.
|
|
||||||
|
|
||||||
You *must* set the following variables:
|
|
||||||
PORTNAME= irix5
|
|
||||||
|
|
||||||
You will also need to change the following to match your own
|
|
||||||
installation:
|
|
||||||
POSTGRESDIR
|
|
||||||
|
|
||||||
If you switch on the USE_TCL option, you will need to set these:
|
|
||||||
TCL_INCDIR=
|
|
||||||
TCL_LIBDIR=
|
|
||||||
TCL_LIB =
|
|
||||||
TK_INCDIR=
|
|
||||||
TK_LIBDIR=
|
|
||||||
TK_LIB =
|
|
||||||
|
|
||||||
You may also make any other changes you need as documented in
|
|
||||||
the INSTALL file and in Makefile.global
|
|
||||||
|
|
||||||
1.3) What are the references in X11_LIB to libsocket and libnsl in
|
|
||||||
src/Makefile.global?
|
|
||||||
|
|
||||||
This was a problem in 1.08 (they are Sun Solaris specific).
|
|
||||||
It is fixed in 1.09 and above.
|
|
||||||
|
|
||||||
1.4) Are there any other changes I should make?
|
|
||||||
|
|
||||||
If you have installed the GNU install program (ginstall), you
|
|
||||||
should add the following line to src/Makefile.custom:
|
|
||||||
CUSTOM_INSTALL=ginstall
|
|
||||||
|
|
||||||
For an explanation as to why this is a good idea, see Question 2.1
|
|
||||||
Ginstall is part of the GNU fileutils package.
|
|
||||||
|
|
||||||
|
|
||||||
1.5) Can I install PostgreSQL (<V6.3) under Irix 6.x?
|
|
||||||
|
|
||||||
Instructions for PostgreSQL V6.3 are answered in Question 1.10!
|
|
||||||
|
|
||||||
Irix 6.2-6.4 has a bug in ld which mishandles the addresses of
|
|
||||||
static procedures when object files are assembled into
|
|
||||||
larger object files using 'ld -r'. This bug has been reported
|
|
||||||
to Silicon Graphics.
|
|
||||||
|
|
||||||
One option is to use the Gnu version of ld. Alternatively,
|
|
||||||
the following patch should be applied as a workaround.
|
|
||||||
(Supplied by Bob Bruccoleri <bruc@bms.com>)
|
|
||||||
|
|
||||||
*** ./backend/Makefile.orig Thu May 22 00:00:15 1997
|
|
||||||
--- ./backend/Makefile Thu Jun 5 16:47:27 1997
|
|
||||||
***************
|
|
||||||
*** 54,60 ****
|
|
||||||
all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source
|
|
||||||
|
|
||||||
postgres: $(OBJS) ../utils/version.o
|
|
||||||
! $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS)
|
|
||||||
|
|
||||||
$(OBJS): $(DIRS:%=%.dir)
|
|
||||||
|
|
||||||
--- 54,64 ----
|
|
||||||
all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source
|
|
||||||
|
|
||||||
postgres: $(OBJS) ../utils/version.o
|
|
||||||
! # $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS)
|
|
||||||
! -rm -f *.o
|
|
||||||
! find . -name "*.o" -exec cp \{\} . \;
|
|
||||||
! rm -f SUBSYS.o
|
|
||||||
! $(CC) -o postgres *.o ../utils/version.o $(LDFLAGS)
|
|
||||||
|
|
||||||
$(OBJS): $(DIRS:%=%.dir)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1.6) The make fails with the following message:
|
|
||||||
ld32: ERROR 4: Conflicting flag setting: -call_shared
|
|
||||||
|
|
||||||
If gmake fails in .../src/backend while building obj/ACCESS.o
|
|
||||||
with a message from ld32, you can work around this by using
|
|
||||||
ld for the LD environment variable rather than cc.
|
|
||||||
|
|
||||||
The problem has been observed under Irix 5.3 when compiling both
|
|
||||||
Postgres95-1.09 and PostgreSQL-6.2Beta6, but on some systems
|
|
||||||
these appear to compile with no such problems.
|
|
||||||
|
|
||||||
Fix supplied by Brian Sanders (bsanders@netcom.com,
|
|
||||||
brian@fresnelsoft.com)
|
|
||||||
|
|
||||||
|
|
||||||
1.7) Why won't it link? (Problems with lorder)
|
|
||||||
|
|
||||||
According to the IRIX man pages, lorder is useless, but harmless
|
|
||||||
under IRIX. However, it has caused problems for some people
|
|
||||||
using both IRIX 6.2.
|
|
||||||
|
|
||||||
The solution is to add the following line to
|
|
||||||
.../src/makefiles/Makefile.irix5
|
|
||||||
|
|
||||||
MK_NO_LORDER=true
|
|
||||||
|
|
||||||
|
|
||||||
1.8) I have major problems with IRIX 6!
|
|
||||||
|
|
||||||
The following is quoted directly from Bob Bruccoleri <bruc@bms.com>
|
|
||||||
|
|
||||||
There is a really nasty loader bug in the compiler system (7.1)
|
|
||||||
on Irix 6.x, and the error that Lasse Petersen is the result of it.
|
|
||||||
Here is the original message. I don't know if all the changes have been
|
|
||||||
folded into the current release.
|
|
||||||
|
|
||||||
Date: Fri, 06 Jun 1997 17:12:20 -0400 (EDT)
|
|
||||||
From: bruc@bms.com (Robert Bruccoleri)
|
|
||||||
Subject: [PORTS] Patches for Irix 6.4
|
|
||||||
|
|
||||||
I have worked out how to compile PostgreSQL on Irix 6.4 using the -n32 compiler
|
|
||||||
mode and version 7.1 of the C compiler. (The n32 compiler use 32 bits addressing,
|
|
||||||
but allows access to all the instructions in the MIPS4 instruction set.)
|
|
||||||
There were several problems:
|
|
||||||
|
|
||||||
1) The ld command is not referenced as a macro in all the Makefiles. On
|
|
||||||
this platform, you have to include -n32 on all the ld commands. Makefiles
|
|
||||||
were changed as needed.
|
|
||||||
|
|
||||||
2) There is a bug in "ld" which mishandles the addresses of static procedures
|
|
||||||
when object files are assembled into larger object files using "ld -r".
|
|
||||||
Because of this, I put a hack into src/backend/Makefile to avoid all the
|
|
||||||
SUBSYS.o files and just link all the objects. I have contacted SGI about the
|
|
||||||
problem, and hopefully, it will be fixed in the near future.
|
|
||||||
|
|
||||||
3) Lots of warnings are generated from the compiler. Since the regression
|
|
||||||
tests worked OK, I didn't attempt to fix them. If anyone wants the compilation
|
|
||||||
log, please let me know, and I'll email it to you.
|
|
||||||
|
|
||||||
The version of postgresql was 970602. Here is Makefile.custom:
|
|
||||||
|
|
||||||
CUSTOM_COPT = -O2 -n32
|
|
||||||
MK_NO_LORDER = 1
|
|
||||||
LD = ld -n32
|
|
||||||
CC += -n32
|
|
||||||
|
|
||||||
Here are the patches:
|
|
||||||
|
|
||||||
*** ./backend/access/Makefile.orig Sun Nov 10 00:00:15 1996
|
|
||||||
- --- ./backend/access/Makefile Tue Jun 3 10:22:32 1997
|
|
||||||
***************
|
|
||||||
*** 8,13 ****
|
|
||||||
- --- 8,16 ----
|
|
||||||
#
|
|
||||||
#-------------------------------------------------------------------------
|
|
||||||
|
|
||||||
+ SRCDIR = ../..
|
|
||||||
+ include ../../Makefile.global
|
|
||||||
+
|
|
||||||
OBJS = common/SUBSYS.o gist/SUBSYS.o hash/SUBSYS.o heap/SUBSYS.o \
|
|
||||||
index/SUBSYS.o rtree/SUBSYS.o nbtree/SUBSYS.o transam/SUBSYS.o
|
|
||||||
|
|
||||||
|
|
||||||
*** ./backend/bootstrap/Makefile.orig Fri Apr 18 06:00:23 1997
|
|
||||||
- --- ./backend/bootstrap/Makefile Tue Jun 3 10:23:59 1997
|
|
||||||
***************
|
|
||||||
*** 38,44 ****
|
|
||||||
all: SUBSYS.o
|
|
||||||
|
|
||||||
SUBSYS.o: $(OBJS)
|
|
||||||
! ld -r -o SUBSYS.o $(OBJS)
|
|
||||||
|
|
||||||
# bootstrap.o's dependency on bootstrap_tokens.h is computed by the
|
|
||||||
# make depend, but we state it here explicitly anyway because
|
|
||||||
- --- 38,44 ----
|
|
||||||
all: SUBSYS.o
|
|
||||||
|
|
||||||
SUBSYS.o: $(OBJS)
|
|
||||||
! $(LD) -r -o SUBSYS.o $(OBJS)
|
|
||||||
|
|
||||||
# bootstrap.o's dependency on bootstrap_tokens.h is computed by the
|
|
||||||
# make depend, but we state it here explicitly anyway because
|
|
||||||
|
|
||||||
*** ./backend/Makefile.orig Thu May 22 00:00:15 1997
|
|
||||||
- --- ./backend/Makefile Thu Jun 5 16:47:27 1997
|
|
||||||
***************
|
|
||||||
*** 54,60 ****
|
|
||||||
all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source
|
|
||||||
|
|
||||||
postgres: $(OBJS) ../utils/version.o
|
|
||||||
! $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS)
|
|
||||||
|
|
||||||
$(OBJS): $(DIRS:%=%.dir)
|
|
||||||
|
|
||||||
- --- 54,64 ----
|
|
||||||
all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source
|
|
||||||
|
|
||||||
postgres: $(OBJS) ../utils/version.o
|
|
||||||
! # $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS)
|
|
||||||
! -rm -f *.o
|
|
||||||
! find . -name "*.o" -exec cp \{\} . \;
|
|
||||||
! rm -f SUBSYS.o
|
|
||||||
! $(CC) -o postgres *.o ../utils/version.o $(LDFLAGS)
|
|
||||||
|
|
||||||
$(OBJS): $(DIRS:%=%.dir)
|
|
||||||
|
|
||||||
***************
|
|
||||||
*** 116,122 ****
|
|
||||||
install: $(LIBDIR) $(BINDIR) $(HEADERDIR) postgres $(POSTGRES_IMP) fmgr.h\
|
|
||||||
global1.bki.source local1_template1.bki.source \
|
|
||||||
libpq/pg_hba.conf.sample optimizer/geqo/pg_geqo.sample
|
|
||||||
!
|
|
||||||
$(INSTALL) $(INSTL_EXE_OPTS) postgres $(BINDIR)/postgres
|
|
||||||
ifeq ($(MAKE_EXPORTS), true)
|
|
||||||
$(INSTALL) $(INSTLOPTS) $(POSTGRES_IMP) $(LIBDIR)/$(POSTGRES_IMP)
|
|
||||||
- --- 120,126 ----
|
|
||||||
install: $(LIBDIR) $(BINDIR) $(HEADERDIR) postgres $(POSTGRES_IMP) fmgr.h\
|
|
||||||
global1.bki.source local1_template1.bki.source \
|
|
||||||
libpq/pg_hba.conf.sample optimizer/geqo/pg_geqo.sample
|
|
||||||
!
|
|
||||||
$(INSTALL) $(INSTL_EXE_OPTS) postgres $(BINDIR)/postgres
|
|
||||||
ifeq ($(MAKE_EXPORTS), true)
|
|
||||||
$(INSTALL) $(INSTLOPTS) $(POSTGRES_IMP) $(LIBDIR)/$(POSTGRES_IMP)
|
|
||||||
|
|
||||||
*** ./backend/optimizer/Makefile.orig Wed Feb 19 12:00:34 1997
|
|
||||||
- --- ./backend/optimizer/Makefile Tue Jun 3 10:39:47 1997
|
|
||||||
***************
|
|
||||||
*** 8,13 ****
|
|
||||||
- --- 8,16 ----
|
|
||||||
#
|
|
||||||
#-------------------------------------------------------------------------
|
|
||||||
|
|
||||||
+ SRCDIR= ../..
|
|
||||||
+ include ../../Makefile.global
|
|
||||||
+
|
|
||||||
all: submake SUBSYS.o
|
|
||||||
|
|
||||||
OBJS = path/SUBSYS.o plan/SUBSYS.o prep/SUBSYS.o util/SUBSYS.o geqo/SUBSYS.o
|
|
||||||
|
|
||||||
*** ./backend/libpq/pqcomprim.c.orig Mon May 26 00:00:23 1997
|
|
||||||
- --- ./backend/libpq/pqcomprim.c Fri Jun 6 16:02:24 1997
|
|
||||||
***************
|
|
||||||
*** 32,40 ****
|
|
||||||
# define hton_l(n) (ntoh_l(n))
|
|
||||||
# else /* BYTE_ORDER != BIG_ENDIAN */
|
|
||||||
# if BYTE_ORDER == PDP_ENDIAN
|
|
||||||
! # #error PDP_ENDIAN macros not written yet
|
|
||||||
# else /* BYTE_ORDER != anything known */
|
|
||||||
! # #error BYTE_ORDER not defined as anything understood
|
|
||||||
# endif /* BYTE_ORDER == PDP_ENDIAN */
|
|
||||||
# endif /* BYTE_ORDER == BIG_ENDIAN */
|
|
||||||
#endif /* BYTE_ORDER == LITTLE_ENDIAN */
|
|
||||||
- --- 32,40 ----
|
|
||||||
# define hton_l(n) (ntoh_l(n))
|
|
||||||
# else /* BYTE_ORDER != BIG_ENDIAN */
|
|
||||||
# if BYTE_ORDER == PDP_ENDIAN
|
|
||||||
! # error PDP_ENDIAN macros not written yet
|
|
||||||
# else /* BYTE_ORDER != anything known */
|
|
||||||
! # error BYTE_ORDER not defined as anything understood
|
|
||||||
# endif /* BYTE_ORDER == PDP_ENDIAN */
|
|
||||||
# endif /* BYTE_ORDER == BIG_ENDIAN */
|
|
||||||
#endif /* BYTE_ORDER == LITTLE_ENDIAN */
|
|
||||||
|
|
||||||
*** ./backend/storage/Makefile.orig Sun Nov 10 00:01:06 1996
|
|
||||||
- --- ./backend/storage/Makefile Tue Jun 3 10:41:29 1997
|
|
||||||
***************
|
|
||||||
*** 8,13 ****
|
|
||||||
- --- 8,16 ----
|
|
||||||
#
|
|
||||||
#-------------------------------------------------------------------------
|
|
||||||
|
|
||||||
+ SRCDIR= ../..
|
|
||||||
+ include ../../Makefile.global
|
|
||||||
+
|
|
||||||
all: submake SUBSYS.o
|
|
||||||
|
|
||||||
OBJS = buffer/SUBSYS.o file/SUBSYS.o ipc/SUBSYS.o large_object/SUBSYS.o \
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1.9) Why does lex fail with PostgreSQL 6.2.1?
|
|
||||||
|
|
||||||
IRIX 5.3 lex has been reported to fail in
|
|
||||||
postgresql-6.2.1/src/backend/parser with the error:
|
|
||||||
|
|
||||||
lex scan.l
|
|
||||||
"scan.l":line 86: Error: Invalid request %x xc
|
|
||||||
gmake[2]: *** [scan.c] Error 1
|
|
||||||
|
|
||||||
The answer is to use GNU flex 2.5.4 or later. Use the command
|
|
||||||
flex --version
|
|
||||||
to check you have a new enough version of flex
|
|
||||||
|
|
||||||
|
|
||||||
1.10) How do I install PostgreSQL V6.3 under Irix 6.x?
|
|
||||||
|
|
||||||
Irix 6.2-6.4 has a bug in ld which mishandles the addresses of
|
|
||||||
static procedures when object files are assembled into
|
|
||||||
larger object files using 'ld -r'. This bug has been reported
|
|
||||||
to Silicon Graphics.
|
|
||||||
|
|
||||||
Depending on your Irix installation you may also encounter
|
|
||||||
2 other problems detailed below: Conflict in C standards,
|
|
||||||
Conflict in library functions.
|
|
||||||
|
|
||||||
a) Solving the ld bug
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
One option is to use the Gnu version of ld. Alternatively,
|
|
||||||
the following patch should be applied as a workaround.
|
|
||||||
(Supplied by Bob Bruccoleri <bruc@bms.com> and modified for
|
|
||||||
PostgreSQL V6.3 by Lasse Hiller Petersen <lassehp@imv.aau.dk>)
|
|
||||||
|
|
||||||
Apply the following patch:
|
|
||||||
|
|
||||||
*** ./backend/Makefile.orig Tue Mar 3 15:33:58 1998
|
|
||||||
--- ./backend/Makefile Tue Mar 3 15:39:27 1998
|
|
||||||
***************
|
|
||||||
*** 63,69 ****
|
|
||||||
global1.description
|
|
||||||
local1_template1.description
|
|
||||||
|
|
||||||
postgres: $(OBJS) ../utils/version.o
|
|
||||||
! $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS)
|
|
||||||
|
|
||||||
$(OBJS): $(DIRS:%=%.dir)
|
|
||||||
|
|
||||||
--- 63,73 ----
|
|
||||||
global1.description
|
|
||||||
local1_template1.description
|
|
||||||
|
|
||||||
postgres: $(OBJS) ../utils/version.o
|
|
||||||
! # $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS)
|
|
||||||
! -rm -f *.o
|
|
||||||
! find . -name "*.o" -exec cp \{\} . \;
|
|
||||||
! rm -f SUBSYS.o
|
|
||||||
! $(CC) -o postgres *.o ../utils/version.o $(LDFLAGS)
|
|
||||||
|
|
||||||
$(OBJS): $(DIRS:%=%.dir)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Lasse configured with ./configure --enable-locale
|
|
||||||
and modified Makefile.custom to contain:
|
|
||||||
CC = cc -n32
|
|
||||||
LD = ld -n32
|
|
||||||
|
|
||||||
He reports that the installation without -n32 works fine too,
|
|
||||||
but the -n32 was required for compatibility with his Perl
|
|
||||||
installation. His system was an Origin200 running IRIX64 v6.4.
|
|
||||||
|
|
||||||
|
|
||||||
b) Conflict in C standards
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
I have found that the following patch is also necessary in order
|
|
||||||
to prevent a duplicate definition of a Union used for semaphores.
|
|
||||||
Apply the following patch to:
|
|
||||||
.../src/makefile/Makefile.irix5:
|
|
||||||
|
|
||||||
*** src/makefiles/Makefile.irix5.orig Thu Mar 5 16:59:58 1998
|
|
||||||
--- src/makefiles/Makefile.irix5 Thu Mar 5 17:01:13 1998
|
|
||||||
***************
|
|
||||||
*** 6,9 ****
|
|
||||||
%.so: %.o
|
|
||||||
$(LD) -G -Bdynamic -shared -o $@ $<
|
|
||||||
|
|
||||||
!
|
|
||||||
--- 6,9 ----
|
|
||||||
%.so: %.o
|
|
||||||
$(LD) -G -Bdynamic -shared -o $@ $<
|
|
||||||
|
|
||||||
! CFLAGS+= -U_NO_XOPEN4
|
|
||||||
|
|
||||||
i.e. the addition of the line:
|
|
||||||
CFLAGS+= -U_NO_XOPEN4
|
|
||||||
|
|
||||||
This is needed to stop the semun union being redefined in
|
|
||||||
/usr/include/sys/sem.h
|
|
||||||
|
|
||||||
c) Conflict in library functions
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
In addition, if you have the nsl and crypt libraries these will
|
|
||||||
conflict with the required definitions. I think that libnsl.a
|
|
||||||
may be the Netware socket library (or something similar). In
|
|
||||||
any case, if you have these libraries, they will be added to
|
|
||||||
Makefile.global and you will need to remove them.
|
|
||||||
|
|
||||||
Thus, you should edit .../src/Makefile.global. Goto (approximately)
|
|
||||||
line 217 where LDFLAGS= is set and remove -lnsl and -lcrypt
|
|
||||||
from this line.
|
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
Section 2: Deinstalling PostgreSQL
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
|
|
||||||
2.1) Why can't I move the executable files?
|
|
||||||
|
|
||||||
By default, the IRIX port uses the BSD compatible version of
|
|
||||||
install from /usr/bin/X11. If you read the man page for this
|
|
||||||
version of install, you will see that it is not meant for
|
|
||||||
end-user use; it has the interesting side-effect of chowning
|
|
||||||
files it installs to root.
|
|
||||||
|
|
||||||
You should still be able to delete the files as you (the
|
|
||||||
postgres user) will own the directory in which they are
|
|
||||||
stored.
|
|
||||||
|
|
||||||
The normal IRIX install program cannot be used easily as it
|
|
||||||
takes its arguments in the reverse order. It is therefore
|
|
||||||
recommended to use the GNU version of install (ginstall).
|
|
||||||
See Question 1.4
|
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
Section 3: Extending PostgreSQL
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
3.1) How do I compile a C program to create a function for extending
|
|
||||||
PostgreSQL
|
|
||||||
|
|
||||||
Here is a sample command line:
|
|
||||||
|
|
||||||
cc -I/usr/local/PostgreSQL/include/ -I/usr/local/PostgreSQL/src/backend
|
|
||||||
-shared -o funcs.so funcs.c
|
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------------
|
|
||||||
Dr. Andrew C.R. Martin University College London
|
|
||||||
EMAIL: (Work) martin@biochem.ucl.ac.uk (Home) andrew@stagleys.demon.co.uk
|
|
||||||
URL: http://www.biochem.ucl.ac.uk/~martin
|
|
||||||
Tel: (Work) +44(0)171 419 3890 (Home) +44(0)1372 275775
|
|
||||||
|
152
doc/FAQ_Linux
152
doc/FAQ_Linux
@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
=======================================================
|
=======================================================
|
||||||
Frequently Asked Questions (FAQ) for PostgreSQL >= V6.1
|
Frequently Asked Questions (FAQ) for PostgreSQL >= V6.1
|
||||||
Linux Specific
|
Linux Specific
|
||||||
@ -46,7 +47,8 @@ Questions answered:
|
|||||||
fails with a message like:
|
fails with a message like:
|
||||||
In file included from /usr/include/sys/sem.h:8,
|
In file included from /usr/include/sys/sem.h:8,
|
||||||
from ipc.c:37:
|
from ipc.c:37:
|
||||||
/usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit'
|
/usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bi
|
||||||
|
t'
|
||||||
....
|
....
|
||||||
make: *** [ipc.o] Error 1
|
make: *** [ipc.o] Error 1
|
||||||
1.17) When compiling postgres, gcc reports signal 11 and aborts.
|
1.17) When compiling postgres, gcc reports signal 11 and aborts.
|
||||||
@ -60,9 +62,9 @@ Questions answered:
|
|||||||
1.23) Why does the compile fail with messages about F_BOOLIN, F_BOOLOUT
|
1.23) Why does the compile fail with messages about F_BOOLIN, F_BOOLOUT
|
||||||
and F_BYTEAIN being undeclared?
|
and F_BYTEAIN being undeclared?
|
||||||
2.1) The linker fails to find libX11 when compiling pgtclsh
|
2.1) The linker fails to find libX11 when compiling pgtclsh
|
||||||
3.1) I get an error reporting _fUnKy_POSTPORT_sTuFf_ undefined when
|
3.1) I get an error reporting _fUnKy_POSTPORT_sTuFf_ undefined when
|
||||||
running scripts like createuser
|
running scripts like createuser
|
||||||
3.2) I run postmaster and after that system says 'Bad system call(Core
|
3.2) I run postmaster and after that system says 'Bad system call(Core
|
||||||
dumped)'
|
dumped)'
|
||||||
3.3) When I try to start the Postmaster, why do I get an error of the form
|
3.3) When I try to start the Postmaster, why do I get an error of the form
|
||||||
Failed Assertion("!(file != 0):(null)", File:
|
Failed Assertion("!(file != 0):(null)", File:
|
||||||
@ -93,15 +95,15 @@ Section 1: Compiling PostgreSQL
|
|||||||
1.1) What changes do I need to make to src/Makefile.global or
|
1.1) What changes do I need to make to src/Makefile.global or
|
||||||
src/Makefile.custom and are there any other changes needed?
|
src/Makefile.custom and are there any other changes needed?
|
||||||
|
|
||||||
Changes to the makefiles are most easily made by running the
|
Changes to the makefiles are most easily made by running the
|
||||||
customize shell script in the src directory which will write a
|
customize shell script in the src directory which will write a
|
||||||
Makefile.custom for you.
|
Makefile.custom for you.
|
||||||
|
|
||||||
The only other change you may have to make is to replace
|
The only other change you may have to make is to replace
|
||||||
Flex if you have version 2.5.3 which has a bug which generally
|
Flex if you have version 2.5.3 which has a bug which generally
|
||||||
manifests itself as createuser failing (See Question 3.4)
|
manifests itself as createuser failing (See Question 3.4)
|
||||||
|
|
||||||
If you modify the makefiles by hand, you *must* set the
|
If you modify the makefiles by hand, you *must* set the
|
||||||
following variable:
|
following variable:
|
||||||
PORTNAME= linux
|
PORTNAME= linux
|
||||||
|
|
||||||
@ -130,7 +132,7 @@ Section 1: Compiling PostgreSQL
|
|||||||
X11_INCDIR= /usr/include/X11
|
X11_INCDIR= /usr/include/X11
|
||||||
X11_LIBDIR= /usr/X386/lib
|
X11_LIBDIR= /usr/X386/lib
|
||||||
X11_LIB= -lX11
|
X11_LIB= -lX11
|
||||||
|
|
||||||
You may also make any other changes you need as documented in
|
You may also make any other changes you need as documented in
|
||||||
the INSTALL file and in Makefile.global
|
the INSTALL file and in Makefile.global
|
||||||
|
|
||||||
@ -139,7 +141,7 @@ Section 1: Compiling PostgreSQL
|
|||||||
|
|
||||||
Linux systems generally don't come with the GNU readline library
|
Linux systems generally don't come with the GNU readline library
|
||||||
installed. Either ensure you do not activate the readline options
|
installed. Either ensure you do not activate the readline options
|
||||||
in src/Makefile.global or src/Makefile.custom or install the GNU
|
in src/Makefile.global or src/Makefile.custom or install the GNU
|
||||||
readline library.
|
readline library.
|
||||||
|
|
||||||
Note that Debian Linux (like FreeBSD) does come with readline
|
Note that Debian Linux (like FreeBSD) does come with readline
|
||||||
@ -159,7 +161,8 @@ Section 1: Compiling PostgreSQL
|
|||||||
RedHat now have a new ld.so RPM package on their FTP site.
|
RedHat now have a new ld.so RPM package on their FTP site.
|
||||||
Simply grab:
|
Simply grab:
|
||||||
|
|
||||||
ftp://ftp.redhat.com/pub/redhat/devel/i386/RedHat/RPMS/ld.so-1.7.14-4.i386.rpm
|
ftp://ftp.redhat.com/pub/redhat/devel/i386/RedHat/RPMS/ld.so-1.
|
||||||
|
7.14-4.i386.rpm
|
||||||
|
|
||||||
Install the RPM file in the usual way and off you go!
|
Install the RPM file in the usual way and off you go!
|
||||||
|
|
||||||
@ -168,17 +171,17 @@ Section 1: Compiling PostgreSQL
|
|||||||
|
|
||||||
There has been one report of a corrupted system resulting from
|
There has been one report of a corrupted system resulting from
|
||||||
programs accessing these libraries while updating them (not
|
programs accessing these libraries while updating them (not
|
||||||
altogether surprising). Consequently it is a good idea to reboot
|
altogether surprising). Consequently it is a good idea to reboot
|
||||||
the system before installing the new libraries and to
|
the system before installing the new libraries and to
|
||||||
have as little running as possible during this upgrade. Going
|
have as little running as possible during this upgrade. Going
|
||||||
into single-user mode is probably a good idea!
|
into single-user mode is probably a good idea!
|
||||||
|
|
||||||
If you want to do it the hard way, you can obtain the library and the
|
If you want to do it the hard way, you can obtain the library and the
|
||||||
header file from:
|
header file from:
|
||||||
|
|
||||||
ftp://tsx-11.mit.edu/pub/linux/packages/GCC/ld.so-1.7.14.tar.gz
|
ftp://tsx-11.mit.edu/pub/linux/packages/GCC/ld.so-1.7.14.tar.gz
|
||||||
|
|
||||||
Alternatively, you may find precompiled binaries in
|
Alternatively, you may find precompiled binaries in
|
||||||
distributions/debian/buzz/binary-i386/base/ld.so-1.7.14-4.deb
|
distributions/debian/buzz/binary-i386/base/ld.so-1.7.14-4.deb
|
||||||
on the same site, or follow the instructions given for question 1.2 for
|
on the same site, or follow the instructions given for question 1.2 for
|
||||||
correcting the same error with early releases of Slackware 3.1.
|
correcting the same error with early releases of Slackware 3.1.
|
||||||
@ -192,15 +195,15 @@ Section 1: Compiling PostgreSQL
|
|||||||
such as dlopen(), dlclose(), etc. during the last phase of the
|
such as dlopen(), dlclose(), etc. during the last phase of the
|
||||||
compilation.
|
compilation.
|
||||||
|
|
||||||
See the answer to question 1.3. Slackware up to version 3.0 was
|
See the answer to question 1.3. Slackware up to version 3.0 was
|
||||||
supplied with this library and include file and they seem to be
|
supplied with this library and include file and they seem to be
|
||||||
back in again in the latest versions of 3.1, but the early 3.1
|
back in again in the latest versions of 3.1, but the early 3.1
|
||||||
releases (before 9th September 1996) had them missing and many
|
releases (before 9th September 1996) had them missing and many
|
||||||
CD-ROM versions will have been pressed from the first 3.1 releases.
|
CD-ROM versions will have been pressed from the first 3.1 releases.
|
||||||
|
|
||||||
There has been one report of a corrupted system resulting from
|
There has been one report of a corrupted system resulting from
|
||||||
programs accessing these libraries while updating them (not
|
programs accessing these libraries while updating them (not
|
||||||
altogether surprising). Consequently it is a good idea to reboot
|
altogether surprising). Consequently it is a good idea to reboot
|
||||||
the system before installing the new libraries and to
|
the system before installing the new libraries and to
|
||||||
have as little running as possible during this upgrade. Going
|
have as little running as possible during this upgrade. Going
|
||||||
into single-user mode is probably a good idea!
|
into single-user mode is probably a good idea!
|
||||||
@ -242,7 +245,7 @@ Section 1: Compiling PostgreSQL
|
|||||||
after installing the library and before recompiling.
|
after installing the library and before recompiling.
|
||||||
|
|
||||||
|
|
||||||
1.5) My compile of the backend dies complaining about the include file
|
1.5) My compile of the backend dies complaining about the include file
|
||||||
dlfcn.h missing
|
dlfcn.h missing
|
||||||
|
|
||||||
See the answer to question 1.3/1.4. Don't forget that if you are using
|
See the answer to question 1.3/1.4. Don't forget that if you are using
|
||||||
@ -254,15 +257,15 @@ Section 1: Compiling PostgreSQL
|
|||||||
1.6) GCC complains about an ignored option -fpic
|
1.6) GCC complains about an ignored option -fpic
|
||||||
|
|
||||||
Earlier versions of GCC accepted either -fpic or -fPIC.
|
Earlier versions of GCC accepted either -fpic or -fPIC.
|
||||||
It appears that more recent versions (V2.7.2?) require -fPIC.
|
It appears that more recent versions (V2.7.2?) require -fPIC.
|
||||||
If you are using an ELF version of Linux, this can safely be
|
If you are using an ELF version of Linux, this can safely be
|
||||||
ignored as -fPIC is the default.
|
ignored as -fPIC is the default.
|
||||||
|
|
||||||
You can correct this by editing src/Makefile.global and
|
You can correct this by editing src/Makefile.global and
|
||||||
changing CFLAGS_SL
|
changing CFLAGS_SL
|
||||||
|
|
||||||
|
|
||||||
1.7) I get warnings of the form
|
1.7) I get warnings of the form
|
||||||
warning: cast from pointer to integer of different size
|
warning: cast from pointer to integer of different size
|
||||||
|
|
||||||
These were seen in earlier versions of Postgres95 and could
|
These were seen in earlier versions of Postgres95 and could
|
||||||
@ -273,12 +276,12 @@ Section 1: Compiling PostgreSQL
|
|||||||
1.8) [SuSE-Linux 4.2-4.4] Where is curses and termcap?
|
1.8) [SuSE-Linux 4.2-4.4] Where is curses and termcap?
|
||||||
|
|
||||||
SuSE-Linux 4.2 has ncurses but not curses. 4.4 appears to have both.
|
SuSE-Linux 4.2 has ncurses but not curses. 4.4 appears to have both.
|
||||||
SuSE-Linux also has the termcap library is in /usr/lib/termcap
|
SuSE-Linux also has the termcap library is in /usr/lib/termcap
|
||||||
instead of in /usr/lib.
|
instead of in /usr/lib.
|
||||||
|
|
||||||
PostgreSQL (up to V6.0)
|
PostgreSQL (up to V6.0)
|
||||||
-----------------------
|
-----------------------
|
||||||
Set the value of CURSES_LIB in src/Makefile.custom to -lncurses
|
Set the value of CURSES_LIB in src/Makefile.custom to -lncurses
|
||||||
(or do this through the customize script).
|
(or do this through the customize script).
|
||||||
Add the following line to src/Makefile.custom:
|
Add the following line to src/Makefile.custom:
|
||||||
|
|
||||||
@ -301,11 +304,11 @@ Section 1: Compiling PostgreSQL
|
|||||||
If this doesn't work (I don't have SuSE to verify that it does)
|
If this doesn't work (I don't have SuSE to verify that it does)
|
||||||
then after running configure, you need to edit
|
then after running configure, you need to edit
|
||||||
src/Makefile.global and add -ltermcap to the LDFLAGS line
|
src/Makefile.global and add -ltermcap to the LDFLAGS line
|
||||||
(after -lreadline). (Alternatively, you can modify
|
(after -lreadline). (Alternatively, you can modify
|
||||||
src/Makefile.custom before running configure.)
|
src/Makefile.custom before running configure.)
|
||||||
|
|
||||||
Some versions of SuSE provide only ncurses, so you may need
|
Some versions of SuSE provide only ncurses, so you may need
|
||||||
to force use of ncurses rather than curses by changing
|
to force use of ncurses rather than curses by changing
|
||||||
-lcurses to -lncurses. (Reported true for SuSE 5.1)
|
-lcurses to -lncurses. (Reported true for SuSE 5.1)
|
||||||
|
|
||||||
|
|
||||||
@ -347,7 +350,7 @@ Section 1: Compiling PostgreSQL
|
|||||||
for PostgreSQL is to use bison -y rather than yacc.
|
for PostgreSQL is to use bison -y rather than yacc.
|
||||||
|
|
||||||
yacc is generally implemented as a script which invokes bison -y
|
yacc is generally implemented as a script which invokes bison -y
|
||||||
For some reason (certain versions of make? certain versions of
|
For some reason (certain versions of make? certain versions of
|
||||||
bash?) make is unable to execute this script file.
|
bash?) make is unable to execute this script file.
|
||||||
|
|
||||||
To correct this, simply edit src/mk/port/postgres.mk.linux
|
To correct this, simply edit src/mk/port/postgres.mk.linux
|
||||||
@ -359,14 +362,14 @@ Section 1: Compiling PostgreSQL
|
|||||||
1.13) What are the references in X11_LIB to libsocket and libnsl in
|
1.13) What are the references in X11_LIB to libsocket and libnsl in
|
||||||
src/Makefile.global?
|
src/Makefile.global?
|
||||||
|
|
||||||
This was a problem in 1.08 (they are Sun Solaris specific).
|
This was a problem in 1.08 (they are Sun Solaris specific).
|
||||||
It is fixed in 1.09 and 6.0
|
It is fixed in 1.09 and 6.0
|
||||||
|
|
||||||
1.14) [DEBIAN] Where is libtermcap?
|
1.14) [DEBIAN] Where is libtermcap?
|
||||||
|
|
||||||
Debian Linux comes without the termcap library and uses ncurses
|
Debian Linux comes without the termcap library and uses ncurses
|
||||||
(which uses terminfo instead). There is no need to change the
|
(which uses terminfo instead). There is no need to change the
|
||||||
CURSES_LIB variable in src/bin/psql/Makefile since Debian provides
|
CURSES_LIB variable in src/bin/psql/Makefile since Debian provides
|
||||||
a link from libncurses to libcurses (unlike SuSE-Linux --- see
|
a link from libncurses to libcurses (unlike SuSE-Linux --- see
|
||||||
Question 1.8).
|
Question 1.8).
|
||||||
|
|
||||||
@ -381,9 +384,9 @@ Section 1: Compiling PostgreSQL
|
|||||||
|
|
||||||
1.15) [REDHAT] Can I get PostgreSQL as an RPM?
|
1.15) [REDHAT] Can I get PostgreSQL as an RPM?
|
||||||
|
|
||||||
Yes! Michal Mosiewicz <mimo@lodz.pdi.net>
|
Yes! Michal Mosiewicz
|
||||||
(http://www.pdi.lodz.pl/~mimo) has kindly put together an RPM
|
(http://www.pdi.lodz.pl/~mimo) has kindly put together an RPM
|
||||||
for PostgreSQL V6.0 on Intel architectures which he has uploaded to
|
for PostgreSQL V6.0 on Intel architectures which he has uploaded to
|
||||||
ftp://ftp.redhat.org/pub/Incoming/Postgres-6.0-1.i386.rpm
|
ftp://ftp.redhat.org/pub/Incoming/Postgres-6.0-1.i386.rpm
|
||||||
|
|
||||||
This is a pre-compiled version, the source RPM is on its
|
This is a pre-compiled version, the source RPM is on its
|
||||||
@ -393,12 +396,13 @@ Section 1: Compiling PostgreSQL
|
|||||||
fails with a message like:
|
fails with a message like:
|
||||||
In file included from /usr/include/sys/sem.h:8,
|
In file included from /usr/include/sys/sem.h:8,
|
||||||
from ipc.c:37:
|
from ipc.c:37:
|
||||||
/usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit'
|
/usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bi
|
||||||
|
t'
|
||||||
....
|
....
|
||||||
make: *** [ipc.o] Error 1
|
make: *** [ipc.o] Error 1
|
||||||
|
|
||||||
The problem is that Linux provides no prototypes for these
|
The problem is that Linux provides no prototypes for these
|
||||||
inline functions. The solution is to go into the
|
inline functions. The solution is to go into the
|
||||||
.../src/backend/storage/ipc directory and edit the Makefile.
|
.../src/backend/storage/ipc directory and edit the Makefile.
|
||||||
Change the line
|
Change the line
|
||||||
CFLAGS+=$(INCLUDE_OPT)
|
CFLAGS+=$(INCLUDE_OPT)
|
||||||
@ -409,12 +413,12 @@ Section 1: Compiling PostgreSQL
|
|||||||
|
|
||||||
1.17) When compiling postgres, gcc reports signal 11 and aborts.
|
1.17) When compiling postgres, gcc reports signal 11 and aborts.
|
||||||
More specifically:
|
More specifically:
|
||||||
gcc: Internal compiler error: program cc1 got fatal
|
gcc: Internal compiler error: program cc1 got fatal
|
||||||
signal 11
|
signal 11
|
||||||
|
|
||||||
This may be a hardware/memory problem. PortgreSQL is a big
|
This may be a hardware/memory problem. PortgreSQL is a big
|
||||||
program, and large gcc compilations (such as building
|
program, and large gcc compilations (such as building
|
||||||
PostgreSQL or bebuilding the kernel) stress memory like
|
PostgreSQL or bebuilding the kernel) stress memory like
|
||||||
few other programs, resulting in errors that do not occur
|
few other programs, resulting in errors that do not occur
|
||||||
in normal operation. Lesser operating systems are also
|
in normal operation. Lesser operating systems are also
|
||||||
unlikely to stress the hardware to this degree so you
|
unlikely to stress the hardware to this degree so you
|
||||||
@ -429,7 +433,7 @@ Section 1: Compiling PostgreSQL
|
|||||||
|
|
||||||
1.18) Can I install 6.1.1 under MkLinux?
|
1.18) Can I install 6.1.1 under MkLinux?
|
||||||
|
|
||||||
Tatsuo Ishii <t-ishii@sra.co.jp> has done this under
|
Tatsuo Ishii has done this under
|
||||||
MkLinux DR2.1 update2 after a small patch available from:
|
MkLinux DR2.1 update2 after a small patch available from:
|
||||||
ftp://ftp.sra.co.jp/pub/cmd/postgres/6.1.1/mklinux.patch.gz
|
ftp://ftp.sra.co.jp/pub/cmd/postgres/6.1.1/mklinux.patch.gz
|
||||||
|
|
||||||
@ -437,9 +441,9 @@ Section 1: Compiling PostgreSQL
|
|||||||
|
|
||||||
There have been a couple of reports of gmake either just
|
There have been a couple of reports of gmake either just
|
||||||
exiting early or seg faulting. The latter problem was reported
|
exiting early or seg faulting. The latter problem was reported
|
||||||
with gmake 3.74 - upgrading to 3.76.1 solved the problem.
|
with gmake 3.74 - upgrading to 3.76.1 solved the problem.
|
||||||
However, 3.74 is known to work fine in other people's setups.
|
However, 3.74 is known to work fine in other people's setups.
|
||||||
In short, try upgrading gmake to the latest version you can
|
In short, try upgrading gmake to the latest version you can
|
||||||
find before reporting this as a problem
|
find before reporting this as a problem
|
||||||
|
|
||||||
1.20) How can I optimise for 486 or pentium processors
|
1.20) How can I optimise for 486 or pentium processors
|
||||||
@ -462,16 +466,16 @@ Section 1: Compiling PostgreSQL
|
|||||||
instead of '5 hours'
|
instead of '5 hours'
|
||||||
|
|
||||||
This is a problem with the glibc2 library which comes with
|
This is a problem with the glibc2 library which comes with
|
||||||
Redhat 5.0. Update your glibc to the latest RedHat version
|
Redhat 5.0. Update your glibc to the latest RedHat version
|
||||||
for v5.0/hurricane. Anything prior to glibc-2.0.7 is likely
|
for v5.0/hurricane. Anything prior to glibc-2.0.7 is likely
|
||||||
to have the problem.
|
to have the problem.
|
||||||
|
|
||||||
1.22) Why don't I get any shared libraries for libpq when I compile
|
1.22) Why don't I get any shared libraries for libpq when I compile
|
||||||
6.3.2?
|
6.3.2?
|
||||||
|
|
||||||
There was some last minute breakage of the Linux configuration for
|
There was some last minute breakage of the Linux configuration for
|
||||||
v6.3.2. Look in ftp://postgresql.org/pub/patches/ for a few fix-ups,
|
v6.3.2. Look in ftp://postgresql.org/pub/patches/ for a few fix-ups,
|
||||||
including a linux_elf patch.
|
including a linux_elf patch.
|
||||||
|
|
||||||
1.23) Why does the compile fail with messages about F_BOOLIN, F_BOOLOUT
|
1.23) Why does the compile fail with messages about F_BOOLIN, F_BOOLOUT
|
||||||
and F_BYTEAIN being undeclared?
|
and F_BYTEAIN being undeclared?
|
||||||
@ -490,11 +494,11 @@ Section 1: Compiling PostgreSQL
|
|||||||
bootstrap.c:161: initializer element for `Procid[1].inproc' is not
|
bootstrap.c:161: initializer element for `Procid[1].inproc' is not
|
||||||
constant
|
constant
|
||||||
|
|
||||||
This is tricky unless you know why it happens, as these constants
|
This is tricky unless you know why it happens, as these constants
|
||||||
don't seem to be defined anywhere.
|
don't seem to be defined anywhere.
|
||||||
|
|
||||||
The solution is to make sure that cpp is included in your path
|
The solution is to make sure that cpp is included in your path
|
||||||
before you start the make.
|
before you start the make.
|
||||||
|
|
||||||
On Redhat 5.1, cpp is in /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3
|
On Redhat 5.1, cpp is in /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3
|
||||||
|
|
||||||
@ -514,28 +518,28 @@ Section 2: Compiling accessory programs
|
|||||||
Section 3: Runtime Problems
|
Section 3: Runtime Problems
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
3.1) I get an error reporting _fUnKy_POSTPORT_sTuFf_ undefined when
|
3.1) I get an error reporting _fUnKy_POSTPORT_sTuFf_ undefined when
|
||||||
running scripts like createuser
|
running scripts like createuser
|
||||||
|
|
||||||
This is a bug in V1.06-V1.07 of Postgres and is fixed in V1.08
|
This is a bug in V1.06-V1.07 of Postgres and is fixed in V1.08
|
||||||
and above.
|
and above.
|
||||||
|
|
||||||
3.2) I run postmaster and after that system says 'Bad system call(Core
|
3.2) I run postmaster and after that system says 'Bad system call(Core
|
||||||
dumped)'
|
dumped)'
|
||||||
|
|
||||||
This indicates that you have not compiled shared memory support
|
This indicates that you have not compiled shared memory support
|
||||||
into your kernel. You need to recompile the Linux kernel to add this
|
into your kernel. You need to recompile the Linux kernel to add this
|
||||||
feature.
|
feature.
|
||||||
|
|
||||||
|
|
||||||
3.3) When I try to start the Postmaster, why do I get an error of the form
|
3.3) When I try to start the Postmaster, why do I get an error of the form
|
||||||
Failed Assertion("!(file != 0):(null)", File:
|
Failed Assertion("!(file != 0):(null)", File:
|
||||||
"/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)
|
"/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)
|
||||||
!(file != 0) (0)
|
!(file != 0) (0)
|
||||||
initdb: could not create template database
|
initdb: could not create template database
|
||||||
initdb: cleaning up.
|
initdb: cleaning up.
|
||||||
|
|
||||||
Your permissions on the file /dev/null are wrong.
|
Your permissions on the file /dev/null are wrong.
|
||||||
|
|
||||||
ls -l /dev/null should give you something like:
|
ls -l /dev/null should give you something like:
|
||||||
|
|
||||||
@ -547,7 +551,7 @@ Section 3: Runtime Problems
|
|||||||
|
|
||||||
3.4) Why doesn't createuser work?
|
3.4) Why doesn't createuser work?
|
||||||
|
|
||||||
There is a problem with Version 2.5.3 of GNU flex and createuser.
|
There is a problem with Version 2.5.3 of GNU flex and createuser.
|
||||||
Your options are to downgrade flex to V2.5.2, upgrade to V2.5.4
|
Your options are to downgrade flex to V2.5.2, upgrade to V2.5.4
|
||||||
or apply a patch to V2.5.3 which is supplied in doc/README.flex
|
or apply a patch to V2.5.3 which is supplied in doc/README.flex
|
||||||
You may obtain V2.5.4 from
|
You may obtain V2.5.4 from
|
||||||
@ -564,21 +568,21 @@ Section 3: Runtime Problems
|
|||||||
3.6) Why does psql fail with:
|
3.6) Why does psql fail with:
|
||||||
psql: can't load library 'libpq.so.1'
|
psql: can't load library 'libpq.so.1'
|
||||||
|
|
||||||
Psql has been compiled to link dynamically with the libpq
|
Psql has been compiled to link dynamically with the libpq
|
||||||
library.
|
library.
|
||||||
|
|
||||||
To solve this, you should log in as root and edit the file
|
To solve this, you should log in as root and edit the file
|
||||||
/etc/ld.so.conf
|
/etc/ld.so.conf
|
||||||
Add a single line at the end which gives the name of the
|
Add a single line at the end which gives the name of the
|
||||||
PostgreSQL library directory (the lib subdirectory of your
|
PostgreSQL library directory (the lib subdirectory of your
|
||||||
PostgreSQL installation) and run
|
PostgreSQL installation) and run
|
||||||
/sbin/ldconfig -v
|
/sbin/ldconfig -v
|
||||||
|
|
||||||
Alternatively, (and if you don't have root access), you may
|
Alternatively, (and if you don't have root access), you may
|
||||||
use the LD_LIBRARY_PATH environment variable.
|
use the LD_LIBRARY_PATH environment variable.
|
||||||
|
|
||||||
The LD_LIBRARY_PATH variable contains a colon separated list of
|
The LD_LIBRARY_PATH variable contains a colon separated list of
|
||||||
paths to be searched for shared libraries. This list is
|
paths to be searched for shared libraries. This list is
|
||||||
searched before the libraries specified by ldconfig.
|
searched before the libraries specified by ldconfig.
|
||||||
|
|
||||||
Therefore under Bash, you would do something like:
|
Therefore under Bash, you would do something like:
|
||||||
@ -595,13 +599,13 @@ Section 3: Runtime Problems
|
|||||||
|
|
||||||
3.7) Other strange behaviour
|
3.7) Other strange behaviour
|
||||||
|
|
||||||
I'm not sure what the symptoms might be except for nothing
|
I'm not sure what the symptoms might be except for nothing
|
||||||
working properly, but it has been pointed out that one needs
|
working properly, but it has been pointed out that one needs
|
||||||
to be careful that the dynamic loader loads the correct version
|
to be careful that the dynamic loader loads the correct version
|
||||||
of the libpq library. If you have old versions lying around
|
of the libpq library. If you have old versions lying around
|
||||||
in your library path (for example in /usr/lib) these may get
|
in your library path (for example in /usr/lib) these may get
|
||||||
loaded instead of the new version you intended to load. Make
|
loaded instead of the new version you intended to load. Make
|
||||||
sure you get them out of the way and look at Q3.6 for
|
sure you get them out of the way and look at Q3.6 for
|
||||||
details of loading libraries.
|
details of loading libraries.
|
||||||
|
|
||||||
3.8) When PostgreSQL is running when the system is shutdown, Linux
|
3.8) When PostgreSQL is running when the system is shutdown, Linux
|
||||||
@ -614,13 +618,13 @@ Section 3: Runtime Problems
|
|||||||
You are therefore recommended to start the postmaster from an
|
You are therefore recommended to start the postmaster from an
|
||||||
rc script. Under a Slackware-like release, you would modify
|
rc script. Under a Slackware-like release, you would modify
|
||||||
/etc/rc.d/rc.local to start the postmaster. Under a RedHat-like
|
/etc/rc.d/rc.local to start the postmaster. Under a RedHat-like
|
||||||
release you should create a SysV style script in
|
release you should create a SysV style script in
|
||||||
/etc/rc.d/rc3.d based on the /etc/rc.d/init.d skeleton file.
|
/etc/rc.d/rc3.d based on the /etc/rc.d/init.d skeleton file.
|
||||||
|
|
||||||
There's a sample file in contrib/linux/postgres.init
|
There's a sample file in contrib/linux/postgres.init
|
||||||
|
|
||||||
Here's another sample file supplied by John Robinson
|
Here's another sample file supplied by John Robinson
|
||||||
<john@intelligent.co.uk> which you should modify as needed:
|
which you should modify as needed:
|
||||||
|
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
@ -644,7 +648,8 @@ case "$1" in
|
|||||||
echo -n "Starting postgres Postmaster daemon:"
|
echo -n "Starting postgres Postmaster daemon:"
|
||||||
if [ -z "`pidofproc postmaster`" ]
|
if [ -z "`pidofproc postmaster`" ]
|
||||||
then
|
then
|
||||||
su postgres -c "/usr/local/pgsql/bin/postmaster -D /home/postgreSQL/data -p 5432 &"
|
su postgres -c "/usr/local/pgsql/bin/postmaster -D /home/postgr
|
||||||
|
eSQL/data -p 5432 &"
|
||||||
echo -n " postmaster"
|
echo -n " postmaster"
|
||||||
else
|
else
|
||||||
echo -n " (already running)"
|
echo -n " (already running)"
|
||||||
@ -673,7 +678,7 @@ exit 0
|
|||||||
|
|
||||||
This is due to a bug in regression scripts which only happens
|
This is due to a bug in regression scripts which only happens
|
||||||
on linux boxes. There are two workarounds as far as I know
|
on linux boxes. There are two workarounds as far as I know
|
||||||
(information from Tatsuo Ishii <t-ishii@sra.co.jp>):
|
(information from Tatsuo Ishii ):
|
||||||
|
|
||||||
1. change following in regress.sh:
|
1. change following in regress.sh:
|
||||||
time postgres -texecutor -tplanner -Q bench < bench.sql
|
time postgres -texecutor -tplanner -Q bench < bench.sql
|
||||||
@ -682,7 +687,8 @@ exit 0
|
|||||||
|
|
||||||
2. after running the test, remove a line at the very end of
|
2. after running the test, remove a line at the very end of
|
||||||
bench.out something like:
|
bench.out something like:
|
||||||
85.86user 114.47system 4:49.20elapsed 69%CPU (0avgtext+0avgdata 0maxresident)k
|
85.86user 114.47system 4:49.20elapsed 69%CPU (0avgtext+0avgdata
|
||||||
|
0maxresident)k
|
||||||
then type:
|
then type:
|
||||||
sh ./perquery < bench.out > & bench.out.perquery
|
sh ./perquery < bench.out > & bench.out.perquery
|
||||||
|
|
||||||
@ -693,8 +699,10 @@ exit 0
|
|||||||
select '4 hours'::timespan;
|
select '4 hours'::timespan;
|
||||||
returning '3 hours 59 minutes 60 seconds'?
|
returning '3 hours 59 minutes 60 seconds'?
|
||||||
|
|
||||||
You are running the new glibc2 libraries and have a version earlier than
|
You are running the new glibc2 libraries and have a version earlier tha
|
||||||
2.0.7. It is a math rounding problem in the library. Upgrade your library.
|
n
|
||||||
|
2.0.7. It is a math rounding problem in the library. Upgrade your libra
|
||||||
|
ry.
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
Dr. Andrew C.R. Martin University College London
|
Dr. Andrew C.R. Martin University College London
|
||||||
EMAIL: (Work) martin@biochem.ucl.ac.uk (Home) andrew@stagleys.demon.co.uk
|
EMAIL: (Work) martin@biochem.ucl.ac.uk (Home) andrew@stagleys.demon.co.uk
|
||||||
|
364
doc/TODO
364
doc/TODO
@ -1,14 +1,12 @@
|
|||||||
TODO list for PostgreSQL
|
TODO list for PostgreSQL
|
||||||
========================
|
========================
|
||||||
Last updated: Fri Nov 6 22:17:33 EST 1998
|
Last updated: Fri Jun 4 23:16:01 EDT 1999
|
||||||
|
|
||||||
Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
|
Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
|
||||||
|
|
||||||
The most recent version of this document can be viewed at
|
The most recent version of this document can be viewed at
|
||||||
the PostgreSQL WWW site, http://www.postgreSQL.org.
|
the PostgreSQL WWW site, http://www.postgreSQL.org.
|
||||||
|
|
||||||
THE CHANGES FOR 6.4 APPEAR AT THE END OF THIS DOCUMENT
|
|
||||||
|
|
||||||
A dash(-) marks changes to be in the next release.
|
A dash(-) marks changes to be in the next release.
|
||||||
|
|
||||||
Developers who have claimed items are:
|
Developers who have claimed items are:
|
||||||
@ -18,180 +16,131 @@ Developers who have claimed items are:
|
|||||||
* Bruce is Bruce Momjian<maillist@candle.pha.pa.us>
|
* Bruce is Bruce Momjian<maillist@candle.pha.pa.us>
|
||||||
* Bryan is Bryan Henderson<bryanh@giraffe.netgate.net>
|
* Bryan is Bryan Henderson<bryanh@giraffe.netgate.net>
|
||||||
* D'Arcy is D'Arcy J.M. Cain <darcy@druid.net>
|
* D'Arcy is D'Arcy J.M. Cain <darcy@druid.net>
|
||||||
* Dan is Dan McGuirk <mcguirk@indirect.com>
|
|
||||||
* Darren is Darren King <darrenk@insightdist.com>
|
|
||||||
* David is David Hartwig <daveh@insightdist.com>
|
* David is David Hartwig <daveh@insightdist.com>
|
||||||
* Edmund is Edmund Mergl <E.Mergl@bawue.de>
|
* Edmund is Edmund Mergl <E.Mergl@bawue.de>
|
||||||
* Goran is Goran Thyni <goran@bildbasen.se>
|
* Goran is Goran Thyni <goran@kyla.kiruna.se>
|
||||||
* Henry is Henry B. Hotz <hotz@jpl.nasa.gov>
|
|
||||||
* Jan is Jan Wieck <wieck@sapserv.debis.de>
|
* Jan is Jan Wieck <wieck@sapserv.debis.de>
|
||||||
* Jun is Jun Kuwamura <juk@rccm.co.jp>
|
|
||||||
* Maarten is Maarten Boekhold <maartenb@dutepp0.et.tudelft.nl>
|
|
||||||
* Marc is Marc Fournier <scrappy@hub.org>
|
* Marc is Marc Fournier <scrappy@hub.org>
|
||||||
* Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de>
|
|
||||||
* Massimo Dal Zotto <dz@cs.unitn.it>
|
* Massimo Dal Zotto <dz@cs.unitn.it>
|
||||||
* Michael is Michael Meskes <meskes@debian.org>
|
* Michael is Michael Meskes <meskes@debian.org>
|
||||||
* Oleg is Oleg Bartunov <oleg@sai.msu.su>
|
* Oleg is Oleg Bartunov <oleg@sai.msu.su>
|
||||||
* Paul is Paul M. Aoki <aoki@CS.Berkeley.EDU>
|
|
||||||
* Peter is Peter T Mount <peter@retep.org.uk>
|
* Peter is Peter T Mount <peter@retep.org.uk>
|
||||||
* Phil is Phil Thompson <phil@river-bank.demon.co.uk>
|
|
||||||
* Ryan is Ryan Kirkpatrick <rkirkpat@nag.cs.colorado.edu>
|
|
||||||
* Soo-Ho Ok <shok@detc.dongeui-tc.ac.kr>
|
|
||||||
* Stefan Simkovics <ssimkovi@rainbow.studorg.tuwien.ac.at>
|
* Stefan Simkovics <ssimkovi@rainbow.studorg.tuwien.ac.at>
|
||||||
* Sven is Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
|
|
||||||
* Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
|
* Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
|
||||||
* Tom is Tom Lane <tgl@sss.pgh.pa.us>
|
* Tom is Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
* Thomas is Thomas Lockhart <tgl@mythos.jpl.nasa.gov>
|
* Thomas is Thomas Lockhart <lockhart@alumni.caltech.edu>
|
||||||
* TomH is Tom I Helbekkmo <tih@Hamartun.Priv.NO>
|
* TomH is Tom I Helbekkmo <tih@Hamartun.Priv.NO>
|
||||||
* Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su>
|
|
||||||
|
|
||||||
Additional 6.4 developers include:
|
* Vadim is "Vadim B. Mikheev" <vadim@krs.ru>
|
||||||
---------------------------------
|
|
||||||
* Jun Kuwamura <juk@rccm.co.jp>
|
|
||||||
* Zeugswetter Andreas SARZ <Andreas.Zeugswetter@telecom.at>
|
|
||||||
* Soonmyung. Hong <hong@lunaris.hanmesoft.co.kr>
|
|
||||||
* Anders Hammarquist <iko@netg.se>
|
|
||||||
* Jeroen van Vianen <jeroenv@design.nl>
|
|
||||||
* Aldrin L. <aldrin@americasnet.com>
|
|
||||||
* Pascal ANDRE <andre@via.ecp.fr>
|
|
||||||
* Magnus Hagander <mha@edu.sollentuna.se>
|
|
||||||
* Robert Bruccoleri <bruc@pluto.njcc.com>
|
|
||||||
* Paul A Vixie <paul@vix.com>
|
|
||||||
* Jacek Lasecki <jacek@sound.eti.pg.gda.pl>
|
|
||||||
|
|
||||||
RELIABILITY
|
RELIABILITY
|
||||||
-----------
|
-----------
|
||||||
* Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup
|
* Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup
|
||||||
* Overhaul bufmgr/lockmgr/transaction manager
|
* Overhaul bufmgr/lockmgr/transaction manager
|
||||||
* Remove EXTEND?
|
* Remove EXTEND?
|
||||||
* Can lo_export()/lo_import() read/write anywhere, causing a security problem?
|
|
||||||
* Tables that start with xinv confused to be large objects
|
* Tables that start with xinv confused to be large objects
|
||||||
* Two and three dimmensional arrays display improperly, missing {}
|
* Two and three dimensional arrays display improperly, missing {}
|
||||||
* GROUP BY in INSERT INTO table SELECT * FROM table2 fails
|
|
||||||
* Prevent auto-table reference, like SELECT table.col WHERE col = 3 (?)
|
|
||||||
* SELECT * FROM table WHERE int4_column = '1' fails
|
|
||||||
* SELECT a[1] FROM test fails, it needs test.a[1]
|
* SELECT a[1] FROM test fails, it needs test.a[1]
|
||||||
* UPDATE table SET table.value = 3 fails
|
* UPDATE table SET table.value = 3 fails
|
||||||
* User who can create databases can modify pg_database table
|
* User who can create databases can modify pg_database table
|
||||||
* optimizer memory exhaustion with many OR's
|
|
||||||
* elog() does not free all its memory(Jan)
|
* elog() does not free all its memory(Jan)
|
||||||
* views on subselects fail
|
* views on subselects fail
|
||||||
* disallow inherited columns with the same name as new columns
|
* disallow inherited columns with the same name as new columns
|
||||||
* recover or force failure when disk space is exhausted
|
* recover or force failure when disk space is exhausted
|
||||||
* default char() value not to full length crashes server on some OS's
|
|
||||||
* allow UPDATE using aggregate to affect all rows, not just one
|
|
||||||
* computations in views fail:
|
|
||||||
create view test as select usesysid * usesysid from pg_shadow;
|
|
||||||
* views containing aggregates sometimes fail(Jan)
|
* views containing aggregates sometimes fail(Jan)
|
||||||
|
* ALTER TABLE ADD COLUMN does not honor DEFAULT, add CONSTRAINT
|
||||||
|
* array index references without table name cause problems
|
||||||
|
* views with spaces in view name fail when referenced
|
||||||
|
* plpgsql does not handle quoted mixed-case identifiers
|
||||||
|
* do not allow bpchar column creation without length
|
||||||
|
* INSERT INTO ... SELECT with AS columns matching result columns problem
|
||||||
|
|
||||||
|
|
||||||
ENHANCEMENTS
|
ENHANCEMENTS
|
||||||
------------
|
------------
|
||||||
* Replace table-level locking with row or page-level locking(Vadim)
|
|
||||||
* Add SERIAL type
|
|
||||||
* Transaction log, so re-do log can be on a separate disk
|
* Transaction log, so re-do log can be on a separate disk
|
||||||
* Allow transaction commits with rollback with no-fsync performance
|
* Allow transaction commits with rollback with no-fsync performance
|
||||||
* More access control over who can create tables and access the database
|
* More access control over who can create tables and access the database
|
||||||
* Add full ANSI SQL capabilities
|
* Add full ANSI SQL capabilities
|
||||||
* add OUTER joins, left and right (Thomas)
|
* add OUTER joins, left and right(Thomas)
|
||||||
* add INTERSECTS, SUBTRACTS(Stephan)
|
|
||||||
* add temporary tables
|
|
||||||
* add sql3 recursive unions
|
* add sql3 recursive unions
|
||||||
* add the concept of dataspaces
|
* add the concept of dataspaces
|
||||||
* add DECIMAL, NUMERIC, DOUBLE PRECISION, BIT, BIT VARYING
|
* add BIT, BIT VARYING
|
||||||
* NCHAR (as distinguished from ordinary varchar),
|
* NCHAR (as distinguished from ordinary varchar),
|
||||||
* DOMAIN capability
|
* DOMAIN capability
|
||||||
* Allow compression of large fields or a compressed field type
|
* Allow compression of large fields or a compressed field type
|
||||||
* Fix the rules system(Jan,Soo-Ho)
|
|
||||||
* add CONSTRAINT
|
|
||||||
* Full set of text operations and functions
|
|
||||||
* word searches, concat,max() on text, char
|
|
||||||
* Large objects
|
* Large objects
|
||||||
* Fix large object mapping scheme, own reltype(Peter)
|
* Fix large object mapping scheme, own typeid or reltype(Peter)
|
||||||
* Allow large text type to use large objects(Peter)
|
* Allow large text type to use large objects(Peter)
|
||||||
* not to stuff everything as files in a single directory
|
* not to stuff everything as files in a single directory
|
||||||
* Fix large object memory leaks
|
|
||||||
* delete orphaned large objects
|
|
||||||
* Better interface for adding to pg_group
|
* Better interface for adding to pg_group
|
||||||
* Make MONEY/DECIMAL have a defined precision
|
|
||||||
* Fix tables >2G, or report error when 2G size reached
|
|
||||||
(fix lseek()/off_t, mdextend()/RELSEG_SIZE)
|
|
||||||
* Add REGEX internationalization
|
|
||||||
* allow row re-use without vacuum, maybe?(Vadim)
|
* allow row re-use without vacuum, maybe?(Vadim)
|
||||||
* Add word index for text fields, maybe with trigrams, i.e.:
|
|
||||||
* ' (cat | dog) & ! fox ' meaning text has cat aor dog, but not fox
|
|
||||||
* Populate backend status area and write program to dump status data
|
* Populate backend status area and write program to dump status data
|
||||||
* Add ALTER TABLE DROP COLUMN feature
|
* Add ALTER TABLE DROP/ALTER COLUMN feature
|
||||||
* Allow INSERT INTO ... SELECT to convert column types
|
* Add syslog functionality
|
||||||
* Add syslog functionality(Marc)
|
|
||||||
* Add STDDEV/VARIANCE() function for standard deviation computation/variance
|
* Add STDDEV/VARIANCE() function for standard deviation computation/variance
|
||||||
* add UNIQUE capability to non-btree indexes
|
* add UNIQUE capability to non-btree indexes
|
||||||
* make number of backends a config parameter, storage/sinvaladt.h:MaxBackendId
|
|
||||||
* certain indexes will not shrink, i.e. oid indexes with many inserts
|
* certain indexes will not shrink, i.e. oid indexes with many inserts
|
||||||
* make NULL's come out at the beginning or end depending on the ORDER BY direction
|
* make NULL's come out at the beginning or end depending on the ORDER BY direction
|
||||||
* change the library/backend interface to use network byte order
|
|
||||||
* Restore unused oid's on backend exit if no one else has gotten oids
|
* Restore unused oid's on backend exit if no one else has gotten oids
|
||||||
* remove non-standard types from the system, and make them loadable
|
|
||||||
* have UPDATE/DELETE clean out indexes
|
* have UPDATE/DELETE clean out indexes
|
||||||
* allow WHERE restriction on ctid
|
* allow WHERE restriction on ctid
|
||||||
* allow pg_descriptions when creating types, tables, columns, and functions
|
* allow pg_descriptions when creating types, tables, columns, and functions
|
||||||
* Fix compile and security of Kerberos/GSSAPI code
|
|
||||||
* Allow psql to print nulls as distinct from ""(?)
|
* Allow psql to print nulls as distinct from ""(?)
|
||||||
* Allow variable casts with BETWEEN 'today'::asbtime AND 'today'::abstime
|
|
||||||
* Allow INSERT INTO ... SELECT ... FROM view to work
|
|
||||||
* Make VACUUM on database not lock pg_class
|
|
||||||
* Make VACUUM ANALYZE only use a readlock
|
|
||||||
* Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions
|
* Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions
|
||||||
* Allow installation data block size and max tuple size configuration(Darren)
|
* Allow DISTINCT on views
|
||||||
* Allow views on a UNION
|
|
||||||
* Allow DISTINCT on view
|
|
||||||
* Allow views of aggregate columns
|
* Allow views of aggregate columns
|
||||||
* Allow variable block sizes(Darren)
|
|
||||||
* System tables are now more update-able from SQL(Jan)
|
|
||||||
* New pg_shadow file, pg_user is now a view of pg_shadow(Jan)
|
|
||||||
* Allow flag to control COPY input/output of NULLs
|
* Allow flag to control COPY input/output of NULLs
|
||||||
* Allow CLUSTER on all tables at once, and improve CLUSTER
|
* Allow CLUSTER on all tables at once, and improve CLUSTER
|
||||||
* Change all references of Postgres to PostgreSQL, including binary names
|
* Allow elog() to return error codes, not just messages
|
||||||
* Add ELOG_TIMESTAMPS to elog()(?)
|
* allow international error message support and add error codes
|
||||||
* Change LOCK tablename to LOCK TABLE tablename(?)
|
|
||||||
* Allow max tuple length to be changed(Darren)
|
|
||||||
* Have psql with no database name not connect to username as default(?)
|
|
||||||
* Allow subqueries in target list
|
* Allow subqueries in target list
|
||||||
* Granting permissions to another user looses permissions for the owner
|
|
||||||
* Allow queries across multiple databases
|
* Allow queries across multiple databases
|
||||||
* Add replication of distributed databases
|
* Add replication of distributed databases
|
||||||
* Allow table destruction/alter to be rolled back
|
|
||||||
* Add pg_attribute.atttypmod/Resdom->restypmod to PGresult structure
|
|
||||||
* Generate error on CREATE OPERATOR of ~~, ~ and and ~*
|
* Generate error on CREATE OPERATOR of ~~, ~ and and ~*
|
||||||
* Allow constraint NULL just as we honor NOT NULL
|
|
||||||
* Add version number in startup banners for psql and postmaster
|
|
||||||
* Restructure storing of GRANT permission information to allow +-=
|
|
||||||
* allow psql \copy to allow delimiters
|
* allow psql \copy to allow delimiters
|
||||||
* allow international error message support and add error codes
|
|
||||||
* allow ORDER BY a function(David)
|
|
||||||
* allow usernames with dashes(GRANT fails)
|
|
||||||
* add a function to return the last inserted oid, for use in psql scripts
|
* add a function to return the last inserted oid, for use in psql scripts
|
||||||
* allow creation of functional indexes to use default types
|
* allow creation of functional indexes to use default types
|
||||||
* put sort files, large objects in their on directory
|
* put sort files, large objects in their on directory
|
||||||
* CREATE VIEW myview (name) AS SELECT lname FROM wages fails
|
|
||||||
* do autocommit so always in a transaction block
|
* do autocommit so always in a transaction block
|
||||||
* add SIMILAR TO to allow character classes, 'pg_[a-c]%'
|
* add SIMILAR TO to allow character classes, 'pg_[a-c]%'
|
||||||
* allow function isnull(val,'string') to return string if value is null
|
|
||||||
* multi-verion concurrency control(Vadim)
|
|
||||||
* improve reporting of syntax errors by showing location of error in query
|
* improve reporting of syntax errors by showing location of error in query
|
||||||
* allow chaining of pages to allow >8k tuples
|
* allow chaining of pages to allow >8k tuples, auto-large object use
|
||||||
* no min/max for oid type
|
|
||||||
* remove un-needed conversion functions
|
|
||||||
* redesign the function call interface to handle NULLs better(Jan)
|
* redesign the function call interface to handle NULLs better(Jan)
|
||||||
|
* permissions on indexes - prevent them?
|
||||||
|
* document/trigger/rule so changes to pg_shadow create pg_pwd
|
||||||
|
* generate postmaster pid file and remove flock/fcntl lock code
|
||||||
|
* add ability to specifiy location of lock/socket files
|
||||||
|
* auto-destroy sequence on DROP of table with SERIAL
|
||||||
|
* make a separate serial type?
|
||||||
|
* allow user to define char1 column
|
||||||
|
* allow LOCK TABLE tab1, tab2, tab3 so all tables locked in unison
|
||||||
|
* allow INSERT/UPDATE of system-generated oid value for a row
|
||||||
|
* missing optimizer selectivities for date, etc.
|
||||||
|
* Add support for & operator
|
||||||
|
* store binary-compatible type information in the system
|
||||||
|
* Allow ESCAPE '\' at the end of LIKE for ANSI compliance
|
||||||
|
* rewrite the LIKE handling by rewriting the user string with the
|
||||||
|
supplied ESCAPE
|
||||||
|
* Fix memory leak for expressions?, aggregates?
|
||||||
|
* Allow Subplans to use efficient joins(hash, merge) with upper variable
|
||||||
|
* Update reltuples from COPY command
|
||||||
|
* Allow CREATE INDEX zman_index ON test (date_trunc( 'day', zman ) datetime_ops)
|
||||||
|
fails index can't store constant parameters
|
||||||
|
* allow SQL function indexes
|
||||||
|
* ALTER TABLE ADD COLUMN to inherited table put column in wrong place
|
||||||
|
* Add IPv6 capability to INET/CIDR types
|
||||||
|
* Allow PQrequestCancel() to terminate when in waiting-for-lock state
|
||||||
|
* Increase identifier length(NAMEDATALEN) if small performance hit
|
||||||
|
* Fix for long table/column name auto-sequence serial name
|
||||||
|
|
||||||
|
|
||||||
PERFORMANCE
|
PERFORMANCE
|
||||||
-----------
|
-----------
|
||||||
* Use indexes in ORDER BY for restrictive data sets, min(), max()
|
* Use indexes in ORDER BY for restrictive data sets, min(), max()
|
||||||
* Allow LIMIT ability on single-table queries that have no ORDER BY or
|
* Allow LIMIT ability on single-table queries that have no ORDER BY to use
|
||||||
a matching index
|
a matching index
|
||||||
* Pull requested data directly from indexes, bypassing heap data
|
* Pull requested data directly from indexes, bypassing heap data
|
||||||
* Prevent psort() usage when query already using index matching ORDER BY
|
|
||||||
* Optimizing disjunctive queries
|
|
||||||
* Fix bushy-plans
|
|
||||||
* Prevent fsync in SELECT-only queries
|
* Prevent fsync in SELECT-only queries
|
||||||
* Cache most recent query plan(s?)
|
* Cache most recent query plan(s?)
|
||||||
* Shared catalog cache, reduce lseek()'s by caching table size in shared area
|
* Shared catalog cache, reduce lseek()'s by caching table size in shared area
|
||||||
@ -199,223 +148,24 @@ PERFORMANCE
|
|||||||
* Add FILLFACTOR to index creation
|
* Add FILLFACTOR to index creation
|
||||||
* update pg_statistic table to remove operator column
|
* update pg_statistic table to remove operator column
|
||||||
* make index creation use psort code, because it is now faster(Vadim)
|
* make index creation use psort code, because it is now faster(Vadim)
|
||||||
* remove fork()/exec() of backend and make it just fork()
|
|
||||||
* Add base table name to \d index
|
|
||||||
* Allow char() not to use variable-sized header to reduce disk size
|
* Allow char() not to use variable-sized header to reduce disk size
|
||||||
* Do async I/O to do better read-ahead of data
|
* Do async I/O to do better read-ahead of data
|
||||||
* Fix optmizer problem with self-table joins
|
|
||||||
* Fix memory exhaustion when using many OR's
|
* Fix memory exhaustion when using many OR's
|
||||||
* Use spin locks only on multi-CPU systems, yield CPU instead
|
|
||||||
* Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca>
|
* Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca>
|
||||||
when it is available
|
when it is available
|
||||||
* use mmap() rather than SYSV shared memory(?)
|
* use mmap() rather than SYSV shared memory(?)
|
||||||
* use index to restrict rows returned by multi-key index when used with
|
* use index to restrict rows returned by multi-key index when used with
|
||||||
non-consecutive keys or OR clauses, so fewer heap accesses
|
non-consecutive keys or OR clauses, so fewer heap accesses
|
||||||
* use index with constants on functions
|
* use index with constants on functions
|
||||||
|
* process const = const parts of OR clause in separate pass
|
||||||
|
* make oid use oidin/oidout not int4in/int4out in pg_type.h
|
||||||
|
* make oid use unsigned int more reliably, pg_atoi()
|
||||||
|
* create more system table indexes for faster cache lookups
|
||||||
|
* Move LIKE index optimization handling to the optimizer
|
||||||
|
* Improve LIMIT processing by using index to limit rows processed
|
||||||
|
* Improve Subplan list handling
|
||||||
|
|
||||||
|
|
||||||
DOCUMENTATION
|
DOCUMENTATION
|
||||||
-------------
|
-------------
|
||||||
* Update usermanual source(many)
|
|
||||||
* added features used in grammer but not in docs, like :: and CAST
|
|
||||||
* Add keyword list to documentation, already in /tools
|
|
||||||
* Add 'man pgsql' to show all manual page names
|
|
||||||
* Add use of 'const' for varibles in source tree
|
* Add use of 'const' for varibles in source tree
|
||||||
|
|
||||||
|
|
||||||
=============================================================================
|
|
||||||
|
|
||||||
CHANGES IN THE 6.4 RELEASE
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
Bug Fixes
|
|
||||||
---------
|
|
||||||
Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan)
|
|
||||||
Remove char2-16 data types, use char/varchar(Darren)
|
|
||||||
Pqfn not handles a NOTICE message(Anders)
|
|
||||||
Reduced busywaiting overhead for spinlocks with many backends (dg)
|
|
||||||
Stuck spinlock detection (dg)
|
|
||||||
Fix up "ISO-style" timespan decoding and encoding(Thomas)
|
|
||||||
Fix problem with table drop after rollback of transaction(Vadim)
|
|
||||||
Change error message and remove non-functional update message(Vadim)
|
|
||||||
Fix for COPY array checking
|
|
||||||
Fix for SELECT 1 UNION SELECT NULL
|
|
||||||
Fix for buffer leaks in large object calls(Pascal)
|
|
||||||
Change owner from oid to int4 type(Bruce)
|
|
||||||
Fix a bug in the oracle compatibility functions btrim() ltrim() and rtrim()
|
|
||||||
Fix for shared invalidation cache overflow(Massimo)
|
|
||||||
Prevent file descriptor leaks in failed COPY's(Bruce)
|
|
||||||
Fix memory leak in libpgtcl's pg_select(Constantin)
|
|
||||||
Fix problems with username/passwords over 8 characters(Tom)
|
|
||||||
Fix problems with handling of asynchronous NOTIFY in backend(Tom)
|
|
||||||
Fix of many bad system table entries(Tom)
|
|
||||||
|
|
||||||
Enhancements
|
|
||||||
------------
|
|
||||||
Upgrade ecpg and ecpglib,see src/interfaces/ecpc/ChangeLog(Michael)
|
|
||||||
Show the index used in an EXPLAIN(Zeugswetter)
|
|
||||||
EXPLAIN invokes rule system and shows plan(s) for rewritten queries(Jan)
|
|
||||||
Multi-byte awareness of many data types and functions, via configure(Tatsuo)
|
|
||||||
New configure --with-mb option(Tatsuo)
|
|
||||||
New initdb --pgencoding option(Tatsuo)
|
|
||||||
New createdb -E multibyte option(Tatsuo)
|
|
||||||
Select version(); now returns PostgreSQL version(Jeroen)
|
|
||||||
Libpq now allows asynchronous clients(Tom)
|
|
||||||
Allow cancel from client of backend query(Tom)
|
|
||||||
Psql now cancels query with Control-C(Tom)
|
|
||||||
Libpq users need not issue dummy queries to get NOTIFY messages(Tom)
|
|
||||||
NOTIFY now sends sender's PID, so you can tell whether it was your own(Tom)
|
|
||||||
PGresult struct now includes associated error message, if any(Tom)
|
|
||||||
Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas)
|
|
||||||
Add routines to convert between varchar and bpchar(Thomas)
|
|
||||||
Add routines to allow sizing of varchar and bpchar into target columns(Thomas)
|
|
||||||
Add bit flags to support timezonehour and minute in data retrieval(Thomas)
|
|
||||||
Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas)
|
|
||||||
Fixes for unary minus parsing with leading spaces(Thomas)
|
|
||||||
Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas)
|
|
||||||
Check for and properly ignore FOREIGN KEY column constraints(Thomas)
|
|
||||||
Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas)
|
|
||||||
Enable HAVING clause but no fixes elsewhere yet.
|
|
||||||
Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas)
|
|
||||||
Save string type if specified for DEFAULT clause handling(Thomas)
|
|
||||||
Coerce operations involving different data types(Thomas)
|
|
||||||
Allow some index use for columns of different types(Thomas)
|
|
||||||
Add capabilities for automatic type conversion(Thomas)
|
|
||||||
Cleanups for large objects, so file is truncated on open(Peter)
|
|
||||||
Readline cleanups(Tom)
|
|
||||||
Allow psql \f \ to make spaces as delimiter(Bruce)
|
|
||||||
Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce)
|
|
||||||
Msql compatibility library in /contrib(Aldrin)
|
|
||||||
Remove the requirement that ORDER/GROUP BY clause identifiers be
|
|
||||||
included in the target list(David)
|
|
||||||
Convert columns to match columns in UNION clauses(Thomas)
|
|
||||||
Remove fork()/exec() and only do fork()(Bruce)
|
|
||||||
Jdbc cleanups(Peter)
|
|
||||||
Show backend status on ps command line(only works on some platforms)(Bruce)
|
|
||||||
Pg_hba.conf now has a sameuser option in the database field
|
|
||||||
Make lo_unlink take oid param, not int4
|
|
||||||
New DISABLE_COMPLEX_MACRO for compilers that can't handle our macros(Bruce)
|
|
||||||
Libpgtcl now handles NOTIFY as a Tcl event, need not send dummy queries(Tom)
|
|
||||||
libpgtcl cleanups(Tom)
|
|
||||||
Add -error option to libpgtcl's pg_result command(Tom)
|
|
||||||
New locale patch, see docs/README/locale(Oleg)
|
|
||||||
Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb)
|
|
||||||
New contrib/lo code for large object orphan removal(Peter)
|
|
||||||
New psql command "SET CLIENT_ENCODING TO 'encoding'" for multi-bytes
|
|
||||||
feature, see /doc/README.mb(Tatsuo)
|
|
||||||
/contrib/noupdate code to revoke update permission on a column
|
|
||||||
Libpq can now be compiled on win32(Magnus)
|
|
||||||
Add PQsetdbLogin() in libpq
|
|
||||||
New 8-byte integer type, checked by configure for OS support(Thomas)
|
|
||||||
Better support for quoted table/column names(Thomas)
|
|
||||||
Surround table and column names with double-quotes in pg_dump(Thomas)
|
|
||||||
PQreset() now works with passwords(Tom)
|
|
||||||
Handle case of GROUP BY target list column number out of range(David)
|
|
||||||
Allow UNION in subselects
|
|
||||||
Add auto-size to screen to \d? commands(Bruce)
|
|
||||||
Use UNION to show all \d? results in one query(Bruce)
|
|
||||||
Add \d? field search feature(Bruce)
|
|
||||||
Pg_dump issues fewer \connect requests(Tom)
|
|
||||||
Make pg_dump -z flag work better, document it in manual page(Tom)
|
|
||||||
Add HAVING clause with full support for subselects and unions(Stephan)
|
|
||||||
Full text indexing routines in contrib/fulltextindex(Maarten)
|
|
||||||
Transaction ids now stored in shared memory(Vadim)
|
|
||||||
New PGCLIENTENCODING when issuing COPY command(Tatsuo)
|
|
||||||
Support for SQL92 syntax "SET NAMES"(Tatsuo)
|
|
||||||
Support for LATIN2-5(Tatsuo)
|
|
||||||
Add UNICODE regression test case(Tatsuo)
|
|
||||||
Lock manager cleanup, new locking modes for LLL(Vadim)
|
|
||||||
Allow index use with OR clauses(Bruce)
|
|
||||||
Allows "SELECT NULL ORDER BY 1;"
|
|
||||||
Explain VERBOSE prints the plan, and now pretty-prints the plan to
|
|
||||||
the postmaster log file(Bruce)
|
|
||||||
Add Indices display to \d command(Bruce)
|
|
||||||
Allow GROUP BY on functions(David)
|
|
||||||
New pg_class.relkind for large objects(Bruce)
|
|
||||||
New way to send libpq NOTICE messages to a different location(Tom)
|
|
||||||
New \w write command to psql(Bruce)
|
|
||||||
New /contrib/findoidjoins scans oid columns to find join relationships(Bruce)
|
|
||||||
Allow binary-compatible indices to be considered when checking for valid
|
|
||||||
indices for restriction clauses containing a constant(Thomas)
|
|
||||||
New ISBN/ISSN code in /contrib/isbn_issn
|
|
||||||
Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN constraint(Thomas)
|
|
||||||
New rewrite system fixes many problems with rules and views(Jan)
|
|
||||||
* Rules on relations work
|
|
||||||
* Event qualifications on insert/update/delete work
|
|
||||||
* New OLD variable to reference CURRENT, CURRENT will be remove in future
|
|
||||||
* Update rules can reference NEW and OLD in rule qualifications/actions
|
|
||||||
* Insert/update/delete rules on views work
|
|
||||||
* Multiple rule actions are now supported, surrounded by parentheses
|
|
||||||
* Regular users can create views/rules on tables they have RULE permits
|
|
||||||
* Rules and views inherit the permissions on the creator
|
|
||||||
* No rules at the column level
|
|
||||||
* No UPDATE NEW/OLD rules
|
|
||||||
* New pg_tables, pg_indexes, pg_rules and pg_views system views
|
|
||||||
* Only a single action on SELECT rules
|
|
||||||
* Total rewrite overhaul, perhaps for 6.5
|
|
||||||
* handle subselects
|
|
||||||
* handle aggregates on views
|
|
||||||
* handle insert into select from view works
|
|
||||||
System indexes are now multi-key(Bruce)
|
|
||||||
Oidint2, oidint4, and oidname types are removed(Bruce)
|
|
||||||
Use system cache for more system table lookups(Bruce)
|
|
||||||
New backend programming language PL/pgSQL in backend/pl(Jan)
|
|
||||||
New SERIAL data type, auto-creates sequence/index(Thomas)
|
|
||||||
Enable assert checking without a recompile(Massimo)
|
|
||||||
User lock enhancements(Massimo)
|
|
||||||
New setval() command to set sequence value(Massimo)
|
|
||||||
Auto-remove unix socket file on startup if no postmaster running(Massimo)
|
|
||||||
Conditional trace package(Massimo)
|
|
||||||
New UNLISTEN command(Massimo)
|
|
||||||
Psql and libpq now compile under win32 using win32.mak(Magnus)
|
|
||||||
Lo_read no longer stores trailing NULL(Bruce)
|
|
||||||
Identifiers are now truncated to 31 characters internally(Bruce)
|
|
||||||
Createuser options now availble on the command line
|
|
||||||
Code for 64-bit integer supported added, configure tested, int8 type(Thomas)
|
|
||||||
Prevent file descriptor leaf from failed COPY(Bruce)
|
|
||||||
New pg_upgrade command(Bruce)
|
|
||||||
Updated /contrib directories(Massimo)
|
|
||||||
New CREATE TABLE DEFAULT VALUES statement available(Thomas)
|
|
||||||
New INSERT INTO TABLE DEFAULT VALUES statement available(Thomas)
|
|
||||||
New DECLARE and FETCH feature(Thomas)
|
|
||||||
libpq's internal structures now not exported(Tom)
|
|
||||||
Allow up to 8 key indexes(Bruce)
|
|
||||||
Remove ARCHIVE keyword, that is no longer used(Thomas)
|
|
||||||
pg_dump -n flag to supress quotes around indentifiers
|
|
||||||
disable system columns for views(Jan)
|
|
||||||
new INET and CIDR types for network addresses(TomH, Paul)
|
|
||||||
no more double quotes in psql output
|
|
||||||
pg_dump now dumps views(Terry)
|
|
||||||
new SET QUERY_LIMIT(Tatsuo,Jan)
|
|
||||||
|
|
||||||
Source Tree Changes
|
|
||||||
-------------------
|
|
||||||
/contrib cleanup(Jun)
|
|
||||||
Inline some small functions called for every row(Bruce)
|
|
||||||
Alpha/linux fixes
|
|
||||||
Hp/UX cleanups(Tom)
|
|
||||||
Multi-byte regression tests(Soonmyung.)
|
|
||||||
Remove --disabled options from configure
|
|
||||||
Define PGDOC to use POSTGRESDIR by default
|
|
||||||
Make regression optional
|
|
||||||
Remove extra braces code to pgindent(Bruce)
|
|
||||||
Add bsdi shared library support(Bruce)
|
|
||||||
New --without-CXX support configure option(Brook)
|
|
||||||
New FAQ_CVS
|
|
||||||
Update backend flowchart in tools/backend(Bruce)
|
|
||||||
Change atttypmod from int16 to int32(Bruce, Tom)
|
|
||||||
Getrusage() fix for platforms that do not have it(Tom)
|
|
||||||
Add PQconnectdb, PGUSER, PGPASSWORD to libpq man page
|
|
||||||
NS32K platform fixes(Phil Nelson, John Buller)
|
|
||||||
Sco 7/UnixWare 2.x fixes(Billy,others)
|
|
||||||
Sparc/Solaris 2.5 fixes(Ryan)
|
|
||||||
Pgbuiltin.3 is obsolete, move to doc files(Thomas)
|
|
||||||
Even more documention(Thomas)
|
|
||||||
Nextstep support(Jacek)
|
|
||||||
Aix support(David)
|
|
||||||
pginterface manual page(Bruce)
|
|
||||||
shared libraries all have version numbers
|
|
||||||
merged all OS-specific shared library defines into one file
|
|
||||||
smarter TCL/TK configuration checking(Billy)
|
|
||||||
smarter perl configuration(Brook)
|
|
||||||
configure uses supplied install-sh if no install script found(Tom)
|
|
||||||
new Makefile.shlib for shared library configuration(Tom)
|
|
||||||
|
@ -280,6 +280,8 @@ Fix GROUP BY in INSERT INTO table SELECT * FROM table2(Jan)
|
|||||||
Fix for computations in views(Jan)
|
Fix for computations in views(Jan)
|
||||||
Fix for aggregates on array indexes(Tom)
|
Fix for aggregates on array indexes(Tom)
|
||||||
Fix for DEFAULT handles single quotes in value requiring too many quotes
|
Fix for DEFAULT handles single quotes in value requiring too many quotes
|
||||||
|
Fix security problem with non-super users importing/exporting large objects(Tom)
|
||||||
|
Rollback of transaction that creates table cleaned up properly(Tom)
|
||||||
|
|
||||||
Enhancements
|
Enhancements
|
||||||
------------
|
------------
|
||||||
|
Reference in New Issue
Block a user