summaryrefslogtreecommitdiff
path: root/mysql-test/t/create.test
diff options
context:
space:
mode:
authorunknown <gluh@mysql.com/eagle.(none)>2007-04-03 16:13:27 +0500
committerunknown <gluh@mysql.com/eagle.(none)>2007-04-03 16:13:27 +0500
commitd05bbb4f46ee6399dd9ffd67d2fbc25ce1410d89 (patch)
tree43cf3af5e63ac68035fb4a0461b4e0e7da5d00bb /mysql-test/t/create.test
parent7a8e12656f8dbe5e0bf9f1467d73ec31753cfbe0 (diff)
downloadmariadb-git-d05bbb4f46ee6399dd9ffd67d2fbc25ce1410d89.tar.gz
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
client/mysqldump.c: fixed typo include/mysql_com.h: added new constants SYSTEM_CHARSET_MBMAXLEN, NAME_CHAR_LEN, USERNAME_CHAR_LENGTH increased NAME_LEN, USERNAME_LENGTH mysql-test/r/create.result: result fix mysql-test/r/grant.result: result fix mysql-test/r/mysql.result: result fix mysql-test/r/sp.result: result fix mysql-test/t/create.test: test case mysql-test/t/grant.test: test case sql/events.cc: NAME_LEN is replaced with NAME_CHAR_LEN sql/item_strfunc.h: fixed calculation of max_length sql/mysql_priv.h: check_string_length function is replaced with check_string_byte_length added new function check_string_char_length sql/sp.cc: NAME_LEN is replaced with NAME_CHAR_LEN sql/sp_head.cc: NAME_LEN is replaced with NAME_CHAR_LEN sql/sp_head.h: changed parameter of 'check_routine_name' function sql/sql_class.cc: NAME_LEN is replaced with NAME_CHAR_LEN sql/share/errmsg.txt: increased argument lengths according to new constants sql/sql_parse.cc: removed unnecessary checks added function 'check_string_char_length' sql/sql_plugin.cc: check that name is not longer than NAME_CHAR_LEN symbols sql/sql_show.cc: NAME_LEN is replaced with NAME_CHAR_LEN sql/sql_table.cc: check that key name is not longer than NAME_LEN symbols sql/sql_udf.cc: check that udf name is not longer than NAME_CHAR_LEN symbols sql/sql_yacc.yy: check that user name is not longer than USERNAME_CHAR_LENGTH symbols sql/table.cc: check that db or table or column name is not longer than NAME_LEN symbols storage/innobase/handler/ha_innodb.cc: removed unnecessary multiplication tests/mysql_client_test.c: NAME_LEN is replaced with NAME_CHAR_LEN
Diffstat (limited to 'mysql-test/t/create.test')
-rw-r--r--mysql-test/t/create.test88
1 files changed, 88 insertions, 0 deletions
diff --git a/mysql-test/t/create.test b/mysql-test/t/create.test
index ffdcee06488..83553e314a7 100644
--- a/mysql-test/t/create.test
+++ b/mysql-test/t/create.test
@@ -734,3 +734,91 @@ drop database mysqltest;
USE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
--error 1102
SHOW CREATE DATABASE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
+
+#
+# Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
+#
+set names utf8;
+
+create database имя_базы_в_кодировке_утф8_длиной_больше_чем_45;
+use имя_базы_в_кодировке_утф8_длиной_больше_чем_45;
+select database();
+create table имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48
+(
+ имя_поля_в_кодировке_утф8_длиной_больше_чем_45 int,
+ index имя_индекса_в_кодировке_утф8_длиной_больше_чем_48 (имя_поля_в_кодировке_утф8_длиной_больше_чем_45)
+);
+
+create view имя_вью_кодировке_утф8_длиной_больше_чем_42 as
+select имя_поля_в_кодировке_утф8_длиной_больше_чем_45
+from имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48;
+
+# database, table, field, key, view
+select * from имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48;
+
+select SCHEMA_NAME from information_schema.schemata
+where schema_name='имя_базы_в_кодировке_утф8_длиной_больше_чем_45';
+
+select TABLE_NAME from information_schema.tables where
+table_schema='имя_базы_в_кодировке_утф8_длиной_больше_чем_45';
+
+select COLUMN_NAME from information_schema.columns where
+table_schema='имя_базы_в_кодировке_утф8_длиной_больше_чем_45';
+
+select INDEX_NAME from information_schema.statistics where
+table_schema='имя_базы_в_кодировке_утф8_длиной_больше_чем_45';
+
+select TABLE_NAME from information_schema.views where
+table_schema='имя_базы_в_кодировке_утф8_длиной_больше_чем_45';
+
+show create table имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48;
+show create view имя_вью_кодировке_утф8_длиной_больше_чем_42;
+
+# procedure, function, event, trigger
+
+create event имя_события_в_кодировке_утф8_длиной_больше_чем_48 on schedule every 2 year do select 1;
+select EVENT_NAME from information_schema.events
+where event_schema='имя_базы_в_кодировке_утф8_длиной_больше_чем_45';
+drop event имя_события_в_кодировке_утф8_длиной_больше_чем_48;
+--error 1059
+create event
+очень_очень_очень_очень_очень_очень_очень_очень_длинная_строка_66
+on schedule every 2 year do select 1;
+
+create trigger имя_триггера_в_кодировке_утф8_длиной_больше_чем_49
+before insert on имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48 for each row set @a:=1;
+select TRIGGER_NAME from information_schema.triggers where
+trigger_schema='имя_базы_в_кодировке_утф8_длиной_больше_чем_45';
+drop trigger имя_триггера_в_кодировке_утф8_длиной_больше_чем_49;
+--error 1059
+create trigger
+очень_очень_очень_очень_очень_очень_очень_очень_длинная_строка_66
+before insert on имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48 for each row set @a:=1;
+--error 1059
+drop trigger очень_очень_очень_очень_очень_очень_очень_очень_длинная_строка_66;
+
+create procedure имя_процедуры_в_кодировке_утф8_длиной_больше_чем_50()
+begin
+end;
+select ROUTINE_NAME from information_schema.routines where
+routine_schema='имя_базы_в_кодировке_утф8_длиной_больше_чем_45';
+drop procedure имя_процедуры_в_кодировке_утф8_длиной_больше_чем_50;
+--error 1059
+create procedure очень_очень_очень_очень_очень_очень_очень_очень_длинная_строка_66()
+begin
+end;
+
+create function имя_функции_в_кодировке_утф8_длиной_больше_чем_49()
+ returns int
+return 0;
+select ROUTINE_NAME from information_schema.routines where
+routine_schema='имя_базы_в_кодировке_утф8_длиной_больше_чем_45';
+drop function имя_функции_в_кодировке_утф8_длиной_больше_чем_49;
+--error 1059
+create function очень_очень_очень_очень_очень_очень_очень_очень_длинная_строка_66()
+ returns int
+return 0;
+
+drop database имя_базы_в_кодировке_утф8_длиной_больше_чем_45;
+set names default;
+use test;