diff options
author | unknown <monty@mysql.com> | 2004-11-12 11:17:53 +0200 |
---|---|---|
committer | unknown <monty@mysql.com> | 2004-11-12 11:17:53 +0200 |
commit | 44070705ea958c57faa486e7f22ca5fb1ada095c (patch) | |
tree | 59f4a8722fd9657366da60b4af149031105872ab /sql | |
parent | 6a1bc4a52a8446775dbb428c2701d903b7902ad3 (diff) | |
parent | b19eb67f08d04de3af744097e72023d550329035 (diff) | |
download | mariadb-git-44070705ea958c57faa486e7f22ca5fb1ada095c.tar.gz |
merge with 4.0
BitKeeper/etc/logging_ok:
auto-union
BitKeeper/deleted/.del-Makefile.am:
Delete: Docs/Images/Makefile.am
Build-tools/Bootstrap:
Auto merged
Docs/Makefile.am:
Auto merged
configure.in:
Auto merged
include/mysql.h:
Auto merged
innobase/dict/dict0dict.c:
Auto merged
libmysql/libmysql.c:
Auto merged
mysys/default.c:
Auto merged
scripts/mysqld_safe.sh:
Auto merged
sql/log.cc:
Auto merged
mysql-test/t/mix_innodb_myisam_binlog.test:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_table.cc:
Auto merged
client/mysqldump.c:
merge with 4.0
(This only reorders options)
sql/ha_innodb.cc:
merge with 4.0 (Keep original code)
sql/time.cc:
Note that part of this patch is done in my_time.c
Diffstat (limited to 'sql')
-rw-r--r-- | sql/log.cc | 12 | ||||
-rw-r--r-- | sql/mysqld.cc | 4 | ||||
-rw-r--r-- | sql/sql_acl.cc | 3 | ||||
-rw-r--r-- | sql/sql_table.cc | 1 |
4 files changed, 15 insertions, 5 deletions
diff --git a/sql/log.cc b/sql/log.cc index bcd99326501..460910fcee8 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -1450,7 +1450,8 @@ COLLATION_CONNECTION=%u,COLLATION_DATABASE=%u,COLLATION_SERVER=%u", if (flush_io_cache(file) || sync_binlog(file)) goto err; - if (opt_using_transactions && !my_b_tell(&thd->transaction.trans_log)) + if (opt_using_transactions && + !(thd->options & (OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN))) { /* LOAD DATA INFILE in AUTOCOMMIT=1 mode writes to the binlog @@ -1598,6 +1599,14 @@ bool MYSQL_LOG::write(THD *thd, IO_CACHE *cache, bool commit_or_rollback) { Query_log_event qinfo(thd, "BEGIN", 5, TRUE); /* + Imagine this is rollback due to net timeout, after all statements of + the transaction succeeded. Then we want a zero-error code in BEGIN. + In other words, if there was a really serious error code it's already + in the statement's events. + This is safer than thd->clear_error() against kills at shutdown. + */ + qinfo.error_code= 0; + /* Now this Query_log_event has artificial log_pos 0. It must be adjusted to reflect the real position in the log. Not doing it would confuse the slave: it would prevent this one from knowing where he is in the @@ -1630,6 +1639,7 @@ bool MYSQL_LOG::write(THD *thd, IO_CACHE *cache, bool commit_or_rollback) commit_or_rollback ? "COMMIT" : "ROLLBACK", commit_or_rollback ? 6 : 8, TRUE); + qinfo.error_code= 0; qinfo.set_log_pos(this); if (qinfo.write(&log_file) || flush_io_cache(&log_file) || sync_binlog(&log_file)) diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 5622ac50a7b..cde54242944 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -4242,7 +4242,7 @@ Disable with --skip-innodb (will save memory).", "Percentage of dirty pages allowed in bufferpool.", (gptr*) &srv_max_buf_pool_modified_pct, (gptr*) &srv_max_buf_pool_modified_pct, 0, GET_ULONG, REQUIRED_ARG, 90, 0, 100, 0, 0, 0}, {"innodb_max_purge_lag", OPT_INNODB_MAX_PURGE_LAG, - "", + "Desired maximum length of the purge queue (0 = no limit)", (gptr*) &srv_max_purge_lag, (gptr*) &srv_max_purge_lag, 0, GET_LONG, REQUIRED_ARG, 0, 0, ~0L, 0, 1L, 0}, @@ -4251,7 +4251,7 @@ Disable with --skip-innodb (will save memory).", (gptr*) &innobase_create_status_file, (gptr*) &innobase_create_status_file, 0, GET_BOOL, OPT_ARG, 0, 0, 0, 0, 0, 0}, {"innodb_table_locks", OPT_INNODB_TABLE_LOCKS, - "If Innodb should enforce LOCK TABLE", + "Enable InnoDB locking in LOCK TABLES", (gptr*) &global_system_variables.innodb_table_locks, (gptr*) &global_system_variables.innodb_table_locks, 0, GET_BOOL, OPT_ARG, 1, 0, 0, 0, 0, 0}, diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 98dde1071c3..9067d01a06d 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -1685,7 +1685,7 @@ static int replace_db_table(TABLE *table, const char *db, goto table_error; /* purecov: deadcode */ } } - else if ((error=table->file->write_row(table->record[0]))) + else if (rights && (error=table->file->write_row(table->record[0]))) { if (error && error != HA_ERR_FOUND_DUPP_KEY) /* purecov: inspected */ goto table_error; /* purecov: deadcode */ @@ -1695,6 +1695,7 @@ static int replace_db_table(TABLE *table, const char *db, if (old_row_exists) acl_update_db(combo.user.str,combo.host.str,db,rights); else + if (rights) acl_insert_db(combo.user.str,combo.host.str,db,rights); DBUG_RETURN(0); diff --git a/sql/sql_table.cc b/sql/sql_table.cc index c69235a5647..3a242dc6547 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -1418,7 +1418,6 @@ TABLE *create_table_from_items(THD *thd, HA_CREATE_INFO *create_info, } table->file->extra(HA_EXTRA_WRITE_CACHE); DBUG_RETURN(table); - /* Note that leaving the function resets binlogging properties */ } |