mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
Merge from mysql-5.1 to mysql-5.5.
This commit is contained in:
@@ -126,12 +126,12 @@ CREATE TABLE t1(
|
|||||||
c TEXT NOT NULL, d TEXT NOT NULL,
|
c TEXT NOT NULL, d TEXT NOT NULL,
|
||||||
PRIMARY KEY (c(767),d(767)))
|
PRIMARY KEY (c(767),d(767)))
|
||||||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
|
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
|
||||||
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs
|
ERROR 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.
|
||||||
CREATE TABLE t1(
|
CREATE TABLE t1(
|
||||||
c TEXT NOT NULL, d TEXT NOT NULL,
|
c TEXT NOT NULL, d TEXT NOT NULL,
|
||||||
PRIMARY KEY (c(767),d(767)))
|
PRIMARY KEY (c(767),d(767)))
|
||||||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2 CHARSET=ASCII;
|
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2 CHARSET=ASCII;
|
||||||
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs
|
ERROR 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.
|
||||||
CREATE TABLE t1(
|
CREATE TABLE t1(
|
||||||
c TEXT NOT NULL, d TEXT NOT NULL,
|
c TEXT NOT NULL, d TEXT NOT NULL,
|
||||||
PRIMARY KEY (c(767),d(767)))
|
PRIMARY KEY (c(767),d(767)))
|
||||||
@@ -139,7 +139,7 @@ ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4 CHARSET=ASCII;
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1(c TEXT, PRIMARY KEY (c(440)))
|
CREATE TABLE t1(c TEXT, PRIMARY KEY (c(440)))
|
||||||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
|
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
|
||||||
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs
|
ERROR 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.
|
||||||
CREATE TABLE t1(c TEXT, PRIMARY KEY (c(438)))
|
CREATE TABLE t1(c TEXT, PRIMARY KEY (c(438)))
|
||||||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
|
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
|
||||||
INSERT INTO t1 VALUES(REPEAT('A',512)),(REPEAT('B',512));
|
INSERT INTO t1 VALUES(REPEAT('A',512)),(REPEAT('B',512));
|
||||||
|
@@ -3085,7 +3085,7 @@ c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
|
|||||||
c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
|
c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
|
||||||
c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255)
|
c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255)
|
||||||
) ENGINE = InnoDB;
|
) ENGINE = InnoDB;
|
||||||
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs
|
ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1051 Unknown table 't1'
|
Note 1051 Unknown table 't1'
|
||||||
|
@@ -8,7 +8,7 @@ ERROR HY000: Too big row
|
|||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
Error 139 Too big row
|
Error 139 Too big row
|
||||||
Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs
|
Error 1118 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.
|
||||||
Error 1030 Got error 139 from storage engine
|
Error 1030 Got error 139 from storage engine
|
||||||
DROP TABLE bug53591;
|
DROP TABLE bug53591;
|
||||||
SET GLOBAL innodb_file_format=Antelope;
|
SET GLOBAL innodb_file_format=Antelope;
|
||||||
|
@@ -779,7 +779,7 @@ c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
|
|||||||
c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
|
c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
|
||||||
c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255)
|
c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255)
|
||||||
) ENGINE = InnoDB;
|
) ENGINE = InnoDB;
|
||||||
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs
|
ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
|
||||||
SET innodb_strict_mode=OFF;
|
SET innodb_strict_mode=OFF;
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
Warnings:
|
Warnings:
|
||||||
|
@@ -1008,11 +1008,23 @@ convert_error_code_to_mysql(
|
|||||||
case DB_TABLE_NOT_FOUND:
|
case DB_TABLE_NOT_FOUND:
|
||||||
return(HA_ERR_NO_SUCH_TABLE);
|
return(HA_ERR_NO_SUCH_TABLE);
|
||||||
|
|
||||||
case DB_TOO_BIG_RECORD:
|
case DB_TOO_BIG_RECORD: {
|
||||||
my_error(ER_TOO_BIG_ROWSIZE, MYF(0),
|
/* If prefix is true then a 768-byte prefix is stored
|
||||||
page_get_free_space_of_empty(flags
|
locally for BLOB fields. Refer to dict_table_get_format() */
|
||||||
& DICT_TF_COMPACT) / 2);
|
bool prefix = ((flags & DICT_TF_FORMAT_MASK)
|
||||||
|
>> DICT_TF_FORMAT_SHIFT) < UNIV_FORMAT_B;
|
||||||
|
my_printf_error(ER_TOO_BIG_ROWSIZE,
|
||||||
|
"Row size too large (> %lu). Changing some columns "
|
||||||
|
"to TEXT or BLOB %smay help. In current row "
|
||||||
|
"format, BLOB prefix of %d bytes is stored inline.",
|
||||||
|
MYF(0),
|
||||||
|
page_get_free_space_of_empty(flags &
|
||||||
|
DICT_TF_COMPACT) / 2,
|
||||||
|
prefix ? "or using ROW_FORMAT=DYNAMIC "
|
||||||
|
"or ROW_FORMAT=COMPRESSED ": "",
|
||||||
|
prefix ? DICT_MAX_FIXED_COL_LEN : 0);
|
||||||
return(HA_ERR_TO_BIG_ROW);
|
return(HA_ERR_TO_BIG_ROW);
|
||||||
|
}
|
||||||
|
|
||||||
case DB_TOO_BIG_INDEX_COL:
|
case DB_TOO_BIG_INDEX_COL:
|
||||||
my_error(ER_INDEX_COLUMN_TOO_LONG, MYF(0),
|
my_error(ER_INDEX_COLUMN_TOO_LONG, MYF(0),
|
||||||
|
@@ -295,6 +295,24 @@ management to ensure correct alignment for doubles etc. */
|
|||||||
========================
|
========================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/** There are currently two InnoDB file formats which are used to group
|
||||||
|
features with similar restrictions and dependencies. Using an enum allows
|
||||||
|
switch statements to give a compiler warning when a new one is introduced. */
|
||||||
|
enum innodb_file_formats_enum {
|
||||||
|
/** Antelope File Format: InnoDB/MySQL up to 5.1.
|
||||||
|
This format includes REDUNDANT and COMPACT row formats */
|
||||||
|
UNIV_FORMAT_A = 0,
|
||||||
|
|
||||||
|
/** Barracuda File Format: Introduced in InnoDB plugin for 5.1:
|
||||||
|
This format includes COMPRESSED and DYNAMIC row formats. It
|
||||||
|
includes the ability to create secondary indexes from data that
|
||||||
|
is not on the clustered index page and the ability to store more
|
||||||
|
data off the clustered index page. */
|
||||||
|
UNIV_FORMAT_B = 1
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef enum innodb_file_formats_enum innodb_file_formats_t;
|
||||||
|
|
||||||
/* The 2-logarithm of UNIV_PAGE_SIZE: */
|
/* The 2-logarithm of UNIV_PAGE_SIZE: */
|
||||||
#define UNIV_PAGE_SIZE_SHIFT 14
|
#define UNIV_PAGE_SIZE_SHIFT 14
|
||||||
/* The universal page size of the database */
|
/* The universal page size of the database */
|
||||||
|
Reference in New Issue
Block a user