diff options
Diffstat (limited to 'doc/src/sgml/history.sgml')
-rw-r--r-- | doc/src/sgml/history.sgml | 222 |
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–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> |