*
*
* 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 $
*
*-------------------------------------------------------------------------
*/
}
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)
{