mirror of
https://github.com/postgres/postgres.git
synced 2025-04-22 23:02:54 +03:00
Start updating for the v7.0 release.
Use "generic functions" for math and other routines. Use SQL92 "type 'literal'" syntax rather than Postgres "'literal'::type".
This commit is contained in:
parent
2dabd2cd1f
commit
39f69bc38f
@ -3,7 +3,7 @@
|
||||
|
||||
<para>
|
||||
<productname>PostgreSQL</productname> is available without cost. This manual
|
||||
describes version 6.5 of <productname>PostgreSQL</productname>.
|
||||
describes version 7.0 of <productname>PostgreSQL</productname>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -31,7 +31,7 @@ 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-catalogs:("/usr/lib/sgml/catalog")
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
-->
|
||||
|
@ -368,82 +368,88 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry> abstime(datetime) </entry>
|
||||
<entry>abstime(timestamp)</entry>
|
||||
<entry>abstime</entry>
|
||||
<entry>convert to abstime</entry>
|
||||
<entry> abstime('now'::datetime) </entry>
|
||||
<entry>abstime(timestamp 'now')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> age(datetime,datetime) </entry>
|
||||
<entry> timespan </entry>
|
||||
<entry>age(timestamp)</entry>
|
||||
<entry>interval</entry>
|
||||
<entry>preserve months and years</entry>
|
||||
<entry> age('now','1957-06-13'::datetime) </entry>
|
||||
<entry>age(timestamp '1957-06-13')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> datetime(abstime) </entry>
|
||||
<entry> datetime </entry>
|
||||
<entry> convert to datetime </entry>
|
||||
<entry> datetime('now'::abstime) </entry>
|
||||
<entry>age(timestamp,timestamp)</entry>
|
||||
<entry>interval</entry>
|
||||
<entry>preserve months and years</entry>
|
||||
<entry>age('now', timestamp '1957-06-13')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> datetime(date) </entry>
|
||||
<entry> datetime </entry>
|
||||
<entry> convert to datetime </entry>
|
||||
<entry> datetime('today'::date) </entry>
|
||||
<entry>timestamp(abstime)</entry>
|
||||
<entry>timestamp</entry>
|
||||
<entry>convert to timestamp</entry>
|
||||
<entry>timestamp(abstime 'now')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> datetime(date,time) </entry>
|
||||
<entry> datetime </entry>
|
||||
<entry> convert to datetime </entry>
|
||||
<entry> datetime('1998-02-24'::datetime, '23:07'::time); </entry>
|
||||
<entry>timestamp(date)</entry>
|
||||
<entry>timestamp</entry>
|
||||
<entry>convert to timestamp</entry>
|
||||
<entry>timestamp(date 'today')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> date_part(text,datetime) </entry>
|
||||
<entry>timestamp(date,time)</entry>
|
||||
<entry>timestamp</entry>
|
||||
<entry>convert to timestamp</entry>
|
||||
<entry>timestamp(timestamp '1998-02-24',time '23:07');</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>date_part(text,timestamp)</entry>
|
||||
<entry>float8</entry>
|
||||
<entry>portion of date</entry>
|
||||
<entry> date_part('dow','now'::datetime) </entry>
|
||||
<entry>date_part('dow',timestamp 'now')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> date_part(text,timespan) </entry>
|
||||
<entry>date_part(text,interval)</entry>
|
||||
<entry>float8</entry>
|
||||
<entry>portion of time</entry>
|
||||
<entry> date_part('hour','4 hrs 3 mins'::timespan) </entry>
|
||||
<entry>date_part('hour',interval '4 hrs 3 mins')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> date_trunc(text,datetime) </entry>
|
||||
<entry> datetime </entry>
|
||||
<entry>date_trunc(text,timestamp)</entry>
|
||||
<entry>timestamp</entry>
|
||||
<entry>truncate date</entry>
|
||||
<entry> date_trunc('month','now'::abstime) </entry>
|
||||
<entry>date_trunc('month',abstime 'now')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>isfinite(abstime)</entry>
|
||||
<entry>bool</entry>
|
||||
<entry>a finite time?</entry>
|
||||
<entry> isfinite('now'::abstime) </entry>
|
||||
<entry>isfinite(abstime 'now')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> isfinite(datetime) </entry>
|
||||
<entry>isfinite(timestamp)</entry>
|
||||
<entry>bool</entry>
|
||||
<entry>a finite time?</entry>
|
||||
<entry> isfinite('now'::datetime) </entry>
|
||||
<entry>isfinite(timestamp 'now')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> isfinite(timespan) </entry>
|
||||
<entry>isfinite(interval)</entry>
|
||||
<entry>bool</entry>
|
||||
<entry>a finite time?</entry>
|
||||
<entry> isfinite('4 hrs'::timespan) </entry>
|
||||
<entry>isfinite(interval '4 hrs')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> reltime(timespan) </entry>
|
||||
<entry>reltime(interval)</entry>
|
||||
<entry>reltime</entry>
|
||||
<entry>convert to reltime</entry>
|
||||
<entry> reltime('4 hrs'::timespan) </entry>
|
||||
<entry>reltime(interval '4 hrs')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> timespan(reltime) </entry>
|
||||
<entry> timespan </entry>
|
||||
<entry> convert to timespan </entry>
|
||||
<entry> timespan('4 hours'::reltime) </entry>
|
||||
<entry>interval(reltime)</entry>
|
||||
<entry>interval</entry>
|
||||
<entry>convert to interval</entry>
|
||||
<entry>interval(reltime '4 hours')</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
@ -459,8 +465,8 @@
|
||||
`decade', `century', `millenium', `millisecond', and `microsecond'.
|
||||
<function>date_part</function> allows `dow'
|
||||
to return day of week and `epoch' to return seconds since 1970
|
||||
(for <type>datetime</type>)
|
||||
or 'epoch' to return total elapsed seconds (for <type>timespan</type>).
|
||||
(for <type>timestamp</type>)
|
||||
or 'epoch' to return total elapsed seconds (for <type>interval</type>).
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
@ -477,11 +483,18 @@
|
||||
on 2000-01-24.
|
||||
</para>
|
||||
</note>
|
||||
|
||||
<para>
|
||||
Formatting functions provide a powerful set of tools for converting
|
||||
The <productname>Postgres</productname>
|
||||
formatting functions provide a powerful set of tools for converting
|
||||
various datetypes (date/time, int, float, numeric) to formatted strings
|
||||
and reverse convert from formatted strings to original datetypes.
|
||||
and for converting from formatted strings to specific datetypes.
|
||||
|
||||
<note>
|
||||
<para>
|
||||
The second argument for all formatting functions is a template to
|
||||
be used for the conversion.
|
||||
</para>
|
||||
</note>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -497,17 +510,11 @@
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry> to_char(datetime, text) </entry>
|
||||
<entry> text </entry>
|
||||
<entry> convert datetime to string </entry>
|
||||
<entry> to_char('now'::datetime, 'HH12:MI:SS') </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(timestamp, text)</entry>
|
||||
<entry>text</entry>
|
||||
<entry>convert timestamp to string</entry>
|
||||
<entry> to_char( now(), 'HH12:MI:SS') </entry>
|
||||
<entry>to_char(timestamp 'now','HH12:MI:SS')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(int, text)</entry>
|
||||
@ -525,13 +532,7 @@
|
||||
<entry>to_char(numeric, text)</entry>
|
||||
<entry>text</entry>
|
||||
<entry>convert numeric to string</entry>
|
||||
<entry> to_char(-125.8, '999D99S') </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> to_datetime(text, text) </entry>
|
||||
<entry> datetime </entry>
|
||||
<entry> convert string to datetime </entry>
|
||||
<entry> to_datetime('05 Dec 2000 13', 'DD Mon YYYY HH') </entry>
|
||||
<entry>to_char(numeric '-125.8', '999D99S')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_date(text, text)</entry>
|
||||
@ -556,17 +557,13 @@
|
||||
</table>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For all formatting functions is second argument format-picture.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<table tocentry="1">
|
||||
<title>Format-pictures for date/time to_char() version.</title>
|
||||
<title>Templates for date/time conversions</title>
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Format-picture</entry>
|
||||
<entry>Template</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
@ -585,7 +582,7 @@
|
||||
</row>
|
||||
<row>
|
||||
<entry>SS</entry>
|
||||
<entry> socond (00-59) </entry>
|
||||
<entry>second (00-59)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>SSSS</entry>
|
||||
@ -613,27 +610,27 @@
|
||||
</row>
|
||||
<row>
|
||||
<entry>MONTH</entry>
|
||||
<entry> full month name (9-letters) - all characters is upper </entry>
|
||||
<entry>full upper case month name (9 chars)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>Month</entry>
|
||||
<entry> full month name (9-letters) - first character is upper </entry>
|
||||
<entry>full mixed case month name (9 chars)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>month</entry>
|
||||
<entry> full month name (9-letters) - all characters is lower </entry>
|
||||
<entry>full lower case month name (9 chars)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>MON</entry>
|
||||
<entry> abbreviated month name (3-letters) - all characters is upper </entry>
|
||||
<entry>upper case abbreviated month name (3 chars)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>Mon</entry>
|
||||
<entry> abbreviated month name (3-letters) - first character is upper </entry>
|
||||
<entry>abbreviated mixed case month name (3 chars)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>mon</entry>
|
||||
<entry> abbreviated month name (3-letters) - all characters is lower </entry>
|
||||
<entry>abbreviated lower case month name (3 chars)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>MM</entry>
|
||||
@ -641,27 +638,27 @@
|
||||
</row>
|
||||
<row>
|
||||
<entry>DAY</entry>
|
||||
<entry> full day name (9-letters) - all characters is upper </entry>
|
||||
<entry>full upper case day name (9 chars)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>Day</entry>
|
||||
<entry> full day name (9-letters) - first character is upper </entry>
|
||||
<entry>full mixed case day name (9 chars)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>day</entry>
|
||||
<entry> full day name (9-letters) - all characters is lower </entry>
|
||||
<entry>full lower case day name (9 chars)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>DY</entry>
|
||||
<entry> abbreviated day name (3-letters) - all characters is upper </entry>
|
||||
<entry>abbreviated upper case day name (3 chars)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>Dy</entry>
|
||||
<entry> abbreviated day name (3-letters) - first character is upper </entry>
|
||||
<entry>abbreviated mixed case day name (3 chars)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>dy</entry>
|
||||
<entry> abbreviated day name (3-letters) - all characters is upper </entry>
|
||||
<entry>abbreviated lower case day name (3 chars)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>DDD</entry>
|
||||
@ -685,11 +682,11 @@
|
||||
</row>
|
||||
<row>
|
||||
<entry>CC</entry>
|
||||
<entry> century (2-digits) </entry>
|
||||
<entry>century (2 digits)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>J</entry>
|
||||
<entry> julian day (days since January 1, 4712 BC) </entry>
|
||||
<entry>Julian Day (days since January 1, 4712 BC)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>Q</entry>
|
||||
@ -697,7 +694,7 @@
|
||||
</row>
|
||||
<row>
|
||||
<entry>RM</entry>
|
||||
<entry> month in roman numeral (I-XII; I=JAN) </entry>
|
||||
<entry>month in Roman Numerals (I-XII; I=JAN)</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
@ -705,13 +702,13 @@
|
||||
</para>
|
||||
|
||||
<para>
|
||||
All format-pictures allow use suffixes (postfix / prefix). The suffix is
|
||||
always valid for a near format-picture. The 'FX' is global prefix only.
|
||||
All templates allow the use of prefix and suffix modifiers. Modifiers are
|
||||
always valid for use in templates. The prefix 'FX' is a global modifier only.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<table tocentry="1">
|
||||
<title>Suffixes for format-pictures for date/time to_char() version.</title>
|
||||
<title>Suffixes for templates for date/time to_char()</title>
|
||||
<tgroup cols="3">
|
||||
<thead>
|
||||
<row>
|
||||
@ -723,29 +720,27 @@
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>FM</entry>
|
||||
<entry> fill mode - prefix </entry>
|
||||
<entry>fill mode prefix</entry>
|
||||
<entry>FMMonth</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>TH</entry>
|
||||
<entry> upper ordinal number - postfix </entry>
|
||||
<entry>upper ordinal number suffix</entry>
|
||||
<entry>DDTH</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>th</entry>
|
||||
<entry> lower ordinal number - postfix </entry>
|
||||
<entry>lower ordinal number suffix</entry>
|
||||
<entry>DDTH</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>FX</entry>
|
||||
<entry> FX - (Fixed format) global format-picture switch.
|
||||
The TO_DATETIME / TO_DATE skip blank space if this option is
|
||||
not use. Must by used as first item in formt-picture. </entry>
|
||||
<entry>FiXed format global option (see below)</entry>
|
||||
<entry>FX Month DD Day</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>SP</entry>
|
||||
<entry> spell mode (not implement now)</entry>
|
||||
<entry>spell mode (not yet implemented)</entry>
|
||||
<entry>DDSP</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
@ -753,38 +748,60 @@
|
||||
</table>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Usage notes:
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<function>to_timestamp</function> and <function>to_date</function>
|
||||
skip blank space if the <literal>FX</literal> option is
|
||||
not use. <literal>FX</literal> Must be specified as the first item
|
||||
in the template.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
'\' - must be use as double \\, example '\\HH\\MI\\SS'
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
'"' - string between a quotation marks is skipen and not is parsed.
|
||||
If you want write '"' to output you must use \\", example '\\"YYYY Month\\"'.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
text - the PostgreSQL's to_char() support text without '"', but string
|
||||
between a quotation marks is fastly and you have guarantee, that a text
|
||||
not will interpreted as a keyword (format-picture), exapmle '"Hello Year: "YYYY'.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<table tocentry="1">
|
||||
<title>Format-pictures for number (int/float/numeric) to_char() version.</title>
|
||||
<title>Templates for to_char(<replaceable>numeric</replaceable>)</title>
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Format-picture</entry>
|
||||
<entry>Template</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>9</entry>
|
||||
<entry> return value with the specified number of digits, and if digit is
|
||||
not available use blank space </entry>
|
||||
<entry>value with the specified number of digits</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>0</entry>
|
||||
<entry> as 9, but instead blank space use zero </entry>
|
||||
<entry>value with leading zeros</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>. (period)</entry>
|
||||
@ -796,11 +813,11 @@
|
||||
</row>
|
||||
<row>
|
||||
<entry>PR</entry>
|
||||
<entry> return negative value in angle brackets </entry>
|
||||
<entry>negative value in angle brackets</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>S</entry>
|
||||
<entry> return negatice value with minus sign (use locales) </entry>
|
||||
<entry>negative value with minus sign (use locales)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>L</entry>
|
||||
@ -816,28 +833,28 @@
|
||||
</row>
|
||||
<row>
|
||||
<entry>MI</entry>
|
||||
<entry> return minus sign on specified position (if number < 0) </entry>
|
||||
<entry>minus sign on specified position (if number < 0)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>PL</entry>
|
||||
<entry> return plus sign on specified position (if number > 0) - PostgreSQL extension </entry>
|
||||
<entry>plus sign on specified position (if number > 0)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>SG</entry>
|
||||
<entry> return plus/minus sign on specified position - PostgreSQL extension </entry>
|
||||
<entry>plus/minus sign on specified position</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>RN</entry>
|
||||
<entry> return number as roman number (number must be between 1 and 3999) </entry>
|
||||
<entry>roman numeral (input between 1 and 3999)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>TH or th</entry>
|
||||
<entry> convert number to ordinal number (not convert numbers under zero and decimal numbers) - PostgreSQL extension </entry>
|
||||
<entry>convert to ordinal number</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>V</entry>
|
||||
<entry> arg1 * (10 ^ n); - return a value multiplied by 10^n (where 'n' is number of '9's after the 'V').
|
||||
The to_char() not support use 'V' and decimal poin together, example "99.9V99". </entry>
|
||||
<entry>Shift <replaceable>n</replaceable> digits (see
|
||||
notes)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>EEEE</entry>
|
||||
@ -849,16 +866,65 @@
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Note: A sign formatted via 'SG', 'PL' or 'MI' is not anchor in number;
|
||||
to_char(-12, 'S9999') produce: <ProgramListing> ' -12' </ProgramListing>,
|
||||
but to_char(-12, 'MI9999') produce: <ProgramListing> '- 12' </ProgramListing>.
|
||||
The Oracle not allow use 'MI' ahead of '9', in the Oracle must be it always
|
||||
after '9'.
|
||||
Usage notes:
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
A sign formatted using 'SG', 'PL' or 'MI' is not an anchor in
|
||||
the number; for example,
|
||||
to_char(-12, 'S9999') produces <literal>' -12'</literal>,
|
||||
but to_char(-12, 'MI9999') produces <literal>'- 12'</literal>.
|
||||
The Oracle implementation does not allow the use of
|
||||
<literal>MI</literal> ahead of <literal>9</literal>, but rather
|
||||
requires that <literal>9</literal> preceeds
|
||||
<literal>MI</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>PL</literal>, <literal>SG</literal>, and
|
||||
<literal>TH</literal> are <productname>Postgres</productname>
|
||||
extensions.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<entry>9</entry>
|
||||
<entry>value with the specified number of digits, and if digit is
|
||||
not available use blank space</entry>
|
||||
</row>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>TH</literal> does not convert values less than zero
|
||||
and does not convert decimal numbers. <literal>TH</literal> is
|
||||
a <productname>Postgres</productname> extension.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>V</literal> effectively
|
||||
multiplies the input values by
|
||||
<literal>10^<replaceable>n</replaceable></literal>, where
|
||||
<replaceable>n</replaceable> is the number of digits following
|
||||
<literal>V</literal>.
|
||||
<function>to_char</function> does not support the use of
|
||||
<literal>V</literal> combined with a decimal point
|
||||
(e.g. "99.9V99" is not allowed).
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<table tocentry="1">
|
||||
<title> The to_char() examples. </title>
|
||||
<title><function>to_char</function> Examples</title>
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
@ -869,145 +935,143 @@
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>to_char(now(),'Day, HH12:MI:SS')</entry>
|
||||
<entry><ProgramListing> 'Tuesday , 05:39:18' </ProgramListing></entry>
|
||||
<entry><literal>'Tuesday , 05:39:18'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(now(),'FMDay, HH12:MI:SS')</entry>
|
||||
<entry><ProgramListing> 'Tuesday, 05:39:18' </ProgramListing></entry>
|
||||
<entry><literal>'Tuesday, 05:39:18'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(-0.1,'99.99')</entry>
|
||||
<entry><ProgramListing> ' -.10' </ProgramListing></entry>
|
||||
<entry><literal>' -.10'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(-0.1,'FM9.99')</entry>
|
||||
<entry><ProgramListing> '-.1' </ProgramListing></entry>
|
||||
<entry><literal>'-.1'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(0.1,'0.9')</entry>
|
||||
<entry><ProgramListing> ' 0.1' </ProgramListing></entry>
|
||||
<entry><literal>' 0.1'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(12,'9990999.9')</entry>
|
||||
<entry><ProgramListing> ' 0012.0' </ProgramListing></entry>
|
||||
<entry><literal>' 0012.0'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(12,'FM9990999.9')</entry>
|
||||
<entry><ProgramListing> '0012' </ProgramListing></entry>
|
||||
<entry><literal>'0012'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(485,'999')</entry>
|
||||
<entry><ProgramListing> ' 485' </ProgramListing></entry>
|
||||
<entry><literal>' 485'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(-485,'999')</entry>
|
||||
<entry><ProgramListing> '-485' </ProgramListing></entry>
|
||||
<entry><literal>'-485'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(485,'9 9 9')</entry>
|
||||
<entry><ProgramListing> ' 4 8 5' </ProgramListing></entry>
|
||||
<entry><literal>' 4 8 5'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(1485,'9,999')</entry>
|
||||
<entry><ProgramListing> ' 1,485' </ProgramListing></entry>
|
||||
<entry><literal>' 1,485'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(1485,'9G999')</entry>
|
||||
<entry><ProgramListing> ' 1 485' </ProgramListing></entry>
|
||||
<entry><literal>' 1 485'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(148.5,'999.999')</entry>
|
||||
<entry><ProgramListing> ' 148.500' </ProgramListing></entry>
|
||||
<entry><literal>' 148.500'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(148.5,'999D999')</entry>
|
||||
<entry><ProgramListing> ' 148,500' </ProgramListing></entry>
|
||||
<entry><literal>' 148,500'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(3148.5,'9G999D999')</entry>
|
||||
<entry><ProgramListing> ' 3 148,500' </ProgramListing></entry>
|
||||
<entry><literal>' 3 148,500'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(-485,'999S')</entry>
|
||||
<entry><ProgramListing> '485-' </ProgramListing></entry>
|
||||
<entry><literal>'485-'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(-485,'999MI')</entry>
|
||||
<entry><ProgramListing> '485-' </ProgramListing></entry>
|
||||
<entry><literal>'485-'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(485,'999MI')</entry>
|
||||
<entry><ProgramListing> '485' </ProgramListing></entry>
|
||||
<entry><literal>'485'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(485,'PL999')</entry>
|
||||
<entry><ProgramListing> '+485' </ProgramListing></entry>
|
||||
<entry><literal>'+485'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(485,'SG999')</entry>
|
||||
<entry><ProgramListing> '+485' </ProgramListing></entry>
|
||||
<entry><literal>'+485'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(-485,'SG999')</entry>
|
||||
<entry><ProgramListing> '-485' </ProgramListing></entry>
|
||||
<entry><literal>'-485'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(-485,'9SG99')</entry>
|
||||
<entry><ProgramListing> '4-85' </ProgramListing></entry>
|
||||
<entry><literal>'4-85'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(-485,'999PR')</entry>
|
||||
<entry><ProgramListing> '<485>' </ProgramListing></entry>
|
||||
<entry><literal>'<485>'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(485,'L999')</entry>
|
||||
<entry><ProgramListing> 'DM 485' </ProgramListing></entry>
|
||||
<entry><literal>'DM 485</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(485,'RN')</entry>
|
||||
<entry><ProgramListing> ' CDLXXXV' </ProgramListing></entry>
|
||||
<entry><literal>' CDLXXXV'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(485,'FMRN')</entry>
|
||||
<entry><ProgramListing> 'CDLXXXV' </ProgramListing></entry>
|
||||
<entry><literal>'CDLXXXV'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(5.2,'FMRN')</entry>
|
||||
<entry><ProgramListing> 'V' </ProgramListing></entry>
|
||||
<entry><literal>V</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(482,'999th')</entry>
|
||||
<entry><ProgramListing> ' 482nd' </ProgramListing></entry>
|
||||
<entry><literal>' 482nd'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(485, '"Good number:"999')</entry>
|
||||
<entry><ProgramListing> 'Good number: 485' </ProgramListing></entry>
|
||||
<entry><literal>'Good number: 485'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(485.8,'"Pre-decimal:"999" Post-decimal:" .999')</entry>
|
||||
<entry><ProgramListing> 'Pre-decimal: 485 Post-decimal: .800' </ProgramListing></entry>
|
||||
<entry><literal>'Pre-decimal: 485 Post-decimal: .800'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(12,'99V999')</entry>
|
||||
<entry><ProgramListing> ' 12000' </ProgramListing></entry>
|
||||
<entry><literal>' 12000'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(12.4,'99V999')</entry>
|
||||
<entry><ProgramListing> ' 12400' </ProgramListing></entry>
|
||||
<entry><literal>' 12400'</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>to_char(12.45, '99V9')</entry>
|
||||
<entry><ProgramListing> ' 125' </ProgramListing></entry>
|
||||
<entry><literal>' 125'</literal></entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
||||
|
||||
<sect1>
|
||||
<title>Geometric Functions</title>
|
||||
|
||||
@ -1030,106 +1094,97 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry> area(box) </entry>
|
||||
<entry>area(object)</entry>
|
||||
<entry>float8</entry>
|
||||
<entry> area of box </entry>
|
||||
<entry> area('((0,0),(1,1))'::box) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> area(circle) </entry>
|
||||
<entry> float8 </entry>
|
||||
<entry> area of circle </entry>
|
||||
<entry> area('((0,0),2.0)'::circle) </entry>
|
||||
<entry>area of circle, ...</entry>
|
||||
<entry>area(box '((0,0),(1,1))')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>box(box,box)</entry>
|
||||
<entry>box</entry>
|
||||
<entry>boxes to intersection box</entry>
|
||||
<entry> box('((0,0),(1,1))','((0.5,0.5),(2,2))') </entry>
|
||||
<entry>box(box '((0,0),(1,1))',box '((0.5,0.5),(2,2))')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> center(box) </entry>
|
||||
<entry>center(object)</entry>
|
||||
<entry>point</entry>
|
||||
<entry> center of object </entry>
|
||||
<entry> center('((0,0),(1,2))'::box) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> center(circle) </entry>
|
||||
<entry> point </entry>
|
||||
<entry> center of object </entry>
|
||||
<entry> center('((0,0),2.0)'::circle) </entry>
|
||||
<entry>center of circle, ...</entry>
|
||||
<entry>center(box '((0,0),(1,2))')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>diameter(circle)</entry>
|
||||
<entry>float8</entry>
|
||||
<entry>diameter of circle</entry>
|
||||
<entry> diameter('((0,0),2.0)'::circle) </entry>
|
||||
<entry>diameter(circle '((0,0),2.0)')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>height(box)</entry>
|
||||
<entry>float8</entry>
|
||||
<entry>vertical size of box</entry>
|
||||
<entry> height('((0,0),(1,1))'::box) </entry>
|
||||
<entry>height(box '((0,0),(1,1))')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>isclosed(path)</entry>
|
||||
<entry>bool</entry>
|
||||
<entry>a closed path?</entry>
|
||||
<entry> isclosed('((0,0),(1,1),(2,0))'::path) </entry>
|
||||
<entry>isclosed(path '((0,0),(1,1),(2,0))')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>isopen(path)</entry>
|
||||
<entry>bool</entry>
|
||||
<entry>an open path?</entry>
|
||||
<entry> isopen('[(0,0),(1,1),(2,0)]'::path) </entry>
|
||||
<entry>isopen(path '[(0,0),(1,1),(2,0)]')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> length(lseg) </entry>
|
||||
<entry>length(object)</entry>
|
||||
<entry>float8</entry>
|
||||
<entry> length of line segment </entry>
|
||||
<entry> length('((-1,0),(1,0))'::lseg) </entry>
|
||||
<entry>length of line segment, ...</entry>
|
||||
<entry>length(path '((-1,0),(1,0))')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>length(path)</entry>
|
||||
<entry>float8</entry>
|
||||
<entry>length of path</entry>
|
||||
<entry> length('((0,0),(1,1),(2,0))'::path) </entry>
|
||||
<entry>length(path '((0,0),(1,1),(2,0))')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>pclose(path)</entry>
|
||||
<entry>path</entry>
|
||||
<entry>convert path to closed</entry>
|
||||
<entry> popen('[(0,0),(1,1),(2,0)]'::path) </entry>
|
||||
<entry>popen(path '[(0,0),(1,1),(2,0)]')</entry>
|
||||
</row>
|
||||
<!--
|
||||
Not defined by this name. Implements the intersection operator '#'
|
||||
<row>
|
||||
<entry>point(lseg,lseg)</entry>
|
||||
<entry>point</entry>
|
||||
<entry>intersection</entry>
|
||||
<entry> point('((-1,0),(1,0))'::lseg,'((-2,-2),(2,2))'::lseg) </entry>
|
||||
<entry>point(lseg '((-1,0),(1,0))',lseg '((-2,-2),(2,2))')</entry>
|
||||
</row>
|
||||
-->
|
||||
<row>
|
||||
<entry> points(path) </entry>
|
||||
<entry>npoint(path)</entry>
|
||||
<entry>int4</entry>
|
||||
<entry>number of points</entry>
|
||||
<entry> points('[(0,0),(1,1),(2,0)]'::path) </entry>
|
||||
<entry>npoints(path '[(0,0),(1,1),(2,0)]')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>popen(path)</entry>
|
||||
<entry>path</entry>
|
||||
<entry> convert path to open </entry>
|
||||
<entry> popen('((0,0),(1,1),(2,0))'::path) </entry>
|
||||
<entry>convert path to open path</entry>
|
||||
<entry>popen(path '((0,0),(1,1),(2,0))')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>radius(circle)</entry>
|
||||
<entry>float8</entry>
|
||||
<entry>radius of circle</entry>
|
||||
<entry> radius('((0,0),2.0)'::circle) </entry>
|
||||
<entry>radius(circle '((0,0),2.0)')</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>width(box)</entry>
|
||||
<entry>float8</entry>
|
||||
<entry>horizontal size</entry>
|
||||
<entry> width('((0,0),(1,1))'::box) </entry>
|
||||
<entry>width(box '((0,0),(1,1))')</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
|
@ -1,28 +1,28 @@
|
||||
<Chapter Id="odbc">
|
||||
<DocInfo>
|
||||
<AuthorGroup>
|
||||
<Author>
|
||||
<FirstName>Tim</FirstName>
|
||||
<Surname>Goeke</Surname>
|
||||
</Author>
|
||||
<Author>
|
||||
<FirstName>Thomas</FirstName>
|
||||
<Surname>Lockhart</Surname>
|
||||
</Author>
|
||||
</AuthorGroup>
|
||||
<Date>1998-10-21</Date>
|
||||
</DocInfo>
|
||||
<chapter id="odbc">
|
||||
<docinfo>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Tim</firstname>
|
||||
<surname>Goeke</surname>
|
||||
</author>
|
||||
<author>
|
||||
<firstname>Thomas</firstname>
|
||||
<surname>Lockhart</surname>
|
||||
</author>
|
||||
</authorgroup>
|
||||
<date>1998-10-21</date>
|
||||
</docinfo>
|
||||
|
||||
<Title>ODBC Interface</Title>
|
||||
<title>ODBC Interface</title>
|
||||
|
||||
<Note>
|
||||
<Para>
|
||||
<note>
|
||||
<para>
|
||||
Background information originally by
|
||||
<ULink url="mailto:tgoeke@xpressway.com">Tim Goeke</ULink>
|
||||
</Para>
|
||||
</Note>
|
||||
<ulink url="mailto:tgoeke@xpressway.com">Tim Goeke</ulink>
|
||||
</para>
|
||||
</note>
|
||||
|
||||
<Para>
|
||||
<para>
|
||||
<acronym>ODBC</acronym> (Open Database Connectivity) is an abstract
|
||||
<acronym>API</acronym>
|
||||
which allows you to write applications which can interoperate
|
||||
@ -31,42 +31,43 @@ with various <acronym>RDBMS</acronym> servers.
|
||||
between frontend applications and database servers,
|
||||
allowing a user or developer to write applications which are
|
||||
transportable between servers from different manufacturers..
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<Sect1>
|
||||
<Title>Background</Title>
|
||||
<sect1>
|
||||
<title>Background</title>
|
||||
|
||||
<Para>
|
||||
<para>
|
||||
The <acronym>ODBC</acronym> <acronym>API</acronym> matches up
|
||||
on the backend to an <acronym>ODBC</acronym>-compatible data source.
|
||||
This could be anything from a text file to an Oracle or
|
||||
<productname>Postgres</productname> <acronym>RDBMS</acronym>.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<Para>
|
||||
<para>
|
||||
The backend access come from <acronym>ODBC</acronym> drivers,
|
||||
or vendor specifc drivers that
|
||||
allow data access. <productname>psqlODBC</productname> is such a driver,
|
||||
along with others that are
|
||||
available, such as the OpenLink <acronym>ODBC</acronym> drivers.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<Para>
|
||||
<para>
|
||||
Once you write an <acronym>ODBC</acronym> application,
|
||||
you <emphasis>should</emphasis> be able to connect to <emphasis>any</emphasis>
|
||||
back end database, regardless of the vendor, as long as the database schema
|
||||
is the same.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<Para>
|
||||
<para>
|
||||
For example. you could have <productname>MS SQL Server</productname>
|
||||
and <productname>Postgres</productname> servers which have
|
||||
exactly the same data. Using <acronym>ODBC</acronym>,
|
||||
your Windows application would make exactly the
|
||||
same calls and the back end data source would look the same (to the Windows
|
||||
app).
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<!--
|
||||
<para>
|
||||
<ulink url="http://www.insightdist.com/">Insight Distributors</ulink>
|
||||
provides active and ongoing
|
||||
@ -75,45 +76,46 @@ They provide a
|
||||
<ulink url="http://www.insightdist.com/psqlodbc/"><acronym>FAQ</acronym></ulink>,
|
||||
ongoing development on the code base, and actively participate on the
|
||||
<ulink url="mailto:interfaces@postgresql.org">interfaces mailing list</ulink>.
|
||||
</Para>
|
||||
</para>
|
||||
-->
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title><productname>Windows</productname> Applications</title>
|
||||
|
||||
<Para>
|
||||
<para>
|
||||
In the real world, differences in drivers and the level of
|
||||
<acronym>ODBC</acronym> support
|
||||
lessens the potential of <acronym>ODBC</acronym>:
|
||||
|
||||
<ItemizedList Mark="bullet" Spacing="compact">
|
||||
<ListItem>
|
||||
<Para>
|
||||
<itemizedlist spacing="compact" mark="bullet">
|
||||
<listitem>
|
||||
<para>
|
||||
Access, Delphi, and Visual Basic all support <acronym>ODBC</acronym> directly.
|
||||
</Para>
|
||||
</para>
|
||||
</listitem>
|
||||
<ListItem>
|
||||
<Para>
|
||||
<listitem>
|
||||
<para>
|
||||
Under C++, such as Visual C++,
|
||||
you can use the C++ <acronym>ODBC</acronym> <acronym>API</acronym>.
|
||||
</Para>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<ListItem>
|
||||
<Para>
|
||||
<listitem>
|
||||
<para>
|
||||
In Visual C++, you can use the CRecordSet class, which wraps the
|
||||
<acronym>ODBC</acronym> <acronym>API</acronym>
|
||||
set within an MFC 4.2 class. This is the easiest route if you are doing
|
||||
Windows C++ development under Windows NT.
|
||||
</Para>
|
||||
</para>
|
||||
</listitem>
|
||||
</ItemizedList>
|
||||
</Para>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
<title>Writing Applications</title>
|
||||
|
||||
<Para>
|
||||
<para>
|
||||
<quote>
|
||||
If I write an application for <productname>Postgres</productname>
|
||||
can I write it using <acronym>ODBC</acronym> calls
|
||||
@ -121,31 +123,31 @@ to the <productname>Postgres</productname> server,
|
||||
or is that only when another database program
|
||||
like MS SQL Server or Access needs to access the data?</quote>
|
||||
</para>
|
||||
<Para>
|
||||
<para>
|
||||
The <acronym>ODBC</acronym> <acronym>API</acronym>
|
||||
is the way to go.
|
||||
For <productname>Visual C++</productname> coding you can find out more at
|
||||
Microsoft's web site or in your <productname>VC++</productname> docs.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<Para>
|
||||
<para>
|
||||
Visual Basic and the other RAD tools have Recordset objects
|
||||
that use <acronym>ODBC</acronym>
|
||||
directly to access data. Using the data-aware controls, you can quickly
|
||||
link to the <acronym>ODBC</acronym> back end database
|
||||
(<Emphasis>very</Emphasis> quickly).
|
||||
</Para>
|
||||
(<emphasis>very</emphasis> quickly).
|
||||
</para>
|
||||
|
||||
<Para>
|
||||
<para>
|
||||
Playing around with MS Access will help you sort this out. Try using
|
||||
<literal>File->Get External Data</literal>.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<Tip>
|
||||
<Para>
|
||||
<tip>
|
||||
<para>
|
||||
You'll have to set up a DSN first.
|
||||
</Para>
|
||||
</Tip>
|
||||
</para>
|
||||
</tip>
|
||||
|
||||
<!--
|
||||
<Para>
|
||||
@ -169,7 +171,7 @@ supported on at least some platforms.
|
||||
demonstrated under Linux with <productname>Postgres</productname> v6.4
|
||||
using the <productname>psqlODBC</productname>
|
||||
driver contained in the <productname>Postgres</productname> distribution.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
<title>Building the Driver</title>
|
||||
@ -189,13 +191,13 @@ Instructions for installing <productname>iodbc</productname>
|
||||
document, but there is a <filename>README</filename>
|
||||
that can be found inside the <productname>iodbc</productname> compressed
|
||||
.shar file that should explain how to get it up and running.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Having said that, any driver manager that you can find for your platform
|
||||
should support the <productname>psqlODBC</productname> driver
|
||||
or any <acronym>ODBC</acronym> driver.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The Unix configuration files for <productname>psqlODBC</productname>
|
||||
@ -207,7 +209,7 @@ a simple process to build the driver on the supported platforms. Currently
|
||||
these include Linux and FreeBSD but we are hoping other users will
|
||||
contribute the necessary information to quickly expand the number of
|
||||
platforms for which the driver can be built.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
There are actually two separate methods to build the driver depending on
|
||||
@ -219,7 +221,7 @@ The standalone installation is convenient if you have <acronym>ODBC</acronym>
|
||||
client applications on multiple, heterogeneous platforms. The integrated
|
||||
installation is convenient when the target client is the same as the
|
||||
server, or when the client and server have similar runtime configurations.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Specifically if you have received the <productname>psqlODBC</productname>
|
||||
@ -232,14 +234,14 @@ of the <productname>Postgres</productname> distribution
|
||||
If you received the driver as a standalone package than you will run
|
||||
configure and make from the directory in which you unpacked the
|
||||
driver source.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<procedure>
|
||||
<title>Integrated Installation</title>
|
||||
|
||||
<para>
|
||||
This installation procedure is appropriate for an integrated installation.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<step performance="required">
|
||||
<para>
|
||||
@ -250,7 +252,7 @@ command-line argument for <application>src/configure</application>:
|
||||
% ./configure --with-odbc
|
||||
% make
|
||||
</programlisting>
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
<step performance="required">
|
||||
<para>
|
||||
@ -259,7 +261,7 @@ Rebuild the <productname>Postgres</productname> distribution:
|
||||
<programlisting>
|
||||
% make install
|
||||
</programlisting>
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
@ -274,7 +276,7 @@ as
|
||||
<programlisting>
|
||||
% make ODBCINST=<replaceable>filename</replaceable> install
|
||||
</programlisting>
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<procedure>
|
||||
<title>Pre-v6.4 Integrated Installation</title>
|
||||
@ -284,13 +286,13 @@ If you have a <productname>Postgres</productname> installation older than
|
||||
v6.4, you have the original source tree available,
|
||||
and you want to use the newest version of the <acronym>ODBC</acronym>
|
||||
driver, then you may want to try this form of installation.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<step performance="required">
|
||||
<para>
|
||||
Copy the output tar file to your target system and unpack it into a
|
||||
clean directory.
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
<step performance="required">
|
||||
<para>
|
||||
@ -302,7 +304,7 @@ sources, type:
|
||||
% make
|
||||
% make POSTGRESDIR=<replaceable class="parameter">PostgresTopDir</replaceable> install
|
||||
</programlisting>
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
|
||||
<step performance="optional">
|
||||
@ -313,7 +315,7 @@ then you can specify various destinations explicitly:
|
||||
<programlisting>
|
||||
% make BINDIR=bindir LIBDIR=libdir HEADERDIR=headerdir ODBCINST=instfile install
|
||||
</programlisting>
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
@ -326,7 +328,7 @@ A standalone installation is not integrated with or built on the normal
|
||||
for building the <acronym>ODBC</acronym> driver for multiple, heterogeneous
|
||||
clients who do not have a locally-installed <productname>Postgres</productname>
|
||||
source tree.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The default location for libraries and headers
|
||||
@ -336,7 +338,7 @@ There is another system wide configuration file that gets installed
|
||||
as <filename>/share/odbcinst.ini</filename> (if <filename>/share</filename>
|
||||
exists) or as <filename>/etc/odbcinst.ini</filename>
|
||||
(if <filename>/share</filename> does not exist).
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<note>
|
||||
<para>
|
||||
@ -346,7 +348,7 @@ Most installation steps for <productname>Postgres</productname> do not
|
||||
have this requirement, and you can choose another destination which
|
||||
is writable by your non-root <productname>Postgres</productname> superuser
|
||||
account instead.
|
||||
</Para>
|
||||
</para>
|
||||
</note>
|
||||
|
||||
<step performance="required">
|
||||
@ -355,7 +357,7 @@ The standalone installation distribution can be built from the
|
||||
<productname>Postgres</productname> distribution or may be obtained from
|
||||
<ulink url="http://www.insightdist.com/psqlodbc">Insight Distributors</ulink>,
|
||||
the current maintainers of the non-Unix sources.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Copy the zip
|
||||
@ -368,7 +370,7 @@ unzip it with the command
|
||||
The <option>-a</option> option
|
||||
is necessary to get rid of <acronym>DOS</acronym>
|
||||
CR/LF pairs in the source files.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you have the gzipped tar package than simply run
|
||||
@ -376,7 +378,7 @@ If you have the gzipped tar package than simply run
|
||||
<programlisting>
|
||||
tar -xzf <replaceable>packagename</replaceable>
|
||||
</programlisting>
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<substeps>
|
||||
|
||||
@ -384,14 +386,14 @@ tar -xzf <replaceable>packagename</replaceable>
|
||||
<para>
|
||||
To create a tar file for a complete standalone installation
|
||||
from the main <productname>Postgres</productname> source tree:
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
</substeps>
|
||||
</step>
|
||||
<step performance="required">
|
||||
<para>
|
||||
Configure the main <productname>Postgres</productname> distribution.
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
<step performance="required">
|
||||
<para>
|
||||
@ -401,21 +403,21 @@ Create the tar file:
|
||||
% cd interfaces/odbc
|
||||
% make standalone
|
||||
</programlisting>
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
|
||||
<step performance="required">
|
||||
<para>
|
||||
Copy the output tar file to your target system. Be sure to transfer as
|
||||
a binary file if using <application>ftp</application>.
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
|
||||
<step performance="required">
|
||||
<para>
|
||||
Unpack the tar file into a clean
|
||||
directory.
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
|
||||
<step performance="required">
|
||||
@ -425,13 +427,14 @@ Configure the standalone installation:
|
||||
<programlisting>
|
||||
% ./configure
|
||||
</programlisting>
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The configuration can be done with options:
|
||||
|
||||
<programlisting>
|
||||
% ./configure --prefix=<replaceable>rootdir</replaceable> --with-odbc=<replaceable>inidir</replaceable>
|
||||
% ./configure --prefix=<replaceable>rootdir</replaceable>
|
||||
--with-odbc=<replaceable>inidir</replaceable>
|
||||
</programlisting>
|
||||
|
||||
where <option>--prefix</option> installs the libraries and headers in
|
||||
@ -439,7 +442,7 @@ the directories <filename><replaceable>rootdir</replaceable>/lib</filename> and
|
||||
<filename><replaceable>rootdir</replaceable>/include/iodbc</filename>, and
|
||||
<option>--with-odbc</option> installs <filename>odbcinst.ini</filename> in the
|
||||
specified directory.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Note that both of these options can also be used from the integrated build
|
||||
@ -448,7 +451,7 @@ but be aware that <emphasis>when used in the integrated build</emphasis>
|
||||
your <productname>Postgres</productname> installation.
|
||||
<option>--with-odbc</option> applies only to the configuration file
|
||||
<filename>odbcinst.ini</filename>.
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
|
||||
<step performance="required">
|
||||
@ -458,7 +461,7 @@ Compile and link the source code:
|
||||
<programlisting>
|
||||
% make ODBCINST=<replaceable>instdir</replaceable>
|
||||
</programlisting>
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
You can also override the default location for installation on the
|
||||
@ -469,7 +472,7 @@ that specifies its installation directory will probably cause you
|
||||
headaches. It is safest simply to allow the driver to install the
|
||||
odbcinst.ini file in the default directory or the directory you specified
|
||||
on the './configure' command line with --with-odbc.
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
|
||||
<!--
|
||||
@ -488,7 +491,7 @@ Install the source code:
|
||||
<programlisting>
|
||||
% make POSTGRESDIR=<replaceable>targettree</replaceable> install
|
||||
</programlisting>
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To override the library and header installation directories separately
|
||||
@ -500,15 +503,17 @@ Overriding <envar>POSTGRESDIR</envar> on the make command line will cause
|
||||
<envar>LIBDIR</envar> and <envar>HEADERDIR</envar>
|
||||
to be rooted at the new directory you specify.
|
||||
<envar>ODBCINST</envar> is independent of <envar>POSTGRESDIR</envar>.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Here is how you would specify the various destinations explicitly:
|
||||
|
||||
<programlisting>
|
||||
% make BINDIR=<replaceable>bindir</replaceable> LIBDIR=<replaceable>libdir</replaceable> HEADERDIR=<replaceable>headerdir</replaceable> install
|
||||
% make BINDIR=<replaceable>bindir</replaceable>
|
||||
LIBDIR<replaceable>>libdi</replaceable>>
|
||||
HEADERDIR=<replaceable>headerdir</replaceable> install
|
||||
</programlisting>
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For example, typing
|
||||
@ -522,7 +527,7 @@ For example, typing
|
||||
will cause the libraries and headers to be installed in the directories
|
||||
<filename>/opt/psqlodbc/lib</filename>
|
||||
and <filename>/opt/psqlodbc/include/iodbc</filename> respectively.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The command
|
||||
@ -534,7 +539,7 @@ The command
|
||||
should cause the libraries to be installed in /opt/psqlodbc/lib and
|
||||
the headers in /usr/local/include/iodbc. If this doesn't work as
|
||||
expected please contact one of the maintainers.
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
@ -548,7 +553,7 @@ expected please contact one of the maintainers.
|
||||
for the <productname>psqlODBC</productname> driver.
|
||||
The file uses conventions typical for <productname>Windows</productname>
|
||||
Registry files, but despite this restriction can be made to work.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <filename>.odbc.ini</filename> file has three required sections.
|
||||
@ -573,14 +578,14 @@ Remember that the <productname>Postgres</productname> database name is
|
||||
usually a single word, without path names of any sort.
|
||||
The <productname>Postgres</productname> server manages the actual access
|
||||
to the database, and you need only specify the name from the client.
|
||||
</Para>
|
||||
</para>
|
||||
</tip>
|
||||
|
||||
Other entries may be inserted to control the format of the display.
|
||||
The third required section is <literal>[ODBC]</literal>
|
||||
which must contain the <literal>InstallDir</literal> keyword
|
||||
and which may contain other options.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Here is an example <filename>.odbc.ini</filename> file,
|
||||
@ -621,7 +626,7 @@ Driver = /opt/postgres/current/lib/libpsqlodbc.so
|
||||
[ODBC]
|
||||
InstallDir = /opt/applix/axdata/axshlib
|
||||
</programlisting>
|
||||
</Para>
|
||||
</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>ApplixWare</title>
|
||||
@ -634,17 +639,17 @@ InstallDir = /opt/applix/axdata/axshlib
|
||||
in order for it to
|
||||
be able to access the <productname>Postgres</productname>
|
||||
<acronym>ODBC</acronym> software drivers.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<procedure>
|
||||
<title>Enabling ApplixWare Database Access</title>
|
||||
|
||||
<para>
|
||||
These instructions are for the 4.4.1 release of
|
||||
These instructions are for the <literal>4.4.2</literal> release of
|
||||
<productname>ApplixWare</productname> on <productname>Linux</productname>.
|
||||
Refer to the <citetitle>Linux Sys Admin</citetitle> on-line book
|
||||
for more detailed information.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<step performance="required">
|
||||
<para>
|
||||
@ -655,12 +660,12 @@ find <filename>libodbc.so</filename>
|
||||
This library is included with the ApplixWare distribution,
|
||||
but <filename>axnet.cnf</filename> needs to be modified to point to the
|
||||
correct location.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
As root, edit the file
|
||||
<filename><replaceable>applixroot</replaceable>/applix/axdata/axnet.cnf</filename>.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<substeps>
|
||||
|
||||
@ -672,7 +677,7 @@ find the line that starts with
|
||||
<programlisting>
|
||||
#libFor elfodbc /ax/<replaceable>...</replaceable>
|
||||
</programlisting>
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
<step performance="required">
|
||||
<para>
|
||||
@ -684,9 +689,12 @@ libFor elfodbc <replaceable>applixroot</replaceable>/applix/axdata/axshlib/lib
|
||||
|
||||
which will tell elfodbc to look in this directory
|
||||
for the <acronym>ODBC</acronym> support library.
|
||||
If you have installed applix somewhere else,
|
||||
Typically <productname>Applix</productname> is installed in
|
||||
<filename>/opt</filename> so the full path would be
|
||||
<filename>/opt/applix/axdata/axshlib/lib</filename>,
|
||||
but if you have installed applix somewhere else then
|
||||
change the path accordingly.
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
</substeps>
|
||||
</step>
|
||||
@ -702,7 +710,7 @@ TextAsLongVarchar=0
|
||||
|
||||
to the database-specific portion of <filename>.odbc.ini</filename>
|
||||
so that text fields will not be shown as <literal>**BLOB**</literal>.
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
@ -712,20 +720,20 @@ so that text fields will not be shown as <literal>**BLOB**</literal>.
|
||||
<step performance="required">
|
||||
<para>
|
||||
Bring up <application>Applix Data</application>
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
|
||||
<step performance="required">
|
||||
<para>
|
||||
Select the <productname>Postgres</productname> database of interest.
|
||||
</Para>
|
||||
</para>
|
||||
|
||||
<substeps>
|
||||
|
||||
<step performance="required">
|
||||
<para>
|
||||
Select <command>Query->Choose Server</command>.
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
<step performance="required">
|
||||
<para>
|
||||
@ -734,19 +742,19 @@ The database you configured in <filename>.odbc.ini</filename>
|
||||
should be shown. Make sure that the <option>Host: field</option>
|
||||
is empty (if it is not, axnet will try to contact axnet on another machine
|
||||
to look for the database).
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
<step performance="required">
|
||||
<para>
|
||||
Select the database in the box that was launched by <command>Browse</command>,
|
||||
then click <command>OK</command>.
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
<step performance="required">
|
||||
<para>
|
||||
Enter username and password in the login identification dialog,
|
||||
and click <command>OK</command>.
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
</substeps>
|
||||
|
||||
@ -755,20 +763,20 @@ Enter username and password in the login identification dialog,
|
||||
in the lower left corner of the
|
||||
data window. If you get an error dialog box, see the debugging section
|
||||
below.
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
<step performance="required">
|
||||
<para>
|
||||
The 'Ready' message will appear in the lower left corner of the data
|
||||
window. This indicates that you can now enter queries.
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
<step performance="required">
|
||||
<para>
|
||||
Select a table from Query->Choose tables, and then select Query->Query
|
||||
to access the database. The first 50 or so rows from the table should
|
||||
appear.
|
||||
</Para>
|
||||
</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
@ -790,7 +798,7 @@ Cannot launch gateway on server
|
||||
<para>
|
||||
<literal>elfodbc</literal> can't find <filename>libodbc.so</filename>.
|
||||
Check your <filename>axnet.cnf</filename>.
|
||||
</Para>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -803,7 +811,7 @@ IM003::[iODBC][Driver Manager]Specified driver could not be loaded
|
||||
<para>
|
||||
<filename>libodbc.so</filename> cannot find the driver listed in
|
||||
<filename>.odbc.ini</filename>. Verify the settings.
|
||||
</Para>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -818,7 +826,7 @@ Server: Broken Pipe
|
||||
problem. You might not have an up-to-date version
|
||||
of the <productname>Postgres</productname>
|
||||
<acronym>ODBC</acronym> package.
|
||||
</Para>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -834,7 +842,7 @@ The September release of ApplixWare v4.4.1 (the first release with official
|
||||
exceed eight (8) characters in length.
|
||||
Problem description ontributed by
|
||||
<ulink url="mailto:scampbell@lear.com">Steve Campbell</ulink>.
|
||||
</Para>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -1074,7 +1082,7 @@ on the basic code for other platforms which already support
|
||||
</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</Chapter>
|
||||
</chapter>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
@ -1088,7 +1096,7 @@ 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-catalogs:("/usr/lib/sgml/CATALOG")
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
-->
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/abort.sgml,v 1.6 2000/03/26 18:32:27 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/abort.sgml,v 1.7 2000/03/27 17:14:42 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -129,7 +129,7 @@ ABORT WORK;
|
||||
SQL92
|
||||
</title>
|
||||
<para>
|
||||
This command is a <productname>PostgreSQL</productname> extension present
|
||||
This command is a <productname>Postgres</productname> extension present
|
||||
for historical reasons. <command>ROLLBACK</command> is the <acronym>SQL92</acronym>
|
||||
equivalent command.
|
||||
</para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_table.sgml,v 1.10 2000/01/29 16:58:27 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_table.sgml,v 1.11 2000/03/27 17:14:42 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -247,7 +247,7 @@ ALTER TABLE distributors RENAME TO suppliers;
|
||||
|
||||
<para>
|
||||
SQL92 specifies some additional capabilities for <command>ALTER TABLE</command>
|
||||
statement which are not yet directly supported by <productname>PostgreSQL</productname>:
|
||||
statement which are not yet directly supported by <productname>Postgres</productname>:
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
@ -308,8 +308,8 @@ DROP TABLE temp;
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The clauses to rename columns and tables are <productname>PostgreSQL</productname>
|
||||
extensions. SQL92 does not provide for them.
|
||||
The clauses to rename columns and tables are <productname>Postgres</productname>
|
||||
extensions from SQL92.
|
||||
</para>
|
||||
|
||||
</refsect2>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_user.sgml,v 1.10 2000/01/14 22:11:32 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_user.sgml,v 1.11 2000/03/27 17:14:42 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -138,7 +138,7 @@ ERROR: ALTER USER: user "username" does not exist
|
||||
</title>
|
||||
<para>
|
||||
<command>ALTER USER</command> is used to change the attributes of a user's
|
||||
<productname>PostgreSQL</productname> account. Only a database superuser
|
||||
<productname>Postgres</productname> account. Only a database superuser
|
||||
can change privileges and password expiration with this command. Ordinary
|
||||
users can only change their own password.
|
||||
</para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/begin.sgml,v 1.10 2000/01/29 16:58:27 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/begin.sgml,v 1.11 2000/03/27 17:14:42 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -95,7 +95,7 @@ NOTICE: BEGIN: already a transaction in progress
|
||||
</title>
|
||||
|
||||
<para>
|
||||
By default, <productname>PostgreSQL</productname> executes transactions
|
||||
By default, <productname>Postgres</productname> executes transactions
|
||||
in <firstterm>unchained mode</firstterm>
|
||||
(also known as <quote>autocommit</quote> in other database
|
||||
systems).
|
||||
@ -116,7 +116,7 @@ NOTICE: BEGIN: already a transaction in progress
|
||||
|
||||
<para>
|
||||
The default transaction isolation level in
|
||||
<productname>PostgreSQL</productname>
|
||||
<productname>Postgres</productname>
|
||||
is READ COMMITTED, where queries inside the transaction see only changes
|
||||
committed before query execution. So, you have to use
|
||||
<command>SET TRANSACTION ISOLATION LEVEL SERIALIZABLE</command>
|
||||
@ -128,7 +128,7 @@ NOTICE: BEGIN: already a transaction in progress
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If the transaction is committed, <productname>PostgreSQL</productname>
|
||||
If the transaction is committed, <productname>Postgres</productname>
|
||||
will ensure either that all updates are done or else that none of
|
||||
them are done. Transactions have the standard <acronym>ACID</acronym>
|
||||
(atomic, consistent, isolatable, and durable) property.
|
||||
@ -185,7 +185,7 @@ BEGIN WORK;
|
||||
|
||||
<para>
|
||||
<command>BEGIN</command>
|
||||
is a <productname>PostgreSQL</productname> language extension.
|
||||
is a <productname>Postgres</productname> language extension.
|
||||
There is no explicit <command>BEGIN</command>
|
||||
command in <acronym>SQL92</acronym>;
|
||||
transaction initiation is always implicit and it terminates either
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_database.sgml,v 1.12 2000/03/26 18:32:27 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_database.sgml,v 1.13 2000/03/27 17:14:42 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -157,7 +157,7 @@ CREATE DATABASE <replaceable class="PARAMETER">name</replaceable> [ WITH LOCATIO
|
||||
</title>
|
||||
<para>
|
||||
<command>CREATE DATABASE</command> creates a new
|
||||
<productname>PostgreSQL</productname> database.
|
||||
<productname>Postgres</productname> database.
|
||||
The creator becomes the owner of the new database.
|
||||
</para>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.12 2000/03/26 18:32:27 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.13 2000/03/27 17:14:42 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -20,26 +20,24 @@ Postgres documentation
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<refsynopsisdivinfo>
|
||||
<date>1999-10-02</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsynopsisdivinfo>
|
||||
<synopsis>
|
||||
CREATE FUNCTION <replaceable class="parameter">name</replaceable> ( [ <replaceable class="parameter">ftype</replaceable> [, ...] ] )
|
||||
RETURNS <replaceable class="parameter">rtype</replaceable>
|
||||
[ WITH ( <replaceable class="parameter">attribute</replaceable> [, ...] ) ]
|
||||
AS <replaceable class="parameter">definition</replaceable>
|
||||
LANGUAGE '<replaceable class="parameter">langname</replaceable>'
|
||||
|
||||
|
||||
[ WITH ( <replaceable class="parameter">attribute</replaceable> [, ...] ) ]
|
||||
CREATE FUNCTION <replaceable class="parameter">name</replaceable> ( [ <replaceable class="parameter">ftype</replaceable> [, ...] ] )
|
||||
RETURNS <replaceable class="parameter">rtype</replaceable>
|
||||
[ WITH ( <replaceable class="parameter">attribute</replaceable> [, ...] ) ]
|
||||
AS <replaceable class="parameter">obj_file</replaceable> , <replaceable class="parameter">link_symbol</replaceable>
|
||||
LANGUAGE 'C'
|
||||
[ WITH ( <replaceable class="parameter">attribute</replaceable> [, ...] ) ]
|
||||
</synopsis>
|
||||
|
||||
<refsect2 id="R2-SQL-CREATEFUNCTION-1">
|
||||
<refsect2info>
|
||||
<date>1998-09-09</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Inputs
|
||||
@ -143,7 +141,7 @@ CREATE FUNCTION <replaceable class="parameter">name</replaceable> ( [ <replaceab
|
||||
|
||||
<refsect2 id="R2-SQL-CREATEFUNCTION-2">
|
||||
<refsect2info>
|
||||
<date>1998-09-09</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Outputs
|
||||
@ -168,7 +166,7 @@ CREATE
|
||||
|
||||
<refsect1 id="R1-SQL-CREATEFUNCTION-1">
|
||||
<refsect1info>
|
||||
<date>1998-09-09</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsect1info>
|
||||
<title>
|
||||
Description
|
||||
@ -177,28 +175,29 @@ CREATE
|
||||
<command>CREATE FUNCTION</command> allows a
|
||||
<productname>Postgres</productname> user
|
||||
to register a function
|
||||
with a database. Subsequently, this user is treated as the
|
||||
with a database. Subsequently, this user is considered the
|
||||
owner of the function.
|
||||
</para>
|
||||
|
||||
<refsect2 id="R2-SQL-CREATEFUNCTION-3">
|
||||
<refsect2info>
|
||||
<date>1998-09-09</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Notes
|
||||
</title>
|
||||
|
||||
<para>
|
||||
Refer to the chapter in
|
||||
the <citetitle>PostgreSQL Programmer's Guide</citetitle>
|
||||
on extending
|
||||
Refer to the chapter in the
|
||||
<citetitle>PostgreSQL Programmer's Guide</citetitle>
|
||||
on the topic of extending
|
||||
<productname>Postgres</productname> via functions
|
||||
for further information on writing external functions.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Use <command>DROP FUNCTION</command>
|
||||
to drop user-defined functions.
|
||||
to remove user-defined functions.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -209,6 +208,16 @@ CREATE
|
||||
C-language functions, however.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The full <acronym>SQL92</acronym> type syntax is allowed for
|
||||
input arguments and return value. However, some details of the
|
||||
type specification (e.g. the precision field for
|
||||
<type>numeric</type> types) are the responsibility of the
|
||||
underlying function implementation and are silently swallowed
|
||||
(e.g. not recognized or
|
||||
enforced) by the <command>CREATE FUNCTION</command> command.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Two <literal>internal</literal>
|
||||
functions cannot have the same C name without causing
|
||||
@ -317,7 +326,7 @@ Point * complex_to_point (Complex *z)
|
||||
|
||||
<refsect2 id="R2-SQL-CREATEFUNCTION-4">
|
||||
<refsect2info>
|
||||
<date>1998-04-15</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
SQL92
|
||||
@ -331,7 +340,7 @@ Point * complex_to_point (Complex *z)
|
||||
|
||||
<refsect2 id="R2-SQL-CREATEFUNCTION-5">
|
||||
<refsect2info>
|
||||
<date>1998-09-09</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
SQL/PSM
|
||||
@ -374,7 +383,7 @@ 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-catalogs:("/usr/lib/sgml/catalog")
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
-->
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_group.sgml,v 1.1 2000/01/14 22:11:32 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_group.sgml,v 1.2 2000/03/27 17:14:42 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -53,7 +53,7 @@ CREATE GROUP <replaceable class="PARAMETER">name</replaceable>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>SYSID</literal> clause can be used to choose
|
||||
the <productname>PostgreSQL</productname> group id of the new
|
||||
the <productname>Postgres</productname> group id of the new
|
||||
group. It is not necessary to do so, however.
|
||||
</para>
|
||||
<para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_operator.sgml,v 1.12 2000/03/18 18:03:12 tgl Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_operator.sgml,v 1.13 2000/03/27 17:14:42 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -20,7 +20,7 @@ Postgres documentation
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<refsynopsisdivinfo>
|
||||
<date>1999-07-20</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsynopsisdivinfo>
|
||||
<synopsis>
|
||||
CREATE OPERATOR <replaceable>name</replaceable> ( PROCEDURE = <replaceable class="parameter">func_name</replaceable>
|
||||
@ -32,7 +32,7 @@ CREATE OPERATOR <replaceable>name</replaceable> ( PROCEDURE = <replaceable class
|
||||
|
||||
<refsect2 id="R2-SQL-CREATEOPERATOR-1">
|
||||
<refsect2info>
|
||||
<date>1999-04-14</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Inputs
|
||||
@ -138,7 +138,7 @@ CREATE OPERATOR <replaceable>name</replaceable> ( PROCEDURE = <replaceable class
|
||||
|
||||
<refsect2 id="R2-SQL-CREATEOPERATOR-2">
|
||||
<refsect2info>
|
||||
<date>1999-04-14</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Outputs
|
||||
@ -162,7 +162,7 @@ CREATE
|
||||
|
||||
<refsect1 id="R1-SQL-CREATEOPERATOR-1">
|
||||
<refsect1info>
|
||||
<date>1999-04-14</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsect1info>
|
||||
<title>
|
||||
Description
|
||||
@ -248,13 +248,13 @@ CREATE
|
||||
Hence, the query optimizer could freely convert:
|
||||
|
||||
<programlisting>
|
||||
"0,0,1,1"::box >>> MYBOXES.description
|
||||
box '((0,0),(1,1))' >>> MYBOXES.description
|
||||
</programlisting>
|
||||
|
||||
to
|
||||
|
||||
<programlisting>
|
||||
MYBOXES.description <<< "0,0,1,1"::box
|
||||
MYBOXES.description <<< box '((0,0),(1,1))'
|
||||
</programlisting>
|
||||
</para>
|
||||
<para>
|
||||
@ -269,11 +269,11 @@ MYBOXES.description <<< "0,0,1,1"::box
|
||||
equal, !==.
|
||||
The negator link allows the query optimizer to simplify
|
||||
<programlisting>
|
||||
NOT MYBOXES.description === "0,0,1,1"::box
|
||||
NOT MYBOXES.description === box '((0,0),(1,1))'
|
||||
</programlisting>
|
||||
to
|
||||
<programlisting>
|
||||
MYBOXES.description !== "0,0,1,1"::box
|
||||
MYBOXES.description !== box '((0,0),(1,1))'
|
||||
</programlisting>
|
||||
</para>
|
||||
<para>
|
||||
@ -331,7 +331,7 @@ MYBOXES.description !== "0,0,1,1"::box
|
||||
The RESTRICT and JOIN options assist the query optimizer in estimating
|
||||
result sizes. If a clause of the form:
|
||||
<programlisting>
|
||||
MYBOXES.description <<< "0,0,1,1"::box
|
||||
MYBOXES.description <<< box '((0,0),(1,1))'
|
||||
</programlisting>
|
||||
is present in the qualification,
|
||||
then <productname>Postgres</productname> may have to
|
||||
@ -342,7 +342,7 @@ MYBOXES.description <<< "0,0,1,1"::box
|
||||
<command>CREATE FUNCTION</command>) which accepts arguments of the correct
|
||||
data types and returns a floating point number. The
|
||||
query optimizer simply calls this function, passing the
|
||||
parameter "0,0,1,1" and multiplies the result by the relation
|
||||
parameter <literal>((0,0),(1,1))</literal> and multiplies the result by the relation
|
||||
size to get the expected number of instances.
|
||||
</para>
|
||||
<para>
|
||||
@ -356,11 +356,11 @@ MYBOXES.description <<< "0,0,1,1"::box
|
||||
<para>
|
||||
The difference between the function
|
||||
<programlisting>
|
||||
my_procedure_1 (MYBOXES.description, "0,0,1,1"::box)
|
||||
my_procedure_1 (MYBOXES.description, box '((0,0),(1,1))')
|
||||
</programlisting>
|
||||
and the operator
|
||||
<programlisting>
|
||||
MYBOXES.description === "0,0,1,1"::box
|
||||
MYBOXES.description === box '((0,0),(1,1))'
|
||||
</programlisting>
|
||||
is that <productname>Postgres</productname>
|
||||
attempts to optimize operators and can
|
||||
@ -373,7 +373,7 @@ MYBOXES.description === "0,0,1,1"::box
|
||||
|
||||
<refsect2 id="R2-SQL-CREATEOPERATOR-3">
|
||||
<refsect2info>
|
||||
<date>1999-04-14</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Notes
|
||||
@ -418,7 +418,7 @@ CREATE OPERATOR === (
|
||||
|
||||
<refsect2 id="R2-SQL-CREATEOPERATOR-4">
|
||||
<refsect2info>
|
||||
<date>1999-04-14</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
SQL92
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_table.sgml,v 1.17 1999/07/22 15:09:08 thomas Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_table.sgml,v 1.18 2000/03/27 17:14:42 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -20,7 +20,7 @@ Postgres documentation
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<refsynopsisdivinfo>
|
||||
<date>1999-07-20</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsynopsisdivinfo>
|
||||
<synopsis>
|
||||
CREATE [ TEMPORARY | TEMP ] TABLE <replaceable class="PARAMETER">table</replaceable> (
|
||||
@ -35,9 +35,6 @@ CREATE [ TEMPORARY | TEMP ] TABLE <replaceable class="PARAMETER">table</replacea
|
||||
</synopsis>
|
||||
|
||||
<refsect2 id="R2-SQL-CREATETABLE-1">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Inputs
|
||||
</title>
|
||||
@ -158,9 +155,6 @@ CREATE [ TEMPORARY | TEMP ] TABLE <replaceable class="PARAMETER">table</replacea
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="R2-SQL-CREATETABLE-2">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Outputs
|
||||
</title>
|
||||
@ -212,9 +206,6 @@ ERROR: DEFAULT: type mismatched
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1 id="R1-SQL-CREATETABLE-1">
|
||||
<refsect1info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect1info>
|
||||
<title>
|
||||
Description
|
||||
</title>
|
||||
@ -272,9 +263,6 @@ ERROR: DEFAULT: type mismatched
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="R1-SQL-DEFAULTCLAUSE-1">
|
||||
<refsect1info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect1info>
|
||||
<title id="R1-SQL-DEFAULTCLAUSE-1-TITLE">
|
||||
DEFAULT Clause
|
||||
</title>
|
||||
@ -284,9 +272,6 @@ DEFAULT <replaceable class="PARAMETER">value</replaceable>
|
||||
</synopsis>
|
||||
</para>
|
||||
<refsect2 id="R2-SQL-DEFAULTCLAUSE-1">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Inputs
|
||||
</title>
|
||||
@ -323,9 +308,6 @@ DEFAULT <replaceable class="PARAMETER">value</replaceable>
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="R2-SQL-DEFAULTCLAUSE-2">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Outputs
|
||||
</title>
|
||||
@ -335,9 +317,6 @@ DEFAULT <replaceable class="PARAMETER">value</replaceable>
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="R2-SQL-DEFAULTCLAUSE-3">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Description
|
||||
</title>
|
||||
@ -415,7 +394,7 @@ DEFAULT <replaceable class="PARAMETER">value</replaceable>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In the current release (v6.5), <productname>Postgres</productname>
|
||||
In the current release (v7.0), <productname>Postgres</productname>
|
||||
evaluates all default expressions at the time the table is defined.
|
||||
Hence, functions which are "non-cacheable" such as
|
||||
<function>CURRENT_TIMESTAMP</function> may not produce the desired
|
||||
@ -431,9 +410,6 @@ DEFAULT <replaceable class="PARAMETER">value</replaceable>
|
||||
</para>
|
||||
</refsect2>
|
||||
<refsect2 id="R2-SQL-DEFAULTCLAUSE-4">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Usage
|
||||
</title>
|
||||
@ -467,9 +443,6 @@ CREATE TABLE distributors (
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="R1-SQL-COLUMNCONSTRAINT-1">
|
||||
<refsect1info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect1info>
|
||||
<title id="R1-SQL-COLUMNCONSTRAINT-1-TITLE">
|
||||
Column CONSTRAINT Clause
|
||||
</title>
|
||||
@ -482,9 +455,6 @@ CREATE TABLE distributors (
|
||||
</para>
|
||||
|
||||
<refsect2 id="R2-SQL-COLUMNCONSTRAINT-1">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Inputs
|
||||
</title>
|
||||
@ -561,9 +531,6 @@ CREATE TABLE distributors (
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="R2-SQL-COLUMNCONSTRAINT-2">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Description
|
||||
</title>
|
||||
@ -601,21 +568,19 @@ CREATE TABLE distributors (
|
||||
<member>UNIQUE</member>
|
||||
<member>CHECK</member>
|
||||
<member>NOT NULL</member>
|
||||
</simplelist></para>
|
||||
</simplelist>
|
||||
</para>
|
||||
|
||||
<note>
|
||||
<para>
|
||||
<productname>Postgres</productname> does not yet
|
||||
(at release 6.5) support
|
||||
REFERENCES integrity constraints. The parser
|
||||
accepts the REFERENCES syntax but ignores the clause.
|
||||
<productname>Postgres</productname> now
|
||||
(new for v7.0) supports
|
||||
REFERENCES integrity constraints.
|
||||
</para>
|
||||
</note>
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="R2-SQL-NOTNULL-1">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
NOT NULL Constraint
|
||||
</title>
|
||||
@ -630,9 +595,6 @@ CREATE TABLE distributors (
|
||||
</para>
|
||||
|
||||
<refsect3 id="R3-SQL-NOTNULL-1">
|
||||
<refsect3info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect3info>
|
||||
<title>
|
||||
Outputs
|
||||
</title>
|
||||
@ -663,9 +625,6 @@ ERROR: ExecAppend: Fail to add null value in not null attribute "<replaceable c
|
||||
</refsect3>
|
||||
|
||||
<refsect3 id="R3-SQL-NOTNULL-2">
|
||||
<refsect3info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect3info>
|
||||
<title>
|
||||
Description
|
||||
</title>
|
||||
@ -674,9 +633,6 @@ ERROR: ExecAppend: Fail to add null value in not null attribute "<replaceable c
|
||||
</refsect3>
|
||||
|
||||
<refsect3 id="R3-SQL-NOTNULL-3">
|
||||
<refsect3info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect3info>
|
||||
<title>
|
||||
Usage
|
||||
</title>
|
||||
@ -697,9 +653,6 @@ CREATE TABLE distributors (
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="R2-SQL-UNIQUECLAUSE-1">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
UNIQUE Constraint
|
||||
</title>
|
||||
@ -813,9 +766,6 @@ CREATE TABLE distributors (
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="R2-SQL-CHECK-1">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
The CHECK Constraint
|
||||
</title>
|
||||
@ -849,9 +799,6 @@ CREATE TABLE distributors (
|
||||
</refsect3>
|
||||
|
||||
<refsect3 id="R3-SQL-CHECK-2">
|
||||
<refsect3info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect3info>
|
||||
<title>
|
||||
Outputs
|
||||
</title>
|
||||
@ -900,9 +847,6 @@ ERROR: ExecAppend: rejected due to CHECK constraint "<replaceable class="parame
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="R2-SQL-PRIMARYKEY-1">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
PRIMARY KEY Constraint
|
||||
</title>
|
||||
@ -958,9 +902,6 @@ ERROR: Cannot insert a duplicate key into a unique index.
|
||||
</refsect3>
|
||||
|
||||
<refsect3 id="R3-SQL-PRIMARYKEY-3">
|
||||
<refsect3info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect3info>
|
||||
<title>
|
||||
Notes
|
||||
</title>
|
||||
@ -982,9 +923,6 @@ ERROR: Cannot insert a duplicate key into a unique index.
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="R1-SQL-TABLECONSTRAINT-1">
|
||||
<refsect1info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect1info>
|
||||
<title>
|
||||
Table CONSTRAINT Clause
|
||||
</title>
|
||||
@ -995,9 +933,6 @@ ERROR: Cannot insert a duplicate key into a unique index.
|
||||
</synopsis>
|
||||
</para>
|
||||
<refsect2 id="R2-SQL-TABLECONSTRAINT-1">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Inputs
|
||||
</title>
|
||||
@ -1035,9 +970,6 @@ ERROR: Cannot insert a duplicate key into a unique index.
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="R2-SQL-TABLECONSTRAINT-2">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Outputs
|
||||
</title>
|
||||
@ -1049,9 +981,6 @@ ERROR: Cannot insert a duplicate key into a unique index.
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="R2-SQL-TABLECONSTRAINT-3">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Description
|
||||
</title>
|
||||
@ -1067,22 +996,17 @@ ERROR: Cannot insert a duplicate key into a unique index.
|
||||
<member>FOREIGN KEY</member>
|
||||
</simplelist>
|
||||
</para>
|
||||
|
||||
<note>
|
||||
<para>
|
||||
<productname>Postgres</productname> does not yet
|
||||
(as of version 6.5) support FOREIGN KEY
|
||||
integrity constraints. The parser understands the FOREIGN KEY syntax,
|
||||
but only prints a notice and otherwise ignores the clause.
|
||||
Foreign keys may be partially emulated by triggers (See the CREATE TRIGGER
|
||||
statement).
|
||||
<productname>Postgres</productname> now
|
||||
supports FOREIGN KEY
|
||||
integrity constraints (new for release 7.0).
|
||||
</para>
|
||||
</note>
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="R2-SQL-UNIQUECLAUSE-4">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
UNIQUE Constraint
|
||||
</title>
|
||||
@ -1174,9 +1098,6 @@ CREATE TABLE distributors (
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="R2-SQL-PRIMARYKEY-4">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
PRIMARY KEY Constraint
|
||||
</title>
|
||||
@ -1375,9 +1296,6 @@ CREATE TABLE distributors (
|
||||
</para>
|
||||
|
||||
<refsect2 id="R2-SQL-CREATETABLE-3">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Notes
|
||||
</title>
|
||||
@ -1395,9 +1313,6 @@ CREATE TABLE distributors (
|
||||
</title>
|
||||
|
||||
<refsect2 id="R2-SQL-CREATETABLE-4">
|
||||
<refsect2info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
SQL92
|
||||
</title>
|
||||
@ -1436,9 +1351,6 @@ CREATE TEMPORARY TABLE actors (
|
||||
</para>
|
||||
|
||||
<refsect3 id="R3-SQL-UNIQUECLAUSE-1">
|
||||
<refsect3info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect3info>
|
||||
<title>
|
||||
UNIQUE clause
|
||||
</title>
|
||||
@ -1467,9 +1379,6 @@ CREATE TEMPORARY TABLE actors (
|
||||
</refsect3>
|
||||
|
||||
<refsect3 id="R3-SQL-NULL-1">
|
||||
<refsect3info>
|
||||
<date>1998-12-24</date>
|
||||
</refsect3info>
|
||||
<title>
|
||||
NULL clause
|
||||
</title>
|
||||
@ -1485,9 +1394,6 @@ CREATE TEMPORARY TABLE actors (
|
||||
</refsect3>
|
||||
|
||||
<refsect3 id="R3-SQL-NOTNULL-4">
|
||||
<refsect3info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect3info>
|
||||
<title>
|
||||
NOT NULL clause
|
||||
</title>
|
||||
@ -1510,9 +1416,6 @@ the column. Not our problem...
|
||||
- Thomas 1998-08-16
|
||||
|
||||
<REFSECT3 ID="R3-SQL-DEFAULTCLAUSE-1">
|
||||
<REFSECT3INFO>
|
||||
<DATE>1998-09-11</DATE>
|
||||
</REFSECT3INFO>
|
||||
<TITLE>
|
||||
DEFAULT clause
|
||||
</TITLE>
|
||||
@ -1530,9 +1433,6 @@ the column. Not our problem...
|
||||
-->
|
||||
|
||||
<refsect3 id="R3-SQL-CONSTRAINT-3">
|
||||
<refsect3info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect3info>
|
||||
<title>
|
||||
CONSTRAINT clause
|
||||
</title>
|
||||
@ -1647,9 +1547,6 @@ CREATE ASSERTION name CHECK ( condition )
|
||||
|
||||
|
||||
<refsect3 id="R3-SQL-CHECK-4">
|
||||
<refsect3info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect3info>
|
||||
<title>
|
||||
CHECK clause
|
||||
</title>
|
||||
@ -1709,9 +1606,6 @@ ALTER DOMAIN cities
|
||||
</refsect3>
|
||||
|
||||
<refsect3 id="R3-SQL-PRIMARYKEY-1">
|
||||
<refsect3info>
|
||||
<date>1998-09-11</date>
|
||||
</refsect3info>
|
||||
<title>
|
||||
PRIMARY KEY clause
|
||||
</title>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_trigger.sgml,v 1.8 1999/07/22 15:09:08 thomas Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_trigger.sgml,v 1.9 2000/03/27 17:14:42 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -20,7 +20,7 @@ Postgres documentation
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<refsynopsisdivinfo>
|
||||
<date>1999-07-20</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsynopsisdivinfo>
|
||||
<synopsis>
|
||||
CREATE TRIGGER <replaceable class="PARAMETER">name</replaceable> { BEFORE | AFTER } { <replaceable class="PARAMETER">event</replaceable> [OR ...] }
|
||||
@ -152,7 +152,7 @@ CREATE
|
||||
Only the relation owner may create a trigger on this relation.
|
||||
</para>
|
||||
<para>
|
||||
As of the current release (v6.4), STATEMENT triggers are not implemented.
|
||||
As of the current release (v7.0), STATEMENT triggers are not implemented.
|
||||
</para>
|
||||
<para>
|
||||
Refer to <command>DROP TRIGGER</command> for information on how to
|
||||
@ -217,11 +217,6 @@ CREATE TABLE distributors (
|
||||
);
|
||||
</programlisting>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
However, foreign keys are not yet implemented (as of version 6.5) in
|
||||
<productname>Postgres</productname>.
|
||||
</para>
|
||||
</refsect2>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_type.sgml,v 1.11 1999/08/06 13:50:30 thomas Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_type.sgml,v 1.12 2000/03/27 17:14:42 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -289,8 +289,8 @@ CREATE
|
||||
A "regular" Postgres type can only be 8192 bytes in
|
||||
length. If you need a larger type you must create a Large
|
||||
Object type. The interface for these types is discussed
|
||||
at length in
|
||||
<citetitle>The PostgreSQL Programmer's Guide</citetitle>.
|
||||
at length in the
|
||||
<citetitle>PostgreSQL Programmer's Guide</citetitle>.
|
||||
The length of all large object types is always VARIABLE.
|
||||
</para>
|
||||
</refsect2>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_user.sgml,v 1.13 2000/01/14 22:11:32 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_user.sgml,v 1.14 2000/03/27 17:14:42 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -56,7 +56,7 @@ CREATE USER <replaceable class="PARAMETER">username</replaceable>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>SYSID</literal> clause can be used to choose
|
||||
the <productname>PostgreSQL</productname> user id of the user
|
||||
the <productname>Postgres</productname> user id of the user
|
||||
that is being created. It is not at all necessary that those
|
||||
match the <acronym>UNIX</acronym> user ids, but some people
|
||||
choose to keep the numbers the same.
|
||||
@ -164,7 +164,7 @@ CREATE USER <replaceable class="PARAMETER">username</replaceable>
|
||||
</title>
|
||||
<para>
|
||||
CREATE USER will add a new user to an instance of
|
||||
<productname>PostgreSQL</productname>. Refer to the adminstrator's
|
||||
<productname>Postgres</productname>. Refer to the adminstrator's
|
||||
guide for information about managing users and authentication.
|
||||
You must be a database superuser to use this command.
|
||||
</para>
|
||||
@ -173,7 +173,7 @@ CREATE USER <replaceable class="PARAMETER">username</replaceable>
|
||||
to change a user's password and privileges, and <xref linkend="SQL-DROPUSER"
|
||||
endterm="SQL-DROPUSER-title"> to remove a user.
|
||||
Use <command>ALTER GROUP</command> to add or remove the user from other groups.
|
||||
<productname>PostgreSQL</productname>
|
||||
<productname>Postgres</productname>
|
||||
comes with a script <xref linkend="APP-CREATEUSER"
|
||||
endterm="APP-CREATEUSER-title">
|
||||
which has the same functionality as this command (in fact, it calls this command)
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_view.sgml,v 1.8 2000/03/26 18:32:27 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_view.sgml,v 1.9 2000/03/27 17:14:42 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -20,7 +20,7 @@ Postgres documentation
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<refsynopsisdivinfo>
|
||||
<date>1999-07-20</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsynopsisdivinfo>
|
||||
<synopsis>
|
||||
CREATE VIEW <replaceable class="PARAMETER">view</replaceable> AS SELECT <replaceable class="PARAMETER">query</replaceable>
|
||||
@ -28,7 +28,7 @@ CREATE VIEW <replaceable class="PARAMETER">view</replaceable> AS SELECT <replace
|
||||
|
||||
<refsect2 id="R2-SQL-CREATEVIEW-1">
|
||||
<refsect2info>
|
||||
<date>1998-09-21</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Inputs
|
||||
@ -62,7 +62,7 @@ CREATE VIEW <replaceable class="PARAMETER">view</replaceable> AS SELECT <replace
|
||||
|
||||
<refsect2 id="R2-SQL-CREATEVIEW-2">
|
||||
<refsect2info>
|
||||
<date>1998-09-21</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Outputs
|
||||
@ -97,13 +97,15 @@ NOTICE create: attribute named "<replaceable class="parameter">column</replaceab
|
||||
<para>
|
||||
The view will be created having a column with an unknown type
|
||||
if you do not specify it. For example, the following command gives
|
||||
an error:
|
||||
a warning:
|
||||
<programlisting>
|
||||
CREATE VIEW vista AS SELECT 'Hello World'
|
||||
</programlisting>
|
||||
|
||||
whereas this command does not:
|
||||
|
||||
<programlisting>
|
||||
CREATE VIEW vista AS SELECT 'Hello World'::text
|
||||
CREATE VIEW vista AS SELECT text 'Hello World'
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
@ -115,7 +117,7 @@ CREATE VIEW vista AS SELECT 'Hello World'::text
|
||||
|
||||
<refsect1 id="R1-SQL-CREATEVIEW-1">
|
||||
<refsect1info>
|
||||
<date>1998-09-21</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsect1info>
|
||||
<title>
|
||||
Description
|
||||
@ -129,7 +131,7 @@ CREATE VIEW vista AS SELECT 'Hello World'::text
|
||||
|
||||
<refsect2 id="R2-SQL-CREATEVIEW-3">
|
||||
<refsect2info>
|
||||
<date>1998-09-21</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
Notes
|
||||
@ -176,7 +178,7 @@ SELECT * FROM kinds;
|
||||
|
||||
<refsect2 id="R2-SQL-CREATEVIEW-5">
|
||||
<refsect2info>
|
||||
<date>1998-09-21</date>
|
||||
<date>2000-03-25</date>
|
||||
</refsect2info>
|
||||
<title>
|
||||
SQL92
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/createdb.sgml,v 1.9 2000/02/10 20:08:55 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/createdb.sgml,v 1.10 2000/03/27 17:14:42 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -15,7 +15,7 @@ Postgres documentation
|
||||
<application>createdb</application>
|
||||
</refname>
|
||||
<refpurpose>
|
||||
Create a new <productname>PostgreSQL</productname> database
|
||||
Create a new <productname>Postgres</productname> database
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
@ -120,7 +120,7 @@ createdb [ <replaceable class="parameter">options</replaceable> ] <replaceable c
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies the name of the database to be created. The name must be
|
||||
unique among all <productname>PostgreSQL</productname> databases in this installation.
|
||||
unique among all <productname>Postgres</productname> databases in this installation.
|
||||
The default is to create a database with the same name as the
|
||||
current system user.
|
||||
</para>
|
||||
@ -196,7 +196,7 @@ createdb [ <replaceable class="parameter">options</replaceable> ] <replaceable c
|
||||
Description
|
||||
</title>
|
||||
<para>
|
||||
<application>createdb</application> creates a new <productname>PostgreSQL</productname>
|
||||
<application>createdb</application> creates a new <productname>Postgres</productname>
|
||||
database. The user who executes this command becomes the database owner.
|
||||
</para>
|
||||
|
||||
@ -204,7 +204,7 @@ createdb [ <replaceable class="parameter">options</replaceable> ] <replaceable c
|
||||
<application>createdb</application> is a shell script wrapper around the
|
||||
<acronym>SQL</acronym> command
|
||||
<xref linkend="SQL-CREATEDATABASE" endterm="SQL-CREATEDATABASE-title"> via
|
||||
the <productname>PostgreSQL</productname> interactive terminal
|
||||
the <productname>Postgres</productname> interactive terminal
|
||||
<xref linkend="APP-PSQL" endterm="APP-PSQL-title">. Thus, there is nothing
|
||||
special about creating databases via this or other methods. This means
|
||||
that the <application>psql</application> must be found by the script and that
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/createlang.sgml,v 1.4 2000/01/19 20:08:22 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/createlang.sgml,v 1.5 2000/03/27 17:14:42 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -15,7 +15,7 @@ Postgres documentation
|
||||
<application>createlang</application>
|
||||
</refname>
|
||||
<refpurpose>
|
||||
Add a new programming language to a <productname>PostgreSQL</productname> database
|
||||
Add a new programming language to a <productname>Postgres</productname> database
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
@ -145,7 +145,7 @@ createlang [ <replaceable class="parameter">connection options</replaceable> ] -
|
||||
|
||||
<para>
|
||||
<application>createlang</application> is a utility for adding a new
|
||||
programming language to a <productname>PostgreSQL</productname> database.
|
||||
programming language to a <productname>Postgres</productname> database.
|
||||
<application>createlang</application> currently accepts two
|
||||
languages, <literal>plsql</literal> and <literal>pltcl</literal>.
|
||||
</para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/createuser.sgml,v 1.8 2000/01/12 19:36:34 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/createuser.sgml,v 1.9 2000/03/27 17:14:42 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -15,7 +15,7 @@ Postgres documentation
|
||||
<application>createuser</application>
|
||||
</refname>
|
||||
<refpurpose>
|
||||
Create a new <productname>PostgreSQL</productname> user
|
||||
Create a new <productname>Postgres</productname> user
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
@ -139,8 +139,8 @@ createuser [ <replaceable class="parameter">options</replaceable> ] [ <replaceab
|
||||
<term><replaceable class="parameter">username</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies the name of the <productname>PostgreSQL</productname> user to be created.
|
||||
This name must be unique among all <productname>PostgreSQL</productname> users.
|
||||
Specifies the name of the <productname>Postgres</productname> user to be created.
|
||||
This name must be unique among all <productname>Postgres</productname> users.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -203,7 +203,7 @@ createuser [ <replaceable class="parameter">options</replaceable> ] [ <replaceab
|
||||
</title>
|
||||
<para>
|
||||
<application>createuser</application> creates a
|
||||
new <productname>PostgreSQL</productname> user.
|
||||
new <productname>Postgres</productname> user.
|
||||
Only users with <literal>usesuper</literal> set in
|
||||
the <literal>pg_shadow</literal> class can create
|
||||
new <productname>Postgres</productname> users.
|
||||
@ -213,7 +213,7 @@ createuser [ <replaceable class="parameter">options</replaceable> ] [ <replaceab
|
||||
<application>createuser</application> is a shell script wrapper around the
|
||||
<acronym>SQL</acronym> command
|
||||
<xref linkend="SQL-CREATEUSER" endterm="SQL-CREATEUSER-title"> via
|
||||
the <productname>PostgreSQL</productname> interactive terminal
|
||||
the <productname>Postgres</productname> interactive terminal
|
||||
<xref linkend="APP-PSQL" endterm="APP-PSQL-title">. Thus, there is nothing
|
||||
special about creating users via this or other methods. This means
|
||||
that the <application>psql</application> must be found by the script and that
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_user.sgml,v 1.10 2000/01/14 22:11:32 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_user.sgml,v 1.11 2000/03/27 17:14:42 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -109,7 +109,7 @@ DROP USER: user "<replaceable class="parameter">name</replaceable>" owns databas
|
||||
Use <xref linkend="SQL-CREATEUSER" endterm="SQL-CREATEUSER-title">
|
||||
to add new users, and <xref linkend="SQL-ALTERUSER"
|
||||
endterm="SQL-ALTERUSER-title"> to change a user's properties.
|
||||
<productname>PostgreSQL</productname>
|
||||
<productname>Postgres</productname>
|
||||
comes with a script <xref linkend="APP-DROPUSER"
|
||||
endterm="APP-DROPUSER-title">
|
||||
which has the same functionality as this command (in fact, it calls this command)
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropdb.sgml,v 1.2 1999/12/07 22:41:41 momjian Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropdb.sgml,v 1.3 2000/03/27 17:14:43 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -15,7 +15,7 @@ Postgres documentation
|
||||
<application>dropdb</application>
|
||||
</refname>
|
||||
<refpurpose>
|
||||
Remove an existing <productname>PostgreSQL</productname> database
|
||||
Remove an existing <productname>Postgres</productname> database
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
@ -109,7 +109,7 @@ dropdb [ <replaceable class="parameter">options</replaceable> ] <replaceable cla
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies the name of the database to be removed. The database
|
||||
must be one of the existing <productname>PostgreSQL</productname> databases
|
||||
must be one of the existing <productname>Postgres</productname> databases
|
||||
in this installation.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -165,7 +165,7 @@ dropdb [ <replaceable class="parameter">options</replaceable> ] <replaceable cla
|
||||
</title>
|
||||
<para>
|
||||
<application>dropdb</application> destroys an existing
|
||||
<productname>PostgreSQL</productname> database.
|
||||
<productname>Postgres</productname> database.
|
||||
The user who executes this command must be a database
|
||||
superuser or the owner of the database.
|
||||
</para>
|
||||
@ -174,7 +174,7 @@ dropdb [ <replaceable class="parameter">options</replaceable> ] <replaceable cla
|
||||
<application>dropdb</application> is a shell script wrapper around the
|
||||
<acronym>SQL</acronym> command
|
||||
<xref linkend="SQL-DROPDATABASE" endterm="SQL-DROPDATABASE-title"> via
|
||||
the <productname>PostgreSQL</productname> interactive terminal
|
||||
the <productname>Postgres</productname> interactive terminal
|
||||
<xref linkend="APP-PSQL" endterm="APP-PSQL-title">. Thus, there is nothing
|
||||
special about dropping databases via this or other methods. This means
|
||||
that the <application>psql</application> must be found by the script and that
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/droplang.sgml,v 1.2 2000/01/19 20:08:22 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/droplang.sgml,v 1.3 2000/03/27 17:14:43 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -15,7 +15,7 @@ Postgres documentation
|
||||
<application>droplang</application>
|
||||
</refname>
|
||||
<refpurpose>
|
||||
Remove a programming language from a <productname>PostgreSQL</productname> database
|
||||
Remove a programming language from a <productname>Postgres</productname> database
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
@ -146,7 +146,7 @@ droplang [ <replaceable class="parameter">connection options</replaceable> ] --l
|
||||
<para>
|
||||
<application>droplang</application> is a utility for removing an
|
||||
existing programming language from a
|
||||
<productname>PostgreSQL</productname> database.
|
||||
<productname>Postgres</productname> database.
|
||||
<application>droplang</application> currently accepts two
|
||||
languages, <literal>plsql</literal> and <literal>pltcl</literal>.
|
||||
</para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropuser.sgml,v 1.3 2000/01/12 19:36:34 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropuser.sgml,v 1.4 2000/03/27 17:14:43 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -90,7 +90,7 @@ dropuser [ <replaceable class="parameter">options</replaceable> ] [ <replaceable
|
||||
<term><replaceable class="parameter">username</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies the name of the <productname>PostgreSQL</productname> user to be removed.
|
||||
Specifies the name of the <productname>Postgres</productname> user to be removed.
|
||||
This name must exist in the <productname>Postgres</productname> installation.
|
||||
You will be prompted for a name if none is specified on the command line.
|
||||
</para>
|
||||
@ -153,18 +153,18 @@ dropuser [ <replaceable class="parameter">options</replaceable> ] [ <replaceable
|
||||
</title>
|
||||
<para>
|
||||
<application>dropuser</application> removes an existing
|
||||
<productname>PostgreSQL</productname> user
|
||||
<productname>Postgres</productname> user
|
||||
<emphasis>and</emphasis> the databases which that user owned.
|
||||
Only users with <literal>usesuper</literal> set in
|
||||
the <literal>pg_shadow</literal> class can destroy
|
||||
<productname>PostgreSQL</productname> users.
|
||||
<productname>Postgres</productname> users.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<application>dropuser</application> is a shell script wrapper around the
|
||||
<acronym>SQL</acronym> command
|
||||
<xref linkend="SQL-DROPUSER" endterm="SQL-DROPUSER-title"> via
|
||||
the <productname>PostgreSQL</productname> interactive terminal
|
||||
the <productname>Postgres</productname> interactive terminal
|
||||
<xref linkend="APP-PSQL" endterm="APP-PSQL-title">. Thus, there is nothing
|
||||
special about removing users via this or other methods. This means
|
||||
that the <application>psql</application> must be found by the script and that
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/end.sgml,v 1.2 2000/01/29 16:58:27 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/end.sgml,v 1.3 2000/03/27 17:14:43 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -94,8 +94,8 @@ NOTICE: COMMIT: no transaction in progress
|
||||
</title>
|
||||
|
||||
<para>
|
||||
<command>END</command> is a <productname>PostgreSQL</productname>
|
||||
synonym for
|
||||
<command>END</command> is a <productname>Postgres</productname>
|
||||
extension, and is a synonym for the SQL92-compatible
|
||||
<xref linkend="sql-commit-title" endterm="sql-commit-title">.
|
||||
</para>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/initdb.sgml,v 1.9 2000/01/20 21:50:54 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/initdb.sgml,v 1.10 2000/03/27 17:14:43 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -15,7 +15,7 @@ Postgres documentation
|
||||
<application>initdb</application>
|
||||
</refname>
|
||||
<refpurpose>
|
||||
Create a new <productname>PostgreSQL</productname> database installation
|
||||
Create a new <productname>Postgres</productname> database installation
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
@ -129,7 +129,7 @@ initdb [ --pgdata|-D <replaceable class="parameter">dbdir</replaceable> ]
|
||||
database in an existing database system, and don't touch anything else.
|
||||
This is useful when you need to upgrade your <literal>template1</literal>
|
||||
database using <application>initdb</application>
|
||||
from a newer release of <productname>PostgreSQL</productname>,
|
||||
from a newer release of <productname>Postgres</productname>,
|
||||
or when your <literal>template1</literal>
|
||||
database has become corrupted by some system problem. Normally the
|
||||
contents of <literal>template1</literal>
|
||||
@ -199,7 +199,7 @@ initdb [ --pgdata|-D <replaceable class="parameter">dbdir</replaceable> ]
|
||||
</title>
|
||||
<para>
|
||||
<application>initdb</application> creates a new
|
||||
<productname>PostgreSQL</productname> database system.
|
||||
<productname>Postgres</productname> database system.
|
||||
A database system is a
|
||||
collection of databases that are all administered by the same Unix user
|
||||
and managed by a single postmaster.
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/Attic/initlocation.sgml,v 1.6 2000/03/26 18:32:27 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/Attic/initlocation.sgml,v 1.7 2000/03/27 17:14:43 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -15,7 +15,7 @@ Postgres documentation
|
||||
<application>initlocation</application>
|
||||
</refname>
|
||||
<refpurpose>
|
||||
Create a secondary <productname>PostgreSQL</productname> database storage area
|
||||
Create a secondary <productname>Postgres</productname> database storage area
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
@ -72,7 +72,7 @@ initlocation <replaceable class="parameter">directory</replaceable>
|
||||
</title>
|
||||
<para>
|
||||
<application>initlocation</application>
|
||||
creates a new <productname>PostgreSQL</productname> secondary database storage area.
|
||||
creates a new <productname>Postgres</productname> secondary database storage area.
|
||||
See the discussion under <xref linkend="SQL-CREATEDATABASE" endterm="SQL-CREATEDATABASE-title">
|
||||
about how to manage and use secondary storage areas. If the argument does not contain
|
||||
a slash and is not valid as a path, it is assumed to be an environment variable,
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/insert.sgml,v 1.6 1999/07/22 15:09:12 thomas Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/insert.sgml,v 1.7 2000/03/27 17:14:43 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -193,8 +193,8 @@ INSERT INTO films SELECT * FROM tmp;
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Insert into arrays (refer to
|
||||
<citetitle>The PostgreSQL User's Guide</citetitle> for further
|
||||
Insert into arrays (refer to the
|
||||
<citetitle>PostgreSQL User's Guide</citetitle> for further
|
||||
information about arrays):
|
||||
|
||||
<programlisting>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.14 2000/01/24 19:34:13 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.15 2000/03/27 17:14:43 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -99,7 +99,8 @@ pg_dump [ -h <replaceable class="parameter">host</replaceable> ] [ -p <replaceab
|
||||
Suppress double quotes around identifiers unless absolutely necessary.
|
||||
This may cause trouble loading this dumped data if there are reserved words
|
||||
used for identifiers.
|
||||
This was the default behavior in pre-v6.4 <application>pg_dump</application>.
|
||||
This was the default behavior for
|
||||
<application>pg_dump</application> prior to v6.4.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/Attic/pg_upgrade.sgml,v 1.8 1999/09/28 15:59:10 momjian Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/Attic/pg_upgrade.sgml,v 1.9 2000/03/27 17:14:43 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -38,7 +38,7 @@ pg_upgrade [ -f <replaceable class="parameter">filename</replaceable> ] <replace
|
||||
<para>
|
||||
<application>pg_upgrade</application>
|
||||
is a utility for upgrading from a previous
|
||||
PostgreSQL release without reloading all the data.
|
||||
Postgres release without reloading all the data.
|
||||
Not all <productname>Postgres</productname> release transitions can be
|
||||
handled this way. Check the release notes for details on your installation.
|
||||
</para>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/Attic/pgadmin-ref.sgml,v 1.5 2000/02/02 16:19:54 thomas Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/Attic/pgadmin-ref.sgml,v 1.6 2000/03/27 17:14:43 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -41,7 +41,7 @@ pgadmin [ <replaceable class="parameter">datasourcename</replaceable> [ <replace
|
||||
<term><replaceable class="PARAMETER">datasourcename</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The name of an existing PostgreSQL ODBC System or User Data
|
||||
The name of an existing <productname>Postgres</productname> ODBC System or User Data
|
||||
Source.
|
||||
</para>
|
||||
</listitem>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/postgres-ref.sgml,v 1.6 1999/08/06 13:50:31 thomas Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/postgres-ref.sgml,v 1.7 2000/03/27 17:14:43 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -190,7 +190,7 @@ postgres [ -B <replaceable class="parameter">nBuffers</replaceable> ] [ -C ] [ -
|
||||
Dates are accepted by the backend in a wide variety of formats,
|
||||
and for input dates this switch mostly affects the interpretation
|
||||
for ambiguous cases.
|
||||
See <citetitle>The PostgreSQL User's Guide</citetitle>
|
||||
See the <citetitle>PostgreSQL User's Guide</citetitle>
|
||||
for more information.
|
||||
</para>
|
||||
</listitem>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.29 2000/03/21 01:52:12 momjian Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.30 2000/03/27 17:14:43 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -16,7 +16,7 @@ Postgres documentation
|
||||
<application>psql</application>
|
||||
</refname>
|
||||
<refpurpose>
|
||||
<productname>PostgreSQL</productname> interactive terminal
|
||||
<productname>Postgres</productname> interactive terminal
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
@ -36,8 +36,8 @@ Postgres documentation
|
||||
|
||||
<para>
|
||||
<application>psql</application> is a terminal-based front-end to
|
||||
<productname>PostgreSQL</productname>. It enables you to type in queries
|
||||
interactively, issue them to <productname>PostgreSQL</productname>, and see
|
||||
<productname>Postgres</productname>. It enables you to type in queries
|
||||
interactively, issue them to <productname>Postgres</productname>, and see
|
||||
the query results. Alternatively, input can be from a file.
|
||||
In addition, it provides a number of meta-commands and
|
||||
various shell-like features to facilitate writing scripts and automating a wide
|
||||
@ -63,7 +63,7 @@ Postgres documentation
|
||||
<title>Connecting To A Database</title>
|
||||
|
||||
<para>
|
||||
<application>psql</application> is a regular <productname>PostgreSQL</productname>
|
||||
<application>psql</application> is a regular <productname>Postgres</productname>
|
||||
client application. In order to connect to a database you need to know the
|
||||
name of your target database, the hostname and port number of the server
|
||||
and what user name you want to connect as. <application>psql</application> can be
|
||||
@ -316,7 +316,7 @@ testdb=>
|
||||
<term><literal>\copyright</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Shows the copyright and distribution terms of <application>PostgreSQL</application>.
|
||||
Shows the copyright and distribution terms of <application>Postgres</application>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -387,7 +387,7 @@ testdb=>
|
||||
|
||||
<note>
|
||||
<para>
|
||||
<productname>PostgreSQL</productname> stores the object descriptions in the
|
||||
<productname>Postgres</productname> stores the object descriptions in the
|
||||
pg_description system table.
|
||||
</para>
|
||||
</note>
|
||||
@ -637,7 +637,7 @@ Tue Oct 26 21:40:57 CEST 1999
|
||||
<para>
|
||||
List all the databases in the server as well as their owners. Append a
|
||||
<quote>+</quote> to the command name to see any descriptions
|
||||
for the databases as well. If your <productname>PostgreSQL</productname>
|
||||
for the databases as well. If your <productname>Postgres</productname>
|
||||
installation was
|
||||
compiled with multibyte encoding support, the encoding scheme of each
|
||||
database is shown as well.
|
||||
@ -677,7 +677,7 @@ Tue Oct 26 21:40:57 CEST 1999
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Stores the file into a <productname>PostgreSQL</productname> <quote>large object</quote>.
|
||||
Stores the file into a <productname>Postgres</productname> <quote>large object</quote>.
|
||||
Optionally, it associates the given comment with the object. Example:
|
||||
<programlisting>
|
||||
foo=> <userinput>\lo_import '/home/peter/pictures/photo.xcf' 'a picture of me'</userinput>
|
||||
@ -709,7 +709,7 @@ lo_import 152801
|
||||
<term><literal>\lo_list</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Shows a list of all <productname>PostgreSQL</productname> <quote>large
|
||||
Shows a list of all <productname>Postgres</productname> <quote>large
|
||||
objects</quote> currently stored in the database along with their owners.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -1674,7 +1674,7 @@ bar
|
||||
<listitem>
|
||||
<para>
|
||||
When this variable is set and a backslash command queries the database, the query
|
||||
is first shown. This way you can study the <productname>PostgreSQL</productname>
|
||||
is first shown. This way you can study the <productname>Postgres</productname>
|
||||
internals and provide similar functionality in your own programs. If you set the
|
||||
variable to the value <quote>noexec</quote>, the queries are just shown but are
|
||||
not actually sent to the backend and executed.
|
||||
@ -1770,7 +1770,7 @@ bar
|
||||
<term><envar>LO_TRANSACTION</envar></term>
|
||||
<listitem>
|
||||
<para>
|
||||
If you use the <productname>PostgreSQL</productname> large object
|
||||
If you use the <productname>Postgres</productname> large object
|
||||
interface to specially store data that does not fit into one tuple,
|
||||
all the operations must be contained in a transaction block. (See the
|
||||
documentation of the large object interface for more information.) Since
|
||||
@ -1939,7 +1939,7 @@ testdb=> <userinput>\set content `sed -e "s/'/\\\\\\'/g" < my_file.txt`</userinp
|
||||
case you can escape a colon with a backslash to protect it from interpretation.
|
||||
(The colon syntax for variables is standard <acronym>SQL</acronym> for embedded
|
||||
query languages, such as <application>ecpg</application>. The colon syntax for
|
||||
array slices and type casts are <productname>PostgreSQL</productname> extensions,
|
||||
array slices and type casts are <productname>Postgres</productname> extensions,
|
||||
hence the conflict.)
|
||||
</para>
|
||||
|
||||
@ -2111,7 +2111,7 @@ $endif
|
||||
|
||||
<para>
|
||||
If you have the readline library installed but <application>psql</application>
|
||||
does not seem to use it, you must make sure that <productname>PostgreSQL</productname>'s
|
||||
does not seem to use it, you must make sure that <productname>Postgres</productname>'s
|
||||
top-level <filename>configure</filename> script finds it. <filename>configure</filename>
|
||||
needs to find both the library <filename>libreadline.a</filename>
|
||||
(or a shared library equivalent)
|
||||
@ -2145,7 +2145,7 @@ $ ./configure --with-includes=/opt/gnu/include --with-libs=/opt/gnu/lib ...
|
||||
<para>
|
||||
This section only shows a few examples specific to <application>psql</application>.
|
||||
If you want to learn <acronym>SQL</acronym> or get familiar with
|
||||
<productname>PostgreSQL</productname>, you might wish to read the Tutorial that
|
||||
<productname>Postgres</productname>, you might wish to read the Tutorial that
|
||||
is included in the distribution.
|
||||
</para>
|
||||
</note>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/select.sgml,v 1.27 2000/03/26 18:32:27 petere Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/select.sgml,v 1.28 2000/03/27 17:14:43 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -419,13 +419,15 @@ SELECT title, date_prod + 1 AS newlen FROM films ORDER BY newlen;
|
||||
</programlisting></para>
|
||||
|
||||
<para>
|
||||
From release 6.4 of PostgreSQL, it is also possible to ORDER BY
|
||||
arbitrary expressions, including fields that do not appear in the
|
||||
It is also possible to ORDER BY
|
||||
arbitrary expressions (an extension to SQL92),
|
||||
including fields that do not appear in the
|
||||
SELECT result list.
|
||||
Thus the following statement is now legal:
|
||||
Thus the following statement is legal:
|
||||
<programlisting>
|
||||
SELECT name FROM distributors ORDER BY code;
|
||||
</programlisting>
|
||||
|
||||
Note that if an ORDER BY item is a simple name that matches both
|
||||
a result column name and an input column name, ORDER BY will interpret
|
||||
it as the result column name. This is the opposite of the choice that
|
||||
@ -581,7 +583,7 @@ SELECT name FROM distributors ORDER BY code;
|
||||
</para>
|
||||
|
||||
<para>
|
||||
As of PostgreSQL 7.0, the
|
||||
As of <productname>Postgres</productname> 7.0, the
|
||||
query optimizer takes LIMIT into account when generating a query plan,
|
||||
so you are very likely to get different plans (yielding different row
|
||||
orders) depending on what you give for LIMIT and OFFSET. Thus, using
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/vacuumdb.sgml,v 1.7 1999/12/18 08:34:49 momjian Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/vacuumdb.sgml,v 1.8 2000/03/27 17:14:43 thomas Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -15,7 +15,7 @@ Postgres documentation
|
||||
<application>vacuumdb</application>
|
||||
</refname>
|
||||
<refpurpose>
|
||||
Clean and analyze a <productname>PostgreSQL</productname> database
|
||||
Clean and analyze a <productname>Postgres</productname> database
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
@ -210,7 +210,7 @@ vacuumdb [ <replaceable class="parameter">connection options</replaceable> ] [ -
|
||||
|
||||
<para>
|
||||
<application>vacuumdb</application> is a utility for cleaning a
|
||||
<productname>PostgreSQL</productname> database.
|
||||
<productname>Postgres</productname> database.
|
||||
<application>vacuumdb</application> will also generate internal statistics
|
||||
used by the <productname>Postgres</productname> query optimizer.
|
||||
</para>
|
||||
@ -219,7 +219,7 @@ vacuumdb [ <replaceable class="parameter">connection options</replaceable> ] [ -
|
||||
<application>vacuumdb</application> is a shell script wrapper around the
|
||||
backend command
|
||||
<xref linkend="SQL-VACUUM" endterm="SQL-VACUUM-title"> via
|
||||
the <productname>PostgreSQL</productname> interactive terminal
|
||||
the <productname>Postgres</productname> interactive terminal
|
||||
<xref linkend="APP-PSQL" endterm="APP-PSQL-title">. There is no effective
|
||||
difference between vacuuming databases via this or other methods.
|
||||
<application>psql</application> must be found by the script and
|
||||
|
Loading…
x
Reference in New Issue
Block a user