summaryrefslogtreecommitdiff
path: root/sql/sql_table.cc
diff options
context:
space:
mode:
authorunknown <bar@mysql.com>2006-04-19 09:50:17 +0500
committerunknown <bar@mysql.com>2006-04-19 09:50:17 +0500
commit2b49181d2f3008c58126dcb35dfb877eb0f9990a (patch)
treea8da81c2998f482b08415ac5acd71eabbb45403c /sql/sql_table.cc
parent28980e7cc754d94ab93134ec147959908cc8b36a (diff)
parentaa3eb77e62b57b62a393980f56f21eb2e013f676 (diff)
downloadmariadb-git-2b49181d2f3008c58126dcb35dfb877eb0f9990a.tar.gz
Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into mysql.com:/usr/home/bar/mysql-5.1-new.b17870v1 include/my_sys.h: Auto merged sql/sql_table.cc: Auto merged mysys/my_access.c: SCCS merged
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r--sql/sql_table.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index 1d84c4b0f4a..6cc2ad266e5 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -72,12 +72,19 @@ uint filename_to_tablename(const char *from, char *to, uint to_length)
uint tablename_to_filename(const char *from, char *to, uint to_length)
{
- uint errors;
+ uint errors, length;
if (from[0] == '#' && !strncmp(from, MYSQL50_TABLE_NAME_PREFIX,
MYSQL50_TABLE_NAME_PREFIX_LENGTH))
return my_snprintf(to, to_length, "%s", from + 9);
- return strconvert(system_charset_info, from,
- &my_charset_filename, to, to_length, &errors);
+ length= strconvert(system_charset_info, from,
+ &my_charset_filename, to, to_length, &errors);
+ if (check_if_legal_tablename(to) &&
+ length + 4 < to_length)
+ {
+ memcpy(to + length, "@@@", 4);
+ length+= 3;
+ }
+ return length;
}