Enable fallback to string type when argument(s) are of UNKNOWN type.

Same code exactly as for function resolution.
 An obvious example is for
  select '1' = '01';
 which used to throw an error and which now resolves to two text strings.
This commit is contained in:
Thomas G. Lockhart 2000-11-07 16:01:01 +00:00
parent 3af2827f5b
commit e6e893e74f

View File

@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.41 2000/05/28 17:56:00 tgl Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.42 2000/11/07 16:01:01 thomas Exp $
*
*-------------------------------------------------------------------------
*/
@ -443,8 +443,21 @@ oper_select_candidate(int nargs,
}
else if (current_category != slot_category)
{
/* punt if more than one category for this slot */
return NULL;
/* started out as unknown type, so give preference to string type, if available */
if (current_category == STRING_TYPE)
{
/* forget all previous candidates */
candidates = current_candidate;
last_candidate = current_candidate;
}
else if (slot_category == STRING_TYPE)
{
/* forget this candidate */
if (last_candidate)
last_candidate->next = current_candidate->next;
else
candidates = current_candidate->next;
}
}
else if (current_type != slot_type)
{