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

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

Details

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

    Description

      This problem is similar to MDEV-12852.
      It's repeatable in 10.2, as well as in 10.1 with sql_mode=STRICT_ALL_TABLES set.

      CREATE TABLE t1 AS SELECT CAST('-1' AS UNSIGNED);
      

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

      CREATE TABLE t1 AS SELECT CAST('-1' AS UNSIGNED) LIMIT 0;
      SHOW CREATE TABLE t1;
      

      +-------+----------------------------------------------------------------------------------------------------------------+
      | Table | Create Table                                                                                                   |
      +-------+----------------------------------------------------------------------------------------------------------------+
      | t1    | CREATE TABLE `t1` (
        `CAST('-1' AS UNSIGNED)` int(2) unsigned NOT NULL
      ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
      +-------+----------------------------------------------------------------------------------------------------------------+
      

      Notice, int(2) is wrong. The expected type is BIGINT(20).

      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 -
            bar Alexander Barkov made changes -
            Description This problem is similar to MDEV-12852.
            It's repeatable in {{10.2}}, as well as in {{10.1} with {{sql_mode=STRICT_ALL_TABLES}} set.

            {code:sql}
            CREATE TABLE t1 AS SELECT CAST('-1' AS UNSIGNED);
            {code}
            {noformat}
            ERROR 1264 (22003): Out of range value for column 'CAST('-1' AS UNSIGNED)' at row 1
            {noformat}

            {code:sql}
            CREATE TABLE t1 AS SELECT CAST('-1' AS UNSIGNED) LIMIT 0;
            SHOW CREATE TABLE t1;
            {code}
            {noformat}
            +-------+----------------------------------------------------------------------------------------------------------------+
            | Table | Create Table |
            +-------+----------------------------------------------------------------------------------------------------------------+
            | t1 | CREATE TABLE `t1` (
              `CAST('-1' AS UNSIGNED)` int(2) unsigned NOT NULL
            ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
            +-------+----------------------------------------------------------------------------------------------------------------+
            {noformat}
            Notice, {{int(2)}} is wrong. The expected type is {{BIGINT(20)}}.

            This problem is similar to MDEV-12852.
            It's repeatable in {{10.2}}, as well as in {{10.1}} with {{sql_mode=STRICT_ALL_TABLES}} set.

            {code:sql}
            CREATE TABLE t1 AS SELECT CAST('-1' AS UNSIGNED);
            {code}
            {noformat}
            ERROR 1264 (22003): Out of range value for column 'CAST('-1' AS UNSIGNED)' at row 1
            {noformat}

            {code:sql}
            CREATE TABLE t1 AS SELECT CAST('-1' AS UNSIGNED) LIMIT 0;
            SHOW CREATE TABLE t1;
            {code}
            {noformat}
            +-------+----------------------------------------------------------------------------------------------------------------+
            | Table | Create Table |
            +-------+----------------------------------------------------------------------------------------------------------------+
            | t1 | CREATE TABLE `t1` (
              `CAST('-1' AS UNSIGNED)` int(2) unsigned NOT NULL
            ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
            +-------+----------------------------------------------------------------------------------------------------------------+
            {noformat}
            Notice, {{int(2)}} is wrong. The expected type is {{BIGINT(20)}}.

            serg Sergei Golubchik made changes -
            Description This problem is similar to MDEV-12852.
            It's repeatable in {{10.2}}, as well as in {{10.1}} with {{sql_mode=STRICT_ALL_TABLES}} set.

            {code:sql}
            CREATE TABLE t1 AS SELECT CAST('-1' AS UNSIGNED);
            {code}
            {noformat}
            ERROR 1264 (22003): Out of range value for column 'CAST('-1' AS UNSIGNED)' at row 1
            {noformat}

            {code:sql}
            CREATE TABLE t1 AS SELECT CAST('-1' AS UNSIGNED) LIMIT 0;
            SHOW CREATE TABLE t1;
            {code}
            {noformat}
            +-------+----------------------------------------------------------------------------------------------------------------+
            | Table | Create Table |
            +-------+----------------------------------------------------------------------------------------------------------------+
            | t1 | CREATE TABLE `t1` (
              `CAST('-1' AS UNSIGNED)` int(2) unsigned NOT NULL
            ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
            +-------+----------------------------------------------------------------------------------------------------------------+
            {noformat}
            Notice, {{int(2)}} is wrong. The expected type is {{BIGINT(20)}}.

            This problem is similar to MDEV-12852.
            It's repeatable in 10.2, as well as in 10.1 with {{sql_mode=STRICT_ALL_TABLES}} set.

            {code:sql}
            CREATE TABLE t1 AS SELECT CAST('-1' AS UNSIGNED);
            {code}
            {noformat}
            ERROR 1264 (22003): Out of range value for column 'CAST('-1' AS UNSIGNED)' at row 1
            {noformat}

            {code:sql}
            CREATE TABLE t1 AS SELECT CAST('-1' AS UNSIGNED) LIMIT 0;
            SHOW CREATE TABLE t1;
            {code}
            {noformat}
            +-------+----------------------------------------------------------------------------------------------------------------+
            | Table | Create Table |
            +-------+----------------------------------------------------------------------------------------------------------------+
            | t1 | CREATE TABLE `t1` (
              `CAST('-1' AS UNSIGNED)` int(2) unsigned NOT NULL
            ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
            +-------+----------------------------------------------------------------------------------------------------------------+
            {noformat}
            Notice, {{int(2)}} is wrong. The expected type is {{BIGINT(20)}}.

            Pushed into bb-10.2-ext

            bar Alexander Barkov added a comment - Pushed into bb-10.2-ext
            bar Alexander Barkov made changes -
            Fix Version/s 10.3.1 [ 22532 ]
            Fix Version/s 10.3 [ 22126 ]
            Resolution Fixed [ 1 ]
            Status Open [ 1 ] Closed [ 6 ]
            bar Alexander Barkov made changes -
            Labels datatype
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 80863 ] MariaDB v4 [ 152184 ]

            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.