summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/utils/adt/date.c5
-rw-r--r--src/test/regress/expected/horology-no-DST-before-1970.out26
-rw-r--r--src/test/regress/expected/horology-solaris-1947.out26
-rw-r--r--src/test/regress/expected/horology.out26
-rw-r--r--src/test/regress/expected/time.out9
-rw-r--r--src/test/regress/sql/horology.sql2
-rw-r--r--src/test/regress/sql/time.sql7
7 files changed, 73 insertions, 28 deletions
diff --git a/src/backend/utils/adt/date.c b/src/backend/utils/adt/date.c
index 90f41ad817d..09d0e9aa256 100644
--- a/src/backend/utils/adt/date.c
+++ b/src/backend/utils/adt/date.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.77 2003/01/29 01:08:42 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.78 2003/01/31 01:08:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -511,6 +511,7 @@ time_in(PG_FUNCTION_ARGS)
fsec_t fsec;
struct tm tt,
*tm = &tt;
+ int tz;
int nf;
char lowstr[MAXDATELEN + 1];
char *field[MAXDATEFIELDS];
@@ -521,7 +522,7 @@ time_in(PG_FUNCTION_ARGS)
elog(ERROR, "Bad time external representation (too long) '%s'", str);
if ((ParseDateTime(str, lowstr, field, ftype, MAXDATEFIELDS, &nf) != 0)
- || (DecodeTimeOnly(field, ftype, nf, &dtype, tm, &fsec, NULL) != 0))
+ || (DecodeTimeOnly(field, ftype, nf, &dtype, tm, &fsec, &tz) != 0))
elog(ERROR, "Bad time external representation '%s'", str);
tm2time(tm, fsec, &result);
diff --git a/src/test/regress/expected/horology-no-DST-before-1970.out b/src/test/regress/expected/horology-no-DST-before-1970.out
index b8b7423ec52..ab40a6404ca 100644
--- a/src/test/regress/expected/horology-no-DST-before-1970.out
+++ b/src/test/regress/expected/horology-no-DST-before-1970.out
@@ -196,15 +196,31 @@ SELECT timestamp with time zone '27.12.2001 04:05:06.789-08';
(1 row)
SET DateStyle = 'ISO';
--- Reject time without time zone having a time zone specified
+-- As of 7.4, allow time without time zone having a time zone specified
SELECT time without time zone '040506.789+08';
-ERROR: Bad time external representation '040506.789+08'
+ time
+---------------
+ 04:05:06.7890
+(1 row)
+
SELECT time without time zone '040506.789-08';
-ERROR: Bad time external representation '040506.789-08'
+ time
+---------------
+ 04:05:06.7890
+(1 row)
+
SELECT time without time zone 'T040506.789+08';
-ERROR: Bad time external representation 'T040506.789+08'
+ time
+---------------
+ 04:05:06.7890
+(1 row)
+
SELECT time without time zone 'T040506.789-08';
-ERROR: Bad time external representation 'T040506.789-08'
+ time
+---------------
+ 04:05:06.7890
+(1 row)
+
SELECT time with time zone '040506.789+08';
timetz
------------------
diff --git a/src/test/regress/expected/horology-solaris-1947.out b/src/test/regress/expected/horology-solaris-1947.out
index 1601a346f01..222ee303679 100644
--- a/src/test/regress/expected/horology-solaris-1947.out
+++ b/src/test/regress/expected/horology-solaris-1947.out
@@ -196,15 +196,31 @@ SELECT timestamp with time zone '27.12.2001 04:05:06.789-08';
(1 row)
SET DateStyle = 'ISO';
--- Reject time without time zone having a time zone specified
+-- As of 7.4, allow time without time zone having a time zone specified
SELECT time without time zone '040506.789+08';
-ERROR: Bad time external representation '040506.789+08'
+ time
+---------------
+ 04:05:06.7890
+(1 row)
+
SELECT time without time zone '040506.789-08';
-ERROR: Bad time external representation '040506.789-08'
+ time
+---------------
+ 04:05:06.7890
+(1 row)
+
SELECT time without time zone 'T040506.789+08';
-ERROR: Bad time external representation 'T040506.789+08'
+ time
+---------------
+ 04:05:06.7890
+(1 row)
+
SELECT time without time zone 'T040506.789-08';
-ERROR: Bad time external representation 'T040506.789-08'
+ time
+---------------
+ 04:05:06.7890
+(1 row)
+
SELECT time with time zone '040506.789+08';
timetz
------------------
diff --git a/src/test/regress/expected/horology.out b/src/test/regress/expected/horology.out
index 294b7854106..2735641e396 100644
--- a/src/test/regress/expected/horology.out
+++ b/src/test/regress/expected/horology.out
@@ -196,15 +196,31 @@ SELECT timestamp with time zone '27.12.2001 04:05:06.789-08';
(1 row)
SET DateStyle = 'ISO';
--- Reject time without time zone having a time zone specified
+-- As of 7.4, allow time without time zone having a time zone specified
SELECT time without time zone '040506.789+08';
-ERROR: Bad time external representation '040506.789+08'
+ time
+---------------
+ 04:05:06.7890
+(1 row)
+
SELECT time without time zone '040506.789-08';
-ERROR: Bad time external representation '040506.789-08'
+ time
+---------------
+ 04:05:06.7890
+(1 row)
+
SELECT time without time zone 'T040506.789+08';
-ERROR: Bad time external representation 'T040506.789+08'
+ time
+---------------
+ 04:05:06.7890
+(1 row)
+
SELECT time without time zone 'T040506.789-08';
-ERROR: Bad time external representation 'T040506.789-08'
+ time
+---------------
+ 04:05:06.7890
+(1 row)
+
SELECT time with time zone '040506.789+08';
timetz
------------------
diff --git a/src/test/regress/expected/time.out b/src/test/regress/expected/time.out
index ddefeadc34d..e8b2b6de337 100644
--- a/src/test/regress/expected/time.out
+++ b/src/test/regress/expected/time.out
@@ -4,12 +4,9 @@
CREATE TABLE TIME_TBL (f1 time(2));
INSERT INTO TIME_TBL VALUES ('00:00');
INSERT INTO TIME_TBL VALUES ('01:00');
-INSERT INTO TIME_TBL VALUES ('02:03');
-INSERT INTO TIME_TBL VALUES ('07:07 PST');
-ERROR: Bad time external representation '07:07 PST'
-INSERT INTO TIME_TBL VALUES ('08:08 EDT');
-ERROR: Bad time external representation '08:08 EDT'
-INSERT INTO TIME_TBL VALUES ('11:59');
+-- as of 7.4, timezone spec should be accepted and ignored
+INSERT INTO TIME_TBL VALUES ('02:03 PST');
+INSERT INTO TIME_TBL VALUES ('11:59 EDT');
INSERT INTO TIME_TBL VALUES ('12:00');
INSERT INTO TIME_TBL VALUES ('12:01');
INSERT INTO TIME_TBL VALUES ('23:59');
diff --git a/src/test/regress/sql/horology.sql b/src/test/regress/sql/horology.sql
index 6d767d23760..0af769a8b2c 100644
--- a/src/test/regress/sql/horology.sql
+++ b/src/test/regress/sql/horology.sql
@@ -42,7 +42,7 @@ SET DateStyle = 'German';
SELECT timestamp with time zone '27.12.2001 04:05:06.789+08';
SELECT timestamp with time zone '27.12.2001 04:05:06.789-08';
SET DateStyle = 'ISO';
--- Reject time without time zone having a time zone specified
+-- As of 7.4, allow time without time zone having a time zone specified
SELECT time without time zone '040506.789+08';
SELECT time without time zone '040506.789-08';
SELECT time without time zone 'T040506.789+08';
diff --git a/src/test/regress/sql/time.sql b/src/test/regress/sql/time.sql
index 8ab8caa6077..510cc148549 100644
--- a/src/test/regress/sql/time.sql
+++ b/src/test/regress/sql/time.sql
@@ -6,10 +6,9 @@ CREATE TABLE TIME_TBL (f1 time(2));
INSERT INTO TIME_TBL VALUES ('00:00');
INSERT INTO TIME_TBL VALUES ('01:00');
-INSERT INTO TIME_TBL VALUES ('02:03');
-INSERT INTO TIME_TBL VALUES ('07:07 PST');
-INSERT INTO TIME_TBL VALUES ('08:08 EDT');
-INSERT INTO TIME_TBL VALUES ('11:59');
+-- as of 7.4, timezone spec should be accepted and ignored
+INSERT INTO TIME_TBL VALUES ('02:03 PST');
+INSERT INTO TIME_TBL VALUES ('11:59 EDT');
INSERT INTO TIME_TBL VALUES ('12:00');
INSERT INTO TIME_TBL VALUES ('12:01');
INSERT INTO TIME_TBL VALUES ('23:59');