Details
- 
    
Bug
 - 
    Status: Closed (View Workflow)
 - 
    
Critical
 - 
    Resolution: Not a Bug
 - 
    10.6
 
Description
Testcase:
					use d1;
			 | 
		
| 
					 | 
		
					drop table if exists t1 ;  | 
		
| 
					 | 
		
					create table t1 (id1 int, id2 int, id3 float);  | 
		
| 
					 | 
		
					INSERT INTO `t1` (
			 | 
		
					with recursive series as (
			 | 
		
					select 1 as id union all  | 
		
					select id +1 as id from series  | 
		
					where id < 10)  | 
		
					select FLOOR(RAND()*(3-1+1))+1,FLOOR(RAND()*(2-1+1))+1 ,(FLOOR(RAND()*(100-1+1))+1)/10 from series);  | 
		
| 
					 | 
		
					SELECT b.*,
			 | 
		
					(@currank := @currank + 1) AS peringkat  | 
		
					FROM ( select id1,id2,id3 from t1 a, (SELECT @curRank := 0) r ) b  | 
		
					ORDER BY id1 desc,id2 desc,id3 desc; 
			 | 
		
with 10.3, 10.4 and 10.5 the order if the variable (peringkat) follow the final "order by" clause
					+------+------+------+-----------+
			 | 
		
					| id1  | id2  | id3  | peringkat |
			 | 
		
					+------+------+------+-----------+
			 | 
		
					| 3 | 1 | 5.9 | 1 |  | 
		
					| 3 | 1 | 2.9 | 2 |  | 
		
					| 2 | 2 | 8.6 | 3 |  | 
		
					| 2 | 2 | 6.8 | 4 |  | 
		
					| 2 | 1 | 7.6 | 5 |  | 
		
					| 1 | 2 | 7.2 | 6 |  | 
		
					| 1 | 2 | 3.5 | 7 |  | 
		
					| 1 | 2 | 0.2 | 8 |  | 
		
					| 1 | 1 | 7.7 | 9 |  | 
		
					| 1 | 1 | 2.2 | 10 |  | 
		
					+------+------+------+-----------+
			 | 
		
					10 rows in set (0.001 sec)  | 
		
So not in 10.6
					+------+------+------+-----------+
			 | 
		
					| id1  | id2  | id3  | peringkat |
			 | 
		
					+------+------+------+-----------+
			 | 
		
					| 3 | 2 | 5.6 | 1 |  | 
		
					| 3 | 2 | 5.6 | 4 |  | 
		
					| 3 | 2 | 4.2 | 6 |  | 
		
					| 3 | 2 | 3.5 | 5 |  | 
		
					| 3 | 1 | 9.3 | 8 |  | 
		
					| 2 | 2 | 7.5 | 9 |  | 
		
					| 2 | 1 | 2.3 | 7 |  | 
		
					| 1 | 1 | 8.7 | 2 |  | 
		
					| 1 | 1 | 7.4 | 10 |  | 
		
					| 1 | 1 | 2.7 | 3 |  | 
		
					+------+------+------+-----------+
			 | 
		
					10 rows in set (0.001 sec)  | 
		
workarround with row_number() works
					 SELECT b.*,row_number() over (order by id1 desc,id2 desc,id3 desc) as peringkat FROM ( select id1,id2,id3 from t1 a ) b;
			 | 
		
Attachments
Issue Links
- is duplicated by
 - 
                    
MDEV-29408 Calculation error in recent version of MariaDB test with 10.8-10.9-10.10
-         
 - Closed
 
 -         
 
- relates to
 - 
                    
MDEV-24089 support oracle syntax: rownum
-         
 - Closed
 
 -