innodb_mysql.test, innodb_mysql.result:
Bug #16798: Uninitialized row buffer reads in ref-or-null optimizer
Bug #12882: min/max inconsistent on empty table
Test of behaviour with CREATE ... SELECT
Moved from group_min_max.test:
Bug #12672: primary key implicitly included in every innodb index
Bug #6142: a problem with empty innodb table
Bug #9798: group by with rollup
ChangeSet@2006/06/01 21:47:15+03:00 bell@sanja.is.com.ua
# interface for transaction log management added to handlerton
# iterators creation interface added to handlerton
ha_innodb.cc: Add get_log_status = create_iterator = NULL
ChangeSet@2006/06/04 18:52:22+03:00 monty@mysql.com
# This changeset is largely a handler cleanup changeset (WL#3281),
# but includes fixes and cleanups that was found necessary while
# testing the handler changes
# sql/ha_innodb.h
# 2006/06/04 18:52:09+03:00 monty@mysql.com +6 -13
# Update to 'newer' table handler interface
# - table_flags are now ulonglong
# - Added reset() method
# - Removed not needed ha_retrieve_all_cols() and ha_retrieve_all_pk()
# columns.
# - Made build_template() a class function to be able to easier access
# class variables
# sql/ha_innodb.cc
# 2006/06/04 18:52:09+03:00 monty@mysql.com +37 -44
# Update to 'newer' table handler interface
# - Update innobase_create_handler() to new interface
# - Removed HA_NOT_EXACT_COUNT (not needed)
# - Renamed HA_PRIMARY_KEY_ALLOW_RANDOM_ACCESS
# to HA_PRIMARY_KEY_REQUIRED_FOR_POSITION.
# - Prefixed base status variables with 'stats'
# - Use table column bitmaps instead of ha_get_bit_in_read_set()
# - Added ::reset(), with code from ::extra(HA_EXTRA_RESET)
# - Removed HA_EXTRA_RETRIVE_ALL_COLS and HA_EXTRA_RETRIEVE_PRIMARY_KEY as
# the table->read_set and table->write_set bitmaps now are accurate
ChangeSet@2006/06/02 22:21:32+02:00 guilhem@mysql.com
# First push for WL#3146 "less locking in auto_increment". It is a
# 0-real-change patch.
# New prototype for get_auto_increment() (but new arguments not yet used),
# to be able to reserve a finite interval of auto_increment values from
# cooperating engines.
# A hint on how many values to reserve is found in
# handler::estimation_rows_to_insert,
# filled by ha_start_bulk_insert(), new wrapper around start_bulk_insert().
# NOTE: this patch changes nothing, for all engines.
# But it makes the API ready for those
# engines which will want to do reservation.
# More csets will come to complete WL#3146.
ha_innodb.h, ha_innodb.cc: update to new prototype of get_auto_increment
ChangeSet@2006/05/28 14:51:01+02:00 serg@sergbook.mysql.com
# handlerton cleanup:
# duplicate fields removed, st_mysql_storage_engine added to support
# run-time handlerton initialization (no compiler warnings), handler API
# is now tied to MySQL version, handlerton->plugin mapping added
# (slot-based), dummy default_hton removed, plugin-type-specific
# initialization generalized, built-in plugins are now initialized too,
# --default-storage-engine no longer needs a list of storage engines
# in handle_options().
#
# sql/ha_innodb.h
# 2006/05/28 14:50:53+02:00 serg@sergbook.mysql.com +1 -1
# handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine,
# initialize handlerton run-time to avoid compiler warnings
#
# sql/ha_innodb.cc
# 2006/05/28 14:50:53+02:00 serg@sergbook.mysql.com +37 -52
# handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine,
# initialize handlerton run-time to avoid compiler warnings
ChangeSet@2006/06/01 23:59:34+02:00 serg@serg.mylan
# second patch for make distcheck
ha_innodb.cc: enclose in #ifdef WITH_INNOBASE_STORAGE_ENGINE / #endif
Fix bug #17264. For alter table on win32 for succesful operation completion
it is used TL_WRITE(=10) lock instead of TL_WRITE_ALLOW_READ(=6), however in
InnoDB handler TL_WRITE is lifted to TL_WRITE_ALLOW_WRITE, which causes race
condition when several clients do alter table simultaneously.
ut_print_name(), ut_print_namel(): Add parameter table_id for distinguishing
names of tables from other identifiers (names of indexes, columns and
constraints).
innobase_convert_from_table_id(), innobase_convert_from_id(),
innobase_convert_from_filename(), innobase_get_charset(): New functions.
dict_accept(), dict_scan_id(), dict_scan_col(), dict_scan_table_name(),
dict_skip_word(), dict_create_foreign_constraints_low():
Add parameter "cs", so that isspace() can be replaced with my_isspace(),
whose operation depends on the connection character set.
dict_scan_id(): Convert the identifier to UTF-8.
dict_str_starts_with_keyword(): New extern function, to replace dict_accept()
in row_search_for_mysql().
mysql_get_identifier_quote_char(): Replaced with innobase_print_identifier().
ha_innobase::create(): Remove the thd->convert_string() call.
Pass the statement to InnoDB in the connection character set
and let InnoDB convert the identifiers to UTF-8.
Remove unused dict_table_LRU_trim().
Remove unused 'trx' parameter from the functions dict_table_get_on_id_low,
dict_table_get and dict_table_get_and_increment_handle_count.
weakens the locks for this session similarly like the option
innodb_locks_unsafe_for_binlog. This patch removes almost all
gap locking (used in next-key locking) and makes MySQL to release
the row locks on the rows which does not belong to result set.
Additionally, nonlocking selects on INSERT INTO SELECT,
UPDATE ... (SELECT ...), and CREATE ... SELECT ... use a
nonlocking consistent read. If a binlog is used, then binlog
format should be set to row based binloging to make the execution
of the complex SQL statements.
r340: Fix http://bugs.mysql.com/bug.php?id=18283 in ha_innodb.cc and
http://bugs.mysql.com/bug.php?id=18238 in InnoDB
r339: Remove disk space leak on update of BLOB columns (Bug #18252).
btr_cur_pessimistic_update(): Invoke rec_get_offsets() after
rec_set_field_extern_bits().
btr_store_big_rec_extern_fields(): Note that offsets will no longer be
valid after calling this function.
r338: Fix bug 18238 : check in pessimistic insert and update if the buffer
pool is exhausted by locks
which can contain the new flag DICT_TF_COMPACT. Change dict_mem_table_create
to take a flags argument. Add dict_table_is_comp(). Adapt all users.
Change some places to explicitly assume that system tables do not use the
compact page format.
that were not part of r154. (Bug #3300)
innodb.test, innodb.result: Remove binlog related tests, because they
are not InnoDB specific; they merely require a transactional table.
ha_innobase::ha_innobase(): Add HA_PRIMARY_KEY_ALLOW_RANDOM_ACCESS
to table_flags.
ha_innobase::rnd_init(): Disable semi-consistent read for random access.
of breaking serializability. (Bug #3300)
ha_innobase::unlock_row(): reset the "did semi consistent read" flag
ha_innobase::was_semi_consistent_read(),
ha_innobase::try_semi_consistent_read(): new methods
row_prebuilt_t, row_create_prebuilt(): add field row_read_type for
keeping track of semi-consistent reads
row_vers_build_for_semi_consistent_read(),
row_sel_build_committed_vers_for_mysql(): new functions
row_search_for_mysql(): implement semi-consistent reads
Make innodb_thread_concurrency 0 by default, and extend the useable
range from 0 to 1000 (0 disables the thread throttling).
Remove SRV_CONCURRENCY_THRESHOLD (20). The magic value to
disable the thread throttling is 0 from now on.
Fixed a bug #16229 MySQL/InnoDB uses full explicit table locks
in trigger processing. Take a InnoDB table lock only if user has explicitly
requested a table lock. Added some additional comments to store_lock() and
external_lock(). Added test cases for a bug. Fixed some code style errors.