aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2011-09-06 12:14:51 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2011-09-06 12:14:51 -0400
commitb7f83e70d9758c5dd480c9dbba1668ddeec37916 (patch)
tree47eb307daa7da334c573594804127f5a3a4bc6b3 /doc/src
parentd764835bbc705f38311b5a6fe14a9aff4feb6fc3 (diff)
downloadpostgresql-b7f83e70d9758c5dd480c9dbba1668ddeec37916.tar.gz
postgresql-b7f83e70d9758c5dd480c9dbba1668ddeec37916.zip
Update type-conversion documentation for long-ago changes.
This example wasn't updated when we changed the behavior of bpcharlen() in 8.0, nor when we changed the number of parameters taken by the bpchar() cast function in 7.3. Per report from lsliang.
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/typeconv.sgml22
1 files changed, 12 insertions, 10 deletions
diff --git a/doc/src/sgml/typeconv.sgml b/doc/src/sgml/typeconv.sgml
index f233e9d712e..cca45eb5698 100644
--- a/doc/src/sgml/typeconv.sgml
+++ b/doc/src/sgml/typeconv.sgml
@@ -758,9 +758,11 @@ cast is a cast from that type to itself. If one is found in the
<structname>pg_cast</> catalog, apply it to the expression before storing
into the destination column. The implementation function for such a cast
always takes an extra parameter of type <type>integer</type>, which receives
-the destination column's declared length (actually, its
-<structfield>atttypmod</> value; the interpretation of
-<structfield>atttypmod</> varies for different data types). The cast function
+the destination column's <structfield>atttypmod</> value (typically its
+declared length, although the interpretation of <structfield>atttypmod</>
+varies for different data types), and it may take a third <type>boolean</>
+parameter that says whether the cast is explicit or implicit. The cast
+function
is responsible for applying any length-dependent semantics such as size
checking or truncation.
</para>
@@ -772,17 +774,17 @@ checking or truncation.
<title><type>character</type> Storage Type Conversion</title>
<para>
-For a target column declared as <type>character(20)</type> the following statement
-ensures that the stored value is sized correctly:
+For a target column declared as <type>character(20)</type> the following
+statement shows that the stored value is sized correctly:
<screen>
CREATE TABLE vv (v character(20));
INSERT INTO vv SELECT 'abc' || 'def';
-SELECT v, length(v) FROM vv;
+SELECT v, octet_length(v) FROM vv;
- v | length
-----------------------+--------
- abcdef | 20
+ v | octet_length
+----------------------+--------------
+ abcdef | 20
(1 row)
</screen>
</para>
@@ -796,7 +798,7 @@ char</>, the internal name of the <type>character</type> data type) to match the
column type. (Since the conversion from <type>text</type> to
<type>bpchar</type> is binary-coercible, this conversion does
not insert any real function call.) Finally, the sizing function
-<literal>bpchar(bpchar, integer)</literal> is found in the system catalog
+<literal>bpchar(bpchar, integer, boolean)</> is found in the system catalog
and applied to the operator's result and the stored column length. This
type-specific function performs the required length check and addition of
padding spaces.