POSTGRESQL is an enhancement of the Postgres management system, a next-generation DBMS research prototype. While POSTGRESQL retains the powerful data model and rich data types of Postgres, it replaces the POSTQUEL query language with an extended subset of SQL. POSTGRESQL is free and the complete source is available.
POSTGRESQL development is performed by a team of Internet developers who all subscribe to the POSTGRESQL development mailing list. The current coordinator is Marc G. Fournier ([email protected]). (See below on how to join). This team is now responsible for all development of POSTGRESQL.
The authors of POSTGRESQL 1.01 were Andrew Yu and Jolly Chen . Many others have contributed to the porting, testing, debugging, and enhancement of the code. The original Postgres code, from which POSTGRESQL is derived, was the effort of many graduate students, undergraduate students, and staff programmers working under the direction of Professor Michael Stonebraker at the University of California, Berkeley .
The original name of the software at Berkeley was Postgres. When SQL functionality was added in 1995, its name was changed to Postgres95 . The name was changed at the end of 1996 to POSTGRESQL.
It is pronounced Post-Gres-Q-L.
POSTGRESQL is subject to the following COPYRIGHT:
POSTGRESQL Data Base Management System
Portions copyright (c) 1996-2000, PostgreSQL, Inc Portions Copyright (c) 1994-6 Regents of the University of California
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.
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.
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.
The authors have compiled and tested POSTGRESQL on the following platforms (some of these compiles require gcc):
It is possible to compile the libpq C library, psql , and other interfaces and binaries to run on MS Windows platforms. In this case, the client is running on MS Windows, and communicates via TCP/IP to a server running on one of our supported Unix platforms.
A file win31.mak is included in the distribution for making a Win32 libpq library and psql .
The database server is now working on Windows NT using the Cygnus Unix/NT porting library. See pgsql/doc/FAQ_NT in the distribution.
The primary anonymous ftp site for POSTGRESQL is ftp://ftp.PostgreSQL.org/pub. For mirror sites, see our main Web site.
There is no support for POSTGRESQL from the University of California, Berkeley. It is maintained through volunteer effort.
The main mailing list is: [email protected]. It is available for discussion of matters pertaining to POSTGRESQL. To subscribe, send mail with the following lines in the body (not the subject line):
subscribe
end
to [email protected].
There is also a digest list available. To subscribe to this list, send email to: [email protected] with a body of:
subscribe
end
Digests are sent out to members of this list whenever the main list
has received around 30k of messages.
The bugs mailing list is available. To subscribe to this list, send email to [email protected] with a body of:
subscribe
end
There is also a developers discussion mailing list available. To subscribe
to this list, send email to [email protected] with
a body of:
subscribe
end
Additional mailing lists and information about POSTGRESQL
can be found via the POSTGRESQL WWW home page at: http://www.PostgreSQL.org.
There is also an IRC channel on EFNet, channel #PostgreSQL. I use the Unix command irc -c '#PostgreSQL' "$USER" irc.phoenix.net. Commercial support for POSTGRESQL is available at http://www.pgsql.com/.
The latest release of POSTGRESQL is version 7.0.2. We plan to have major releases every four months.
Several manuals, manual pages, and some small test examples are included in the distribution. See the /doc directory. You can also browse the manual online at http://www.postgresql.org/docs/postgres.
There is a POSTGRESQL book available at http://www.postgresql.org/docs/awbook.html.
psql has some nice backslash commands to show information about types, operators, functions, aggregates, etc.
Our Web site contains even more documentation.
POSTGRESQL supports an extended subset of SQL-92. See our TODO list for known bugs, missing features, and future plans.
The POSTGRESQL book at:
http://www.postgresql.org/docs/awbook.htmlteaches SQL. There is a nice tutorial at
http://w3.one.net/~jhoffman/sqltut.htmAnother one is Teach Yourself SQL in 21 Days, Second Edition at:and at
http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM.
http://members.tripod.com/er4ebus/sql/index.htmMany of our users like The Practical SQL Handbook, Bowman, Judith S., et al., Addison-Wesley. Others like The Complete Reference SQL, Groff et al., McGraw-Hill.
Yes, we easily handle dates past the year 2000AD, and before 2000BC.
First, download the latest source and read the POSTGRESQL Developers documentation on our Web site, or in the distribution. Second, subscribe to the pgsql-hackers and pgsql-patches mailing lists. Third, submit high-quality patches to pgsql-patches.
There are about a dozen people who have commit privileges to the POSTGRESQL CVS archive. They each have submitted so many high-quality patches that it was impossible for the existing committers to keep up, and we had confidence that patches they committed were of high quality.
Fill out the bug-template file and send it to: [email protected]
Also check out our ftp site, ftp://ftp.PostgreSQL.org/pub, to see if there is a more recent POSTGRESQL version or patches.
There are several ways of measuring software: features, performance, reliability, support, and price.
POSTGRESQL has most features present in large commercial DBMS's, like transactions, subselects, triggers, views, foreign key referential integrity, and sophisticated locking. We have some features they don't have, like user-defined types, inheritance, rules, and multi-version concurrency control to reduce lock contention. We don't have outer joins, but are working on them.
POSTGRESQL runs in two modes. Normal fsync mode flushes every completed transaction to disk, guaranteeing that if the OS crashes or loses power in the next few seconds, all your data is safely stored on disk. In this mode, we are slower than most commercial databases, partly because few of them do such conservative flushing to disk in their default modes. In no-fsync mode, we are usually faster than commercial databases, though in this mode, an OS crash could cause data corruption. We are working to provide an intermediate mode that suffers less performance overhead than full fsync mode, and will allow data integrity within 30 seconds of an OS crash.
In comparison to MySQL or leaner database systems, we are slower on inserts/updates because we have transaction overhead. Of course, MySQL doesn't have any of the features mentioned in the Features section above. We are built for flexibility and features, though we continue to improve performance through profiling and source code analysis. There is an interesting Web page comparing POSTGRESQL to MySQL at http://openacs.org/why-not-mysql.html.
We handle each user connection by creating a Unix process. Backend processes share data buffers and locking information. With multiple CPU's, multiple backends can easily run on different CPU's.
We realize that a DBMS must be reliable, or it is worthless. We strive to release well-tested, stable code that has a minimum of bugs. Each release has at least one month of beta testing, and our release history shows that we can provide stable, solid releases that are ready for production use. We believe we compare favorably to other database software in this area.
Our mailing list provides a large group of developers and users to help resolve any problems encountered. While we can not guarantee a fix, commercial DBMS's don't always supply a fix either. Direct access to developers, the user community, manuals, and the source code often make POSTGRESQL support superior to other DBMS's. There is commercial per-incident support available for those who need it. (See support FAQ item.)
We are free for all use, both commercial and non-commercial. You can add our code to your product with no limitations, except those outlined in our BSD-style license stated above.