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

View file

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