diff options
author | unknown <monty@mysql.com> | 2004-05-06 19:50:48 +0300 |
---|---|---|
committer | unknown <monty@mysql.com> | 2004-05-06 19:50:48 +0300 |
commit | 96ae3b4d5851c813cd32e1d6d696aad7d6cb6133 (patch) | |
tree | f42623cb66628f9eab8c6e3847223458564a5e95 | |
parent | bd43223e3b5c2e6018843ac31b743c82b8aa5e48 (diff) | |
parent | 445148f08339db0cc32c5254f31f8629fedd2af0 (diff) | |
download | mariadb-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.h | 8 | ||||
-rw-r--r-- | innobase/os/os0file.c | 17 | ||||
-rw-r--r-- | innobase/srv/srv0srv.c | 6 | ||||
-rw-r--r-- | mysql-test/r/rpl_server_id2.result | 1 | ||||
-rw-r--r-- | mysql-test/t/rpl_server_id2.test | 4 | ||||
-rw-r--r-- | sql/ha_innodb.cc | 2 | ||||
-rw-r--r-- | sql/sql_acl.cc | 6 |
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)) |