1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-21 16:02:15 +03:00

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
development behind it, <productname>PostgreSQL</productname>
is the most advanced open-source database available anywhere, is the most advanced open-source database available anywhere,
offering multi-version concurrency control and supporting almost offering multi-version concurrency control, supporting almost
all SQL constructs, including subselects, transactions, and all SQL constructs (including subselects, transactions, and
user-defined types and functions. user-defined types and functions), and having a wide range of
</Para> 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
to implement many different
research and production applications. These include: a research and production applications. These include: a
financial data analysis system, a jet engine financial data analysis system, a jet engine
performance monitoring package, an asteroid tracking performance monitoring package, an asteroid tracking
database, a medical information database, and several database, a medical information database, and several
geographic information systems. geographic information systems.
<ProductName>Postgres</ProductName> has also been <productname>Postgres</productname> has also been
used as an educational tool at several universities. used as an educational tool at several universities.
Finally, Finally,
<Ulink url="http://www.illustra.com/">Illustra Information Technologies</Ulink> <ulink url="http://www.illustra.com/">Illustra Information Technologies</ulink>
(since merged into (since merged into
<Ulink url="http://www.informix.com/">Informix</Ulink>) <ulink url="http://www.informix.com/">Informix</ulink>)
picked up picked up
the code and commercialized it. the code and commercialized it.
<ProductName>Postgres</ProductName> became the primary data manager <productname>Postgres</productname> became the primary data manager
for the 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. 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 nearly doubled during 1993. It became increasingly
obvious that maintenance of the prototype code and obvious that maintenance of the prototype code and
support was taking up large amounts of time that should support was taking up large amounts of time that should
have been devoted to database research. In an effort have been devoted to database research. In an effort
to reduce this support burden, the project officially to reduce this support burden, the project officially
ended with Version 4.2. ended with Version 4.2.
</Para> </para>
</Sect2> </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
re-implemented. Support for the GROUP BY query clause was also added.
The <filename>libpq</filename> interface remained
available for <acronym>C</acronym>
programs. programs.
</Para> </para>
</ListItem> </listitem>
<ListItem>
<Para> <listitem>
<para>
In addition to the monitor program, a new program In addition to the monitor program, a new program
(<Application>psql</Application>) was provided for interactive SQL queries (<application>psql</application>) was provided for interactive SQL queries
using <Acronym>GNU</Acronym> <FileName>readline</FileName>. using <acronym>GNU</acronym> <filename>readline</filename>.
</Para> </para>
</ListItem> </listitem>
<ListItem>
<Para> <listitem>
A new front-end library, <FileName>libpgtcl</FileName>, <para>
supported <Acronym>Tcl</Acronym>-based clients. A sample shell, A new front-end library, <filename>libpgtcl</filename>,
pgtclsh, provided new Tcl commands to interface <Application>tcl</Application> supported <acronym>Tcl</acronym>-based clients. A sample shell,
programs with the <ProductName>Postgres95</ProductName> backend. pgtclsh, provided new Tcl commands to interface
</Para> <application>tcl</application>
</ListItem> programs with the <productname>Postgres95</productname> backend.
<ListItem> </para>
<Para> </listitem>
<listitem>
<para>
The large object interface was overhauled. The Inversion large objects were The large object interface was overhauled. The Inversion large objects were
the only mechanism for storing large objects. the only mechanism for storing large objects.
(The Inversion file system was removed.) (The Inversion file system was removed.)
</Para> </para>
</ListItem> </listitem>
<ListItem>
<Para> <listitem>
<para>
The instance-level rule system was removed. The instance-level rule system was removed.
Rules were still available as rewrite rules. Rules were still available as rewrite rules.
</Para> </para>
</ListItem> </listitem>
<ListItem>
<Para> <listitem>
A short tutorial introducing regular <Acronym>SQL</Acronym> features as <para>
well as those of <ProductName>Postgres95</ProductName> was A short tutorial introducing regular <acronym>SQL</acronym> features as
well as those of <productname>Postgres95</productname> was
distributed with the source code. distributed with the source code.
</Para> </para>
</ListItem> </listitem>
<ListItem>
<Para> <listitem>
<Acronym>GNU</Acronym> make (instead of <Acronym>BSD</Acronym> make) was used <para>
for the build. Also, <ProductName>Postgres95</ProductName> could be <acronym>GNU</acronym> make (instead of <acronym>BSD</acronym> make) was used
compiled with an unpatched <ProductName>gcc</ProductName> for the build. Also, <productname>Postgres95</productname> could be
compiled with an unpatched <productname>gcc</productname>
(data alignment of doubles was fixed). (data alignment of doubles was fixed).
</Para> </para>
</ListItem> </listitem>
</ItemizedList> </itemizedlist>
</Para> </para>
</Sect2> </sect2>
<Sect2> <sect2>
<Title><ProductName>PostgreSQL</ProductName></Title> <title><productname>PostgreSQL</productname></title>
<Para> <para>
By 1996, it became clear that the name <Quote>Postgres95</Quote> would By 1996, it became clear that the name <quote>Postgres95</quote> would
not stand the test of time. We chose a new name, not stand the test of time. We chose a new name,
<ProductName>PostgreSQL</ProductName>, to reflect the relationship <productname>PostgreSQL</productname>, to reflect the relationship
between the original <ProductName>Postgres</ProductName> and the more between the original <productname>Postgres</productname> and the more
recent versions with <Acronym>SQL</Acronym> capability. At the same recent versions with <acronym>SQL</acronym> capability. At the same
time, we set the version numbering to start at 6.0, putting the time, we set the version numbering to start at 6.0, putting the
numbers back into the sequence originally begun by the numbers back into the sequence originally begun by the
<ProductName>Postgres</ProductName> Project. <productname>Postgres</productname> Project.
</Para> </para>
<Para> <para>
The emphasis during development of <ProductName>Postgres95</ProductName> The emphasis during development of <productname>Postgres95</productname>
was on identifying and understanding existing problems in the backend code. 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 the emphasis has shifted to augmenting features and capabilities, although
work continues in all areas. work continues in all areas.
</Para> </para>
<Para> <para>
Major enhancements in <ProductName>PostgreSQL</ProductName> include: Major enhancements in <productname>PostgreSQL</productname> include:
</Para> </para>
<ItemizedList> <itemizedlist>
<ListItem> <listitem>
<Para> <para>
Table-level locking has been replaced with multi-version concurrency control, Table-level locking has been replaced with multi-version concurrency control,
which allows readers to continue reading consistent data during writer activity which allows readers to continue reading consistent data during writer activity
and enables hot backups from pg_dump while the database stays available for and enables hot backups from pg_dump while the database stays available for
queries. queries.
</Para> </para>
</ListItem> </listitem>
<ListItem>
<Para> <listitem>
<para>
Important backend features, including subselects, defaults, Important backend features, including subselects, defaults,
constraints, and triggers, have been implemented. constraints, and triggers, have been implemented.
</Para> </para>
</ListItem> </listitem>
<ListItem>
<Para> <listitem>
Additional <Acronym>SQL92</Acronym>-compliant language features have been added, <para>
Additional <acronym>SQL92</acronym>-compliant language features have been added,
including primary keys, quoted identifiers, literal string type coersion, including primary keys, quoted identifiers, literal string type coersion,
type casting, and binary and hexadecimal integer input. type casting, and binary and hexadecimal integer input.
</Para> </para>
</ListItem> </listitem>
<ListItem>
<Para> <listitem>
<para>
Built-in types have been improved, including new wide-range date/time types Built-in types have been improved, including new wide-range date/time types
and additional geometric type support. and additional geometric type support.
</Para> </para>
</listitem>
</ListItem> <listitem>
<ListItem> <para>
<Para>
Overall backend code speed has been increased by approximately 20-40%, Overall backend code speed has been increased by approximately 20-40%,
and backend startup time has decreased 80% since v6.0 was released. and backend startup time has decreased 80% since v6.0 was released.
</Para> </para>
</ListItem> </listitem>
</ItemizedList> </itemizedlist>
</Sect2> </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;
application development information should appear in the
<citetitle>Programmer's Guide</citetitle>. <citetitle>Programmer's Guide</citetitle>.
Currently included in the <citetitle>Programmer's Guide</citetitle>. Currently included in the <citetitle>Programmer's Guide</citetitle>.
</Para> </para>
</ListItem> </listitem>
</VarListEntry> </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>
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. which is a rich resource for many topics.
</Para> </para>
</ListItem> </listitem>
</VarListEntry> </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
<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. mailing list is a good place to have user questions answered.
Other mailing lists are available; consult the Info Central section of the Other mailing lists are available; consult the Info Central section of the
PostgreSQL web site for details. PostgreSQL web site for details.
</Para> </para>
</ListItem> </listitem>
</VarListEntry> </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>
(<ulink url="http://www.PostgreSQL.ORG/mhonarc/pgsql-docs/">archive</ulink>)
mailing list is the place to get going. mailing list is the place to get going.
</Para> </para>
</ListItem> </listitem>
</VarListEntry> </varlistentry>
</VariableList> </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:
-->