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

Out-of-range errors when CAST(1-2 AS UNSIGNED)

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 10.1(EOL), 10.2(EOL), 10.3(EOL)
    • 10.3.1
    • OTHER

    Description

      This problem is repeatable in 10.2 with the default sql_mode, as well as in 10.1 with sql_mode=STRICT_ALL_TABLES.

      It's very similar to MDEV-12849.

      Cast -1 as UNSIGNED returns 18446744073709551615. This script proves that:

      SELECT CAST(1-2 AS UNSIGNED);
      

      +-----------------------+
      | CAST(1-2 AS UNSIGNED) |
      +-----------------------+
      |  18446744073709551615 |
      +-----------------------+
      

      Now I want to create a table from the result of the same SELECT query. It unexpectedly returns an error:

      CREATE OR REPLACE TABLE t1 AS SELECT CAST(1-2 AS UNSIGNED);
      

      ERROR 1264 (22003): Out of range value for column 'CAST(1-2 AS UNSIGNED)' at row 1
      

      Adding LIMIT 0 helps to figure out what's going on:

      CREATE OR REPLACE TABLE t1 AS SELECT CAST(1-2 AS UNSIGNED), CAST(-1 AS UNSIGNED) LIMIT 0;
      DESCRIBE t1;
      

      +-----------------------+-----------------+------+-----+---------+-------+
      | Field                 | Type            | Null | Key | Default | Extra |
      +-----------------------+-----------------+------+-----+---------+-------+
      | CAST(1-2 AS UNSIGNED) | int(3) unsigned | NO   |     | NULL    |       |
      | CAST(-1 AS UNSIGNED)  | int(2) unsigned | NO   |     | NULL    |       |
      +-----------------------+-----------------+------+-----+---------+-------+
      

      Notice, the column type is wrong. The expected column type should be BIGINT for both columns, to be able to store 18446744073709551615.

      Attachments

        Issue Links

          Activity

            Pushed into bb-10.2-ext

            bar Alexander Barkov added a comment - Pushed into bb-10.2-ext

            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.