Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3382fbb

Browse files
committed
Fix bug in extract/date_part for milliseconds/miscroseconds and
timestamp/timestamptz combo. Now extract/date_part returnsseconds*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
1 parenta616cbc commit3382fbb

File tree

3 files changed

+117
-117
lines changed

3 files changed

+117
-117
lines changed

‎src/backend/utils/adt/timestamp.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v 1.62 2002/01/12 04:38:27 thomas Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v 1.63 2002/03/04 03:55:46 ishii Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -2410,11 +2410,11 @@ timestamp_part(PG_FUNCTION_ARGS)
24102410
switch (val)
24112411
{
24122412
caseDTK_MICROSEC:
2413-
result= (fsec*1000000);
2413+
result= (tm->tm_sec+fsec)*1000000;
24142414
break;
24152415

24162416
caseDTK_MILLISEC:
2417-
result= (fsec*1000);
2417+
result= (tm->tm_sec+fsec)*1000;
24182418
break;
24192419

24202420
caseDTK_SECOND:
@@ -2574,11 +2574,11 @@ timestamptz_part(PG_FUNCTION_ARGS)
25742574
break;
25752575

25762576
caseDTK_MICROSEC:
2577-
result= (fsec*1000000);
2577+
result= (tm->tm_sec+fsec)*1000000;
25782578
break;
25792579

25802580
caseDTK_MILLISEC:
2581-
result= (fsec*1000);
2581+
result= (tm->tm_sec+fsec)*1000;
25822582
break;
25832583

25842584
caseDTK_SECOND:

‎src/test/regress/expected/timestamp.out

Lines changed: 56 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -627,62 +627,62 @@ SELECT '' AS "54", d1 as "timestamp",
627627
date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec,
628628
date_part( 'usec', d1) AS usec
629629
FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
630-
54 | timestamp | quarter | msec | usec
631-
----+-----------------------------+---------+------+--------
632-
| Thu Jan 01 00:00:00 1970 | 1 | 0 | 0
633-
| Mon Feb 10 17:32:01 1997 | 1 | 0| 0
634-
| Mon Feb 10 17:32:01 1997 | 1 | 0| 0
635-
| Mon Feb 10 17:32:02 1997 | 1 | 0| 0
636-
| Mon Feb 10 17:32:01.40 1997 | 1 |400 |400000
637-
| Mon Feb 10 17:32:01.50 1997 | 1 |500 |500000
638-
| Mon Feb 10 17:32:01.60 1997 | 1 |600 |600000
639-
| Thu Jan 02 00:00:00 1997 | 1 | 0 | 0
640-
| Thu Jan 02 03:04:05 1997 | 1 | 0| 0
641-
| Mon Feb 10 17:32:01 1997 | 1 | 0| 0
642-
| Mon Feb 10 17:32:01 1997 | 1 | 0| 0
643-
| Mon Feb 10 17:32:01 1997 | 1 | 0| 0
644-
| Mon Feb 10 17:32:01 1997 | 1 | 0| 0
645-
| Tue Jun 10 17:32:01 1997 | 2 | 0| 0
646-
| Sat Sep 22 18:19:20 2001 | 3 | 0 | 0
647-
| Wed Mar 15 08:14:01 2000 | 1 | 0| 0
648-
| Wed Mar 15 13:14:02 2000 | 1 | 0| 0
649-
| Wed Mar 15 12:14:03 2000 | 1 | 0| 0
650-
| Wed Mar 15 03:14:04 2000 | 1 | 0| 0
651-
| Wed Mar 15 02:14:05 2000 | 1 | 0| 0
652-
| Mon Feb 10 17:32:01 1997 | 1 | 0| 0
653-
| Mon Feb 10 17:32:01 1997 | 1 | 0| 0
654-
| Mon Feb 10 17:32:00 1997 | 1 | 0 | 0
655-
| Mon Feb 10 17:32:01 1997 | 1 | 0| 0
656-
| Mon Feb 10 17:32:01 1997 | 1 | 0| 0
657-
| Mon Feb 10 17:32:01 1997 | 1 | 0| 0
658-
| Mon Feb 10 17:32:01 1997 | 1 | 0| 0
659-
| Mon Feb 10 17:32:01 1997 | 1 | 0| 0
660-
| Mon Feb 10 17:32:01 1997 | 1 | 0| 0
661-
| Mon Feb 10 17:32:01 1997 | 1 | 0| 0
662-
| Mon Feb 10 17:32:01 1997 | 1 | 0| 0
663-
| Tue Jun 10 18:32:01 1997 | 2 | 0| 0
664-
| Mon Feb 10 17:32:01 1997 | 1 | 0| 0
665-
| Tue Feb 11 17:32:01 1997 | 1 | 0| 0
666-
| Wed Feb 12 17:32:01 1997 | 1 | 0| 0
667-
| Thu Feb 13 17:32:01 1997 | 1 | 0| 0
668-
| Fri Feb 14 17:32:01 1997 | 1 | 0| 0
669-
| Sat Feb 15 17:32:01 1997 | 1 | 0| 0
670-
| Sun Feb 16 17:32:01 1997 | 1 | 0| 0
671-
| Sun Feb 16 17:32:01 1997 | 1 | 0| 0
672-
| Wed Feb 28 17:32:01 1996 | 1 | 0| 0
673-
| Thu Feb 29 17:32:01 1996 | 1 | 0| 0
674-
| Fri Mar 01 17:32:01 1996 | 1 | 0| 0
675-
| Mon Dec 30 17:32:01 1996 | 4 | 0| 0
676-
| Tue Dec 31 17:32:01 1996 | 4 | 0| 0
677-
| Wed Jan 01 17:32:01 1997 | 1 | 0| 0
678-
| Fri Feb 28 17:32:01 1997 | 1 | 0| 0
679-
| Sat Mar 01 17:32:01 1997 | 1 | 0| 0
680-
| Tue Dec 30 17:32:01 1997 | 4 | 0| 0
681-
| Wed Dec 31 17:32:01 1997 | 4 | 0| 0
682-
| Fri Dec 31 17:32:01 1999 | 4 | 0| 0
683-
| Sat Jan 01 17:32:01 2000 | 1 | 0| 0
684-
| Sun Dec 31 17:32:01 2000 | 4 | 0| 0
685-
| Mon Jan 01 17:32:01 2001 | 1 | 0| 0
630+
54 | timestamp | quarter | msec|usec
631+
----+-----------------------------+---------+-------+----------
632+
| Thu Jan 01 00:00:00 1970 | 1 |0 | 0
633+
| Mon Feb 10 17:32:01 1997 | 1 |1000|1000000
634+
| Mon Feb 10 17:32:01 1997 | 1 |1000|1000000
635+
| Mon Feb 10 17:32:02 1997 | 1 |2000|2000000
636+
| Mon Feb 10 17:32:01.40 1997 | 1 |1400 | 1400000
637+
| Mon Feb 10 17:32:01.50 1997 | 1 |1500 | 1500000
638+
| Mon Feb 10 17:32:01.60 1997 | 1 |1600 | 1600000
639+
| Thu Jan 02 00:00:00 1997 | 1 |0 | 0
640+
| Thu Jan 02 03:04:05 1997 | 1 |5000|5000000
641+
| Mon Feb 10 17:32:01 1997 | 1 |1000|1000000
642+
| Mon Feb 10 17:32:01 1997 | 1 |1000|1000000
643+
| Mon Feb 10 17:32:01 1997 | 1 |1000|1000000
644+
| Mon Feb 10 17:32:01 1997 | 1 |1000|1000000
645+
| Tue Jun 10 17:32:01 1997 | 2 |1000|1000000
646+
| Sat Sep 22 18:19:20 2001 | 3 |20000 | 20000000
647+
| Wed Mar 15 08:14:01 2000 | 1 |1000|1000000
648+
| Wed Mar 15 13:14:02 2000 | 1 |2000|2000000
649+
| Wed Mar 15 12:14:03 2000 | 1 |3000|3000000
650+
| Wed Mar 15 03:14:04 2000 | 1 |4000|4000000
651+
| Wed Mar 15 02:14:05 2000 | 1 |5000|5000000
652+
| Mon Feb 10 17:32:01 1997 | 1 |1000|1000000
653+
| Mon Feb 10 17:32:01 1997 | 1 |1000|1000000
654+
| Mon Feb 10 17:32:00 1997 | 1 |0 | 0
655+
| Mon Feb 10 17:32:01 1997 | 1 |1000|1000000
656+
| Mon Feb 10 17:32:01 1997 | 1 |1000|1000000
657+
| Mon Feb 10 17:32:01 1997 | 1 |1000|1000000
658+
| Mon Feb 10 17:32:01 1997 | 1 |1000|1000000
659+
| Mon Feb 10 17:32:01 1997 | 1 |1000|1000000
660+
| Mon Feb 10 17:32:01 1997 | 1 |1000|1000000
661+
| Mon Feb 10 17:32:01 1997 | 1 |1000|1000000
662+
| Mon Feb 10 17:32:01 1997 | 1 |1000|1000000
663+
| Tue Jun 10 18:32:01 1997 | 2 |1000|1000000
664+
| Mon Feb 10 17:32:01 1997 | 1 |1000|1000000
665+
| Tue Feb 11 17:32:01 1997 | 1 |1000|1000000
666+
| Wed Feb 12 17:32:01 1997 | 1 |1000|1000000
667+
| Thu Feb 13 17:32:01 1997 | 1 |1000|1000000
668+
| Fri Feb 14 17:32:01 1997 | 1 |1000|1000000
669+
| Sat Feb 15 17:32:01 1997 | 1 |1000|1000000
670+
| Sun Feb 16 17:32:01 1997 | 1 |1000|1000000
671+
| Sun Feb 16 17:32:01 1997 | 1 |1000|1000000
672+
| Wed Feb 28 17:32:01 1996 | 1 |1000|1000000
673+
| Thu Feb 29 17:32:01 1996 | 1 |1000|1000000
674+
| Fri Mar 01 17:32:01 1996 | 1 |1000|1000000
675+
| Mon Dec 30 17:32:01 1996 | 4 |1000|1000000
676+
| Tue Dec 31 17:32:01 1996 | 4 |1000|1000000
677+
| Wed Jan 01 17:32:01 1997 | 1 |1000|1000000
678+
| Fri Feb 28 17:32:01 1997 | 1 |1000|1000000
679+
| Sat Mar 01 17:32:01 1997 | 1 |1000|1000000
680+
| Tue Dec 30 17:32:01 1997 | 4 |1000|1000000
681+
| Wed Dec 31 17:32:01 1997 | 4 |1000|1000000
682+
| Fri Dec 31 17:32:01 1999 | 4 |1000|1000000
683+
| Sat Jan 01 17:32:01 2000 | 1 |1000|1000000
684+
| Sun Dec 31 17:32:01 2000 | 4 |1000|1000000
685+
| Mon Jan 01 17:32:01 2001 | 1 |1000|1000000
686686
(54 rows)
687687

688688
-- TO_CHAR()

‎src/test/regress/expected/timestamptz.out

Lines changed: 56 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -621,62 +621,62 @@ SELECT '' AS "54", d1 as timestamptz,
621621
date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec,
622622
date_part( 'usec', d1) AS usec
623623
FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
624-
54 | timestamptz | quarter | msec | usec
625-
----+---------------------------------+---------+------+--------
626-
| Wed Dec 31 16:00:00 1969 PST | 4 | 0 | 0
627-
| Mon Feb 10 17:32:01 1997 PST | 1 | 0| 0
628-
| Mon Feb 10 17:32:01 1997 PST | 1 | 0| 0
629-
| Mon Feb 10 17:32:02 1997 PST | 1 | 0| 0
630-
| Mon Feb 10 17:32:01.40 1997 PST | 1 |400 |400000
631-
| Mon Feb 10 17:32:01.50 1997 PST | 1 |500 |500000
632-
| Mon Feb 10 17:32:01.60 1997 PST | 1 |600 |600000
633-
| Thu Jan 02 00:00:00 1997 PST | 1 | 0 | 0
634-
| Thu Jan 02 03:04:05 1997 PST | 1 | 0| 0
635-
| Mon Feb 10 17:32:01 1997 PST | 1 | 0| 0
636-
| Mon Feb 10 17:32:01 1997 PST | 1 | 0| 0
637-
| Mon Feb 10 17:32:01 1997 PST | 1 | 0| 0
638-
| Mon Feb 10 17:32:01 1997 PST | 1 | 0| 0
639-
| Tue Jun 10 17:32:01 1997 PDT | 2 | 0| 0
640-
| Sat Sep 22 18:19:20 2001 PDT | 3 | 0 | 0
641-
| Wed Mar 15 08:14:01 2000 PST | 1 | 0| 0
642-
| Wed Mar 15 04:14:02 2000 PST | 1 | 0| 0
643-
| Wed Mar 15 02:14:03 2000 PST | 1 | 0| 0
644-
| Wed Mar 15 03:14:04 2000 PST | 1 | 0| 0
645-
| Wed Mar 15 01:14:05 2000 PST | 1 | 0| 0
646-
| Mon Feb 10 17:32:01 1997 PST | 1 | 0| 0
647-
| Mon Feb 10 17:32:01 1997 PST | 1 | 0| 0
648-
| Mon Feb 10 17:32:00 1997 PST | 1 | 0 | 0
649-
| Mon Feb 10 17:32:01 1997 PST | 1 | 0| 0
650-
| Mon Feb 10 17:32:01 1997 PST | 1 | 0| 0
651-
| Mon Feb 10 17:32:01 1997 PST | 1 | 0| 0
652-
| Mon Feb 10 17:32:01 1997 PST | 1 | 0| 0
653-
| Mon Feb 10 17:32:01 1997 PST | 1 | 0| 0
654-
| Mon Feb 10 09:32:01 1997 PST | 1 | 0| 0
655-
| Mon Feb 10 09:32:01 1997 PST | 1 | 0| 0
656-
| Mon Feb 10 09:32:01 1997 PST | 1 | 0| 0
657-
| Tue Jun 10 18:32:01 1997 PDT | 2 | 0| 0
658-
| Mon Feb 10 17:32:01 1997 PST | 1 | 0| 0
659-
| Tue Feb 11 17:32:01 1997 PST | 1 | 0| 0
660-
| Wed Feb 12 17:32:01 1997 PST | 1 | 0| 0
661-
| Thu Feb 13 17:32:01 1997 PST | 1 | 0| 0
662-
| Fri Feb 14 17:32:01 1997 PST | 1 | 0| 0
663-
| Sat Feb 15 17:32:01 1997 PST | 1 | 0| 0
664-
| Sun Feb 16 17:32:01 1997 PST | 1 | 0| 0
665-
| Sun Feb 16 17:32:01 1997 PST | 1 | 0| 0
666-
| Wed Feb 28 17:32:01 1996 PST | 1 | 0| 0
667-
| Thu Feb 29 17:32:01 1996 PST | 1 | 0| 0
668-
| Fri Mar 01 17:32:01 1996 PST | 1 | 0| 0
669-
| Mon Dec 30 17:32:01 1996 PST | 4 | 0| 0
670-
| Tue Dec 31 17:32:01 1996 PST | 4 | 0| 0
671-
| Wed Jan 01 17:32:01 1997 PST | 1 | 0| 0
672-
| Fri Feb 28 17:32:01 1997 PST | 1 | 0| 0
673-
| Sat Mar 01 17:32:01 1997 PST | 1 | 0| 0
674-
| Tue Dec 30 17:32:01 1997 PST | 4 | 0| 0
675-
| Wed Dec 31 17:32:01 1997 PST | 4 | 0| 0
676-
| Fri Dec 31 17:32:01 1999 PST | 4 | 0| 0
677-
| Sat Jan 01 17:32:01 2000 PST | 1 | 0| 0
678-
| Sun Dec 31 17:32:01 2000 PST | 4 | 0| 0
679-
| Mon Jan 01 17:32:01 2001 PST | 1 | 0| 0
624+
54 | timestamptz | quarter | msec|usec
625+
----+---------------------------------+---------+-------+----------
626+
| Wed Dec 31 16:00:00 1969 PST | 4 |0 | 0
627+
| Mon Feb 10 17:32:01 1997 PST | 1 |1000|1000000
628+
| Mon Feb 10 17:32:01 1997 PST | 1 |1000|1000000
629+
| Mon Feb 10 17:32:02 1997 PST | 1 |2000|2000000
630+
| Mon Feb 10 17:32:01.40 1997 PST | 1 |1400 | 1400000
631+
| Mon Feb 10 17:32:01.50 1997 PST | 1 |1500 | 1500000
632+
| Mon Feb 10 17:32:01.60 1997 PST | 1 |1600 | 1600000
633+
| Thu Jan 02 00:00:00 1997 PST | 1 |0 | 0
634+
| Thu Jan 02 03:04:05 1997 PST | 1 |5000|5000000
635+
| Mon Feb 10 17:32:01 1997 PST | 1 |1000|1000000
636+
| Mon Feb 10 17:32:01 1997 PST | 1 |1000|1000000
637+
| Mon Feb 10 17:32:01 1997 PST | 1 |1000|1000000
638+
| Mon Feb 10 17:32:01 1997 PST | 1 |1000|1000000
639+
| Tue Jun 10 17:32:01 1997 PDT | 2 |1000|1000000
640+
| Sat Sep 22 18:19:20 2001 PDT | 3 |20000 | 20000000
641+
| Wed Mar 15 08:14:01 2000 PST | 1 |1000|1000000
642+
| Wed Mar 15 04:14:02 2000 PST | 1 |2000|2000000
643+
| Wed Mar 15 02:14:03 2000 PST | 1 |3000|3000000
644+
| Wed Mar 15 03:14:04 2000 PST | 1 |4000|4000000
645+
| Wed Mar 15 01:14:05 2000 PST | 1 |5000|5000000
646+
| Mon Feb 10 17:32:01 1997 PST | 1 |1000|1000000
647+
| Mon Feb 10 17:32:01 1997 PST | 1 |1000|1000000
648+
| Mon Feb 10 17:32:00 1997 PST | 1 |0 | 0
649+
| Mon Feb 10 17:32:01 1997 PST | 1 |1000|1000000
650+
| Mon Feb 10 17:32:01 1997 PST | 1 |1000|1000000
651+
| Mon Feb 10 17:32:01 1997 PST | 1 |1000|1000000
652+
| Mon Feb 10 17:32:01 1997 PST | 1 |1000|1000000
653+
| Mon Feb 10 17:32:01 1997 PST | 1 |1000|1000000
654+
| Mon Feb 10 09:32:01 1997 PST | 1 |1000|1000000
655+
| Mon Feb 10 09:32:01 1997 PST | 1 |1000|1000000
656+
| Mon Feb 10 09:32:01 1997 PST | 1 |1000|1000000
657+
| Tue Jun 10 18:32:01 1997 PDT | 2 |1000|1000000
658+
| Mon Feb 10 17:32:01 1997 PST | 1 |1000|1000000
659+
| Tue Feb 11 17:32:01 1997 PST | 1 |1000|1000000
660+
| Wed Feb 12 17:32:01 1997 PST | 1 |1000|1000000
661+
| Thu Feb 13 17:32:01 1997 PST | 1 |1000|1000000
662+
| Fri Feb 14 17:32:01 1997 PST | 1 |1000|1000000
663+
| Sat Feb 15 17:32:01 1997 PST | 1 |1000|1000000
664+
| Sun Feb 16 17:32:01 1997 PST | 1 |1000|1000000
665+
| Sun Feb 16 17:32:01 1997 PST | 1 |1000|1000000
666+
| Wed Feb 28 17:32:01 1996 PST | 1 |1000|1000000
667+
| Thu Feb 29 17:32:01 1996 PST | 1 |1000|1000000
668+
| Fri Mar 01 17:32:01 1996 PST | 1 |1000|1000000
669+
| Mon Dec 30 17:32:01 1996 PST | 4 |1000|1000000
670+
| Tue Dec 31 17:32:01 1996 PST | 4 |1000|1000000
671+
| Wed Jan 01 17:32:01 1997 PST | 1 |1000|1000000
672+
| Fri Feb 28 17:32:01 1997 PST | 1 |1000|1000000
673+
| Sat Mar 01 17:32:01 1997 PST | 1 |1000|1000000
674+
| Tue Dec 30 17:32:01 1997 PST | 4 |1000|1000000
675+
| Wed Dec 31 17:32:01 1997 PST | 4 |1000|1000000
676+
| Fri Dec 31 17:32:01 1999 PST | 4 |1000|1000000
677+
| Sat Jan 01 17:32:01 2000 PST | 1 |1000|1000000
678+
| Sun Dec 31 17:32:01 2000 PST | 4 |1000|1000000
679+
| Mon Jan 01 17:32:01 2001 PST | 1 |1000|1000000
680680
(54 rows)
681681

682682
-- TO_CHAR()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp