Well what do you know. I'm not a sleep and also the
main.drizzle_client passed after all.

https://code.launchpad.net/~hingo/drizzle/drizzle-drizzledump-and-other-version-fixes/+merge/91598

henrik


On Mon, Feb 6, 2012 at 12:03 AM, Henrik Ingo <henrik.i...@avoinelama.fi> wrote:
> 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



-- 
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

Reply via email to