List:Commits« Previous MessageNext Message »
From:Luís Soares Date:February 15 2011 5:49pm
Subject:Re: bzr commit into mysql-5.5-bugteam branch (sven.sandberg:3139)
WL#5670
View as plain text  
Hi Sven,

   Nice Work.
   Please find my review comments below.

STATUS
------

   Not approved.

REQUIRED CHANGES
----------------

   RC1. There seems to be a dangling function declaration in
        sql/repl_failsafe.h:

        bool show_new_master(THD* thd);

        Please remove this.

   RC2. Please, update comments in the source code that refer to show
        new master instruction. I can only find one place (sql_lex.h):

  271 /**
  272   Structure to hold parameters for CHANGE MASTER or START/STOP SLAVE
  273   or SHOW NEW MASTER.
  274
  275   Remark: this should not be confused with Master_info (and perhaps
  276   would better be renamed to st_lex_replication_info).  Some fields,
  277   e.g., delay, are saved in Relay_log_info, not in Master_info.
  278 */
  279 typedef struct st_lex_master_info


    RC3. Please, fix failing test cases:

         - main.signal_code
         - main.sp-code

         Details at:
         http://fimafeng11.norway.sun.com:8080/job/mysql-5.5/27/consoleText


REQUESTS
--------
  n/a

SUGGESTIONS
-----------
  n/a

DETAILS
-------
  n/a


