1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-35598 foreign key error is unnecessary truncated

truncate it at 512 bytes (max allowed by the protocol), not 192
This commit is contained in:
Sergei Golubchik
2024-12-10 00:11:41 +01:00
parent d26b47dfd4
commit c478b1ba08
4 changed files with 58 additions and 9 deletions

View File

@@ -243,3 +243,25 @@ Level Code Message
Warning 140 InnoDB: PAGE_COMPRESSED table can't have ROW_TYPE=COMPRESSED Warning 140 InnoDB: PAGE_COMPRESSED table can't have ROW_TYPE=COMPRESSED
Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options") Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
# End of 10.5 tests
#
# MDEV-35598 foreign key error is unnecessary truncated
#
set names utf8;
create table t1яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш
(f1яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш int not null primary key,
f2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш int not null
) engine=innodb;
create table t2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш
(f1яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш varchar(100),
f2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш int not null,
index i2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш
(f2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш)
) engine=innodb;
insert t1яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш values(99, 2);
alter table t2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш add foreign key(f2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш) references t1яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш(f1яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш);
insert t2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш values('g', 3);
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`t2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш`, CONSTRAINT `t2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш_ibfk_1` FOREIGN KEY (`f2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш`) REFERENCES `t1яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш` (`f1яяяяяяяяяяььььььььььззззз
drop table t2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш,
t1яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш;
# End of 10.6 tests

View File

@@ -272,3 +272,30 @@ SET FOREIGN_KEY_CHECKS=DEFAULT;
--error ER_CANT_CREATE_TABLE --error ER_CANT_CREATE_TABLE
CREATE TABLE t1(a SERIAL) ENGINE=InnoDB ROW_FORMAT=COMPRESSED PAGE_COMPRESSED=1; CREATE TABLE t1(a SERIAL) ENGINE=InnoDB ROW_FORMAT=COMPRESSED PAGE_COMPRESSED=1;
SHOW WARNINGS; SHOW WARNINGS;
--echo # End of 10.5 tests
--echo #
--echo # MDEV-35598 foreign key error is unnecessary truncated
--echo #
set names utf8;
create table t1яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш
(f1яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш int not null primary key,
f2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш int not null
) engine=innodb;
create table t2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш
(f1яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш varchar(100),
f2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш int not null,
index i2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш
(f2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш)
) engine=innodb;
insert t1яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш values(99, 2);
alter table t2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш add foreign key(f2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш) references t1яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш(f1яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш);
--error ER_NO_REFERENCED_ROW_2
insert t2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш values('g', 3);
drop table t2яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш,
t1яяяяяяяяяяььььььььььззззззззззшшшшшшшшшш;
--echo # End of 10.6 tests

View File

@@ -6318,15 +6318,15 @@ ER_FORBID_SCHEMA_CHANGE
ger "Wechsel des Schemas von '%-.192s' auf '%-.192s' ist nicht erlaubt" ger "Wechsel des Schemas von '%-.192s' auf '%-.192s' ist nicht erlaubt"
spa "Vd no está autorizado a cambiar el esquema de '%-.192s' a '%-.192s'" spa "Vd no está autorizado a cambiar el esquema de '%-.192s' a '%-.192s'"
ER_ROW_IS_REFERENCED_2 23000 ER_ROW_IS_REFERENCED_2 23000
chi "无法删除或更新父行:外键约束失败(%.192s" chi "无法删除或更新父行:外键约束失败(%s"
eng "Cannot delete or update a parent row: a foreign key constraint fails (%.192s)" eng "Cannot delete or update a parent row: a foreign key constraint fails (%s)"
ger "Kann Eltern-Zeile nicht löschen oder aktualisieren: eine Fremdschlüsselbedingung schlägt fehl (%.192s)" ger "Kann Eltern-Zeile nicht löschen oder aktualisieren: eine Fremdschlüsselbedingung schlägt fehl (%s)"
spa "No puedo borrar o actualizar una fila padre: falla una restricción de clave foránea (%.192s)" spa "No puedo borrar o actualizar una fila padre: falla una restricción de clave foránea (%s)"
ER_NO_REFERENCED_ROW_2 23000 ER_NO_REFERENCED_ROW_2 23000
chi "无法添加或更新子行:外键约束失败(%.192s" chi "无法添加或更新子行:外键约束失败(%s"
eng "Cannot add or update a child row: a foreign key constraint fails (%.192s)" eng "Cannot add or update a child row: a foreign key constraint fails (%s)"
ger "Kann Kind-Zeile nicht hinzufügen oder aktualisieren: eine Fremdschlüsselbedingung schlägt fehl (%.192s)" ger "Kann Kind-Zeile nicht hinzufügen oder aktualisieren: eine Fremdschlüsselbedingung schlägt fehl (%s)"
spa "No puedo añadir o actualizar una fila hija: falla una restricción de clave foránea (%.192s)" spa "No puedo añadir o actualizar una fila hija: falla una restricción de clave foránea (%s)"
ER_SP_BAD_VAR_SHADOW 42000 ER_SP_BAD_VAR_SHADOW 42000
chi "变量'%-.64s'必须用`...`,或重命名" chi "变量'%-.64s'必须用`...`,或重命名"
eng "Variable '%-.64s' must be quoted with `...`, or renamed" eng "Variable '%-.64s' must be quoted with `...`, or renamed"

View File

@@ -63,7 +63,7 @@ const byte timestamp_max_bytes[7] = {
}; };
static const ulint MAX_DETAILED_ERROR_LEN = 256; static const ulint MAX_DETAILED_ERROR_LEN = 512;
/*************************************************************//** /*************************************************************//**
Set detailed error message for the transaction. */ Set detailed error message for the transaction. */