-d="ports">
-Portsitle>
+ d="ports">
+ Portsitle>
-
This manual describes version 6.5 of Postgresame>.
-
The Postgresame> developer community has
-
compiled and tested Postgresame> on a
-number of platforms. Check
-for the latest information.
-
+
This manual describes version 6.5 of Postgresame>.
+
The Postgresame> developer community has
+
compiled and tested Postgresame> on a
+ number of platforms. Check
+ for the latest information.
+
-ect1>
-Currently Supported Platformsitle>
+ ect1>
+ Currently Supported Platformsitle>
-At the time of publication, the following platforms have been tested:
+ At the time of publication, the following platforms have been tested:
-
-
Supported Platforms
-
-
- |
- Processor
- Version
- Reported
- Remarks
-
-
-
- |
- AIX 4.2.1
- RS6000
- v6.4
- 1998-10-27
-
- |
- BSDI
- x86
- v6.4
- 1998-10-25
-
- |
- FreeBSD 2.2.x-3.x
- x86
- v6.4
- 1998-10-26
-
- |
- DGUX 5.4R4.11
- m88k
- v6.3
- 1998-03-01
- v6.4 probably OK. Needs new maintainer.
-
- |
- Digital Unix 4.0
- Alpha
- v6.4
- 1998-10-29
- Minor patchable problems
-
- |
- HPUX
- PA-RISC
- v6.4
- 1998-10-25
- Both 9.0x and 10.20
-
- |
- IRIX 6.5
- MIPS
- v6.4
- 1998-12-29
- IRIX 5.x is different
-
- |
- linux 2.0.x
- Alpha
- v6.3.2
- 1998-04-16
- Mostly successful. Needs work for v6.4.
-
- |
- linux 2.0.x/libc5
- x86
- v6.4
- 1998-10-27
-
- |
- linux 2.0.x/glibc2
- x86
- v6.4
- 1998-10-25
-
- |
- linux 2.0.x
- MIPS
- v6.4
- 1998-12-16
- Cobalt Qube
-
- |
- linux 2.0.x
- Sparc
- v6.4
- 1998-10-25
-
- |
- linuxPPC 2.1.24
- PPC603e
- v6.4
- 1998-10-26
- Powerbook 2400c
-
- |
- mklinux DR3
- PPC750
- v6.4
- 1998-09-16
- PowerMac 7600
-
- |
- NetBSD/i386 1.3.2
- x86
- v6.4
- 1998-10-25
-
- |
- NetBSD
- m68k
- v6.4.2
- 1998-12-28
- Mac SE/30
+
+
Supported Platforms
+
+
+ |
+ Processor
+ Version
+ Reported
+ Remarks
+
+
+
+ |
+ AIX 4.2.1
+ RS6000
+ v6.4
+ 1998-10-27
+
+ |
+ BSDI
+ x86
+ v6.5
+ 1999-05-25
+
+ |
+ FreeBSD 2.2.x-3.x
+ x86
+ v6.5
+ 1999-05-25
+
+ |
+ DGUX 5.4R4.11
+ m88k
+ v6.3
+ 1998-03-01
+ v6.4 probably OK. Needs new maintainer.
+
+ |
+ Digital Unix 4.0
+ Alpha
+ v6.4
+ 1998-10-29
+ Minor patchable problems
+
+ |
+ HPUX
+ PA-RISC
+ v6.4
+ 1998-10-25
+ Both 9.0x and 10.20
+
+ |
+ IRIX 6.5
+ MIPS
+ v6.4
+ 1998-12-29
+ IRIX 5.x is different
+
+ |
+ linux 2.0.x
+ Alpha
+ v6.3.2
+ 1998-04-16
+ Mostly successful. Needs work for v6.4.
+
+ |
+ linux 2.0.x/libc5
+ x86
+ v6.4
+ 1998-10-27
+
+ |
+ linux 2.0.x/glibc2
+ x86
+ v6.4
+ 1999-05-24
+
+ |
+ linux 2.0.x
+ MIPS
+ v6.4
+ 1998-12-16
+ Cobalt Qube
+
+ |
+ linux 2.0.x
+ Sparc
+ v6.4
+ 1998-10-25
+
+ |
+ linuxPPC 2.1.24
+ PPC603e
+ v6.4
+ 1998-10-26
+ Powerbook 2400c
+
+ |
+ mklinux DR3
+ PPC750
+ v6.4
+ 1998-09-16
+ PowerMac 7600
+
+ |
+ NetBSD
+ arm32
+ v6.5
+ 1999-04-14
+
+ |
+ NetBSD/i386 1.3.2
+ x86
+ v6.4
+ 1998-10-25
+
+ |
+ NetBSD
+ m68k
+ v6.4.2
+ 1998-12-28
+ Mac SE/30
(Mr. Mutsuki Nakajima,
-
- |
- NetBSD-current
- NS32532
- v6.4
- 1998-10-27
- small problems in date/time math
-
- |
- NetBSD/sparc 1.3H
- Sparc
- v6.4
- 1998-10-27
-
- |
- NetBSD 1.3
- VAX
- v6.3
- 1998-03-01
-
- |
- SCO UnixWare 2.x
- x86
- v6.3
- 1998-03-01
- aka UNIVEL
-
- |
- SCO UnixWare 7
- x86
- v6.4
- 1998-10-04
-
- |
- Solaris
- x86
- v6.4
- 1998-10-28
-
- |
- Solaris 2.6-2.7
- Sparc
- v6.4
- 1998-10-28
-
- |
- SunOS 4.1.4
- Sparc
- v6.3
- 1998-03-01
- Patches submitted
-
- |
- SVR4
- MIPS
- v6.4
- 1998-10-28
- No 64-bit int compiler support
-
- |
- Windows
- x86
- v6.4
- 1999-01-06
- Client-side libraries or ODBC/JDBC. No server yet.
-
- |
- Windows NT
- x86
- v6.4
- 1998-10-08
- Working with the Cygwin library.
-
-
-
-
-
+
+ |
+ NetBSD-current
+ NS32532
+ v6.4
+ 1998-10-27
+ small problems in date/time math
+
+ |
+ NetBSD/sparc 1.3H
+ Sparc
+ v6.4
+ 1998-10-27
+
+ |
+ NetBSD 1.3
+ VAX
+ v6.3
+ 1998-03-01
+
+ |
+ SCO OpenServer 5
+ x86
+ v6.5
+ 1999-05-25
+
+ |
+ SCO UnixWare 7
+ x86
+ v6.5
+ 1999-05-25
+
+ |
+ Solaris
+ x86
+ v6.4
+ 1998-10-28
+
+ |
+ Solaris 2.6-2.7
+ Sparc
+ v6.4
+ 1998-10-28
+
+ |
+ SunOS 4.1.4
+ Sparc
+ v6.3
+ 1998-03-01
+ Patches submitted
+
+ |
+ SVR4
+ MIPS
+ v6.4
+ 1998-10-28
+ No 64-bit int compiler support
+
+ |
+ Windows
+ x86
+ v6.4
+ 1999-01-06
+ Client-side libraries or ODBC/JDBC. No server yet.
+
+ |
+ Windows NT
+ x86
+ v6.4
+ 1998-10-08
+ Working with the Cygwin library.
+
+
+
+
+
-Platforms listed for v6.3.x should also work with v6.4, but we did not receive
-confirmation of such at the time this list was compiled.
-
-
-the server-side port of
Postgres has recently been
-accomplished. The Cygnus library is required to compile it.
-
-
-
+ Platforms listed for v6.3.x and v6.4.x should also work with v6.5,
+ but we did not receive explicit confirmation of such at the time this
+ list was compiled.
+
+
+ the server-side port of
Postgres has recently been
+ accomplished. The Cygnus library is required to compile it.
+
+
+
-ect1>
-Unsupported Platformsitle>
+ ect1>
+ Unsupported Platformsitle>
-There are a few platforms which have been attempted and which have been
-reported to not work with the standard distribution.
-Others listed here do not provide sufficient library support for an attempt.
+ There are a few platforms which have been attempted and which have been
+ reported to not work with the standard distribution.
+ Others listed here do not provide sufficient library support for an attempt.
-
-
Possibly Incompatible Platforms
-Incompatibles
-
-
- |
- Processor
- Version
- Reported
- Remarks
-
-
-
- |
- MacOS
- all
- v6.3
- 1998-03-01
- Not library compatible; use ODBC/JDBC
-
- |
- NetBSD
- arm32
- v6.3
- 1998-03-01
-
Not yet working (Dave Millen)
-
- |
- NextStep
- x86
- v6.x
- 1998-03-01
-
Client-only support; v1.0.9 worked with patches (David Wetzel)
-
- |
- SVR4 4.4
- m88k
- v6.2.1
- 1998-03-01
- Confirmed with patching; v6.4.x will need TAS spinlock code
-
- |
- Ultrix
- MIPS,VAX?
- v6.x
- 1998-03-01
- No recent reports; obsolete?
-
-
-
-
-
+
+
Possibly Incompatible Platforms
+ Incompatibles
+
+
+ |
+ Processor
+ Version
+ Reported
+ Remarks
+
+
+
+ |
+ MacOS
+ all
+ v6.3
+ 1998-03-01
+ Not library compatible; use ODBC/JDBC
+
+ |
+ NextStep
+ x86
+ v6.x
+ 1998-03-01
+
Client-only support; v1.0.9 worked with patches (
+
+ |
+ SVR4 4.4
+ m88k
+ v6.2.1
+ 1998-03-01
+ Confirmed with patching; v6.4.x will need TAS spinlock code
+
+ |
+ Ultrix
+ MIPS,VAX?
+ v6.x
+ 1998-03-01
+ No recent reports; obsolete?
+
+
+
+
+
-ect1>
+ ect1>
-hapter>
+ hapter>
+
-->
- (last updated 1998-05-19)
+ (last updated 1999-06-01)
-
PostgreSQL is
copyright (C) 1998
by the Postgres Global Development Group.
- &sql;
- &syntax;
- &datatype;
- &oper;
- &func;
- &typeconv;
- &keys;
- &array;
- &inherit;
- &environ;
- &manage;
- &storage;
- &commands;
+ &sql;
+ &syntax;
+ &datatype;
+ &oper;
+ &func;
+ &typeconv;
+ &keys;
+ &array;
+ &inherit;
+ &mvcc;
+ &environ;
+ &manage;
+ &storage;
+ &commands;
&runtime;
&security;
&start-ag;
+ &trouble;
&recovery;
®ress;
&release;
Additional related information.
- &datetime;
- &docguide;
+
+ &datetime;
+ &cvs;
+ &docguide;
language. That means it is
based on the relational data model
first published by E.F. Codd in
- 1970. We will give a formal description of the relational model in
- section
- <!--{\it Formal Notion of the Relational Data Model}-->
+ 1970. We will give a formal description of the relational model
+ later (in
+ <xref linkend="formal-notion" endterm="formal-notion">)
but first we want to have a look at it from a more intuitive
point of view.
A table consists of rows and columns where each row represents a
record and each column represents an attribute of the records
contained in the table.
- Figure
+
shows an example of a database consisting of three tables:
+
The Suppliers and Parts Database
-
Formal Notion of the Relational Data Model
+
Relational Data Model Formalities
The mathematical concept underlying the relational model is the
for each attribute
- 1 <= i <= k,
+ 1 <= i <= k,
where the values of the attributes are taken from. We often write
a relation scheme as
integers. We define this by assigning a data type to each
attribute. The type of SNAME will be
VARCHAR(20) (this is the
SQL type
- for character strings of length <= 20),
+ for character strings of length <= 20),
the type of SNO will be
INTEGER. With the assignment of a data type we also have selected
a domain for an attribute. The domain of SNAME is the set of all
- character strings of length <= 20,
+ character strings of length <= 20,
the domain of SNO is the set of
all integer numbers.
-
Operations in the Relational Data
- Model
+
Operations in the Relational Data Model
- In
+ In the previous section ()
we defined the mathematical notion of
the relational model. Now we know how the data can be stored using a
relational data model but we do not know what to do with all these
projecting out the duplicate column.
- id="join-example">
-
An Inner Join
+
+
id="join-example">An Inner Join
Let's have a look at the tables that are produced by evaluating the steps
For a more detailed description and definition of the relational
- algebra refer to ullman or
- date86.
+ algebra refer to [] or
+ [].
- Recall that we formulated all those relational operators to be able to
- retrieve data from the database. Let's return to our example of
- section
- where someone wanted to know the names of all
- suppliers that sell the part Screw.
- This question can be answered
- using relational algebra by the following operation:
-
- πSUPPLIER.SNAME(σPART.PNAME='Screw'(SUPPLIER ∏ SELLS ∏ PART))
+
+
A Query Using Relational Algebra
+ Recall that we formulated all those relational operators to be able to
+ retrieve data from the database. Let's return to our example from
+ the previous
+ section ()
+ where someone wanted to know the names of all
+ suppliers that sell the part Screw.
+ This question can be answered
+ using relational algebra by the following operation:
-
+πSUPPLIER.SNAME(σPART.PNAME='Screw'(SUPPLIER ∏ SELLS ∏ PART))
+
+
- We call such an operation a query. If we evaluate the above query
- against the tables from figure
- (The suppliers and
- parts database) we will obtain the following result:
+ We call such an operation a query. If we evaluate the above query
+ against the our example tables
+ ()
+ we will obtain the following result:
SNAME
-------
Smith
Adams
-
-
+
+
+
We want to discuss the tuple relational calculus only because it is
the one underlying the most relational languages. For a detailed
discussion on
DRC (and also
- ullman.
+ []
+ or
+ [].
using
TRC we formulate the following query:
{x(SNAME) ∣ x ∈ SUPPLIER ∧ \nonumber
∃ y ∈ SELLS ∃ z ∈ PART (y(SNO)=x(SNO) ∧ \nonumber
z(PNO)=y(PNO) ∧ \nonumber
z(PNAME)='Screw')} \nonumber
+
- Evaluating the query against the tables from figure
+ Evaluating the query against the tables from
- (The suppliers and parts database)
again leads to the same result
- as in example
+ as in
.
algorithm) by which an arbitrary expression of the relational
calculus can be reduced to a semantically equivalent expression of
relational algebra. For a more detailed discussion on that refer to
- date86 and
- ullman.
+ []
+ and
+ [].
- As most modern relational languages
SQL is based on the tuple
+ As is the case with most modern relational languages,
+
SQL is based on the tuple
relational calculus. As a result every query that can be formulated
using the tuple relational calculus (or equivalently, relational
algebra) can also be formulated using
SQL. There are, however,
-
Select
+
id="select-title">Select
The most often used command in
SQL is the
Now we will illustrate the complex syntax of the SELECT statement
with various examples. The tables used for the examples are defined in
- figure (The suppliers and parts database).
+ .
Here are some simple examples using a SELECT statement:
-
Simple Query with Qualification
+
id="simple-query">Simple Query with Qualification
To retrieve all tuples from table PART where the attribute PRICE is
greater than 10 we formulate the following query:
Note that the
SQL SELECT corresponds to the
"projection" in relational algebra not to the "selection"
- (see section
- (Relational Algebra).
+ (see for more details).
because there are common named attributes (SNO and PNO) among the
relations. Now we can distinguish between the common named attributes
by simply prefixing the attribute name with the alias name followed by
- a dot. The join is calculated in the same way as shown in example
+ a dot. The join is calculated in the same way as shown in
.
First the Cartesian product
section).
-
Aggregates
+
id="aggregates-example">Aggregates
If we want to know the average cost of all parts in table PART we use
A1, ⃛, Ak.
-
Aggregates
+
id="aggregates-groupby">Aggregates
If we want to know how many parts are sold by every supplier we
formulate the query:
clause.
-
Having
+
id="having-example">Having
If we want only those suppliers selling more than one part we use the
-
Subselect
+
id="subselect-example">Subselect
If we want to know all parts having a greater price than the part
difference of the tuples derived by two subqueries.
-
Union, Intersect, Except
+
id="union-example">Union, Intersect, Except
The following query is an example for UNION:
-
Create Table
+
id="create-title">Create Table
The most fundamental command for data definition is the
-
Table Creation
+
id="table-create">Table Creation
- To create the tables defined in figure
+ To create the tables defined in
the
following
SQL statements are used:
-
Create Index
+
id="index-create">Create Index
To create an index named I on attribute SNAME of relation SUPPLIER
stored data. Instead, the system stores the definition of the
view (i.e. the rules about how to access physically stored base
tables in order to materialize the view) somewhere in the system
- catalogs (see section ). For a
+ catalogs (see
+ ). For a
discussion on different techniques to implement views refer to
- (last updated 1999-05-19)
+ (last updated 1999-06-01)
-
PostgreSQL is
copyright (©) 1998-9
by the Postgres Global Development Group.
&keys;
&array;
&inherit;
+ &mvcc;
&environ;
&manage;
&storage;
&commands;
+
+
&datetime;