projects
/
clsql.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merged in longchar-typespecifier-fix branch
[clsql.git]
/
db-postgresql
/
postgresql-sql.lisp
diff --git
a/db-postgresql/postgresql-sql.lisp
b/db-postgresql/postgresql-sql.lisp
index aad11a0c2aeb1d764be584c50cb551b9e00e13d3..51d5d0f3cea0cd167f71127d02f7bf67d55ac66e 100644
(file)
--- a/
db-postgresql/postgresql-sql.lisp
+++ b/
db-postgresql/postgresql-sql.lisp
@@
-55,9
+55,9
@@
(t
nil)))))
(t
nil)))))
-(defun tidy-error-message (message)
+(defun tidy-error-message (message
&optional encoding
)
(unless (stringp message)
(unless (stringp message)
- (setq message (uffi:convert-from-foreign-string message)))
+ (setq message (uffi:convert-from-foreign-string message
:encoding encoding
)))
(let ((message (string-right-trim '(#\Return #\Newline) message)))
(cond
((< (length message) (length "ERROR:"))
(let ((message (string-right-trim '(#\Return #\Newline) message)))
(cond
((< (length message) (length "ERROR:"))
@@
-155,7
+155,7
@@
(error 'sql-database-data-error
:database database
:expression query-expression
(error 'sql-database-data-error
:database database
:expression query-expression
- :message (tidy-error-message (PQerrorMessage conn-ptr))))
+ :message (tidy-error-message (PQerrorMessage conn-ptr)
(encoding database)
)))
(unwind-protect
(case (PQresultStatus result)
;; User gave a command rather than a query
(unwind-protect
(case (PQresultStatus result)
;; User gave a command rather than a query
@@
-176,7
+176,8
@@
(if (zerop (PQgetisnull result tuple-index i))
(convert-raw-field
(PQgetvalue result tuple-index i)
(if (zerop (PQgetisnull result tuple-index i))
(convert-raw-field
(PQgetvalue result tuple-index i)
- result-types i)
+ (nth i result-types)
+ :encoding (encoding database))
nil)))))
(if field-names
(values res (result-field-names num-fields result))
nil)))))
(if field-names
(values res (result-field-names num-fields result))
@@
-187,7
+188,8
@@
:expression query-expression
:error-id (PQresultErrorField result +PG-DIAG-SQLSTATE+)
:message (tidy-error-message
:expression query-expression
:error-id (PQresultErrorField result +PG-DIAG-SQLSTATE+)
:message (tidy-error-message
- (PQresultErrorMessage result)))))
+ (PQresultErrorMessage result)
+ (encoding database)))))
(PQclear result))))))
(defun result-field-names (num-fields result)
(PQclear result))))))
(defun result-field-names (num-fields result)
@@
-207,7
+209,8
@@
(error 'sql-database-data-error
:database database
:expression sql-expression
(error 'sql-database-data-error
:database database
:expression sql-expression
- :message (tidy-error-message (PQerrorMessage conn-ptr))))
+ :message (tidy-error-message (PQerrorMessage conn-ptr)
+ (encoding database))))
(unwind-protect
(case (PQresultStatus result)
(#.pgsql-exec-status-type#command-ok
(unwind-protect
(case (PQresultStatus result)
(#.pgsql-exec-status-type#command-ok
@@
-222,7
+225,8
@@
:expression sql-expression
:error-id (PQresultErrorField result +PG-DIAG-SQLSTATE+)
:message (tidy-error-message
:expression sql-expression
:error-id (PQresultErrorField result +PG-DIAG-SQLSTATE+)
:message (tidy-error-message
- (PQresultErrorMessage result)))))
+ (PQresultErrorMessage result)
+ (encoding database)))))
(PQclear result))))))
(defstruct postgresql-result-set
(PQclear result))))))
(defstruct postgresql-result-set
@@
-244,7
+248,8
@@
(error 'sql-database-data-error
:database database
:expression query-expression
(error 'sql-database-data-error
:database database
:expression query-expression
- :message (tidy-error-message (PQerrorMessage conn-ptr))))
+ :message (tidy-error-message (PQerrorMessage conn-ptr)
+ (encoding database))))
(case (PQresultStatus result)
((#.pgsql-exec-status-type#empty-query
#.pgsql-exec-status-type#tuples-ok)
(case (PQresultStatus result)
((#.pgsql-exec-status-type#empty-query
#.pgsql-exec-status-type#tuples-ok)
@@
-269,7
+274,8
@@
:expression query-expression
:error-id (PQresultErrorField result +PG-DIAG-SQLSTATE+)
:message (tidy-error-message
:expression query-expression
:error-id (PQresultErrorField result +PG-DIAG-SQLSTATE+)
:message (tidy-error-message
- (PQresultErrorMessage result)))
+ (PQresultErrorMessage result)
+ (encoding database)))
(PQclear result))))))))
(defmethod database-dump-result-set (result-set (database postgresql-database))
(PQclear result))))))))
(defmethod database-dump-result-set (result-set (database postgresql-database))
@@
-294,7
+300,8
@@
(if (zerop (PQgetisnull result tuple-index i))
(convert-raw-field
(PQgetvalue result tuple-index i)
(if (zerop (PQgetisnull result tuple-index i))
(convert-raw-field
(PQgetvalue result tuple-index i)
- types i)
+ (nth i types)
+ :encoding (encoding database))
nil))
finally
(incf (postgresql-result-set-tuple-index result-set))
nil))
finally
(incf (postgresql-result-set-tuple-index result-set))
@@
-364,7
+371,8
@@
length :unsigned t))
(when (= (lo-read ptr fd buffer length) length)
(setf result (uffi:convert-from-foreign-string
length :unsigned t))
(when (= (lo-read ptr fd buffer length) length)
(setf result (uffi:convert-from-foreign-string
- buffer :length length :null-terminated-p nil))))))
+ buffer :length length :null-terminated-p nil
+ :encoding (encoding database)))))))
(progn
(when buffer (uffi:free-foreign-object buffer))
(when (and fd (>= fd 0)) (lo-close ptr fd))
(progn
(when buffer (uffi:free-foreign-object buffer))
(when (and fd (>= fd 0)) (lo-close ptr fd))