r1669: numeric type translation improvements
authorKevin M. Rosenberg <kevin@rosenberg.net>
Wed, 27 Mar 2002 05:04:19 +0000 (05:04 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Wed, 27 Mar 2002 05:04:19 +0000 (05:04 +0000)
interfaces/postgresql-socket/postgresql-socket-api.cl
sql/package.cl
sql/utils.cl
test-clsql.cl

index 2cfb1551f602f9102d419da8b280a3c43a73be2b..c53d0819f8d546d4067e222a113b69d03efff8f5 100644 (file)
@@ -9,7 +9,7 @@
 ;;;;                
 ;;;; Date Started:  Feb 2002
 ;;;;
-;;;; $Id: postgresql-socket-api.cl,v 1.7 2002/03/26 17:16:18 kevin Exp $
+;;;; $Id: postgresql-socket-api.cl,v 1.8 2002/03/27 05:04:19 kevin Exp $
 ;;;;
 ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;; and Copyright (c) 1999-2001 by Pierre R. Mai
@@ -653,7 +653,6 @@ connection, if it is still open."
          ((or (= char +char-code-lower-e+)           ;; E is for exponent
               (= char +char-code-upper-e+))
           (setq exponent (read-integer-from-socket socket (- length i)))
-          (format t "~&exp: ~a" exponent)
           (setq exponent (or exponent 0))
           (setq i length))
          (t 
index 9c539927d92e9e5f0ba78ce9211b209580f6268d..b20450bf2ca7f462f75a4f18b8bd32654a9b9ae2 100644 (file)
@@ -8,7 +8,7 @@
 ;;;;                Original code by Pierre R. Mai 
 ;;;; Date Started:  Feb 2002
 ;;;;
-;;;; $Id: package.cl,v 1.3 2002/03/26 14:11:59 kevin Exp $
+;;;; $Id: package.cl,v 1.4 2002/03/27 05:04:19 kevin Exp $
 ;;;;
 ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;; and Copyright (c) 1999-2001 by Pierre R. Mai
@@ -98,6 +98,7 @@
         #:with-database
         
         ;; utils.cl
+        #:number-to-sql-string
         #:float-to-sql-string
         #:sql-escape-quotes
         ))
index d2ff84438bb573255bfe9d5ebb6322dec93ee0b1..aa0aa334042c9484bec0a2fbd89f5a4af630c4a2 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:   Kevin M. Rosenberg
 ;;;; Date Started: Mar 2002
 ;;;;
-;;;; $Id: utils.cl,v 1.1 2002/03/26 14:11:59 kevin Exp $
+;;;; $Id: utils.cl,v 1.2 2002/03/27 05:04:19 kevin Exp $
 ;;;;
 ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
 (declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0)))
 (in-package :clsql-sys)
 
+(defun number-to-sql-string (num)
+  (etypecase num
+    (integer
+     num)
+    (rational
+     (float-to-sql-string (coerce num 'double-float)))
+    (number
+     (float-to-sql-string num))))
 
 (defun float-to-sql-string (num)
   "Convert exponent character for SQL"
index 1d58cd5b95c252e300e3152a40c8a74934aa3de1..316c1ae995b4283437407670e361ff614ea1d6f2 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Mar 2002
 ;;;;
-;;;; $Id: test-clsql.cl,v 1.9 2002/03/26 14:12:12 kevin Exp $
+;;;; $Id: test-clsql.cl,v 1.10 2002/03/27 05:04:19 kevin Exp $
 ;;;;
 ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
       (clsql-test-table spec type)))
   )
 
+(defun make-test-float (i)
+  (* i (expt 10 (* i 4))))
 
 (defun create-test-table (db)
   (ignore-errors
     (clsql:execute-command 
      "DROP TABLE test_clsql" :database db))
   (clsql:execute-command 
-   "CREATE TABLE test_clsql (n integer, n_pi float, n_pi_str CHAR(20))" 
+   "CREATE TABLE test_clsql (n integer, flt float, flt_str CHAR(20))" 
    :database db)
   (dotimes (i 11)
     (let ((n (- i 5)))
       (clsql:execute-command
        (format nil "INSERT INTO test_clsql VALUES (~a,~a,'~a')"
-              n (clsql:float-to-sql-string (* pi n))
-              (clsql:float-to-sql-string (* pi n)))
+              n (clsql:number-to-sql-string (make-test-float n))
+              (clsql:number-to-sql-string (make-test-float n)))
        :database db))))
 
 (defun drop-test-table (db)
@@ -81,7 +83,7 @@
          (create-test-table db)
          (pprint (clsql:query "select * from test_clsql" 
                               :database db
-                              :types :auto))
+                              :types nil))
          (pprint (clsql:map-query 'vector #'list "select * from test_clsql" 
                                   :database db
                                   :types :auto)) ;;'(:int :double t)))