Fix some problems in new variable-resolution-timestamp code.
authorTom Lane
Thu, 4 Oct 2001 14:49:57 +0000 (14:49 +0000)
committerTom Lane
Thu, 4 Oct 2001 14:49:57 +0000 (14:49 +0000)
src/backend/utils/adt/date.c
src/backend/utils/adt/timestamp.c

index d35849cd62ad192c437b2f8ff29bfeff9969580d..762f6e0fbebaeb7d6aae791df71fb22d47ff188b 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.59 2001/10/03 05:29:24 thomas Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.60 2001/10/04 14:49:57 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -920,8 +920,10 @@ text_time(PG_FUNCTION_ARGS)
        *dp++ = *sp++;
    *dp = '\0';
 
-   return DirectFunctionCall1(time_in,
-                              CStringGetDatum(dstr));
+   return DirectFunctionCall3(time_in,
+                              CStringGetDatum(dstr),
+                              ObjectIdGetDatum(InvalidOid),
+                              Int32GetDatum(-1));
 }
 
 
@@ -1448,8 +1450,10 @@ text_timetz(PG_FUNCTION_ARGS)
        *dp++ = *sp++;
    *dp = '\0';
 
-   return DirectFunctionCall1(timetz_in,
-                              CStringGetDatum(dstr));
+   return DirectFunctionCall3(timetz_in,
+                              CStringGetDatum(dstr),
+                              ObjectIdGetDatum(InvalidOid),
+                              Int32GetDatum(-1));
 }
 
 /* timetz_zone()
index 112e8a26d6f0a1b8fcb4c941aa33109b3ea42b78..fbd85df787c9382fb5f8597bfe0df6257b78092d 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v 1.53 2001/10/03 15:50:48 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v 1.54 2001/10/04 14:49:57 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -152,7 +152,10 @@ AdjustTimestampForTypmod(Timestamp *time, int32 typmod)
        static int32 TimestampTypmod = 0;
 
        if (typmod != TimestampTypmod)
-           TimestampScale = pow(10, typmod);
+       {
+           TimestampScale = pow(10.0, typmod);
+           TimestampTypmod = typmod;
+       }
 
        *time = (rint(((double) *time)*TimestampScale)/TimestampScale);
    }
@@ -1716,8 +1719,10 @@ text_timestamp(PG_FUNCTION_ARGS)
        *dp++ = *sp++;
    *dp = '\0';
 
-   return DirectFunctionCall1(timestamp_in,
-                              CStringGetDatum(dstr));
+   return DirectFunctionCall3(timestamp_in,
+                              CStringGetDatum(dstr),
+                              ObjectIdGetDatum(InvalidOid),
+                              Int32GetDatum(-1));
 }
 
 
@@ -1770,8 +1775,10 @@ text_timestamptz(PG_FUNCTION_ARGS)
        *dp++ = *sp++;
    *dp = '\0';
 
-   return DirectFunctionCall1(timestamptz_in,
-                              CStringGetDatum(dstr));
+   return DirectFunctionCall3(timestamptz_in,
+                              CStringGetDatum(dstr),
+                              ObjectIdGetDatum(InvalidOid),
+                              Int32GetDatum(-1));
 }