X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql%2Fobjects.lisp;h=ef9c0db369a469c6d2984ed01598761d38098e33;hb=913477a11d2258f8fe87ff5b390c8904d17d66fe;hp=f2d82e62e8fd2c7e737d4e43d636832e7d29cba2;hpb=afe872863374de73b2f2ef767e742a40d7465e4a;p=clsql.git diff --git a/sql/objects.lisp b/sql/objects.lisp index f2d82e6..ef9c0db 100644 --- a/sql/objects.lisp +++ b/sql/objects.lisp @@ -456,7 +456,7 @@ superclass of the newly-defined View Class." (defmethod database-get-type-specifier (type args database) (declare (ignore type args)) - (if (clsql-base-sys::in (database-underlying-type database) + (if (clsql-base::in (database-underlying-type database) :postgresql :postgresql-socket) "VARCHAR" "VARCHAR(255)")) @@ -467,12 +467,16 @@ 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) (if args (format nil "VARCHAR(~A)" (car args)) - (if (clsql-base-sys::in (database-underlying-type database) + (if (clsql-base::in (database-underlying-type database) :postgresql :postgresql-socket) "VARCHAR" "VARCHAR(255)"))) @@ -481,7 +485,7 @@ superclass of the newly-defined View Class." database) (if args (format nil "VARCHAR(~A)" (car args)) - (if (clsql-base-sys::in (database-underlying-type database) + (if (clsql-base::in (database-underlying-type database) :postgresql :postgresql-socket) "VARCHAR" "VARCHAR(255)"))) @@ -489,11 +493,15 @@ superclass of the newly-defined View Class." (defmethod database-get-type-specifier ((type (eql 'string)) args database) (if args (format nil "VARCHAR(~A)" (car args)) - (if (clsql-base-sys::in (database-underlying-type database) + (if (clsql-base::in (database-underlying-type database) :postgresql :postgresql-socket) "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) @@ -545,7 +553,7 @@ superclass of the newly-defined View Class." (declare (ignore database)) (progv '(*print-circle* *print-array*) '(t t) (let ((escaped (prin1-to-string val))) - (clsql-base-sys::substitute-char-string + (clsql-base::substitute-char-string escaped #\Null " ")))) (defmethod database-output-sql-as-type ((type (eql 'symbol)) val database) @@ -622,15 +630,24 @@ superclass of the newly-defined View Class." (defmethod read-sql-value (val (type (eql 'symbol)) database) (declare (ignore database)) (when (< 0 (length val)) - (unless (string= val (clsql-base-sys:symbol-name-default-case "NIL")) - (intern (clsql-base-sys:symbol-name-default-case val) + (unless (string= val (clsql-base:symbol-name-default-case "NIL")) + (intern (clsql-base:symbol-name-default-case val) (symbol-package *update-context*))))) (defmethod read-sql-value (val (type (eql 'integer)) database) (declare (ignore database)) (etypecase val (string - (read-from-string val)) + (unless (string-equal "NIL" val) + (parse-integer val))) + (number val))) + +(defmethod read-sql-value (val (type (eql 'bigint)) database) + (declare (ignore database)) + (etypecase val + (string + (unless (string-equal "NIL" val) + (parse-integer val))) (number val))) (defmethod read-sql-value (val (type (eql 'float)) database) @@ -642,6 +659,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-integer val)) + (number val)))) + (defmethod read-sql-value (val (type (eql 'wall-time)) database) (declare (ignore database)) (unless (eq 'NULL val)