and lexer files). From now on, the following Emacs cc-mode settings apply
when indenting C function bodies in InnoDB:
(setq c-basic-offset 8)
(setq c-label-minimum-indentation 0)
(add-to-list 'c-offsets-alist '(c . 0))
(add-to-list 'c-offsets-alist '(label . [0]))
The indentation rules for function declarations still have not been
formalized, and they must be formatted manually.
Try to limit all lines to at most 79 characters (assuming TAB stops every
8 characters) by splitting lines before opening parenthesis, or at
string constants.
Fix some grammar mistakes in diagnostic output:
match to, match with -> match
found from -> found in
trying rename -> trying to rename
Fix an error in page_check_dir(): it said "supremum not pointed to"
when the infimum was not pointed to.
Enclose commented-out code snippets in #if 0 ... #endif instead of /* ... */.
Add (void*) casts to some %p parameters in fprintf() calls. Try to
split lines before a binary operator, not after one. (These three fixes
were not made everywhere.)
dict_scan_table_name(): Remove fallback to differently encoded name when
the table is not found. The encoding is handled at a higher level.
innodb.result: Adjust the results for changes in the foreign key error
messages.
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.
DB_ROW_ID", by refusing tables that use reserved column names.
Add dict_mem_table_free(), use it instead of duplicating the code everywhere.
Use already existing dict_mem_index_free().
Fix memory leaks in row_create_table_for_mysql() in rare corner cases.
the implementation would be challenging with ROW_FORMAT=COMPACT.
Remove the table types DICT_TABLE_CLUSTER_MEMBER and DICT_TABLE_CLUSTER and
all related tests and functions.
dict_table_t: Remove mix_id, mix_len, mix_id_len, mix_id_buf, and
cluster_name.
plan_t: Remove mixed_index.
dict_create_sys_tables_tuple(): Set MIX_ID=0, MIX_LEN=0 and CLUSTER_NAME=NULL
when inserting into SYS_TABLES.
dict_tree_check_search_tuple(): Enclose in #ifdef UNIV_DEBUG.
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.
Corrected some comments.
os_file_create_tmpfile(): Remove the implementation from InnoDB Hot Backup.
In InnoDB Hot Backup builds, do not define dict_casedn_str(),
which is invoked in fil_load_single_table_tablespace() on
Windows. This function depends on innobase_casedn_str() and
my_casedn_str().
Define btr_check_node_ptr() and data_error only #ifdef UNIV_DEBUG.
They are only being used in ut_ad() assertions.
Replace the occurrences of the type uint with ulint, because InnoDB
Hot Backup does not define any uint data type.
Disable lock_validate() in InnoDB Hot Backup builds.
Disable some unused static variables of srv0srv.c in InnoDB Hot Backup builds.
Disable some srv_table_...() functions in InnoDB Hot Backup builds.
Disable some unused static variables in srv0start.c in
InnoDB Hot Backup builds.
Disable io_handler_thread() in InnoDB Hot Backup builds.
Disable srv_calc_low32() and srv_calc_high32() in InnoDB Hot Backup builds
to avoid warnings about unused functions.
In fil_node_open_file(), avoid bogus assertions in InnoDB Hot Backup builds.
In fil_load_single_table_tablespace(), remove the call to dict_casedn_str(),
as it depends on MySQL code.
Copy the code of recv_reset_log_files_for_backup() from InnoDB Hot Backup.
Disable innobase_mysql_cmp(), cmp_whole_field(), cmp_data_data_slow(),
cmp_dtuple_rec_with_match() and cmp_rec_rec_with_match()
in InnoDB Hot Backup builds, as they depend on MySQL code.
Adapt dtype_set_mblen() and dtype_get_fixed_size() for InnoDB Hot Backup
builds, assuming that they will only be called on system tables, which
do not contain multi-byte characters.
Disable the static functions row_ins_set_exclusive_rec_lock() and
row_ins_dupl_error_with_rec() in InnoDB Hot Backup builds
to avoid warnings about unused functions.
In row_sel_field_store_in_mysql_format(), disable some UTF-8 related
assertions #ifndef UNIV_RELEASE_NOT_YET_STABLE.
LAST FOREIGN KEY ERROR section in SHOW INNODB STATUS output (Bug #16814).
dict_foreign_error_report(): Always print a newline after invoking
dict_print_info_on_foreign_key_in_create_format().
Do not mistake TABLENAME_ibfk_0 for auto-generated id (Bug #16387).
dict_table_get_highest_foreign_id(): Ignore foreign constraint identifiers
starting with the pattern TABLENAME_ibfk_0.
innodb.test, innodb.result: Add test case.
dict_load_columns(): Set the charset-collation code
DATA_MYSQL_BINARY_CHARSET_COLL for those binary string columns
that lack a charset-collation code, i.e., the tables were created
with an older version of MySQL/InnoDB than 4.1.2. (Bug #16298)
Mostly fix bug #13778, when FOREIGN_KEY_CHECKS=0 we still need to check
that datatypes between foreign key references are compatible.
Add test cases (also for bug #9802).