From 275304e371f8404b1ae141383078f3c75e8b1a10 Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Sun, 2 May 2004 00:54:54 +0000 Subject: [PATCH] r9197: add universal-time and bigint types --- sql/objects.lisp | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/sql/objects.lisp b/sql/objects.lisp index f2d82e6..4535978 100644 --- a/sql/objects.lisp +++ b/sql/objects.lisp @@ -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) -- 2.34.1