Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-15926

MEDIUMINT returns wrong I_S attributes

Details

    Description

      The MEDIUMINT type has the following characteristics depending on signess:

      MEDIUMINT SIGNED    -8388608..8388607   (7 digits,  8 characters)
      MEDIUNINT UNSIGNED        0..16777215   (8 digits,  8 characters)
      

      But these characteristics are not taken into account precisely:

      CREATE OR REPLACE TABLE t1 (a MEDIUMINT, b MEDIUMINT UNSIGNED);
      SELECT COLUMN_NAME, NUMERIC_PRECISION FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1';
      

      +-------------+-------------------+
      | COLUMN_NAME | NUMERIC_PRECISION |
      +-------------+-------------------+
      | a           |                 7 |
      | b           |                 7 |
      +-------------+-------------------+
      

      Notice, the precision value for UNSIGNED is wrong. It should be 8 digits.

      Attachments

        Issue Links

          Activity

            bar Alexander Barkov created issue -
            bar Alexander Barkov made changes -
            Field Original Value New Value
            bar Alexander Barkov made changes -
            bar Alexander Barkov made changes -
            Description The MEDIUMINT type has the following characteristics depending on signess:
            {noformat}
            MEDIUMINT SIGNED -8388608..8388607 (7 digits, 8 characters)
            MEDIUNINT UNSIGNED 0..16777215 (8 gigits, 8 characters)
            {noformat}


            {code:sql}
            CREATE OR REPLACE TABLE t1 (a MEDIUMINT, b MEDIUMINT UNSIGNED);
            SELECT COLUMN_NAME, NUMERIC_PRECISION FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1';
            {code}
            {noformat}
            +-------------+-------------------+
            | COLUMN_NAME | NUMERIC_PRECISION |
            +-------------+-------------------+
            | a | 7 |
            | b | 7 |
            +-------------+-------------------+
            {noformat}
            Notice, the precision value for {{UNSIGNED}} is wrong. It should be {{8}} digits.
            The MEDIUMINT type has the following characteristics depending on signess:
            {noformat}
            MEDIUMINT SIGNED -8388608..8388607 (7 digits, 8 characters)
            MEDIUNINT UNSIGNED 0..16777215 (8 digits, 8 characters)
            {noformat}


            {code:sql}
            CREATE OR REPLACE TABLE t1 (a MEDIUMINT, b MEDIUMINT UNSIGNED);
            SELECT COLUMN_NAME, NUMERIC_PRECISION FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1';
            {code}
            {noformat}
            +-------------+-------------------+
            | COLUMN_NAME | NUMERIC_PRECISION |
            +-------------+-------------------+
            | a | 7 |
            | b | 7 |
            +-------------+-------------------+
            {noformat}
            Notice, the precision value for {{UNSIGNED}} is wrong. It should be {{8}} digits.
            bar Alexander Barkov made changes -
            Description The MEDIUMINT type has the following characteristics depending on signess:
            {noformat}
            MEDIUMINT SIGNED -8388608..8388607 (7 digits, 8 characters)
            MEDIUNINT UNSIGNED 0..16777215 (8 digits, 8 characters)
            {noformat}


            {code:sql}
            CREATE OR REPLACE TABLE t1 (a MEDIUMINT, b MEDIUMINT UNSIGNED);
            SELECT COLUMN_NAME, NUMERIC_PRECISION FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1';
            {code}
            {noformat}
            +-------------+-------------------+
            | COLUMN_NAME | NUMERIC_PRECISION |
            +-------------+-------------------+
            | a | 7 |
            | b | 7 |
            +-------------+-------------------+
            {noformat}
            Notice, the precision value for {{UNSIGNED}} is wrong. It should be {{8}} digits.
            The MEDIUMINT type has the following characteristics depending on signess:
            {noformat}
            MEDIUMINT SIGNED -8388608..8388607 (7 digits, 8 characters)
            MEDIUNINT UNSIGNED 0..16777215 (8 digits, 8 characters)
            {noformat}

            But these characteristics are not taken into account precisely:
            {code:sql}
            CREATE OR REPLACE TABLE t1 (a MEDIUMINT, b MEDIUMINT UNSIGNED);
            SELECT COLUMN_NAME, NUMERIC_PRECISION FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1';
            {code}
            {noformat}
            +-------------+-------------------+
            | COLUMN_NAME | NUMERIC_PRECISION |
            +-------------+-------------------+
            | a | 7 |
            | b | 7 |
            +-------------+-------------------+
            {noformat}
            Notice, the precision value for {{UNSIGNED}} is wrong. It should be {{8}} digits.
            bar Alexander Barkov made changes -
            bar Alexander Barkov made changes -
            issue.field.resolutiondate 2018-04-20 14:16:34.0 2018-04-20 14:16:34.299
            bar Alexander Barkov made changes -
            Fix Version/s 10.3.7 [ 23005 ]
            Fix Version/s 10.3 [ 22126 ]
            Resolution Fixed [ 1 ]
            Status Open [ 1 ] Closed [ 6 ]
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 86642 ] MariaDB v4 [ 154187 ]

            People

              bar Alexander Barkov
              bar Alexander Barkov
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.