From f7f8efc2638b35c95b1a26b2bc808aaa92a43c79 Mon Sep 17 00:00:00 2001 From: "marko@hundin.mysql.fi" <> Date: Mon, 5 Apr 2004 15:40:56 +0300 Subject: [PATCH] InnoDB: Backport fil_path_to_mysql_datadir from MySQL 4.1.x --- innobase/fil/fil0fil.c | 5 +++++ innobase/include/fil0fil.h | 5 +++++ sql/ha_innodb.cc | 1 + 3 files changed, 11 insertions(+) diff --git a/innobase/fil/fil0fil.c b/innobase/fil/fil0fil.c index 44f1777bb33..5d45b254afe 100644 --- a/innobase/fil/fil0fil.c +++ b/innobase/fil/fil0fil.c @@ -77,6 +77,11 @@ out of the LRU-list and keep a count of pending operations. When an operation completes, we decrement the count and return the file node to the LRU-list if the count drops to zero. */ +/* When mysqld is run, the default directory "." is the mysqld datadir, +but in the MySQL Embedded Server Library and ibbackup it is not the default +directory, and we must set the base file path explicitly */ +const char* fil_path_to_mysql_datadir = "."; + ulint fil_n_pending_log_flushes = 0; ulint fil_n_pending_tablespace_flushes = 0; diff --git a/innobase/include/fil0fil.h b/innobase/include/fil0fil.h index ad3149f0b36..ef41ca21d2c 100644 --- a/innobase/include/fil0fil.h +++ b/innobase/include/fil0fil.h @@ -16,6 +16,11 @@ Created 10/25/1995 Heikki Tuuri #include "ut0byte.h" #include "os0file.h" +/* When mysqld is run, the default directory "." is the mysqld datadir, but in +ibbackup we must set it explicitly; the path must NOT contain the trailing +'/' or '\' */ +extern const char* fil_path_to_mysql_datadir; + /* 'null' (undefined) page offset in the context of file spaces */ #define FIL_NULL ULINT32_UNDEFINED diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc index 5a929237e3b..ff249b9d251 100644 --- a/sql/ha_innodb.cc +++ b/sql/ha_innodb.cc @@ -714,6 +714,7 @@ innobase_init(void) if (mysql_embedded) { default_path = mysql_real_data_home; + fil_path_to_mysql_datadir = mysql_real_data_home; } else { /* It's better to use current lib, to keep paths short */ current_dir[0] = FN_CURLIB;