<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel about="http://blog.gmane.org/gmane.lisp.clsql.devel">
    <title>gmane.lisp.clsql.devel</title>
    <link>http://blog.gmane.org/gmane.lisp.clsql.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/724"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/720"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/715"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/714"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/704"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/703"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/701"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/700"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/685"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/683"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/678"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/677"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/676"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/675"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/674"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/667"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/666"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/663"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/662"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.clsql.devel/648"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/724">
    <title>CLSQL Mail List Changes</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/724</link>
    <description>Sorry for the cross-posting -- eliminating cross-posting that is
actually a goal of this message.

Since requests for help are often intermingled with development issues
(and to a lesser degree in the other direction), and to reduce the
need to subscribe to multiple lists, I've merged the CLSQL-devel
and CLSQL-help mail lists into a single, new mail list: CLSQL. I'll
still keep CLSQL-announce as a low-traffic list for announcements,
though, an announcement hasn't been made in years. I'd be happy to
merge that list as well, but I think it does make sense to have a
separate list for traffic-sensitive subscribers.

One potential issue with the merge is that if you have subscribed to
CLSQL-devel and CLSQL-help with two *different* email addresses, both
addresses will be included in the merge so you might get duplicate
messages. But, mailman does make it easy for you to unsubscribe one of
the email addresses.

A second issue is that archives will remain available on clsql-devel
and clsql-help web sites. I will look into merging those archives into
the new mail list's web site. But, I'm not sure that will be feasible.

Barring a good argument against (or at least a few desparate pleas), I
plan on implementing this change in the next week. However, if you
have concerns or objections to this change, please send me email
directly (off-list).

</description>
    <dc:creator>Kevin Rosenberg</dc:creator>
    <dc:date>2007-09-12T19:19:08</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/720">
    <title>[Patch] Update view-database only if the transactionsucceeded</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/720</link>
    <description>Hi Kevin,

I've modified the behaviour of update-records-from-instance and
with-transaction to not set the view-database slot in  all the new
objects inserted when inside a transaction until the transaction is
fully committed.

Earlier, even if a transaction failed, and the objects were not
actually inserted in the DB, the view-database slot was being set.
This was causing problems while trying to re-insert the records -
update-records-from-instance would try to update the records instead
of inserting.

(This is the first time I'm using git so please guide me about the
correct way of submitting patches.)

Saurabh.
</description>
    <dc:creator>Saurabh Nanda</dc:creator>
    <dc:date>2007-09-12T05:55:39</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/715">
    <title>When is fault-join-slot called?</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/715</link>
    <description>Hi,

Quick question: is fault-join-slot also triggered in a setf form? For
example, will the following form also trigger fault-join-slot?

(setf (slot-value parent-obj join-slot) join-object)

I'm seeing weird behaviour in some of my code, which is expecting me
to believe that this is the case.

Also, where exactly is the MOP configured to hook into this function?

Nandz.
</description>
    <dc:creator>Saurabh Nanda</dc:creator>
    <dc:date>2007-08-16T10:53:57</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/714">
    <title>Possible memory leak - LW/ODBC/Win32/Microsoft SQLServer 2K5</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/714</link>
    <description>I am using CL 3.8.5 (uffi-1.5.18) on Lispworks 5/Win32 to connect to a
Microsoft SQL Server 2K5 database.

I connect with:
(connect (list nil nil nil :connection-string "Driver={SQL
Server};Server=MyServer;Database=MyDB;Uid=myuser;Pwd=MyPassword;")
:if-exists :new :database-type :odbc )

