]> begriffs open source - ai-pg/blob - full-docs/txt/history.txt
Convert HTML docs to more streamlined TXT
[ai-pg] / full-docs / txt / history.txt
1
2 2. A Brief History of PostgreSQL #
3
4    2.1. The Berkeley POSTGRES Project
5    2.2. Postgres95
6    2.3. PostgreSQL
7
8    The object-relational database management system now known as
9    PostgreSQL is derived from the POSTGRES package written at the
10    University of California at Berkeley. With decades of development
11    behind it, PostgreSQL is now the most advanced open-source database
12    available anywhere.
13
14    Another take on the history presented here can be found in Dr. Joe
15    Hellerstein's paper “Looking Back at Postgres” [hell18].
16
17 2.1. The Berkeley POSTGRES Project #
18
19    The POSTGRES project, led by Professor Michael Stonebraker, was
20    sponsored by the Defense Advanced Research Projects Agency (DARPA), the
21    Army Research Office (ARO), the National Science Foundation (NSF), and
22    ESL, Inc. The implementation of POSTGRES began in 1986. The initial
23    concepts for the system were presented in [ston86], and the definition
24    of the initial data model appeared in [rowe87]. The design of the rule
25    system at that time was described in [ston87a]. The rationale and
26    architecture of the storage manager were detailed in [ston87b].
27
28    POSTGRES has undergone several major releases since then. The first
29    “demoware” system became operational in 1987 and was shown at the 1988
30    ACM-SIGMOD Conference. Version 1, described in [ston90a], was released
31    to a few external users in June 1989. In response to a critique of the
32    first rule system ([ston89]), the rule system was redesigned
33    ([ston90b]), and Version 2 was released in June 1990 with the new rule
34    system. Version 3 appeared in 1991 and added support for multiple
35    storage managers, an improved query executor, and a rewritten rule
36    system. For the most part, subsequent releases until Postgres95 (see
37    below) focused on portability and reliability.
38
39    POSTGRES has been used to implement many different research and
40    production applications. These include: a financial data analysis
41    system, a jet engine performance monitoring package, an asteroid
42    tracking database, a medical information database, and several
43    geographic information systems. POSTGRES has also been used as an
44    educational tool at several universities. Finally, Illustra Information
45    Technologies (later merged into Informix, which is now owned by IBM)
46    picked up the code and commercialized it. In late 1992, POSTGRES became
47    the primary data manager for the Sequoia 2000 scientific computing
48    project described in [ston92].
49
50    The size of the external user community nearly doubled during 1993. It
51    became increasingly obvious that maintenance of the prototype code and
52    support was taking up large amounts of time that should have been
53    devoted to database research. In an effort to reduce this support
54    burden, the Berkeley POSTGRES project officially ended with Version
55    4.2.
56
57 2.2. Postgres95 #
58
59    In 1994, Andrew Yu and Jolly Chen added an SQL language interpreter to
60    POSTGRES. Under a new name, Postgres95 was subsequently released to the
61    web to find its own way in the world as an open-source descendant of
62    the original POSTGRES Berkeley code.
63
64    Postgres95 code was completely ANSI C and trimmed in size by 25%. Many
65    internal changes improved performance and maintainability. Postgres95
66    release 1.0.x ran about 30–50% faster on the Wisconsin Benchmark
67    compared to POSTGRES, Version 4.2. Apart from bug fixes, the following
68    were the major enhancements:
69      * The query language PostQUEL was replaced with SQL (implemented in
70        the server). (Interface library libpq was named after PostQUEL.)
71        Subqueries were not supported until PostgreSQL (see below), but
72        they could be imitated in Postgres95 with user-defined SQL
73        functions. Aggregate functions were re-implemented. Support for the
74        GROUP BY query clause was also added.
75      * A new program (psql) was provided for interactive SQL queries,
76        which used GNU Readline. This largely superseded the old monitor
77        program.
78      * A new front-end library, libpgtcl, supported Tcl-based clients. A
79        sample shell, pgtclsh, provided new Tcl commands to interface Tcl
80        programs with the Postgres95 server.
81      * The large-object interface was overhauled. The inversion large
82        objects were the only mechanism for storing large objects. (The
83        inversion file system was removed.)
84      * The instance-level rule system was removed. Rules were still
85        available as rewrite rules.
86      * A short tutorial introducing regular SQL features as well as those
87        of Postgres95 was distributed with the source code
88      * GNU make (instead of BSD make) was used for the build. Also,
89        Postgres95 could be compiled with an unpatched GCC (data alignment
90        of doubles was fixed).
91
92 2.3. PostgreSQL #
93
94    By 1996, it became clear that the name “Postgres95” would not stand the
95    test of time. We chose a new name, PostgreSQL, to reflect the
96    relationship between the original POSTGRES and the more recent versions
97    with SQL capability. At the same time, we set the version numbering to
98    start at 6.0, putting the numbers back into the sequence originally
99    begun by the Berkeley POSTGRES project.
100
101    Postgres is still considered an official project name, both because of
102    tradition and because people find it easier to pronounce Postgres than
103    PostgreSQL.
104
105    The emphasis during development of Postgres95 was on identifying and
106    understanding existing problems in the server code. With PostgreSQL,
107    the emphasis has shifted to augmenting features and capabilities,
108    although work continues in all areas.
109
110    Details about what has happened in each PostgreSQL release since then
111    can be found at https://www.postgresql.org/docs/release/.