Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
39cefa66
Commit
39cefa66
authored
Jul 13, 1997
by
Bruce Momjian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updates for 6.1.1.
parent
69e5d638
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
987 additions
and
1045 deletions
+987
-1045
HISTORY
HISTORY
+30
-0
INSTALL
INSTALL
+21
-12
doc/FAQ
doc/FAQ
+897
-1028
doc/TODO
doc/TODO
+39
-5
No files found.
HISTORY
View file @
39cefa66
PostgreSQL 6.1.1 Sun Jul 13 15:11:47 EDT 1997
-------------------------------------------------------------
This release does not require a dump/restore. Rerun configure. Compile
the new release. Recompile all your custom applications so they use the
libpq library in this new release. Stop the postmaster process, install
the new release, and restart the postmaster.
Changes in this release
-----------------------
fix for SET with options (Thomas)
fix month boundary arithmetic(Thomas)
fix timezone daylight handling for some ports(Thomas)
allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce)
new psql \connect option allows changing usernames without chaning databases
fix for datetime arithmetic over month boundaries(Thomas)
fix for initdb --debug option(Tatsuo)
lextest cleanup(Bruce)
hash fixes(Vadim)
psql's \d now case-insensitive(Bruce)
psql's backslash commands can now have trailing semicolon(Bruce)
fix memory leak in psql when using \g(Bruce)
major fix for endian handling of communication to server(Thomas, Tatsuo)
improvements in datetime and timespan routines(Thomas)
timestamp overhauled to use standard functions(Thomas)
Fix for Solaris assembler and include files(Yoshihiko Ichikawa)
allow underscores in usernames(Bruce)
pg_dumpall now returns proper status, portability fix(Bruce)
PostgreSQL 6.1 Sun Jun 8 14:41:13 EDT 1997
PostgreSQL 6.1 Sun Jun 8 14:41:13 EDT 1997
-------------------------------------------------------------
-------------------------------------------------------------
...
...
INSTALL
View file @
39cefa66
...
@@ -2,7 +2,7 @@ POSTGRESQL INSTALLATION INSTRUCTIONS
...
@@ -2,7 +2,7 @@ POSTGRESQL INSTALLATION INSTRUCTIONS
Copyright (c) 1997 Regents of the University of California
Copyright (c) 1997 Regents of the University of California
This is file /usr/src/pgsql/INSTALL. It contains notes on how to install
This is file /usr/src/pgsql/INSTALL. It contains notes on how to install
PostgreSQL v6.1. Up to date information on PostgreSQL may be found at
PostgreSQL v6.1.
1.
Up to date information on PostgreSQL may be found at
http://www.postgresql.org.
http://www.postgresql.org.
PostgreSQL is an RDBMS database server. It is not completely ANSI SQL
PostgreSQL is an RDBMS database server. It is not completely ANSI SQL
...
@@ -40,10 +40,10 @@ REQUIREMENTS TO RUN POSTGRESQL
...
@@ -40,10 +40,10 @@ REQUIREMENTS TO RUN POSTGRESQL
PostgreSQL has been tested on the following platforms:
PostgreSQL has been tested on the following platforms:
aix IBM on AIX 3.2.5
aix IBM on AIX 3.2.5
or 4.x
alpha DEC Alpha AXP on OSF/1 2.0
alpha DEC Alpha AXP on OSF/1 2.0
BSD44_derived OSs derived from 4.4-lite BSD (NetBSD, FreeBSD)
BSD44_derived OSs derived from 4.4-lite BSD (NetBSD, FreeBSD)
bsdi BSD/OS 2.0, 2.01, 2.1
bsdi BSD/OS 2.0, 2.01, 2.1
, 3.0
dgux DG/UX 5.4R3.10
dgux DG/UX 5.4R3.10
hpux HP PA-RISC on HP-UX 9.0
hpux HP PA-RISC on HP-UX 9.0
i386_solaris i386 Solaris
i386_solaris i386 Solaris
...
@@ -67,8 +67,17 @@ You should have at least 8 MB of memory and at least 45 MB of disk space
...
@@ -67,8 +67,17 @@ You should have at least 8 MB of memory and at least 45 MB of disk space
to hold the source, binaries, and user databases. After installation
to hold the source, binaries, and user databases. After installation
you may reduce this to about 3 Mbytes plus space for user databases.
you may reduce this to about 3 Mbytes plus space for user databases.
To upgrade from PostgreSQL v6.1 to v6.1.1 do the following:
To upgrade to PostgreSQL v6.1 do the following:
-----------------------------------------------------------
1) Run configure on the new release
2) Compile the new release
3) Recompile your custom applications to use the new libpq library
4) Stop the postmaster
5) Install the new release
6) Restart the postmaster
To those doing a fresh install or upgrading to PostgreSQL v6.1.1
from 6.0 or 1.* release, do the following:
----------------------------------------------
----------------------------------------------
1) Read any last minute information and platform specific porting
1) Read any last minute information and platform specific porting
...
@@ -109,7 +118,7 @@ To upgrade to PostgreSQL v6.1 do the following:
...
@@ -109,7 +118,7 @@ To upgrade to PostgreSQL v6.1 do the following:
To check for disk space, use command "df -k".
To check for disk space, use command "df -k".
4) Ftp file ftp://ftp.postgresql.org/pub/postgresql-v6.1.tar.gz from the
4) Ftp file ftp://ftp.postgresql.org/pub/postgresql-v6.1.
1.
tar.gz from the
internet. Store it in your home directory.
internet. Store it in your home directory.
5) Some platforms use flex. If your system uses flex then make sure
5) Some platforms use flex. If your system uses flex then make sure
...
@@ -151,7 +160,7 @@ To upgrade to PostgreSQL v6.1 do the following:
...
@@ -151,7 +160,7 @@ To upgrade to PostgreSQL v6.1 do the following:
postgres super user. Type (with the gunzip line and the following
postgres super user. Type (with the gunzip line and the following
line typed as one line):
line typed as one line):
cd
cd
gunzip -c postgresql-v6.1.tar.gz |
gunzip -c postgresql-v6.1.
1.
tar.gz |
tar xvf - src/bin/pg_dump/pg_dumpall
tar xvf - src/bin/pg_dump/pg_dumpall
chmod a+x src/bin/pg_dump/pg_dumpall
chmod a+x src/bin/pg_dump/pg_dumpall
src/bin/pg_dump/pg_dumpall > db.out
src/bin/pg_dump/pg_dumpall > db.out
...
@@ -216,7 +225,7 @@ To upgrade to PostgreSQL v6.1 do the following:
...
@@ -216,7 +225,7 @@ To upgrade to PostgreSQL v6.1 do the following:
10) Unzip and untar the new source file. Type
10) Unzip and untar the new source file. Type
cd /usr/src/pgsql
cd /usr/src/pgsql
gunzip -c ~/postgresql-v6.1.tar.gz | tar xvf -
gunzip -c ~/postgresql-v6.1.
1.
tar.gz | tar xvf -
11) Configure the source code for your system. It is this step at which
11) Configure the source code for your system. It is this step at which
you can specify your actual source path and installation paths for
you can specify your actual source path and installation paths for
...
@@ -408,10 +417,10 @@ To upgrade to PostgreSQL v6.1 do the following:
...
@@ -408,10 +417,10 @@ To upgrade to PostgreSQL v6.1 do the following:
Here is an example from a i686/Linux-ELF platform (this is the platform
Here is an example from a i686/Linux-ELF platform (this is the platform
on which most of the regression tests were generated). No tests failed
on which most of the regression tests were generated). No tests failed
since this is the v6.1 regression reference platform.
since this is the v6.1
.1
regression reference platform.
Here is an example from the SPARC/Linux-ELF platform. Using the
Here is an example from the SPARC/Linux-ELF platform. Using the
970525 beta version of PostgreSQL v6.1 the following tests "failed".
970525 beta version of PostgreSQL v6.1
.1
the following tests "failed".
float8 and geometry "failed" due to minor precision differences in
float8 and geometry "failed" due to minor precision differences in
floating point numbers. select_views produces massively different output,
floating point numbers. select_views produces massively different output,
but the differences are due to minor floating point differences.
but the differences are due to minor floating point differences.
...
@@ -542,7 +551,7 @@ To upgrade to PostgreSQL v6.1 do the following:
...
@@ -542,7 +551,7 @@ To upgrade to PostgreSQL v6.1 do the following:
rm -rf /usr/local/pgsql_6_0
rm -rf /usr/local/pgsql_6_0
# Also delete old database directory tree if it is not in
# Also delete old database directory tree if it is not in
# /usr/local/pgsql_6_0/data
# /usr/local/pgsql_6_0/data
rm ~/postgresql-v6.1.tar.gz
rm ~/postgresql-v6.1.
1.
tar.gz
26) You will probably want to print out the documentation. Here is how
26) You will probably want to print out the documentation. Here is how
you might do it if you have Ghostscript on your system and are
you might do it if you have Ghostscript on your system and are
...
@@ -569,7 +578,7 @@ To upgrade to PostgreSQL v6.1 do the following:
...
@@ -569,7 +578,7 @@ To upgrade to PostgreSQL v6.1 do the following:
supported platforms. We therefore ask you to let us know if you did
supported platforms. We therefore ask you to let us know if you did
or did not get PostgreSQL to work on you system. Please send a
or did not get PostgreSQL to work on you system. Please send a
mail message to pgsql-ports@postgresql.org telling us the following:
mail message to pgsql-ports@postgresql.org telling us the following:
- The version of PostgreSQL (v6.1,
v6.2
beta 970703, etc.).
- The version of PostgreSQL (v6.1,
6.1.1,
beta 970703, etc.).
- Your operating system (i.e. RedHat v4.0 Linux v2.0.26).
- Your operating system (i.e. RedHat v4.0 Linux v2.0.26).
- Your hardware (SPARC, i486, etc.).
- Your hardware (SPARC, i486, etc.).
- Did you compile, install and run the regression tests cleanly?
- Did you compile, install and run the regression tests cleanly?
...
...
doc/FAQ
View file @
39cefa66
<HTML>
<HEAD>
Frequently Asked Questions (FAQ) for PostgreSQL
<TITLE>PostgreSQL FAQ</title>
</HEAD>
Last updated: Sun Jul 13 15:26:53 EDT 1997
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" VLINK="#A00000" ALINK="#0000FF">
Version: 6.1.1
<H1>
Frequently Asked Questions (FAQ) for PostgreSQL
Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
</H1>
<P>
The most recent version of this document can be viewed at the
Last updated: Wed Jun 11 10:44:40 EDT 1997
postgreSQL Web site, http://postgreSQL.org.
<BR>
Version: 6.1
Linux-specific questions are answered in
<P>
http://postgreSQL.org/docs/FAQ-Linux.phtml.
Current maintainer: Bruce Momjian (<a
href="mailto:maillist@candle.pha.pa.us">maillist@candle.pha.pa.us</a>)<BR>
Irix-specific questions are answered in
<P>
http://postgreSQL.org/docs/FAQ-Irix.phtml.
The most recent version of this document can be viewed at
the postgreSQL Web site, <a
Changes in this version (* = modified, + = new):
href="http://postgreSQL.org">http://postgreSQL.org</a>.
* 3.42) What is Genetic Query Optimization?
<P>
* 3.43) I am running Solaris and my dates display wrong. Why?
Linux-specific questions are answered in
<a href="http://postgreSQL.org/docs/FAQ-Linux.phtml">http://postgreSQL.org/docs/FAQ-Linux.phtml</a>.
_________________________________________________________________
<P>
Irix-specific questions are answered in
Questions answered:
<a href="http://postgreSQL.org/docs/FAQ-Irix.phtml">http://postgreSQL.org/docs/FAQ-Irix.phtml</a>.
<P>
1) General questions
Changes in this version (* = modified, + = new):
<UL>
1.1) What is PostgreSQL?
<LI>3.42) What is Genetic Query Optimization?<BR>
1.2) What does PostgreSQL run on?
<LI>3.43) I am running Solaris and my dates display wrong. Why?<BR>
1.3) Where can I get PostgreSQL?
</UL>
1.4) What's the copyright on PostgreSQL?
<HR>
1.5) Support for PostgreSQL
<P>
1.6) Latest release of PostgreSQL
<H2>Questions answered:</H2>
1.7) Is there a commercial version of PostgreSQL?
<H3> 1) General questions</H3>
1.9) What version of SQL does PostgreSQL use?
<a href="#1.1">1.1</a>) What is PostgreSQL?<BR>
1.10) Does PostgreSQL work with databases from earlier versions of
<a href="#1.2">1.2</a>) What does PostgreSQL run on?<BR>
postgres?
<a href="#1.3">1.3</a>) Where can I get PostgreSQL?<BR>
1.11) How many people use PostgreSQL?
<a href="#1.4">1.4</a>) What's the copyright on PostgreSQL?<BR>
<a href="#1.5">1.5</a>) Support for PostgreSQL<BR>
2) Installation questions
<a href="#1.6">1.6</a>) Latest release of PostgreSQL<BR>
<a href="#1.7">1.7</a>) Is there a commercial version of PostgreSQL?<BR>
2.1) initdb doesn't run
<a href="#1.9">1.9</a>) What version of SQL does PostgreSQL use?<BR>
2.2) when I start up the postmaster, I get "FindBackend: could not
<a href="#1.10">1.10</a>) Does PostgreSQL work with databases from
find a backend to execute..." "postmaster: could not find backend to
earlier versions of postgres?<BR>
execute..."
<a href="#1.11">1.11</a>) How many people use PostgreSQL?<BR>
2.3) The system seems to be confused about commas, decimal points, and
<H3> 2) Installation questions</H3>
date formats.
<a href="#2.1">2.1</a>) initdb doesn't run<BR>
2.4) How do I install PostgreSQL somewhere other than
<a href="#2.2">2.2</a>) when I start up the postmaster, I get
/usr/local/pgsql?
"FindBackend: could not find a backend to execute..."
2.5) When I run postmaster, I get a Bad System Call core dumped
"postmaster: could not find backend to execute..."<BR>
message.
<a href="#2.3">2.3</a>) The system seems to be confused about commas,
2.6) When I try to start the postmaster, I get IpcMemoryCreate errors.
decimal points, and date formats.<BR>
2.7) I have changed a source file, but a recompile does not see the
<a href="#2.4">2.4</a>) How do I install PostgreSQL somewhere other than
change?
/usr/local/pgsql?<BR>
<a href="#2.5">2.5</a>) When I run postmaster, I get a Bad System Call
3) Operational questions
core dumped message.<BR>
<a href="#2.6">2.6</a>) When I try to start the postmaster, I get
3.1) How do I specify a KEY or other constraints on a column?
IpcMemoryCreate errors.<BR>
3.2) Does PostgreSQL support nested subqueries?
<a href="#2.7">2.7</a>) I have changed a source file, but a
3.3) How do I define a unique indices?
recompile does not see the change?<BR>
3.4) I've having a lot of problems using rules.
<H3> 3) Operational questions</H3>
3.5) I can't seem to write into the middle of large objects reliably.
<a href="#3.1">3.1</a>) How do I specify a KEY or other constraints on a
3.6) Does PostgreSQL have a graphical user interface? A report
column?<BR>
generator? A embedded query language interface?
<a href="#3.2">3.2</a>) Does PostgreSQL support nested subqueries?<BR>
3.7) How can I write client applications to PostgreSQL?
<a href="#3.3">3.3</a>) How do I define a unique indices?<BR>
3.8) How do I prevent other hosts from accessing my PostgreSQL
<a href="#3.4">3.4</a>) I've having a lot of problems using rules.<BR>
3.9) How do I set up a pg_group?
<a href="#3.5">3.5</a>) I can't seem to write into the middle of large
3.10) What is the exact difference between binary cursors and normal
objects reliably.<BR>
cursors?
<a href="#3.6">3.6</a>) Does PostgreSQL have a graphical user interface?
3.11) Why doesn't the != operator work?
A report generator? A embedded query language interface?<BR>
3.12) What is a R-tree index and what is it used for?
<a href="#3.7">3.7</a>) How can I write client applications to
3.13) What is the maximum size for a tuple?
PostgreSQL?<BR>
3.14) I defined indices but my queries don't seem to make use of them.
<a href="#3.8">3.8</a>) How do I prevent other hosts from accessing my
Why?
PostgreSQL<BR>
3.15) Are there ODBC drivers for PostgreSQL?
<a href="#3.9">3.9</a>) How do I set up a pg_group?<BR>
3.16) How do I use postgres for multi-dimensional indexing (> 2
<a href="#3.10">3.10</a>) What is the exact difference between
dimensions)?
binary cursors and normal cursors?<BR>
3.17) How do I do regular expression searches? case-insensitive regexp
<a href="#3.11">3.11</a>) Why doesn't the != operator work?<BR>
searching?
<a href="#3.12">3.12</a>) What is a R-tree index and what is it
3.18) I can't access the database as the 'root' user.
used for?<BR>
3.19) I experienced a server crash during a vacuum. How do I remove
<a href="#3.13">3.13</a>) What is the maximum size for a
the lock file?
tuple?<BR>
3.20) What is the difference between the various character types?
<a href="#3.14">3.14</a>) I defined indices but my queries don't
3.21) In a query, how do I detect if a field is NULL?
seem to make use of them. Why?<BR>
3.22) How do I see how the query optimizer is evaluating my query?
<a href="#3.15">3.15</a>) Are there ODBC drivers for
3.23) How do I create a serial field?
PostgreSQL?<BR>
3.24) How do I create a multi-column index?
<a href="#3.16">3.16</a>) How do I use postgres for
3.25) What are the temp_XXX files in my database directory?
multi-dimensional indexing (> 2 dimensions)?<BR>
3.26) Why are my table files not getting any smaller after a delete?
<a href="#3.17">3.17</a>) How do I do regular expression searches?
3.27) Why can't I connect to my database from another machine?
case-insensitive regexp searching?<BR>
3.28) I get the error 'default index class unsupported' when creating
<a href="#3.18">3.18</a>) I can't access the database as the
an index. How do I do it?
'root' user.<BR>
3.29) Why does creating an index crash the backend server?
<a href="#3.19">3.19</a>) I experienced a server crash during a
3.30) How do I find out what indexes or operations are defined in the
vacuum. How do I remove the lock file?<BR>
database?
<a href="#3.20">3.20</a>) What is the difference between the
3.31) Why do statements require an extra character at the end? Why
various character types?<BR>
does 'createuser' return 'unexpected last match in input()'? Why does
<a href="#3.21">3.21</a>) In a query, how do I detect if a field
pg_dump fail?
is NULL?<BR>
3.32) All my servers crash under concurrent table access. Why?
<a href="#3.22">3.22</a>) How do I see how the query optimizer is
3.33) What tools are available for hooking postgres to Web pages?
evaluating my query?<BR>
3.34) What is the time-warp feature and how does it relate to vacuum?
<a href="#3.23">3.23</a>) How do I create a serial field?<BR>
3.35) How do I tune the database engine for better performance?
<a href="#3.24">3.24</a>) How do I create a multi-column
3.36) What debugging features are available in PostgreSQL?
index?<BR>
3.37) What is an oid? What is a tid?
<a href="#3.25">3.25</a>) What are the temp_XXX files in my
3.38) What is the meaning of some of the terms used in Postgres?
database directory?<BR>
3.39) What is Genetic Query Optimization?
<a href="#3.26">3.26</a>) Why are my table files not getting any
3.40) I am running Solaris and my dates display wrong. Why? 3.41) How
smaller after a delete?<BR>
do I enable more than 32 concurrent backends?
<a href="#3.27">3.27</a>) Why can't I connect to my database from
another machine?<BR>
4) Questions about extending PostgreSQL
<a href="#3.28">3.28</a>) I get the error 'default index class
unsupported' when creating an index. How do I do it?<BR>
4.1) I wrote a user-defined function and when I run it in psql, it
<a href="#3.29">3.29</a>) Why does creating an index crash the
dumps core.
backend server?<BR>
4.2) I get messages of the type NOTICE:PortalHeapMemoryFree:
<a href="#3.30">3.30</a>) How do I find out what indexes or
0x402251d0
operations are defined in the database?<BR>
4.3) I've written some nifty new types and functions for PostgreSQL.
<a href="#3.31">3.31</a>) Why do statements require an extra character at
4.4) How do I write a C function to return a tuple?
the end? Why does 'createuser' return 'unexpected last match in
input()'? Why does pg_dump fail?<BR>
5) Bugs
<a href="#3.32">3.32</a>) All my servers crash under concurrent
table access. Why?<BR>
5.1) How do I make a bug report?
<a href="#3.33">3.33</a>) What tools are available for hooking
_________________________________________________________________
postgres to Web pages?<BR>
<a href="#3.34">3.34</a>) What is the time-warp feature and how
Section 1: General Questions
does it relate to vacuum?<BR>
<a href="#3.35">3.35</a>) How do I tune the database engine for
1.1) What is PostgreSQL?
better performance?<BR>
<a href="#3.36">3.36</a>) What debugging features are available in
PostgreSQL is an enhancement of the POSTGRES database management
PostgreSQL?<BR>
system, a next-generation DBMS research prototype. While PostgreSQL
<a href="#3.37">3.37</a>) What is an oid? What is a tid?<BR>
retains the powerful data model and rich data types of POSTGRES, it
<a href="#3.38">3.38</a>) What is the meaning of some of the terms
replaces the PostQuel query language with an extended subset of SQL.
used in Postgres?<BR>
PostgreSQL is free and the complete source is available.
<a href="#3.39">3.39</a>) What is Genetic Query Optimization?<BR>
<a href="#3.40">3.40</a>) I am running Solaris and my dates
PostgreSQL development is being performed by a team of Internet
display wrong. Why?
developers who all subscribe to the PostgreSQL development mailing
<a href="#3.41">3.41</a>) How do I enable more than 32 concurrent
list. The current coordinator is Marc G. Fournier
backends?
(scrappy@postgreSQL.org). (See below on how to join). This team is now
<H3> 4) Questions about extending PostgreSQL</H3>
responsible for all current and future development of PostgreSQL.
<a href="#4.1">4.1</a>) I wrote a user-defined function and when I run
it in psql, it dumps core.<BR>
The authors of PostgreSQL 1.01 were Andrew Yu and Jolly Chen. Many
<a href="#4.2">4.2</a>) I get messages of the type
others have contributed to the porting, testing, debugging and
NOTICE:PortalHeapMemoryFree: 0x402251d0<BR>
enhancement of the code. The original Postgres code, from which
<a href="#4.3">4.3</a>) I've written some nifty new types and functions
PostgreSQL is derived, was the effort of many graduate students,
for PostgreSQL.<BR>
undergraduate students, and staff programmers working under the
<a href="#4.4">4.4</a>) How do I write a C function to return a
direction of Professor Michael Stonebraker at the University of
tuple?<BR>
California, Berkeley.
<H3> 5) Bugs</H3>
<a href="#5.1">5.1</a>) How do I make a bug report?
The original name of the software at Berkeley was Postgres. When SQL
functionality was added in 1995, its name was changed to Postgres95.
<HR> <H2> Section 1: General Questions</H2> <H3><a
The name was changed at the end of 1996 to PostgreSQL.
name="1.1">1.1</a>) What is PostgreSQL?</H3>
1.2) What does PostgreSQL run on?
<P>
PostgreSQL is an enhancement of the POSTGRES database management system,
The authors have compiled and tested PostgreSQL on the following
a next-generation DBMS research prototype. While PostgreSQL retains the
platforms(some of these compiles require gcc 2.7.0):
powerful data model and rich data types of POSTGRES, it replaces the
* aix - IBM on AIX 3.2.5 or 4.x
PostQuel query language with an extended subset of SQL. PostgreSQL is
* alpha - DEC Alpha AXP on OSF/1 2.0
free and the complete source is available.
* BSD44_derived - OSs derived from 4.4-lite BSD (NetBSD, FreeBSD)
<P>
* bsdi - BSD/OS 2.0, 2.01, 2.1, 3.0
PostgreSQL development is being performed by a team of Internet
* dgux - DG/UX 5.4R3.10
developers who all subscribe to the PostgreSQL development mailing list.
* hpux - HP PA-RISC on HP-UX 9.0
The current coordinator is Marc G. Fournier (<a
* i386_solaris - i386 Solaris
href="mailto:scrappy@postgreSQL.org">scrappy@postgreSQL.org</a>). (See
* irix5 - SGI MIPS on IRIX 5.3
below on how to join). This team is now responsible for all current and
* linux - Intel x86 on Linux 1.2 and Linux ELF (For non-ELF Linux,
future development of PostgreSQL.
see LINUX_ELF below).
<P>
* sparc_solaris - SUN SPARC on Solaris 2.4
The authors of PostgreSQL 1.01 were Andrew Yu and Jolly Chen. Many
* sunos4 - SUN SPARC on SunOS 4.1.3
others have contributed to the porting, testing, debugging and
* svr4 - Intel x86 on Intel SVR4
enhancement of the code. The original Postgres code, from which
* ultrix4 - DEC MIPS on Ultrix 4.4
PostgreSQL is derived, was the effort of many graduate students,
undergraduate students, and staff programmers working under the
The following platforms have known problems/bugs:
direction of Professor Michael Stonebraker at the University of
* nextstep - Motorola MC68K or Intel x86 on NeXTSTEP 3.2
California, Berkeley.
<P>
1.3) Where can I get PostgreSQL?
The original name of the software at Berkeley was Postgres. When SQL
functionality was added in 1995, its name was changed to Postgres95. The
The primary anonymous ftp site for PostgreSQL is:
name was changed at the end of 1996 to PostgreSQL.
* ftp://ftp.postgreSQL.org/pub
<P>
<H3><a name="1.2">1.2</a>) What does PostgreSQL run
A mirror site exists at:
on?</H3>
* ftp://postgres95.vnet.net/pub/postgres95
<P>
* ftp://ftp.luga.or.at/pub/postgres95
The authors have compiled and tested PostgreSQL on the following
* ftp://cal011111.student.utwente.nl/pub/postgres95
platforms(some of these compiles require gcc 2.7.0):
* ftp://ftp.uni-trier.de/pub/database/rdbms/postgres/postgres95
<UL>
* ftp://rocker.sch.bme.hu
<LI> aix - IBM on AIX 3.2.5
<LI> alpha - DEC Alpha AXP on OSF/1 2.0
1.4) What's the copyright on PostgreSQL?
<LI> BSD44_derived - OSs derived from 4.4-lite BSD (NetBSD, FreeBSD)
<LI> bsdi - BSD/OS 2.0, 2.01, 2.1, 3.0
PostgreSQL is subject to the following COPYRIGHT.
<LI> dgux - DG/UX 5.4R3.10
<LI> hpux - HP PA-RISC on HP-UX 9.0
PostgreSQL Data Base Management System
<LI> i386_solaris - i386 Solaris
<LI> irix5 - SGI MIPS on IRIX 5.3
Copyright (c) 1994-6 Regents of the University of California
<LI> linux - Intel x86 on Linux 1.2 and Linux ELF
(For non-ELF Linux, see LINUX_ELF below).
Permission to use, copy, modify, and distribute this software and its
<LI> sparc_solaris - SUN SPARC on Solaris 2.4
documentation for any purpose, without fee, and without a written
<LI> sunos4 - SUN SPARC on SunOS 4.1.3
agreement is hereby granted, provided that the above copyright notice
<LI> svr4 - Intel x86 on Intel SVR4
and this paragraph and the following two paragraphs appear in all
<LI> ultrix4 - DEC MIPS on Ultrix 4.4
copies.
</UL>
The following platforms have known problems/bugs:
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
<UL>
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
<LI> nextstep - Motorola MC68K or Intel x86 on NeXTSTEP 3.2
INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND
</UL>
ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN
<P>
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<H3><a name="1.3">1.3</a>) Where can I get PostgreSQL?</H3>
<P> The primary anonymous ftp site for PostgreSQL is:
THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
<UL>
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
<LI> <a
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
href="ftp://ftp.postgreSQL.org/pub">ftp://ftp.postgreSQL.org/pub</a>
PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
</UL>
CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
<P> A mirror site exists at:
UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
<UL>
<LI> <a
1.5) Support for PostgreSQL
href="ftp://postgres95.vnet.net/pub/postgres95">ftp://postgres95.vnet.net/pub/postgres95</a>
<LI> <a
There is no official support for PostgreSQL from the original
href="ftp://ftp.luga.or.at/pub/postgres95">ftp://ftp.luga.or.at/pub/postgres95</a>
maintainers or from University of California, Berkeley. It is
<LI> <a
maintained through volunteer effort only.
href="ftp://cal011111.student.utwente.nl/pub/postgres95">ftp://cal011111.student.utwente.nl/pub/postgres95</a>
<LI> <a
The main mailing list is: questions@postgreSQL.org. It is available
href="ftp://ftp.uni-trier.de/pub/database/rdbms/postgres/postgres95">ftp://ftp.uni-trier.de/pub/database/rdbms/postgres/postgres95</a>
for discussion o f matters pertaining to PostgreSQL, including but not
<LI> <a
limited to bug reports and fixes. For info on how to subscribe, send a
href="ftp://rocker.sch.bme.hu">ftp://rocker.sch.bme.hu</a>
mail with the lines in the body (not the subject line)
</UL>
<H3><a name="1.4">1.4</a>) What's the copyright on
PostgreSQL?</H3>
<P>
PostgreSQL is subject to the following COPYRIGHT.
<P>
PostgreSQL Data Base Management System
<P>
Copyright (c) 1994-6 Regents of the University of California
<P>
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written
agreement is hereby granted, provided that the above copyright notice
and this paragraph and the following two paragraphs appear in all
copies.
<P>
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
<P>
THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER
IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO
OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
MODIFICATIONS.
<P>
<H3><a name="1.5">1.5</a>) Support for PostgreSQL </H3>
<P>
There is no official support for PostgreSQL from the original
maintainers or from University of California, Berkeley. It is
maintained through volunteer effort only.
<P>
The main mailing list is: <a
href="mailto:questions@postgreSQL.org">questions@postgreSQL.org</a>. It
is available for discussion o f matters pertaining to PostgreSQL,
including but not limited to bug reports and fixes. For info on how to
subscribe, send a mail with the lines in the body (not the subject line)
<PRE>
<CODE>
subscribe
subscribe
end
end
</CODE>
</PRE>
to questions-request@postgreSQL.org.
<P>
to <a
There is also a digest list available. To subscribe to this list, send
href="mailto:questions-request@postgreSQL.org">questions-request@postgreSQL.org</a>.
email to: questions-digest-request@postgreSQL.org with a BODY of:
<P>
There is also a digest list available. To subscribe to this list, send
email to:
<a
href="mailto:questions-digest-request@postgreSQL.org">
questions-digest-request@postgreSQL.org</a> with a BODY of:
<PRE>
<KBD>
subscribe
subscribe
end
end
</KBD>
</PRE>
Digests are sent out to members of this list whenever the main list
Digests are sent out to members of this list whenever the main list has
has received around 30k of messages.
received around 30k of messages.
<P>
There is a bugs mailing list available. To subscribe to this list,
There is a bugs mailing list available. To subscribe to this
send email to bugs-request@postgreSQL.org with a BODY of:
list, send email to <a
href="mailto:bugs-request@postgreSQL.org">bugs-request@postgreSQL.org</a>
There is also a developers discussion mailing list available. To
with a BODY of:
subscribe to this list, send email to hackers-request@postgreSQL.org
<P>
with a BODY of:
There is also a developers discussion mailing list available. To subscribe to this
list, send email to <a
href="mailto:hackers-request@postgreSQL.org">hackers-request@postgreSQL.org</a>
with a BODY of:
<P>
<PRE>
<KBD>
subscribe
subscribe
end
end
</KBD>
</PRE>
Additional information about PostgreSQL can be found via the
<P>
PostgreSQL WWW home page at:
Additional information about PostgreSQL can be found via the PostgreSQL
WWW home page at:
http://postgreSQL.org
<BLOCKQUOTE>
<a
1.6) Latest release of PostgreSQL
href="http://postgreSQL.org">http://postgreSQL.org</a>
</BLOCKQUOTE>
The latest release of PostgreSQL is version 6.1.1, which will be
<P>
released in July, 1997. For information about what is new in 6.1.1,
<H3><a name="1.6">1.6</a>) Latest release of PostgreSQL</H3>
see our TODO list on our WWW page.
<P>
The latest release of PostgreSQL is version 6.0, which was released on
We expect a 7.0 release in several months that will remove time-travel
January 31, 1997. 6.1 is scheduled for release soon. For information
and reduce by 50% the size of on-disk system columns maintained for
about what is new in 6.1, see our TODO list on our WWW page.
each row in a table. This release will also require a dump and
<P>
restore.
We expect a 7.0 release in several months that will remove time-travel
and reduce by 50% the size of on-disk system columns maintained for each
1.7) Is there a commercial version of PostgreSQL?
row in a table. This release will also require a dump and restore.
<P>
Illustra Information Technology (a wholly owned subsidiary of Informix
<H3><a name="1.7">1.7</a>) Is there a commercial version of PostgreSQL?</H3>
Software, Inc.) sells an object-relational DBMS called Illustra that
<P>
was originally based on postgres. Illustra has cosmetic similarities
Illustra Information Technology (a wholly owned subsidiary of Informix
to PostgreSQL but has more features, is more robust, performs better,
Software, Inc.) sells an object-relational DBMS called Illustra that was
and offers real documentation and support. On the flip side, it costs
originally based on postgres. Illustra has cosmetic similarities to
money. For more information, contact sales@illustra.com
PostgreSQL but has more features, is more robust, performs better, and
offers real documentation and support. On the flip side, it costs
1.8) What documentation is available for PostgreSQL?
money. For more information, contact <a
href="mailto:sales@illustra.com">sales@illustra.com</a>
A user manual, manual pages, and some small test examples are included
<P>
in the distribution. The sql and built-in manual pages are
<H3><a name="1.8">1.8</a>) What documentation is available for PostgreSQL?</H3>
particularly important.
<P>
A user manual, manual pages, and some small test examples are included
The www page contains pointers to an implementation guide and five
in the distribution. The sql and built-in manual pages are particularly
papers written about postgres design concepts and features.
important.
<P>
1.9) What version of SQL does PostgreSQL use?
The www page contains pointers to an implementation guide and five
papers written about postgres design concepts and features.
PostgreSQL supports a subset of SQL-92. It has most of the important
<P>
constructs but lacks some of the functionality. The most visible
<H3><a name="1.9">1.9</a>) What version of SQL does PostgreSQL use?</H3>
differences are:
<P>
* no support for nested subqueries
PostgreSQL supports a subset of SQL-92. It has most of the important
* no HAVING clause under a GROUP BY
constructs but lacks some of the functionality. The most visible
differences are:
On the other hand, you get to create user-defined types, functions,
<UL>
inheritance etc. If you're willing to help with PostgreSQL coding,
<LI> no support for nested subqueries
eventually we can also add the missing features listed above.
<LI> no HAVING clause under a GROUP BY
</UL>
1.10) Does PostgreSQL work with databases from earlier versions of postgres?
<P>
On the other hand, you get to create user-defined types, functions,
PostgreSQL v1.09 is compatible with databases created with v1.01.
inheritance etc. If you're willing to help with PostgreSQL coding,
Those upgrading from 1.0 should read the directions in the
eventually we can also add the missing features listed above.
MIGRATION_1.0_TO_1.02 directory.
<P>
<H3><a name="1.10">1.10</a>) Does PostgreSQL work with databases from
Upgrading to 6.0 requires a dump and restore from previous releases.
earlier versions of postgres?</H3>
<P>
Upgrading to 6.1 requires a dump and restore from previous releases.
PostgreSQL v1.09 is compatible with databases created with v1.01. Those
upgrading from 1.0 should read the directions in the
Upgrading from 6.1 to 6.1.1 requires a compile of the new release,
MIGRATION_1.0_TO_1.02 directory.
recompile of all your custom applications to use the new libpq, and
<P>
then an install while the postmaster is temporarily stopped.
Upgrading to 6.0 requires a dump and restore from previous releases.
<P>
Those ugrading from versions earlier than 1.09 must upgrade to 1.09
Upgrading to 6.1 requires a dump and restore from previous releases.
first without a dump/reload, then dump the data from 1.09, and then
<P>
load it into 6.1.1.
Those ugrading 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 load
1.11) How many people use PostgreSQL?
it into 6.0 or 6.1.
<P>
Since we don't have any licensing or registration scheme, it's
<H3><a name="1.11">1.11</a>) How many people use PostgreSQL?</H3>
impossible to tell. We do know hundreds copies of PostgreSQL v1.* have
<P>
been downloaded, and that there many hundreds of subscribers to the
Since we don't have any licensing or registration scheme, it's
mailing lists.
impossible to tell. We do know hundreds copies of PostgreSQL v1.* have
been downloaded, and that there many hundreds of subscribers to the
_________________________________________________________________
mailing lists.
<P>
Section 2: Installation Questions
<HR>
<H2> Section 2: Installation Questions
2.1) initdb doesn't run
</H2>
<P>
* check to see that you have the proper paths set
<H3><a name="2.1">2.1</a>) initdb doesn't run</H3>
* check that the 'postgres' user owns all the right files
<P>
* ensure that there are files in $PGDATA/files, and that they are
<UL>
non-empty. If they aren't, then "gmake install" failed for some
<LI> check to see that you have the proper paths set
reason
<LI> check that the 'postgres' user owns all the right files
<LI> ensure that there are files in $PGDATA/files, and that they
2.2) when I start up the postmaster, I get "FindBackend: could not find a
are non-empty. If they aren't, then "gmake install" failed for
backend to execute..." "postmaster: could not find backend to execute..."
some reason
</UL>
You probably do not have the right path set up. The 'postgres'
<P>
executable needs to be in your path.
<H3><a name="2.2">2.2</a>) when I start up the postmaster, I get
"FindBackend: could not find a backend to execute..."
2.3) The system seems to be confused about commas, decimal points, and date
"postmaster: could not find backend to execute..."</H3>
formats.
<P>
You probably do not have the right path set up. The 'postgres'
Check your locale configuration. PostgreSQL uses the locale settings
executable needs to be in your path.
of the user that ran the postmaster process. Set those accordingly for
<P>
your operating environment.
<H3><a name="2.3">2.3</a>) The system seems to be confused about commas,
decimal points, and date formats.</H3>
2.4) How do I install PostgreSQL somewhere other than /usr/local/pgsql?
<P>
Check your locale configuration. PostgreSQL uses the locale settings of
You need to edit Makefile.global and change POSTGRESDIR accordingly,
the user that ran the postmaster process. Set those accordingly for
or create a Makefile.custom and define POSTGRESDIR there.
your operating environment.
<P>
2.5) When I run postmaster, I get a Bad System Call core dumped message.
<H3><a name="2.4">2.4</a>) How do I install PostgreSQL somewhere other than
/usr/local/pgsql?</H3>
It could be a variety of problems, but first check to see that you
<P>
have system V extensions installed on your kernel. PostgreSQL requires
You need to edit Makefile.global and change POSTGRESDIR accordingly, or
kernel support for shared memory.
create a Makefile.custom and define POSTGRESDIR there.
<P>
2.6) When I try to start the postmaster, I get IpcMemoryCreate errors.
<H3><a name="2.5">2.5</a>) When I run postmaster, I get a Bad System
Call core dumped message.</H3>
You either do not have shared memory configured properly in kernel or
<P>
you need to enlarge the shared memory available in the kernel. The
It could be a variety of problems, but first check to see that you have
exact amount you need depends on your architecture and how many
system V extensions installed on your kernel. PostgreSQL requires kernel
buffers you configure postmaster to run with. For most systems, with
support for shared memory.
default buffer sizes, you need a minimum of ~760K.
<P>
<H3><a name="2.6">2.6</a>) When I try to start the postmaster, I get
2.7) I have changed a source file, but a recompile does not see the change?
IpcMemoryCreate errors.</H3>
<P>
The Makefiles do not have the proper dependencies for include files.
You either do not have shared memory configured properly in kernel or
You have to do a 'make clean' and then another 'make'.
you need to enlarge the shared memory available in the kernel. The
exact amount you need depends on your architecture and how many buffers
_________________________________________________________________
you configure postmaster to run with. For most systems, with default
buffer sizes, you need a minimum of ~760K.
Section 3: PostgreSQL Features
<P>
<H3><a name="2.7">2.7</a>) I have changed a source file, but a
3.1) How do I specify a KEY or other constraints on a column?
recompile does not see the change?</H3>
<P>
Column constraints are not supported in PostgreSQL. As a consequence,
The Makefiles do not have the proper dependencies for include files. You
the system does not check for duplicates.
have to do a 'make clean' and then another 'make'.
<P>
Under 6.0, create a unique index on the column. Attempts to create
<HR>
duplicate of that column will report an error.
<H2> Section 3: PostgreSQL Features
</H2>
3.2) Does PostgreSQL support nested subqueries?
<P>
Subqueries are not implemented, but they can be simulated using sql
<H3><a name="3.1">3.1</a>) How do I specify a KEY or other constraints on a
functions.
column?</H3>
<P>
3.3) How do I define a unique indices?
Column constraints are not supported in PostgreSQL. As a consequence,
the system does not check for duplicates.
PostgreSQL 6.0 supports unique indices.
<P>
Under 6.0, create a unique index on the column. Attempts to create
3.4) I've having a lot of problems using rules.
duplicate of that column will report an error.
<P>
Currently, the rule system in PostgreSQL is mostly broken. It works
<H3><a name="3.2">3.2</a>) Does PostgreSQL support nested subqueries?</H3>
enough to support the view mechanism, but that's about it. Use
<P>
PostgreSQL rules at your own peril.
Subqueries are not implemented, but they can be simulated using sql
functions.
3.5) I can't seem to write into the middle of large objects reliably.
<P>
<H3><a name="3.3">3.3</a>) How do I define a unique indices?</H3>
The Inversion large object system in PostgreSQL is also mostly broken.
<P>
It works well enough for storing large wads of data and reading them
PostgreSQL 6.0 supports unique indices.
back out, but the implementation has some underlying problems. Use
<P>
PostgreSQL large objects at your own peril.
<H3><a name="3.4">3.4</a>) I've having a lot of problems using rules.</H3>
<P>
3.6) Does PostgreSQL have a graphical user interface? A report generator? A
Currently, the rule system in PostgreSQL is mostly broken. It works
embedded query language interface?
enough to support the view mechanism, but that's about it. Use
PostgreSQL rules at your own peril.
No. No. No. Not in the official distribution at least. Some users have
<P>
reported some success at using 'pgbrowse' and 'onyx' as frontends to
<H3><a name="3.5">3.5</a>) I can't seem to write into the middle of large
PostgreSQL. Several contributions are working on tk based frontend
objects reliably.</H3>
tools. Ask on the mailing list.
<P>
The Inversion large object system in PostgreSQL is also mostly broken.
3.7) How can I write client applications to PostgreSQL?
It works well enough for storing large wads of data and reading them
back out, but the implementation has some underlying problems. Use
PostgreSQL supports a C-callable library interface called libpq as
PostgreSQL large objects at your own peril.
well as a Tcl-based library interface called libtcl.
<P>
<H3><a name="3.6">3.6</a>) Does PostgreSQL have a graphical user interface?
Others have contributed a perl interface and a WWW gateway to
A report generator? A embedded query language interface?</H3>
PostgreSQL. See the PostgreSQL home pages for more details.
<P>
No. No. No. Not in the official distribution at least. Some users have
3.8) How do I prevent other hosts from accessing my PostgreSQL backend?
reported some success at using 'pgbrowse' and 'onyx' as frontends to
PostgreSQL. Several contributions are working on tk based frontend
Use host-based authentication by modifying the file $PGDATA/pg_hba
tools. Ask on the mailing list.
accordingly.
<P>
<H3><a name="3.7">3.7</a>) How can I write client applications to PostgreSQL?</H3>
3.9) How do I set up a pg_group?
<P>
PostgreSQL supports a C-callable library interface called libpq as well
Currently, there is no easy interface to set up user groups. You have
as a Tcl-based library interface called libtcl.
to explicitly insert/update the pg_group table. For example:
<P>
Others have contributed a perl interface and a WWW gateway to
PostgreSQL. See the PostgreSQL home pages for more details.
jolly=> insert into pg_group (groname, grosysid, grolist)
<P>
jolly=> values ('posthackers', '1234', '{5443, 8261}');
<H3><a name="3.8">3.8</a>) How do I prevent other hosts from accessing my
PostgreSQL backend?</H3>
<P>
Use host-based authentication by modifying the file $PGDATA/pg_hba
accordingly.
<P>
<H3><a name="3.9">3.9</a>) How do I set up a pg_group?</H3>
<P>
Currently, there is no easy interface to set up user groups. You have to
explicitly insert/update the pg_group table. For example:
<PRE>
<CODE>
jolly=> insert into pg_group (groname, grosysid, grolist)
jolly=> values ('posthackers', '1234', '{5443, 8261}');
INSERT 548224
INSERT 548224
jolly=>
grant insert on foo to group posthackers;
jolly=>
grant insert on foo to group posthackers;
CHANGE
CHANGE
jolly=>
jolly=>
</CODE>
</PRE>
<P>
The fields in pg_group are:
The fields in pg_group are:
<UL>
* groname: the group name. This a char16 and should be purely
<LI> groname: the group name. This a char16 and should
alphanumeric. Do not include underscores or other punctuation.
be purely alphanumeric. Do not include underscores
* grosysid: the group id. This is an int4. This should be unique for
or other punctuation.
each group.
<LI> grosysid: the group id. This is an int4.
* grolist: the list of pg_user id's that belong in the group. This
This should be unique for each group.
is an int4[].
<LI> grolist: the list of pg_user id's that belong in the group.
This is an int4[].
3.10) What is the exact difference between binary cursors and normal cursors?
</UL>
<P>
Normal cursors return data back in ASCII format. Since data is stored
<H3><a name="3.10">3.10</a>) What is the exact difference between binary
natively in binary format, the system must do a conversion to produce
cursors and normal cursors?</H3>
the ASCII format. In addition, ASCII formats are often large in size
<P>
than binary format. Once the attributes come back in ASCII, often the
Normal cursors return data back in ASCII format. Since data is stored
client application then has to convert it to a binary format to
natively in binary format, the system must do a conversion to produce
manipulate it anyway.
the ASCII format. In addition, ASCII formats are often large in size
than binary format. Once the attributes come back in ASCII, often the
Binary cursors give you back the data in the native binary
client application then has to convert it to a binary format to
representation. Thus, binary cursors will tend to be a little faster
manipulate it anyway.
since there's less overhead of conversion.
<P>
Binary cursors give you back the data in the native binary
However, ASCII is architectural neutral whereas binary representation
representation. Thus, binary cursors will tend to be a little faster
can differ between different machine architecture. Thus, if your
since there's less overhead of conversion.
client machine uses a different representation than you server
<P>
machine, getting back attributes in binary format is probably not what
However, ASCII is architectural neutral whereas binary representation
you want. Also, if your main purpose is displaying the data in ASCII,
can differ between different machine architecture. Thus, if your client
then getting it back in ASCII will save you some effort on the client
machine uses a different representation than you server machine, getting
side.
back attributes in binary format is probably not what you want. Also, if
your main purpose is displaying the data in ASCII, then getting it back
3.11) Why doesn't the != operator work?
in ASCII will save you some effort on the client side.
<P>
SQL specifies <> as the inequality operator, and that is what we have
<H3><a name="3.11">3.11</a>) Why doesn't the != operator work?</H3>
defined for the built-in types.
<P>
SQL specifies <> as the inequality operator, and that is what we
In 6.0, != is equivalent to <>.
have defined for the built-in types.
<P>
3.12) What is a R-tree index and what is it used for?
In 6.0, != is equivalent to <>.
<P>
An r-tree index is used for indexing spatial data. A hash index can't
<H3><a name="3.12">3.12</a>) What is a R-tree index and what is it used for?</H3>
handle range searches. A B-tree index only handles range searches in a
<P>
single dimension. R-tree's can handle multi-dimensional data. For
An r-tree index is used for indexing spatial data. A hash index can't
example, if a R-tree index can be built on an attribute of type
handle range searches. A B-tree index only handles range searches in a
'point', the system can more efficient answer queries like select all
single dimension. R-tree's can handle multi-dimensional data. For
points within a bounding rectangle.
example, if a R-tree index can be built on an attribute of type 'point',
the system can more efficient answer queries like select all points
The canonical paper that describes the original R-Tree design is:
within a bounding rectangle.
<P>
Guttman, A. "R-Trees: A Dynamic Index Structure for Spatial
The canonical paper that describes the original R-Tree design is:
Searching." Proc of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data,
<P>
45-57.
Guttman, A. "R-Trees: A Dynamic Index Structure for Spatial Searching."
Proc of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data, 45-57.
You can also find this paper in Stonebraker's "Readings in Database
<P>
Systems"
You can also find this paper in Stonebraker's "Readings in Database
Systems"
3.13) What is the maximum size for a tuple?
<P>
<H3><a name="3.13">3.13</a>) What is the maximum size for a tuple?</H3>
Tuples are limited to 8K bytes. Taking into account system attributes
<P>
and other overhead, one should stay well shy of 8,000 bytes to be on
Tuples are limited to 8K bytes. Taking into account system attributes
the safe side. To use attributes larger than 8K, try using the large
and other overhead, one should stay well shy of 8,000 bytes to be on the
objects interface.
safe side. To use attributes larger than 8K, try using the large
objects interface.
Tuples do not cross 8k boundaries so a 5k tuple will require 8k of
<P>
storage.
Tuples do not cross 8k boundaries so a 5k tuple will require 8k of
storage.
3.14) I defined indices but my queries don't seem to make use of them. Why?
<P>
<H3><a name="3.14">3.14</a>) I defined indices but my queries don't seem
PostgreSQL does not automatically maintain statistics. One has to make
to make use of them. Why?</H3>
an explicit 'vacuum' call to update the statistics. After statistics
<P>
are updated, the optimizer has a better shot at using indices. Note
PostgreSQL does not automatically maintain statistics. One has to make
that the optimizer is limited and does not use indices in some
an explicit 'vacuum' call to update the statistics. After statistics
circumstances (such as OR clauses).
are updated, the optimizer has a better shot at using indices. Note
that the optimizer is limited and does not use indices in some
If the system still does not see the index, it is probably because you
circumstances (such as OR clauses).
have created an index on a field with the improper *_ops type. For
<P>
example, you have created a CHAR(4) field, but have specified a
If the system still does not see the index, it is probably because you
char_ops index type_class.
have created an index on a field with the improper *_ops type. For
example, you have created a CHAR(4) field, but have specified a char_ops
See the create_index manual page for information on what type classes
index type_class.
are available. It must match the field type.
<P>
See the create_index manual page for information on what type classes
Postgres does not warn the user when the improper index is created.
are available. It must match the field type.
<P>
Indexes not used for ORDER BY operations.
Postgres does not warn the user when the improper index is created.
<P>
3.15) Are there ODBC drivers for PostgreSQL?
Indexes not used for ORDER BY operations.
<P>
There are two ODBC drivers available, PostODBC and OpenLink ODBC.
<H3><a name="3.15">3.15</a>) Are there ODBC drivers for PostgreSQL?</H3>
<P>
For all people being interested in PostODBC, there are now two mailing
There are two ODBC drivers available, PostODBC and OpenLink ODBC.
lists devoted to the discussion of PostODBC. The mailing lists are:
<P>
* postodbc-users@listserv.direct. net
For all people being interested in PostODBC, there are now two mailing
* postodbc-developers@listse rv.direct.net
lists devoted to the discussion of PostODBC. The mailing lists are:
<UL>
these lists are ordinary majordomo mailing lists. You can subscribe by
<LI> <a
sending a mail to:
href="mailto:postodbc-users@listserv.direct.net">postodbc-users@listserv.direct.
* majordomo@listserv.direct.net
net</a>
<LI> <a
OpenLink ODBC is currently in beta under Linux. You can get it from
href="mailto:postodbc-developers@listserv.direct.net">postodbc-developers@listse
http://www.openlinksw.com/postgres.html. It works with our standard
rv.direct.net</a>
ODBC client software so you'll have Postgres ODBC available on every
</UL>
client platform we support (Win, Mac, Unix, VMS).
<P>
these lists are ordinary majordomo mailing lists. You can subscribe by
We will probably be selling this product to people who need
sending a mail to:
commercial-quality support, but a freeware version will always be
<UL>
available. Questions to postgres95@openlink.co.uk.
<LI> <a
href="mailto:majordomo@listserv.direct.net">majordomo@listserv.direct.net</a>
3.16) How do I use postgres for multi-dimensional indexing (> 2 dimensions)?
</UL>
<P>
Builtin R-Trees can handle polygons and boxes. In theory, R-trees can
OpenLink ODBC is currently in beta under Linux. You can get it from <a
be extended to handle higher number of dimensions. In practice,
href="http://www.openlinksw.com/postgres.html">
extending R-trees require a bit of work and we don't currently have
http://www.openlinksw.com/postgres.html</a>. It works with our standard
any documentation on how to do it.
ODBC client software so you'll have Postgres ODBC available on every
client platform we support (Win, Mac, Unix, VMS).
3.17) How do I do regular expression searches? case-insensitive regexp
<P>
searching?
We will probably be selling this product to people who need
commercial-quality support, but a freeware version will always be
PostgreSQL supports the SQL LIKE syntax as well as more general
available. Questions to <a
regular expression searching with the ~ operator. The !~ is the
href="mailto:postgres95@openlink.co.uk">postgres95@openlink.co.uk</a>.
negated regexp operator. ~* and !~* are the case-insensitive regular
<P>
expression operators.
<H3><a name="3.16">3.16</a>) How do I use postgres for multi-dimensional
indexing (> 2 dimensions)?</H3>
3.18) I can't access the database as the 'root' user.
<P>
Builtin R-Trees can handle polygons and boxes. In theory, R-trees can
You should not create database users with user id 0(root). They will
be extended to handle higher number of dimensions. In practice,
be unable to access the database. This is a security precaution
extending R-trees require a bit of work and we don't currently have any
because of the ability of any user to dynamically link object modules
documentation on how to do it.
into the database engine.
<P>
<H3><a name="3.17">3.17</a>) How do I do regular expression searches?
3.19) I experienced a server crash during a vacuum. How do I remove the lock
case-insensitive regexp searching?</H3>
file?
<P>
PostgreSQL supports the SQL LIKE syntax as well as more general regular
If the server crashes during a vacuum command, chances are it will
expression searching with the ~ operator. The !~ is the negated regexp
leave a lock file hanging around. Attempts to re-run the vacuum
operator. ~* and !~* are the case-insensitive regular expression
command result in
operators.
<P>
<H3><a name="3.18">3.18</a>) I can't access the database as the 'root' user.</H3>
<P>
You should not create database users with user id 0(root). They will be
unable to access the database. This is a security precaution because
of the ability of any user to dynamically link object modules into the
database engine.
<P>
<H3><a name="3.19">3.19</a>) I experienced a server crash during a
vacuum. How do I remove the lock file?</H3>
<P>
If the server crashes during a vacuum command, chances are it will leave
a lock file hanging around. Attempts to re-run the vacuum command
result in
<PRE>
<SAMP>
WARN:can't create lock file -- another vacuum cleaner running?
WARN:can't create lock file -- another vacuum cleaner running?
</SAMP>
</PRE>
If you are sure that no vacuum is actually running, you can remove the
<P>
file called "pg_vlock" in your database directory (which is
If you are sure that no vacuum is actually running, you can remove the
$PGDATA/base/<dbName>)
file called "pg_vlock" in your database directory (which is
$PGDATA/base/<dbName>)
3.20) What is the difference between the various character types?
<P>
<H3><a name="3.20">3.20</a>) What is the difference between the various
character types?</H3>
<PRE>
Type Internal Name Notes
Type Internal Name Notes
--------------------------------------------------
--------------------------------------------------
CHAR char 1 character }
CHAR char 1 character }
...
@@ -676,368 +591,322 @@ CHAR(#) bpchar blank padded to the specified fixed length
...
@@ -676,368 +591,322 @@ 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 tuple length
BYTEA bytea variable-length array of bytes
BYTEA bytea variable-length array of bytes
</PRE>
<P>
Remember, you need to use the internal name when creating indexes on
Remember, you need to use the internal name when creating indexes on
these fields or when doing other internal operations.
these fields or when doing other internal operations.
<P>
The last four types above are "varlena" types (i.e. the first four
The last four types above are "varlena" types (i.e. the first four bytes
bytes is the length, followed by the data). CHAR(#) and VARCHAR(#)
is the length, followed by the data). CHAR(#) and VARCHAR(#) allocate
allocate the maximum number of bytes no matter how much data is stored
the maximum number of bytes no matter how much data is stored in the
in the field. TEXT and BYTEA are the only character types that have
field. TEXT and BYTEA are the only character types that have variable
variable length on the disk.
length on the disk.
<P>
3.21) In a query, how do I detect if a field is NULL?
<H3><a name="3.21">3.21</a>) In a query, how do I detect if a field is NULL?</H3>
<P>
PostgreSQL has two builtin keywords, "isnull" and "notnull" (note no
PostgreSQL has two builtin keywords, "isnull" and "notnull" (note no
spaces). Version 1.05 and later and 6.* understand IS NULL and IS NOT
spaces). Version 1.05 and later and 6.* understand IS NULL and IS NOT
NULL.
NULL.
<P>
3.22) How do I see how the query optimizer is evaluating my query?
<H3><a name="3.22">3.22</a>) How do I see how the query optimizer is
evaluating my query?</H3>
Place the word 'EXPLAIN' at the beginning of the query, for example:
<P>
Place the word 'EXPLAIN' at the beginning of the query, for example:
<PRE>
<CODE>
EXPLAIN SELECT * FROM table1 WHERE age = 23;
EXPLAIN SELECT * FROM table1 WHERE age = 23;
</CODE>
</PRE>
3.23) How do I create a serial field?
<P>
<H3><a name="3.23">3.23</a>) How do I create a serial field?</H3>
Postgres does not allow the user to specifiy a user column as type
<P>
SERIAL. Instead, you can use each row's oid field as a unique value.
Postgres does not allow the user to specifiy a user column as type
However, if you need to dump and reload the database, you need to be
SERIAL. Instead, you can use each row's oid field as a unique value.
using postgres version 1.07 or later or 6.* with pgdump's -o option or
However, if you need to dump and reload the database, you need to be
COPY's WITH OIDS option to preserver the oids.
using postgres version 1.07 or later or 6.* with pgdump's -o option or
COPY's WITH OIDS option to preserver the oids.
Another valid way of doing this is to create a function:
<P>
Another valid way of doing this is to create a function:
<PRE>
<CODE>
create table my_oids (f1 int4);
create table my_oids (f1 int4);
insert into my_oids values (1);
insert into my_oids values (1);
create function new_oid () returns int4 as
create function new_oid () returns int4 as
'update my_oids set f1 = f1 + 1; select f1 from my_oids; '
'update my_oids set f1 = f1 + 1; select f1 from my_oids; '
language 'sql';
language 'sql';
</CODE>
</PRE>
then:
<P>
then:
<PRE>
<CODE>
create table my_stuff (my_key int4, value text);
create table my_stuff (my_key int4, value text);
insert into my_stuff values (new_oid(), 'hello');
insert into my_stuff values (new_oid(), 'hello');
</CODE>
</PRE>
However, keep in mind there is a race condition here where one server
<P>
could do the update, then another one do an update, and they both
However, keep in mind there is a race condition here where one server
could select the same new id. This statement should be performed
could do the update, then another one do an update, and they both could
within a transaction.
select the same new id. This statement should be performed within a
transaction.
Sequences were implemented in 6.1
<P>
Sequences are implemented in 6.1
3.24) How do I create a multi-column index?
<P>
<H3><a name="3.24">3.24</a>) How do I create a multi-column index?</H3>
In 6.0, you can not directly create a multi-column index using create
<P>
index. You need to define a function which acts on the multiple
columns, then use create index with that function.
In 6.0, you can not directly create a multi-column index using create
index. You need to define a function which acts on the multiple columns,
In 6.1, this feature is available.
then use create index with that function.
<P>
3.25) What are the temp_XXX files in my database directory?
In 6.1, this feature is available.
<P>
They are temp_ files generated by the query executor. For example, if
<H3><a name="3.25">3.25</a>) What are the temp_XXX files in my database
a sort needs to be done to satisfy an ORDER BY, some temp files are
directory?</H3>
generated as a result of the sort.
<P>
They are temp_ files generated by the query executor. For example, if a
If you have no transactions or sorts running at the time, it is safe
sort needs to be done to satisfy an ORDER BY, some temp files are
to delete the temp_ files.
generated as a result of the sort.
<P>
3.26) Why are my table files not getting any smaller after a delete?
If you have no transactions or sorts running at the time, it is safe to
delete the temp_ files.
If you run vacuum in pre-6.0, unused rows will be marked for reuse,
<P>
but the file blocks are not released.
<H3><a name="3.26">3.26</a>) Why are my table files not getting any
smaller after a delete?</H3>
In 6.0, vacuum properly shrinks tables.
<P>
If you run vacuum in pre-6.0, unused rows will be marked for reuse, but
3.27) Why can't I connect to my database from another machine?
the file blocks are not released.
<P>
The default configuration allows only connections from tcp/ip host
In 6.0, vacuum properly shrinks tables.
localhost. You need to add a host entry to the file pgsql/data/pg_hba.
<P>
<H3><a name="3.27">3.27</a>) Why can't I connect to my database from
3.28) I get the error 'default index class unsupported' when creating an
another machine?</H3>
index. How do I do it?
<P>
The default configuration allows only connections from tcp/ip host
You probably used:
localhost. You need to add a host entry to the file pgsql/data/pg_hba.
<P>
<H3><a name="3.28">3.28</a>) I get the error 'default index class
unsupported' when creating an index. How do I do it?</H3>
<P>
You probably used:
<PRE>
<CODE>
create index idx1 on person using btree (name);
create index idx1 on person using btree (name);
</CODE>
</PRE>
PostgreSQL indexes are extensible, and therefore in pre-6.0, you must
<P>
specify a class_type when creating an index. Read the manual page for
PostgreSQL indexes are extensible, and therefore in pre-6.0, you must
create index (called create_index).
specify a class_type when creating an index. Read the manual page for
create index (called create_index).
Version 6.0, if you do not specify a class_type, it defaults to the
<P>
proper type for the column.
Version 6.0, if you do not specify a class_type, it defaults to the
proper type for the column.
3.29) Why does creating an index crash the backend server?
<P>
<H3><a name="3.29">3.29</a>) Why does creating an index crash the
You have probably defined an incorrect *_ops type class for the field
backend server?</H3>
you are indexing.
<P>
You have probably defined an incorrect *_ops type class for the field
3.30) How do I find out what indexes or operations are defined in the
you are indexing.
database?
<P>
<H3><a name="3.30">3.30</a>) How do I find out what indexes or
Run the file pgsql/src/tutorial/syscat.source. It illustrates many of
operations are defined in the database?</H3>
the 'select's needed to get information out of the database system
<P>
tables.
Run the file pgsql/src/tutorial/syscat.source. It illustrates many of
the 'select's needed to get information out of the database system
3.31) Why do statements require an extra character at the end? Why does
tables.
'createuser' return 'unexpected last match in input()'? Why does pg_dump
<P>
fail?
<H3><a name="3.31">3.31</a>) Why do statements require an extra character at
the end? Why does 'createuser' return 'unexpected last match in input()'?
You have compile postgres with flex version 2.5.3. There is bug in
Why does pg_dump fail?</H3>
this version of flex. Use flex version 2.5.2 or flex 2.5.4 instead.
<P>
There is a doc/README.flex file which will properly patch the flex
You have compile postgres with flex version 2.5.3. There is bug in this
2.5.3 source code.
version of flex. Use flex version 2.5.2 or flex 2.5.4 instead. There
is a doc/README.flex file which will properly patch the flex 2.5.3
3.32) All my servers crash under concurrent table access. Why?
source code.
<P>
This problem can be caused by a kernel that is not configured to
<H3><a name="3.32">3.32</a>) All my servers crash under concurrent table
support semaphores.
access. Why?</H3>
<P>
3.33) What tools are available for hooking postgres to Web pages?
This problem can be caused by a kernel that is not configured to support
semaphores.
For web integration, PHP/FI is an excellent interface. The URL for
<P>
that is http://www.vex.net/php/
<H3><a name="3.33">3.33</a>) What tools are available for hooking
postgres to Web pages?</H3>
PHP is great for simple stuff, but for more complex stuff, some still
<P>
use the perl interface and CGI.pm.
For web integration, PHP/FI is an excellent interface. The URL for that
is <a href="http://www.vex.net/php/">http://www.vex.net/php/</a>
An example of using WWW with C to talk to Postgres is can be tried at:
<P>
* http://postgreSQL.org/~mlc
PHP is great for simple stuff, but for more complex stuff, some still
use the perl interface and CGI.pm.
An WWW gatway based on WDB using perl can be downloaded from:
<P>
* http://www.eol.ists.ca/~dunlop/wdb -p95
An example of using WWW with C to talk to Postgres is can be tried at:
<UL>
3.34) What is the time-warp feature and how does it relate to vacuum?
<LI>
<a href="http://postgreSQL.org/%7Emlc">http://postgreSQL.org/~mlc</a>
PostgreSQL handles data changes differently than most database
</UL>
systems. When a row is changed in a table, the original row is marked
<P>
with the time it was changed, and a new row is created with the
An WWW gatway based on WDB using perl can be downloaded from:
current data. By default, only current rows are used in a table. If
<UL>
you specify a date/time after the table name in a FROM clause, you can
<LI>
access the data that was current at that time, i.e.
<a
href="http://www.eol.ists.ca/~dunlop/wdb-p95">http://www.eol.ists.ca/~dunlop/wdb
-p95</a>
</UL>
<H3><a name="3.34">3.34</a>) What is the time-warp feature and how does
it relate to vacuum?</H3>
<P>
PostgreSQL handles data changes differently than most database systems.
When a row is changed in a table, the original row is marked with the
time it was changed, and a new row is created with the current data. By
default, only current rows are used in a table. If you specify a
date/time after the table name in a FROM clause, you can access the data
that was current at that time, i.e.
<PRE>
<CODE>
SELECT *
SELECT *
FROM employees ['July 24, 1996 09:00:00']
FROM employees ['July 24, 1996 09:00:00']
</CODE>
</PRE>
displays employee rows in the table at the specified time. You can
<P>
specify intervals like [date,date], [date,], [,date], or [,]. This
displays employee rows in the table at the specified time. You can
last option accesses all rows that ever existed.
specify intervals like [date,date], [date,], [,date], or [,]. This last
option accesses all rows that ever existed.
INSERTed rows get a timestamp too, so rows that were not in the table
<P>
at the desired time will not appear.
INSERTed rows get a timestamp too, so rows that were not in the table at
the desired time will not appear.
Vacuum removes rows that are no longer current. This time-warp feature
<P>
is used by the engine for rollback and crash recovery. Expiration
Vacuum removes rows that are no longer current. This time-warp feature
times can be set with purge.
is used by the engine for rollback and crash recovery. Expiration times
can be set with purge.
In 6.0, once a table is vacuumed, the creation time of a row may be
<P>
incorrect, causing time-traval to fail.
In 6.0, once a table is vacuumed, the creation time of a row may be
incorrect, causing time-traval to fail.
The time-travel feature will be removed in 7.0.
<P>
The time-travel feature will be removed in 7.0.
3.35) How do I tune the database engine for better performance?
<P>
<H3><a name="3.35">3.35</a>) How do I tune the database engine for
There are two things that can be done. You can use Openlink's option
better performance?</H3>
to disable fsync() by starting the postmaster with a '-o -F' option.
<P>
This will prevent fsync()'s from flushing to disk after every
There are two things that can be done. You can use Openlink's option to
transaction.
disable fsync() by starting the postmaster with a '-o -F' option. This
will prevent fsync()'s from flushing to disk after every transaction.
You can also use the postmaster -B option to increase the number of
<P>
shared memory buffers shared among the backend processes. If you make
You can also use the postmaster -B option to increase the number of
this parameter too high, the process will not start or crash
shared memory buffers shared among the backend processes. If you make
unexpectedly. Each buffer is 8K and the defualt is 64 buffers.
this parameter too high, the process will not start or crash
unexpectedly. Each buffer is 8K and the defualt is 64 buffers.
3.36) What debugging features are available in PostgreSQL?
<P>
<H3><a name="3.36">3.36</a>) What debugging features are available in
PostgreSQL has several features that report status information that
PostgreSQL?</H3>
can be valuable for debugging purposes.
<P>
PostgreSQL has several features that report status information that can
First, by compiling with DEBUG defined, many assert()'s monitor the
be valuable for debugging purposes.
progress of the backend and halt the program when something unexpected
<P>
occurs.
First, by compiling with DEBUG defined, many assert()'s monitor the
progress of the backend and halt the program when something unexpected
Both postmaster and postgres have several debug options available.
occurs.
First, whenever you start the postmaster, make sure you send the
<P>
standard output and error to a log file, like:
Both postmaster and postgres have several debug options available.
First, whenever you start the postmaster, make sure you send the
standard output and error to a log file, like:
<PRE>
<KBD>
cd /usr/local/pgsql
cd /usr/local/pgsql
./bin/postmaster >server.log 2>&1 &
./bin/postmaster >server.log 2>&1 &
</KBD>
</PRE>
This will put a server.log file in the top-level PostgreSQL directory.
<P>
This file can contain useful information about problems or errors
This will put a server.log file in the top-level PostgreSQL directory.
encountered by the server. Postmaster has a -d option that allows even
This file can contain useful information about problems or errors
more detailed information to be reported. The -d option takes a number
encountered by the server. Postmaster has a -d option that allows even
1-3 that specifies the debug level. The query plans in a verbose debug
more detailed information to be reported. The -d option takes a number
file can be formatted using the 'indent' program. (You may need to
1-3 that specifies the debug level. The query plans in a verbose debug
remove the '====' lines in 1.* releases.) Be warned that a debug level
file can be formatted using the 'indent' program. (You may need to
greater than one generates large log files in 1.* releases.
remove the '====' lines in 1.* releases.) Be warned that a debug level
greater than one generates large log files in 1.* releases.
You can actuall run the postgres backend from the command line, and
<P>
type your SQL statement directly. This is recommended ONLY for
You can actuall run the postgres backend from the command line, and type
debugging purposes. Note that a newline terminates the query, not a
your SQL statement directly. This is recommended ONLY for debugging
semicolon. If you have compiled with debugging symbols, you can
purposes. Note that a newline terminates the query, not a semicolon. If
perhaps use a debugger to see what is happening. Because the backend
you have compiled with debugging symbols, you can perhaps use a debugger
was not started from the postmaster, it is not running in an identical
to see what is happening. Because the backend was not started from the
environment and locking/backend interaction problems may not be
postmaster, it is not running in an identical environment and
duplicated. Some operating system can attach to a running backend
locking/backend interaction problems may not be duplicated. Some
directly to diagnose problems.
operating system can attach to a running backend directly to diagnose
problems.
The postgres program has a -s, -A, -t options that can be very usefull
<P>
for debugging and performance measurements.
The postgres program has a -s, -A, -t options that can be very usefull
for debugging and performance measurements.
The EXPLAIN command (see this FAQ) allows you to see how PostgreSQL is
<P>
iterpreting your query.
The EXPLAIN command (see this FAQ) allows you to see how PostgreSQL is
iterpreting your query.
3.37) What is an oid? What is a tid?
<P>
<H3><a name="3.37">3.37</a>) What is an oid? What is a tid?</H3>
Oids are Postgres's answer to unique row ids or serial columns. Every
<P>
row that is created in Postgres gets a unique oid. All oids generated
Oids are Postgres's answer to unique row ids or serial columns. Every
by initdb are less than 16384 (from backend/access/transam.h). All
row that is created in Postgres gets a unique oid. All oids generated
post-initdb (user-created) oids are equal or greater that this. All
by initdb are less than 16384 (from backend/access/transam.h). All
these oids are unique not only within a table, or database, but unique
post-initdb (user-created) oids are equal or greater that this. All
within the entire postgres installation.
these oids are unique not only within a table, or database, but unique
within the entire postgres installation.
Postgres uses oids in its internal system tables to link rows in
<P>
separate tables. These oids can be used to identify specific user rows
Postgres uses oids in its internal system tables to link rows in
and used in joins. It is recommended you use column type oid to store
separate tables. These oids can be used to identify specific user rows
oid values. See the sql(l) manual page to see the other internal
and used in joins. It is recommended you use column type oid to store
columns.
oid values. See the sql(l) manual page to see the other internal
columns.
Tids are used to indentify specific physical rows with block and
<P>
offset values. Tids change after rows are modified or reloaded. They
Tids are used to indentify specific physical rows with block and offset
are used by index entries to point to physical rows. They can not be
values. Tids change after rows are modified or reloaded. They are used
accessed through sql.
by index entries to point to physical rows. They can not be accessed
through sql.
3.38) What is the meaning of some of the terms used in Postgres?
<P>
<H3><a name="3.38">3.38</a>) What is the meaning of some of the terms
Some of the source code and older documentation use terms that have
used in Postgres?</H3>
more common usage. Here are some:
<P>
* row, record, tuple
Some of the source code and older documentation use terms that have more
* attribute, field, column
common usage. Here are some:
* table, class
<UL>
* retrieve, select
<LI> row, record, tuple
* replace, update
<LI> attribute, field, column
* append, insert
<LI> table, class
* oid, serial value
<LI> retrieve, select
* portal, cursor
<LI> replace, update
* range variable, table name, table alias
<LI> append, insert
<LI> oid, serial value
Please let me know if you think of any more.
<LI> portal, cursor
<LI> range variable, table name, table alias
3.39) What is Genetic Query Optimization?
</UL>
<P>
The GEQO module in PostgreSQL is intended to solve the query
Please let me know if you think of any more.
optimization problem of joining many tables by means of a Genetic
<P>
Algorithm (GA). It allows the handling of large join queries through
<H3><a name="3.39">3.39</a>) What is Genetic Query Optimization?</H3>
non-exhaustive search.
<P>
The GEQO module in PostgreSQL is intended to solve the query
For further information see README.GEQO <utesch@aut.tu-freiberg.de>.
optimization problem of joining many tables by means of a Genetic
Algorithm (GA). It allows the handling of large join queries through
3.40) I am running Solaris and my dates display wrong. Why?
non-exhaustive search.
<P>
There was a bug in 6.0 that caused this problem under Solaris with -O2
For further information see README.GEQO <utesch@aut.tu-freiberg.de>.
optimization. Upgrade to 6.1.1.
<P>
<H3><a name="3.40">3.40</a>) I am running Solaris and my dates
3.41) How do I enable more than 32 concurrent backends?
display wrong. Why?</H3>
<P>
Edit include/storage/sinvaladt.h, and change the value of
There was a bug in 6.0 that caused this problem under Solaris with -O2
MaxBackendId. In the future, we plan to make this a configurable
optimization.
prameter.
Upgrade to 6.1.
<P>
_________________________________________________________________
<H3><a name="3.41">3.41</a>) How do I enable more than 32 concurrent
backends?</H3>
Section 4: Extending PostgreSQL
<P>
Edit include/storage/sinvaladt.h, and change the value of MaxBackendId.
4.1) I wrote a user-defined function and when I run it in psql, it dumps
In the future, we plan to make this a configurable prameter.
core.
<P>
<HR>
The problem could be a number of things. Try testing your user-defined
<H2> Section 4: Extending PostgreSQL
function in a stand alone test program first. Also, make sure you are
</H2>
not sending elog NOTICES when the front-end is expecting data, such as
<P>
during a type_in() or type_out() functions
<H3><a name="4.1">4.1</a>) I wrote a user-defined function and when I run it
in psql, it dumps core.</H3>
4.2) I get messages of the type NOTICE:PortalHeapMemoryFree: 0x402251d0 not
<P>
in alloc set!
The problem could be a number of things. Try testing your user-defined
function in a stand alone test program first. Also, make sure you are
You are pfree'ing something that was not palloc'ed. When writing
not sending elog NOTICES when the front-end is expecting data, such as
user-defined functions, do not include the file "libpq-fe.h". Doing so
during a type_in() or type_out() functions
will cause your palloc to be a malloc instead of a free. Then, when
<P>
the backend pfrees the storage, you get the notice message.
<H3><a name="4.2">4.2</a>) I get messages of the type
NOTICE:PortalHeapMemoryFree: 0x402251d0 not in alloc set!</H3>
4.3) I've written some nifty new types and functions for PostgreSQL.
<P>
You are pfree'ing something that was not palloc'ed. When writing
Please share them with other PostgreSQL users. Send your extensions to
user-defined functions, do not include the file "libpq-fe.h". Doing so
mailing list, and they will eventually end up in the contrib/
will cause your palloc to be a malloc instead of a free. Then, when the
subdirectory.
backend pfrees the storage, you get the notice message.
<P>
4.4) How do I write a C function to return a tuple?
<H3><a name="4.3">4.3</a>) I've written some nifty new types and functions for
PostgreSQL.</H3>
This requires extreme wizardry, so extreme that the authors have not
<P>
ever tried it, though in principle it can be done. The short answer is
Please share them with other PostgreSQL users. Send your extensions to
... you can't. This capability is forthcoming in the future.
mailing list, and they will eventually end up in the contrib/
subdirectory.
_________________________________________________________________
<P>
<H3><a name="4.4">4.4</a>) How do I write a C function to return a tuple?</H3>
Section 5: Bugs
<P>
This requires extreme wizardry, so extreme that the authors have not
5.1) How do I make a bug report?
ever tried it, though in principle it can be done. The short answer is
... you can't. This capability is forthcoming in the future.
Check the current FAQ at http://postgreSQL.org
<P>
<HR>
Also check out our ftp site ftp://ftp.postgreSQL.org/pub to see if
<H2> Section 5: Bugs
there is a more recent PostgreSQL version.
</H2>
<P>
You can also fill out the "bug-template" file and send it to:
<H3><a name="5.1">5.1</a>) How do I make a bug report?</H3>
* bugs@postgreSQL.org
<P>
Check the current FAQ at <a
This is the address of the developers mailing list.
href="http://postgreSQL.org">http://postgreSQL.org</a>
<P>
Also check out our ftp site <a
href="ftp://ftp.postgreSQL.org/pub">ftp://ftp.postgreSQL.org/pub</a> to
see if there is a more recent PostgreSQL version.
<P>
You can also fill out the "bug-template" file and send it to:
<UL>
<LI> <a href="mailto:bugs@postgreSQL.org">bugs@postgreSQL.org</a>
</UL>
<P>
This is the address of the developers mailing list.
</BODY>
</HTML>
doc/TODO
View file @
39cefa66
====================================================
====================================================
TODO list (FAQ) for PostgreSQL
TODO list (FAQ) for PostgreSQL
====================================================
====================================================
last updated:
Tue Jun 3 16:30:57
EDT 1997
last updated:
Sun Jul 13 15:18:19
EDT 1997
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.1 APPEAR AT THE END OF THIS DOCUMENT
THE CHANGES FOR 6.1
and 6.1.1
APPEAR AT THE END OF THIS DOCUMENT
Developers who have claimed items are:
Developers who have claimed items are:
Bruce is Bruce Momjian<maillist@candle.pha.pa.us>
Bruce is Bruce Momjian<maillist@candle.pha.pa.us>
...
@@ -18,6 +18,7 @@ Developers who have claimed items are:
...
@@ -18,6 +18,7 @@ Developers who have claimed items are:
Darren is Darren King <darrenk@insightdist.com>
Darren is Darren King <darrenk@insightdist.com>
Edmund is Edmund Mergl <E.Mergl@bawue.de>
Edmund is Edmund Mergl <E.Mergl@bawue.de>
Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
Gerhard is Gerhard Reithofer <gerhardr@tech-edv.co.at>
Igor is Igor <igor@sba.miami.edu>
Igor is Igor <igor@sba.miami.edu>
Jun is Jun Kuwamura <juk@rccm.co.jp>
Jun is Jun Kuwamura <juk@rccm.co.jp>
Kurt is "Kurt J. Lidl" <lidl@va.pubnix.com>
Kurt is "Kurt J. Lidl" <lidl@va.pubnix.com>
...
@@ -28,6 +29,7 @@ Developers who have claimed items are:
...
@@ -28,6 +29,7 @@ Developers who have claimed items are:
Soo-Ho Ok <shok@detc.dongeui-tc.ac.kr>
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>
Sven is Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
Thomas is Thomas Lockhart <tgl@mythos.jpl.nasa.gov>
Thomas is Thomas Lockhart <tgl@mythos.jpl.nasa.gov>
Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su>
Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su>
Vivek is Vivek Khera <khera@kci.kciLink.com>
Vivek is Vivek Khera <khera@kci.kciLink.com>
...
@@ -42,8 +44,6 @@ Fix all NULL features
...
@@ -42,8 +44,6 @@ Fix all NULL features
allow psql to print nulls meaningfully
allow psql to print nulls meaningfully
Fix compile and security of Kerberos/GSSAPI code (Daniel Kalchev?)
Fix compile and security of Kerberos/GSSAPI code (Daniel Kalchev?)
Dropping a table twice causes corruption, drop/create not rollback-able
Dropping a table twice causes corruption, drop/create not rollback-able
SELECT on two tables where zero or one table in WHERE and target
clause returns no rows
COUNT on VIEW always returns zero (maybe because there is no oid for views?)
COUNT on VIEW always returns zero (maybe because there is no oid for views?)
CREATE VIEW requires super-user priviledge
CREATE VIEW requires super-user priviledge
SELECT a[1] FROM test fails, it needs test.a[1]
SELECT a[1] FROM test fails, it needs test.a[1]
...
@@ -53,6 +53,9 @@ can lo_export()/lo_import() read/write anywhere, causing a security problem?
...
@@ -53,6 +53,9 @@ can lo_export()/lo_import() read/write anywhere, causing a security problem?
Fix UPDATE key_table SET keyval=max(reftab.NUM)+1 WHERE tblname='reftab'
Fix UPDATE key_table SET keyval=max(reftab.NUM)+1 WHERE tblname='reftab'
SELECT COUNT(*) FROM TAB1, TAB2 fails
SELECT COUNT(*) FROM TAB1, TAB2 fails
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 {}
Add GROUP BY and HAVING to INSERT INTO table SELECT * FROM table2
Make timestamp type recognize DateStyle(Tom)
ENHANCEMENTS
ENHANCEMENTS
------------
------------
...
@@ -115,7 +118,6 @@ Remove stale files upon startup(Vivek)
...
@@ -115,7 +118,6 @@ Remove stale files upon startup(Vivek)
Add command to show privileges
Add command to show privileges
Allow INSERT INTO ... SELECT to convert column types
Allow INSERT INTO ... SELECT to convert column types
Add syslog functionality
Add syslog functionality
Improve optimizer plan choice(Darren)
Add STDDEV/VARIANCE() function for standard deviation computation/variance
Add STDDEV/VARIANCE() function for standard deviation computation/variance
Add table/column/function discription table indexed by oid
Add table/column/function discription table indexed by oid
add pg_type attribute to identify types that need length (bpchar, varchar)
add pg_type attribute to identify types that need length (bpchar, varchar)
...
@@ -124,6 +126,8 @@ make pg_dumpall preserve table ownership, not just database ownership
...
@@ -124,6 +126,8 @@ make pg_dumpall preserve table ownership, not just database ownership
make large objects have their own reltype
make large objects have their own reltype
make number of backends a config parameter, storage/sinvaladt.h:MaxBackendId
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
change the library/backend interface to use network byte order
PERFORMANCE
PERFORMANCE
-----------
-----------
...
@@ -150,11 +154,38 @@ Update usermanual source(many)
...
@@ -150,11 +154,38 @@ Update usermanual source(many)
remove time-travel in documentation(Bruce)
remove time-travel in documentation(Bruce)
added features used in grammer but not in docs, like :: and CAST
added features used in grammer but not in docs, like :: and CAST
add DECLARE manual page
add DECLARE manual page
update libpq++ manual page
PORTABILITY
PORTABILITY
-----------
-----------
---------------------------------------------------------------------------
CHANGES IN THE 6.1.1 RELEASE
Changes in this release
-----------------------
fix for SET with options (Thomas)
fix month boundary arithmetic(Thomas)
fix timezone daylight handling for some ports(Thomas)
allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce)
new psql \connect option allows changing usernames without chaning databases
fix for datetime arithmetic over month boundaries(Thomas)
fix for initdb --debug option(Tatsuo)
lextest cleanup(Bruce)
hash fixes(Vadim)
psql's \d now case-insensitive(Bruce)
psql's backslash commands can now have trailing semicolon(Bruce)
fix memory leak in psql when using \g(Bruce)
major fix for endian handling of communication to server(Thomas, Tatsuo)
improvements in datetime and timespan routines(Thomas)
timestamp overhauled to use standard functions(Thomas)
Fix for Solaris assembler and include files(Yoshihiko Ichikawa)
allow underscores in usernames(Bruce)
pg_dumpall now returns proper status, portability fix(Bruce)
---------------------------------------------------------------------------
---------------------------------------------------------------------------
CHANGES IN THE 6.1 RELEASE
CHANGES IN THE 6.1 RELEASE
...
@@ -188,6 +219,8 @@ fix btree duplicates handling (Vadim)
...
@@ -188,6 +219,8 @@ fix btree duplicates handling (Vadim)
fix deleted tuples re-incarnation caused by vacuum (Vadim)
fix deleted tuples re-incarnation caused by vacuum (Vadim)
fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce)
fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce)
many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor)
many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor)
SELECT on two tables where zero or one table in WHERE and target
clause returns no rows(Vadim)
Enhancements
Enhancements
------------
------------
...
@@ -235,6 +268,7 @@ new destroydb -i option (Igor)
...
@@ -235,6 +268,7 @@ new destroydb -i option (Igor)
new \dt and \di psql commands (Darren)
new \dt and \di psql commands (Darren)
SELECT "\n" now escapes newline (A. Duursma)
SELECT "\n" now escapes newline (A. Duursma)
new geometry conversion functions from old format (Thomas)
new geometry conversion functions from old format (Thomas)
Improve optimizer plan choice(Vadim)
Source tree changes
Source tree changes
-------------------
-------------------
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment