From: Kevin M. Rosenberg Date: Wed, 27 Mar 2002 05:04:19 +0000 (+0000) Subject: r1669: numeric type translation improvements X-Git-Tag: v3.8.6~1207 X-Git-Url: http://git.kpe.io/?p=clsql.git;a=commitdiff_plain;h=0d152ae08a457ade1411a0094bad6db3c09dd13b r1669: numeric type translation improvements --- diff --git a/interfaces/postgresql-socket/postgresql-socket-api.cl b/interfaces/postgresql-socket/postgresql-socket-api.cl index 2cfb155..c53d081 100644 --- a/interfaces/postgresql-socket/postgresql-socket-api.cl +++ b/interfaces/postgresql-socket/postgresql-socket-api.cl @@ -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 diff --git a/sql/package.cl b/sql/package.cl index 9c53992..b20450b 100644 --- a/sql/package.cl +++ b/sql/package.cl @@ -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 )) diff --git a/sql/utils.cl b/sql/utils.cl index d2ff844..aa0aa33 100644 --- a/sql/utils.cl +++ b/sql/utils.cl @@ -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 ;;;; @@ -19,6 +19,14 @@ (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" diff --git a/test-clsql.cl b/test-clsql.cl index 1d58cd5..316c1ae 100644 --- a/test-clsql.cl +++ b/test-clsql.cl @@ -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 ;;;; @@ -53,20 +53,22 @@ (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)))