Commit bc20c412 authored by Thomas G. Lockhart's avatar Thomas G. Lockhart

Fix bug in recent improvement to type resolution code. Forgot to retain

 "best choice" type category when resolving UNKNOWN function and operator
 arguments. Thanks to Tom Lane for finding test case.
parent a8555ad4
......@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.92 2000/11/06 15:42:30 thomas Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.93 2000/11/11 19:49:26 thomas Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -951,6 +951,8 @@ func_select_candidate(int nargs,
/* started out as unknown type, so give preference to string type, if available */
if (current_category == STRING_TYPE)
{
slot_category = current_category;
slot_type = current_type;
/* forget all previous candidates */
candidates = current_candidate;
last_candidate = current_candidate;
......
......@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.42 2000/11/07 16:01:01 thomas Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.43 2000/11/11 19:49:26 thomas Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -435,6 +435,7 @@ oper_select_candidate(int nargs,
current_typeids = current_candidate->args;
current_type = current_typeids[i];
current_category = TypeCategory(current_type);
/* first time through? Then we'll use this one for now */
if (slot_category == INVALID_TYPE)
{
slot_category = current_category;
......@@ -446,6 +447,8 @@ oper_select_candidate(int nargs,
/* started out as unknown type, so give preference to string type, if available */
if (current_category == STRING_TYPE)
{
slot_category = current_category;
slot_type = current_type;
/* forget all previous candidates */
candidates = current_candidate;
last_candidate = current_candidate;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment