X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql%2Fnew-objects.lisp;h=64e9ade34e97ca6bd65e6b2216697902aea44d42;hb=9898f50385419417475b1c07874a16902695cb8b;hp=55f5d1e0b0e8a31807af7020ebc8b0cc680e93a9;hpb=01cbff64b81d8f83aa939d40d3edab58e70813b8;p=clsql.git diff --git a/sql/new-objects.lisp b/sql/new-objects.lisp index 55f5d1e..64e9ade 100644 --- a/sql/new-objects.lisp +++ b/sql/new-objects.lisp @@ -434,6 +434,12 @@ associated with that database.")) (setf (symbol-function (intern (symbol-name '#:store-instance))) (symbol-function 'update-records-from-instance)) +(defgeneric delete-instance-records (instance) + (:documentation + "Deletes the records represented by INSTANCE from the database +associated with it. If instance has no associated database, an error +is signalled.")) + (defmethod delete-instance-records ((object standard-db-object)) (let ((vt (sql-expression :table (view-table (class-of object)))) (qualifier (key-qualifier-for-instance object :database *default-database*))) @@ -518,7 +524,7 @@ DATABASE-NULL-VALUE on the type of the slot.")) (defmethod database-get-type-specifier (type args database) (declare (ignore type args)) - (if (member (database-type database) '(:postgresql :postgresql-socket)) + (if (member (database-underlying-type database) '(:postgresql :postgresql-socket)) "VARCHAR" "VARCHAR(255)")) @@ -533,7 +539,7 @@ DATABASE-NULL-VALUE on the type of the slot.")) database) (if args (format nil "VARCHAR(~A)" (car args)) - (if (member (database-type database) '(:postgresql :postgresql-socket)) + (if (member (database-underlying-type database) '(:postgresql :postgresql-socket)) "VARCHAR" "VARCHAR(255)"))) @@ -541,20 +547,20 @@ DATABASE-NULL-VALUE on the type of the slot.")) database) (if args (format nil "VARCHAR(~A)" (car args)) - (if (member (database-type database) '(:postgresql :postgresql-socket)) + (if (member (database-underlying-type database) '(:postgresql :postgresql-socket)) "VARCHAR" "VARCHAR(255)"))) (defmethod database-get-type-specifier ((type (eql 'string)) args database) (if args (format nil "VARCHAR(~A)" (car args)) - (if (member (database-type database) '(:postgresql :postgresql-socket)) + (if (member (database-underlying-type database) '(:postgresql :postgresql-socket)) "VARCHAR" "VARCHAR(255)"))) (defmethod database-get-type-specifier ((type (eql 'wall-time)) args database) (declare (ignore args)) - (case (database-type database) + (case (database-underlying-type database) (:postgresql "TIMESTAMP WITHOUT TIME ZONE") (:postgresql-socket