From e34d442dbbe855a6ec4dfe957ec6083a6ab6fbb0 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 19 Dec 2000 00:54:59 +0000 Subject: [PATCH] Mention fallback case for type coercion in description of function resolution procedure. --- doc/src/sgml/typeconv.sgml | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/doc/src/sgml/typeconv.sgml b/doc/src/sgml/typeconv.sgml index 8b51ed2fa3..e9d225f242 100644 --- a/doc/src/sgml/typeconv.sgml +++ b/doc/src/sgml/typeconv.sgml @@ -279,7 +279,7 @@ select "string" category if any candidate accepts that category (this bias towards string is appropriate since an unknown-type literal does look like a string). Otherwise, if all the remaining candidates accept the same type category, -select that category; otherwise raise an error because +select that category; otherwise fail because the correct choice cannot be deduced without more clues. Also note whether any of the candidates accept a preferred datatype within the selected category. Now discard operator candidates that do not accept the selected type category; @@ -292,7 +292,7 @@ argument. If only one candidate remains, use it. If no candidate or more than one candidate remains, -then raise an error. +then fail. @@ -488,7 +488,7 @@ select "string" category if any candidate accepts that category (this bias towards string is appropriate since an unknown-type literal does look like a string). Otherwise, if all the remaining candidates accept the same type category, -select that category; otherwise raise an error because +select that category; otherwise fail because the correct choice cannot be deduced without more clues. Also note whether any of the candidates accept a preferred datatype within the selected category. Now discard operator candidates that do not accept the selected type category; @@ -501,11 +501,22 @@ argument. If only one candidate remains, use it. If no candidate or more than one candidate remains, -then raise an error. +then fail. + + +If no best match could be identified, see whether the function call appears +to be a trivial type coercion request. This happens if the function call +has just one argument and the function name is the same as the (internal) +name of some datatype. Furthermore, the function argument must be either +an unknown-type literal or a type that is binary-compatible with the named +datatype. When these conditions are met, the function argument is coerced +to the named datatype. + + @@ -699,8 +710,7 @@ Otherwise, ignore the unknown inputs while choosing the type. -If the non-unknown inputs are not all of the same type category, raise an -error. +If the non-unknown inputs are not all of the same type category, fail. -- 2.11.0