Description:
Lets start with the example:
sql_mode='traditional';
CREATE TABLE t1 (f1 DECIMAL (2,5),f2 DECIMAL (64,253));
DESCRIBE t1;
Field Type Null Key Default Extra
f1 decimal(6,5) YES NULL
f2 decimal(64,30) YES NULL
1. The server does not follow my SQL statement and silent
changes the column definition ( scale 30 instead of 253).
Such a silent change is not allowed by the manual and
especially not acceptable within the sql mode traditional.
2. According to the manual 11.1.1. Overview of Numeric Types
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
...
For MySQL 5.0.3 and above:
...
The maximum number of supported decimals (D) is 30.
my scale of 253 for the column f2 is illegal.
3. The manual says within 23.2. DECIMAL Data Type Changes
...
D is the number of digits to the right of the decimal point
(the scale). It has a range of 0 to 30 and must be no larger than M.
My scales are bigger than my precisions. Therefore both column
definitions violate this rule.
My environment:
- Intel PC with Linux(SuSE 9.1)
- MySQL compiled from source
Version 5.0 ChangeSet@1.1853.1.1, 2005-04-18
How to repeat:
Please execute the statements above.
Description: Lets start with the example: sql_mode='traditional'; CREATE TABLE t1 (f1 DECIMAL (2,5),f2 DECIMAL (64,253)); DESCRIBE t1; Field Type Null Key Default Extra f1 decimal(6,5) YES NULL f2 decimal(64,30) YES NULL 1. The server does not follow my SQL statement and silent changes the column definition ( scale 30 instead of 253). Such a silent change is not allowed by the manual and especially not acceptable within the sql mode traditional. 2. According to the manual 11.1.1. Overview of Numeric Types DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL] ... For MySQL 5.0.3 and above: ... The maximum number of supported decimals (D) is 30. my scale of 253 for the column f2 is illegal. 3. The manual says within 23.2. DECIMAL Data Type Changes ... D is the number of digits to the right of the decimal point (the scale). It has a range of 0 to 30 and must be no larger than M. My scales are bigger than my precisions. Therefore both column definitions violate this rule. My environment: - Intel PC with Linux(SuSE 9.1) - MySQL compiled from source Version 5.0 ChangeSet@1.1853.1.1, 2005-04-18 How to repeat: Please execute the statements above.