Commit bea3a43b authored by monty@narttu.mysql.fi's avatar monty@narttu.mysql.fi
Browse files

merge

parents 621b5da8 b3d3d3c2
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
Miguel@light.local
Sinisa@sinisa.nasamreza.org
arjen@fred.bitbike.com
bar@bar.udmsearch.izhnet.ru
heikki@donna.mysql.fi
heikki@hundin.mysql.fi
jani@hynda.mysql.fi
@@ -11,18 +12,18 @@ miguel@light.local
monty@bitch.mysql.fi
monty@donna.mysql.fi
monty@hundin.mysql.fi
monty@mashka.mysql.fi
monty@narttu.
monty@narttu.mysql.fi
monty@tik.
monty@tik.mysql.fi
monty@work.mysql.com
mwagner@cash.mwagner.org
nick@nick.leippe.com
paul@central.snake.net
salle@geopard.online.bg
sasha@mysql.sashanet.com
serg@serg.mysql.com
serg@sergbook.mysql.com
sinisa@rhols221.adsl.netsonic.fi
zak@balfor.local
monty@narttu.
monty@mashka.mysql.fi
bar@bar.udmsearch.izhnet.ru
salle@geopard.online.bg
+3 −0
Original line number Diff line number Diff line
@@ -46935,6 +46935,9 @@ Fixed problem with privilege tables when downgrading from 4.0.2 to 3.23.
@item
Fixed thread bug in @code{SLAVE START} and @code{SLAVE STOP}.
@item
Fixed possible thread related key-cache-corruption problem with
@code{OPTIMIZE TABLE} and @code{REPAIR TABLE}.
@item
Added name of 'administrator command' logs.
@item
Fixed bug with creating an auto-increment value on second part of a
+14 −2
Original line number Diff line number Diff line
@@ -279,6 +279,16 @@ void intern_close_table(TABLE *table)
    VOID(closefrm(table));			// close file
}

/*
  Remove table from the open table cache

  SYNOPSIS
    free_cache_entry()
    table		Table to remove

  NOTE
    We need to have a lock on LOCK_open when calling this
*/

static void free_cache_entry(TABLE *table)
{
@@ -833,7 +843,10 @@ TABLE *open_table(THD *thd,const char *db,const char *table_name,

    /* make a new table */
    if (!(table=(TABLE*) my_malloc(sizeof(*table),MYF(MY_WME))))
    {
      VOID(pthread_mutex_unlock(&LOCK_open));
      DBUG_RETURN(NULL);
    }
    if (open_unireg_entry(thd, table,db,table_name,alias,1) ||
	!(table->table_cache_key=memdup_root(&table->mem_root,(char*) key,
					     key_length)))
@@ -1181,7 +1194,6 @@ bool wait_for_tables(THD *thd)
    /* Now we can open all tables without any interference */
    thd->proc_info="Reopen tables";
    result=reopen_tables(thd,0,0);
     
  }
  pthread_mutex_unlock(&LOCK_open);
  thd->proc_info=0;
@@ -1372,9 +1384,9 @@ int open_tables(THD *thd,TABLE_LIST *start)
	  }
	}
	*prev_table=0;
	pthread_mutex_unlock(&LOCK_open);
	if (found)
	  VOID(pthread_cond_broadcast(&COND_refresh)); // Signal to refresh
	pthread_mutex_unlock(&LOCK_open);
	goto restart;
      }
      result= -1;				// Fatal error
+5 −0
Original line number Diff line number Diff line
@@ -1419,6 +1419,11 @@ bool select_create::send_eof()
    table->file->extra(HA_EXTRA_NO_IGNORE_DUP_KEY);
    VOID(pthread_mutex_lock(&LOCK_open));
    mysql_unlock_tables(thd, lock);
    /*
      TODO:
      Check if we can remove the following two rows.
      We should be able to just keep the table in the table cache.
    */
    if (!table->tmp_table)
      hash_delete(&open_cache,(byte*) table);
    lock=0; table=0;
+6 −1
Original line number Diff line number Diff line
@@ -117,6 +117,7 @@ int mysqld_show_open_tables(THD *thd,const char *db,const char *wild)
  if (list_open_tables(thd,&tables,db,wild))
    DBUG_RETURN(-1);

  pthread_mutex_lock(&LOCK_open);
  List_iterator<char> it(tables);
  while ((table_name=it++))
  {
@@ -124,13 +125,17 @@ int mysqld_show_open_tables(THD *thd,const char *db,const char *wild)
    net_store_data(&thd->packet,table_name);
    net_store_data(&thd->packet,query_table_status(thd,db,table_name));
    if (my_net_write(&thd->net,(char*) thd->packet.ptr(),thd->packet.length()))
    {
      pthread_mutex_unlock(&LOCK_open);
      DBUG_RETURN(-1);
    }

  }
  pthread_mutex_unlock(&LOCK_open);
  send_eof(&thd->net);
  DBUG_RETURN(0);
}


/***************************************************************************
** List all tables in a database (fast version)
** A table is a .frm file in the current databasedir
Loading