CLSQL Version 5
Kevin Rosenberg <kevin-HJRc7zDS/[email protected]>
| Newsgroups | gmane.lisp.clsql.general |
|---|---|
| Message-ID | <[email protected]> |
I just released CLSQL version 5.0.0. The good news is that this release, along with UFFI version 1.8.1, provides formal support for non-ASCII strings. Previously, such support was scattered about and considered strings to be UTF-8 on some platforms. Now, the encoding of the character data can be formally specified. I trust this will help most international users. The bad news is, like each time I incremented the major version, there is the possibility of some backward incompatibility for people who are using non-ASCII strings. While I tried to avoid such problem everywhere that I looked, it is possible that the now explicitly set character encoding will override some previous default behavior of the implementation. To see how to use the character set encoding, please refer to tests/test-i18n.lisp. A list of supported encodings is in UFFI's src/i18n.lisp. The manuals for UFFI and CLSQL have not yet been updated with the new functionality. I'd welcome any additions to the test-i18n.lisp, especially for :EUC-JP and :GBK character sets. For ease of editing and viewing varied character sets, at some point I'll split that file to files named such as test-i18n-utf8 and test-i18n-gbk. Lastly, while string conversions currently use UFFI:*DEFAULT-FOREIGN-ENCODING*, I have not yet added support to send commands to the underlying SQL engine to alter the character encoding that the SQL engine is expecting. Additionally, in the near future rather than using only UFFI:*DEFAULT-FOREIGN-ENCODING* to specify the character set, a foreign encoding will be able to be optionally set on database objects. This will override the global *DEFAULT-FOREIGN-ENCODING* and all string conversions for that database will use its specified encoding. I expect a number of changes in the near future with character encoding. I'd be glad to get bug reports, comments, and patches from users. Like all previous major version upgrades, I would not recommend using this significant change in a production environment until the new version has been more widely tested and the expected additional functionality listed above is implemented. Kevin