Commit 6a87c20b authored by unknown's avatar unknown

Merge paul@work.mysql.com:/home/bk/mysql

into central.snake.net:/usr/users/paul/mysql


Docs/manual.texi:
  Auto merged
parents 4dedf61c 575cff43
...@@ -43,7 +43,10 @@ END-INFO-DIR-ENTRY ...@@ -43,7 +43,10 @@ END-INFO-DIR-ENTRY
@sp 10 @sp 10
@center @titlefont{@strong{MySQL} Reference Manual} @center @titlefont{@strong{MySQL} Reference Manual}
@sp 10 @sp 10
@center Copyright @copyright{} 1997, 1998, 1999, 2000 TcX AB, Detron HB and MySQL Finland AB @center Copyright @copyright{} 1997-2000 TcX AB, Detron HB and MySQL Finland AB
@c blank page after title page makes page 1 be a page front.
@c also makes the back of the title page blank.
@page
@end titlepage @end titlepage
@c This should be added. The HTML conversion also needs a MySQL version @c This should be added. The HTML conversion also needs a MySQL version
...@@ -28413,18 +28416,18 @@ aren't specified. Another way to around this bug is to upgrade to ...@@ -28413,18 +28416,18 @@ aren't specified. Another way to around this bug is to upgrade to
MyODBC 2.50.33 and @strong{MySQL} 3.23.x, which together provides a MyODBC 2.50.33 and @strong{MySQL} 3.23.x, which together provides a
workaround for this bug! workaround for this bug!
@item @item
Set the `Return matching rows' MyODBC option field when connecting to Set the ``Return matching rows'' MyODBC option field when connecting to
@strong{MySQL}. @strong{MySQL}.
@item @item
You should have a primary key in the table; If not, new or updated rows You should have a primary key in the table; If not, new or updated rows
may chow up as @code{#Deleted#}. may show up as @code{#Deleted#}.
@item @item
You should have a timestamp in all tables you want to be able to update. You should have a timestamp in all tables you want to be able to update.
For maximum portability @code{TIMESTAMP(14)} or simple @code{TIMESTAMP} For maximum portability @code{TIMESTAMP(14)} or simple @code{TIMESTAMP}
is recommended instead of other @code{TIMESTAMP(X)} variations. is recommended instead of other @code{TIMESTAMP(X)} variations.
@item @item
Only use double float fields. Access fails when comparing with single floats. Only use double float fields. Access fails when comparing with single floats.
The symptom usually is that new or updated rows may chow up as @code{#Deleted#} The symptom usually is that new or updated rows may show up as @code{#Deleted#}
or that you can't find or update rows. or that you can't find or update rows.
@item @item
If you still get the error @code{Another user has changed your data} after If you still get the error @code{Another user has changed your data} after
...@@ -40,7 +40,7 @@ extern bool opt_log_slave_updates ; ...@@ -40,7 +40,7 @@ extern bool opt_log_slave_updates ;
static inline bool slave_killed(THD* thd); static inline bool slave_killed(THD* thd);
static int init_slave_thread(THD* thd); static int init_slave_thread(THD* thd);
static int init_master_info(MASTER_INFO* mi); int init_master_info(MASTER_INFO* mi);
static void safe_connect(THD* thd, MYSQL* mysql, MASTER_INFO* mi); static void safe_connect(THD* thd, MYSQL* mysql, MASTER_INFO* mi);
static void safe_reconnect(THD* thd, MYSQL* mysql, MASTER_INFO* mi); static void safe_reconnect(THD* thd, MYSQL* mysql, MASTER_INFO* mi);
static int safe_sleep(THD* thd, int sec); static int safe_sleep(THD* thd, int sec);
...@@ -249,7 +249,7 @@ int fetch_nx_table(THD* thd, MASTER_INFO* mi) ...@@ -249,7 +249,7 @@ int fetch_nx_table(THD* thd, MASTER_INFO* mi)
return error; return error;
} }
static int init_master_info(MASTER_INFO* mi) int init_master_info(MASTER_INFO* mi)
{ {
FILE* file; FILE* file;
MY_STAT stat_area; MY_STAT stat_area;
......
...@@ -52,6 +52,7 @@ static int change_master(THD* thd); ...@@ -52,6 +52,7 @@ static int change_master(THD* thd);
static void reset_slave(); static void reset_slave();
static void reset_master(); static void reset_master();
extern int init_master_info(MASTER_INFO* mi);
static const char *any_db="*any*"; // Special symbol for check_access static const char *any_db="*any*"; // Special symbol for check_access
...@@ -2462,7 +2463,7 @@ static int start_slave(THD* thd , bool net_report) ...@@ -2462,7 +2463,7 @@ static int start_slave(THD* thd , bool net_report)
return 1; return 1;
pthread_mutex_lock(&LOCK_slave); pthread_mutex_lock(&LOCK_slave);
if(!slave_running) if(!slave_running)
if(master_host) if(glob_mi.inited && glob_mi.host)
{ {
pthread_t hThread; pthread_t hThread;
if(pthread_create(&hThread, &connection_attrib, handle_slave, 0)) if(pthread_create(&hThread, &connection_attrib, handle_slave, 0))
...@@ -2471,7 +2472,7 @@ static int start_slave(THD* thd , bool net_report) ...@@ -2471,7 +2472,7 @@ static int start_slave(THD* thd , bool net_report)
} }
} }
else else
err = "Master host not set"; err = "Master host not set or master info not initialized";
else else
err = "Slave already running"; err = "Slave already running";
...@@ -2557,6 +2558,9 @@ static int change_master(THD* thd) ...@@ -2557,6 +2558,9 @@ static int change_master(THD* thd)
thd->proc_info = "changing master"; thd->proc_info = "changing master";
LEX_MASTER_INFO* lex_mi = &thd->lex.mi; LEX_MASTER_INFO* lex_mi = &thd->lex.mi;
if(!glob_mi.inited)
init_master_info(&glob_mi);
pthread_mutex_lock(&glob_mi.lock); pthread_mutex_lock(&glob_mi.lock);
if((lex_mi->host || lex_mi->port) && !lex_mi->log_file_name && !lex_mi->pos) if((lex_mi->host || lex_mi->port) && !lex_mi->log_file_name && !lex_mi->pos)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment