Make the world safe for atttypmod=0 ... this didn't use to mean anything,
authorTom Lane
Thu, 4 Oct 2001 17:52:24 +0000 (17:52 +0000)
committerTom Lane
Thu, 4 Oct 2001 17:52:24 +0000 (17:52 +0000)
but timestamp now wants it to mean something.

src/backend/parser/parse_coerce.c
src/backend/utils/adt/format_type.c

index e038a087251d392f04df7f24c906017fb4adf17e..e1e218f27eca9d1cc4d1f911e2428583894b92a1 100644 (file)
@@ -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);
index 0e189d7246166515e368cf68757aa7ccde1efe08..faa0c9f6bb6c9d43cc95aa5fd0afda2315970e1e 100644 (file)
@@ -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