diff options
author | unknown <tomas@poseidon.ndb.mysql.com> | 2004-11-23 16:38:00 +0000 |
---|---|---|
committer | unknown <tomas@poseidon.ndb.mysql.com> | 2004-11-23 16:38:00 +0000 |
commit | dfef378702462359d40be4ad4d7ec3f8da2f2276 (patch) | |
tree | 18bbaf1933b138fa039e1588e7a54b303703f4a9 /sql | |
parent | eeca93750d987ca55cadb97b33bdb67fed8aefac (diff) | |
download | mariadb-git-dfef378702462359d40be4ad4d7ec3f8da2f2276.tar.gz |
changed query cache type variable for ndb
Diffstat (limited to 'sql')
-rw-r--r-- | sql/ha_ndbcluster.cc | 19 | ||||
-rw-r--r-- | sql/ha_ndbcluster.h | 2 | ||||
-rw-r--r-- | sql/mysqld.cc | 18 | ||||
-rw-r--r-- | sql/set_var.cc | 18 | ||||
-rw-r--r-- | sql/sql_cache.cc | 6 | ||||
-rw-r--r-- | sql/sql_cache.h | 1 | ||||
-rw-r--r-- | sql/sql_class.h | 2 |
7 files changed, 46 insertions, 20 deletions
diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc index 8d82f60ae85..eea051be9e4 100644 --- a/sql/ha_ndbcluster.cc +++ b/sql/ha_ndbcluster.cc @@ -3025,7 +3025,9 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type) m_transaction_on= FALSE; else m_transaction_on= thd->variables.ndb_use_transactions; - m_use_local_query_cache= thd->variables.ndb_use_local_query_cache; +#ifdef HAVE_QUERY_CACHE + m_query_cache_type= thd->variables.ndb_query_cache_type; +#endif m_active_trans= thd->transaction.all.ndb_tid ? (NdbConnection*)thd->transaction.all.ndb_tid: @@ -3751,8 +3753,8 @@ ha_ndbcluster::ha_ndbcluster(TABLE *table_arg): m_force_send(TRUE), m_autoincrement_prefetch(32), m_transaction_on(TRUE), - m_use_local_query_cache(FALSE) -{ + m_query_cache_type(0) +{ int i; DBUG_ENTER("ha_ndbcluster"); @@ -4455,10 +4457,17 @@ const char* ha_ndbcluster::index_type(uint key_number) } uint8 ha_ndbcluster::table_cache_type() { - if (m_use_local_query_cache) + switch (m_query_cache_type) + { + case 0: + return HA_CACHE_TBL_NOCACHE; + case 1: + return HA_CACHE_TBL_ASKTRANSACT; + case 2: return HA_CACHE_TBL_TRANSACT; - else + default: return HA_CACHE_TBL_NOCACHE; + } } /* diff --git a/sql/ha_ndbcluster.h b/sql/ha_ndbcluster.h index f6c712620c1..baf4a7480ac 100644 --- a/sql/ha_ndbcluster.h +++ b/sql/ha_ndbcluster.h @@ -244,7 +244,7 @@ class ha_ndbcluster: public handler bool m_force_send; ha_rows m_autoincrement_prefetch; bool m_transaction_on; - bool m_use_local_query_cache; + ulong m_query_cache_type; void set_rec_per_key(); void records_update(); diff --git a/sql/mysqld.cc b/sql/mysqld.cc index f7c89f6dde3..51e12ff23f9 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -3954,7 +3954,7 @@ enum options_mysqld OPT_INNODB, OPT_ISAM, OPT_NDBCLUSTER, OPT_NDB_CONNECTSTRING, OPT_NDB_USE_EXACT_COUNT, OPT_NDB_FORCE_SEND, OPT_NDB_AUTOINCREMENT_PREFETCH_SZ, - OPT_NDB_USE_LOCAL_QUERY_CACHE, + OPT_NDB_QUERY_CACHE_TYPE, OPT_SKIP_SAFEMALLOC, OPT_TEMP_POOL, OPT_TX_ISOLATION, OPT_SKIP_STACK_TRACE, OPT_SKIP_SYMLINKS, @@ -4414,12 +4414,16 @@ Disable with --skip-ndbcluster (will save memory).", (gptr*) &global_system_variables.ndb_use_exact_count, (gptr*) &global_system_variables.ndb_use_exact_count, 0, GET_BOOL, OPT_ARG, 1, 0, 0, 0, 0, 0}, - {"ndb_use_local_query_cache", OPT_NDB_USE_LOCAL_QUERY_CACHE, - "Use local query cache, note that this cache will _not_ " - "be invalidated if data is updated through other mysql servers", - (gptr*) &global_system_variables.ndb_use_local_query_cache, - (gptr*) &global_system_variables.ndb_use_local_query_cache, - 0, GET_BOOL, OPT_ARG, 0, 0, 0, 0, 0, 0}, +#ifdef HAVE_QUERY_CACHE + {"ndb_query_cache_type", OPT_NDB_QUERY_CACHE_TYPE, + "0 = OFF = Don't cache or retrieve results. 1 = ON = Cache as query_cache_type states and " + "invalidate cache if tables are updated by other mysql servers. " + "2 = LOCAL = Cache as query_cache_type states and don't bother about what's happening on other " + "mysql servers.", + (gptr*) &global_system_variables.ndb_query_cache_type, + (gptr*) &global_system_variables.ndb_query_cache_type, + 0, GET_ULONG, REQUIRED_ARG, 0, 0, 2, 0, 0, 0}, +#endif #endif {"new", 'n', "Use very new possible 'unsafe' functions.", (gptr*) &global_system_variables.new_mode, diff --git a/sql/set_var.cc b/sql/set_var.cc index a040e8b2ba4..c51bfce7a43 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -370,9 +370,12 @@ sys_ndb_force_send("ndb_force_send", sys_var_thd_bool sys_ndb_use_exact_count("ndb_use_exact_count", &SV::ndb_use_exact_count); -sys_var_thd_bool -sys_ndb_use_local_query_cache("ndb_use_local_query_cache", - &SV::ndb_use_local_query_cache); +#ifdef HAVE_QUERY_CACHE +sys_var_thd_enum +sys_ndb_query_cache_type("ndb_query_cache_type", + &SV::ndb_query_cache_type, + &ndb_query_cache_type_typelib); +#endif sys_var_thd_bool sys_ndb_use_transactions("ndb_use_transactions", &SV::ndb_use_transactions); @@ -637,7 +640,9 @@ sys_var *sys_variables[]= &sys_ndb_autoincrement_prefetch_sz, &sys_ndb_force_send, &sys_ndb_use_exact_count, - &sys_ndb_use_local_query_cache, +#ifdef HAVE_QUERY_CACHE + &sys_ndb_query_cache_type, +#endif &sys_ndb_use_transactions, #endif &sys_unique_checks, @@ -805,8 +810,9 @@ struct show_var_st init_vars[]= { (char*) &sys_ndb_autoincrement_prefetch_sz, SHOW_SYS}, {sys_ndb_force_send.name, (char*) &sys_ndb_force_send, SHOW_SYS}, {sys_ndb_use_exact_count.name,(char*) &sys_ndb_use_exact_count, SHOW_SYS}, - {sys_ndb_use_local_query_cache.name, - (char*) &sys_ndb_use_local_query_cache, SHOW_SYS}, +#ifdef HAVE_QUERY_CACHE + {sys_ndb_query_cache_type.name,(char*) &sys_ndb_query_cache_type, SHOW_SYS}, +#endif {sys_ndb_use_transactions.name,(char*) &sys_ndb_use_transactions, SHOW_SYS}, #endif {sys_net_buffer_length.name,(char*) &sys_net_buffer_length, SHOW_SYS}, diff --git a/sql/sql_cache.cc b/sql/sql_cache.cc index 1bf8d179770..da6998ded47 100644 --- a/sql/sql_cache.cc +++ b/sql/sql_cache.cc @@ -366,6 +366,12 @@ TYPELIB query_cache_type_typelib= array_elements(query_cache_type_names)-1,"", query_cache_type_names, NULL }; +const char *ndb_query_cache_type_names[]= { "OFF", "ON", "LOCAL",NullS }; +TYPELIB ndb_query_cache_type_typelib= +{ + array_elements(ndb_query_cache_type_names)-1,"", ndb_query_cache_type_names, NULL +}; + /***************************************************************************** Query_cache_block_table method(s) *****************************************************************************/ diff --git a/sql/sql_cache.h b/sql/sql_cache.h index c933a2349af..b8cbc7953b8 100644 --- a/sql/sql_cache.h +++ b/sql/sql_cache.h @@ -412,6 +412,7 @@ protected: }; extern Query_cache query_cache; +extern TYPELIB ndb_query_cache_type_typelib; extern TYPELIB query_cache_type_typelib; void query_cache_end_of_result(THD *thd); void query_cache_abort(NET *net); diff --git a/sql/sql_class.h b/sql/sql_class.h index 06975730195..2ebad4b466a 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -403,7 +403,7 @@ struct system_variables ulong ndb_autoincrement_prefetch_sz; my_bool ndb_force_send; my_bool ndb_use_exact_count; - my_bool ndb_use_local_query_cache; + ulong ndb_query_cache_type; my_bool ndb_use_transactions; #endif /* HAVE_NDBCLUSTER_DB */ my_bool old_passwords; |