On 11/29/2010 11:04 AM, Sven Sandberg wrote:
> #At file:///home/sven/bzr/w5670-show_new_master/5.5-bugteam/ based on
> revid:tor.didriksen@stripped
>
>   3139 Sven Sandberg	2010-11-29
>        WL#5670: Proposal: Remove SHOW NEW MASTER statement
>        Removes SHOW NEW MASTER statement and all related code.
>        Also removes the unused function update_slave_list from repl_failsafe.cc.
>       @ sql/mysqld.cc
>          Remove SQLCOM_SHOW_NEW_MASTER.
>       @ sql/repl_failsafe.cc
>          Remove show_new_master, which was only used by the removed SHOW NEW MASTER
> statement.
>          Remove translate_master, which was only used by show_new_master.
>          Remove find_slave_event, which was only used by translate_master.
>          Remove find_target_pos, which was only used by translate_master.
>          Remove cmp_master_pos, which was only used by translate_master.
>          Remove update_slave_list, which was not used at all.
>       @ sql/repl_failsafe.h
>          Removed update_slave_list
>       @ sql/sp_head.cc
>          Removed SQLCOM_SHOW_NEW_MASTER
>       @ sql/sql_lex.h
>          Removed SQLCOM_SHOW_NEW_MASTER
>       @ sql/sql_parse.cc
>          Removed SQLCOM_SHOW_NEW_MASTER
>       @ sql/sql_repl.cc
>          Removed cmp_master_pos(char*,ulonglong,char*,ulonglong), which was
>          only used by cmp_master_pos*Slave_log_event* sev, LEX_MASTER_INFO* mi) in
> repl_failsafe.cc,
>          which has been removed.
>       @ sql/sql_repl.h
>          removed cmp_master_pos
>       @ sql/sql_yacc.yy
>          removed syntax SHOW NEW MASTER.
>
>      modified:
>        sql/mysqld.cc
>        sql/repl_failsafe.cc
>        sql/repl_failsafe.h
>        sql/sp_head.cc
>        sql/sql_lex.h
>        sql/sql_parse.cc
>        sql/sql_repl.cc
>        sql/sql_repl.h
>        sql/sql_yacc.yy
> === modified file 'sql/mysqld.cc'
> --- a/sql/mysqld.cc	2010-11-21 13:32:48 +0000
> +++ b/sql/mysqld.cc	2010-11-29 11:04:16 +0000
> @@ -3018,7 +3018,6 @@ SHOW_VAR com_status_vars[]= {
>     {"show_grants",          (char*) offsetof(STATUS_VAR, com_stat[(uint)
> SQLCOM_SHOW_GRANTS]), SHOW_LONG_STATUS},
>     {"show_keys",            (char*) offsetof(STATUS_VAR, com_stat[(uint)
> SQLCOM_SHOW_KEYS]), SHOW_LONG_STATUS},
>     {"show_master_status",   (char*) offsetof(STATUS_VAR, com_stat[(uint)
> SQLCOM_SHOW_MASTER_STAT]), SHOW_LONG_STATUS},
> -  {"show_new_master",      (char*) offsetof(STATUS_VAR, com_stat[(uint)
> SQLCOM_SHOW_NEW_MASTER]), SHOW_LONG_STATUS},
>     {"show_open_tables",     (char*) offsetof(STATUS_VAR, com_stat[(uint)
> SQLCOM_SHOW_OPEN_TABLES]), SHOW_LONG_STATUS},
>     {"show_plugins",         (char*) offsetof(STATUS_VAR, com_stat[(uint)
> SQLCOM_SHOW_PLUGINS]), SHOW_LONG_STATUS},
>     {"show_privileges",      (char*) offsetof(STATUS_VAR, com_stat[(uint)
> SQLCOM_SHOW_PRIVILEGES]), SHOW_LONG_STATUS},
>
> === modified file 'sql/repl_failsafe.cc'
> --- a/sql/repl_failsafe.cc	2010-10-11 14:50:14 +0000
> +++ b/sql/repl_failsafe.cc	2010-11-29 11:04:16 +0000
> @@ -56,10 +56,6 @@ const char* rpl_status_type[]=
>     "RECOVERY_CAPTAIN","NULL",NullS
>   };
>
> -static Slave_log_event* find_slave_event(IO_CACHE* log,
> -					 const char* log_file_name,
> -					 char* errmsg);
> -
>   /*
>     All of the functions defined in this file which are not used (the ones to
>     handle failsafe) are not used; their code has not been updated for more than
> @@ -91,13 +87,6 @@ void change_rpl_status(ulong from_status
>   }\
>
>
> -static inline int cmp_master_pos(Slave_log_event* sev, LEX_MASTER_INFO* mi)
> -{
> -  return cmp_master_pos(sev->master_log, sev->master_pos,
> mi->log_file_name,
> -			mi->pos);
> -}
> -
> -
>   void unregister_slave(THD* thd, bool only_mine, bool need_mutex)
>   {
>     if (thd->server_id)
> @@ -228,361 +217,6 @@ void end_slave_list()
>     }
>   }
>
> -static int find_target_pos(LEX_MASTER_INFO *mi, IO_CACHE *log, char *errmsg)
> -{
> -  my_off_t log_pos =	    (my_off_t) mi->pos;
> -  uint32 target_server_id = mi->server_id;
> -
> -  for (;;)
> -  {
> -    Log_event* ev;
> -    if (!(ev= Log_event::read_log_event(log, (mysql_mutex_t*) 0, 0)))
> -    {
> -      if (log->error>  0)
> -	strmov(errmsg, "Binary log truncated in the middle of event");
> -      else if (log->error<  0)
> -	strmov(errmsg, "I/O error reading binary log");
> -      else
> -	strmov(errmsg, "Could not find target event in the binary log");
> -      return 1;
> -    }
> -
> -    if (ev->log_pos>= log_pos&&  ev->server_id ==
> target_server_id)
> -    {
> -      delete ev;
> -      mi->pos = my_b_tell(log);
> -      return 0;
> -    }
> -    delete ev;
> -  }
> -  /* Impossible */
> -}
> -
> -/**
> -  @details
> -  Before 4.0.15 we had a member of THD called log_pos, it was meant for
> -  failsafe replication code in repl_failsafe.cc which is disabled until
> -  it is reworked. Event's log_pos used to be preserved through
> -  log-slave-updates to make code in repl_failsafe.cc work (this
> -  function, SHOW NEW MASTER); but on the other side it caused unexpected
> -  values in Exec_Master_Log_Pos in A->B->C replication setup,
> -  synchronization problems in master_pos_wait(), ... So we
> -  (Dmitri&  Guilhem) removed it.
> -
> -  So for now this function is broken.
> -*/
> -
> -int translate_master(THD* thd, LEX_MASTER_INFO* mi, char* errmsg)
> -{
> -  LOG_INFO linfo;
> -  char last_log_name[FN_REFLEN];
> -  IO_CACHE log;
> -  File file = -1, last_file = -1;
> -  mysql_mutex_t *log_lock;
> -  const char* errmsg_p;
> -  Slave_log_event* sev = 0;
> -  my_off_t last_pos = 0;
> -  int error = 1;
> -  int cmp_res;
> -  LINT_INIT(cmp_res);
> -  DBUG_ENTER("translate_master");
> -
> -  if (!mysql_bin_log.is_open())
> -  {
> -    strmov(errmsg,"Binary log is not open");
> -    DBUG_RETURN(1);
> -  }
> -
> -  if (!server_id_supplied)
> -  {
> -    strmov(errmsg, "Misconfigured master - server id was not set");
> -    DBUG_RETURN(1);
> -  }
> -
> -  if (mysql_bin_log.find_log_pos(&linfo, NullS, 1))
> -  {
> -    strmov(errmsg,"Could not find first log");
> -    DBUG_RETURN(1);
> -  }
> -  thd->current_linfo =&linfo;
> -
> -  bzero((char*)&log,sizeof(log));
> -  log_lock = mysql_bin_log.get_log_lock();
> -  mysql_mutex_lock(log_lock);
> -
> -  for (;;)
> -  {
> -    if ((file=open_binlog(&log, linfo.log_file_name,&errmsg_p))<  0)
> -    {
> -      strmov(errmsg, errmsg_p);
> -      goto err;
> -    }
> -
> -    if (!(sev = find_slave_event(&log, linfo.log_file_name, errmsg)))
> -      goto err;
> -
> -    cmp_res = cmp_master_pos(sev, mi);
> -    delete sev;
> -
> -    if (!cmp_res)
> -    {
> -      /* Copy basename */
> -      fn_format(mi->log_file_name, linfo.log_file_name, "","",1);
> -      mi->pos = my_b_tell(&log);
> -      goto mi_inited;
> -    }
> -    else if (cmp_res>  0)
> -    {
> -      if (!last_pos)
> -      {
> -	strmov(errmsg,
> -	       "Slave event in first log points past the target position");
> -	goto err;
> -      }
> -      end_io_cache(&log);
> -      mysql_file_close(file, MYF(MY_WME));
> -      if (init_io_cache(&log, (file = last_file), IO_SIZE, READ_CACHE, 0, 0,
> -			MYF(MY_WME)))
> -      {
> -	errmsg[0] = 0;
> -	goto err;
> -      }
> -      break;
> -    }
> -
> -    strmov(last_log_name, linfo.log_file_name);
> -    last_pos = my_b_tell(&log);
> -
> -    switch (mysql_bin_log.find_next_log(&linfo, 1)) {
> -    case LOG_INFO_EOF:
> -      if (last_file>= 0)
> -       mysql_file_close(last_file, MYF(MY_WME));
> -      last_file = -1;
> -      goto found_log;
> -    case 0:
> -      break;
> -    default:
> -      strmov(errmsg, "Error reading log index");
> -      goto err;
> -    }
> -
> -    end_io_cache(&log);
> -    if (last_file>= 0)
> -      mysql_file_close(last_file, MYF(MY_WME));
> -    last_file = file;
> -  }
> -
> -found_log:
> -  my_b_seek(&log, last_pos);
> -  if (find_target_pos(mi,&log,errmsg))
> -    goto err;
> -  fn_format(mi->log_file_name, last_log_name, "","",1);  /* Copy basename */
> -
> -mi_inited:
> -  error = 0;
> -err:
> -  mysql_mutex_unlock(log_lock);
> -  end_io_cache(&log);
> -  mysql_mutex_lock(&LOCK_thread_count);
> -  thd->current_linfo = 0;
> -  mysql_mutex_unlock(&LOCK_thread_count);
> -  if (file>= 0)
> -    mysql_file_close(file, MYF(MY_WME));
> -  if (last_file>= 0&&  last_file != file)
> -    mysql_file_close(last_file, MYF(MY_WME));
> -
> -  DBUG_RETURN(error);
> -}
> -
> -
> -/**
> -  Caller must delete result when done.
> -*/
> -
> -static Slave_log_event* find_slave_event(IO_CACHE* log,
> -					 const char* log_file_name,
> -					 char* errmsg)
> -{
> -  Log_event* ev;
> -  int i;
> -  bool slave_event_found = 0;
> -  LINT_INIT(ev);
> -
> -  for (i = 0; i<  2; i++)
> -  {
> -    if (!(ev= Log_event::read_log_event(log, (mysql_mutex_t*)0, 0)))
> -    {
> -      my_snprintf(errmsg, SLAVE_ERRMSG_SIZE,
> -		  "Error reading event in log '%s'",
> -		  (char*)log_file_name);
> -      return 0;
> -    }
> -    if (ev->get_type_code() == SLAVE_EVENT)
> -    {
> -      slave_event_found = 1;
> -      break;
> -    }
> -    delete ev;
> -  }
> -  if (!slave_event_found)
> -  {
> -    my_snprintf(errmsg, SLAVE_ERRMSG_SIZE,
> -		"Could not find slave event in log '%s'",
> -		(char*)log_file_name);
> -    return 0;
> -  }
> -
> -  return (Slave_log_event*)ev;
> -}
> -
> -/**
> -  This function is broken now.
> -
> -  @seealso translate_master()
> -*/
> -
> -bool show_new_master(THD* thd)
> -{
> -  Protocol *protocol= thd->protocol;
> -  DBUG_ENTER("show_new_master");
> -  List<Item>  field_list;
> -  char errmsg[SLAVE_ERRMSG_SIZE];
> -  LEX_MASTER_INFO* lex_mi=&thd->lex->mi;
> -
> -  errmsg[0]=0;					// Safety
> -  if (translate_master(thd, lex_mi, errmsg))
> -  {
> -    if (errmsg[0])
> -      my_error(ER_ERROR_WHEN_EXECUTING_COMMAND, MYF(0),
> -               "SHOW NEW MASTER", errmsg);
> -    DBUG_RETURN(TRUE);
> -  }
> -  else
> -  {
> -    field_list.push_back(new Item_empty_string("Log_name", 20));
> -    field_list.push_back(new Item_return_int("Log_pos", 10,
> -					     MYSQL_TYPE_LONGLONG));
> -    if (protocol->send_result_set_metadata(&field_list,
> -                              Protocol::SEND_NUM_ROWS | Protocol::SEND_EOF))
> -      DBUG_RETURN(TRUE);
> -    protocol->prepare_for_resend();
> -    protocol->store(lex_mi->log_file_name,&my_charset_bin);
> -    protocol->store((ulonglong) lex_mi->pos);
> -    if (protocol->write())
> -      DBUG_RETURN(TRUE);
> -    my_eof(thd);
> -    DBUG_RETURN(FALSE);
> -  }
> -}
> -
> -/**
> -  Asks the master for the list of its other connected slaves.
> -
> -  This is for failsafe replication:
> -  in order for failsafe replication to work, the servers involved in
> -  replication must know of each other. We accomplish this by having each
> -  slave report to the master how to reach it, and on connection, each
> -  slave receives information about where the other slaves are.
> -
> -  @param mysql           pre-existing connection to the master
> -  @param mi              master info
> -
> -  @note
> -    mi is used only to give detailed error messages which include the
> -    hostname/port of the master, the username used by the slave to connect to
> -    the master.
> -    If the user used by the slave to connect to the master does not have the
> -    REPLICATION SLAVE privilege, it will pop in this function because
> -    SHOW SLAVE HOSTS will fail on the master.
> -
> -  @retval
> -    1           error
> -  @retval
> -    0           success
> -*/
> -
> -int update_slave_list(MYSQL* mysql, Master_info* mi)
> -{
> -  MYSQL_RES* res=0;
> -  MYSQL_ROW row;
> -  const char* error=0;
> -  bool have_auth_info;
> -  int port_ind;
> -  DBUG_ENTER("update_slave_list");
> -
> -  if (mysql_real_query(mysql, STRING_WITH_LEN("SHOW SLAVE HOSTS")) ||
> -      !(res = mysql_store_result(mysql)))
> -  {
> -    error= mysql_error(mysql);
> -    goto err;
> -  }
> -
> -  switch (mysql_num_fields(res)) {
> -  case 5:
> -    have_auth_info = 0;
> -    port_ind=2;
> -    break;
> -  case 7:
> -    have_auth_info = 1;
> -    port_ind=4;
> -    break;
> -  default:
> -    error= "the master returned an invalid number of fields for SHOW SLAVE \
> -HOSTS";
> -    goto err;
> -  }
> -
> -  mysql_mutex_lock(&LOCK_slave_list);
> -
> -  while ((row= mysql_fetch_row(res)))
> -  {
> -    uint32 log_server_id;
> -    SLAVE_INFO* si, *old_si;
> -    log_server_id = atoi(row[0]);
> -    if ((old_si= (SLAVE_INFO*)my_hash_search(&slave_list,
> -                                             (uchar*)&log_server_id,4)))
> -      si = old_si;
> -    else
> -    {
> -      if (!(si = (SLAVE_INFO*)my_malloc(sizeof(SLAVE_INFO), MYF(MY_WME))))
> -      {
> -	error= "the slave is out of memory";
> -        mysql_mutex_unlock(&LOCK_slave_list);
> -	goto err;
> -      }
> -      si->server_id = log_server_id;
> -      if (my_hash_insert(&slave_list, (uchar*)si))
> -      {
> -        error= "the slave is out of memory";
> -        mysql_mutex_unlock(&LOCK_slave_list);
> -        goto err;
> -      }
> -    }
> -    strmake(si->host, row[1], sizeof(si->host)-1);
> -    si->port = atoi(row[port_ind]);
> -    si->rpl_recovery_rank = atoi(row[port_ind+1]);
> -    si->master_id = atoi(row[port_ind+2]);
> -    if (have_auth_info)
> -    {
> -      strmake(si->user, row[2], sizeof(si->user)-1);
> -      strmake(si->password, row[3], sizeof(si->password)-1);
> -    }
> -  }
> -  mysql_mutex_unlock(&LOCK_slave_list);
> -
> -err:
> -  if (res)
> -    mysql_free_result(res);
> -  if (error)
> -  {
> -    sql_print_error("While trying to obtain the list of slaves from the master "
> -                    "'%s:%d', user '%s' got the following error: '%s'",
> -                    mi->host, mi->port, mi->user, error);
> -    DBUG_RETURN(1);
> -  }
> -  DBUG_RETURN(0);
> -}
> -
>
>   /**
>     Execute a SHOW SLAVE HOSTS statement.
>
> === modified file 'sql/repl_failsafe.h'
> --- a/sql/repl_failsafe.h	2010-10-11 14:50:14 +0000
> +++ b/sql/repl_failsafe.h	2010-11-29 11:04:16 +0000
> @@ -36,7 +36,6 @@ extern const char* rpl_role_type[], *rpl
>   pthread_handler_t handle_failsafe_rpl(void *arg);
>   void change_rpl_status(ulong from_status, ulong to_status);
>   int find_recovery_captain(THD* thd, MYSQL* mysql);
> -int update_slave_list(MYSQL* mysql, Master_info* mi);
>
>   extern HASH slave_list;
>
>
> === modified file 'sql/sp_head.cc'
> --- a/sql/sp_head.cc	2010-11-18 15:01:58 +0000
> +++ b/sql/sp_head.cc	2010-11-29 11:04:16 +0000
> @@ -237,7 +237,6 @@ sp_get_flags_for_command(LEX *lex)
>     case SQLCOM_SHOW_EVENTS:
>     case SQLCOM_SHOW_KEYS:
>     case SQLCOM_SHOW_MASTER_STAT:
> -  case SQLCOM_SHOW_NEW_MASTER:
>     case SQLCOM_SHOW_OPEN_TABLES:
>     case SQLCOM_SHOW_PRIVILEGES:
>     case SQLCOM_SHOW_PROCESSLIST:
>
> === modified file 'sql/sql_lex.h'
> --- a/sql/sql_lex.h	2010-11-11 17:11:05 +0000
> +++ b/sql/sql_lex.h	2010-11-29 11:04:16 +0000
> @@ -162,7 +162,7 @@ enum enum_sql_command {
>     SQLCOM_SHOW_OPEN_TABLES,
>     SQLCOM_HA_OPEN, SQLCOM_HA_CLOSE, SQLCOM_HA_READ,
>     SQLCOM_SHOW_SLAVE_HOSTS, SQLCOM_DELETE_MULTI, SQLCOM_UPDATE_MULTI,
> -  SQLCOM_SHOW_BINLOG_EVENTS, SQLCOM_SHOW_NEW_MASTER, SQLCOM_DO,
> +  SQLCOM_SHOW_BINLOG_EVENTS, SQLCOM_DO,
>     SQLCOM_SHOW_WARNS, SQLCOM_EMPTY_QUERY, SQLCOM_SHOW_ERRORS,
>     SQLCOM_SHOW_STORAGE_ENGINES, SQLCOM_SHOW_PRIVILEGES,
>     SQLCOM_HELP, SQLCOM_CREATE_USER, SQLCOM_DROP_USER, SQLCOM_RENAME_USER,
>
> === modified file 'sql/sql_parse.cc'
> --- a/sql/sql_parse.cc	2010-11-18 15:01:58 +0000
> +++ b/sql/sql_parse.cc	2010-11-29 11:04:16 +0000
> @@ -316,7 +316,6 @@ void init_update_queries(void)
>     sql_command_flags[SQLCOM_SHOW_VARIABLES]=   CF_STATUS_COMMAND |
> CF_REEXECUTION_FRAGILE;
>     sql_command_flags[SQLCOM_SHOW_CHARSETS]=    CF_STATUS_COMMAND |
> CF_REEXECUTION_FRAGILE;
>     sql_command_flags[SQLCOM_SHOW_COLLATIONS]=  CF_STATUS_COMMAND |
> CF_REEXECUTION_FRAGILE;
> -  sql_command_flags[SQLCOM_SHOW_NEW_MASTER]=  CF_STATUS_COMMAND;
>     sql_command_flags[SQLCOM_SHOW_BINLOGS]=     CF_STATUS_COMMAND;
>     sql_command_flags[SQLCOM_SHOW_SLAVE_HOSTS]= CF_STATUS_COMMAND;
>     sql_command_flags[SQLCOM_SHOW_BINLOG_EVENTS]= CF_STATUS_COMMAND;
> @@ -2138,19 +2137,6 @@ case SQLCOM_PREPARE:
>   #endif
>       break;
>     }
> -  case SQLCOM_SHOW_NEW_MASTER:
> -  {
> -    if (check_global_access(thd, REPL_SLAVE_ACL))
> -      goto error;
> -    /* This query don't work now. See comment in repl_failsafe.cc */
> -#ifndef WORKING_NEW_MASTER
> -    my_error(ER_NOT_SUPPORTED_YET, MYF(0), "SHOW NEW MASTER");
> -    goto error;
> -#else
> -    res = show_new_master(thd);
> -    break;
> -#endif
> -  }
>
>   #ifdef HAVE_REPLICATION
>     case SQLCOM_SHOW_SLAVE_HOSTS:
>
> === modified file 'sql/sql_repl.cc'
> --- a/sql/sql_repl.cc	2010-09-06 17:18:44 +0000
> +++ b/sql/sql_repl.cc	2010-11-29 11:04:16 +0000
> @@ -1664,23 +1664,6 @@ int reset_master(THD* thd)
>     return 0;
>   }
>
> -int cmp_master_pos(const char* log_file_name1, ulonglong log_pos1,
> -		   const char* log_file_name2, ulonglong log_pos2)
> -{
> -  int res;
> -  size_t log_file_name1_len=  strlen(log_file_name1);
> -  size_t log_file_name2_len=  strlen(log_file_name2);
> -
> -  //  We assume that both log names match up to '.'
> -  if (log_file_name1_len == log_file_name2_len)
> -  {
> -    if ((res= strcmp(log_file_name1, log_file_name2)))
> -      return res;
> -    return (log_pos1<  log_pos2) ? -1 : (log_pos1 == log_pos2) ? 0 : 1;
> -  }
> -  return ((log_file_name1_len<  log_file_name2_len) ? -1 : 1);
> -}
> -
>
>   /**
>     Execute a SHOW BINLOG EVENTS statement.
>
> === modified file 'sql/sql_repl.h'
> --- a/sql/sql_repl.h	2010-03-31 14:05:33 +0000
> +++ b/sql/sql_repl.h	2010-11-29 11:04:16 +0000
> @@ -43,8 +43,6 @@ int start_slave(THD* thd, Master_info* m
>   int stop_slave(THD* thd, Master_info* mi, bool net_report);
>   bool change_master(THD* thd, Master_info* mi);
>   bool mysql_show_binlog_events(THD* thd);
> -int cmp_master_pos(const char* log_file_name1, ulonglong log_pos1,
> -		   const char* log_file_name2, ulonglong log_pos2);
>   int reset_slave(THD *thd, Master_info* mi);
>   int reset_master(THD* thd);
>   bool purge_master_logs(THD* thd, const char* to_log);
>
> === modified file 'sql/sql_yacc.yy'
> --- a/sql/sql_yacc.yy	2010-11-11 17:11:05 +0000
> +++ b/sql/sql_yacc.yy	2010-11-29 11:04:16 +0000
> @@ -10921,19 +10921,6 @@ show_param:
>               if (prepare_schema_table(YYTHD, lex, $4, SCH_COLUMNS))
>                 MYSQL_YYABORT;
>             }
> -        | NEW_SYM MASTER_SYM FOR_SYM SLAVE
> -          WITH MASTER_LOG_FILE_SYM EQ
> -          TEXT_STRING_sys /* $8 */
> -          AND_SYM MASTER_LOG_POS_SYM EQ
> -          ulonglong_num /* $12 */
> -          AND_SYM MASTER_SERVER_ID_SYM EQ
> -          ulong_num /* $16 */
> -          {
> -            Lex->sql_command = SQLCOM_SHOW_NEW_MASTER;
> -            Lex->mi.log_file_name = $8.str;
> -            Lex->mi.pos = $12;
> -            Lex->mi.server_id = $16;
> -          }
>           | master_or_binary LOGS_SYM
>             {
>               Lex->sql_command = SQLCOM_SHOW_BINLOGS;
>
>
>
>
>

Thread
bzr commit into mysql-5.5-bugteam branch (sven.sandberg:3139) WL#5670Sven Sandberg29 Nov
  • Re: bzr commit into mysql-5.5-bugteam branch (sven.sandberg:3139)WL#5670He Zhenxing15 Feb
  • Re: bzr commit into mysql-5.5-bugteam branch (sven.sandberg:3139)WL#5670Luís Soares15 Feb
    • Re: bzr commit into mysql-5.5-bugteam branch (sven.sandberg:3139)WL#5670Sven Sandberg16 Feb