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

"Row size too large" on latest release (10.3.17)

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Not a Bug
    • Affects Version/s: 10.3.17
    • Fix Version/s: N/A
    • Labels:
      None
    • Environment:
      Docker

      Description

      When creating a table with a number of varchars, MariaDB 10.3.17 throws the error "ERROR 1118 (42000): Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline."

      I tested this against MariaDB 3.10.16 and it works OK and is able to create the table. I also tested against MySQL 5.7.27 and verified that it works OK and is able to create the table. All testing was done using Docker images of the respective versions.

      I feel this relates to MDEV-19292.

      Here is the original query that was failing:

      CREATE DATABASE IF NOT EXISTS `test`;
      USE `test`;
      DROP TABLE IF EXISTS `row_too_big`;
      CREATE TABLE IF NOT EXISTS `row_too_big`
      (
          `column0` bool NOT NULL,
          `column1` bool NOT NULL,
          `column2` bool NOT NULL,
          `column3` bool NOT NULL,
          `column4` bool NOT NULL,
          `column5` bool NOT NULL,
          `column6` bool NOT NULL,
          `column7` bool NOT NULL,
          `column8` bool NOT NULL,
          `column9` bool NOT NULL,
          `column10` bool NOT NULL,
          `column11` bool NOT NULL,
          `column12` bool NOT NULL,
          `column13` bool NOT NULL,
          `column14` bool NOT NULL,
          `column15` bool NOT NULL,
          `column16` bool NOT NULL,
          `column17` bool NOT NULL,
          `column18` date NULL,
          `column19` date NULL,
          `column20` date NULL,
          `column21` date NULL,
          `column22` date NULL,
          `column23` date NULL,
          `column24` date NULL,
          `column25` date NULL,
          `column26` date NULL,
          `column27` date NULL,
          `column28` date NULL,
          `column29` date NULL,
          `column30` date NULL,
          `column31` datetime(6) NOT NULL,
          `column32` datetime(6) NOT NULL,
          `column33` datetime(6) NULL,
          `column34` datetime(6) NULL,
          `column35` datetime(6) NULL,
          `column36` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
          `column37` integer NOT NULL,
          `column38` integer NOT NULL,
          `column39` integer NOT NULL,
          `column40` integer NULL UNIQUE,
          `column41` integer NULL,
          `column42` integer NULL,
          `column43` integer NULL,
          `column44` integer NULL,
          `column45` integer NULL,
          `column46` longtext NOT NULL,
          `column47` longtext NULL,
          `column48` longtext NULL,
          `column49` longtext NULL,
          `column50` longtext NULL,
          `column51` longtext NULL,
          `column52` longtext NULL,
          `column53` longtext NULL,
          `column54` longtext NULL,
          `column55` longtext NULL,
          `column56` longtext NULL,
          `column57` numeric(12, 2) NULL,
          `column58` numeric(12, 2) NULL,
          `column59` smallint UNSIGNED NULL,
          `column60` varchar(1) NOT NULL,
          `column61` varchar(2) NOT NULL,
          `column62` varchar(2) NOT NULL,
          `column63` varchar(2) NULL,
          `column64` varchar(2) NULL,
          `column65` varchar(2) NULL,
          `column66` varchar(4) NOT NULL,
          `column67` varchar(7) NOT NULL,
          `column68` varchar(7) NOT NULL,
          `column69` varchar(8) NOT NULL,
          `column70` varchar(8) NULL,
          `column71` varchar(8) NULL,
          `column72` varchar(16) NOT NULL,
          `column73` varchar(16) NOT NULL,
          `column74` varchar(16) NULL,
          `column75` varchar(16) NULL,
          `column76` varchar(16) NULL,
          `column77` varchar(16) NULL,
          `column78` varchar(16) NULL,
          `column79` varchar(16) NULL,
          `column80` varchar(16) NULL,
          `column81` varchar(16) NULL,
          `column82` varchar(16) NULL,
          `column83` varchar(16) NULL,
          `column84` varchar(16) NULL,
          `column85` varchar(20) NULL,
          `column86` varchar(20) NULL,
          `column87` varchar(30) NOT NULL,
          `column88` varchar(32) NOT NULL,
          `column89` varchar(32) NOT NULL,
          `column90` varchar(32) NULL,
          `column91` varchar(32) NULL,
          `column92` varchar(32) NULL,
          `column93` varchar(32) NULL,
          `column94` varchar(32) NULL,
          `column95` varchar(32) NULL,
          `column96` varchar(32) NULL,
          `column97` varchar(32) NULL,
          `column98` varchar(32) NULL,
          `column99` varchar(32) NULL,
          `column100` varchar(32) NULL,
          `column101` varchar(32) NULL,
          `column102` varchar(32) NULL,
          `column103` varchar(32) NULL,
          `column104` varchar(32) NULL,
          `column105` varchar(32) NULL,
          `column106` varchar(32) NULL,
          `column107` varchar(32) NULL,
          `column108` varchar(32) NULL,
          `column109` varchar(32) NULL,
          `column110` varchar(32) NULL,
          `column111` varchar(32) NULL,
          `column112` varchar(64) NOT NULL,
          `column113` varchar(64) NOT NULL,
          `column114` varchar(64) NOT NULL,
          `column115` varchar(64) NULL,
          `column116` varchar(64) NULL,
          `column117` varchar(64) NULL,
          `column118` varchar(64) NULL,
          `column119` varchar(64) NULL,
          `column120` varchar(64) NULL,
          `column121` varchar(64) NULL,
          `column122` varchar(64) NULL,
          `column123` varchar(64) NULL,
          `column124` varchar(64) NULL,
          `column125` varchar(64) NULL,
          `column126` varchar(64) NULL,
          `column127` varchar(64) NULL,
          `column128` varchar(64) NULL,
          `column129` varchar(64) NULL,
          `column130` varchar(64) NULL,
          `column131` varchar(64) NULL,
          `column132` varchar(64) NULL,
          `column133` varchar(64) NULL,
          `column134` varchar(64) NULL,
          `column135` varchar(64) NULL,
          `column136` varchar(64) NULL,
          `column137` varchar(64) NULL,
          `column138` varchar(64) NULL,
          `column139` varchar(64) NULL,
          `column140` varchar(64) NULL,
          `column141` varchar(64) NULL,
          `column142` varchar(64) NULL,
          `column143` varchar(64) NULL,
          `column144` varchar(64) NULL,
          `column145` varchar(64) NULL,
          `column146` varchar(64) NULL,
          `column147` varchar(64) NULL,
          `column148` varchar(64) NULL,
          `column149` varchar(64) NULL,
          `column150` varchar(64) NULL,
          `column151` varchar(64) NULL,
          `column152` varchar(64) NULL,
          `column153` varchar(64) NULL,
          `column154` varchar(64) NULL,
          `column155` varchar(64) NULL,
          `column156` varchar(64) NULL,
          `column157` varchar(64) NULL,
          `column158` varchar(64) NULL,
          `column159` varchar(64) NULL,
          `column160` varchar(64) NULL,
          `column161` varchar(64) NULL,
          `column162` varchar(128) NOT NULL,
          `column163` varchar(128) NULL,
          `column164` varchar(128) NULL,
          `column165` varchar(128) NULL,
          `column166` varchar(128) NULL,
          `column167` varchar(128) NULL,
          `column168` varchar(128) NULL,
          `column169` varchar(128) NULL,
          `column170` varchar(128) NULL,
          `column171` varchar(128) NULL,
          `column172` varchar(128) NULL,
          `column173` varchar(128) NULL,
          `column174` varchar(128) NULL,
          `column175` varchar(128) NULL,
          `column176` varchar(128) NULL,
          `column177` varchar(128) NULL,
          `column178` varchar(128) NULL,
          `column179` varchar(128) NULL,
          `column180` varchar(254) NULL,
          `column181` varchar(254) NULL,
          `column182` varchar(254) NULL,
          `column183` varchar(254) NULL,
          `column184` varchar(255) NULL,
          `column185` varchar(256) NULL,
          `column186` varchar(256) NULL,
          `column187` varchar(256) NULL,
          `column188` varchar(256) NULL
      );
      

      Here is a simplified version where if you comment the first column, the query will work OK, but leaving as is will result in the error.

      CREATE DATABASE IF NOT EXISTS `test`;
      USE `test`;
      DROP TABLE IF EXISTS `row_too_big`;
      CREATE TABLE IF NOT EXISTS `row_too_big`
      (
          `column0` numeric(12, 2) NULL,
          `column1` smallint UNSIGNED NULL,
          `column2` varchar(1) NOT NULL,
          `column3` varchar(2) NOT NULL,
          `column4` varchar(2) NOT NULL,
          `column5` varchar(2) NULL,
          `column6` varchar(2) NULL,
          `column7` varchar(2) NULL,
          `column8` varchar(4) NOT NULL,
          `column9` varchar(7) NOT NULL,
          `column10` varchar(7) NOT NULL,
          `column11` varchar(8) NOT NULL,
          `column12` varchar(8) NULL,
          `column13` varchar(8) NULL,
          `column14` varchar(16) NOT NULL,
          `column15` varchar(16) NOT NULL,
          `column16` varchar(16) NULL,
          `column17` varchar(16) NULL,
          `column18` varchar(16) NULL,
          `column19` varchar(16) NULL,
          `column20` varchar(16) NULL,
          `column21` varchar(16) NULL,
          `column22` varchar(16) NULL,
          `column23` varchar(16) NULL,
          `column24` varchar(16) NULL,
          `column25` varchar(16) NULL,
          `column26` varchar(16) NULL,
          `column27` varchar(20) NULL,
          `column28` varchar(20) NULL,
          `column29` varchar(30) NOT NULL,
          `column30` varchar(32) NOT NULL,
          `column31` varchar(32) NOT NULL,
          `column32` varchar(32) NULL,
          `column33` varchar(32) NULL,
          `column34` varchar(32) NULL,
          `column35` varchar(32) NULL,
          `column36` varchar(32) NULL,
          `column37` varchar(32) NULL,
          `column38` varchar(32) NULL,
          `column39` varchar(32) NULL,
          `column40` varchar(32) NULL,
          `column41` varchar(32) NULL,
          `column42` varchar(32) NULL,
          `column43` varchar(32) NULL,
          `column44` varchar(32) NULL,
          `column45` varchar(32) NULL,
          `column46` varchar(32) NULL,
          `column47` varchar(32) NULL,
          `column48` varchar(32) NULL,
          `column49` varchar(32) NULL,
          `column50` varchar(32) NULL,
          `column51` varchar(32) NULL,
          `column52` varchar(32) NULL,
          `column53` varchar(32) NULL,
          `column54` varchar(64) NOT NULL,
          `column55` varchar(64) NOT NULL,
          `column56` varchar(64) NOT NULL,
          `column57` varchar(64) NULL,
          `column58` varchar(64) NULL,
          `column59` varchar(64) NULL,
          `column60` varchar(64) NULL,
          `column61` varchar(64) NULL,
          `column62` varchar(64) NULL,
          `column63` varchar(64) NULL,
          `column64` varchar(64) NULL,
          `column65` varchar(64) NULL,
          `column66` varchar(64) NULL,
          `column67` varchar(64) NULL,
          `column68` varchar(64) NULL,
          `column69` varchar(64) NULL,
          `column70` varchar(64) NULL,
          `column71` varchar(64) NULL,
          `column72` varchar(64) NULL,
          `column73` varchar(64) NULL,
          `column74` varchar(64) NULL,
          `column75` varchar(64) NULL,
          `column76` varchar(64) NULL,
          `column77` varchar(64) NULL,
          `column78` varchar(64) NULL,
          `column79` varchar(64) NULL,
          `column80` varchar(64) NULL,
          `column81` varchar(64) NULL,
          `column82` varchar(64) NULL,
          `column83` varchar(64) NULL,
          `column84` varchar(64) NULL,
          `column85` varchar(64) NULL,
          `column86` varchar(64) NULL,
          `column87` varchar(64) NULL,
          `column88` varchar(64) NULL,
          `column89` varchar(64) NULL,
          `column90` varchar(64) NULL,
          `column91` varchar(64) NULL,
          `column92` varchar(64) NULL,
          `column93` varchar(64) NULL,
          `column94` varchar(64) NULL,
          `column95` varchar(64) NULL,
          `column96` varchar(64) NULL,
          `column97` varchar(64) NULL,
          `column98` varchar(64) NULL,
          `column99` varchar(64) NULL,
          `column100` varchar(64) NULL,
          `column101` varchar(64) NULL,
          `column102` varchar(64) NULL,
          `column103` varchar(64) NULL,
          `column104` varchar(128) NOT NULL,
          `column105` varchar(128) NULL,
          `column106` varchar(128) NULL,
          `column107` varchar(128) NULL,
          `column108` varchar(128) NULL,
          `column109` varchar(128) NULL,
          `column110` varchar(128) NULL,
          `column111` varchar(128) NULL,
          `column112` varchar(128) NULL,
          `column113` varchar(128) NULL,
          `column114` varchar(128) NULL,
          `column115` varchar(128) NULL,
          `column116` varchar(128) NULL,
          `column117` varchar(128) NULL,
          `column118` varchar(128) NULL,
          `column119` varchar(128) NULL,
          `column120` varchar(128) NULL,
          `column121` varchar(128) NULL,
          `column122` varchar(254) NULL,
          `column123` varchar(254) NULL,
          `column124` varchar(254) NULL,
          `column125` varchar(254) NULL,
          `column126` varchar(255) NULL,
          `column127` varchar(256) NULL,
          `column128` varchar(256) NULL,
          `column129` varchar(256) NULL,
          `column130` varchar(256) NULL
      );
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                kevg Eugene Kosov
                Reporter:
                pjbollinger Patrick Bollinger
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: