I'm getting pretty close to having a reasonably comprehensive native D driver for MySQL - no translated header files, no linking to libraries.
However there are three blocking factors, features missing in Phobos that would stop it's use as things stand. 1) No UNIX Socket support in std.socket. 2) No Windows Named Pipe support that I've noticed. 3) No SHA1 digest support I also have a question. MySQL potentially produces result sets of up to 64 bit size - rows. The MySQL client theoretically copes with these by storing a result set as a doubly linked list, and there's nothing to stop me doing the same. But is it necessary? The whole point of a database seems to me to be to access the data you need, rather than all the data in the Universe at the same time. Even if I opt for result sets limited to 32 bit row numbers, if you pulled one from the server with rows of only 20 bytes, you'd still be talking about 80Gb of memory. Does any application do that sort of thing. Even if it did the driver can still produce the rows one at a time so that the application could devise its own storage strategy (perhaps it could write the rows to a temporary database table ;=)) Steve
