www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - mysql-native v1.0.0-rc4

One more update to the MySQL/MariaDB client lib, hopefully the last 
before v1.0.0 final.

This one actually includes quite a few more changes I wanted to get in 
as long as it's making the big leap up to v1.0.0 (see below).

For now, this still lives in a separate fork:
https://github.com/Abscissa/mysql-native-experimental

To use it:
$ git clone https://github.com/Abscissa/mysql-native-experimental.git
$ dub add-local path/to/mysql-native-experimental

And then, when you're doing using this preview:
$ dub remove-local path/to/mysql-native-experimental

Docs here:
http://semitwist.com/mysql-native-docs/v1.0.0-rc4/

I'm going to give this a week. If no fundamental, release-delaying 
issues/objections come up, and nobody speaks up that they could use more 
time to evaluate it, then on Feb 26 I'll merge this branch back over to 
the official mysql-native repo, and tag it as v1.0.0.

--------------------------------------------------------------------

Changes in 'v1.0.0-rc4' since the previous preview, 'v0.2.0-preview3':

- Much more documentation improvement.

- Added a Prepared.sql getter, to retrieve the sql for a prepared 
statement. (Previously it was inaccessible.)

- ResultSet.asAA and ResultRange.asAA now return Variant[string] instead
of DBValue[string]. DBValue is no longer needed and now deprecated (as 
it was only used by `asAA` and Variant now handles null properly.)

- Fixed: Row.isNull(index) isn't a setter, so don't mark it  property 
(confuses the doc generator).

- Rename MySqlPool to MySQLPool to be consistent with other parts of the 
API.

- MySQLPool now supports vibe.d's ConnectionPool.maxConcurrency feature.

- Improved separation between internal ("mysql.protocol") and external 
interfaces.
   - No longer publicly imports internal-only symbols by default.
   - Renamed module `mysql.protocol.commands` to `mysql.commands`.
   - Renamed module `mysql.protocol.prepared` to `mysql.prepared`.
   - Moved `ParameterSpecialization` into `mysql.prepared` (was in 
`mysql.protocol.extra_types`).
   - Moved `ColumnSpecialization` into `mysql.commands` (was in 
`mysql.protocol.extra_types`).
   - Moved the other public-API members of `mysql.protocol.extra_types` 
into new modules `mysql.metadata` and `mysql.types`.
   - Split module "mysql.common" into two different modules: 
"mysql.exceptions" and "mysql.protocol.socket"

I also reorganized/rewrote the v1.0.0 changelog entry to be a bit more 
readable, so take a look at the overall changes from the previous 
release, v0.1.7, to this latest release candidate, v1.0.0-rc4

https://github.com/Abscissa/mysql-native-experimental/blob/master/CHANGELOG.md
Feb 18