|
|
|
@ -8,7 +8,7 @@ |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
* IDENTIFICATION |
|
|
|
|
* $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.39 2000/03/20 15:42:45 momjian Exp $ |
|
|
|
|
* $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.40 2000/03/23 07:36:03 tgl Exp $ |
|
|
|
|
* |
|
|
|
|
*------------------------------------------------------------------------- |
|
|
|
|
*/ |
|
|
|
@ -38,8 +38,9 @@ coerce_type(ParseState *pstate, Node *node, Oid inputTypeId, |
|
|
|
|
{ |
|
|
|
|
Node *result; |
|
|
|
|
|
|
|
|
|
if (targetTypeId == InvalidOid || |
|
|
|
|
targetTypeId == inputTypeId) |
|
|
|
|
if (targetTypeId == inputTypeId || |
|
|
|
|
targetTypeId == InvalidOid || |
|
|
|
|
node == NULL) |
|
|
|
|
{ |
|
|
|
|
/* no conversion needed */ |
|
|
|
|
result = node; |
|
|
|
@ -141,8 +142,13 @@ coerce_type(ParseState *pstate, Node *node, Oid inputTypeId, |
|
|
|
|
* |
|
|
|
|
* Note that no folding will occur if the conversion function is |
|
|
|
|
* not marked 'iscachable'. |
|
|
|
|
* |
|
|
|
|
* HACK: if constant is NULL, don't fold it here. This is needed |
|
|
|
|
* by make_subplan(), which calls this routine on placeholder Const |
|
|
|
|
* nodes that mustn't be collapsed. (It'd be a lot cleaner to make |
|
|
|
|
* a separate node type for that purpose...) |
|
|
|
|
*/ |
|
|
|
|
if (IsA(node, Const)) |
|
|
|
|
if (IsA(node, Const) && ! ((Const *) node)->constisnull) |
|
|
|
|
result = eval_const_expressions(result); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -614,7 +620,6 @@ PromoteLesserType(Oid inType1, Oid inType2, Oid *newType1, Oid *newType2) |
|
|
|
|
{ |
|
|
|
|
case (BPCHAROID): |
|
|
|
|
case (VARCHAROID): |
|
|
|
|
case (BYTEA): |
|
|
|
|
case (TEXTOID): |
|
|
|
|
|
|
|
|
|
case (INT2OID): |
|
|
|
|