From 66ef1b6ebd8e119ad9d80c1449c8c2c791a4e2ef Mon Sep 17 00:00:00 2001 From: "Thomas G. Lockhart" <lockhart@fourpalms.org> Date: Wed, 23 Jun 1999 06:12:31 +0000 Subject: [PATCH] Minor changes to Fred Horsh's updates. --- doc/src/sgml/history.sgml | 496 ++++++++++++++++++++------------------ doc/src/sgml/info.sgml | 328 +++++++++++++------------ 2 files changed, 441 insertions(+), 383 deletions(-) diff --git a/doc/src/sgml/history.sgml b/doc/src/sgml/history.sgml index 506b7227b99..fc861e7a5a3 100644 --- a/doc/src/sgml/history.sgml +++ b/doc/src/sgml/history.sgml @@ -1,233 +1,267 @@ -<Sect1> -<Title>A Short History of <ProductName>Postgres</ProductName></Title> - -<Para> -The Object-Relational Database Management System now known as -<ProductName>PostgreSQL</ProductName> was originally called -<ProductName>Postgres</ProductName>, and briefly called -<ProductName>Postgres95</ProductName>. With over a decade of -development behind it, <ProductName>PostgreSQL</ProductName> -is the most advanced open-source database available anywhere, -offering multi-version concurrency control and supporting almost -all SQL constructs, including subselects, transactions, and -user-defined types and functions. -</Para> - -<Sect2> -<Title>The Berkeley <ProductName>Postgres</ProductName> Project</Title> - -<Para> - Implementation of the <ProductName>Postgres</ProductName> -<Acronym>DBMS</Acronym> began in 1986. The - initial concepts for the system were presented in -<XRef LinkEnd="STON86" endterm="STON86-full"> - and the definition of the initial data model - appeared in -<XRef LinkEnd="ROWE87" endterm="ROWE87-full">. -The design of the rule system at - that time was described in -<XRef LinkEnd="STON87a" endterm="STON87a-full">. -The rationale - and architecture of the storage manager were detailed in -<XRef LinkEnd="STON87b" endterm="STON87b-full">. -</Para> - -<Para> -<ProductName>Postgres</ProductName> has undergone several major releases since - then. The first "demoware" system became operational - in 1987 and was shown at the 1988 <Acronym>ACM-SIGMOD</Acronym> - Conference. We released Version 1, described in -<XRef LinkEnd="STON90a" endterm="STON90a-full">, - to a few external users in June 1989. In response to a - critique of the first rule system -(<XRef LinkEnd="STON89" endterm="STON89-full">), -the rule - system was redesigned -(<XRef LinkEnd="STON90b" endterm="STON90b-full">) -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 rewrite rule system. For the most part, - 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, -<Ulink url="http://www.illustra.com/">Illustra Information Technologies</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. - Furthermore, 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 project officially - ended with Version 4.2. -</Para> -</Sect2> - -<Sect2> -<Title><ProductName>Postgres95</ProductName></Title> - -<Para> -In 1994, -<ULink url="mailto:ayu@informix.com">Andrew Yu</ULink> -and -<ULink url="http://http.cs.berkeley.edu/~jolly/">Jolly Chen</ULink> -added a SQL language interpreter to <ProductName>Postgres</ProductName>. -<ProductName>Postgres95</ProductName> was subsequently released to -the Web to find its own way in the world as a public-domain, -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> v1.0.x ran about 30-50% - faster on the Wisconsin Benchmark compared to -<ProductName>Postgres</ProductName> v4.2. - Apart from bug fixes, these were the major enhancements: - -<ItemizedList> -<ListItem> -<Para> - 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 -could be imitated in <ProductName>Postgres95</ProductName> with user-defined - <Acronym>SQL</Acronym> functions. Aggregates were - re-implemented. Support for ``GROUP BY'' was also added. - The <FileName>libpq</FileName> interface remained available for <Acronym>C</Acronym> - programs. -</Para> -</ListItem> -<ListItem> -<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> -<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> -<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> + <title>A Short History of <productname>Postgres</productname></title> + <para> + The Object-Relational Database Management System now known as + <productname>PostgreSQL</productname> (and briefly called + <productname>Postgres95</productname>) is derived from the + <productname>Postgres</productname> package written at Berkeley. + With over a decade of + development behind it, <productname>PostgreSQL</productname> + is the most advanced open-source database available anywhere, + offering multi-version concurrency control, supporting almost + all SQL constructs (including subselects, transactions, and + user-defined types and functions), and having a wide range of + language bindings available (including C, C++, Java, perl, tcl, and python). + </para> + + <sect2> + <title>The Berkeley <productname>Postgres</productname> Project</title> + + <para> + Implementation of the <productname>Postgres</productname> + <acronym>DBMS</acronym> began in 1986. The + initial concepts for the system were presented in + <xref endterm="STON86-full" linkend="STON86"> + and the definition of the initial data model + appeared in + <xref endterm="ROWE87-full" linkend="ROWE87">. + The design of the rule system at + that time was described in + <xref endterm="STON87a-full" linkend="STON87a">. + The rationale + and architecture of the storage manager were detailed in + <xref endterm="STON87b-full" linkend="STON87b">. + </para> + + <para> + <productname>Postgres</productname> has undergone several major releases since + then. The first "demoware" system became operational + in 1987 and was shown at the 1988 <acronym>ACM-SIGMOD</acronym> + Conference. We released Version 1, described in + <xref endterm="STON90a-full" linkend="STON90a">, + to a few external users in June 1989. In response to a + critique of the first rule system + (<xref endterm="STON89-full" linkend="STON89">), + the rule + system was redesigned + (<xref endterm="STON90b-full" 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 rewrite rule system. For the most part, + 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, + <ulink url="http://www.illustra.com/">Illustra Information Technologies</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> + + <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 project officially + ended with Version 4.2. + </para> + </sect2> + + <sect2> + <title><productname>Postgres95</productname></title> + + <para> + In 1994, + <ulink url="mailto:ayu@informix.com">Andrew Yu</ulink> + and + <ulink url="http://http.cs.berkeley.edu/~jolly/">Jolly Chen</ulink> + added a SQL language interpreter to <productname>Postgres</productname>. + <productname>Postgres95</productname> was subsequently released to + the Web to find its own way in the world as a public-domain, + 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> v1.0.x ran about 30-50% + faster on the Wisconsin Benchmark compared to + <productname>Postgres</productname> v4.2. + Apart from bug fixes, these were the major enhancements: + + <itemizedlist> + <listitem> + <para> + 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 + could be imitated in <productname>Postgres95</productname> with user-defined + <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. + </para> + </listitem> + + <listitem> + <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> + + <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> + <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> + +<!-- 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: +--> diff --git a/doc/src/sgml/info.sgml b/doc/src/sgml/info.sgml index 5b529278238..90deb9b67ff 100644 --- a/doc/src/sgml/info.sgml +++ b/doc/src/sgml/info.sgml @@ -1,152 +1,176 @@ -<Sect1> -<Title>Resources</Title> - -<Para> -This manual set is organized into several parts: -</Para> - -<VariableList> -<VarListEntry> -<Term>Tutorial</Term> -<ListItem> -<Para> -An introduction for new users. Does not cover advanced features. -</Para> -</ListItem> -</VarListEntry> - -<VarListEntry> -<Term>User's Guide</Term> -<ListItem> -<Para> -General information for users, including available commands and data types. -</Para> -</ListItem> -</VarListEntry> - -<VarListEntry> -<Term>Programmer's Guide</Term> -<ListItem> -<Para> -Advanced information for application programmers. Topics include -type and function extensibility, library interfaces, and application design issues. -</Para> -</ListItem> -</VarListEntry> - -<VarListEntry> -<Term>Administrator's Guide</Term> -<ListItem> -<Para> -Installation and management information. List of supported machines. -</Para> -</ListItem> -</VarListEntry> - -<VarListEntry> -<Term>Developer's Guide</Term> -<ListItem> -<Para> -Information for <ProductName>Postgres</ProductName> developers. This is intended -for those who are contributing to the <ProductName>Postgres</ProductName> -project; application development information should appear in the -<citetitle>Programmer's Guide</citetitle>. -Currently included in the <citetitle>Programmer's Guide</citetitle>. -</Para> -</ListItem> -</VarListEntry> - -<VarListEntry> -<Term>Reference Manual</Term> -<ListItem> -<Para> -Detailed reference information on command syntax. -Currently included in the <citetitle>User's Guide</citetitle>. -</Para> -</ListItem> -</VarListEntry> -</VariableList> - -<Para> -In addition to this manual set, there are other resources to help you with -<ProductName>Postgres</ProductName> installation and use: -</Para> - -<VariableList> -<VarListEntry> -<Term>man pages</Term> -<ListItem> -<Para> -The man pages have general information on command syntax. -</Para> -</ListItem> -</VarListEntry> - -<VarListEntry> -<Term>FAQs</Term> -<ListItem> -<Para> -The Frequently Asked Questions (FAQ) documents address both general issues -and some platform-specific issues. -</Para> -</ListItem> -</VarListEntry> - -<VarListEntry> -<Term>READMEs</Term> -<ListItem> -<Para> -README files are available for some contributed packages. -</Para> -</ListItem> -</VarListEntry> - -<VarListEntry> -<Term>Web Site</Term> -<ListItem> -<Para> -The <ULink url="postgresql.org"><ProductName>Postgres</ProductName></ULink> web site has 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. -</Para> -</ListItem> -</VarListEntry> - -<VarListEntry> -<Term>Mailing Lists</Term> -<ListItem> -<Para> -The <ULink url="http://www.PostgreSQL.ORG/mhonarc/pgsql-general/">pgsql-general</ULink> -mailing list is a good place to have user questions answered. -Other mailing lists are available; consult the Info Central section of the -PostgreSQL web site for details. -</Para> -</ListItem> -</VarListEntry> - -<VarListEntry> -<Term>Yourself!</Term> -<ListItem> -<Para> -<ProductName>Postgres</ProductName> is an open source product. -As such, it depends on the user community for -ongoing support. As you begin to use <ProductName>Postgres</ProductName>, -you will rely on others -for help, either through the documentation or through the mailing lists. -Consider contributing your -knowledge back. If you learn something which is not in the documentation, -write it up and contribute it. -If you add features to the code, contribute it.</Para> - -<Para> -Even those without a lot of experience can provide corrections and -minor changes in the documentation, and that is a good way to start. -The -<ULink url="http://www.PostgreSQL.ORG/mhonarc/pgsql-docs/">pgsql-docs</ULink> -mailing list is the place to get going. -</Para> -</ListItem> -</VarListEntry> -</VariableList> - -</Sect1> +<sect1> + <title>Resources</title> + + <para> + This manual set is organized into several parts: + </para> + + <variablelist> + <varlistentry> + <term>Tutorial</term> + <listitem> + <para> + An introduction for new users. Does not cover advanced features. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>User's Guide</term> + <listitem> + <para> + General information for users, including available commands and data types. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Programmer's Guide</term> + <listitem> + <para> + Advanced information for application programmers. Topics include + type and function extensibility, library interfaces, + and application design issues. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Administrator's Guide</term> + <listitem> + <para> + Installation and management information. List of supported machines. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Developer's Guide</term> + <listitem> + <para> + Information for <productname>Postgres</productname> developers. + This is intended for those who are contributing to the + <productname>Postgres</productname> project; + application development information should appear in the + <citetitle>Programmer's Guide</citetitle>. + Currently included in the <citetitle>Programmer's Guide</citetitle>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Reference Manual</term> + <listitem> + <para> + Detailed reference information on command syntax. + Currently included in the <citetitle>User's Guide</citetitle>. + </para> + </listitem> + </varlistentry> + </variablelist> + + <para> + In addition to this manual set, there are other resources to help you with + <productname>Postgres</productname> installation and use: + </para> + + <variablelist> + <varlistentry> + <term>man pages</term> + <listitem> + <para> + The man pages have general information on command syntax. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FAQs</term> + <listitem> + <para> + The Frequently Asked Questions (FAQ) documents address both general issues + and some platform-specific issues. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>READMEs</term> + <listitem> + <para> + README files are available for some contributed packages. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Web Site</term> + <listitem> + <para> + The + <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. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Mailing Lists</term> + <listitem> + <para> + 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. + Other mailing lists are available; consult the Info Central section of the + PostgreSQL web site for details. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Yourself!</term> + <listitem> + <para> + <productname>Postgres</productname> is an open source product. + As such, it depends on the user community for ongoing support. + As you begin to use <productname>Postgres</productname>, + you will rely on others for help, either through the + documentation or through the mailing lists. + Consider contributing your knowledge back. If you learn something + which is not in the documentation, write it up and contribute it. + If you add features to the code, contribute it. + </para> + + <para> + Even those without a lot of experience can provide corrections and + minor changes in the documentation, and that is a good way to start. + The + <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. + </para> + </listitem> + </varlistentry> + </variablelist> + +</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: +--> -- GitLab