Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
5.5.37
-
None
-
OSX, CentOS
Description
There is a difference between MariaDB's behavior and MySQL 5.5 when a query is doing select @var := count(*). MySQL would return the number of rows matched while Maria returns 0.. Its unclear to me which behavior is actually correct.
While I personally wouldn't have used the := syntax here, someone else did and it broke our application a little bit..
------------------------------------------------------
Minimal Example:
drop database if exists `test_example`; |
|
create database test_example; |
|
use test_example; |
|
CREATE TABLE `blarg` ( |
`id` int(10) unsigned NOT NULL AUTO_INCREMENT, |
`v` varchar(10), |
PRIMARY KEY (`id`) |
) ENGINE=InnoDB;
|
|
|
insert into blarg (`v`) values ('AAA'); |
insert into blarg (`v`) values ('AAA'); |
insert into blarg (`v`) values ('AAA'); |
insert into blarg (`v`) values ('BBB'); |
insert into blarg (`v`) values ('BBB'); |
insert into blarg (`v`) values ('CCC'); |
|
MariaDB [test_example]> select count(*), @a := count(*), v from blarg group by v; |
+----------+----------------+------+ |
| count(*) | @a := count(*) | v | |
+----------+----------------+------+ |
| 3 | 0 | AAA |
|
| 2 | 0 | BBB |
|
| 1 | 0 | CCC |
|
+----------+----------------+------+ |
3 rows in set (0.00 sec) |
|
|
|
mysql> select count(*), @a := count(*), v from blarg group by v; |
+----------+----------------+------+ |
| count(*) | @a := count(*) | v | |
+----------+----------------+------+ |
| 3 | 3 | AAA |
|
| 2 | 2 | BBB |
|
| 1 | 1 | CCC |
|
+----------+----------------+------+ |
3 rows in set (0.00 sec) |
|
mysql>
|
|