diff options
author | unknown <jani@hynda.mysql.fi> | 2007-06-27 17:49:12 +0300 |
---|---|---|
committer | unknown <jani@hynda.mysql.fi> | 2007-06-27 17:49:12 +0300 |
commit | 5444b55cbbab69a508e6c477a1b9580eff969da1 (patch) | |
tree | eb82a0418f88b83d49bf66dfc659d59862535683 /sql/handler.cc | |
parent | e34641b3cece714b861c7130f245659342f583ba (diff) | |
parent | 1a96259191b193b353387cbb70d7567009e3b247 (diff) | |
download | mariadb-git-5444b55cbbab69a508e6c477a1b9580eff969da1.tar.gz |
Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1
into hynda.mysql.fi:/home/my/mysql-maria
BitKeeper/etc/ignore:
auto-union
Makefile.am:
Auto merged
BUILD/SETUP.sh:
Auto merged
BitKeeper/deleted/.del-init_db.sql~a77d572c39d5a1f8:
Auto merged
client/mysqldump.c:
Auto merged
include/Makefile.am:
Auto merged
include/m_string.h:
Auto merged
include/my_base.h:
Auto merged
include/my_dbug.h:
Auto merged
libmysql/CMakeLists.txt:
Auto merged
libmysql/Makefile.shared:
Auto merged
libmysqld/Makefile.am:
Auto merged
mysql-test/include/varchar.inc:
Auto merged
mysql-test/lib/mtr_cases.pl:
Auto merged
mysql-test/lib/mtr_io.pl:
Auto merged
mysql-test/lib/mtr_misc.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/lib/mtr_process.pl:
Auto merged
mysql-test/lib/mtr_report.pl:
Auto merged
mysql-test/r/events_logs_tests.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/disabled.def:
Auto merged
mysql-test/t/events_logs_tests.test:
Auto merged
mysql-test/t/myisam.test:
Auto merged
mysql-test/t/view.test:
Auto merged
mysys/Makefile.am:
Auto merged
mysys/my_create.c:
Auto merged
mysys/my_handler.c:
Auto merged
mysys/my_init.c:
Auto merged
mysys/my_open.c:
Auto merged
mysys/safemalloc.c:
Auto merged
plugin/daemon_example/daemon_example.cc:
Auto merged
sql/Makefile.am:
Auto merged
sql/filesort.cc:
Auto merged
sql/gen_lex_hash.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/slave.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/share/errmsg.txt:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_test.cc:
Auto merged
sql/udf_example.c:
Auto merged
sql/uniques.cc:
Auto merged
sql/unireg.cc:
Auto merged
storage/csv/ha_tina.cc:
Auto merged
storage/myisam/ft_boolean_search.c:
Auto merged
storage/myisam/ft_nlq_search.c:
Auto merged
storage/myisam/ft_parser.c:
Auto merged
storage/myisam/ft_stopwords.c:
Auto merged
storage/myisam/ft_update.c:
Auto merged
storage/myisam/fulltext.h:
Auto merged
storage/myisam/ha_myisam.h:
Auto merged
storage/myisam/mi_checksum.c:
Auto merged
storage/myisam/mi_create.c:
Auto merged
storage/myisam/mi_delete.c:
Auto merged
storage/myisam/mi_delete_all.c:
Auto merged
storage/myisam/mi_key.c:
Auto merged
storage/myisam/mi_log.c:
Auto merged
storage/myisam/mi_open.c:
Auto merged
storage/myisam/mi_range.c:
Auto merged
storage/myisam/mi_rkey.c:
Auto merged
storage/myisam/mi_rsamepos.c:
Auto merged
storage/myisam/mi_search.c:
Auto merged
storage/myisam/mi_test1.c:
Auto merged
storage/myisam/mi_test2.c:
Auto merged
storage/myisam/mi_unique.c:
Auto merged
storage/myisam/mi_update.c:
Auto merged
storage/myisam/myisamlog.c:
Auto merged
storage/myisam/myisampack.c:
Auto merged
storage/myisam/rt_index.c:
Auto merged
storage/myisam/sort.c:
Auto merged
storage/myisam/sp_test.c:
Auto merged
storage/myisammrg/ha_myisammrg.h:
Auto merged
storage/ndb/src/mgmapi/mgmapi.cpp:
Auto merged
unittest/Makefile.am:
Auto merged
BitKeeper/triggers/post-commit:
Manual merge from mysql-5.1 to mysql-maria
configure.in:
Manual merge from mysql-5.1 to mysql-maria
include/ft_global.h:
Manual merge from mysql-5.1 to mysql-maria
include/keycache.h:
Manual merge from mysql-5.1 to mysql-maria
include/my_atomic.h:
Manual merge from mysql-5.1 to mysql-maria
include/my_global.h:
Manual merge from mysql-5.1 to mysql-maria
include/my_sys.h:
Manual merge from mysql-5.1 to mysql-maria
include/myisam.h:
Manual merge from mysql-5.1 to mysql-maria
mysys/array.c:
Manual merge from mysql-5.1 to mysql-maria
mysys/mf_keycache.c:
Manual merge from mysql-5.1 to mysql-maria
mysys/mf_keycaches.c:
Manual merge from mysql-5.1 to mysql-maria
mysys/my_pread.c:
Manual merge from mysql-5.1 to mysql-maria
sql/mysqld.cc:
Manual merge from mysql-5.1 to mysql-maria
sql/net_serv.cc:
Manual merge from mysql-5.1 to mysql-maria
sql/set_var.cc:
Manual merge from mysql-5.1 to mysql-maria
sql/set_var.h:
Manual merge from mysql-5.1 to mysql-maria
sql/sql_class.h:
Manual merge from mysql-5.1 to mysql-maria
storage/myisam/ft_static.c:
Manual merge from mysql-5.1 to mysql-maria
storage/myisam/ha_myisam.cc:
Manual merge from mysql-5.1 to mysql-maria
storage/myisam/mi_check.c:
Manual merge from mysql-5.1 to mysql-maria
storage/myisam/mi_dynrec.c:
Manual merge from mysql-5.1 to mysql-maria
storage/myisam/mi_packrec.c:
Manual merge from mysql-5.1 to mysql-maria
storage/myisam/mi_write.c:
Manual merge from mysql-5.1 to mysql-maria
storage/myisam/myisamchk.c:
Manual merge from mysql-5.1 to mysql-maria
storage/myisam/myisamdef.h:
Manual merge from mysql-5.1 to mysql-maria
storage/myisammrg/ha_myisammrg.cc:
Manual merge from mysql-5.1 to mysql-maria
unittest/mysys/Makefile.am:
Manual merge from mysql-5.1 to mysql-maria
unittest/mysys/my_atomic-t.c:
Manual merge from mysql-5.1 to mysql-maria
Diffstat (limited to 'sql/handler.cc')
-rw-r--r-- | sql/handler.cc | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/sql/handler.cc b/sql/handler.cc index b290c5acaa7..d768ad4dc5d 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -30,6 +30,10 @@ #include <myisampack.h> #include <errno.h> +#ifdef WITH_MARIA_STORAGE_ENGINE +#include <maria.h> +#endif + #ifdef WITH_PARTITION_STORAGE_ENGINE #include "ha_partition.h" #endif @@ -2789,6 +2793,98 @@ int ha_change_key_cache(KEY_CACHE *old_key_cache, } +/***************************************************************************** + pagecache handling. + + This code is only relevant for maria tables + + pagecache->cache may be 0 only in the case where a key cache is not + initialized or when we where not able to init the key cache in a previous + call to ha_init_pagecache() (probably out of memory) +*****************************************************************************/ + + +#ifdef WITH_MARIA_STORAGE_ENGINE + +/* Init a pagecache if it has not been initied before */ + +int ha_init_pagecache(const char *name, PAGECACHE *pagecache) +{ + DBUG_ENTER("ha_init_key_cache"); + + if (!pagecache->inited) + { + pthread_mutex_lock(&LOCK_global_system_variables); + long tmp_buff_size= (long) pagecache->param_buff_size; + uint division_limit= pagecache->param_division_limit; + uint age_threshold= pagecache->param_age_threshold; + pthread_mutex_unlock(&LOCK_global_system_variables); + DBUG_RETURN(!init_pagecache(pagecache, + tmp_buff_size, division_limit, age_threshold, + MARIA_KEY_BLOCK_LENGTH)); + } + DBUG_RETURN(0); +} + + +/* Resize key cache */ +/* +TODO: uncomment when resize will be implemented +int ha_resize_pagecache(PAGECACHE *pagecache) +{ + DBUG_ENTER("ha_resize_pagecache"); + + if (pagecache->inited) + { + pthread_mutex_lock(&LOCK_global_system_variables); + long tmp_buff_size= (long) pagecache->param_buff_size; + long tmp_block_size= (long) pagecache->param_block_size; + uint division_limit= pagecache->param_division_limit; + uint age_threshold= pagecache->param_age_threshold; + pthread_mutex_unlock(&LOCK_global_system_variables); + DBUG_RETURN(!resize_pagecache(pagecache, tmp_block_size, + tmp_buff_size, + division_limit, age_threshold)); + } + DBUG_RETURN(0); +} +*/ + + +/* Change parameters for key cache (like size) */ + +int ha_change_pagecache_param(PAGECACHE *pagecache) +{ + if (pagecache->inited) + { + pthread_mutex_lock(&LOCK_global_system_variables); + uint division_limit= pagecache->param_division_limit; + uint age_threshold= pagecache->param_age_threshold; + pthread_mutex_unlock(&LOCK_global_system_variables); + change_pagecache_param(pagecache, division_limit, age_threshold); + } + return 0; +} + +/* Free memory allocated by a key cache */ + +int ha_end_pagecache(PAGECACHE *pagecache) +{ + end_pagecache(pagecache, 1); // Can never fail + return 0; +} + +/* Move all tables from one key cache to another one */ + +int ha_change_pagecache(PAGECACHE *old_pagecache, + PAGECACHE *new_pagecache) +{ + maria_change_pagecache(old_pagecache, new_pagecache); + return 0; +} + +#endif /* WITH_MARIA_STORAGE_ENGINE */ + /** @brief Try to discover one table from handler(s) |