mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
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
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user