Commit caf5b25d authored by sasha@mysql.sashanet.com's avatar sasha@mysql.sashanet.com
Browse files

Merge mysql.sashanet.com:/home/sasha/src/bk/mysql

into mysql.sashanet.com:/home/sasha/src/bk/mysql-4.0
parents f515a3ae bd109ae9
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
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
+20 −4
Original line number Diff line number Diff line
@@ -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
}

/**********************************************************************
+4 −3
Original line number Diff line number Diff line
@@ -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;
	      }
+5 −1
Original line number Diff line number Diff line
@@ -764,13 +764,17 @@ 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)
    {
+2 −1
Original line number Diff line number Diff line
@@ -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 */