mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Remove tabs from SGML files.
This commit is contained in:
@ -107,39 +107,39 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
<row>
|
<row>
|
||||||
<entry>n</entry>
|
<entry>n</entry>
|
||||||
<entry>[0-9]+</entry>
|
<entry>[0-9]+</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>i</entry>
|
<entry>i</entry>
|
||||||
<entry>nteger [+-]?{n}</entry>
|
<entry>nteger [+-]?{n}</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>real</entry>
|
<entry>real</entry>
|
||||||
<entry>[+-]?({n}\.{n}?|\.{n})</entry>
|
<entry>[+-]?({n}\.{n}?|\.{n})</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>FLOAT</entry>
|
<entry>FLOAT</entry>
|
||||||
<entry>({integer}|{real})([eE]{integer})?</entry>
|
<entry>({integer}|{real})([eE]{integer})?</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>O_BRACKET</entry>
|
<entry>O_BRACKET</entry>
|
||||||
<entry>\[</entry>
|
<entry>\[</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>C_BRACKET</entry>
|
<entry>C_BRACKET</entry>
|
||||||
<entry>\]</entry>
|
<entry>\]</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>O_PAREN</entry>
|
<entry>O_PAREN</entry>
|
||||||
<entry>\(</entry>
|
<entry>\(</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>C_PAREN</entry>
|
<entry>C_PAREN</entry>
|
||||||
<entry>\)</entry>
|
<entry>\)</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>COMMA</entry>
|
<entry>COMMA</entry>
|
||||||
<entry>\,</entry>
|
<entry>\,</entry>
|
||||||
</row>
|
</row>
|
||||||
</tbody>
|
</tbody>
|
||||||
</tgroup>
|
</tgroup>
|
||||||
@ -280,28 +280,28 @@ numbers with more than about 16 significant digits will be truncated.
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
a = b Same as
|
a = b Same as
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
The cubements a and b are identical.
|
The cubements a and b are identical.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
a && b Overlaps
|
a && b Overlaps
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
The cubements a and b overlap.
|
The cubements a and b overlap.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
a @> b Contains
|
a @> b Contains
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
The cubement a contains the cubement b.
|
The cubement a contains the cubement b.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
a <@ b Contained in
|
a <@ b Contained in
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
The cubement a is contained in b.
|
The cubement a is contained in b.
|
||||||
@ -326,8 +326,8 @@ a <@ b Contained in
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
[a, b] < [c, d] Less than
|
[a, b] < [c, d] Less than
|
||||||
[a, b] > [c, d] Greater than
|
[a, b] > [c, d] Greater than
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
@ -22,7 +22,7 @@ CREATE TABLE one_to_many(left INT, right INT) ;
|
|||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
SELECT right.* from right JOIN one_to_many ON (right.id = one_to_many.right)
|
SELECT right.* from right JOIN one_to_many ON (right.id = one_to_many.right)
|
||||||
WHERE one_to_many.left = item;
|
WHERE one_to_many.left = item;
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@ -42,7 +42,7 @@ CREATE TABLE one_to_many(left INT, right INT) ;
|
|||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
CREATE TABLE summary as SELECT left, int_array_aggregate(right)
|
CREATE TABLE summary as SELECT left, int_array_aggregate(right)
|
||||||
AS right FROM one_to_many GROUP BY left;
|
AS right FROM one_to_many GROUP BY left;
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@ -73,7 +73,7 @@ SELECT left, right FROM one_to_many WHERE left = item;
|
|||||||
<programlisting>
|
<programlisting>
|
||||||
SELECT right, count(right) FROM
|
SELECT right, count(right) FROM
|
||||||
(
|
(
|
||||||
SELECT left, int_array_enum(right) AS right FROM summary JOIN
|
SELECT left, int_array_enum(right) AS right FROM summary JOIN
|
||||||
(SELECT left FROM left_table WHERE left = item) AS lefts
|
(SELECT left FROM left_table WHERE left = item) AS lefts
|
||||||
ON (summary.left = lefts.left )
|
ON (summary.left = lefts.left )
|
||||||
) AS list GROUP BY right ORDER BY count DESC ;
|
) AS list GROUP BY right ORDER BY count DESC ;
|
||||||
|
@ -77,7 +77,7 @@
|
|||||||
<entry>
|
<entry>
|
||||||
<para>
|
<para>
|
||||||
European Article Numbers. This type will always show the EAN13-display
|
European Article Numbers. This type will always show the EAN13-display
|
||||||
format. Te output function for this is <literal>ean13_out()</literal>
|
format. Te output function for this is <literal>ean13_out()</literal>
|
||||||
</para>
|
</para>
|
||||||
</entry>
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
@ -87,7 +87,7 @@
|
|||||||
<entry>
|
<entry>
|
||||||
<para>
|
<para>
|
||||||
For International Standard Book Numbers to be displayed in
|
For International Standard Book Numbers to be displayed in
|
||||||
the new EAN13-display format.
|
the new EAN13-display format.
|
||||||
</para>
|
</para>
|
||||||
</entry>
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
@ -106,7 +106,7 @@
|
|||||||
<entry>
|
<entry>
|
||||||
<para>
|
<para>
|
||||||
For International Standard Serial Numbers to be displayed in the new
|
For International Standard Serial Numbers to be displayed in the new
|
||||||
EAN13-display format.
|
EAN13-display format.
|
||||||
</para>
|
</para>
|
||||||
</entry>
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
@ -115,7 +115,7 @@
|
|||||||
<entry>
|
<entry>
|
||||||
<para>
|
<para>
|
||||||
For International Standard Book Numbers to be displayed in the current
|
For International Standard Book Numbers to be displayed in the current
|
||||||
short-display format.
|
short-display format.
|
||||||
</para>
|
</para>
|
||||||
</entry>
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
@ -124,7 +124,7 @@
|
|||||||
<entry>
|
<entry>
|
||||||
<para>
|
<para>
|
||||||
For International Standard Music Numbers to be displayed in the
|
For International Standard Music Numbers to be displayed in the
|
||||||
current short-display format.
|
current short-display format.
|
||||||
</para>
|
</para>
|
||||||
</entry>
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
@ -447,7 +447,7 @@ INSERT INTO test VALUES('220500896?');
|
|||||||
INSERT INTO test VALUES('978055215372?');
|
INSERT INTO test VALUES('978055215372?');
|
||||||
|
|
||||||
SELECT issn('3251231?');
|
SELECT issn('3251231?');
|
||||||
SELECT ismn('979047213542?');
|
SELECT ismn('979047213542?');
|
||||||
|
|
||||||
--Using the weak mode:
|
--Using the weak mode:
|
||||||
SELECT isn_weak(true);
|
SELECT isn_weak(true);
|
||||||
|
@ -126,9 +126,9 @@ $ du [0-9]* |
|
|||||||
> do
|
> do
|
||||||
> echo "$SIZE `oid2name -q -d alvherre -i -f $FILENODE`"
|
> echo "$SIZE `oid2name -q -d alvherre -i -f $FILENODE`"
|
||||||
> done
|
> done
|
||||||
16 1155287 branches_pkey
|
16 1155287 branches_pkey
|
||||||
16 1155289 tellers_pkey
|
16 1155289 tellers_pkey
|
||||||
17561 1155291 accounts_pkey
|
17561 1155291 accounts_pkey
|
||||||
...
|
...
|
||||||
|
|
||||||
$ # same, but sort by size
|
$ # same, but sort by size
|
||||||
@ -136,9 +136,9 @@ $ du [0-9]* | sort -rn | while read SIZE FN
|
|||||||
> do
|
> do
|
||||||
> echo "$SIZE `oid2name -q -d alvherre -f $FN`"
|
> echo "$SIZE `oid2name -q -d alvherre -f $FN`"
|
||||||
> done
|
> done
|
||||||
133466 155173 accounts
|
133466 155173 accounts
|
||||||
17561 1155291 accounts_pkey
|
17561 1155291 accounts_pkey
|
||||||
1177 16717 pg_proc_proname_args_nsp_index
|
1177 16717 pg_proc_proname_args_nsp_index
|
||||||
...
|
...
|
||||||
|
|
||||||
$ # If you want to see what's in tablespaces, use the pg_tblspc directory
|
$ # If you want to see what's in tablespaces, use the pg_tblspc directory
|
||||||
|
@ -65,12 +65,12 @@ pgbench -i <dbname>
|
|||||||
names. Default test data contains:
|
names. Default test data contains:
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
table # of tuples
|
table # of tuples
|
||||||
-------------------------
|
-------------------------
|
||||||
branches 1
|
branches 1
|
||||||
tellers 10
|
tellers 10
|
||||||
accounts 100000
|
accounts 100000
|
||||||
history 0
|
history 0
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
You can increase the number of tuples by using -s option. branches,
|
You can increase the number of tuples by using -s option. branches,
|
||||||
|
@ -956,7 +956,7 @@ md5 2345086 1 day 3 years
|
|||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<literal>none</literal>- data must be multiple of cipher block size.
|
<literal>none</literal>- data must be multiple of cipher block size.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
@ -22,12 +22,12 @@ pgrowlocks(text) RETURNS pgrowlocks_type
|
|||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
CREATE TYPE pgrowlocks_type AS (
|
CREATE TYPE pgrowlocks_type AS (
|
||||||
locked_row TID, -- row TID
|
locked_row TID, -- row TID
|
||||||
lock_type TEXT, -- lock type
|
lock_type TEXT, -- lock type
|
||||||
locker XID, -- locking XID
|
locker XID, -- locking XID
|
||||||
multi bool, -- multi XID?
|
multi bool, -- multi XID?
|
||||||
xids xid[], -- multi XIDs
|
xids xid[], -- multi XIDs
|
||||||
pids INTEGER[] -- locker's process id
|
pids INTEGER[] -- locker's process id
|
||||||
);
|
);
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
|
@ -46,41 +46,41 @@ free_percent | 1.95
|
|||||||
<thead>
|
<thead>
|
||||||
<row>
|
<row>
|
||||||
<entry>Column</entry>
|
<entry>Column</entry>
|
||||||
<entry>Description</entry>
|
<entry>Description</entry>
|
||||||
</row>
|
</row>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<row>
|
<row>
|
||||||
<entry>table_len</entry>
|
<entry>table_len</entry>
|
||||||
<entry>physical relation length in bytes</entry>
|
<entry>physical relation length in bytes</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>tuple_count</entry>
|
<entry>tuple_count</entry>
|
||||||
<entry>number of live tuples</entry>
|
<entry>number of live tuples</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>tuple_len</entry>
|
<entry>tuple_len</entry>
|
||||||
<entry>total tuples length in bytes</entry>
|
<entry>total tuples length in bytes</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>tuple_percent</entry>
|
<entry>tuple_percent</entry>
|
||||||
<entry>live tuples in %</entry>
|
<entry>live tuples in %</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>dead_tuple_len</entry>
|
<entry>dead_tuple_len</entry>
|
||||||
<entry>total dead tuples length in bytes</entry>
|
<entry>total dead tuples length in bytes</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>dead_tuple_percent</entry>
|
<entry>dead_tuple_percent</entry>
|
||||||
<entry>dead tuples in %</entry>
|
<entry>dead tuples in %</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>free_space</entry>
|
<entry>free_space</entry>
|
||||||
<entry>free space in bytes</entry>
|
<entry>free space in bytes</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>free_percent</entry>
|
<entry>free_percent</entry>
|
||||||
<entry>free space in %</entry>
|
<entry>free space in %</entry>
|
||||||
</row>
|
</row>
|
||||||
</tbody>
|
</tbody>
|
||||||
</tgroup>
|
</tgroup>
|
||||||
|
@ -226,7 +226,7 @@ postgres=> select '10(+-)1'::seg as seg;
|
|||||||
I decided to stick to is as a range operator. This, and
|
I decided to stick to is as a range operator. This, and
|
||||||
also the fact that the white space around the range operator
|
also the fact that the white space around the range operator
|
||||||
is ignored, creates a parsing conflict with numeric constants
|
is ignored, creates a parsing conflict with numeric constants
|
||||||
starting with a decimal point.
|
starting with a decimal point.
|
||||||
</entry>
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
</tbody>
|
</tbody>
|
||||||
@ -305,7 +305,7 @@ postgres=> select '10(+-)1'::seg as seg;
|
|||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
[a, b] << [c, d] Is left of
|
[a, b] << [c, d] Is left of
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
The left operand, [a, b], occurs entirely to the left of the
|
The left operand, [a, b], occurs entirely to the left of the
|
||||||
@ -315,64 +315,64 @@ postgres=> select '10(+-)1'::seg as seg;
|
|||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
[a, b] >> [c, d] Is right of
|
[a, b] >> [c, d] Is right of
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
[a, b] is occurs entirely to the right of [c, d].
|
[a, b] is occurs entirely to the right of [c, d].
|
||||||
[a, b] >> [c, d] is true if a > d and false otherwise
|
[a, b] >> [c, d] is true if a > d and false otherwise
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
[a, b] &< [c, d] Overlaps or is left of
|
[a, b] &< [c, d] Overlaps or is left of
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
This might be better read as "does not extend to right of".
|
This might be better read as "does not extend to right of".
|
||||||
It is true when b <= d.
|
It is true when b <= d.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
[a, b] &> [c, d] Overlaps or is right of
|
[a, b] &> [c, d] Overlaps or is right of
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
This might be better read as "does not extend to left of".
|
This might be better read as "does not extend to left of".
|
||||||
It is true when a >= c.
|
It is true when a >= c.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
[a, b] = [c, d] Same as
|
[a, b] = [c, d] Same as
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
The segments [a, b] and [c, d] are identical, that is, a == b
|
The segments [a, b] and [c, d] are identical, that is, a == b
|
||||||
and c == d
|
and c == d
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
[a, b] && [c, d] Overlaps
|
[a, b] && [c, d] Overlaps
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
The segments [a, b] and [c, d] overlap.
|
The segments [a, b] and [c, d] overlap.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
[a, b] @> [c, d] Contains
|
[a, b] @> [c, d] Contains
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
The segment [a, b] contains the segment [c, d], that is,
|
The segment [a, b] contains the segment [c, d], that is,
|
||||||
a <= c and b >= d
|
a <= c and b >= d
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
[a, b] <@ [c, d] Contained in
|
[a, b] <@ [c, d] Contained in
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
The segment [a, b] is contained in [c, d], that is,
|
The segment [a, b] is contained in [c, d], that is,
|
||||||
a >= c and b <= d
|
a >= c and b <= d
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
@ -393,8 +393,8 @@ postgres=> select '10(+-)1'::seg as seg;
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
[a, b] < [c, d] Less than
|
[a, b] < [c, d] Less than
|
||||||
[a, b] > [c, d] Greater than
|
[a, b] > [c, d] Greater than
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
These operators do not make a lot of sense for any practical
|
These operators do not make a lot of sense for any practical
|
||||||
|
@ -131,7 +131,7 @@ pseudonim
|
|||||||
role
|
role
|
||||||
emailAddress
|
emailAddress
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
All of these fields are optional, except commonName. It depends
|
All of these fields are optional, except commonName. It depends
|
||||||
entirely on your CA policy which of them would be included and which
|
entirely on your CA policy which of them would be included and which
|
||||||
wouldn't. The meaning of these fields, howeer, is strictly defined by
|
wouldn't. The meaning of these fields, howeer, is strictly defined by
|
||||||
|
@ -65,8 +65,8 @@
|
|||||||
<entry>
|
<entry>
|
||||||
<literal>
|
<literal>
|
||||||
connectby(text relname, text keyid_fld, text parent_keyid_fld
|
connectby(text relname, text keyid_fld, text parent_keyid_fld
|
||||||
[, text orderby_fld], text start_with, int max_depth
|
[, text orderby_fld], text start_with, int max_depth
|
||||||
[, text branch_delim])
|
[, text branch_delim])
|
||||||
</literal>
|
</literal>
|
||||||
</entry>
|
</entry>
|
||||||
<entry>
|
<entry>
|
||||||
@ -561,7 +561,7 @@ AS
|
|||||||
<programlisting>
|
<programlisting>
|
||||||
connectby(text relname, text keyid_fld, text parent_keyid_fld
|
connectby(text relname, text keyid_fld, text parent_keyid_fld
|
||||||
[, text orderby_fld], text start_with, int max_depth
|
[, text orderby_fld], text start_with, int max_depth
|
||||||
[, text branch_delim])
|
[, text branch_delim])
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<table>
|
<table>
|
||||||
<title><literal>connectby</literal> parameters</title>
|
<title><literal>connectby</literal> parameters</title>
|
||||||
@ -589,7 +589,7 @@ connectby(text relname, text keyid_fld, text parent_keyid_fld
|
|||||||
<entry><literal>orderby_fld</literal></entry>
|
<entry><literal>orderby_fld</literal></entry>
|
||||||
<entry>
|
<entry>
|
||||||
If optional ordering of siblings is desired: Name of the field to
|
If optional ordering of siblings is desired: Name of the field to
|
||||||
order siblings
|
order siblings
|
||||||
</entry>
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
|
@ -108,20 +108,20 @@
|
|||||||
CREATE TABLE test_trgm (t text);
|
CREATE TABLE test_trgm (t text);
|
||||||
CREATE INDEX trgm_idx ON test_trgm USING gist (t gist_trgm_ops);
|
CREATE INDEX trgm_idx ON test_trgm USING gist (t gist_trgm_ops);
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
At this point, you will have an index on the t text column that you
|
At this point, you will have an index on the t text column that you
|
||||||
can use for similarity searching. Example:
|
can use for similarity searching. Example:
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
SELECT
|
SELECT
|
||||||
t,
|
t,
|
||||||
similarity(t, 'word') AS sml
|
similarity(t, 'word') AS sml
|
||||||
FROM
|
FROM
|
||||||
test_trgm
|
test_trgm
|
||||||
WHERE
|
WHERE
|
||||||
t % 'word'
|
t % 'word'
|
||||||
ORDER BY
|
ORDER BY
|
||||||
sml DESC, t;
|
sml DESC, t;
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
This will return all values in the text column that are sufficiently
|
This will return all values in the text column that are sufficiently
|
||||||
@ -143,7 +143,7 @@ ORDER BY
|
|||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
CREATE TABLE words AS SELECT word FROM
|
CREATE TABLE words AS SELECT word FROM
|
||||||
stat('SELECT to_tsvector(''simple'', bodytext) FROM documents');
|
stat('SELECT to_tsvector(''simple'', bodytext) FROM documents');
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
Where 'documents' is a table that has a text field 'bodytext'
|
Where 'documents' is a table that has a text field 'bodytext'
|
||||||
|
@ -237,10 +237,10 @@
|
|||||||
<programlisting>
|
<programlisting>
|
||||||
SELECT * FROM
|
SELECT * FROM
|
||||||
xpath_table('article_id',
|
xpath_table('article_id',
|
||||||
'article_xml',
|
'article_xml',
|
||||||
'articles',
|
'articles',
|
||||||
'/article/author|/article/pages|/article/title',
|
'/article/author|/article/pages|/article/title',
|
||||||
'date_entered > ''2003-01-01'' ')
|
'date_entered > ''2003-01-01'' ')
|
||||||
AS t(article_id integer, author text, page_count integer, title text);
|
AS t(article_id integer, author text, page_count integer, title text);
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user