Use DB_LOG_AUTOREMOVE flag instead of noticecall customization to BDB

so log files are deleted once they are no longer in use. (Bug #14655)
This commit is contained in:
jimw@mysql.com 2005-11-07 16:33:53 -08:00
parent 2cb601c840
commit aecf0238f3
4 changed files with 3 additions and 41 deletions

View File

@ -76,8 +76,9 @@ const u_int32_t bdb_DB_RECOVER= DB_RECOVER;
const u_int32_t bdb_DB_PRIVATE= DB_PRIVATE;
const char *ha_berkeley_ext=".db";
bool berkeley_shared_data=0;
u_int32_t berkeley_init_flags= DB_PRIVATE | DB_RECOVER, berkeley_env_flags=0,
berkeley_lock_type=DB_LOCK_DEFAULT;
u_int32_t berkeley_init_flags= DB_PRIVATE | DB_RECOVER,
berkeley_env_flags= DB_LOG_AUTOREMOVE,
berkeley_lock_type= DB_LOCK_DEFAULT;
ulong berkeley_cache_size, berkeley_log_buffer_size, berkeley_log_file_size=0;
char *berkeley_home, *berkeley_tmpdir, *berkeley_logdir;
long berkeley_lock_scan_time=0;
@ -104,7 +105,6 @@ static int free_share(BDB_SHARE *share, TABLE *table, uint hidden_primary_key,
bool mutex_is_locked);
static int write_status(DB *status_block, char *buff, uint length);
static void update_status(BDB_SHARE *share, TABLE *table);
static void berkeley_noticecall(DB_ENV *db_env, db_notices notice);
static int berkeley_close_connection(THD *thd);
static int berkeley_commit(THD *thd, bool all);
@ -192,7 +192,6 @@ bool berkeley_init(void)
goto error;
db_env->set_errcall(db_env,berkeley_print_error);
db_env->set_errpfx(db_env,"bdb");
db_env->set_noticecall(db_env, berkeley_noticecall);
db_env->set_tmp_dir(db_env, berkeley_tmpdir);
db_env->set_data_dir(db_env, mysql_data_home);
db_env->set_flags(db_env, berkeley_env_flags, 1);
@ -365,17 +364,6 @@ static void berkeley_print_error(const DB_ENV *db_env, const char *db_errpfx,
}
static void berkeley_noticecall(DB_ENV *db_env, db_notices notice)
{
switch (notice)
{
case DB_NOTICE_LOGFILE_CHANGED: /* purecov: tested */
mysql_manager_submit(berkeley_cleanup_log_files);
pthread_cond_signal(&COND_manager);
break;
}
}
void berkeley_cleanup_log_files(void)
{
DBUG_ENTER("berkeley_cleanup_log_files");

View File

@ -1736,10 +1736,6 @@ struct __db_qam_stat {
*******************************************************/
#define DB_REGION_MAGIC 0x120897 /* Environment magic number. */
typedef enum {
DB_NOTICE_LOGFILE_CHANGED
} db_notices;
/* Database Environment handle. */
struct __db_env {
/*******************************************************
@ -1757,7 +1753,6 @@ struct __db_env {
/* Other Callbacks. */
void (*db_feedback) __P((DB_ENV *, int, int));
void (*db_paniccall) __P((DB_ENV *, int));
void (*db_noticecall) __P((DB_ENV *, db_notices));
/* App-specified alloc functions. */
void *(*db_malloc) __P((size_t));
@ -1932,7 +1927,6 @@ struct __db_env {
int (*set_feedback) __P((DB_ENV *, void (*)(DB_ENV *, int, int)));
int (*get_flags) __P((DB_ENV *, u_int32_t *));
int (*set_flags) __P((DB_ENV *, u_int32_t, int));
void (*set_noticecall) __P((DB_ENV *, void (*)(DB_ENV *, db_notices)));
int (*get_home) __P((DB_ENV *, const char **));
int (*set_intermediate_dir) __P((DB_ENV *, int, u_int32_t));
int (*get_open_flags) __P((DB_ENV *, u_int32_t *));

View File

@ -156,7 +156,6 @@ __dbenv_init(dbenv)
dbenv->set_feedback = __dbcl_env_set_feedback;
dbenv->get_flags = __dbcl_env_get_flags;
dbenv->set_flags = __dbcl_env_flags;
dbenv->set_noticecall = __dbcl_env_noticecall;
dbenv->set_paniccall = __dbcl_env_paniccall;
dbenv->set_rpc_server = __dbcl_envrpcserver;
dbenv->get_shm_key = __dbcl_get_shm_key;
@ -195,7 +194,6 @@ __dbenv_init(dbenv)
dbenv->get_flags = __dbenv_get_flags;
dbenv->set_flags = __dbenv_set_flags;
dbenv->set_intermediate_dir = __dbenv_set_intermediate_dir;
dbenv->set_noticecall = __dbenv_set_noticecall;
dbenv->set_paniccall = __dbenv_set_paniccall;
dbenv->set_rpc_server = __dbenv_set_rpc_server_noclnt;
dbenv->get_shm_key = __dbenv_get_shm_key;
@ -810,21 +808,6 @@ __dbenv_set_msgfile(dbenv, msgfile)
dbenv->db_msgfile = msgfile;
}
/*
* __dbenv_set_noticecall --
* {DB_ENV,DB}->set_noticecall.
*
* PUBLIC: int __dbenv_set_noticecall __P((DB_ENV *, void (*)(DB_ENV *, int)));
*/
int
__dbenv_set_noticecall(dbenv, noticecall)
DB_ENV *dbenv;
void (*noticecall) __P((DB_ENV *, int));
{
dbenv->db_noticecall = noticecall;
return (0);
}
/*
* __dbenv_set_paniccall --
* {DB_ENV,DB}->set_paniccall.

View File

@ -376,9 +376,6 @@ __log_put_next(dbenv, lsn, dbt, hdr, old_lsnp)
* anyway.
*/
newfile = 1;
if (dbenv->db_noticecall != NULL)
dbenv->db_noticecall(dbenv, DB_NOTICE_LOGFILE_CHANGED);
}
/*