X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=doc%2Fref.sgml;h=c1ba587421f5c3c9ee8eef4b32e0919cfe7d7e76;hb=8bc79bef3406576b8d147062bf527f34cd3baa2f;hp=77ea97ae23098f1ee802cc678dd2343e762fd664;hpb=378b802cff26b596f912aa05a2eb740c4f886d3d;p=clsql.git diff --git a/doc/ref.sgml b/doc/ref.sgml index 77ea97a..c1ba587 100644 --- a/doc/ref.sgml +++ b/doc/ref.sgml @@ -1780,7 +1780,7 @@ Syntax - query query-expression &key database => result + query query-expression &key database types => result Arguments and Values @@ -1803,6 +1803,47 @@ of *default-database*. + + types + + A + field type + specififier. The default is &nil;. + + + The purpose of this argument is cause &clsql; to + import SQL numeric fields into numeric Lisp objects + rather than strings. This reduces the cost of + allocating a temporary string and the &clsql; users' + inconvenience of converting number strings into number + objects. + + + A value of :auto causes &clsql; + to automatically convert SQL fields into a + numeric format where applicable. The default value of + &nil; causes all fields to be returned as strings + regardless of the SQL type. Otherwise a list is expected + which has a element for each field that specifies the + conversion. If the list is shorter than the number + of fields, the a value of t is + assumed for the field. If the list is longer than + the number of fields, the extra elements are + ignored. + + :int Field is imported as a + 32-bit signed integer. + + :double Field is imported as a + double-float number. + + t Field is imported as a + string. + + + + + result @@ -1889,7 +1930,7 @@ Syntax - map-query output-type-spec function query-expression &key database => result + map-query output-type-spec function query-expression &key database types => result Arguments and Values @@ -1929,6 +1970,17 @@ of *default-database*. + + types + + + A field type specififier. + The default is &nil;. See query + for the semantics of this argument. + + + result @@ -1985,8 +2037,9 @@ (map-query '(vector double-float) #'(lambda (salary name) (declare (ignorable name)) - (coerce (read-from-string salary) 'double-float)) - "select salary,name from simple where salary > 8000") + (let ((*read-default-float-format* 'double-float)) + (coerce (read-from-string salary) 'double-float)) + "select salary,name from simple where salary > 8000")) => #(10000.0d0 8000.5d0) (type-of *) => (SIMPLE-ARRAY DOUBLE-FLOAT (2)) @@ -2048,7 +2101,7 @@ Syntax - do-query ((&rest args) query-expression &key database) &body body => nil + do-query ((&rest args) query-expression &key database types) &body body => nil Arguments and Values @@ -2078,6 +2131,17 @@ *default-database*. + + types + + + A field type specififier. + The default is &nil;. See query + for the semantics of this argument. + + + body @@ -2163,6 +2227,10 @@ query via a loop clause Loop Clause + + Compatibility + loop-for-as-tuples only works with &cmucl;. + Syntax var [type-spec] being {each | the} {record | records | tuple | tuples} {in | of} query [from database]