Commit 15436eca authored by unknown's avatar unknown
Browse files

Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime

into  jabberwock.site:/home/dlenev/mysql-5.1-bg18437


sql/log_event.cc:
  Auto merged
parents 78942270 60403d32
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ class Named_value

inline char *Named_value::alloc_str(const LEX_STRING *str)
{
  return my_strndup((const byte *) str->str, str->length, MYF(0));
  return my_strndup(str->str, str->length, MYF(0));
}

inline char *Named_value::alloc_str(const char *str)
+1 −1
Original line number Diff line number Diff line
@@ -5839,7 +5839,7 @@ int Table_map_log_event::exec_event(st_relay_log_info *rli)
  if (memory == NULL)
    DBUG_RETURN(HA_ERR_OUT_OF_MEM);

  uint32 dummy_len;
  uint dummy_len;
  bzero(table_list, sizeof(*table_list));
  table_list->db = db_mem;
  table_list->alias= table_list->table_name = tname_mem;
+1 −1
Original line number Diff line number Diff line
@@ -513,7 +513,7 @@ Rpl_filter::get_wild_ignore_table(String* str)


const char*
Rpl_filter::get_rewrite_db(const char* db, uint32 *new_len)
Rpl_filter::get_rewrite_db(const char* db, uint *new_len)
{
  if (rewrite_db.is_empty() || !db)
    return db;
+1 −1
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@ class Rpl_filter
  void get_wild_do_table(String* str);
  void get_wild_ignore_table(String* str);

  const char* get_rewrite_db(const char* db, uint32 *new_len);
  const char* get_rewrite_db(const char* db, uint *new_len);

  I_List<i_string>* get_do_db();
  I_List<i_string>* get_ignore_db();
+37 −16
Original line number Diff line number Diff line
@@ -1445,12 +1445,13 @@ Suma::initTable(Signal *signal, Uint32 tableId, TablePtr &tabPtr)
    tabPtr.p->m_error         = 0;
    tabPtr.p->m_schemaVersion = RNIL;
    tabPtr.p->m_state = Table::DEFINING;
    tabPtr.p->m_hasTriggerDefined[0] = 0;
    tabPtr.p->m_hasTriggerDefined[1] = 0;
    tabPtr.p->m_hasTriggerDefined[2] = 0;
    tabPtr.p->m_triggerIds[0] = ILLEGAL_TRIGGER_ID;
    tabPtr.p->m_triggerIds[1] = ILLEGAL_TRIGGER_ID;
    tabPtr.p->m_triggerIds[2] = ILLEGAL_TRIGGER_ID;
    tabPtr.p->m_drop_subbPtr.p = 0;
    for (int j= 0; j < 3; j++)
    {
      tabPtr.p->m_hasTriggerDefined[j] = 0;
      tabPtr.p->m_hasOutstandingTriggerReq[j] = 0;
      tabPtr.p->m_triggerIds[j] = ILLEGAL_TRIGGER_ID;
    }

    c_tables.add(tabPtr);

@@ -2491,6 +2492,13 @@ Suma::execSUB_STOP_REQ(Signal* signal){
    DBUG_VOID_RETURN;
  }

  if (tabPtr.p->m_drop_subbPtr.p != 0) {
    jam();
    DBUG_PRINT("error", ("table locked"));
    sendSubStopRef(signal, 1420);
    DBUG_VOID_RETURN;
  }

  DBUG_PRINT("info",("subscription: %u tableId: %u[i=%u] id: %u key: %u",
		     subPtr.i, subPtr.p->m_tableId, tabPtr.i,
		     subPtr.p->m_subscriptionId,subPtr.p->m_subscriptionKey));
@@ -2560,6 +2568,7 @@ Suma::execSUB_STOP_REQ(Signal* signal){
		       tabPtr.p->m_tableId, tabPtr.p->n_subscribers));
    tabPtr.p->checkRelease(*this);
    sendSubStopComplete(signal, tabPtr.p->m_drop_subbPtr);
    tabPtr.p->m_drop_subbPtr.p = 0;
  }
  else
  {
@@ -2894,6 +2903,9 @@ Suma::Table::dropTrigger(Signal* signal,Suma& suma)
  jam();
  DBUG_ENTER("Suma::dropTrigger");
  
  m_hasOutstandingTriggerReq[0] =
    m_hasOutstandingTriggerReq[1] =
    m_hasOutstandingTriggerReq[2] = 1;
  for(Uint32 j = 0; j<3; j++){
    jam();
    suma.suma_ndbrequire(m_triggerIds[j] != ILLEGAL_TRIGGER_ID);
@@ -2972,14 +2984,18 @@ Suma::Table::runDropTrigger(Signal* signal,

  suma.suma_ndbrequire(type < 3);
  suma.suma_ndbrequire(m_triggerIds[type] == triggerId);
  suma.suma_ndbrequire(m_hasTriggerDefined[type] > 0);
  suma.suma_ndbrequire(m_hasOutstandingTriggerReq[type] == 1);
  m_hasTriggerDefined[type]--;
  m_hasOutstandingTriggerReq[type] = 0;
  if (m_hasTriggerDefined[type] == 0)
  {
    jam();
    m_triggerIds[type] = ILLEGAL_TRIGGER_ID;
  }
  if( m_hasTriggerDefined[0] != m_hasTriggerDefined[1] ||
      m_hasTriggerDefined[0] != m_hasTriggerDefined[2])
  if( m_hasOutstandingTriggerReq[0] ||
      m_hasOutstandingTriggerReq[1] ||
      m_hasOutstandingTriggerReq[2])
  {
    // more to come
    jam();
@@ -2997,6 +3013,7 @@ Suma::Table::runDropTrigger(Signal* signal,
  checkRelease(suma);

  suma.sendSubStopComplete(signal, m_drop_subbPtr);
  m_drop_subbPtr.p = 0;
}

void Suma::suma_ndbrequire(bool v) { ndbrequire(v); }
@@ -3551,13 +3568,17 @@ Suma::execDROP_TAB_CONF(Signal *signal)
  DBUG_PRINT("info",("drop table id: %d[i=%u]", tableId, tabPtr.i));

  tabPtr.p->m_state = Table::DROPPED;
  tabPtr.p->m_hasTriggerDefined[0] = 0;
  tabPtr.p->m_hasTriggerDefined[1] = 0;
  tabPtr.p->m_hasTriggerDefined[2] = 0;
  tabPtr.p->m_triggerIds[0] = ILLEGAL_TRIGGER_ID;
  tabPtr.p->m_triggerIds[1] = ILLEGAL_TRIGGER_ID;
  tabPtr.p->m_triggerIds[2] = ILLEGAL_TRIGGER_ID;

  for (int j= 0; j < 3; j++)
  {
    if (!tabPtr.p->m_hasOutstandingTriggerReq[j])
    {
      tabPtr.p->m_hasTriggerDefined[j] = 0;
      tabPtr.p->m_hasOutstandingTriggerReq[j] = 0;
      tabPtr.p->m_triggerIds[j] = ILLEGAL_TRIGGER_ID;
    }
    else
      tabPtr.p->m_hasTriggerDefined[j] = 1;
  }
  if (senderRef == 0)
  {
    DBUG_VOID_RETURN;
Loading