[MDEV-8504] mariadb makes non explicit rounding for DECIMAL type dynamic columns Created: 2015-07-20  Updated: 2015-07-20  Resolved: 2015-07-20

Status: Closed
Project: MariaDB Server
Component/s: Dynamic Columns
Affects Version/s: 10.0.20
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: Mikhail Gavrilov Assignee: Sergei Golubchik
Resolution: Not a Bug Votes: 0
Labels: None
Environment:

Linux



 Description   

SET @aaa = COLUMN_CREATE('sum', 18802.5);
SELECT COLUMN_GET(@aaa, 'sum' AS DECIMAL);

COLUMN_GET(@aaa, 'sum' as decimal)  
------------------------------------
18803      

Expected see here 18802.5 because i not pointed here any restrictions for DECIMAL type

So why by default DECIMAL works as INT? I think this is not expected and not correct.



 Comments   
Comment by Sergei Golubchik [ 2015-07-20 ]

It is documented: https://mariadb.com/kb/en/mariadb/decimal/

DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]

…If D is omitted, the default is 0. If M is omitted, the default is 10.

Compare with:

MariaDB [test]> create table t1 (a decimal);
Query OK, 0 rows affected (0.00 sec)
 
MariaDB [test]> show create table t1\G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `a` decimal(10,0) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

Generated at Thu Feb 08 07:27:39 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.