r9213: fix odbc/postgresql null value for strings
[clsql.git] / db-odbc / odbc-api.lisp
index 166285d05568587db78ddc9e271d37acecda067c..befda147934916cbcd33c783ee82f93f44635875 100644 (file)
@@ -113,11 +113,11 @@ as possible second argument) to the desired representation of date/time/timestam
           (progn ,result-code ,@body))
          (#.$SQL_INVALID_HANDLE
           (error
-          'clsql-base-sys:clsql-odbc-error
+          'clsql-base:clsql-odbc-error
           :odbc-message "Invalid handle"))
          (#.$SQL_STILL_EXECUTING
           (error
-          'clsql-base-sys:clsql-odbc-error
+          'clsql-base:clsql-odbc-error
           :odbc-message "Still executing"))
          (#.$SQL_ERROR
           (multiple-value-bind (error-message sql-state)
@@ -125,7 +125,7 @@ as possible second argument) to the desired representation of date/time/timestam
                            (or ,hdbc +null-handle-ptr+)
                            (or ,hstmt +null-handle-ptr+))
             (error
-            'clsql-base-sys:clsql-odbc-error
+            'clsql-base:clsql-odbc-error
             :odbc-message error-message
             :sql-state sql-state)))
         (otherwise
@@ -663,6 +663,7 @@ as possible second argument) to the desired representation of date/time/timestam
     ;; FIXME: this could be better optimized for types which use READ-FROM-STRING above
     
     (if (and (or (eq result-type t) (eq result-type :string))
+            value
             (not (stringp value)))
        (write-to-string value)
       value)))
@@ -691,7 +692,7 @@ as possible second argument) to the desired representation of date/time/timestam
            (#.$SQL_C_FLOAT (uffi:allocate-foreign-object :float))
             (#.$SQL_C_DOUBLE (uffi:allocate-foreign-object :double))
             (#.$SQL_C_BIT (uffi:allocate-foreign-object :byte))
-            (#.$SQL_C_STINYINT (uffi:allocate-foreign-object :short))
+            (#.$SQL_C_STINYINT (uffi:allocate-foreign-object :byte))
             (#.$SQL_C_SSHORT (uffi:allocate-foreign-object :short))
             (#.$SQL_C_CHAR (uffi:allocate-foreign-string (1+ size)))
             (#.$SQL_C_BINARY (uffi:allocate-foreign-string (1+ (* 2 size))))