summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2004-05-06 19:50:48 +0300
committerunknown <monty@mysql.com>2004-05-06 19:50:48 +0300
commit96ae3b4d5851c813cd32e1d6d696aad7d6cb6133 (patch)
treef42623cb66628f9eab8c6e3847223458564a5e95
parentbd43223e3b5c2e6018843ac31b743c82b8aa5e48 (diff)
parent445148f08339db0cc32c5254f31f8629fedd2af0 (diff)
downloadmariadb-git-96ae3b4d5851c813cd32e1d6d696aad7d6cb6133.tar.gz
Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/my/mysql-4.1
-rw-r--r--innobase/include/os0file.h8
-rw-r--r--innobase/os/os0file.c17
-rw-r--r--innobase/srv/srv0srv.c6
-rw-r--r--mysql-test/r/rpl_server_id2.result1
-rw-r--r--mysql-test/t/rpl_server_id2.test4
-rw-r--r--sql/ha_innodb.cc2
-rw-r--r--sql/sql_acl.cc6
7 files changed, 35 insertions, 9 deletions
diff --git a/innobase/include/os0file.h b/innobase/include/os0file.h
index 263142db74f..3eccfcd3be5 100644
--- a/innobase/include/os0file.h
+++ b/innobase/include/os0file.h
@@ -358,6 +358,14 @@ os_file_set_size(
size */
ulint size_high);/* in: most significant 32 bits of size */
/***************************************************************************
+Truncates a file at its current position. */
+
+ibool
+os_file_set_eof(
+/*============*/
+ /* out: TRUE if success */
+ FILE* file); /* in: file to be truncated */
+/***************************************************************************
Flushes the write buffers of a given file to the disk. */
ibool
diff --git a/innobase/os/os0file.c b/innobase/os/os0file.c
index ff5b30bec0d..3f14a2158ed 100644
--- a/innobase/os/os0file.c
+++ b/innobase/os/os0file.c
@@ -1583,6 +1583,23 @@ error_handling:
}
/***************************************************************************
+Truncates a file at its current position. */
+
+ibool
+os_file_set_eof(
+/*============*/
+ /* out: TRUE if success */
+ FILE* file) /* in: file to be truncated */
+{
+#ifdef __WIN__
+ HANDLE h = (HANDLE) _get_osfhandle(fileno(file));
+ return(SetEndOfFile(h));
+#else /* __WIN__ */
+ return(!ftruncate(fileno(file), ftell(file)));
+#endif /* __WIN__ */
+}
+
+/***************************************************************************
Flushes the write buffers of a given file to the disk. */
ibool
diff --git a/innobase/srv/srv0srv.c b/innobase/srv/srv0srv.c
index 9dffdbf2f9f..7194dfc1d2f 100644
--- a/innobase/srv/srv0srv.c
+++ b/innobase/srv/srv0srv.c
@@ -1655,11 +1655,7 @@ loop:
mutex_enter(&srv_monitor_file_mutex);
rewind(srv_monitor_file);
srv_printf_innodb_monitor(srv_monitor_file);
-#ifdef __WIN__
- chsize(fileno(srv_monitor_file), ftell(srv_monitor_file));
-#else /* __WIN__ */
- ftruncate(fileno(srv_monitor_file), ftell(srv_monitor_file));
-#endif /* __WIN__ */
+ os_file_set_eof(srv_monitor_file);
mutex_exit(&srv_monitor_file_mutex);
if (srv_print_innodb_tablespace_monitor
diff --git a/mysql-test/r/rpl_server_id2.result b/mysql-test/r/rpl_server_id2.result
index d8d805fc0d2..fde7251497a 100644
--- a/mysql-test/r/rpl_server_id2.result
+++ b/mysql-test/r/rpl_server_id2.result
@@ -20,4 +20,5 @@ select * from t1;
n
1
1
+stop slave;
drop table t1;
diff --git a/mysql-test/t/rpl_server_id2.test b/mysql-test/t/rpl_server_id2.test
index f022ab13188..dc8f733b7ed 100644
--- a/mysql-test/t/rpl_server_id2.test
+++ b/mysql-test/t/rpl_server_id2.test
@@ -18,4 +18,8 @@ insert into t1 values (1);
save_master_pos;
sync_with_master;
select * from t1; # check that indeed 2 were inserted
+# We stop the slave before cleaning up otherwise we'll get
+# 'drop table t1' executed twice, so an error in the slave.err
+# (not critical).
+stop slave;
drop table t1;
diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc
index adf3ac0d6a0..201ec8f183f 100644
--- a/sql/ha_innodb.cc
+++ b/sql/ha_innodb.cc
@@ -4817,7 +4817,7 @@ innodb_show_status(
rewind(srv_monitor_file);
srv_printf_innodb_monitor(srv_monitor_file);
flen = ftell(srv_monitor_file);
- my_chsize(fileno(srv_monitor_file), flen, 0, MYF(0));
+ os_file_set_eof(srv_monitor_file);
if(flen > 64000 - 1) {
flen = 64000 - 1;
}
diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc
index 27aaf06d872..b2d030b523d 100644
--- a/sql/sql_acl.cc
+++ b/sql/sql_acl.cc
@@ -2764,9 +2764,9 @@ bool check_grant_column(THD *thd,TABLE *table, const char *name,
if (table->grant.version != grant_version)
{
table->grant.grant_table=
- table_hash_search(thd->host,thd->ip,thd->db,
+ table_hash_search(thd->host, thd->ip, table->table_cache_key,
thd->priv_user,
- table->real_name,0); /* purecov: inspected */
+ table->real_name, 0); /* purecov: inspected */
table->grant.version=grant_version; /* purecov: inspected */
}
if (!(grant_table=table->grant.grant_table))
@@ -3161,7 +3161,7 @@ int mysql_show_grants(THD *thd,LEX_USER *lex_user)
/* Add database access */
for (counter=0 ; counter < acl_dbs.elements ; counter++)
{
- const char *user,*host;
+ const char *user, *host;
acl_db=dynamic_element(&acl_dbs,counter,ACL_DB*);
if (!(user=acl_db->user))