summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <sasha@mysql.sashanet.com>2001-05-31 17:25:41 -0600
committerunknown <sasha@mysql.sashanet.com>2001-05-31 17:25:41 -0600
commit980262092adb7816d95d983d19ba4dd06c05a1dc (patch)
tree114652f73642b86bdd11c291b0254bdc27fae742
parenta2458dd71eaf7d49562f4f719fcf034014ef3652 (diff)
parenta28d5ad9d0ecf2d8421a779009f51e3bf6f321e6 (diff)
downloadmariadb-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_ok3
-rw-r--r--innobase/include/sync0sync.ic24
-rw-r--r--sql/slave.cc7
-rw-r--r--sql/sql_repl.cc6
-rw-r--r--sql/unireg.h3
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 */