Tuesday, November 1, 2011

Fixed in Drizzle or just different?

In a previous post about different output for the same query there were 3 databases (MySQL, PostgreSQL and SQLite) and 3 different results.

I attended the "Fixed in Drizzle: No more GOTCHA's" talk during Percona Live London. The talk was full of issues which I've encountered many times and which were all fixed. So I wondered whether or not this is already fixed in Drizzle.

Here is the results for Drizzle:
drizzle> select version();
+------------+
| version()  |
+------------+
| 2011.03.13 | 
+------------+
1 row in set (0.000418 sec)

drizzle> create database test;
Query OK, 1 row affected (0.000622 sec)

drizzle> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Schema changed
drizzle> create table t1 (id serial, t time);
Query OK, 0 rows affected (0.001479 sec)

drizzle> insert into t1(t) values ('00:05:10');
Query OK, 1 row affected (0.001717 sec)

drizzle> select t,t*1.5 from t1;
+----------+-------+
| t        | t*1.5 |
+----------+-------+
| 00:05:10 |   465 | 
+----------+-------+
1 row in set (0.000691 sec)

And here is the result for MySQL:
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.6.4-m6  |
+-----------+
1 row in set (0.00 sec)

mysql> create database test;
Query OK, 1 row affected (0.00 sec)

mysql> use test;
Database changed
mysql> create table t1 (id serial, t time);
Query OK, 0 rows affected (0.00 sec)

mysql> insert into t1(t) values ('00:05:10');
Query OK, 1 row affected (0.01 sec)

mysql> select t,t*1.5 from t1;
+----------+-------+
| t        | t*1.5 |
+----------+-------+
| 00:05:10 |   765 |
+----------+-------+
1 row in set (0.00 sec)

I guess that the logic is the same as for MySQL and the difference is due to the microsecond support which is already in Drizzle.

I've reported this to the Drizzle developers as Bug 884687.

2 comments: