Minor changes to Fred Horsh's updates.

This commit is contained in:
Thomas G. Lockhart 1999-06-23 06:12:31 +00:00
parent cb88fd192b
commit 66ef1b6ebd
2 changed files with 409 additions and 351 deletions

View file

@ -1,233 +1,267 @@
<Sect1>
<Title>A Short History of <ProductName>Postgres</ProductName></Title>
<sect1>
<title>A Short History of <productname>Postgres</productname></title>
<Para>
<para>
The Object-Relational Database Management System now known as
<ProductName>PostgreSQL</ProductName> was originally called
<ProductName>Postgres</ProductName>, and briefly called
<ProductName>Postgres95</ProductName>. With over a decade of
development behind it, <ProductName>PostgreSQL</ProductName>
<productname>PostgreSQL</productname> (and briefly called
<productname>Postgres95</productname>) is derived from the
<productname>Postgres</productname> package written at Berkeley.
With over a decade of
development behind it, <productname>PostgreSQL</productname>
is the most advanced open-source database available anywhere,
offering multi-version concurrency control and supporting almost
all SQL constructs, including subselects, transactions, and
user-defined types and functions.
</Para>
offering multi-version concurrency control, supporting almost
all SQL constructs (including subselects, transactions, and
user-defined types and functions), and having a wide range of
language bindings available (including C, C++, Java, perl, tcl, and python).
</para>
<Sect2>
<Title>The Berkeley <ProductName>Postgres</ProductName> Project</Title>
<sect2>
<title>The Berkeley <productname>Postgres</productname> Project</title>
<Para>
Implementation of the <ProductName>Postgres</ProductName>
<Acronym>DBMS</Acronym> began in 1986. The
<para>
Implementation of the <productname>Postgres</productname>
<acronym>DBMS</acronym> began in 1986. The
initial concepts for the system were presented in
<XRef LinkEnd="STON86" endterm="STON86-full">
<xref endterm="STON86-full" linkend="STON86">
and the definition of the initial data model
appeared in
<XRef LinkEnd="ROWE87" endterm="ROWE87-full">.
<xref endterm="ROWE87-full" linkend="ROWE87">.
The design of the rule system at
that time was described in
<XRef LinkEnd="STON87a" endterm="STON87a-full">.
<xref endterm="STON87a-full" linkend="STON87a">.
The rationale
and architecture of the storage manager were detailed in
<XRef LinkEnd="STON87b" endterm="STON87b-full">.
</Para>
<xref endterm="STON87b-full" linkend="STON87b">.
</para>
<Para>
<ProductName>Postgres</ProductName> has undergone several major releases since
<para>
<productname>Postgres</productname> has undergone several major releases since
then. The first "demoware" system became operational
in 1987 and was shown at the 1988 <Acronym>ACM-SIGMOD</Acronym>
in 1987 and was shown at the 1988 <acronym>ACM-SIGMOD</acronym>
Conference. We released Version 1, described in
<XRef LinkEnd="STON90a" endterm="STON90a-full">,
<xref endterm="STON90a-full" linkend="STON90a">,
to a few external users in June 1989. In response to a
critique of the first rule system
(<XRef LinkEnd="STON89" endterm="STON89-full">),
(<xref endterm="STON89-full" linkend="STON89">),
the rule
system was redesigned
(<XRef LinkEnd="STON90b" endterm="STON90b-full">)
(<xref endterm="STON90b-full" linkend="STON90b">)
and Version 2 was
released in June 1990 with the new rule system.
Version 3 appeared in 1991 and added support for multiple
storage managers, an improved query executor, and a
rewritten rewrite rule system. For the most part,
releases until <ProductName>Postgres95</ProductName> (see below)
releases until <productname>Postgres95</productname> (see below)
focused on portability and reliability.
</Para>
</para>
<Para>
<ProductName>Postgres</ProductName> has been used to implement many different
<para>
<productname>Postgres</productname> has been used
to implement many different
research and production applications. These include: a
financial data analysis system, a jet engine
performance monitoring package, an asteroid tracking
database, a medical information database, and several
geographic information systems.
<ProductName>Postgres</ProductName> has also been
<productname>Postgres</productname> has also been
used as an educational tool at several universities.
Finally,
<Ulink url="http://www.illustra.com/">Illustra Information Technologies</Ulink>
<ulink url="http://www.illustra.com/">Illustra Information Technologies</ulink>
(since merged into
<Ulink url="http://www.informix.com/">Informix</Ulink>)
<ulink url="http://www.informix.com/">Informix</ulink>)
picked up
the code and commercialized it.
<ProductName>Postgres</ProductName> became the primary data manager
<productname>Postgres</productname> became the primary data manager
for the
<Ulink url="http://www.sdsc.edu/0/Parts_Collabs/S2K/s2k_home.html">Sequoia 2000</Ulink>
<ulink url="http://www.sdsc.edu/0/Parts_Collabs/S2K/s2k_home.html">Sequoia 2000</ulink>
scientific computing project in late 1992.
Furthermore, the size of the external user community
</para>
<para>
The size of the external user community
nearly doubled during 1993. It became increasingly
obvious that maintenance of the prototype code and
support was taking up large amounts of time that should
have been devoted to database research. In an effort
to reduce this support burden, the project officially
ended with Version 4.2.
</Para>
</Sect2>
</para>
</sect2>
<Sect2>
<Title><ProductName>Postgres95</ProductName></Title>
<sect2>
<title><productname>Postgres95</productname></title>
<Para>
<para>
In 1994,
<ULink url="mailto:ayu@informix.com">Andrew Yu</ULink>
<ulink url="mailto:ayu@informix.com">Andrew Yu</ulink>
and
<ULink url="http://http.cs.berkeley.edu/~jolly/">Jolly Chen</ULink>
added a SQL language interpreter to <ProductName>Postgres</ProductName>.
<ProductName>Postgres95</ProductName> was subsequently released to
<ulink url="http://http.cs.berkeley.edu/~jolly/">Jolly Chen</ulink>
added a SQL language interpreter to <productname>Postgres</productname>.
<productname>Postgres95</productname> was subsequently released to
the Web to find its own way in the world as a public-domain,
open source descendant of the original <ProductName>Postgres</ProductName>
open source descendant of the original <productname>Postgres</productname>
Berkeley code.
</Para>
</para>
<Para>
<ProductName>Postgres95</ProductName> code was completely
<para>
<productname>Postgres95</productname> code was completely
ANSI C and trimmed in size by 25%. Many
internal changes improved performance and maintainability.
<ProductName>Postgres95</ProductName> v1.0.x ran about 30-50%
<productname>Postgres95</productname> v1.0.x ran about 30-50%
faster on the Wisconsin Benchmark compared to
<ProductName>Postgres</ProductName> v4.2.
<productname>Postgres</productname> v4.2.
Apart from bug fixes, these were the major enhancements:
<ItemizedList>
<ListItem>
<Para>
The query language <ProductName>Postquel</ProductName> was replaced with
<Acronym>SQL</Acronym> (implemented in the server). Subqueries were not supported until <ProductName>PostgreSQL</ProductName> (see below), but they
could be imitated in <ProductName>Postgres95</ProductName> with user-defined
<Acronym>SQL</Acronym> functions. Aggregates were
re-implemented. Support for ``GROUP BY'' was also added.
The <FileName>libpq</FileName> interface remained available for <Acronym>C</Acronym>
<itemizedlist>
<listitem>
<para>
The query language <productname>Postquel</productname> was replaced with
<acronym>SQL</acronym> (implemented in the server).
Subqueries were not supported until
<productname>PostgreSQL</productname> (see below), but they
could be imitated in <productname>Postgres95</productname> with user-defined
<acronym>SQL</acronym> functions. Aggregates were
re-implemented. Support for the GROUP BY query clause was also added.
The <filename>libpq</filename> interface remained
available for <acronym>C</acronym>
programs.
</Para>
</ListItem>
<ListItem>
<Para>
</para>
</listitem>
<listitem>
<para>
In addition to the monitor program, a new program
(<Application>psql</Application>) was provided for interactive SQL queries
using <Acronym>GNU</Acronym> <FileName>readline</FileName>.
</Para>
</ListItem>
<ListItem>
<Para>
A new front-end library, <FileName>libpgtcl</FileName>,
supported <Acronym>Tcl</Acronym>-based clients. A sample shell,
pgtclsh, provided new Tcl commands to interface <Application>tcl</Application>
programs with the <ProductName>Postgres95</ProductName> backend.
</Para>
</ListItem>
<ListItem>
<Para>
(<application>psql</application>) was provided for interactive SQL queries
using <acronym>GNU</acronym> <filename>readline</filename>.
</para>
</listitem>
<listitem>
<para>
A new front-end library, <filename>libpgtcl</filename>,
supported <acronym>Tcl</acronym>-based clients. A sample shell,
pgtclsh, provided new Tcl commands to interface
<application>tcl</application>
programs with the <productname>Postgres95</productname> backend.
</para>
</listitem>
<listitem>
<para>
The large object interface was overhauled. The Inversion large objects were
the only mechanism for storing large objects.
(The Inversion file system was removed.)
</Para>
</ListItem>
<ListItem>
<Para>
</para>
</listitem>
<listitem>
<para>
The instance-level rule system was removed.
Rules were still available as rewrite rules.
</Para>
</ListItem>
<ListItem>
<Para>
A short tutorial introducing regular <Acronym>SQL</Acronym> features as
well as those of <ProductName>Postgres95</ProductName> was
</para>
</listitem>
<listitem>
<para>
A short tutorial introducing regular <acronym>SQL</acronym> features as
well as those of <productname>Postgres95</productname> was
distributed with the source code.
</Para>
</ListItem>
<ListItem>
<Para>
<Acronym>GNU</Acronym> make (instead of <Acronym>BSD</Acronym> make) was used
for the build. Also, <ProductName>Postgres95</ProductName> could be
compiled with an unpatched <ProductName>gcc</ProductName>
</para>
</listitem>
<listitem>
<para>
<acronym>GNU</acronym> make (instead of <acronym>BSD</acronym> make) was used
for the build. Also, <productname>Postgres95</productname> could be
compiled with an unpatched <productname>gcc</productname>
(data alignment of doubles was fixed).
</Para>
</ListItem>
</ItemizedList>
</Para>
</Sect2>
</para>
</listitem>
</itemizedlist>
</para>
</sect2>
<Sect2>
<Title><ProductName>PostgreSQL</ProductName></Title>
<sect2>
<title><productname>PostgreSQL</productname></title>
<Para>
By 1996, it became clear that the name <Quote>Postgres95</Quote> would
<para>
By 1996, it became clear that the name <quote>Postgres95</quote> would
not stand the test of time. We chose a new name,
<ProductName>PostgreSQL</ProductName>, to reflect the relationship
between the original <ProductName>Postgres</ProductName> and the more
recent versions with <Acronym>SQL</Acronym> capability. At the same
<productname>PostgreSQL</productname>, to reflect the relationship
between the original <productname>Postgres</productname> and the more
recent versions with <acronym>SQL</acronym> capability. At the same
time, we set the version numbering to start at 6.0, putting the
numbers back into the sequence originally begun by the
<ProductName>Postgres</ProductName> Project.
</Para>
<productname>Postgres</productname> Project.
</para>
<Para>
The emphasis during development of <ProductName>Postgres95</ProductName>
<para>
The emphasis during development of <productname>Postgres95</productname>
was on identifying and understanding existing problems in the backend code.
With <ProductName>PostgreSQL</ProductName>,
With <productname>PostgreSQL</productname>,
the emphasis has shifted to augmenting features and capabilities, although
work continues in all areas.
</Para>
</para>
<Para>
Major enhancements in <ProductName>PostgreSQL</ProductName> include:
</Para>
<para>
Major enhancements in <productname>PostgreSQL</productname> include:
</para>
<ItemizedList>
<ListItem>
<Para>
<itemizedlist>
<listitem>
<para>
Table-level locking has been replaced with multi-version concurrency control,
which allows readers to continue reading consistent data during writer activity
and enables hot backups from pg_dump while the database stays available for
queries.
</Para>
</ListItem>
<ListItem>
<Para>
</para>
</listitem>
<listitem>
<para>
Important backend features, including subselects, defaults,
constraints, and triggers, have been implemented.
</Para>
</ListItem>
<ListItem>
<Para>
Additional <Acronym>SQL92</Acronym>-compliant language features have been added,
</para>
</listitem>
<listitem>
<para>
Additional <acronym>SQL92</acronym>-compliant language features have been added,
including primary keys, quoted identifiers, literal string type coersion,
type casting, and binary and hexadecimal integer input.
</Para>
</ListItem>
<ListItem>
<Para>
</para>
</listitem>
<listitem>
<para>
Built-in types have been improved, including new wide-range date/time types
and additional geometric type support.
</Para>
</para>
</listitem>
</ListItem>
<ListItem>
<Para>
<listitem>
<para>
Overall backend code speed has been increased by approximately 20-40%,
and backend startup time has decreased 80% since v6.0 was released.
</Para>
</ListItem>
</ItemizedList>
</Sect2>
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:"/usr/lib/sgml/catalog"
sgml-local-ecat-files:nil
End:
-->

View file

@ -1,152 +1,176 @@
<Sect1>
<Title>Resources</Title>
<sect1>
<title>Resources</title>
<Para>
<para>
This manual set is organized into several parts:
</Para>
</para>
<VariableList>
<VarListEntry>
<Term>Tutorial</Term>
<ListItem>
<Para>
<variablelist>
<varlistentry>
<term>Tutorial</term>
<listitem>
<para>
An introduction for new users. Does not cover advanced features.
</Para>
</ListItem>
</VarListEntry>
</para>
</listitem>
</varlistentry>
<VarListEntry>
<Term>User's Guide</Term>
<ListItem>
<Para>
<varlistentry>
<term>User's Guide</term>
<listitem>
<para>
General information for users, including available commands and data types.
</Para>
</ListItem>
</VarListEntry>
</para>
</listitem>
</varlistentry>
<VarListEntry>
<Term>Programmer's Guide</Term>
<ListItem>
<Para>
<varlistentry>
<term>Programmer's Guide</term>
<listitem>
<para>
Advanced information for application programmers. Topics include
type and function extensibility, library interfaces, and application design issues.
</Para>
</ListItem>
</VarListEntry>
type and function extensibility, library interfaces,
and application design issues.
</para>
</listitem>
</varlistentry>
<VarListEntry>
<Term>Administrator's Guide</Term>
<ListItem>
<Para>
<varlistentry>
<term>Administrator's Guide</term>
<listitem>
<para>
Installation and management information. List of supported machines.
</Para>
</ListItem>
</VarListEntry>
</para>
</listitem>
</varlistentry>
<VarListEntry>
<Term>Developer's Guide</Term>
<ListItem>
<Para>
Information for <ProductName>Postgres</ProductName> developers. This is intended
for those who are contributing to the <ProductName>Postgres</ProductName>
project; application development information should appear in the
<varlistentry>
<term>Developer's Guide</term>
<listitem>
<para>
Information for <productname>Postgres</productname> developers.
This is intended for those who are contributing to the
<productname>Postgres</productname> project;
application development information should appear in the
<citetitle>Programmer's Guide</citetitle>.
Currently included in the <citetitle>Programmer's Guide</citetitle>.
</Para>
</ListItem>
</VarListEntry>
</para>
</listitem>
</varlistentry>
<VarListEntry>
<Term>Reference Manual</Term>
<ListItem>
<Para>
<varlistentry>
<term>Reference Manual</term>
<listitem>
<para>
Detailed reference information on command syntax.
Currently included in the <citetitle>User's Guide</citetitle>.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</para>
</listitem>
</varlistentry>
</variablelist>
<Para>
<para>
In addition to this manual set, there are other resources to help you with
<ProductName>Postgres</ProductName> installation and use:
</Para>
<productname>Postgres</productname> installation and use:
</para>
<VariableList>
<VarListEntry>
<Term>man pages</Term>
<ListItem>
<Para>
<variablelist>
<varlistentry>
<term>man pages</term>
<listitem>
<para>
The man pages have general information on command syntax.
</Para>
</ListItem>
</VarListEntry>
</para>
</listitem>
</varlistentry>
<VarListEntry>
<Term>FAQs</Term>
<ListItem>
<Para>
<varlistentry>
<term>FAQs</term>
<listitem>
<para>
The Frequently Asked Questions (FAQ) documents address both general issues
and some platform-specific issues.
</Para>
</ListItem>
</VarListEntry>
</para>
</listitem>
</varlistentry>
<VarListEntry>
<Term>READMEs</Term>
<ListItem>
<Para>
<varlistentry>
<term>READMEs</term>
<listitem>
<para>
README files are available for some contributed packages.
</Para>
</ListItem>
</VarListEntry>
</para>
</listitem>
</varlistentry>
<VarListEntry>
<Term>Web Site</Term>
<ListItem>
<Para>
The <ULink url="postgresql.org"><ProductName>Postgres</ProductName></ULink> web site has some information
not appearing in the distribution. There is a <ProductName>mhonarc</ProductName> catalog of mailing list traffic
<varlistentry>
<term>Web Site</term>
<listitem>
<para>
The
<ulink url="postgresql.org"><productname>Postgres</productname></ulink>
web site might have some information not appearing in the distribution.
There is a <productname>mhonarc</productname> catalog of mailing list traffic
which is a rich resource for many topics.
</Para>
</ListItem>
</VarListEntry>
</para>
</listitem>
</varlistentry>
<VarListEntry>
<Term>Mailing Lists</Term>
<ListItem>
<Para>
The <ULink url="http://www.PostgreSQL.ORG/mhonarc/pgsql-general/">pgsql-general</ULink>
<varlistentry>
<term>Mailing Lists</term>
<listitem>
<para>
The
<ulink url="mailto:pgsql-general@postgresql.org">pgsql-general</ulink>
(<ulink url="http://www.PostgreSQL.ORG/mhonarc/pgsql-general/">archive</ulink>)
mailing list is a good place to have user questions answered.
Other mailing lists are available; consult the Info Central section of the
PostgreSQL web site for details.
</Para>
</ListItem>
</VarListEntry>
</para>
</listitem>
</varlistentry>
<VarListEntry>
<Term>Yourself!</Term>
<ListItem>
<Para>
<ProductName>Postgres</ProductName> is an open source product.
As such, it depends on the user community for
ongoing support. As you begin to use <ProductName>Postgres</ProductName>,
you will rely on others
for help, either through the documentation or through the mailing lists.
Consider contributing your
knowledge back. If you learn something which is not in the documentation,
write it up and contribute it.
If you add features to the code, contribute it.</Para>
<varlistentry>
<term>Yourself!</term>
<listitem>
<para>
<productname>Postgres</productname> is an open source product.
As such, it depends on the user community for ongoing support.
As you begin to use <productname>Postgres</productname>,
you will rely on others for help, either through the
documentation or through the mailing lists.
Consider contributing your knowledge back. If you learn something
which is not in the documentation, write it up and contribute it.
If you add features to the code, contribute it.
</para>
<Para>
<para>
Even those without a lot of experience can provide corrections and
minor changes in the documentation, and that is a good way to start.
The
<ULink url="http://www.PostgreSQL.ORG/mhonarc/pgsql-docs/">pgsql-docs</ULink>
<ulink url="mailto:pgsql-docs@postgresql.org">pgsql-docs</ulink>
(<ulink url="http://www.PostgreSQL.ORG/mhonarc/pgsql-docs/">archive</ulink>)
mailing list is the place to get going.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</para>
</listitem>
</varlistentry>
</variablelist>
</Sect1>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:"/usr/lib/sgml/catalog"
sgml-local-ecat-files:nil
End:
-->