Clarify comments in enforce_generic_type_consistency().

Some of the pre-existing comments were vague about whether they
referred to all polymorphic types or only the old-style ones.

Also be more consistent about using the "family 1" vs "family 2"
terminology.

Himanshu Upadhyaya and Tom Lane

Discussion: https://postgr.es/m/CAPF61jBUg9XoMPNuLpoZ+h6UZ2VxKdNt3rQL1xw1GOBwjWzAXQ@mail.gmail.com
This commit is contained in:
Tom Lane 2020-09-07 14:52:33 -04:00
parent 9c79e646c6
commit 53367e6c62
1 changed files with 10 additions and 10 deletions

View File

@ -2155,8 +2155,8 @@ enforce_generic_type_consistency(const Oid *actual_arg_types,
else else
{ {
/* /*
* Only way to get here is if all the polymorphic args have * Only way to get here is if all the family-1 polymorphic
* UNKNOWN inputs * arguments have UNKNOWN inputs.
*/ */
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_DATATYPE_MISMATCH), (errcode(ERRCODE_DATATYPE_MISMATCH),
@ -2254,10 +2254,10 @@ enforce_generic_type_consistency(const Oid *actual_arg_types,
else else
{ {
/* /*
* Only way to get here is if all the ANYCOMPATIBLE args have * Only way to get here is if all the family-2 polymorphic
* UNKNOWN inputs. Resolve to TEXT as select_common_type() * arguments have UNKNOWN inputs. Resolve to TEXT as
* would do. That doesn't license us to use TEXTRANGE, * select_common_type() would do. That doesn't license us to
* though. * use TEXTRANGE, though.
*/ */
anycompatible_typeid = TEXTOID; anycompatible_typeid = TEXTOID;
anycompatible_array_typeid = TEXTARRAYOID; anycompatible_array_typeid = TEXTARRAYOID;
@ -2269,7 +2269,7 @@ enforce_generic_type_consistency(const Oid *actual_arg_types,
} }
} }
/* replace polymorphic types by selected types */ /* replace family-2 polymorphic types by selected types */
for (int j = 0; j < nargs; j++) for (int j = 0; j < nargs; j++)
{ {
Oid decl_type = declared_arg_types[j]; Oid decl_type = declared_arg_types[j];
@ -2285,11 +2285,11 @@ enforce_generic_type_consistency(const Oid *actual_arg_types,
} }
/* /*
* If we had any UNKNOWN inputs for polymorphic arguments, re-scan to * If we had any UNKNOWN inputs for family-1 polymorphic arguments,
* assign correct types to them. * re-scan to assign correct types to them.
* *
* Note: we don't have to consider unknown inputs that were matched to * Note: we don't have to consider unknown inputs that were matched to
* ANYCOMPATIBLE-family arguments, because we forcibly updated their * family-2 polymorphic arguments, because we forcibly updated their
* declared_arg_types[] positions just above. * declared_arg_types[] positions just above.
*/ */
if (have_poly_unknowns) if (have_poly_unknowns)