Details
-
Task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
Compatibility-1
Description
Currently DECIMAL only supports 30 decimals.
We should extend support to at least 38 decimals, to be more compatible with financial applications that depends on this limit
FLOAT and DOUBLE should still have the old limit of 30 decimals.
The change should be done so there is a minimum of notable change for old clients, except if they are using decimal fields with more than 30 decimals.
One change that is unavoidable is that decimal expressions will return results with more than 30 decimal and that if one converts a string to decimal it will have up to 38 decimals.
CREATE ... SELECT with a decimal with > 30 decimals will create a column
with a smaller range than before as we are trying to preserve the number of
decimals.
CREATE TABLE t1 SELECT 123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345;
Will change the value from:
99999999999999999999999999999999999.999999999999999999999999999999
to
99999999999999999999999999999.999999999999999999999999999999999999
Attachments
Issue Links
- includes
-
MDEV-6304 Controversial comparison behaviour of decimal literals with scale >30
-
- Open
-
Activity
Field | Original Value | New Value |
---|---|---|
Epic Link | MDEV-10137 [ 56868 ] |
Assignee | Michael Widenius [ monty ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
Description |
Currently DECIMAL only supports 30 decimals.
We should extend support to at least 38 decimals, to be more compatible with financial applications that depends on this limit |
Currently DECIMAL only supports 30 decimals.
We should extend support to at least 38 decimals, to be more compatible with financial applications that depends on this limit FLOAT and DOUBLE should still have the old limit of 30 decimals. The change should be done so there is a minimum of notable change for old clients, except if they are using decimal fields with more than 30 decimals. One change that is unavoidable is that decimal expressions will return results with more than 30 decimal and that if one converts a string to decimal it will have up to 38 decimals |
Description |
Currently DECIMAL only supports 30 decimals.
We should extend support to at least 38 decimals, to be more compatible with financial applications that depends on this limit FLOAT and DOUBLE should still have the old limit of 30 decimals. The change should be done so there is a minimum of notable change for old clients, except if they are using decimal fields with more than 30 decimals. One change that is unavoidable is that decimal expressions will return results with more than 30 decimal and that if one converts a string to decimal it will have up to 38 decimals |
Currently DECIMAL only supports 30 decimals.
We should extend support to at least 38 decimals, to be more compatible with financial applications that depends on this limit FLOAT and DOUBLE should still have the old limit of 30 decimals. The change should be done so there is a minimum of notable change for old clients, except if they are using decimal fields with more than 30 decimals. One change that is unavoidable is that decimal expressions will return results with more than 30 decimal and that if one converts a string to decimal it will have up to 38 decimals. CREATE ... SELECT with a decimal with many digits will cause a smaller range as we are trying to preserve the number of decimals when we create the field. CREATE TABLE t1 SELECT 123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345; Will change the value from: 99999999999999999999999999999999999.999999999999999999999999999999 to 99999999999999999999999999999.999999999999999999999999999999999999 |
Description |
Currently DECIMAL only supports 30 decimals.
We should extend support to at least 38 decimals, to be more compatible with financial applications that depends on this limit FLOAT and DOUBLE should still have the old limit of 30 decimals. The change should be done so there is a minimum of notable change for old clients, except if they are using decimal fields with more than 30 decimals. One change that is unavoidable is that decimal expressions will return results with more than 30 decimal and that if one converts a string to decimal it will have up to 38 decimals. CREATE ... SELECT with a decimal with many digits will cause a smaller range as we are trying to preserve the number of decimals when we create the field. CREATE TABLE t1 SELECT 123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345; Will change the value from: 99999999999999999999999999999999999.999999999999999999999999999999 to 99999999999999999999999999999.999999999999999999999999999999999999 |
Currently DECIMAL only supports 30 decimals.
We should extend support to at least 38 decimals, to be more compatible with financial applications that depends on this limit FLOAT and DOUBLE should still have the old limit of 30 decimals. The change should be done so there is a minimum of notable change for old clients, except if they are using decimal fields with more than 30 decimals. One change that is unavoidable is that decimal expressions will return results with more than 30 decimal and that if one converts a string to decimal it will have up to 38 decimals. CREATE ... SELECT with a decimal with > 30 decimals will create a column with a smaller range than before as we are trying to preserve the number of decimals. CREATE TABLE t1 SELECT 123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345; Will change the value from: 99999999999999999999999999999999999.999999999999999999999999999999 to 99999999999999999999999999999.999999999999999999999999999999999999 |
Status | In Progress [ 3 ] | Stalled [ 10000 ] |
Component/s | Data Definition - Alter Table [ 10114 ] | |
Fix Version/s | 10.2.1 [ 22012 ] | |
Fix Version/s | 10.2 [ 14601 ] | |
Resolution | Fixed [ 1 ] | |
Status | Stalled [ 10000 ] | Closed [ 6 ] |
Labels | Compatibility |
Sprint | Compatibility-1 [ 88 ] |
Epic Link | MDEV-10137 [ 56868 ] | MDEV-10872 [ 58182 ] |
Labels | Compatibility | Approved Compatibility |
Labels | Approved Compatibility | Approved Compatibility NRE-307517 |
NRE Projects | NRE-307517 |
Labels | Approved Compatibility NRE-307517 | Approved Compatibility |
NRE Approved | Yes [ 10304 ] |
Labels | Approved Compatibility | Compatibility |
Comment | [ A comment with security level 'Developers' was removed. ] |
Workflow | MariaDB v3 [ 75808 ] | MariaDB v4 [ 132883 ] |
monty, serg,
What is expected to happen upon migration from a long-decimal version of MariaDB to a non-long-decimal version (be it previous MariaDB or MySQL)?