mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
Merge mysql.com:/home/my/mysql-5.0
into mysql.com:/home/my/mysql-5.1 BitKeeper/etc/ignore: auto-union BitKeeper/deleted/.del-my_lread.c: Auto merged BitKeeper/deleted/.del-my_lwrite.c: Auto merged client/mysqlbinlog.cc: Auto merged client/mysqldump.c: Auto merged cmd-line-utils/readline/complete.c: Auto merged extra/yassl/src/ssl.cpp: Auto merged libmysql/libmysql.c: Auto merged libmysqld/libmysqld.c: Auto merged mysql-test/mysql-test-run-shell.sh: Auto merged mysql-test/t/create.test: Auto merged mysql-test/t/csv.test: Auto merged mysql-test/t/ctype_cp1250_ch.test: Auto merged mysql-test/t/ctype_ucs.test: Auto merged mysql-test/t/func_sapdb.test: Auto merged mysql-test/t/func_str.test: Auto merged mysql-test/t/grant.test: Auto merged mysql-test/t/group_min_max.test: Auto merged mysql-test/t/innodb.test: Auto merged mysql-test/t/join.test: Auto merged mysql-test/t/select.test: Auto merged mysql-test/t/sp-prelocking.test: Auto merged mysql-test/t/strict.test: Auto merged mysql-test/t/subselect.test: Auto merged mysql-test/t/type_newdecimal.test: Auto merged mysql-test/t/view_grant.test: Auto merged mysys/default.c: Auto merged mysys/mf_iocache.c: Auto merged mysys/mf_keycache.c: Auto merged mysys/my_alloc.c: Auto merged mysys/my_dup.c: Auto merged mysys/my_getwd.c: Auto merged mysys/my_handler.c: Auto merged mysys/my_lib.c: Auto merged mysys/my_malloc.c: Auto merged mysys/my_pread.c: Auto merged mysys/my_seek.c: Auto merged mysys/safemalloc.c: Auto merged sql/Makefile.am: Auto merged sql/filesort.cc: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_subselect.cc: Auto merged sql/log_event.cc: Auto merged sql/net_serv.cc: Auto merged sql/sql_acl.cc: Auto merged sql/sql_cache.cc: Auto merged sql/sql_class.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_delete.cc: Auto merged sql/sql_repl.cc: Auto merged sql-common/client.c: Auto merged sql-common/my_time.c: Auto merged sql/sql_select.cc: Auto merged sql/sql_update.cc: Auto merged sql/strfunc.cc: Auto merged sql/tztime.cc: Auto merged sql/unireg.cc: Auto merged storage/heap/_check.c: Auto merged storage/heap/hp_delete.c: Auto merged storage/heap/hp_hash.c: Auto merged storage/heap/hp_open.c: Auto merged storage/heap/hp_rkey.c: Auto merged storage/heap/hp_rrnd.c: Auto merged storage/heap/hp_write.c: Auto merged storage/myisam/ha_myisam.cc: Auto merged storage/myisam/mi_close.c: Auto merged storage/myisam/mi_delete.c: Auto merged storage/myisam/mi_dynrec.c: Auto merged storage/myisam/mi_keycache.c: Auto merged storage/myisam/mi_page.c: Auto merged storage/myisam/mi_statrec.c: Auto merged storage/myisam/mi_test2.c: Auto merged storage/myisam/mi_write.c: Auto merged storage/myisam/myisampack.c: Auto merged storage/myisammrg/ha_myisammrg.cc: Auto merged storage/myisammrg/myrg_extra.c: Auto merged storage/ndb/include/logger/LogHandler.hpp: Auto merged storage/ndb/include/util/OutputStream.hpp: Auto merged storage/ndb/src/common/debugger/EventLogger.cpp: Auto merged storage/ndb/src/common/debugger/signaldata/BackupSignalData.cpp: Auto merged storage/ndb/src/common/logger/LogHandler.cpp: Auto merged storage/ndb/src/common/portlib/NdbMutex.c: Auto merged storage/ndb/src/common/portlib/NdbThread.c: Auto merged storage/ndb/src/common/transporter/Transporter.cpp: Auto merged storage/ndb/src/cw/cpcd/CPCD.hpp: Auto merged storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp: Auto merged storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp: Auto merged storage/ndb/src/kernel/blocks/dbtux/DbtuxSearch.cpp: Auto merged storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp: Auto merged storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp: Auto merged storage/ndb/src/kernel/error/ErrorReporter.cpp: Auto merged storage/ndb/src/kernel/error/ErrorReporter.hpp: Auto merged storage/ndb/src/kernel/error/ndbd_exit_codes.c: Auto merged storage/ndb/src/kernel/vm/TransporterCallback.cpp: Auto merged storage/ndb/src/mgmapi/mgmapi.cpp: Auto merged storage/ndb/src/mgmclient/CommandInterpreter.cpp: Auto merged storage/ndb/src/mgmsrv/MgmtSrvr.cpp: Auto merged storage/ndb/src/mgmsrv/Services.cpp: Auto merged storage/ndb/src/ndbapi/ClusterMgr.cpp: Auto merged storage/ndb/src/ndbapi/DictCache.cpp: Auto merged storage/ndb/src/ndbapi/Ndb.cpp: Auto merged storage/ndb/src/ndbapi/NdbOperationExec.cpp: Auto merged storage/ndb/src/ndbapi/NdbOperationInt.cpp: Auto merged storage/ndb/src/ndbapi/NdbTransaction.cpp: Auto merged storage/ndb/src/ndbapi/Ndbif.cpp: Auto merged storage/ndb/tools/drop_index.cpp: Auto merged storage/ndb/tools/drop_tab.cpp: Auto merged storage/ndb/tools/ndb_condig.cpp: Auto merged tests/mysql_client_test.c: Auto merged vio/viossl.c: Auto merged vio/viosslfactories.c: Auto merged BUILD/SETUP.sh: Use local version client/client_priv.h: Manual merge mysql-test/mysql-test-run.pl: Manual merge mysql-test/r/ctype_cp1250_ch.result: Manual merge mysql-test/t/disabled.def: Manual merge mysys/hash.c: Manual merge mysys/thr_lock.c: Manual merge server-tools/instance-manager/mysql_connection.cc: Manual merge sql/ha_ndbcluster.cc: Manual merge sql/handler.cc: Manual merge sql/item_timefunc.cc: Manual merge sql/mysqld.cc: Manual merge sql/opt_range.cc: Manual merge sql/slave.cc: Manual merge sql/sql_parse.cc: Manual merge sql/sql_prepare.cc: Manual merge sql/sql_view.cc: Manual merge sql/table.cc: Manual merge storage/archive/ha_archive.cc: Manual merge storage/federated/ha_federated.cc: Manual merge storage/federated/ha_federated.h: Manual merge storage/innobase/handler/ha_innodb.cc: Manual merge storage/ndb/include/ndb_global.h.in: Manual merge storage/ndb/include/util/InputStream.hpp: Manual merge storage/ndb/include/util/SimpleProperties.hpp: Manual merge storage/ndb/src/kernel/blocks/backup/Backup.cpp: Manual merge storage/ndb/src/ndbapi/NdbOperationDefine.cpp: Manual merge storage/ndb/src/ndbapi/NdbOperationSearch.cpp: Manual merge storage/ndb/src/ndbapi/Ndbinit.cpp: Manual merge storage/ndb/src/ndbapi/ndb_cluster_connection.cpp: Manual merge strings/decimal.c: Manual merge vio/viosocket.c: Manual merge
This commit is contained in:
@ -523,7 +523,8 @@ void Query_cache_query::init_n_lock()
|
||||
my_rwlock_init(&lock, NULL);
|
||||
lock_writing();
|
||||
DBUG_PRINT("qcache", ("inited & locked query for block 0x%lx",
|
||||
((byte*) this)-ALIGN_SIZE(sizeof(Query_cache_block))));
|
||||
(long) (((byte*) this) -
|
||||
ALIGN_SIZE(sizeof(Query_cache_block)))));
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
@ -532,7 +533,8 @@ void Query_cache_query::unlock_n_destroy()
|
||||
{
|
||||
DBUG_ENTER("Query_cache_query::unlock_n_destroy");
|
||||
DBUG_PRINT("qcache", ("destroyed & unlocked query for block 0x%lx",
|
||||
((byte*)this)-ALIGN_SIZE(sizeof(Query_cache_block))));
|
||||
(long) (((byte*) this) -
|
||||
ALIGN_SIZE(sizeof(Query_cache_block)))));
|
||||
/*
|
||||
The following call is not needed on system where one can destroy an
|
||||
active semaphore
|
||||
@ -698,6 +700,7 @@ void query_cache_abort(NET *net)
|
||||
|
||||
void query_cache_end_of_result(THD *thd)
|
||||
{
|
||||
Query_cache_block *query_block;
|
||||
DBUG_ENTER("query_cache_end_of_result");
|
||||
|
||||
/* See the comment on double-check locking usage above. */
|
||||
@ -713,13 +716,9 @@ void query_cache_end_of_result(THD *thd)
|
||||
|
||||
if (unlikely(query_cache.query_cache_size == 0 ||
|
||||
query_cache.flush_in_progress))
|
||||
{
|
||||
STRUCT_UNLOCK(&query_cache.structure_guard_mutex);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
goto end;
|
||||
|
||||
Query_cache_block *query_block= ((Query_cache_block*)
|
||||
thd->net.query_cache_query);
|
||||
query_block= ((Query_cache_block*) thd->net.query_cache_query);
|
||||
if (query_block)
|
||||
{
|
||||
DUMP(&query_cache);
|
||||
@ -738,27 +737,21 @@ void query_cache_end_of_result(THD *thd)
|
||||
header->query()));
|
||||
query_cache.wreck(__LINE__, "");
|
||||
|
||||
STRUCT_UNLOCK(&query_cache.structure_guard_mutex);
|
||||
|
||||
DBUG_VOID_RETURN;
|
||||
BLOCK_UNLOCK_WR(query_block);
|
||||
goto end;
|
||||
}
|
||||
#endif
|
||||
header->found_rows(current_thd->limit_found_rows);
|
||||
header->result()->type= Query_cache_block::RESULT;
|
||||
header->writer(0);
|
||||
thd->net.query_cache_query= 0;
|
||||
BLOCK_UNLOCK_WR(query_block);
|
||||
DBUG_EXECUTE("check_querycache",query_cache.check_integrity(1););
|
||||
|
||||
STRUCT_UNLOCK(&query_cache.structure_guard_mutex);
|
||||
|
||||
BLOCK_UNLOCK_WR(query_block);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Cache was flushed or resized and query was deleted => do nothing
|
||||
STRUCT_UNLOCK(&query_cache.structure_guard_mutex);
|
||||
}
|
||||
|
||||
end:
|
||||
STRUCT_UNLOCK(&query_cache.structure_guard_mutex);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
@ -875,8 +868,8 @@ sql mode: 0x%lx, sort len: %lu, conncat len: %lu",
|
||||
flags.character_set_client_num,
|
||||
flags.character_set_results_num,
|
||||
flags.collation_connection_num,
|
||||
flags.limit,
|
||||
(ulong)flags.time_zone,
|
||||
(ulong) flags.limit,
|
||||
(ulong) flags.time_zone,
|
||||
flags.sql_mode,
|
||||
flags.max_sort_length,
|
||||
flags.group_concat_max_len));
|
||||
@ -1119,8 +1112,8 @@ sql mode: 0x%lx, sort len: %lu, conncat len: %lu",
|
||||
flags.character_set_client_num,
|
||||
flags.character_set_results_num,
|
||||
flags.collation_connection_num,
|
||||
flags.limit,
|
||||
(ulong)flags.time_zone,
|
||||
(ulong) flags.limit,
|
||||
(ulong) flags.time_zone,
|
||||
flags.sql_mode,
|
||||
flags.max_sort_length,
|
||||
flags.group_concat_max_len));
|
||||
@ -1257,7 +1250,7 @@ sql mode: 0x%lx, sort len: %lu, conncat len: %lu",
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
do
|
||||
{
|
||||
DBUG_PRINT("qcache", ("Results (len %lu, used %lu, headers %lu)",
|
||||
DBUG_PRINT("qcache", ("Results (len: %lu used: %lu headers: %u)",
|
||||
result_block->length, result_block->used,
|
||||
result_block->headers_len()+
|
||||
ALIGN_SIZE(sizeof(Query_cache_result))));
|
||||
@ -2034,7 +2027,7 @@ Query_cache::append_result_data(Query_cache_block **current_block,
|
||||
{
|
||||
DBUG_ENTER("Query_cache::append_result_data");
|
||||
DBUG_PRINT("qcache", ("append %lu bytes to 0x%lx query",
|
||||
data_len, query_block));
|
||||
data_len, (long) query_block));
|
||||
|
||||
if (query_block->query()->add(data_len) > query_cache_limit)
|
||||
{
|
||||
@ -3043,10 +3036,10 @@ Query_cache::is_cacheable(THD *thd, uint32 query_len, char *query, LEX *lex,
|
||||
OPTION_TO_QUERY_CACHE))) &&
|
||||
lex->safe_to_cache_query)
|
||||
{
|
||||
DBUG_PRINT("qcache", ("options %lx %lx, type %u",
|
||||
OPTION_TO_QUERY_CACHE,
|
||||
lex->select_lex.options,
|
||||
(int) thd->variables.query_cache_type));
|
||||
DBUG_PRINT("qcache", ("options: %lx %lx type: %u",
|
||||
OPTION_TO_QUERY_CACHE,
|
||||
(long) lex->select_lex.options,
|
||||
(int) thd->variables.query_cache_type));
|
||||
|
||||
if (!(table_count= process_and_count_tables(tables_used, tables_type)))
|
||||
DBUG_RETURN(0);
|
||||
@ -3062,10 +3055,10 @@ Query_cache::is_cacheable(THD *thd, uint32 query_len, char *query, LEX *lex,
|
||||
}
|
||||
|
||||
DBUG_PRINT("qcache",
|
||||
("not interesting query: %d or not cacheable, options %lx %lx, type %u",
|
||||
("not interesting query: %d or not cacheable, options %lx %lx type: %u",
|
||||
(int) lex->sql_command,
|
||||
OPTION_TO_QUERY_CACHE,
|
||||
lex->select_lex.options,
|
||||
(long) lex->select_lex.options,
|
||||
(int) thd->variables.query_cache_type));
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
@ -3656,7 +3649,8 @@ void Query_cache::queries_dump()
|
||||
DBUG_PRINT("qcache", ("F:%u C:%u L:%lu T:'%s' (%u) '%s' '%s'",
|
||||
flags.client_long_flag,
|
||||
flags.character_set_client_num,
|
||||
(ulong)flags.limit, flags.time_zone->get_name(),
|
||||
(ulong)flags.limit,
|
||||
flags.time_zone->get_name()->ptr(),
|
||||
len, str, strend(str)+1));
|
||||
DBUG_PRINT("qcache", ("-b- 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx", (ulong) block,
|
||||
(ulong) block->next, (ulong) block->prev,
|
||||
@ -3876,9 +3870,8 @@ my_bool Query_cache::check_integrity(bool locked)
|
||||
break;
|
||||
}
|
||||
default:
|
||||
DBUG_PRINT("error",
|
||||
("block 0x%lx have incorrect type %u",
|
||||
block, block->type));
|
||||
DBUG_PRINT("error", ("block 0x%lx have incorrect type %u",
|
||||
(long) block, block->type));
|
||||
result = 1;
|
||||
}
|
||||
|
||||
@ -3976,8 +3969,8 @@ my_bool Query_cache::check_integrity(bool locked)
|
||||
} while (block != bins[i].free_blocks);
|
||||
if (count != bins[i].number)
|
||||
{
|
||||
DBUG_PRINT("error", ("bin[%d].number is %d, but bin have %d blocks",
|
||||
bins[i].number, count));
|
||||
DBUG_PRINT("error", ("bins[%d].number = %d, but bin have %d blocks",
|
||||
i, bins[i].number, count));
|
||||
result = 1;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user