<div>Hello,</div><div><br></div><div>The Takusen team would like to announce the latest release of Takusen,</div><div>0.8.6.  This is primarily a bug fix and test suite enhancement</div><div>release.  The most notable new feature is limited support for string</div>
<div>encodings with ODBC.  The full list of changes is included at the</div><div>at the end of this announcement.</div><div><br></div><div>= Interested in Takusen development? =</div><div><br></div><div>Takusen is looking for a new long term maintainer.  I have agreed to</div>
<div>fill the role of maintainer for now, but we are seeking an</div><div>enthusiastic individual with spare time and a desire to lead Takusen</div><div>development.</div><div><br></div><div>= How to get it =</div><div><br>
</div><div>This release is available on hackage:</div><div>  cabal update &amp;&amp; cabal install Takusen</div><div><br></div><div>The source code is available on <a href="http://code.haskell.org">code.haskell.org</a>:</div>
<div>  darcs get <a href="http://code.haskell.org/takusen">http://code.haskell.org/takusen</a></div><div><br></div><div><br></div><div>= New features =</div><div><br></div><div>- Alistair Bayley:</div><div><br></div><div>
  * Database/PostgreSQL/PGFunctions.lhs: show instance for UUID prints</div><div>    Word64s in hex.</div><div><br></div><div>  * Database/PostgreSQL/Enumerator.lhs: add UUID and marshaling</div><div>    functions.</div><div>
<br></div><div>  * Database/PostgreSQL/PGFunctions.lhs: add UUID and marshalling</div><div>    functions.</div><div><br></div><div>  * Database/ODBC/OdbcFunctions.hsc: add support for different String</div><div>    encodings. New functions to marshal to/from various encodings</div>
<div>    (Latin1, UTF8, UTF16), and bind/get functions changed to use</div><div>    these.</div><div><br></div><div>- Daniel Corson</div><div>  * binary data with postgres</div><div><br></div><div>= Bug fixes =</div><div>
<br></div><div>- Alistair Bayley:</div><div><br></div><div>  * Database/ODBC/OdbcFunctions.hsc: fix bug in</div><div>    mkBindBufferForStorable for Nothing (null) case: pass -1</div><div>    (sqlNullData) as value size.</div>
<div><br></div><div>  * Database/ODBC/OdbcFunctions.hsc: use sqlNullData in</div><div>    bindParamString Nothing case, rather than -1. A bit more</div><div>    descriptive.</div><div><br></div><div>  * Database/ODBC/Enumerator.lhs: store bind buffers in stmt object,</div>
<div>    so we retain reference to them for lifetime of statement. Destroy</div><div>    with statement (well, lose the reference). Should fix bind errors</div><div>    found by Jason Dagit.</div><div><br></div><div>  * Database/ODBC/Enumerator.lhs: Oracle only supports two transaction</div>
<div>    isolation levels (like Postgres). String output bind parameters</div><div>    have max size 8000 (we use 7999 because module OdbcFunctions adds</div><div>    one to the size).</div><div><br></div><div>  * Database/ODBC/OdbcFunctions.hsc: string parameters have different</div>
<div>    SQL data types when binding columns (SQL_CHAR) and parameters</div><div>    (SQL_VARCHAR). Oracle only supports two transaction isolation</div><div>    levels.</div><div><br></div><div>  * Database/PostgreSQL/PGFunctions.lhs: fix byteaUnesc and add</div>
<div>    byteaEsc.</div><div><br></div><div><br></div><div>= Refactoring =</div><div><br></div><div>- Jason Dagit:</div><div>  * update urls in cabal file</div><div><br></div><div>- Alistair Bayley:</div><div><br></div><div>
  * Takusen.cabal: fixed QuickCheck version spec.</div><div><br></div><div>  * Takusen.cabal: bump version to 0.8.6.</div><div><br></div><div>  * Database/ODBC/OdbcFunctions.hsc: makeUtcTimeBuffer: pass struct</div><div>    size as both buffer size and data size in call to mkBindBuffer.</div>
<div><br></div><div>  * Database/ODBC/OdbcFunctions.hsc: mkBindBufferForStorable calls</div><div>    mkBindBuffer (reduces duplicated code).</div><div><br></div><div>  * Database/ODBC/Enumerator.lhs: add instance for EnvInquiry to</div>
<div>    change session char encoding.</div><div><br></div><div>  * Database/ODBC/Enumerator.lhs: add comments to beginTransaction.</div><div><br></div><div>  * Database/Util.lhs: print &quot;printArrayContents&quot;, to match function</div>
<div>    name.</div><div><br></div><div>  * Database/PostgreSQL/Enumerator.lhs: expose byteaEsc and</div><div>    byteaUnesc.</div><div><br></div><div>= New tests and changes to tests =</div><div><br></div><div>- Alistair Bayley:</div>
<div><br></div><div>  * Database/ODBC/Test/OdbcFunctions.lhs: added testBindDouble to test</div><div>    Nothing (null) case for Storable types.</div><div><br></div><div>  * Database/ODBC/Test/OdbcFunctions.lhs: split transaction isolation</div>
<div>    level tests so there is one test per level. String marshaling</div><div>    tests use 0x10FF40 as max unicode codepoint, because that keeps</div><div>    Oracle happy. Max size for String parameter buffer is 7999 (SQL</div>
<div>    Server restriction). Don&#39;t bury errors raised by tests; print, but</div><div>    continue. Fix fixture cleanup bug in testBindOutput (dropped wrong</div><div>    procedure).</div><div><br></div><div>  * Database/ODBC/Test/Enumerator.lhs: suffix xxx to bindOutput test</div>
<div>    expected value.</div><div><br></div><div>  * Database/PostgreSQL/Test/PGFunctions.lhs: tests for UUID.</div><div><br></div><div>  * Database/PostgreSQL/Test/Enumerator.lhs: round-trip test for UUID.</div><div><br>
</div><div>  * Database/PostgreSQL/Test/PGFunctions.lhs: test select of UUID</div><div>    value.</div><div><br></div><div>  * Database/ODBC/Test/OdbcFunctions.lhs: set client charset to UTF8</div><div>    when postgresql.</div>
<div><br></div><div>  * Database/Test/Enumerator.lhs: add order-bys to tests with unions.</div><div><br></div><div>  * Database/PostgreSQL/Test/PGFunctions.lhs: add order-by to union</div><div>    test.</div><div><br></div>
<div>  * Database/ODBC/Test/Enumerator.lhs: set char encoding to</div><div>    UTF8. inquire InfoDbmsName already returns lowercase.</div><div><br></div><div>  * Takusen.cabal: add random to build-depends for tests.</div>
<div><br></div><div>  * Database/Test/Enumerator.lhs: make test fixtures more friendly to</div><div>    MS Access.</div><div><br></div><div>  * Database/ODBC/Test/OdbcFunctions.lhs: tests modified for MS Access</div><div>
    (date tests), plus use new char-encoding aware functions.</div><div><br></div><div>  * Database/ODBC/Test/Enumerator.lhs: change boundary dates test to</div><div>    not use union. Union seems to make MS Access choke.</div>
<div><br></div><div>  * Database/PostgreSQL/Test/PGFunctions.lhs: add tests for bytea,</div><div>    including QuickCheck roundtrip.</div><div><br></div><div>  * Database/PostgreSQL/Test/Enumerator.lhs: add bytea bind and select</div>
<div>    test.</div><div><br></div>