+2010-09-20 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.1.4
+ * sql/{pool,database}.lisp: Pass encoding argument to
+ connections made from pool and with reconnect.
+
2010-08-16 Kevin Rosenberg <kevin@rosenberg.net>
* Version 5.1.3
* db-odbc/odbc-{api,dbi}.lisp: Commit patch from
:verbose nil))
(if pool
- (let ((conn (acquire-from-pool connection-spec database-type pool)))
+ (let ((conn (acquire-from-pool connection-spec database-type pool encoding)))
(when make-default (setq *default-database* conn))
conn)
(let* ((db-name (database-name-from-spec connection-spec database-type))
(ignore-errors (disconnect :database db))
(disconnect :database db :error nil)))
- (connect (connection-spec db))))
+ (connect (connection-spec db) :encoding (encoding db))))
(defun status (&optional full)
:initform (make-process-lock "Connection pool"))))
-(defun acquire-from-pool (connection-spec database-type &optional pool)
+(defun acquire-from-pool (connection-spec database-type &optional pool encoding)
"Try to find a working database connection in the pool or create a new
one if needed. This performs 1 query against the DB to ensure it's still
valid. When possible (postgres, mssql) that query will be a reset
(let ((conn (connect (connection-spec pool)
:database-type (pool-database-type pool)
:if-exists :new
- :make-default nil)))
+ :make-default nil
+ :encoding encoding)))
(with-process-lock ((conn-pool-lock pool) "new conection")
(push conn (all-connections pool))
(setf (conn-pool conn) pool))