mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-10 05:39:31 +02:00
This patch makes "simple" views automatically updatable, without the need to create either INSTEAD OF triggers or INSTEAD rules. "Simple" views are those classified as updatable according to SQL-92 rules. The rewriter transforms INSERT/UPDATE/DELETE commands on such views directly into an equivalent command on the underlying table, which will generally have noticeably better performance than is possible with either triggers or user-written rules. A view that has INSTEAD OF triggers or INSTEAD rules continues to operate the same as before. For the moment, security_barrier views are not considered simple. Also, we do not support WITH CHECK OPTION. These features may be added in future. Dean Rasheed, reviewed by Amit Kapila
162 lines
4.5 KiB
Plaintext
162 lines
4.5 KiB
Plaintext
<!-- doc/src/sgml/intro.sgml -->
|
|
|
|
<preface id="preface">
|
|
<title>Preface</title>
|
|
|
|
<para>
|
|
This book is the official documentation of
|
|
<productname>PostgreSQL</productname>. It has been written by the
|
|
<productname>PostgreSQL</productname> developers and other
|
|
volunteers in parallel to the development of the
|
|
<productname>PostgreSQL</productname> software. It describes all
|
|
the functionality that the current version of
|
|
<productname>PostgreSQL</productname> officially supports.
|
|
</para>
|
|
|
|
<para>
|
|
To make the large amount of information about
|
|
<productname>PostgreSQL</productname> manageable, this book has been
|
|
organized in several parts. Each part is targeted at a different
|
|
class of users, or at users in different stages of their
|
|
<productname>PostgreSQL</productname> experience:
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
<xref linkend="tutorial"> is an informal introduction for new users.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
<xref linkend="sql"> documents the <acronym>SQL</acronym> query
|
|
language environment, including data types and functions, as well
|
|
as user-level performance tuning. Every
|
|
<productname>PostgreSQL</> user should read this.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
<xref linkend="admin"> describes the installation and
|
|
administration of the server. Everyone who runs a
|
|
<productname>PostgreSQL</productname> server, be it for private
|
|
use or for others, should read this part.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
<xref linkend="client-interfaces"> describes the programming
|
|
interfaces for <productname>PostgreSQL</productname> client
|
|
programs.
|
|
</para>
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
<para>
|
|
<xref linkend="server-programming"> contains information for
|
|
advanced users about the extensibility capabilities of the
|
|
server. Topics include user-defined data types and
|
|
functions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
<xref linkend="reference"> contains reference information about
|
|
SQL commands, client and server programs. This part supports
|
|
the other parts with structured information sorted by command or
|
|
program.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
<xref linkend="internals"> contains assorted information that might be of
|
|
use to <productname>PostgreSQL</> developers.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<sect1 id="intro-whatis">
|
|
<title> What is <productname>PostgreSQL</productname>?</title>
|
|
|
|
<para>
|
|
<productname>PostgreSQL</productname> is an object-relational
|
|
database management system (<acronym>ORDBMS</acronym>) based on
|
|
<ulink url="http://db.cs.berkeley.edu/postgres.html">
|
|
<productname>POSTGRES, Version 4.2</productname></ulink>,
|
|
developed at the University of California at Berkeley Computer Science
|
|
Department. POSTGRES pioneered many concepts that only became
|
|
available in some commercial database systems much later.
|
|
</para>
|
|
|
|
<para>
|
|
<productname>PostgreSQL</productname> is an open-source descendant
|
|
of this original Berkeley code. It supports a large part of the SQL
|
|
standard and offers many modern features:
|
|
|
|
<itemizedlist spacing="compact">
|
|
<listitem>
|
|
<simpara>complex queries</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>foreign keys</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>triggers</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>updatable views</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>transactional integrity</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>multiversion concurrency control</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
Also, <productname>PostgreSQL</productname> can be extended by the
|
|
user in many ways, for example by adding new
|
|
|
|
<itemizedlist spacing="compact">
|
|
<listitem>
|
|
<simpara>data types</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>functions</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>operators</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>aggregate functions</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>index methods</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>procedural languages</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<para>
|
|
And because of the liberal license,
|
|
<productname>PostgreSQL</productname> can be used, modified, and
|
|
distributed by anyone free of charge for any purpose, be it
|
|
private, commercial, or academic.
|
|
</para>
|
|
</sect1>
|
|
|
|
&history;
|
|
¬ation;
|
|
&info;
|
|
&problems;
|
|
|
|
</preface>
|