diff options
-rw-r--r-- | doc/src/sgml/typeconv.sgml | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/doc/src/sgml/typeconv.sgml b/doc/src/sgml/typeconv.sgml index 7cf3efdb1ae..122de98e900 100644 --- a/doc/src/sgml/typeconv.sgml +++ b/doc/src/sgml/typeconv.sgml @@ -748,9 +748,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> @@ -762,17 +764,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> @@ -786,7 +788,7 @@ char</>, the internal name of the <type>character</type> data type) to match the column type. (Since the types <type>text</type> and <type>bpchar</type> are binary-compatible, 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. |