:connection-spec connection-spec
:sqlite-db (sqlite:sqlite-open (first connection-spec)))
(sqlite:sqlite-error (err)
- (error 'clsql-connect-error
+ (error 'sql-connection-error
:database-type database-type
:connection-spec connection-spec
- :errno (sqlite:sqlite-error-code err)
- :error (sqlite:sqlite-error-message err)))))
+ :error-id (sqlite:sqlite-error-code err)
+ :message (sqlite:sqlite-error-message err)))))
(defmethod database-disconnect ((database sqlite-database))
(sqlite:sqlite-close (sqlite-db database))
"Result set not empty: ~@(~A~) row~:P, ~@(~A~) column~:P "
:format-arguments (list row-n col-n))))
(sqlite:sqlite-error (err)
- (error 'clsql-sql-error
+ (error 'sql-database-data-error
:database database
:expression sql-expression
- :errno (sqlite:sqlite-error-code err)
- :error (sqlite:sqlite-error-message err))))
+ :error-id (sqlite:sqlite-error-code err)
+ :message (sqlite:sqlite-error-message err))))
t)
(defstruct sqlite-result-set
(values (nreverse rows) col-names))
(push new-row rows)))
(sqlite:sqlite-error (err)
- (error 'clsql-sql-error
+ (error 'sql-database-data-error
:database database
:expression query-expression
- :errno (sqlite:sqlite-error-code err)
- :error (sqlite:sqlite-error-message err)))))
+ :error-id (sqlite:sqlite-error-code err)
+ :message (sqlite:sqlite-error-message err)))))
(defmethod database-query-result-set ((query-expression string)
(database sqlite-database)
(values result-set n-col nil)
(values result-set n-col)))))
(sqlite:sqlite-error (err)
- (error 'clsql-sql-error
+ (error 'sql-database-error
:database database
:expression query-expression
- :errno (sqlite:sqlite-error-code err)
- :error (sqlite:sqlite-error-message err)))))
+ :error-id (sqlite:sqlite-error-code err)
+ :message (sqlite:sqlite-error-message err)))))
(defun canonicalize-result-types (result-types n-col col-names)
(when result-types
collect
(case type
((:int :integer :tinyint :long :bigint)
- :integer)
+ :int32)
((:float :double)
:double)
((:numeric)
(loop for i = 0 then (1+ i)
for rest on list
do (setf (car rest)
+ #-clisp
+ (clsql-uffi:convert-raw-field
+ (uffi:deref-array
+ (uffi:deref-pointer row 'sqlite:sqlite-row-pointer) '(:array (* :unsigned-char)) i)
+ result-types
+ i)
+ #+clisp
(let ((type (if result-types
(nth i result-types)
:string))
(:double
(when val
(coerce
- (read-from-string (sqlite:sqlite-aref row i))
+ (read-from-string val)
'double-float)))))))
(sqlite:sqlite-free-row row)
t))))