diff options
author | Tatsuo Ishii <ishii@postgresql.org> | 2002-03-04 03:55:50 +0000 |
---|---|---|
committer | Tatsuo Ishii <ishii@postgresql.org> | 2002-03-04 03:55:50 +0000 |
commit | 3382fbb60d15a865ca08ed81e5d467a1a71a53de (patch) | |
tree | b14285d8b61949098ba67a31164d8132b20f1eaa /src/backend/utils/adt/timestamp.c | |
parent | a616cbc5e363eca58b1f7d3be45725d55d685702 (diff) | |
download | postgresql-3382fbb60d15a865ca08ed81e5d467a1a71a53de.tar.gz postgresql-3382fbb60d15a865ca08ed81e5d467a1a71a53de.zip |
Fix bug in extract/date_part for milliseconds/miscroseconds and
timestamp/timestamptz combo. Now extract/date_part returns
seconds*1000 or 1000000 + fraction part as the manual stats.
regression test are also fixed.
See the thread in pgsql-hackers:
Subject: Re: [HACKERS] timestamp_part() bug?
Date: Sat, 02 Mar 2002 11:29:53 +0900
Diffstat (limited to 'src/backend/utils/adt/timestamp.c')
-rw-r--r-- | src/backend/utils/adt/timestamp.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c index 5c2de69cb29..cff48d925e9 100644 --- a/src/backend/utils/adt/timestamp.c +++ b/src/backend/utils/adt/timestamp.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v 1.62 2002/01/12 04:38:27 thomas Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v 1.63 2002/03/04 03:55:46 ishii Exp $ * *------------------------------------------------------------------------- */ @@ -2410,11 +2410,11 @@ timestamp_part(PG_FUNCTION_ARGS) switch (val) { case DTK_MICROSEC: - result = (fsec * 1000000); + result = (tm->tm_sec + fsec) * 1000000; break; case DTK_MILLISEC: - result = (fsec * 1000); + result = (tm->tm_sec + fsec) * 1000; break; case DTK_SECOND: @@ -2574,11 +2574,11 @@ timestamptz_part(PG_FUNCTION_ARGS) break; case DTK_MICROSEC: - result = (fsec * 1000000); + result = (tm->tm_sec + fsec) * 1000000; break; case DTK_MILLISEC: - result = (fsec * 1000); + result = (tm->tm_sec + fsec) * 1000; break; case DTK_SECOND: |