summaryrefslogtreecommitdiff
path: root/sql/sql_view.cc
diff options
context:
space:
mode:
authorunknown <lars/lthalmann@dl145h.mysql.com>2006-11-07 19:26:31 +0100
committerunknown <lars/lthalmann@dl145h.mysql.com>2006-11-07 19:26:31 +0100
commit3763edd393c7c10b6aa3d91253986ad44492d52f (patch)
treecb0d57b5036a121d4e718097614fdee010c3c24b /sql/sql_view.cc
parentdd72647032cf157b063fe9a7f02ed2994734b1c0 (diff)
parent4c3283b3b306fc4f9ede3ef3bd8244d45a9b4fac (diff)
downloadmariadb-git-3763edd393c7c10b6aa3d91253986ad44492d52f.tar.gz
Merge mysql.com:/users/lthalmann/bkroot/mysql-5.1-new-rpl
into mysql.com:/users/lthalmann/bk/MERGE/mysql-5.1-merge BitKeeper/etc/collapsed: auto-union include/m_ctype.h: Auto merged mysql-test/r/binlog_row_mix_innodb_myisam.result: Auto merged mysql-test/r/ctype_utf8.result: Auto merged mysql-test/r/view.result: Auto merged mysql-test/t/disabled.def: Auto merged mysql-test/t/view.test: Auto merged sql/Makefile.am: Auto merged sql/field.cc: Auto merged sql/handler.cc: Auto merged sql/log.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_show.cc: Auto merged sql/sql_view.cc: Auto merged unittest/mytap/tap.c: Auto merged sql/log_event.cc: manual merge sql/sql_class.cc: manual merge
Diffstat (limited to 'sql/sql_view.cc')
-rw-r--r--sql/sql_view.cc35
1 files changed, 17 insertions, 18 deletions
diff --git a/sql/sql_view.cc b/sql/sql_view.cc
index 9598cbb9465..2c7c46a8ecb 100644
--- a/sql/sql_view.cc
+++ b/sql/sql_view.cc
@@ -1693,24 +1693,23 @@ mysql_rename_view(THD *thd,
const char *new_name,
TABLE_LIST *view)
{
- LEX_STRING pathstr, file;
+ LEX_STRING pathstr;
File_parser *parser;
- char view_path[FN_REFLEN];
+ char path_buff[FN_REFLEN];
bool error= TRUE;
DBUG_ENTER("mysql_rename_view");
- strxnmov(view_path, FN_REFLEN-1, mysql_data_home, "/", view->db, "/",
- view->table_name, reg_ext, NullS);
- (void) unpack_filename(view_path, view_path);
-
- pathstr.str= (char *)view_path;
- pathstr.length= strlen(view_path);
+ pathstr.str= (char *) path_buff;
+ pathstr.length= build_table_filename(path_buff, sizeof(path_buff) - 1,
+ view->db, view->table_name,
+ reg_ext, 0);
if ((parser= sql_parse_prepare(&pathstr, thd->mem_root, 1)) &&
is_equal(&view_type, parser->type()))
{
TABLE_LIST view_def;
- char dir_buff[FN_REFLEN], file_buff[FN_REFLEN];
+ char dir_buff[FN_REFLEN];
+ LEX_STRING dir, file;
/*
To be PS-friendly we should either to restore state of
@@ -1733,18 +1732,18 @@ mysql_rename_view(THD *thd,
view_def.revision - 1, num_view_backups))
goto err;
- strxnmov(dir_buff, FN_REFLEN-1, mysql_data_home, "/", view->db, "/",
- NullS);
- (void) unpack_filename(dir_buff, dir_buff);
+ dir.str= dir_buff;
+ dir.length= build_table_filename(dir_buff, sizeof(dir_buff) - 1,
+ view->db, "", "", 0);
- pathstr.str= (char*)dir_buff;
- pathstr.length= strlen(dir_buff);
+ pathstr.str= path_buff;
+ pathstr.length= build_table_filename(path_buff, sizeof(path_buff) - 1,
+ view->db, new_name, reg_ext, 0);
- file.str= file_buff;
- file.length= (strxnmov(file_buff, FN_REFLEN, new_name, reg_ext, NullS)
- - file_buff);
+ file.str= pathstr.str + dir.length;
+ file.length= pathstr.length - dir.length;
- if (sql_create_definition_file(&pathstr, &file, view_file_type,
+ if (sql_create_definition_file(&dir, &file, view_file_type,
(gptr)&view_def, view_parameters,
num_view_backups))
{