diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c index e038a08725..e1e218f27e 100644 --- a/src/backend/parser/parse_coerce.c +++ b/src/backend/parser/parse_coerce.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.62 2001/10/03 05:29:12 thomas Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.63 2001/10/04 17:52:24 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -284,10 +284,9 @@ coerce_type_typmod(ParseState *pstate, Node *node, Oid oid_array[FUNC_MAX_ARGS]; /* - * We assume that only typmod values greater than 0 indicate a forced - * conversion is necessary. + * A negative typmod is assumed to mean that no coercion is wanted. */ - if ((atttypmod <= 0) || (atttypmod == exprTypmod(node))) + if (atttypmod < 0 || atttypmod == exprTypmod(node)) return node; funcname = typeidTypeName(targetTypeId); diff --git a/src/backend/utils/adt/format_type.c b/src/backend/utils/adt/format_type.c index 0e189d7246..faa0c9f6bb 100644 --- a/src/backend/utils/adt/format_type.c +++ b/src/backend/utils/adt/format_type.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/format_type.c,v 1.17 2001/10/03 18:32:42 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/format_type.c,v 1.18 2001/10/04 17:52:24 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -201,7 +201,7 @@ format_type_internal(Oid type_oid, int32 typemod, bool allow_invalid) break; case TIMEOID: - if (with_typemod && typemod > 0) + if (with_typemod) buf = psnprintf(50, "time(%d) without time zone", typemod); else @@ -209,7 +209,7 @@ format_type_internal(Oid type_oid, int32 typemod, bool allow_invalid) break; case TIMETZOID: - if (with_typemod && typemod > 0) + if (with_typemod) buf = psnprintf(50, "time(%d) with time zone", typemod); else @@ -217,7 +217,7 @@ format_type_internal(Oid type_oid, int32 typemod, bool allow_invalid) break; case TIMESTAMPOID: - if (with_typemod && typemod > 0) + if (with_typemod) buf = psnprintf(50, "timestamp(%d) without time zone", typemod); else @@ -225,7 +225,7 @@ format_type_internal(Oid type_oid, int32 typemod, bool allow_invalid) break; case TIMESTAMPTZOID: - if (with_typemod && typemod > 0) + if (with_typemod) buf = psnprintf(50, "timestamp(%d) with time zone", typemod); else