From c16a56690ac8f1818410dd6062e3c178a0897fef Mon Sep 17 00:00:00 2001 From: Dimitri Fontaine Date: Wed, 13 Nov 2013 22:36:29 +0100 Subject: [PATCH] Fix handling of errors in utility threads (create index and such). --- src/pgsql/queries.lisp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/pgsql/queries.lisp b/src/pgsql/queries.lisp index fd62722..4554563 100644 --- a/src/pgsql/queries.lisp +++ b/src/pgsql/queries.lisp @@ -56,10 +56,14 @@ "Execute given SQL and resgister its timing into STATE." (multiple-value-bind (res secs) (timing - (with-pgsql-transaction (dbname) - (pgsql-execute sql))) + (handler-case + (with-pgsql-transaction (dbname) + (pgsql-execute sql)) + (cl-postgres:database-error (e) + (declare (ignore e)) ; a log has already been printed + (pgstate-incf state label :errs 1 :rows (- count))))) (declare (ignore res)) - (pgstate-incf state label :rows count :secs secs))) + (pgstate-incf state label :read count :rows count :secs secs))) (defun pgsql-execute (sql &key ((:client-min-messages level))) "Execute given SQL in current transaction"