r9197: add universal-time and bigint types
authorKevin M. Rosenberg <kevin@rosenberg.net>
Sun, 2 May 2004 00:54:54 +0000 (00:54 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Sun, 2 May 2004 00:54:54 +0000 (00:54 +0000)
sql/objects.lisp

index f2d82e62e8fd2c7e737d4e43d636832e7d29cba2..4535978c9ae254bc827bb0d01382766dc847018e 100644 (file)
@@ -467,6 +467,10 @@ superclass of the newly-defined View Class."
   (if args
       (format nil "INT(~A)" (car args))
       "INT"))
+
+(defmethod database-get-type-specifier ((type (eql 'bigint)) args database)
+  (declare (ignore args database))
+  "BIGINT")
               
 (defmethod database-get-type-specifier ((type (eql 'simple-base-string)) args
                                         database)
@@ -494,6 +498,10 @@ superclass of the newly-defined View Class."
        "VARCHAR"
       "VARCHAR(255)")))
 
+(defmethod database-get-type-specifier ((type (eql 'universal-time)) args database)
+  (declare (ignore args database))
+  "BIGINT")
+
 (defmethod database-get-type-specifier ((type (eql 'wall-time)) args database)
   (declare (ignore args))
   (case (database-underlying-type database)
@@ -630,7 +638,14 @@ superclass of the newly-defined View Class."
   (declare (ignore database))
   (etypecase val
     (string
-     (read-from-string val))
+     (parse-integer val))
+    (number val)))
+
+(defmethod read-sql-value (val (type (eql 'bigint)) database)
+  (declare (ignore database))
+  (etypecase val
+    (string
+     (parse-integer val))
     (number val)))
 
 (defmethod read-sql-value (val (type (eql 'float)) database)
@@ -642,6 +657,14 @@ superclass of the newly-defined View Class."
   (declare (ignore database))
   (equal "t" val))
 
+(defmethod read-sql-value (val (type (eql 'univeral-time)) database)
+  (declare (ignore database))
+  (unless (eq 'NULL val)
+  (etypecase val
+    (string
+     (parse-intger val))
+    (number val)))
+
 (defmethod read-sql-value (val (type (eql 'wall-time)) database)
   (declare (ignore database))
   (unless (eq 'NULL val)