I believe this is a version issue. I tested my code with MySQL 5.0.67 on Mac OS X. The details of the test platform combinations are in the project page in Squeaksource.
Could you please let me know your MySQL version and platform? It is entirely possible that for certain versions/conditions the handshake protocol does another extra step. This is something I found NOT applicable for the version I was working with, although the reference C implementation does have such provisions.
I will also keep looking for more details meanwhile.
Best, Anindya
________________________________ From: Andreas Raab andreas.raab@gmx.de To: The general-purpose Squeak developers list squeak-dev@lists.squeakfoundation.org Sent: Thursday, September 29, 2011 11:19 AM Subject: [squeak-dev] Re: Now available: a database conectivity API and its MySQL implementation
On 9/29/2011 19:28, Andreas Raab wrote:
On 9/29/2011 16:40, Anindya Haldar wrote:
Thanks Andreas. The MySQL protocol is a native all-Smalltalk MySQL driver. There is no FFI or plugin associated with it. The driver implements the MySQL wire protocol on top of socket stream.
Awesome! I'll see if I can get it to work on the weekend. What platforms have you tested it on?
My first tests ends up with an error "This part of the handshake is not implemented" during the connect operation. Is this maybe a MySql version problem? What versions have you successfully tested with?
Cheers, - Andreas
Cheers,
- Andreas
*From:* Andreas Raab andreas.raab@gmx.de *To:* Anindya Haldar anindya_haldar@yahoo.com; The general-purpose Squeak developers list squeak-dev@lists.squeakfoundation.org *Sent:* Thursday, September 29, 2011 1:22 AM *Subject:* Re: Now available: a database conectivity API and its MySQL implementation
Very nice. Quick question: How are you accessing the MySQL db? Are you using a network connection or some FFI facilities? If you are using a network connection, we might have use for your project right away; our current FFI based ODBC implementation causes headaches when the calls take a long time (>1sec).
Cheers,
- Andreas
On 9/29/2011 10:11, Anindya Haldar wrote:
I am extremely pleased to offer to the community a generic Smalltalk
API
for database connectivity API, along with a MySQL implementation
written
from ground up. Think of JDBC and DBI like interfaces in other
languages
and environments, and this one offers abstract facilities like connection, prepared statement, resultset, row, metdata and so on for the application.
The API implementation uses driver delegates, and insulates the applications from the driver specific interfaces. As of now, a MySQL implementation is available, with other databases engine supports in
the
future plans.
The API supports server side prepared sta tements and cursor based
fetch
implemented in the MySQL driver.
The implementation is currently available in 3 parts:
- StdbCore project: This is primarily the API definitions and the
delegation logic URL: http://www.squeaksource.com/StdbCore.html
- StdbMysqlImpl project: This is the MySQL implementation of the
StdbCore API URL: http://www.squeaksource.com/StdbMysqlImpl.html
- StdbMysqlProtocol project: This is the underlying MySQL protocol
driver, and used by the MySQL API implementation URL: http://www.squeaksource.com/StdbMysqlProtocol.html
There is a package load ordering dependency (documented in the MySQL implementation project). Please load the core and the protocol driver packages first, before you load the implementation package.
Combined, the packages has around 200 tests (most of them in the protocol driver and the API implementation) and are running green on Pharo 1.1.1 one click, Squeak 4.2 one click, Squeak 3.10 (with Seaside 2-8-573 dev image) under Mac OS X 10.5.8 with MySQL server 5.0.67.
This was in the making for some time; and I feel it is time to share it with the community. I will continue to post more documentation and code snippets in the project page Wiki sections. For now, looking up the tests may be your best guide.
Happy programming!
Best, Anindya Haldar