(defparameter *oracle-default-varchar2-length* "512")
-(defmethod database-get-type-specifier
- (type args (database oracle-database))
+(defmethod database-get-type-specifier (type args (database oracle-database))
(declare (ignore type args))
(concatenate 'string "VARCHAR2(" *oracle-default-varchar2-length* ")"))
(or (first args) 38) (or (second args) 0))
"INTEGER"))
-(defmethod database-get-type-specifier
- ((type (eql 'bigint)) args (database oracle-database))
+(defmethod database-get-type-specifier ((type (eql 'bigint)) args (database oracle-database))
(if args
(format nil "NUMBER(~A,~A)"
(or (first args) 38) (or (second args) 0))
"NUMBER(38,0)"))
-(defmethod database-get-type-specifier
- ((type (eql 'simple-base-string)) args (database oracle-database))
+(defmethod database-get-type-specifier ((type (eql 'simple-base-string)) args (database oracle-database))
(if args
(format nil "VARCHAR2(~A)" (car args))
(concatenate 'string "VARCHAR2(" *oracle-default-varchar2-length* ")")))
-(defmethod database-get-type-specifier
- ((type (eql 'simple-string)) args (database oracle-database))
+(defmethod database-get-type-specifier ((type (eql 'simple-string)) args (database oracle-database))
(if args
(format nil "VARCHAR2(~A)" (car args))
(concatenate 'string "VARCHAR2(" *oracle-default-varchar2-length* ")")))
-(defmethod database-get-type-specifier
- ((type (eql 'string)) args (database oracle-database))
+(defmethod database-get-type-specifier ((type (eql 'string)) args (database oracle-database))
(if args
(format nil "VARCHAR2(~A)" (car args))
(concatenate 'string "VARCHAR2(" *oracle-default-varchar2-length* ")")))
-(defmethod database-get-type-specifier
- ((type (eql 'raw-string)) args (database oracle-database))
+(defmethod database-get-type-specifier ((type (eql 'raw-string)) args (database oracle-database))
(if args
(format nil "VARCHAR2(~A)" (car args))
(concatenate 'string "VARCHAR2(" *oracle-default-varchar2-length* ")")))
-(defmethod database-get-type-specifier
- ((type (eql 'float)) args (database oracle-database))
+(defmethod database-get-type-specifier ((type (eql 'float)) args (database oracle-database))
(if args
(format nil "NUMBER(~A,~A)" (or (first args) 38) (or (second args) 38))
"double precision"))
-(defmethod database-get-type-specifier
- ((type (eql 'long-float)) args (database oracle-database))
+(defmethod database-get-type-specifier ((type (eql 'long-float)) args (database oracle-database))
(if args
(format nil "NUMBER(~A,~A)"
(or (first args) 38) (or (second args) 38))
"double precision"))
-(defmethod database-get-type-specifier
- ((type (eql 'boolean)) args (database oracle-database))
+(defmethod database-get-type-specifier ((type (eql 'boolean)) args (database oracle-database))
(declare (ignore args))
"CHAR(1)")
(when (char-equal #\t (schar val 0))
t))
-(defmethod database-get-type-specifier
- ((type (eql 'wall-time)) args (database oracle-database))
+(defmethod database-get-type-specifier ((type (eql 'wall-time)) args (database oracle-database))
(declare (ignore args))
"DATE")
-(defmethod database-get-type-specifier
- ((type (eql 'duration))
- args
- (database oracle-database))
+(defmethod database-get-type-specifier ((type (eql 'duration)) args (database oracle-database))
(declare (ignore args))
"NUMBER(38)")
(uffi:ensure-char-storable (code-char 0)))
(setf (uffi:deref-pointer errcode :long) 0)
- (oci-error-get (deref-vp errhp) 1
- (uffi:make-null-pointer :unsigned-char)
- errcode errbuf +errbuf-len+ +oci-htype-error+)
+ (uffi:with-cstring (sqlstate nil)
+ (oci-error-get (deref-vp errhp) 1
+ sqlstate
+ errcode
+ (uffi:char-array-to-pointer errbuf)
+ +errbuf-len+ +oci-htype-error+))
(let ((subcode (uffi:deref-pointer errcode :long)))
(unless (and nulls-ok (= subcode +null-value-returned+))
(error 'sql-database-error
;; In order to map the "same string" property above onto Lisp equality,
;; we drop trailing spaces in all cases:
-(uffi:def-type string-array (:array :unsigned-char))
+(uffi:def-type string-pointer (* :unsigned-char))
(defun deref-oci-string (arrayptr string-index size)
-;; (declare (type string-array arrayptr))
+ (declare (type string-pointer arrayptr))
(declare (type (mod #.+n-buf-rows+) string-index))
(declare (type (and unsigned-byte fixnum) size))
(let* ((raw (uffi:convert-from-foreign-string