From 748f18aeaee5e0512317657a86f7a019f06e12de Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Fri, 6 May 2005 04:18:38 +0000 Subject: [PATCH] r10512: 05 May 2005 Kevin Rosenberg * Version 3.1.12 * sql/time.lisp: Fix error in submitted patch which caused error in timestrings with 19 or less characters. --- ChangeLog | 5 +++++ sql/time.lisp | 14 ++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 42f7907..5bb2dcf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +05 May 2005 Kevin Rosenberg + * Version 3.1.12 + * sql/time.lisp: Fix error in submitted patch which caused error + in timestrings with 19 or less characters. + 27 Apr 2005 Kevin Rosenberg * db-postgresql-socket/postgresql-api.lisp: Commit patch from Tim Howe to fix read-socket-sequence on non-sb-unicode sbcl. diff --git a/sql/time.lisp b/sql/time.lisp index 70ac828..d976733 100644 --- a/sql/time.lisp +++ b/sql/time.lisp @@ -1129,7 +1129,7 @@ formatted date string." (defun syntax-parse-iso-8601 (string) ;; use strlen to determine if fractional seconds are present in timestamp (let ((strlen (length string)) - year month day hour minute second usec gmt-sec-offset) + year month day hour minute second gmt-sec-offset) (handler-case (progn (setf year (parse-integer string :start 0 :end 4) @@ -1145,8 +1145,9 @@ formatted date string." (parse-integer string :start 17 :end 19) 0)) (cond - ((or (char= #\, (char string 19)) - (char= #\. (char string 19))) + ((and (> strlen 19) + (or (char= #\, (char string 19)) + (char= #\. (char string 19)))) (multiple-value-bind (parsed-usec usec-end) (parse-integer string :start 20 :junk-allowed t) (setf usec parsed-usec @@ -1185,6 +1186,7 @@ formatted date string." :bad-component (car (find-if (lambda (pair) (null (cdr pair))) `((year . ,year) (month . ,month) - (day . ,day) (hour ,hour) - (minute ,minute) (second ,second) - (timezone ,gmt-sec-offset))))))))) + (day . ,day) (hour . ,hour) + (minute . ,minute) (second . ,second) + (usec . ,usec) + (timezone . ,gmt-sec-offset))))))))) -- 2.34.1