r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[MySQL]

Dockimbel
14-Jan-2006
[564]
I have plans for a version 2 of this driver including a full code 
rewritting for much cleaner design, speed improvements, optional 
async API, support more protocol features (like LOAD DATA), implement 
the v5 protocol, improved user API (e.g.: select column in a record 
by field name), etc...
Robert
14-Jan-2006
[565]
Exists a "standalone" mysql version? Or a standalone database that 
is mysql compatible?
Dockimbel
14-Jan-2006
[566]
What do you mean by standalone ?
Robert
14-Jan-2006
[567]
So, no big installation. Like a DLL or  just an EXE that's started.
Gabriele
14-Jan-2006
[568x2]
there is an embeddable version of mysql as a dll
but it is gpl afaik
Volker
14-Jan-2006
[570]
There is this apache + x which Terry likes. IIRC mysql is included 
too?
Robert
14-Jan-2006
[571]
well using a DLL won't make the rest GPL.
Gabriele
14-Jan-2006
[572]
so you need to contact mysql ab for use in non-gpl apps
Robert
14-Jan-2006
[573]
What's appache + x?
Volker
14-Jan-2006
[574]
some bundle for lamp on windows.
Gabriele
14-Jan-2006
[575]
it does, if yor programs depends on the dll (doesn't work without) 
though this is debatable (not proven in court i guess)
Robert
14-Jan-2006
[576]
So I wouldn't care.
Volker
14-Jan-2006
[577]
http://www.apachefriends.org/en/xampp.html, from framewerks-group
Gabriele
14-Jan-2006
[578]
but if you just need an sql engine... why not sqlite?
Robert
14-Jan-2006
[579]
I need one that's integrated into Rebol. Didn't took a look at it. 
Just thought it makes sense to have a protocol like DocKimbel's and 
re-use it with different databases (R-ODBC)
Volker
14-Jan-2006
[580]
sqlite is specially to run as DLL afaik.
Pekr
14-Jan-2006
[581x4]
Robert - you might be better looking somewhere else. Mysql embedded 
does not have tcp/ip api, just some library aproach ...
what about sqlite or rebdb? RebDB should be ok for most your projects 
imo ... (although 'join is badly missing)
Robert - french community did some work for sqlite iirc ... look 
at rebol.org ....
Doc - you once told me that your postgress driver is some xy percent 
faster, because of continuous parsing or so, maybe you could rewrite 
mysql to use similar principles?
Dockimbel
14-Jan-2006
[585]
Pekr: I'll use that method for the v2 of the driver. It also helps 
keep the code more elegant.
Pekr
14-Jan-2006
[586x2]
but mysql protocol is not your priority, is it? It simply works now 
:-)
Uniserve 1.0, or R# would be nice though :-)
Dockimbel
16-Jan-2006
[588x3]
My current priorities are project generating incomes. Unfortunately, 
I have very little time for other projects.
Uniserve is one of our base framework  (both for internal use and 
for our customers), so we're working on it actively.
I'll release it as soon as I find some time to update the docs and 
package it.
Ammon
17-Jan-2006
[591]
Doc,  I'm not sure if you've got this yet or not,  but we found a 
bug where the 'read-packet function's buffer was not getting expanded 
properly which was causing it to truncate some of our data.  To fix 
this problem then we added a local variable and added these lines:

tmp: pl/cache
pl/cache: make binary! pl/buf-size
system/words/insert tail pl/cache tmp

after this line:

pl/buffer: make binary! pl/buf-size: packet-len
Dockimbel
18-Jan-2006
[592x2]
Hi Ammon, it is possible that there's some issue maintainin the 2 
buffers size in sync. I've added your patch (with small modifications) 
to the current code.
v1.0.2 including Ammon patch uploaded.
Ammon
18-Jan-2006
[594]
Thanks!
Dockimbel
24-Jan-2006
[595x2]
the "Bad handshake" issue appears randomly when logging to the server. 
It looks like it's related to the server side.
Ok, I've found a workaround for this problem. I still have a 1045 
User deny random error to fix (almost done) and make a new release 
tomorrow. 1.0 official release is now very close.
Dockimbel
25-Jan-2006
[597x3]
After tracking down the problem, here's the explanation of the random 
1043 (bad handshake) and 1045 (access deny) error on connecting to 
the server :
The v3.xx protocol is flawed. The scrambled password is sent to the 
server as a zero terminated string. But the scrambling method, sometimes 
contains a 00 byte. The server then, cuts the password prematuraly 
(error 1043) or if the zero is at the beginning of the string, considers 
that the user didn't provide any password (error 1045).
The new 4.1.1+ protocol fixes that kind of issue by sending the string 
size first (like in Pascal language). The current driver doesn't 
implement the new protocol. This will be the main feature of the 
v2 of the MySQL driver.
Ladislav
25-Jan-2006
[600]
thanks for the explanation and for your research. the terminating 
character strategy looks like fundamentally flawed, because it causes 
problems of this kind too often to be considered useful, at least 
in my opinion
Dockimbel
25-Jan-2006
[601]
I agree, I never use this approach when I design a new protocol. 
It leads to error and it's harder to handle on the receiver side 
because you don't know how much data you're waiting for.
Pekr
25-Jan-2006
[602]
So v 1.0 will have to live with those occassional errors? If so, 
we should go for 1.0 and claim it is a feature, not a bug :-)
Dockimbel
25-Jan-2006
[603x2]
v1.0.3 uploaded. That's my new candidate for 1.0. The connection 
process is now rock solid! I've stressed it with 20,000 connections 
without troubles. The protocol flaw for password is now silently 
handled by the driver by reconnecting to the server.
With v3.x.y servers, there's still sometimes connections errors 1045 
that shouldn't happen. I guess that's related to some encryption 
implementation difference between my client and v3 servers. Workaround 
for this, is catching error! values when connecting and retrying 
the connection if the user/pass is fixed and should be able to connect 
to the server (proper right set in 'mysql' tables).
Pekr
6-Feb-2006
[605x2]
There is one email on ml, reporting still having problems with latest 
version - his name is Alain Goye, and he says that his error is not 
random, but deterministic, dunno what he means, Anton trying to find 
out more info ...
Doc, one forgotten probe probably ... go look into do-handshake function 
and the part where you send-packet port probe rejoin [] ... the probe 
should not be there probably ...
Dockimbel
6-Feb-2006
[607x2]
Uploaded the last version without the "probe". :-)
Tried to reproduce Alain's problem without success. I've even created 
new users with server v4.1-16 and can log in without any error.
Maxim
21-Feb-2006
[609]
hi guys, does the latest driver work with MySQL v5.0, or are there 
any known issues?
Pekr
22-Feb-2006
[610]
the do work - tested with 5.0.18 here,, but only sporadically, not 
heavy-tested ....
Ammon
22-Feb-2006
[611]
Apparently MySQL 5 has a datatype that isn't defined in the protocol, 
adding this line seems to work just fine:

defs/types 246 decimal
Dockimbel
25-Feb-2006
[612]
Thanks Ammon, I'll add it for the 1.0 release.
Henrik
5-Mar-2006
[613]
I get a strange bug where I, every time I do a query, some old data 
is sent back to me