<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 && 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 "printArrayContents", 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'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>