Expunge "UNIX" in favor of "Unix".
A few other changes, but I forget what :(
This commit is contained in:
parent
d0741fb42f
commit
ab35b0822b
@ -282,7 +282,7 @@ SELECT name, population
|
|||||||
|
|
||||||
<note>
|
<note>
|
||||||
<para>
|
<para>
|
||||||
On UNIX systems, this is always midnight, January 1, 1970 GMT.
|
On Unix systems, this is always midnight, January 1, 1970 GMT.
|
||||||
</para>
|
</para>
|
||||||
</note>
|
</note>
|
||||||
</para>
|
</para>
|
||||||
|
@ -174,7 +174,7 @@
|
|||||||
<para>
|
<para>
|
||||||
The <firstterm>parser</firstterm> defined in
|
The <firstterm>parser</firstterm> defined in
|
||||||
<filename>gram.y</filename> and <filename>scan.l</filename> is
|
<filename>gram.y</filename> and <filename>scan.l</filename> is
|
||||||
built using the UNIX tools <application>yacc</application>
|
built using the Unix tools <application>yacc</application>
|
||||||
and <application>lex</application>.
|
and <application>lex</application>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -194,7 +194,7 @@
|
|||||||
The parser has to check the query string (which arrives as
|
The parser has to check the query string (which arrives as
|
||||||
plain ASCII text) for valid syntax. If the syntax is correct a
|
plain ASCII text) for valid syntax. If the syntax is correct a
|
||||||
<firstterm>parse tree</firstterm> is built up and handed back otherwise an error is
|
<firstterm>parse tree</firstterm> is built up and handed back otherwise an error is
|
||||||
returned. For the implementation the well known UNIX
|
returned. For the implementation the well known Unix
|
||||||
tools <application>lex</application> and <application>yacc</application>
|
tools <application>lex</application> and <application>yacc</application>
|
||||||
are used.
|
are used.
|
||||||
</para>
|
</para>
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
somewhat clearer.
|
somewhat clearer.
|
||||||
In database jargon, <ProductName>Postgres</ProductName> uses a simple "process
|
In database jargon, <ProductName>Postgres</ProductName> uses a simple "process
|
||||||
per-user" client/server model. A <ProductName>Postgres</ProductName> session
|
per-user" client/server model. A <ProductName>Postgres</ProductName> session
|
||||||
consists of the following cooperating UNIX processes (programs):
|
consists of the following cooperating Unix processes (programs):
|
||||||
|
|
||||||
<ItemizedList>
|
<ItemizedList>
|
||||||
<ListItem>
|
<ListItem>
|
||||||
@ -75,7 +75,7 @@ Note that the <ProductName>Postgres</ProductName> superuser does not
|
|||||||
have to be a special user (e.g., a user named
|
have to be a special user (e.g., a user named
|
||||||
"postgres"), although many systems are installed that way.
|
"postgres"), although many systems are installed that way.
|
||||||
Furthermore, the <ProductName>Postgres</ProductName> superuser should
|
Furthermore, the <ProductName>Postgres</ProductName> superuser should
|
||||||
definitely not be the UNIX superuser, "root"! In any
|
definitely not be the Unix superuser, "root"! In any
|
||||||
case, all files relating to a database should belong to
|
case, all files relating to a database should belong to
|
||||||
this <ProductName>Postgres</ProductName> superuser.
|
this <ProductName>Postgres</ProductName> superuser.
|
||||||
</Para>
|
</Para>
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
somewhat clearer.
|
somewhat clearer.
|
||||||
In database jargon, <ProductName>Postgres</ProductName> uses a simple "process
|
In database jargon, <ProductName>Postgres</ProductName> uses a simple "process
|
||||||
per-user" client/server model. A <ProductName>Postgres</ProductName> session
|
per-user" client/server model. A <ProductName>Postgres</ProductName> session
|
||||||
consists of the following cooperating UNIX processes (programs):
|
consists of the following cooperating Unix processes (programs):
|
||||||
</Para>
|
</Para>
|
||||||
|
|
||||||
<ItemizedList>
|
<ItemizedList>
|
||||||
@ -80,7 +80,7 @@
|
|||||||
have to be a special user (e.g., a user named
|
have to be a special user (e.g., a user named
|
||||||
"postgres"). Furthermore, the <ProductName>Postgres</ProductName> superuser
|
"postgres"). Furthermore, the <ProductName>Postgres</ProductName> superuser
|
||||||
should
|
should
|
||||||
definitely not be the UNIX superuser ("root")! In any
|
definitely not be the Unix superuser ("root")! In any
|
||||||
case, all files relating to a database should belong to
|
case, all files relating to a database should belong to
|
||||||
this <ProductName>Postgres</ProductName> superuser.
|
this <ProductName>Postgres</ProductName> superuser.
|
||||||
</Para>
|
</Para>
|
||||||
|
@ -113,6 +113,8 @@ procedure.
|
|||||||
link-editing required before you can load your user-defined
|
link-editing required before you can load your user-defined
|
||||||
functions into a running <productname>Postgres</productname> server. Note that
|
functions into a running <productname>Postgres</productname> server. Note that
|
||||||
this process has changed as of Version 4.2.
|
this process has changed as of Version 4.2.
|
||||||
|
|
||||||
|
<!--
|
||||||
<tip>
|
<tip>
|
||||||
<para>
|
<para>
|
||||||
The old <productname>Postgres</productname> dynamic
|
The old <productname>Postgres</productname> dynamic
|
||||||
@ -126,7 +128,7 @@ the dynamic loading mechanism provided by the operating
|
|||||||
system. This approach is generally faster, more reliable and
|
system. This approach is generally faster, more reliable and
|
||||||
more portable than our previous dynamic loading mechanism.
|
more portable than our previous dynamic loading mechanism.
|
||||||
The reason for this is that nearly all modern versions of
|
The reason for this is that nearly all modern versions of
|
||||||
UNIX use a dynamic loading mechanism to implement shared
|
Unix use a dynamic loading mechanism to implement shared
|
||||||
libraries and must therefore provide a fast and reliable
|
libraries and must therefore provide a fast and reliable
|
||||||
mechanism. On the other hand, the object file must be
|
mechanism. On the other hand, the object file must be
|
||||||
postprocessed a bit before it can be loaded into <productname>Postgres</productname>. We
|
postprocessed a bit before it can be loaded into <productname>Postgres</productname>. We
|
||||||
@ -135,6 +137,8 @@ make up for the slight decrease in convenience.
|
|||||||
</para>
|
</para>
|
||||||
</tip>
|
</tip>
|
||||||
</para>
|
</para>
|
||||||
|
-->
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
You should expect to read (and reread, and re-reread) the
|
You should expect to read (and reread, and re-reread) the
|
||||||
manual pages for the C compiler, cc(1), and the link
|
manual pages for the C compiler, cc(1), and the link
|
||||||
@ -143,7 +147,11 @@ make up for the slight decrease in convenience.
|
|||||||
<filename>PGROOT/src/regress</filename> contain several
|
<filename>PGROOT/src/regress</filename> contain several
|
||||||
working examples of this process. If you copy what these
|
working examples of this process. If you copy what these
|
||||||
tests do, you should not have any problems.
|
tests do, you should not have any problems.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
The following terminology will be used below:
|
The following terminology will be used below:
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
@ -180,6 +188,7 @@ Paths given to the create function command must be
|
|||||||
absolute paths (i.e., start with "/") that refer to
|
absolute paths (i.e., start with "/") that refer to
|
||||||
directories visible on the machine on which the
|
directories visible on the machine on which the
|
||||||
<productname>Postgres</productname> server is running.
|
<productname>Postgres</productname> server is running.
|
||||||
|
|
||||||
<tip>
|
<tip>
|
||||||
<para>
|
<para>
|
||||||
Relative paths do in fact work,
|
Relative paths do in fact work,
|
||||||
@ -193,6 +202,7 @@ could be running on a completely different machine!
|
|||||||
</tip>
|
</tip>
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The <productname>Postgres</productname> user must be able to traverse the path
|
The <productname>Postgres</productname> user must be able to traverse the path
|
||||||
@ -205,6 +215,7 @@ The <productname>Postgres</productname> user must be able to traverse the path
|
|||||||
common mistake.)
|
common mistake.)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Symbol names defined within object files must not
|
Symbol names defined within object files must not
|
||||||
@ -212,6 +223,7 @@ Symbol names defined within object files must not
|
|||||||
<productname>Postgres</productname>.
|
<productname>Postgres</productname>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The GNU C compiler usually does not provide the special
|
The GNU C compiler usually does not provide the special
|
||||||
@ -267,6 +279,7 @@ No additional loading or link-editing must be performed.
|
|||||||
the create function command, one must give it the name
|
the create function command, one must give it the name
|
||||||
of the shared object file (ending in .so) rather than
|
of the shared object file (ending in .so) rather than
|
||||||
the simple object file.
|
the simple object file.
|
||||||
|
|
||||||
<tip>
|
<tip>
|
||||||
<para>
|
<para>
|
||||||
Actually, <productname>Postgres</productname> does not care
|
Actually, <productname>Postgres</productname> does not care
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
$Header: /cvsroot/pgsql/doc/src/sgml/docguide.sgml,v 1.18 1999/07/06 17:19:41 thomas Exp $
|
$Header: /cvsroot/pgsql/doc/src/sgml/docguide.sgml,v 1.19 1999/10/04 15:18:53 thomas Exp $
|
||||||
Documentation Guide
|
Documentation Guide
|
||||||
Thomas Lockhart
|
Thomas Lockhart
|
||||||
|
|
||||||
@ -1334,7 +1334,7 @@ but it is almost certainly a good candidate for use.
|
|||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para>A working installation of GCC 2.7.2</para></listitem>
|
<listitem><para>A working installation of GCC 2.7.2</para></listitem>
|
||||||
<listitem><para>A working installation of Emacs 19.19 or later</para></listitem>
|
<listitem><para>A working installation of Emacs 19.19 or later</para></listitem>
|
||||||
<listitem><para>An unzip program for UNIX to unpack things</para></listitem>
|
<listitem><para>An unzip program for Unix to unpack things</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
</para>
|
</para>
|
||||||
|
@ -42,7 +42,7 @@ $ export PATH
|
|||||||
variable</Quote> or <Quote>setting an environment variable</Quote> throughout
|
variable</Quote> or <Quote>setting an environment variable</Quote> throughout
|
||||||
this document. If you did not fully understand the
|
this document. If you did not fully understand the
|
||||||
last paragraph on modifying your search path, you
|
last paragraph on modifying your search path, you
|
||||||
should consult the UNIX manual pages that describe your
|
should consult the Unix manual pages that describe your
|
||||||
shell before going any further.
|
shell before going any further.
|
||||||
</Para>
|
</Para>
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
We assume proficiency with UNIX and C programming.
|
We assume proficiency with Unix and C programming.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
&info;
|
&info;
|
||||||
|
@ -41,7 +41,7 @@ export PATH
|
|||||||
variable" or "setting an environment variable" throughout
|
variable" or "setting an environment variable" throughout
|
||||||
this document. If you did not fully understand the
|
this document. If you did not fully understand the
|
||||||
last paragraph on modifying your search path, you
|
last paragraph on modifying your search path, you
|
||||||
should consult the UNIX manual pages that describe your
|
should consult the Unix manual pages that describe your
|
||||||
shell before going any further.
|
shell before going any further.
|
||||||
</Para>
|
</Para>
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<acronym>UNIX</acronym> is a trademark of X/Open, Ltd. Sun4, SPARC, SunOS
|
<acronym>Unix</acronym> is a trademark of X/Open, Ltd. Sun4, SPARC, SunOS
|
||||||
and Solaris are trademarks of Sun Microsystems, Inc. DEC,
|
and Solaris are trademarks of Sun Microsystems, Inc. DEC,
|
||||||
DECstation, Alpha AXP and ULTRIX are trademarks of Digital
|
DECstation, Alpha AXP and ULTRIX are trademarks of Digital
|
||||||
Equipment Corp. PA-RISC and HP-UX are trademarks of
|
Equipment Corp. PA-RISC and HP-UX are trademarks of
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
oriented access to user data that has been declared to
|
oriented access to user data that has been declared to
|
||||||
be a large type.
|
be a large type.
|
||||||
This section describes the implementation and the
|
This section describes the implementation and the
|
||||||
programmatic and query language interfaces to
|
programming and query language interfaces to
|
||||||
<productname>Postgres</productname>
|
<productname>Postgres</productname>
|
||||||
large object data.
|
large object data.
|
||||||
</para>
|
</para>
|
||||||
@ -25,7 +25,7 @@
|
|||||||
Originally, <productname>Postgres 4.2</productname> supported three standard
|
Originally, <productname>Postgres 4.2</productname> supported three standard
|
||||||
implementations of large objects: as files external
|
implementations of large objects: as files external
|
||||||
to <productname>Postgres</productname>, as
|
to <productname>Postgres</productname>, as
|
||||||
<acronym>ym>U</acronym>ym> files managed by <productname>Postgres</productname>, and as data
|
external files managed by <productname>Postgres</productname>, and as data
|
||||||
stored within the <productname>Postgres</productname> database. It causes
|
stored within the <productname>Postgres</productname> database. It causes
|
||||||
considerable confusion among users. As a result, we only
|
considerable confusion among users. As a result, we only
|
||||||
support large objects as data stored within the <productname>Postgres</productname>
|
support large objects as data stored within the <productname>Postgres</productname>
|
||||||
@ -39,7 +39,7 @@
|
|||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1>
|
<sect1>
|
||||||
<title>Inversion Large Objects</title>
|
<title>Implementation Features</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The Inversion large object implementation breaks large
|
The Inversion large object implementation breaks large
|
||||||
@ -51,21 +51,31 @@
|
|||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1>
|
<sect1>
|
||||||
<title>Large Object Interfaces</title>
|
<title>Interfaces</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The facilities <productname>Postgres</productname> provides to access large
|
The facilities <productname>Postgres</productname> provides to
|
||||||
objects, both in the backend as part of user-defined
|
access large objects, both in the backend as part of user-defined
|
||||||
functions or the front end as part of an application
|
functions or the front end as part of an application
|
||||||
using the interface, are described below. (For users
|
using the interface, are described below. For users
|
||||||
familiar with <productname>Postgres 4.2</productname>,
|
familiar with <productname>Postgres 4.2</productname>,
|
||||||
<productname>PostgreSQL</productname> has a new set of
|
<productname>PostgreSQL</productname> has a new set of
|
||||||
functions providing a more coherent interface. The
|
functions providing a more coherent interface.
|
||||||
interface is the same for dynamically-loaded C
|
|
||||||
functions as well as for XXX LOST TEXT? WHAT SHOULD GO HERE??.
|
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
All large object manipulation <emphasis>must</emphasis> take
|
||||||
|
place within an SQL transaction. This requirement is strictly
|
||||||
|
enforced as of Postgres v6.5, though it has been an
|
||||||
|
implicit requirement in previous versions, resulting in
|
||||||
|
misbehavior if ignored.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
The <productname>Postgres</productname> large object interface is modeled after
|
The <productname>Postgres</productname> large object interface is modeled after
|
||||||
the <acronym>UNIX</acronym> file system interface, with analogues of
|
the <acronym>Unix</acronym> file system interface, with analogues of
|
||||||
<function>open(2)</function>, <function>read(2)</function>,
|
<function>open(2)</function>, <function>read(2)</function>,
|
||||||
<function>write(2)</function>,
|
<function>write(2)</function>,
|
||||||
<function>lseek(2)</function>, etc. User
|
<function>lseek(2)</function>, etc. User
|
||||||
@ -90,16 +100,17 @@
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
The routine
|
The routine
|
||||||
<programlisting>
|
|
||||||
Oid lo_creat(PGconn *conn, int mode)
|
<synopsis>
|
||||||
</programlisting>
|
Oid lo_creat(PGconn *<replaceable class="parameter">conn</replaceable>, int <replaceable class="parameter">mode</replaceable>)
|
||||||
creates a new large object. The mode is a bitmask
|
</synopsis>
|
||||||
|
|
||||||
|
creates a new large object.
|
||||||
|
<replaceable class="parameter">mode</replaceable> is a bitmask
|
||||||
describing several different attributes of the new
|
describing several different attributes of the new
|
||||||
object. The symbolic constants listed here are defined
|
object. The symbolic constants listed here are defined
|
||||||
in
|
in
|
||||||
<filename>
|
<filename>$<envar>PGROOT</envar>/src/backend/libpq/libpq-fs.h</filename>
|
||||||
PGROOT/src/backend/libpq/libpq-fs.h
|
|
||||||
</filename>
|
|
||||||
The access type (read, write, or both) is controlled by
|
The access type (read, write, or both) is controlled by
|
||||||
OR ing together the bits <acronym>INV_READ</acronym> and
|
OR ing together the bits <acronym>INV_READ</acronym> and
|
||||||
<acronym>INV_WRITE</acronym>. If
|
<acronym>INV_WRITE</acronym>. If
|
||||||
@ -121,12 +132,12 @@ inv_oid = lo_creat(INV_READ|INV_WRITE|INV_ARCHIVE);
|
|||||||
<title>Importing a Large Object</title>
|
<title>Importing a Large Object</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
To import a <acronym>UNIX</acronym> file as
|
To import a Unix file as a large object, call
|
||||||
a large object, call
|
<synopsis>
|
||||||
<programlisting>
|
Oid lo_import(PGconn *<replaceable class="parameter">conn</replaceable>, text *<replaceable class="parameter">filename</replaceable>)
|
||||||
Oid lo_import(PGconn *conn, text *filename)
|
</synopsis>
|
||||||
</programlisting>
|
<replaceable class="parameter">filename</replaceable>
|
||||||
The filename argument specifies the <acronym>UNIX</acronym> pathname of
|
specifies the <acronym>Unix</acronym> pathname of
|
||||||
the file to be imported as a large object.
|
the file to be imported as a large object.
|
||||||
</para>
|
</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
@ -136,13 +147,13 @@ Oid lo_import(PGconn *conn, text *filename)
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
To export a large object
|
To export a large object
|
||||||
into <acronym>UNIX</acronym> file, call
|
into <acronym>Unix</acronym> file, call
|
||||||
<programlisting>
|
<synopsis>
|
||||||
int lo_export(PGconn *conn, Oid lobjId, text *filename)
|
int lo_export(PGconn *<replaceable class="parameter">conn</replaceable>, Oid <replaceable class="parameter">lobjId</replaceable>, text *<replaceable class="parameter">filename</replaceable>)
|
||||||
</programlisting>
|
</synopsis>
|
||||||
The lobjId argument specifies the Oid of the large
|
The lobjId argument specifies the Oid of the large
|
||||||
object to export and the filename argument specifies
|
object to export and the filename argument specifies
|
||||||
the <acronym>UNIX</acronym> pathname of the file.
|
the <acronym>Unix</acronym> pathname of the file.
|
||||||
</para>
|
</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@ You are currently connected to the database: <replaceable>dbname</replaceable>
|
|||||||
<replaceable>dbname</replaceable>=> \i <replaceable class="parameter">filename</replaceable>
|
<replaceable>dbname</replaceable>=> \i <replaceable class="parameter">filename</replaceable>
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
To get out of <application>psql</application> and return to UNIX, type
|
To get out of <application>psql</application> and return to Unix, type
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
<replaceable>dbname</replaceable>=> \q
|
<replaceable>dbname</replaceable>=> \q
|
||||||
@ -140,13 +140,13 @@ You are currently connected to the database: <replaceable>dbname</replaceable>
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
If you are the database administrator for the database
|
If you are the database administrator for the database
|
||||||
mydb, you can destroy it using the following UNIX command:
|
mydb, you can destroy it using the following Unix command:
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
% destroydb <replaceable class="parameter">dbname</replaceable>
|
% destroydb <replaceable class="parameter">dbname</replaceable>
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
This action physically removes all of the UNIX files
|
This action physically removes all of the Unix files
|
||||||
associated with the database and cannot be undone, so
|
associated with the database and cannot be undone, so
|
||||||
this should only be done with a great deal of forethought.
|
this should only be done with a great deal of forethought.
|
||||||
</para>
|
</para>
|
||||||
|
@ -243,7 +243,7 @@ mydb=> \g
|
|||||||
mydb=> \i fileName
|
mydb=> \i fileName
|
||||||
</ProgramListing>
|
</ProgramListing>
|
||||||
|
|
||||||
To get out of <Application>psql</Application> and return to UNIX, type
|
To get out of <Application>psql</Application> and return to Unix, type
|
||||||
<ProgramListing>
|
<ProgramListing>
|
||||||
mydb=> \q
|
mydb=> \q
|
||||||
</ProgramListing>
|
</ProgramListing>
|
||||||
@ -281,11 +281,11 @@ TBD
|
|||||||
|
|
||||||
<Para>
|
<Para>
|
||||||
If you are the database administrator for the database
|
If you are the database administrator for the database
|
||||||
<Database>mydb</Database>, you can destroy it using the following UNIX command:
|
<Database>mydb</Database>, you can destroy it using the following Unix command:
|
||||||
<ProgramListing>
|
<ProgramListing>
|
||||||
% destroydb mydb
|
% destroydb mydb
|
||||||
</ProgramListing>
|
</ProgramListing>
|
||||||
This action physically removes all of the UNIX files
|
This action physically removes all of the Unix files
|
||||||
associated with the database and cannot be undone, so
|
associated with the database and cannot be undone, so
|
||||||
this should only be done with a great deal of forethought.
|
this should only be done with a great deal of forethought.
|
||||||
</Para>
|
</Para>
|
||||||
|
@ -138,8 +138,8 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Connections from clients can be made using UNIX domain sockets or Internet
|
Connections from clients can be made using Unix domain sockets or Internet
|
||||||
domain sockets (ie. TCP/IP). Connections made using UNIX domain sockets
|
domain sockets (ie. TCP/IP). Connections made using Unix domain sockets
|
||||||
are controlled using records of the following format:
|
are controlled using records of the following format:
|
||||||
|
|
||||||
<synopsis>
|
<synopsis>
|
||||||
@ -158,7 +158,7 @@ local <replaceable>database</replaceable> <replaceable>authentication method</re
|
|||||||
<member>
|
<member>
|
||||||
<replaceable>authentication method</replaceable>
|
<replaceable>authentication method</replaceable>
|
||||||
specifies the method a user must use to authenticate themselves when
|
specifies the method a user must use to authenticate themselves when
|
||||||
connecting to that database using UNIX domain sockets. The different methods
|
connecting to that database using Unix domain sockets. The different methods
|
||||||
are described below.
|
are described below.
|
||||||
</member>
|
</member>
|
||||||
</simplelist>
|
</simplelist>
|
||||||
@ -199,7 +199,7 @@ host <replaceable>database</replaceable> <replaceable>TCP/IP address</replaceabl
|
|||||||
<title>Authentication Methods</title>
|
<title>Authentication Methods</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The following authentication methods are supported for both UNIX and TCP/IP
|
The following authentication methods are supported for both Unix and TCP/IP
|
||||||
domain sockets:
|
domain sockets:
|
||||||
|
|
||||||
<variablelist>
|
<variablelist>
|
||||||
@ -299,7 +299,7 @@ host <replaceable>database</replaceable> <replaceable>TCP/IP address</replaceabl
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
# Trust any connection via UNIX domain sockets.
|
# Trust any connection via Unix domain sockets.
|
||||||
local trust
|
local trust
|
||||||
# Trust any connection via TCP/IP from this machine.
|
# Trust any connection via TCP/IP from this machine.
|
||||||
host all 127.0.0.1 255.255.255.255 trust
|
host all 127.0.0.1 255.255.255.255 trust
|
||||||
|
@ -13,7 +13,7 @@ How to begin work with <ProductName>Postgres</ProductName> for a new user.
|
|||||||
the site database administrator. This site administrator
|
the site database administrator. This site administrator
|
||||||
is the person who installed the software, created
|
is the person who installed the software, created
|
||||||
the database directories and started the <Application>postmaster</Application>
|
the database directories and started the <Application>postmaster</Application>
|
||||||
process. This person does not have to be the UNIX
|
process. This person does not have to be the Unix
|
||||||
superuser (<Quote>root</Quote>)
|
superuser (<Quote>root</Quote>)
|
||||||
or the computer system administrator; a person can install and use
|
or the computer system administrator; a person can install and use
|
||||||
<ProductName>Postgres</ProductName> without any special accounts or privileges.
|
<ProductName>Postgres</ProductName> without any special accounts or privileges.
|
||||||
@ -28,7 +28,7 @@ to this guide when the installation is complete.
|
|||||||
<Para>
|
<Para>
|
||||||
Throughout this manual, any examples that begin with
|
Throughout this manual, any examples that begin with
|
||||||
the character <Quote>%</Quote> are commands that should be typed
|
the character <Quote>%</Quote> are commands that should be typed
|
||||||
at the UNIX shell prompt. Examples that begin with the
|
at the Unix shell prompt. Examples that begin with the
|
||||||
character <Quote>*</Quote> are commands in the Postgres query
|
character <Quote>*</Quote> are commands in the Postgres query
|
||||||
language, Postgres <Acronym>SQL</Acronym>.
|
language, Postgres <Acronym>SQL</Acronym>.
|
||||||
</Para>
|
</Para>
|
||||||
@ -77,7 +77,7 @@ of a client application is the interactive monitor <Application>psql</Applicatio
|
|||||||
variable</Quote> or <Quote>setting an environment variable</Quote> throughout
|
variable</Quote> or <Quote>setting an environment variable</Quote> throughout
|
||||||
this document. If you did not fully understand the
|
this document. If you did not fully understand the
|
||||||
last paragraph on modifying your search path, you
|
last paragraph on modifying your search path, you
|
||||||
should consult the UNIX manual pages that describe your
|
should consult the Unix manual pages that describe your
|
||||||
shell before going any further.
|
shell before going any further.
|
||||||
</Para>
|
</Para>
|
||||||
|
|
||||||
@ -282,7 +282,7 @@ mydb=> \g
|
|||||||
mydb=> \i fileName
|
mydb=> \i fileName
|
||||||
</ProgramListing>
|
</ProgramListing>
|
||||||
|
|
||||||
To get out of <Application>psql</Application> and return to UNIX, type
|
To get out of <Application>psql</Application> and return to Unix, type
|
||||||
<ProgramListing>
|
<ProgramListing>
|
||||||
mydb=> \q
|
mydb=> \q
|
||||||
</ProgramListing>
|
</ProgramListing>
|
||||||
@ -303,11 +303,11 @@ mydb=> \q
|
|||||||
|
|
||||||
<Para>
|
<Para>
|
||||||
If you are the database administrator for the database
|
If you are the database administrator for the database
|
||||||
<Database>mydb</Database>, you can destroy it using the following UNIX command:
|
<Database>mydb</Database>, you can destroy it using the following Unix command:
|
||||||
<ProgramListing>
|
<ProgramListing>
|
||||||
% destroydb mydb
|
% destroydb mydb
|
||||||
</ProgramListing>
|
</ProgramListing>
|
||||||
This action physically removes all of the UNIX files
|
This action physically removes all of the Unix files
|
||||||
associated with the database and cannot be undone, so
|
associated with the database and cannot be undone, so
|
||||||
this should only be done with a great deal of forethought.
|
this should only be done with a great deal of forethought.
|
||||||
</Para>
|
</Para>
|
||||||
|
@ -116,7 +116,7 @@ select function hobbies (EMP) returns set of HOBBIES
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
The simplest possible <acronym>SQL</acronym> function has no arguments and
|
The simplest possible <acronym>SQL</acronym> function has no arguments and
|
||||||
simply returns a base type, such as <acronym>int4</acronym>:
|
simply returns a base type, such as <literal>int4</literal>:
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
CREATE FUNCTION one() RETURNS int4
|
CREATE FUNCTION one() RETURNS int4
|
||||||
@ -291,10 +291,11 @@ WARN::function declared to return type EMP does not retrieve (EMP.*)
|
|||||||
<para>
|
<para>
|
||||||
Any collection of commands in the <acronym>SQL</acronym> query
|
Any collection of commands in the <acronym>SQL</acronym> query
|
||||||
language can be packaged together and defined as a function.
|
language can be packaged together and defined as a function.
|
||||||
The commands can include updates (i.e., <acronym>insert</acronym>,
|
The commands can include updates (i.e.,
|
||||||
<acronym>update</acronym> and <acronym>delete</acronym>) as well
|
<command>INSERT</command>, <command>UPDATE</command>, and
|
||||||
as <acronym>select</acronym> queries. However, the final command
|
<command>DELETE</command>) as well
|
||||||
must be a <acronym>select</acronym> that returns whatever is
|
as <command>SELECT</command> queries. However, the final command
|
||||||
|
must be a <command>SELECT</command> that returns whatever is
|
||||||
specified as the function's returntype.
|
specified as the function's returntype.
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
@ -392,7 +393,7 @@ WARN::function declared to return type EMP does not retrieve (EMP.*)
|
|||||||
code file for the function, bracketed by quotation marks. If a
|
code file for the function, bracketed by quotation marks. If a
|
||||||
link symbol is used in the AS clause, the link symbol should also be
|
link symbol is used in the AS clause, the link symbol should also be
|
||||||
bracketed by single quotation marks, and should be exactly the
|
bracketed by single quotation marks, and should be exactly the
|
||||||
same as the name of the function in the C source code. On UNIX systems
|
same as the name of the function in the C source code. On Unix systems
|
||||||
the command <command>nm</command> will print all of the link
|
the command <command>nm</command> will print all of the link
|
||||||
symbols in a dynamically loadable object.
|
symbols in a dynamically loadable object.
|
||||||
(<productname>Postgres</productname> will not compile a function
|
(<productname>Postgres</productname> will not compile a function
|
||||||
@ -608,12 +609,12 @@ WARN::function declared to return type EMP does not retrieve (EMP.*)
|
|||||||
only passes integer types by value. You should be careful
|
only passes integer types by value. You should be careful
|
||||||
to define your types such that they will be the same
|
to define your types such that they will be the same
|
||||||
size (in bytes) on all architectures. For example, the
|
size (in bytes) on all architectures. For example, the
|
||||||
<acronym>long</acronym> type is dangerous because it
|
<literal>long</literal> type is dangerous because it
|
||||||
is 4 bytes on some machines and 8 bytes on others, whereas
|
is 4 bytes on some machines and 8 bytes on others, whereas
|
||||||
<acronym>int</acronym> type is 4 bytes on most
|
<literal>int</literal> type is 4 bytes on most
|
||||||
<acronym>UNIX</acronym> machines (though not on most
|
Unix machines (though not on most
|
||||||
personal computers). A reasonable implementation of
|
personal computers). A reasonable implementation of
|
||||||
the <acronym>int4</acronym> type on <acronym>UNIX</acronym>
|
the <literal>int4</literal> type on Unix
|
||||||
machines might be:
|
machines might be:
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
@ -779,7 +780,7 @@ memmove(destination->data, buffer, 40);
|
|||||||
a procedural interface for accessing fields of composite types
|
a procedural interface for accessing fields of composite types
|
||||||
from C. As <productname>Postgres</productname> processes
|
from C. As <productname>Postgres</productname> processes
|
||||||
a set of instances, each instance will be passed into your
|
a set of instances, each instance will be passed into your
|
||||||
function as an opaque structure of type <acronym>TUPLE</acronym>.
|
function as an opaque structure of type <literal>TUPLE</literal>.
|
||||||
Suppose we want to write a function to answer the query
|
Suppose we want to write a function to answer the query
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
@ -809,16 +810,16 @@ memmove(destination->data, buffer, 40);
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<acronym>GetAttributeByName</acronym> is the
|
<function>GetAttributeByName</function> is the
|
||||||
<productname>Postgres</productname> system function that
|
<productname>Postgres</productname> system function that
|
||||||
returns attributes out of the current instance. It has
|
returns attributes out of the current instance. It has
|
||||||
three arguments: the argument of type TUPLE passed into
|
three arguments: the argument of type TUPLE passed into
|
||||||
the function, the name of the desired attribute, and a
|
the function, the name of the desired attribute, and a
|
||||||
return parameter that describes whether the attribute
|
return parameter that describes whether the attribute
|
||||||
is null. <acronym>GetAttributeByName</acronym> will
|
is null. <function>GetAttributeByName</function> will
|
||||||
align data properly so you can cast its return value to
|
align data properly so you can cast its return value to
|
||||||
the desired type. For example, if you have an attribute
|
the desired type. For example, if you have an attribute
|
||||||
name which is of the type name, the <acronym>GetAttributeByName</acronym>
|
name which is of the type name, the <function>GetAttributeByName</function>
|
||||||
call would look like:
|
call would look like:
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user