summaryrefslogtreecommitdiff
path: root/scripts/mysql_create_system_tables.sh
diff options
context:
space:
mode:
authorunknown <pem@mysql.com>2005-07-08 16:33:15 +0200
committerunknown <pem@mysql.com>2005-07-08 16:33:15 +0200
commitaccdff5114b99a3703e73d513db59a33e7da0371 (patch)
tree59891a3bd36cf547f491c456308d16aac95330bf /scripts/mysql_create_system_tables.sh
parent7672befa72781ff2bdd11edd36e20efdbd8b3560 (diff)
downloadmariadb-git-accdff5114b99a3703e73d513db59a33e7da0371.tar.gz
Fixed BUG#11365: Stored Procedure: Crash on Procedure operation
Two separate problems. A key buffer was too small in sp.cc for multi-byte fields, and the creation and fixing of mysql.proc in the scripts hadn't been updated with the correct character sets and collations (like the other system tables had). Note: No special test case, as the use of utf8 for mysql.proc will make any existing crash (if the buffer overrrun wasn't fixed). mysql-test/r/sp-error.result: Updated test case for too long SP names (as the limit has increased with the use of utf8). mysql-test/t/sp-error.test: Updated test case for too long SP names (as the limit has increased with the use of utf8). scripts/mysql_create_system_tables.sh: Use utf8 for mysql.proc, just like for the other system tables. scripts/mysql_fix_privilege_tables.sql: Use utf8 for mysql.proc, just like for the other system tables. (Some tabs also replaced by space) sql/sp.cc: Use a larger key buffer for stored procedures to avoid stack overrun with multi-byte keys.
Diffstat (limited to 'scripts/mysql_create_system_tables.sh')
-rw-r--r--scripts/mysql_create_system_tables.sh12
1 files changed, 7 insertions, 5 deletions
diff --git a/scripts/mysql_create_system_tables.sh b/scripts/mysql_create_system_tables.sh
index bc07d857c4b..a3036b5c10b 100644
--- a/scripts/mysql_create_system_tables.sh
+++ b/scripts/mysql_create_system_tables.sh
@@ -669,7 +669,7 @@ fi
if test ! -f $mdata/proc.frm
then
c_p="$c_p CREATE TABLE proc ("
- c_p="$c_p db char(64) binary DEFAULT '' NOT NULL,"
+ c_p="$c_p db char(64) collate utf8_bin DEFAULT '' NOT NULL,"
c_p="$c_p name char(64) DEFAULT '' NOT NULL,"
c_p="$c_p type enum('FUNCTION','PROCEDURE') NOT NULL,"
c_p="$c_p specific_name char(64) DEFAULT '' NOT NULL,"
@@ -684,7 +684,7 @@ then
c_p="$c_p param_list blob DEFAULT '' NOT NULL,"
c_p="$c_p returns char(64) DEFAULT '' NOT NULL,"
c_p="$c_p body blob DEFAULT '' NOT NULL,"
- c_p="$c_p definer char(77) binary DEFAULT '' NOT NULL,"
+ c_p="$c_p definer char(77) collate utf8_bin DEFAULT '' NOT NULL,"
c_p="$c_p created timestamp,"
c_p="$c_p modified timestamp,"
c_p="$c_p sql_mode set("
@@ -718,10 +718,12 @@ then
c_p="$c_p 'TRADITIONAL',"
c_p="$c_p 'NO_AUTO_CREATE_USER',"
c_p="$c_p 'HIGH_NOT_PRECEDENCE'"
- c_p="$c_p ) DEFAULT 0 NOT NULL,"
- c_p="$c_p comment char(64) binary DEFAULT '' NOT NULL,"
+ c_p="$c_p ) DEFAULT '' NOT NULL,"
+ c_p="$c_p comment char(64) collate utf8_bin DEFAULT '' NOT NULL,"
c_p="$c_p PRIMARY KEY (db,name,type)"
- c_p="$c_p ) comment='Stored Procedures';"
+ c_p="$c_p ) engine=MyISAM"
+ c_p="$c_p character set utf8"
+ c_p="$c_p comment='Stored Procedures';"
fi
cat << END_OF_DATA