From bd3966e77e9c4e29d575b12d0e6aa78e5848da69 Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Mon, 3 May 2004 20:45:22 +0000 Subject: [PATCH] r9214: Fix ATTRIBUTE-TYPE so that it can handle NIL values from the ODBC driver --- ChangeLog | 4 +++- db-odbc/odbc-sql.lisp | 12 ++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index c252856..3b05dd4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,9 @@ 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * db-odbc/odbc-api.lisp: Fix changing nil to "NIL" for odbc/postgresql backend. - + * db-odbc/odbc-sql.lisp: Fix ATTRIBUTE-TYPE so that + it can handle NIL values from the ODBC driver + 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.8 * base/conditions.lisp: Add *backend-warning-behavior* diff --git a/db-odbc/odbc-sql.lisp b/db-odbc/odbc-sql.lisp index 2769bf9..70e1478 100644 --- a/db-odbc/odbc-sql.lisp +++ b/db-odbc/odbc-sql.lisp @@ -256,10 +256,14 @@ ;; NULLABLE is the eleventh column (loop for row in rows when (string-equal attribute (fourth row)) - do (return (values (ensure-keyword (sixth row)) - (parse-integer (seventh row) :junk-allowed t) - (parse-integer (ninth row) :junk-allowed t) - (parse-integer (nth 10 row) :junk-allowed t)))))) + do + (let ((size (seventh row)) + (precision (ninth row)) + (scale (nth 10 row))) + (return (values (ensure-keyword (sixth row)) + (when size (parse-integer size)) + (when precision (parse-integer precision)) + (when scale (parse-integer scale)))))))) (defmethod database-set-sequence-position (sequence-name (position integer) -- 2.34.1