summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVarun Gupta <varunraiko1803@gmail.com>2018-04-04 19:04:14 +0530
committerVarun Gupta <varunraiko1803@gmail.com>2018-04-04 19:04:14 +0530
commit7c8c9a8bfa65af9e3f4cc14f89c71796853f1e04 (patch)
treea484930e4202e03aba76b5edda1efe0ef6c879bc
parente6a9ce27591abd612dbb1d6b89cf4b5f2cd24a42 (diff)
downloadmariadb-git-7c8c9a8bfa65af9e3f4cc14f89c71796853f1e04.tar.gz
MDEV-15241: make SIGNAL maximum MESSAGE_TEXT length a larger value
Increasing the length of MESSAGE_TEXT from 128 to MYSQL_ERRMSG_SIZE which is the max length of the error message
-rw-r--r--mysql-test/main/signal.result10
-rw-r--r--mysql-test/main/signal.test8
-rw-r--r--mysql-test/main/signal_sqlmode.result8
-rw-r--r--mysql-test/main/signal_sqlmode.test4
-rw-r--r--sql/sql_signal.cc5
5 files changed, 18 insertions, 17 deletions
diff --git a/mysql-test/main/signal.result b/mysql-test/main/signal.result
index 905842bfb1c..215f7db8b0d 100644
--- a/mysql-test/main/signal.result
+++ b/mysql-test/main/signal.result
@@ -1132,7 +1132,7 @@ DECLARE hhhx VARCHAR(65);
DECLARE iiix VARCHAR(65);
DECLARE jjjx VARCHAR(65);
DECLARE kkkx VARCHAR(65);
-DECLARE lllx VARCHAR(129);
+DECLARE lllx VARCHAR(513);
DECLARE warn CONDITION FOR SQLSTATE "01234";
set aaax= concat(repeat("A", 64), "X");
set bbbx= concat(repeat("B", 64), "X");
@@ -1145,9 +1145,9 @@ set hhhx= concat(repeat("H", 64), "X");
set iiix= concat(repeat("I", 64), "X");
set jjjx= concat(repeat("J", 64), "X");
set kkkx= concat(repeat("K", 64), "X");
-set lllx= concat(repeat("1", 100),
-repeat("2", 20),
-repeat("8", 8),
+set lllx= concat(repeat("1", 500),
+repeat("2", 10),
+repeat("8", 2),
"X");
SIGNAL warn SET
CLASS_ORIGIN = aaax,
@@ -1176,7 +1176,7 @@ Warning 1647 Data truncated for condition item 'TABLE_NAME'
Warning 1647 Data truncated for condition item 'COLUMN_NAME'
Warning 1647 Data truncated for condition item 'CURSOR_NAME'
Warning 1647 Data truncated for condition item 'MESSAGE_TEXT'
-Warning 10000 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222222288888888
+Warning 10000 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222288
drop procedure test_signal $$
set sql_mode = DEFAULT $$
create procedure test_signal()
diff --git a/mysql-test/main/signal.test b/mysql-test/main/signal.test
index cdb5796f1da..e4dcb5a71cf 100644
--- a/mysql-test/main/signal.test
+++ b/mysql-test/main/signal.test
@@ -1360,7 +1360,7 @@ begin
DECLARE iiix VARCHAR(65);
DECLARE jjjx VARCHAR(65);
DECLARE kkkx VARCHAR(65);
- DECLARE lllx VARCHAR(129);
+ DECLARE lllx VARCHAR(513);
DECLARE warn CONDITION FOR SQLSTATE "01234";
@@ -1375,9 +1375,9 @@ begin
set iiix= concat(repeat("I", 64), "X");
set jjjx= concat(repeat("J", 64), "X");
set kkkx= concat(repeat("K", 64), "X");
- set lllx= concat(repeat("1", 100),
- repeat("2", 20),
- repeat("8", 8),
+ set lllx= concat(repeat("1", 500),
+ repeat("2", 10),
+ repeat("8", 2),
"X");
SIGNAL warn SET
diff --git a/mysql-test/main/signal_sqlmode.result b/mysql-test/main/signal_sqlmode.result
index 8fed85eb4a9..db7ac68041c 100644
--- a/mysql-test/main/signal_sqlmode.result
+++ b/mysql-test/main/signal_sqlmode.result
@@ -36,7 +36,7 @@ Warning 1265 Data truncated for column 'utf8_var' at row 1
call p2;
length(msg) msg
129 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX
-ERROR 55555: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ERROR 55555: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX
call p3;
length(name) name
65 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX
@@ -54,8 +54,8 @@ end
$$
create procedure p2()
begin
-declare msg VARCHAR(129) CHARACTER SET UTF8;
-set msg = concat(repeat('A', 128), 'X');
+declare msg VARCHAR(513) CHARACTER SET UTF8;
+set msg = concat(repeat('A', 512), 'X');
select length(msg), msg;
signal sqlstate '55555' set message_text = msg;
end
@@ -74,7 +74,7 @@ call p;
ERROR 22001: Data too long for column 'utf8_var' at row 1
call p2;
length(msg) msg
-129 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX
+513 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX
ERROR HY000: Data too long for condition item 'MESSAGE_TEXT'
call p3;
length(name) name
diff --git a/mysql-test/main/signal_sqlmode.test b/mysql-test/main/signal_sqlmode.test
index 2b311fd1ab1..d4143c0fe74 100644
--- a/mysql-test/main/signal_sqlmode.test
+++ b/mysql-test/main/signal_sqlmode.test
@@ -69,8 +69,8 @@ $$
create procedure p2()
begin
- declare msg VARCHAR(129) CHARACTER SET UTF8;
- set msg = concat(repeat('A', 128), 'X');
+ declare msg VARCHAR(513) CHARACTER SET UTF8;
+ set msg = concat(repeat('A', 512), 'X');
select length(msg), msg;
signal sqlstate '55555' set message_text = msg;
diff --git a/sql/sql_signal.cc b/sql/sql_signal.cc
index 1da8b145151..e1d9dcad57b 100644
--- a/sql/sql_signal.cc
+++ b/sql/sql_signal.cc
@@ -262,12 +262,13 @@ int Sql_cmd_common_signal::eval_signal_informations(THD *thd, Sql_condition *con
}
/*
Enforce that SET MESSAGE_TEXT = <value> evaluates the value
- as VARCHAR(128) CHARACTER SET UTF8.
+ as VARCHAR(MYSQL_ERRMSG_SIZE) CHARACTER SET UTF8.
*/
bool truncated;
String utf8_text;
str= set->val_str(& str_value);
- truncated= assign_fixed_string(thd->mem_root, & my_charset_utf8_bin, 128,
+ truncated= assign_fixed_string(thd->mem_root, & my_charset_utf8_bin,
+ MYSQL_ERRMSG_SIZE,
& utf8_text, str);
if (truncated)
{