<!-- 
RSS generated by JIRA (4.4#649-r158309) at Thu Jun 20 01:43:01 CDT 2013

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
For example:
http://dev.clojure.org/jira/si/jira.issueviews:issue-xml/JDBC-26/JDBC-26.xml?field=key&field=summary
-->
<rss version="0.92" >
<channel>
    <title>Clojure JIRA</title>
    <link>http://dev.clojure.org/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>4.4</version>
        <build-number>649</build-number>
        <build-date>25-07-2011</build-date>
    </build-info>

<item>
            <title>[JDBC-26] Add sqlite3 support</title>
                <link>http://dev.clojure.org/jira/browse/JDBC-26</link>
                <project id="10021" key="JDBC">java.jdbc</project>
                        <description>&lt;p&gt;sqlite3 has some problems:&lt;/p&gt;

&lt;p&gt;1) PreparedStatements.addBatch does not do anything without some parameters, so executeBatch doesn&apos;t do anything.&lt;br/&gt;
2) Transaction support appears to require closing the ResultSet object from generatedKeys.&lt;/p&gt;

&lt;p&gt;I&apos;ve only tested the included patch with the default test dbs and sqlite3.&lt;/p&gt;</description>
                <environment></environment>
            <key id="15222">JDBC-26</key>
            <summary>Add sqlite3 support</summary>
                <type id="4" iconUrl="http://dev.clojure.org/jira/images/icons/improvement.gif">Enhancement</type>
                                <priority id="4" iconUrl="http://dev.clojure.org/jira/images/icons/priority_minor.gif">Minor</priority>
                    <status id="5" iconUrl="http://dev.clojure.org/jira/images/icons/status_resolved.gif">Resolved</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="seancorfield">Sean Corfield</assignee>
                                <reporter username="xeqi">Nelson Morris</reporter>
                        <labels>
                    </labels>
                <created>Mon, 13 Feb 2012 23:46:14 -0600</created>
                <updated>Mon, 23 Apr 2012 03:35:50 -0500</updated>
                    <resolved>Mon, 23 Apr 2012 03:35:02 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="27716" author="seancorfield" created="Tue, 14 Feb 2012 01:01:20 -0600"  >&lt;p&gt;This will break things - see &lt;a href=&quot;http://dev.clojure.org/jira/browse/JDBC-16&quot; title=&quot;do-prepared doesn&amp;#39;t throw on invalid SQL&quot;&gt;&lt;del&gt;JDBC-16&lt;/del&gt;&lt;/a&gt; which required that .addBatch be called when there are no param-groups. I&apos;m not going to reject this out of hand but patches for new database support need testing against MySQL, PostgreSQL and MS SQL Server.&lt;/p&gt;</comment>
                    <comment id="27719" author="xeqi" created="Tue, 14 Feb 2012 13:48:15 -0600"  >&lt;p&gt;Test suite runs correctly for TEST_DBS=mysql,postgres,derby,hsqldb,sqlite3 and TEST_DBS=mysql-str,postgres-str.  This just leaves MS SQL server, which I do not have the ability to run.&lt;/p&gt;

&lt;p&gt;Regarding &lt;a href=&quot;http://dev.clojure.org/jira/browse/JDBC-16&quot; title=&quot;do-prepared doesn&amp;#39;t throw on invalid SQL&quot;&gt;&lt;del&gt;JDBC-16&lt;/del&gt;&lt;/a&gt;, when I revert to just using .executeBatch for the no param-groups case I can see the errors produced in the test-suite.  Using .executeUpdate for the no params-group case continues to fix these errors (note MS SQL server untested).  I do not see any other information in the ticket that would explain why using .executeUpdate instead of .addBatch/.executeBatch for the no params-group case would break &lt;a href=&quot;http://dev.clojure.org/jira/browse/JDBC-16&quot; title=&quot;do-prepared doesn&amp;#39;t throw on invalid SQL&quot;&gt;&lt;del&gt;JDBC-16&lt;/del&gt;&lt;/a&gt;. Is there a reason I am missing?&lt;/p&gt;</comment>
                    <comment id="27762" author="xeqi" created="Fri, 17 Feb 2012 22:05:36 -0600"  >&lt;p&gt;I ran the test suite against an ec2 instance with MS SQL server 2008 R2.  Current test suite on master fails with attached mssql-error.log.  Using patch produces the same output.&lt;/p&gt;

&lt;p&gt;Please let me know if there is anything that you would like changed.&lt;/p&gt;</comment>
                    <comment id="27763" author="seancorfield" created="Fri, 17 Feb 2012 22:14:28 -0600"  >&lt;p&gt;Thanx Nelson. I&apos;ve been a bit busy with work this week but I&apos;ll try to look at this at the weekend. I appreciate your thoroughness on testing this!&lt;/p&gt;</comment>
                    <comment id="27895" author="seancorfield" created="Wed, 29 Feb 2012 23:33:01 -0600"  >&lt;p&gt;Integrated parts of the patch. SQLite 3 is now supported. Thanx!&lt;/p&gt;</comment>
                    <comment id="27896" author="xeqi" created="Thu, 1 Mar 2012 00:57:49 -0600"  >&lt;p&gt;I still get the transaction issue (part 2 from original description) when clojure.java.jdbc tries to return the generated keys, in a transaction, using sqlite. &lt;a href=&quot;https://gist.github.com/1947746&quot;&gt;https://gist.github.com/1947746&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I believe this is because the ResultSet from .getGeneratedKeys never gets .close called, so sqlite keeps the db locked and can&apos;t rollback.  Would you like me to make a new issue?&lt;/p&gt;</comment>
                    <comment id="27897" author="seancorfield" created="Thu, 1 Mar 2012 01:03:49 -0600"  >&lt;p&gt;The tests pass locally (Mac OS X) and on the Clojure build server (Linux) but you&apos;re right that I didn&apos;t include the close call on the record set.&lt;/p&gt;

&lt;p&gt;I didn&apos;t include your additional test which I&apos;m guessing is the key to highlighting the errant behavior for SQLite?&lt;/p&gt;

&lt;p&gt;(I couldn&apos;t actually apply your patch because I&apos;d spent some time getting all the tests passing for MS SQL Server with both the Microsoft and jTDS drivers)&lt;/p&gt;</comment>
                    <comment id="27898" author="xeqi" created="Thu, 1 Mar 2012 01:19:54 -0600"  >&lt;p&gt;Attached patch that fails with `mvn test`. &lt;/p&gt;</comment>
                    <comment id="28243" author="seancorfield" created="Mon, 23 Apr 2012 03:35:02 -0500"  >&lt;p&gt;I believe this was fixed in 0.1.3 (at the end of February). As far as I can tell, all of the patch components are applied. Specifically, your transaction test is included in the test suite and passes.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="10923" name="mssql-error.log" size="42819" author="xeqi" created="Fri, 17 Feb 2012 22:06:08 -0600" />
                    <attachment id="10908" name="sqlite3-support.patch" size="6304" author="xeqi" created="Mon, 13 Feb 2012 23:46:14 -0600" />
                    <attachment id="10975" name="sqlite_transaction_test.patch" size="1390" author="xeqi" created="Thu, 1 Mar 2012 01:15:45 -0600" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10000" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Patch</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10002">Code and Test</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                        </customfields>
    </item>
</channel>
</rss>