ChangeSet
2006/11/10 17:22:43+02:00 aelkin@dsl-hkibras-fe30f900-107.dhcp.inet.fi
Bug #24190 many exportable definitions of field_in_record_is_null
mysql had several(2) exportable definitions of field_in_record_is_null function.
Fixed with adding static.
storage/innobase/handler/ha_innodb.cc
2006/11/10 17:22:36+02:00 aelkin@dsl-hkibras-fe30f900-107.dhcp.inet.fi +1 -1
made static
CPU-bound SELECT queries. (Bug #15815)
Fix: replace the mutex by one mutex protecting the 'flush list'
(and the free list) and several mutexes protecting portions of the
buffer pool, where we keep several indivudual LRU lists of pages.
This patch is from Sunny Bains and Heikki Tuuri.
dict_truncate_index_tree(): Replace parameter rec_t* rec with
btr_pcur_t* pcur. Reposition pcur before calling btr_create().
sync_thread_add_level(): Remove the relaxation of the assertion added in r968.
order to be violated if the thread holds dict_operation_lock, whose level is
SYNC_DICT_OPERATION. This removes the assertion failure of TRUNCATE TABLE
#ifdef UNIV_SYNC_DEBUG.
ChangeSet
2006/10/09 19:51:41+04:00 gkodinov@macbook.local
Bug #22781: SQL_BIG_RESULT fails to influence sort plan
Currently SQL_BIG_RESULT is checked only at compile time.
However, additional optimizations may take place after
this check that change the sort method from 'filesort'
to sorting via index. As a result the actual plan
executed is not the one specified by the SQL_BIG_RESULT
hint. Similarly, there is no such test when executing
EXPLAIN, resulting in incorrect output.
The patch corrects the problem by testing for
SQL_BIG_RESULT both during the explain and execution
phases.
instead of passing the wrong length to ut_print_namel(). (Bug #23368)
ut_print_name(), ut_print_namel(): Document the special treatment of '/'.
ut_print_namel(): Replace strchr() with memchr(), as the string might
not be NUL-terminated.
check thd->in_lock_tables but test if
thd->lex->sql_command == SQLCOM_LOCK_TABLES
instead. Otherwise, stored functions will use table locks. (Bug #18077)
This patch is from Heikki.
ha_innodb.cc: innodb_mutex_show_status(): Add (ulong) casts to
ulonglong expressions being passed to fprintf %lu. The warnings
were apparently introduced by MySQL AB developers.
mysql_declare_plugin(innobase): Add PLUGIN_LICENSE_GPL.
have_innodb.inc: Merge changes from MySQL AB.
dict_col_copy_type_noninline(): Remove the return statement.
Some compilers do not allow return expressions of void type.
innobase_start_or_create_for_mysql(): Do not cap srv_max_threads to 1000
on Windows.
Makefile.am (EXTRA_DIST): Add plug.in
innodb_unsafe_binlog, innodb_handler, innodb-big, innodb_cache-master,
innodb-deadlock, innodb_cache: Remove. These have been renamed in the
MySQL tree.
innodb_mysql: Update.
ChangeSet
2006/09/30 18:44:42-07:00 brian@zim.(none)
Merge zim.(none):/home/brian/mysql/merge-5.1
into zim.(none):/home/brian/mysql/arch-5.1
ChangeSet
2006/09/30 12:49:46-07:00 brian@zim.(none)
This patch adds handlerton passing to functions. NDB and Innodb still require a global hanlderton in the main code due to the nature of the sql_cache call back function (should be solveable... another patch).
Partitioning now has a flag to allow disabling of engines from being compatible with partitioning. Cleaned up heap naming convention on panic call.
ChangeSet
2006/09/29 17:19:02-07:00 brian@zim.(none)
This removes the passing of global hton to engine instance.
ChangeSet
2006/09/28 13:22:56+02:00 gbichot@dl145h.mysql.com
Merge gbichot@bk-internal:/home/bk/mysql-5.1-arch
into dl145h.mysql.com:/users/gbichot/mysql-5.1-arch
ChangeSet
2006/09/28 13:19:43+02:00 gbichot@dl145h.mysql.com
In the handlerton, cursor creation function don't have an argument
and so the engine calls current_thd to derive transaction information;
instead we now pass THD to those functions, it looks more logical
(it makes the implicit current_thd parameter more visible).
Approved by Brian and Monty.
ChangeSet
2006/09/26 22:51:53-07:00 brian@zim.(none)
Merge zim.(none):/home/brian/mysql/merge-5.1
into zim.(none):/home/brian/mysql/arch-5.1
bug would only surface if the InnoDB SQL interpreter were used for
updating fixed-length columns. Currently (as the UPD_NODE_NO_SIZE_CHANGE
flag is never set), cmpl_info can only be 0 or UPD_NODE_NO_ORD_CHANGE.
Luckily, UPD_NODE_NO_ORD_CHANGE is 1, and the condition was simplified
to !cmpl_info.
prebuilt->stored_select_lock_type being LOCK_X or LOCK_S.
This would cause false alarms with INSERT ... SELECT, which would use
LOCK_NONE in innodb_locks_unsafe_for_binlog mode. (Bug #10746)
so that all integer fields can be packed into 64 bits. (Bug #20877)
dtype_t: Change the type of all bit-fields to unsigned.
dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
dict_table_get_sys_col(), dict_field_get_col(): Return const
dict_col_t*, so that changes to dict_col_t can be detected more
easily. Add const to many dict_col_t* declarations.
dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
dict_col_get_type(): Replace with dict_col_copy_type().
dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
dict_col_get_sql_null_size(): New functions.
dtype_get_at_most_n_mbchars(): Replace the parameter dtype
with the parameters prtype, mbminlen, mbmaxlen.
dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
cmp_whole_field(): Replace the dtype_t* parameter with the ulint
parameters mtype, prtype.
dtype_copy(): Add a const qualifier to type2 (the one being copied from).
dtype_set_mblen(): Replaced with dtype_get_mblen().
dtype_get_fixed_size_low(), dtype_get_min_size_low(),
dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
dtype_get_min_size(), and dtype_get_max_size(). These are used by the
dict_col_get_{fixed,min,max}_size() functions.
cmp_types_are_equal(): Replace with cmp_cols_are_equal().
dict_table_get_col_name(): Add a const qualifier parameter to the
parameter "table".
dtype_binary, dtype_binary_val: Remove.
dtype_is_fixed_size(): Remove.
rw_lock_t: Do not make writer_is_wait_ex a bit-field. There are no fields
yet that could be fused to the same machine word, but we play it safe,
because the field writer_is_wait_ex may be modified by several threads
simultaneously. Such fields should always be allocated an own machine
word.
dict_table_t: Change the type of all bit-fields to "unsigned". Make
"space" a bit-field of 32 bits. Move name_hash and id_hash after all
bit-fields, so that the bit-fields can be allocated together. Do not
make autoinc_inited a bit-field, as we cannot allocate any field
from the same machine word.
dict_build_table_def_step(): Pass a local variable to
fil_create_new_single_table_tablespace() and initialize table->space
from it after the call, now that table->space is a bit-field.
it should be redo-logged because the data structure is file-based;
this patch does not fix any bug; the original erase operation was added
in r781 to fix Valgrind Bug #20791
There always was a one-to-one mapping between dict_tree_t and dict_index_t.
This saves 6 machine words per B-tree index in the data dictionary
cache plus the memory allocation overhead. We save one mem_heap_t
object per index (15 machine words). Considering the internal
fragmentation of the buddy allocator in mem_area_alloc(), this should
save 32 machine words per index (128 bytes on 32-bit systems and 256
bytes on 64-bit systems). (Bug #20877)
struct dict_tree_struct, dict_tree_t: Remove.
struct dict_index_struct: Add page and lock.
dict_tree_create(): Remove. Replace the invocation with
assignment to index->page and a call to rw_lock_create(&index->lock).
dict_tree_free(): Remove. Replace the invocation wtih
a call to rw_lock_free(&index->lock).
dict_index_get_tree(): Remove.
dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
and remove the parameter, which was unused.
btr_level_list_remove(): Remove the unused parameter "tree".
Replace the occurrences of "tree" with "index" in names of variables,
functions and data types, e.g. "dict_tree_t tree" becomes
"dict_index_t index". Remove local variables "tree" or "index" of
functions that needed both "tree" and "index".