Hi all So there's been various IRC and private mails discussion on this and I wanted to drag it into public, since people are doing things independent of each other.
We've made an attempt to release a release candidate with "drizzle" as the package name and "7.1.31-rc" as the version => drizzle-7.1.31-rc.tar.gz. It turns out a few tests don't pass after you've done bzr tag 7.1.31-rc: main.comments This tests the use of comments to hide a command from lower level versions of MySQL/Drizzle: SELECT ... /*!72301 ... */; Naturally, when version number is less than 7.23.01 the result changes. I've changed the result file to match the new reality. (Side comment, this brings the test back to testing what it is originally intended to test. It's been kind of redundant with the 2011.xx.yy versions.) regression.732849 main.drizzledump_restore main.drizzledump Drizzledump uses the version number to "detect" whether it is connected to a MySQL or Drizzle server. For several tests it now thinks it is talking to the newly released MySQL 7.1.31 version and uses "SET NAMES utf8" which creates an error. This is a well known anti-pattern in the javascript world, made me smile a little to see that it apparently is not exclusive to JavaScript programmers. Even so, the easiest fix for tonight is simply to change the logic to say that anything from version 7 up is Drizzle. Since all MySQL forks are still on 5.x, we will have a couple years before it breaks again. I will file a low-hanging-fruit bug to really detect Drizzle from something solid (like existence of DATA_DICTIONARY, or something drizzle specific inside the DATA_DICTIONARY). === modified file 'client/server_detect.cc' --- client/server_detect.cc 2011-08-07 20:48:33 +0000 +++ client/server_detect.cc 2012-02-05 20:07:56 +0000 @@ -30,8 +30,13 @@ { boost::match_flag_type flags = boost::match_default; - boost::regex mysql_regex("^([3-9]\\.[0-9]+\\.[0-9]+)"); - boost::regex drizzle_regex("^(20[0-9]{2}\\.(0[1-9]|1[012])\\.[0-9]+)"); + // FIXME: Detecting capabilities from a version number is a recipe for + // disaster, like we've seen with 15 years of JavaScript :-) + // Anyway, as there is no MySQL 7.x yet, this will do for tonight. + // I will get back to detect something tangible after the release (like + // presence of some table or its record in DATA_DICTIONARY. + boost::regex mysql_regex("^([3-6]\\.[0-9]+\\.[0-9]+)"); + boost::regex drizzle_regex("^([7-9]\\.[0-9]+\\.[0-9]+)"); version= drizzle_con_server_version(connection); main.mysql_protocol Also a SET NAMES utf8 error, I assume it is fixed by the above. I'm now running make test. Will go to sleep before it finishes though. main.drizzle_client This one is a bit unclear to me and doesn't seem to be connected to the above. DESCRIBE tablename; should output: +-------+---------+------+---------+-----------------+-----------+ | Field | Type | Null | Default | Default_is_NULL | On_Update | +-------+---------+------+---------+-----------------+-----------+ | i | INTEGER | YES | | YES | | | j | INTEGER | NO | | NO | | | k | INTEGER | YES | | YES | | +-------+---------+------+---------+-----------------+-----------+ but instead outputs +-------+---------+------+---------+-----------------+-----------+ | Field | Type | Null | Default | Default_is_NULL | On_Update | +-------+---------+------+---------+-----------------+-----------+ | i | INTEGER | 1 | | 1 | | | j | INTEGER | 0 | | 0 | | | k | INTEGER | 1 | | 1 | | +-------+---------+------+---------+-----------------+-----------+ I already checked and when I use a drizzle client to connect to a mysqld it also outputs the "Yes" / "No" so it probably isn't related to server detection. On this last one I will continue tomorrow and all help is welcome. henrik -- henrik.i...@avoinelama.fi +358-40-8211286 skype: henrik.ingo irc: hingo www.openlife.cc My LinkedIn profile: http://www.linkedin.com/profile/view?id=9522559 _______________________________________________ Mailing list: https://launchpad.net/~drizzle-discuss Post to : drizzle-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~drizzle-discuss More help : https://help.launchpad.net/ListHelp