diff options
author | unknown <sasha@mysql.sashanet.com> | 2001-05-31 17:25:41 -0600 |
---|---|---|
committer | unknown <sasha@mysql.sashanet.com> | 2001-05-31 17:25:41 -0600 |
commit | 980262092adb7816d95d983d19ba4dd06c05a1dc (patch) | |
tree | 114652f73642b86bdd11c291b0254bdc27fae742 | |
parent | a2458dd71eaf7d49562f4f719fcf034014ef3652 (diff) | |
parent | a28d5ad9d0ecf2d8421a779009f51e3bf6f321e6 (diff) | |
download | mariadb-git-980262092adb7816d95d983d19ba4dd06c05a1dc.tar.gz |
Merge mysql.sashanet.com:/home/sasha/src/bk/mysql
into mysql.sashanet.com:/home/sasha/src/bk/mysql-4.0
BitKeeper/etc/logging_ok:
auto-union
sql/slave.cc:
Auto merged
sql/sql_repl.cc:
Auto merged
-rw-r--r-- | BitKeeper/etc/logging_ok | 3 | ||||
-rw-r--r-- | innobase/include/sync0sync.ic | 24 | ||||
-rw-r--r-- | sql/slave.cc | 7 | ||||
-rw-r--r-- | sql/sql_repl.cc | 6 | ||||
-rw-r--r-- | sql/unireg.h | 3 |
5 files changed, 33 insertions, 10 deletions
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index ab0a87859ba..709fb003c88 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -1,6 +1,7 @@ +heikki@donna.mysql.fi jani@janikt.pp.saunalahti.fi monty@hundin.mysql.fi +monty@work.mysql.com mwagner@evoq.mwagner.org sasha@mysql.sashanet.com tonu@hundin.mysql.fi -monty@work.mysql.com diff --git a/innobase/include/sync0sync.ic b/innobase/include/sync0sync.ic index 5a872c6b093..b58d024bf6c 100644 --- a/innobase/include/sync0sync.ic +++ b/innobase/include/sync0sync.ic @@ -94,10 +94,12 @@ mutex_test_and_set( /* In assembly we use the so-called AT & T syntax where the order of operands is inverted compared to the ordinary Intel - syntax. The 'l' after the mnemonics denotes a 32-bit operation. */ + syntax. The 'l' after the mnemonics denotes a 32-bit operation. + The line after the code tells which values come out of the asm + code, and the second line tells the input to the asm code. */ asm volatile("movl $1, %%eax; xchgl (%%ecx), %%eax" : - "=eax" (res): + "=eax" (res), "=m" (*lw) : "ecx" (lw)); return(res); #else @@ -132,12 +134,26 @@ mutex_reset_lock_word( __asm MOV EDX, 0 __asm MOV ECX, lw __asm XCHG EDX, DWORD PTR [ECX] +#elif defined(__GNUC__) && defined(UNIV_INTEL_X86) + ulint* lw; + + lw = &(mutex->lock_word); + + /* In assembly we use the so-called AT & T syntax where + the order of operands is inverted compared to the ordinary Intel + syntax. The 'l' after the mnemonics denotes a 32-bit operation. */ + + asm volatile("movl $0, %%eax; xchgl (%%ecx), %%eax" : + "=m" (*lw) : + "ecx" (lw) : + "eax"); /* gcc does not seem to understand + that our asm code resets eax: tell it + explicitly that after the third ':' */ #else mutex->lock_word = 0; -#if !(defined(__GNUC__) && defined(UNIV_INTEL_X86)) + os_fast_mutex_unlock(&(mutex->os_fast_mutex)); #endif -#endif } /********************************************************************** diff --git a/sql/slave.cc b/sql/slave.cc index 5b5439353c7..28e083480a1 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -970,9 +970,10 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len) (actual_error = thd->net.last_errno) && expected_error) { const char* errmsg = "Slave: did not get the expected error\ - running query from master - expected: '%s', got '%s'"; - sql_print_error(errmsg, ER(expected_error), - actual_error ? thd->net.last_error:"no error" + running query from master - expected: '%s'(%d), got '%s'(%d)"; + sql_print_error(errmsg, ER(expected_error), expected_error, + actual_error ? thd->net.last_error:"no error", + actual_error ); thd->query_error = 1; } diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index 74a3549149b..fe0417057b6 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -764,14 +764,18 @@ int change_master(THD* thd) // if we change host or port, we must reset the postion glob_mi.log_file_name[0] = 0; glob_mi.pos = 4; // skip magic number + glob_mi.pending = 0; } if(lex_mi->log_file_name) strmake(glob_mi.log_file_name, lex_mi->log_file_name, sizeof(glob_mi.log_file_name)); if(lex_mi->pos) + { glob_mi.pos = lex_mi->pos; - + glob_mi.pending = 0; + } + if(lex_mi->host) { strmake(glob_mi.host, lex_mi->host, sizeof(glob_mi.host)); diff --git a/sql/unireg.h b/sql/unireg.h index 7ad3bac2eab..87529dd1f69 100644 --- a/sql/unireg.h +++ b/sql/unireg.h @@ -37,7 +37,8 @@ #define SHAREDIR "share/" #endif -#define ER(X) errmesg[(X)-1000] +#define ER(X) ((X) >= 1000 && (X) < ER_ERROR_MESSAGES + 1000) ? \ + errmesg[(X)-1000] : "Invalid error code" #define ERRMAPP 1 /* Errormap f|r my_error */ #define LIBLEN FN_REFLEN-FN_LEN /* Max l{ngd p} dev */ |