diff --git a/.bzrignore b/.bzrignore index 2bd67528bdc..eafc384fda5 100644 --- a/.bzrignore +++ b/.bzrignore @@ -276,6 +276,7 @@ bkpush.log bkpush.log* build.log build_tags.sh +client/#mysql.cc# client/*.ds? client/*.vcproj client/completion_hash.cpp @@ -290,6 +291,7 @@ client/my_decimal.h client/my_user.c client/mysql client/mysql.cpp +client/mysql_upgrade client/mysqladmin client/mysqladmin.c client/mysqladmin.cpp @@ -365,6 +367,9 @@ extra/resolve_stack_dump extra/resolveip extra/sql_state.h extra/tztime.cc +extra/yassl/taocrypt/benchmark/benchmark +extra/yassl/taocrypt/test/test +extra/yassl/testsuite/testsuite fcns.c fcns.h gdbinit @@ -382,6 +387,7 @@ include/my_global.h include/mysql_version.h include/mysqld_ername.h include/mysqld_error.h +include/openssl include/readline include/readline/*.h include/readline/readline.h @@ -672,6 +678,7 @@ mysql-test/r/bdb-alter-table-2.err mysql-test/r/bdb-crash.err mysql-test/r/bdb-deadlock.err mysql-test/r/bdb.err +mysql-test/r/bdb.log mysql-test/r/bdb_cache.err mysql-test/r/client_test.err mysql-test/r/csv.err @@ -679,6 +686,7 @@ mysql-test/r/ctype_ucs.err mysql-test/r/derived.err mysql-test/r/exampledb.err mysql-test/r/func_encrypt.err +mysql-test/r/im_client_port.log mysql-test/r/index_merge_load.result mysql-test/r/isam.err mysql-test/r/lowercase_table2.err @@ -727,6 +735,7 @@ mysql-test/r/rpl000016.eval mysql-test/r/rpl_log.eval mysql-test/r/slave-running.eval mysql-test/r/slave-stopped.eval +mysql-test/r/udf.log mysql-test/share/mysql mysql-test/std_data/*.pem mysql-test/t/index_merge.load @@ -1051,6 +1060,7 @@ scripts/mysql_install_db scripts/mysql_secure_installation scripts/mysql_setpermission scripts/mysql_tableinfo +scripts/mysql_upgrade scripts/mysql_zap scripts/mysqlaccess scripts/mysqlbug @@ -1142,7 +1152,9 @@ sql/pack.c sql/safe_to_cache_query.txt sql/share/*.sys sql/share/charsets/gmon.out +sql/share/fixerrmsg.pl sql/share/gmon.out +sql/share/iso639-2.txt sql/share/mysql sql/share/norwegian-ny/errmsg.sys sql/share/norwegian/errmsg.sys @@ -1273,13 +1285,3 @@ vio/viotest-sslconnect.cpp vio/viotest.cpp zlib/*.ds? zlib/*.vcproj -scripts/mysql_upgrade -include/openssl -mysql-test/r/bdb.log -mysql-test/r/im_client_port.log -mysql-test/r/udf.log -extra/yassl/taocrypt/benchmark/benchmark -extra/yassl/taocrypt/test/test -extra/yassl/testsuite/testsuite -client/mysql_upgrade -client/#mysql.cc# diff --git a/include/config-win.h b/include/config-win.h index 8d937ffed22..75133ddc837 100644 --- a/include/config-win.h +++ b/include/config-win.h @@ -384,6 +384,7 @@ inline double ulonglong2double(ulonglong value) #define FN_LIBCHAR '\\' #define FN_ROOTDIR "\\" +#define FN_DEVCHAR ':' #define FN_NETWORK_DRIVES /* Uses \\ to indicate network drives */ #define FN_NO_CASE_SENCE /* Files are not case-sensitive */ #define OS_FILE_LIMIT 2048 diff --git a/include/my_global.h b/include/my_global.h index 7adf4845984..e7205c94c18 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -599,7 +599,6 @@ typedef SOCKET_SIZE_TYPE size_socket; #define FN_HOMELIB '~' /* ~/ is used as abbrev for home dir */ #define FN_CURLIB '.' /* ./ is used as abbrev for current dir */ #define FN_PARENTDIR ".." /* Parent directory; Must be a string */ -#define FN_DEVCHAR ':' #ifndef FN_LIBCHAR #ifdef __EMX__ diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result index 27a6c8a9d03..57ec76a0b53 100644 --- a/mysql-test/r/create.result +++ b/mysql-test/r/create.result @@ -773,3 +773,17 @@ Warnings: Warning 1071 Specified key was too long; max key length is 765 bytes insert into t1 values('aaa'); drop table t1; +drop table if exists `about:text`; +create table `about:text` ( +_id int not null auto_increment, +`about:text` varchar(255) not null default '', +primary key (_id) +); +show create table `about:text`; +Table Create Table +about:text CREATE TABLE `about:text` ( + `_id` int(11) NOT NULL auto_increment, + `about:text` varchar(255) NOT NULL default '', + PRIMARY KEY (`_id`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +drop table `about:text`; diff --git a/mysql-test/t/create.test b/mysql-test/t/create.test index e22c2b5c426..d1e9818088d 100644 --- a/mysql-test/t/create.test +++ b/mysql-test/t/create.test @@ -674,4 +674,19 @@ create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb insert into t1 values('aaa'); drop table t1; +# +# Bug#19479:mysqldump creates invalid dump +# +--disable_warnings +drop table if exists `about:text`; +--enable_warnings +create table `about:text` ( +_id int not null auto_increment, +`about:text` varchar(255) not null default '', +primary key (_id) +); + +show create table `about:text`; +drop table `about:text`; + # End of 5.0 tests diff --git a/mysys/mf_fn_ext.c b/mysys/mf_fn_ext.c index 9c86a8072ef..d7b1f8c1d61 100644 --- a/mysys/mf_fn_ext.c +++ b/mysys/mf_fn_ext.c @@ -40,14 +40,14 @@ my_string fn_ext(const char *name) DBUG_ENTER("fn_ext"); DBUG_PRINT("mfunkt",("name: '%s'",name)); -#if defined(FN_DEVCHAR) || defined(FN_C_AFTER_DIR) +#if defined(FN_DEVCHAR) || defined(FN_C_AFTER_DIR) || defined(BASKSLASH_MBTAIL) { char buff[FN_REFLEN]; gpos=(my_string) name+dirname_part(buff,(char*) name); } #else - if (!(gpos=strrchr(name,FNLIBCHAR))) - gpos=name; + if (!(gpos= strrchr(name, FN_LIBCHAR))) + gpos= (my_string) name; #endif pos=strchr(gpos,FN_EXTCHAR); DBUG_RETURN (pos ? pos : strend(gpos)); diff --git a/sql/table.cc b/sql/table.cc index cfdb9bd93aa..711f250c271 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -1614,6 +1614,10 @@ bool check_db_name(char *name) if (*name == '/' || *name == '\\' || *name == FN_LIBCHAR || *name == FN_EXTCHAR) return 1; +#ifdef FN_DEVCHAR + if (*name == FN_DEVCHAR) + return 1; +#endif name++; } return last_char_is_space || (uint) (name - start) > NAME_LEN; @@ -1656,6 +1660,10 @@ bool check_table_name(const char *name, uint length) #endif if (*name == '/' || *name == '\\' || *name == FN_EXTCHAR) return 1; +#ifdef FN_DEVCHAR + if (*name == FN_DEVCHAR) + return 1; +#endif name++; } #if defined(USE_MB) && defined(USE_MB_IDENT)