And run a query test with:
(loop for i from 1 to 1000000 do (query "select CAST('hello' as
varchar(4096))"))

This loop basically starts eating up ram from the process.  What is of
interest is that if I break out and GC, (room t) does not indicate any
rise in memory usage, implying that the ram is being eaten up in
foreign allocations?

Eventually, it runs to Lispwork's 1.5G limit and fails with:
Error: Failed to allocate foreign object of size 4002 [allocator STATIC]
  1 (abort) Return to level 0.
  2 Return to top loop level 0.

Disconnect doesn't clean it up either.

Where should I go about tracking down this leak?

I realize that it is plausible that the leak may be at the driver
level or UFFI, not necessarily CLSQL.  However, I was wondering if
this is something that is a known issue for some aspect of the
platform I'm using, or if this is something that devs versed in CLSQL
could trivially track down, or at least point me in the right
direction.

Thanks,
Matt
</description>
    <dc:creator>Matthew Lamari</dc:creator>
    <dc:date>2007-07-20T23:51:13</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/704">
    <title>find-and-load-foreign-library and Oracle</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/704</link>
    <description>_______________________________________________
CLSQL-Devel mailing list
CLSQL-Devel-0lovp2JerKU&lt; at &gt;public.gmane.org
http://lists.b9.com/mailman/listinfo/clsql-devel
</description>
    <dc:creator>Ricardo Boccato Alves</dc:creator>
    <dc:date>2007-07-17T02:20:28</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/703">
    <title>ODBC BIGINT hacking</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/703</link>
    <description>BIGINTs on ODBC didn't work for me. I hacked for a while and now it
does, but you probably won't like it. With this it actually reads
bigints as 8 byte signed integers instead of trying to read them in as a
string (which left me with the first half of the number).  I think this
has something to do with the way freetds or sqlserver structures that
column. It looks like bignum on odbc-&gt;postgres did work, it still works
in this patch.

The downside: I didn't figure out how to make it work with uffi. This
uses :long-long out of the cffi-uffi-compat library.  If someone can
figure out a comparable item in uffi, or can teach uffi then this might
be more useful, as is I'm posting it for reference as much as anything.

I also included a patch for switch from uffi to the cffi-uffi-compat
library if anyone with this problem (I have a feeling there aren't many
of us:-) is interested in trying that.

Nathan Bird

PS: and with that, all the local patches i have are submitted! Cheers,
and thanks for the great library.
Thu Jun 14 16:28:20 EDT 2007  Nathan Bird &lt;nathan-rGvcZsxnnNT9RPGrWp62eA&lt; at &gt;public.gmane.org&gt;
  * switiching to use cffi-uffi-compat instead of uffi
diff -rN -u old-clsql/clsql-mysql.asd new-clsql/clsql-mysql.asd
--- old-clsql/clsql-mysql.asd2007-06-15 18:35:51.000000000 -0400
+++ new-clsql/clsql-mysql.asd2007-06-15 18:35:51.000000000 -0400
&lt; at &gt;&lt; at &gt; -80,7 +80,7 &lt; at &gt;&lt; at &gt;
   :description "Common Lisp SQL MySQL Driver"
   :long-description "cl-sql-mysql package provides a database driver to the MySQL database system."
 
-  :depends-on (uffi clsql clsql-uffi)
+  :depends-on (cffi-uffi-compat clsql clsql-uffi)
   :components
   ((:module :db-mysql
     :components
diff -rN -u old-clsql/clsql-odbc.asd new-clsql/clsql-odbc.asd
--- old-clsql/clsql-odbc.asd2007-06-15 18:35:51.000000000 -0400
+++ new-clsql/clsql-odbc.asd2007-06-15 18:35:51.000000000 -0400
&lt; at &gt;&lt; at &gt; -27,7 +27,7 &lt; at &gt;&lt; at &gt;
   :description "Common Lisp SQL ODBC Driver"
   :long-description "cl-sql-odbc package provides a database driver to the ODBC database system."
 
-  :depends-on (uffi clsql clsql-uffi)
+  :depends-on (cffi-uffi-compat clsql clsql-uffi)
   :components
   ((:module :db-odbc
     :components
diff -rN -u old-clsql/clsql-postgresql-socket.asd new-clsql/clsql-postgresql-socket.asd
--- old-clsql/clsql-postgresql-socket.asd2007-06-15 18:35:51.000000000 -0400
+++ new-clsql/clsql-postgresql-socket.asd2007-06-15 18:35:51.000000000 -0400
&lt; at &gt;&lt; at &gt; -29,7 +29,7 &lt; at &gt;&lt; at &gt;
   :description "Common Lisp SQL PostgreSQL Socket Driver"
   :long-description "cl-sql-postgresql-socket package provides a database driver to the PostgreSQL database via a socket interface."
 
-  :depends-on (clsql uffi md5 #+sbcl sb-bsd-sockets)
+  :depends-on (clsql cffi-uffi-compat md5 #+sbcl sb-bsd-sockets)
   :components
   ((:module :db-postgresql-socket
     :components
diff -rN -u old-clsql/clsql-postgresql.asd new-clsql/clsql-postgresql.asd
--- old-clsql/clsql-postgresql.asd2007-06-15 18:35:51.000000000 -0400
+++ new-clsql/clsql-postgresql.asd2007-06-15 18:35:51.000000000 -0400
&lt; at &gt;&lt; at &gt; -29,7 +29,7 &lt; at &gt;&lt; at &gt;
   :description "Common Lisp PostgreSQL API Driver"
   :long-description "cl-sql-postgresql package provides a the database driver for the PostgreSQL API."
 
-  :depends-on (uffi clsql clsql-uffi)
+  :depends-on (cffi-uffi-compat clsql clsql-uffi)
   :components
   ((:module :db-postgresql
     :components
diff -rN -u old-clsql/clsql-uffi.asd new-clsql/clsql-uffi.asd
--- old-clsql/clsql-uffi.asd2007-06-15 18:35:51.000000000 -0400
+++ new-clsql/clsql-uffi.asd2007-06-15 18:35:51.000000000 -0400
&lt; at &gt;&lt; at &gt; -79,7 +79,7 &lt; at &gt;&lt; at &gt;
   :description "Common UFFI Helper functions for Common Lisp SQL Interface Library"
   :long-description "cl-sql-uffi package provides common helper functions using the UFFI for the CLSQL package."
 
-  :depends-on (uffi clsql)
+  :depends-on (cffi-uffi-compat clsql)
 
   :components
   ((:module :uffi
diff -rN -u old-clsql/clsql.asd new-clsql/clsql.asd
--- old-clsql/clsql.asd2007-06-15 18:35:51.000000000 -0400
+++ new-clsql/clsql.asd2007-06-15 18:35:51.000000000 -0400
&lt; at &gt;&lt; at &gt; -27,7 +27,7 &lt; at &gt;&lt; at &gt;
 ;; need to load uffi for below perform :after method
 (eval-when (:compile-toplevel :load-toplevel :execute)
   (unless (find-package 'uffi)
-    (asdf:operate 'asdf:load-op 'uffi)))
+    (asdf:operate 'asdf:load-op 'cffi-uffi-compat)))
 
 (defsystem clsql
     :name "CLSQL"

Thu Jun 14 15:25:43 EDT 2007  Nathan Bird &lt;nathan-rGvcZsxnnNT9RPGrWp62eA&lt; at &gt;public.gmane.org&gt;
  * Implementing bigint support for odbc + mssql
diff -rN -u old-clsql/db-odbc/odbc-api.lisp new-clsql/db-odbc/odbc-api.lisp
--- old-clsql/db-odbc/odbc-api.lisp2007-06-15 17:57:28.000000000 -0400
+++ new-clsql/db-odbc/odbc-api.lisp2007-06-15 17:57:28.000000000 -0400
&lt; at &gt;&lt; at &gt; -240,7 +240,7 &lt; at &gt;&lt; at &gt;
     (SQLTransact
      henv hdbc $SQL_ROLLBACK)))
 
-; col-nr is zero-based in Lisp
+; col-nr is zero-based in Lisp but 1 based in sql
 ; col-nr = :bookmark retrieves a bookmark.
 (defun %bind-column (hstmt column-nr c-type data-ptr precision out-len-ptr)
   (with-error-handling
&lt; at &gt;&lt; at &gt; -494,6 +494,7 &lt; at &gt;&lt; at &gt;
    (deref-pointer column-nullable-p-ptr :short)))))))
 
 ;; parameter counting is 1-based
+;; this function isn't used, which is good because FreeTDS dosn't support it.
 (defun %describe-parameter (hstmt parameter-nr)
   (with-foreign-objects ((column-sql-type-ptr :short)
  (column-precision-ptr #.$ODBC-ULONG-TYPE)
&lt; at &gt;&lt; at &gt; -584,9 +585,10 &lt; at &gt;&lt; at &gt;
 (defun sql-to-c-type (sql-type)
   (ecase sql-type
     ((#.$SQL_CHAR #.$SQL_VARCHAR #.$SQL_LONGVARCHAR
-      #.$SQL_NUMERIC #.$SQL_DECIMAL #.$SQL_BIGINT -8 -9 -10) $SQL_C_CHAR) ;; Added -10 for MSSQL ntext type
+      #.$SQL_NUMERIC #.$SQL_DECIMAL -8 -9 -10) $SQL_C_CHAR) ;; Added -10 for MSSQL ntext type
     (#.$SQL_INTEGER $SQL_C_SLONG)
     (#.$SQL_SMALLINT $SQL_C_SSHORT)
+    (#.$SQL_BIGINT $SQL_C_SBIGINT)
     (#.$SQL_DOUBLE $SQL_C_DOUBLE)
     (#.$SQL_FLOAT $SQL_C_DOUBLE)
     (#.$SQL_REAL $SQL_C_FLOAT)
&lt; at &gt;&lt; at &gt; -604,6 +606,7 &lt; at &gt;&lt; at &gt;
 (def-type short-pointer-type (* :short))
 (def-type int-pointer-type (* :int))
 (def-type long-pointer-type (* #.$ODBC-LONG-TYPE))
+(def-type big-pointer-type (* #.$ODBC-BIG-TYPE))
 (def-type float-pointer-type (* :float))
 (def-type double-pointer-type (* :double))
 (def-type string-pointer-type (* :unsigned-char))
&lt; at &gt;&lt; at &gt; -624,6 +627,10 &lt; at &gt;&lt; at &gt;
   (locally (declare (type long-pointer-type ptr))
     (deref-pointer ptr #.$ODBC-LONG-TYPE)))
 
+(defun get-cast-big (ptr)
+  (locally (declare (type big-pointer-type ptr))
+    (deref-pointer ptr #.$ODBC-BIG-TYPE)))
+
 (defun get-cast-single-float (ptr)
   (locally (declare (type float-pointer-type ptr))
     (deref-pointer ptr :float)))
&lt; at &gt;&lt; at &gt; -670,8 +677,7 &lt; at &gt;&lt; at &gt;
    (#.$SQL_C_SSHORT (get-cast-short data-ptr)) ;; ?
    (#.$SQL_SMALLINT (get-cast-short data-ptr)) ;; ??
    (#.$SQL_INTEGER (get-cast-int data-ptr))
-   (#.$SQL_BIGINT (read-from-string
-   (get-cast-foreign-string data-ptr)))
+   (#.$SQL_BIGINT (get-cast-big data-ptr))
    (#.$SQL_DECIMAL
     (let ((*read-base* 10))
       (read-from-string (get-cast-foreign-string data-ptr))))
&lt; at &gt;&lt; at &gt; -741,6 +747,7 &lt; at &gt;&lt; at &gt;
             (#.$SQL_C_BIT (uffi:allocate-foreign-object :byte))
             (#.$SQL_C_STINYINT (uffi:allocate-foreign-object :byte))
             (#.$SQL_C_SSHORT (uffi:allocate-foreign-object :short))
+    (#.$SQL_C_SBIGINT (uffi:allocate-foreign-object #.$ODBC-BIG-TYPE))
             (#.$SQL_C_CHAR (uffi:allocate-foreign-string (1+ size)))
             (#.$SQL_C_BINARY (uffi:allocate-foreign-string (1+ (* 2 size))))
             (t
diff -rN -u old-clsql/db-odbc/odbc-constants.lisp new-clsql/db-odbc/odbc-constants.lisp
--- old-clsql/db-odbc/odbc-constants.lisp2007-06-15 17:57:28.000000000 -0400
+++ new-clsql/db-odbc/odbc-constants.lisp2007-06-15 17:57:28.000000000 -0400
&lt; at &gt;&lt; at &gt; -21,6 +21,7 &lt; at &gt;&lt; at &gt;
 ;; on SuSE AMD64 9.0, unixODBC is compiled with with SQLLEN being 4 bytes long
 (defconstant $ODBC-LONG-TYPE :int)
 (defconstant $ODBC-ULONG-TYPE :unsigned-int)
+(defconstant $ODBC-BIG-TYPE :long-long)
 
 ;; (defconstant $ODBCVER#x0210)
 
&lt; at &gt;&lt; at &gt; -934,6 +935,7 &lt; at &gt;&lt; at &gt;
 (defconstant $SQL_C_BINARY $SQL_BINARY)
 (defconstant $SQL_C_BIT $SQL_BIT)
 (defconstant $SQL_C_TINYINT $SQL_TINYINT)
+(defconstant $SQL_C_SBIGINT (+ $SQL_BIGINT $SQL_SIGNED_OFFSET))
 (defconstant $SQL_C_SLONG (+ $SQL_C_LONG $SQL_SIGNED_OFFSET)) ;; SIGNED INTEGER
 (defconstant $SQL_C_SSHORT (+ $SQL_C_SHORT $SQL_SIGNED_OFFSET)) ;; SIGNED SMALLINT
 (defconstant $SQL_C_STINYINT (+ $SQL_TINYINT $SQL_SIGNED_OFFSET)) ;; SIGNED TINYINT
diff -rN -u old-clsql/db-odbc/odbc-dbi.lisp new-clsql/db-odbc/odbc-dbi.lisp
--- old-clsql/db-odbc/odbc-dbi.lisp2007-06-15 17:57:28.000000000 -0400
+++ new-clsql/db-odbc/odbc-dbi.lisp2007-06-15 17:57:28.000000000 -0400
&lt; at &gt;&lt; at &gt; -454,22 +454,19 &lt; at &gt;&lt; at &gt;
     (setf computed-result-types (make-array column-count))
     (dotimes (i column-count)
       (setf (aref computed-result-types i) 
-(cond
- ((consp result-types)
-  (nth i result-types))
- ((eq result-types :auto)
-  (if (eq (aref column-sql-types i) odbc::$SQL_BIGINT)
-      :number
-    (case (aref column-c-types i)
-      (#.odbc::$SQL_C_SLONG :int)
-      (#.odbc::$SQL_C_DOUBLE :double)
-      (#.odbc::$SQL_C_FLOAT :float)
-      (#.odbc::$SQL_C_SSHORT :short)
-      (#.odbc::$SQL_C_STINYINT :short)
-      (#.odbc::$SQL_BIGINT :short)
-      (t t))))
-  (t
-   t)))))
+    (cond
+      ((consp result-types)
+       (nth i result-types))
+      ((eq result-types :auto)
+       (case (aref column-c-types i)
+ (#.odbc::$SQL_C_SLONG :int)
+ (#.odbc::$SQL_C_DOUBLE :double)
+ (#.odbc::$SQL_C_FLOAT :float)
+ (#.odbc::$SQL_C_SSHORT :short)
+ (#.odbc::$SQL_C_STINYINT :short)
+ (#.odbc::$SQL_C_SBIGINT #.odbc::$ODBC-BIG-TYPE)
+ (t t)))
+      (t t)))))
   query)
 
 (defun db-close-query (query &amp;key drop-p)
&lt; at &gt;&lt; at &gt; -564,7 +561,8 &lt; at &gt;&lt; at &gt;
 (defun sql-to-lisp-type (sql-type)
   (ecase sql-type
     ((#.odbc::$SQL_CHAR #.odbc::$SQL_VARCHAR #.odbc::$SQL_LONGVARCHAR) :string)
-    ((#.odbc::$SQL_NUMERIC #.odbc::$SQL_DECIMAL #.odbc::$SQL_BIGINT) :string) ; ??
+    ((#.odbc::$SQL_NUMERIC #.odbc::$SQL_DECIMAL ) :string) ; ??
+    (#.odbc::$SQL_BIGINT #.odbc::$ODBC-BIG-TYPE)
     (#.odbc::$SQL_INTEGER #.odbc::$ODBC-LONG-TYPE)
     (#.odbc::$SQL_SMALLINT :short)
     ((#.odbc::$SQL_FLOAT #.odbc::$SQL_DOUBLE) #.odbc::$ODBC-LONG-TYPE)

_______________________________________________
CLSQL-Devel mailing list
CLSQL-Devel-0lovp2JerKU&lt; at &gt;public.gmane.org
http://lists.b9.com/mailman/listinfo/clsql-devel
</description>
    <dc:creator>Nathan Bird</dc:creator>
    <dc:date>2007-06-15T22:38:30</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/701">
    <title>ODBC -&gt; MSSQL transactions (HACK)</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/701</link>
    <description>I had some problems with transactions, here is a hack around that works
for me. It is based on the fact that apparently mssql requires the
"transaction" keyword in "commit transaction" when it is over odbc. 
ODBC actually has a different scheme for transactions based on turning
off autocommit, and then doing the commit manually with SQLEndTran or
somesuch, that looked more difficult and with this all the tests pass. :-)

clsql -&gt; unixodbc -&gt; freetds (0.63) -&gt; mssql 2000

Nathan Bird
</description>
    <dc:creator>Nathan Bird</dc:creator>
    <dc:date>2007-06-15T21:54:29</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/700">
    <title>SBCL calculating key-slots and finalize-inheritance</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/700</link>
    <description>I hit a weird bug the other day where compiling a file of a bunch of
def-view-class(es). The problem is that the key-slots slot on the
standard-db-class for some of the view-classes aren't being filled
properly.

Most of it works fine but there are several classes that have identical
column lists/slot definitions. These tables in the database were all
created via another macro elsewhere to hold similar but logically
distinct data. After compilation, the first one in the file has the
correct key-slots, but the rest are empty. Recompiling the file fills
the key-slots for all of them correctly, but putting the file in my .asd
twice didn't appear to be a good solution.

The solution I found (patch attached) is to do the same for SBCL as is
being done for allegro in this case: calculate the key-slots in
FINALIZE-INHERITANCE :AFTER. This makes some amount of sense, but I
don't know why it doesn't work from the INITIALIZE-INSTANCE :AROUND  so
this may still be missing something.

With this patch it works for me in sbcl 1.0.5 and 1.0.6.

Nathan Bird
Thu Jun  7 17:00:09 EDT 2007  Nathan Bird &lt;nathan-rGvcZsxnnNT9RPGrWp62eA&lt; at &gt;public.gmane.org&gt;
  * Set the key-slots :after FINALIZE-INHERITANCE for sbcl
diff -rN -u old-clsql/sql/metaclasses.lisp new-clsql/sql/metaclasses.lisp
--- old-clsql/sql/metaclasses.lisp2007-06-15 11:59:00.000000000 -0400
+++ new-clsql/sql/metaclasses.lisp2007-06-15 11:59:00.000000000 -0400
&lt; at &gt;&lt; at &gt; -192,13 +192,13 &lt; at &gt;&lt; at &gt;
       (setq all-slots (remove-if #'not-db-col all-slots))
       (setq all-slots (stable-sort all-slots #'string&lt; :key #'car))
       (setf (object-definition class) all-slots))
-    #-allegro
+    #-(or sbcl allegro)
     (setf (key-slots class) (remove-if-not (lambda (slot)
      (eql (slot-value slot 'db-kind)
   :key))
    (ordered-class-slots class)))))
 
-#+allegro
+#+(or sbcl allegro)
 (defmethod finalize-inheritance :after ((class standard-db-class))
   (setf (key-slots class) (remove-if-not (lambda (slot)
    (eql (slot-value slot 'db-kind)

_______________________________________________
CLSQL-Devel mailing list
CLSQL-Devel-0lovp2JerKU&lt; at &gt;public.gmane.org
http://lists.b9.com/mailman/listinfo/clsql-devel
</description>
    <dc:creator>Nathan Bird</dc:creator>
    <dc:date>2007-06-15T20:20:25</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/685">
    <title>[patch] with-database bug</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/685</link>
    <description>Hello,

This patch is for the bug reported in 
http://lists.b9.com/pipermail/clsql-help/2007-May/000823.html

Even if its not considered a bug, at the very least, this behaviour of 
with-database is very surprising.

This patch makes sure that in WITH-DATABASE, the default value of 
MAKE-DEFAULT is NIL when CONNECT is called. I am not sure if this is the 
right way to fix this bug, but since the original post received no 
response, I am posting this. Hopefully it will be fixed soon.

Thanks,

Chaitanya
--- clsql-3.8.3/sql/database.lisp.orig2007-05-19 01:20:07.000000000 +0530
+++ clsql-3.8.3/sql/database.lisp2007-05-19 01:35:31.000000000 +0530
&lt; at &gt;&lt; at &gt; -307,6 +307,20 &lt; at &gt;&lt; at &gt;
     (setq connection-spec (string-to-list-connection-spec connection-spec)))
   (database-list connection-spec database-type))
 
+(defun connect-2 (connection-spec
+  &amp;key (if-exists *connect-if-exists*)
+  (make-default nil)
+  (pool nil)
+  (database-type *default-database-type*))
+  "Just like CONNECT, except that MAKE-DEFAULT is NIL by default.
+This is to prevent WITH-DATABASE from assigning a connection to *DEFAULT-DATABASE* 
+outside the scope of its body by default."
+  (connect connection-spec
+   :if-exists if-exists
+   :make-default make-default
+   :pool pool
+   :database-type database-type))
+
 (defmacro with-database ((db-var connection-spec &amp;rest connect-args) &amp;body body)
   "Evaluate the body in an environment, where DB-VAR is bound to the
 database connection given by CONNECTION-SPEC and CONNECT-ARGS.  The
&lt; at &gt;&lt; at &gt; -314,7 +328,7 &lt; at &gt;&lt; at &gt;
 from the body."
   (let ((result (gensym "result-")))
     (unless db-var (setf db-var '*default-database*))
-    `(let ((,db-var (connect ,connection-spec ,&lt; at &gt;connect-args))
+    `(let ((,db-var (connect-2 ,connection-spec ,&lt; at &gt;connect-args))
    (,result nil))
       (unwind-protect
    (let ((,db-var ,db-var))
_______________________________________________
CLSQL-Devel mailing list
CLSQL-Devel-0lovp2JerKU&lt; at &gt;public.gmane.org
http://lists.b9.com/mailman/listinfo/clsql-devel
</description>
    <dc:creator>Chaitanya Gupta</dc:creator>
    <dc:date>2007-05-26T07:51:37</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/683">
    <title>Patch: cosmetic changes</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/683</link>
    <description>The attached patch makes two cosmetic changes to avoid unnecessary 
warnings:

1. an sbcl style-warning about implicitly defining a generic function in 
the sqlite3 backend;

2. warnings issued by CLSQL-UFFI::FIND-AND-LOAD-FOREIGN-LIBRARY about not 
finding a foreign library even when one of the candidate filenames is 
found and loaded (if none of the candidates is found in any of the search 
paths then a full error is signalled).

Cheers,
Marcus
_______________________________________________
CLSQL-Devel mailing list
CLSQL-Devel-0lovp2JerKU&lt; at &gt;public.gmane.org
http://lists.b9.com/mailman/listinfo/clsql-devel
</description>
    <dc:creator>Marcus Pearce</dc:creator>
    <dc:date>2007-04-25T10:12:49</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/678">
    <title>LOCALLY-ENABLE-SQL-READER-SYNTAX doc error?</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/678</link>
    <description>The documentation says:

LOCALLY-ENABLE-SQL-READER-SYNTAX — Globally enable square bracket  
reader syntax.
Macro

I assume this is a typo?

Thanks,

Cyrus
</description>
    <dc:creator>Cyrus Harmon</dc:creator>
    <dc:date>2007-04-16T18:43:43</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/677">
    <title>Documentation notes</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/677</link>
    <description>I've been poking through the PDF documentation, and the SYNTAX for LOOP 
section extends off the page to the right, so part of it is not visible 
to the reader. QUERY, SELECT, MAP-QUERY and DO-QUERY seem to have 
similar truncations. For some other functions, like PRINT-QUERY, it 
becomes confusing because it looks like it is truncated, but it just has 
no result. Maybe using "=&gt; nil" the way they do in the Hyperspec for 
functions with no return value would make it more clear.

I don't know enough DocBook myself to fix this, but I thought I'd point 
it out.

-Harold
</description>
    <dc:creator>Harold Lee</dc:creator>
    <dc:date>2007-04-12T00:14:28</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/676">
    <title>Disconnect/Reconnect issues</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/676</link>
    <description>CLSQL:RECONNECT didn't work for me right off. It looks like 
CLSQL-SYS::CONNECT in sql/database.lisp needs to save the 
connection-spec. At the bottom of the function I changed

      (setf (slot-value result 'state) :open)

to

      (setf (slot-value result 'state) :open
                (slot-value result 'connection-spec) connection-spec)


and all is well...

CL-USER&gt; (setf *conn* (clsql:connect '("hah" nil nil) :database-type :odbc))
#&lt;CLSQL-ODBC:ODBC-DATABASE hah/ OPEN {BA3A171}&gt;
CL-USER&gt; (clsql:disconnect :database *conn*)
T
CL-USER&gt; (slot-value *conn* 'clsql-sys::state)
:CLOSED
CL-USER&gt; (slot-value *conn* 'clsql-sys::connection-spec)
("hah" NIL NIL)
CL-USER&gt; (clsql:reconnect :database *conn*)
#&lt;CLSQL-ODBC:ODBC-DATABASE hah/ OPEN {BAAD719}&gt;
CL-USER&gt;

-Harold
</description>
    <dc:creator>Harold Lee</dc:creator>
    <dc:date>2007-04-08T09:07:24</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/675">
    <title>[patch] don't munge case of keywords in SQLexpressions</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/675</link>
    <description>The attached patch removes the code which converts keywords to the
database's default case within SQL expressions.  With PostgreSQL, stock
CLSQL does the following:

  [= [relation-type] :father]

    =&gt;

  "relation_type = 'father'"

This is a problem as keywords are stored in the database in uppercase
(or perhaps *PRINT-CASE*, not sure).  So checking a value you stored
against itself will never succeed.

I don't believe the solution is to make storing into the database use
the database's default case, as that would gratuitiously remove data
portability between backends when moving from a database with a default
case of :UPCASE to one with a default case of :DOWNCASE, or vice versa.

</description>
    <dc:creator>Tim Howe</dc:creator>
    <dc:date>2007-04-01T16:06:36</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/674">
    <title>CMUCL 19d</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/674</link>
    <description>I, like others, have encountered problems loading CLSQL on CMUCL 19d.
In my case the call which triggered the problems is:

   * (asdf:oos 'asdf:load-op :clsql-postgresql)

   Undefined foreign symbol: "atol64"
      [Condition of type KERNEL:SIMPLE-PROGRAM-ERROR]

I am able to circumvent the problem as follows:

   * (alien:load-foreign
      #p"/home/vsync/devel/vendor/clsql-3.8.2/uffi/clsql_uffi.so")
     ; I assume the above requires the file to have been generated by
     ; the failed LOAD-OP
   * (asdf:oos 'asdf:load-op :clsql-postgresql)
   ; Compilation unit finished.
   ;   2 notes

   NIL
   * 

It seems that the problem lies in uffi/src/libraries.lisp:

   #+cmu
   (let ((type (pathname-type (parse-namestring filename))))
     (if (string-equal type "so")
         (sys::load-object-file filename)
         (alien:load-foreign filename
                             :libraries
                             (convert-supporting-libraries-to-string
                              supporting-libraries))))

I wonder if the issue can be resolved by removing the IF and simply
replacing it with the else-form.  However at a quick glance at the CMUCL
changelog I wasn't able to determine whether this was deliberately
changed between 19c and 19d.  So I leave further exploration to you.

</description>
    <dc:creator>Tim Howe</dc:creator>
    <dc:date>2007-04-01T11:43:40</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/667">
    <title>UTF8 salt</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/667</link>
    <description>Hi,
I had some problems connecting to PostgreSQL (socket interface). This
seems to have fixed it:

diff -r -u clsql-3.8.1/db-postgresql-socket/postgresql-socket-api.lisp
clsql-lars/db-postgresql-socket/postgresql-socket-api.lisp
--- clsql-3.8.1/db-postgresql-socket/postgresql-socket-api.lisp
2006-05-10 17:08:30.000000000 +0200
+++ clsql-lars/db-postgresql-socket/postgresql-socket-api.lisp
2007-03-23 07:43:32.000000000 +0100
&lt; at &gt;&lt; at &gt; -226,7 +226,7 &lt; at &gt;&lt; at &gt;
   (let ((bytes (make-array length :element-type '(unsigned-byte 8))))
     (declare (type (simple-array (unsigned-byte 8) (*)) bytes))
     (read-sequence bytes stream)
-    (sb-ext:octets-to-string bytes)))
+    (map 'string #'code-char bytes)))


I'm running a unicode-enabled SBCL (CVS) on Linux X86.

</description>
    <dc:creator>Lars Rune Nøstdal</dc:creator>
    <dc:date>2007-03-23T06:50:21</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/666">
    <title>documentation bug</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/666</link>
    <description>Function:
LOCALLY-ENABLE-SQL-READER-SYNTAX

Description:
Globally enable square bracket reader syntax. 
</description>
    <dc:creator>Joe Corneli</dc:creator>
    <dc:date>2007-03-08T01:46:42</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/663">
    <title>Cosmetic stuff</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/663</link>
    <description>And while I'm at it - here a some cosmetic patches to avoid
unnecessary warnings.

_______________________________________________
CLSQL-Devel mailing list
CLSQL-Devel-0lovp2JerKU&lt; at &gt;public.gmane.org
http://lists.b9.com/mailman/listinfo/clsql-devel
</description>
    <dc:creator>Edi Weitz</dc:creator>
    <dc:date>2006-12-30T23:54:09</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/662">
    <title>LispWorks 5.0 compatibility</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/662</link>
    <description>LispWorks 5.0 introduces a system package called "POSTGRESQL" which
conflicts with CLSQL.  Although it is only used in the Enterprise
Edition, it is present in the Professional Edition as well and will
most likely also be in the upcoming Personal Edition.  Because of
this, CLSQL-POSTGRESQL won't compile out of the box on LW 5.0.

I don't think we'll be able to convince LispWorks to rename this
package as CLSQL is in direct competition with (and in parts
imitating) their CommonSQL which is part of the Enterprise Edition, so
if the PostgreSQL part of CLSQL wants to remain usable for LispWorks
users, I think there are basically two ways to deal with this:

1. Enable CLSQL to modify the LispWorks system package "POSTGRESQL".
   This is attached as the "simple" patch and is obviously the least
   intrusive for CLSQL itself.  It is potentially dangerous for LW
   users, though, especially for those of the Enterprise Edition.  If
   you decide to go this way, I'd at least add a corresponding note to
   the manual.

2. Switch the role of the package name and the nickname for CLSQL's
   "POSTGRESQL" package (and skip the nickname for LispWorks 5.0).
   This is only mildly intrusive for the CLSQL code base and should be
   fully backwards compatible with virtually all code using CLSQL.
 
   This is attached as the "full" patch.

I'd obviously prefer the second alternative.

Cheers,
Edi.

_______________________________________________
CLSQL-Devel mailing list
CLSQL-Devel-0lovp2JerKU&lt; at &gt;public.gmane.org
http://lists.b9.com/mailman/listinfo/clsql-devel
</description>
    <dc:creator>Edi Weitz</dc:creator>
    <dc:date>2006-12-30T23:41:05</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/648">
    <title>loading of clsql_uffi.dll in delivered application (Lispworks)</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/648</link>
    <description>
I had some problems using clsql in a delivered app.
It seems the path to the foreign library/dll is set
when clsql is loaded during delivery, so if the DLL
is located in a different place when the delivered
excutable is run, it fails to load the DLL. 

For some reason the sqlite3 DLL seems to work fine,
although I couldn't find any difference in how the
DLLs are loaded. 

What I've ended up doing, is adding 
 (push (make-pathname :name nil :type nil :defaults (lisp-image-name))
       clsql:*foreign-library-search-paths*
 (clsql-uffi::load-uffi-foreign-library)

To my delivery start function, this seems to work,
but there's the nasty :: in there which indicates
that it may not be the right thing to do?

</description>
    <dc:creator>AsbjørnBjørnstad</dc:creator>
    <dc:date>2006-12-07T12:13:21</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.clsql.devel/646">
    <title>Patch for bug in SQLite code</title>
    <link>http://comments.gmane.org/gmane.lisp.clsql.devel/646</link>
    <description>Attached is a little patch which fixes a bug where ERROR is called
with wrong arguments.

Cheers,
Edi.


diff -ruw clsql-3.7.7-orig/db-sqlite3/sqlite3-sql.lisp clsql-3.7.7/db-sqlite3/sqlite3-sql.lisp
--- clsql-3.7.7-orig/db-sqlite3/sqlite3-sql.lisp2006-10-16 14:38:24.000000000 +0200
+++ clsql-3.7.7/db-sqlite3/sqlite3-sql.lisp2006-11-30 21:53:21.324630400 +0100
&lt; at &gt;&lt; at &gt; -181,8 +181,8 &lt; at &gt;&lt; at &gt;
 (setf (sqlite3-result-set-n-col result-set) 0))
     (sqlite3:sqlite3-error (err)
       (error 'sql-database-error
-     :message "Error in sqlite3-step: ~A"
-     (sqlite3:sqlite3-error-message err))))
+     :message (format nil "Error in sqlite3-step: ~A"
+                                      (sqlite3:sqlite3-error-message err)))))
   t))))
</description>
    <dc:creator>Edi Weitz</dc:creator>
    <dc:date>2006-11-30T21:01:23</dc:date>
  </item>
  <textinput about="http://search.gmane.org/?group=$group=gmane.lisp.clsql.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.lisp.clsql.devel</link>
  </textinput>
</rdf:RDF>
