X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=db-postgresql-socket%2Fpostgresql-socket-sql.lisp;h=c304db07e1204c861cdb86c941224ae21d506e6d;hb=fa32c4233b4a02ae631602dbb0a234ab10df8aaf;hp=7df3dc7de361498165a6b717d9c2b29d7e1c1f45;hpb=c4da3cfcbb955395d8a556e1f89aadad696302b7;p=clsql.git diff --git a/db-postgresql-socket/postgresql-socket-sql.lisp b/db-postgresql-socket/postgresql-socket-sql.lisp index 7df3dc7..c304db0 100644 --- a/db-postgresql-socket/postgresql-socket-sql.lisp +++ b/db-postgresql-socket/postgresql-socket-sql.lisp @@ -430,25 +430,31 @@ doesn't depend on UFFI." (defmethod database-create (connection-spec (type (eql :postgresql-socket))) - (error 'clsql-access-error - :connection-spec connection-spec - :database-type type - :error "Unable to create databases on a socket connection.")) + (destructuring-bind (host name user password) connection-spec + (let ((database (database-connect (list host "template1" user password) + type))) + (unwind-protect + (execute-command (format nil "create database ~A" name)) + (database-disconnect database))))) (defmethod database-destroy (connection-spec (type (eql :postgresql-socket))) - (error 'clsql-access-error - :connection-spec connection-spec - :database-type type - :error "Unable to create databases on a socket connection.")) + (destructuring-bind (host name user password) connection-spec + (let ((database (database-connect (list host "template1" user password) + type))) + (unwind-protect + (execute-command (format nil "drop database ~A" name)) + (database-disconnect database))))) (defmethod database-probe (connection-spec (type (eql :postgresql-socket))) (destructuring-bind (host name user password) connection-spec (let ((database (database-connect (list host "template1" user password) type))) (unwind-protect - (find name (database-query "select datname from pg_database" - database :auto) - :key #'car :test #'string-equal) + (when + (find name (database-query "select datname from pg_database" + database :auto) + :key #'car :test #'string-equal) + t) (database-disconnect database))))) (when (clsql-base-sys:database-type-library-loaded :postgresql-socket)