summaryrefslogtreecommitdiffstats
path: root/doc/src/sgml/history.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/history.sgml')
-rw-r--r--doc/src/sgml/history.sgml222
1 files changed, 222 insertions, 0 deletions
diff --git a/doc/src/sgml/history.sgml b/doc/src/sgml/history.sgml
new file mode 100644
index 0000000..120b4b3
--- /dev/null
+++ b/doc/src/sgml/history.sgml
@@ -0,0 +1,222 @@
+<!-- doc/src/sgml/history.sgml -->
+
+<sect1 id="history">
+ <title>A Brief History of <productname>PostgreSQL</productname></title>
+
+ <indexterm zone="history">
+ <primary>history</primary>
+ <secondary>of PostgreSQL</secondary>
+ </indexterm>
+
+ <para>
+ The object-relational database management system now known as
+ <productname>PostgreSQL</productname> is derived from the
+ <productname>POSTGRES</productname> package written at the
+ University of California at Berkeley. With decades of
+ development behind it, <productname>PostgreSQL</productname> is now
+ the most advanced open-source database available anywhere.
+ </para>
+
+ <sect2 id="history-berkeley">
+ <title>The Berkeley <productname>POSTGRES</productname> Project</title>
+
+ <indexterm zone="history-berkeley">
+ <primary>POSTGRES</primary>
+ </indexterm>
+
+ <para>
+ The <productname>POSTGRES</productname> project, led by Professor
+ Michael Stonebraker, was sponsored by the Defense Advanced Research
+ Projects Agency (<acronym>DARPA</acronym>), the Army Research
+ Office (<acronym>ARO</acronym>), the National Science Foundation
+ (<acronym>NSF</acronym>), and ESL, Inc. The implementation of
+ <productname>POSTGRES</productname> began in 1986. The initial
+ concepts for the system were presented in <xref linkend="ston86"/>,
+ and the definition of the initial data model appeared in <xref
+ linkend="rowe87"/>. The design of the rule system at that time was
+ described in <xref linkend="ston87a"/>. The rationale and
+ architecture of the storage manager were detailed in <xref
+ linkend="ston87b"/>.
+ </para>
+
+ <para>
+ <productname>POSTGRES</productname> has undergone several major
+ releases since then. The first <quote>demoware</quote> system
+ became operational in 1987 and was shown at the 1988
+ <acronym>ACM-SIGMOD</acronym> Conference. Version 1, described in
+ <xref linkend="ston90a"/>, was released to a few external users in
+ June 1989. In response to a critique of the first rule system
+ (<xref linkend="ston89"/>), the rule system was redesigned (<xref
+ 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 rule system. For the most part, subsequent releases
+ until <productname>Postgres95</productname> (see below) focused on
+ portability and reliability.
+ </para>
+
+ <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 used as an
+ educational tool at several universities. Finally, Illustra
+ Information Technologies (later merged into
+ <ulink url="https://www.ibm.com/analytics/informix"><productname>Informix</productname></ulink>,
+ which is now owned by <ulink
+ url="https://www.ibm.com/">IBM</ulink>) picked up the code and
+ commercialized it. In late 1992,
+ <productname>POSTGRES</productname> became the primary data manager
+ for the
+ <ulink url="http://meteora.ucsd.edu/s2k/s2k_home.html">
+ Sequoia 2000 scientific computing project</ulink>.
+ </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 Berkeley
+ <productname>POSTGRES</productname> project officially ended with
+ Version 4.2.
+ </para>
+ </sect2>
+
+ <sect2 id="history-postgres95">
+ <title><productname>Postgres95</productname></title>
+
+ <indexterm zone="history-postgres95">
+ <primary>Postgres95</primary>
+ </indexterm>
+
+ <para>
+ In 1994, Andrew Yu and Jolly Chen added an SQL language interpreter
+ to <productname>POSTGRES</productname>. Under a new name,
+ <productname>Postgres95</productname> was subsequently released to
+ the web to find its own way in the world as an open-source
+ descendant of the original <productname>POSTGRES</productname>
+ Berkeley code.
+ </para>
+
+ <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> release
+ 1.0.x ran about 30&ndash;50% faster on the Wisconsin Benchmark compared
+ to <productname>POSTGRES</productname>, Version 4.2. Apart from
+ bug fixes, the following were the major enhancements:
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ The query language PostQUEL was replaced with
+ <acronym>SQL</acronym> (implemented in the server). (Interface
+ library <link linkend="libpq">libpq</link> was named after PostQUEL.)
+ 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. Aggregate functions were
+ re-implemented. Support for the <literal>GROUP BY</literal>
+ query clause was also added.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ A new program
+ (<application>psql</application>) was provided for interactive
+ SQL queries, which used <acronym>GNU</acronym>
+ <application>Readline</application>. This largely superseded
+ the old <application>monitor</application> program.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ A new front-end library, <filename>libpgtcl</filename>,
+ supported <acronym>Tcl</acronym>-based clients. A sample shell,
+ <command>pgtclsh</command>, provided new Tcl commands to
+ interface <application>Tcl</application> programs with the
+ <productname>Postgres95</productname> server.
+ </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>
+ <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
+ Berkeley <productname>POSTGRES</productname> project.
+ </para>
+
+ <para>
+ Many people continue to refer to
+ <productname>PostgreSQL</productname> as <quote>Postgres</quote>
+ (now rarely in all capital letters) because of tradition or because
+ it is easier to pronounce. This usage is widely accepted as a
+ nickname or alias.
+ </para>
+
+ <para>
+ The emphasis during development of
+ <productname>Postgres95</productname> was on identifying and
+ understanding existing problems in the server code. With
+ <productname>PostgreSQL</productname>, the emphasis has shifted to
+ augmenting features and capabilities, although work continues in
+ all areas.
+ </para>
+
+ <para>
+ Details about what has happened in <productname>PostgreSQL</productname> since
+ then can be found in <xref linkend="release"/>.
+ </para>
+ </sect2>
+</sect1>