X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=base%2Finitialize.lisp;h=75d9a0d3bed17c53235d80bdc54561b751d2f6eb;hp=1d96a8f87c34b8c2ac9a86d124d911f93d9af373;hb=f716bb1161cf9e89a96945c4a444244f9d303691;hpb=8b5250e14e3280bdc4641c3b35a8dc68ca4dbde7 diff --git a/base/initialize.lisp b/base/initialize.lisp index 1d96a8f..75d9a0d 100644 --- a/base/initialize.lisp +++ b/base/initialize.lisp @@ -43,10 +43,16 @@ to initialize-database-type.") (defun initialize-database-type (&key (database-type *default-database-type*)) "Initialize the given database-type, if it is not already initialized, as indicated by `*initialized-database-types*'." - (if (member database-type *initialized-database-types*) - database-type - (when (database-initialize-database-type database-type) - (push database-type *initialized-database-types*) - database-type))) - + (when (member database-type *initialized-database-types*) + (return-from initialize-database-type database-type)) + + (let ((system (intern (concatenate 'string + (symbol-name '#:clsql-) + (symbol-name database-type))))) + (when (not (find-package system)) + (asdf:operate 'asdf:load-op system))) + + (when (database-initialize-database-type database-type) + (push database-type *initialized-database-types*) + database-type))