WL#6161 Integrating with InnoDB codebase in MySQL 5.5
Changes in the InnoDB codebase required to compile and integrate the MEB codebase with MySQL 5.5. @ storage/innobase/btr/btr0btr.c Excluded buffer pool usage from MEB build. buf_pool_from_bpage calls are in buf0buf.ic, and the buffer pool functions from that file are disabled in MEB. @ storage/innobase/buf/buf0buf.c Disabling more buffer pool functions unused in MEB. @ storage/innobase/dict/dict0dict.c Disabling dict_ind_free that is unused in MEB. @ storage/innobase/dict/dict0mem.c The include #include "ha_prototypes.h" Was causing conflicts with definitions in my_global.h Linking C executable mysqlbackup libinnodb.a(dict0mem.c.o): In function `dict_mem_foreign_table_name_lookup_set': dict0mem.c:(.text+0x91c): undefined reference to `innobase_get_lower_case_table_names' libinnodb.a(dict0mem.c.o): In function `dict_mem_referenced_table_name_lookup_set': dict0mem.c:(.text+0x9fc): undefined reference to `innobase_get_lower_case_table_names' libinnodb.a(dict0mem.c.o): In function `dict_mem_foreign_table_name_lookup_set': dict0mem.c:(.text+0x96e): undefined reference to `innobase_casedn_str' libinnodb.a(dict0mem.c.o): In function `dict_mem_referenced_table_name_lookup_set': dict0mem.c:(.text+0xa4e): undefined reference to `innobase_casedn_str' collect2: ld returned 1 exit status make[2]: *** [mysqlbackup] Error 1 innobase_get_lower_case_table_names innobase_casedn_str are functions that are part of ha_innodb.cc that is not part of the build dict_mem_foreign_table_name_lookup_set function is not there in the current codebase, meaning we do not use it in MEB. @ storage/innobase/fil/fil0fil.c The srv_fast_shutdown variable is declared in srv0srv.c that is not compiled in the mysqlbackup codebase. This throws an undeclared error. From the Manual --------------- innodb_fast_shutdown -------------------- The InnoDB shutdown mode. The default value is 1 as of MySQL 3.23.50, which causes a “fast� shutdown (the normal type of shutdown). If the value is 0, InnoDB does a full purge and an insert buffer merge before a shutdown. These operations can take minutes, or even hours in extreme cases. If the value is 1, InnoDB skips these operations at shutdown. This ideally does not matter from mysqlbackup @ storage/innobase/ha/ha0ha.c In file included from /home/narayanan/mysql-server/mysql-5.5-meb-rel3.8-innodb-integration-1/storage/innobase/ha/ha0ha.c:34:0: /home/narayanan/mysql-server/mysql-5.5-meb-rel3.8-innodb-integration-1/storage/innobase/include/btr0sea.h:286:17: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token make[2]: *** [CMakeFiles/innodb.dir/home/narayanan/mysql-server/mysql-5.5-meb-rel3.8-innodb-integration-1/storage/innobase/ha/ha0ha.c.o] Error 1 make[1]: *** [CMakeFiles/innodb.dir/all] Error 2 make: *** [all] Error 2 # include "sync0rw.h" is excluded from hotbackup compilation in dict0dict.h This causes extern rw_lock_t* btr_search_latch_temp; to throw a failure because the definition of rw_lock_t is not found. @ storage/innobase/include/buf0buf.h Excluding buffer pool functions that are unused from the MEB codebase. @ storage/innobase/include/buf0buf.ic replicated the exclusion of #include "buf0flu.h" #include "buf0lru.h" #include "buf0rea.h" by looking at the current codebase in <meb-trunk>/src/innodb @ storage/innobase/include/dict0dict.h dict_table_x_lock_indexes, dict_table_x_unlock_indexes, dict_table_is_corrupted, dict_index_is_corrupted, buf_block_buf_fix_inc_func are unused in MEB and was leading to compilation errors and hence excluded. @ storage/innobase/include/dict0dict.ic dict_table_x_lock_indexes, dict_table_x_unlock_indexes, dict_table_is_corrupted, dict_index_is_corrupted, buf_block_buf_fix_inc_func are unused in MEB and was leading to compilation errors and hence excluded. @ storage/innobase/include/log0log.h /home/narayanan/mysql-server/mysql-5.5-meb-rel3.8-innodb-integration-1/storage/innobase/include/log0log.h: At top level: /home/narayanan/mysql-server/mysql-5.5-meb-rel3.8-innodb-integration-1/storage/innobase/include/log0log.h:767:2: error: expected specifier-qualifier-list before â⠂¬Ëœmutex_t’ mutex_t definitions were excluded as seen from ambient code hence excluding definition for log_flush_order_mutex also. @ storage/innobase/include/os0file.h Bug in InnoDB code, create_mode should have been create. @ storage/innobase/include/srv0srv.h In file included from /home/narayanan/mysql-server/mysql-5.5-meb-rel3.8-innodb-integration-1/storage/innobase/buf/buf0buf.c:50:0: /home/narayanan/mysql-server/mysql-5.5-meb-rel3.8-innodb-integration-1/storage/innobase/include/srv0srv.h: At top level: /home/narayanan/mysql-server/mysql-5.5-meb-rel3.8-innodb-integration-1/storage/innobase/include/srv0srv.h:120:16: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘srv_use_native_aio’ srv_use_native_aio - we do not use native aio of the OS anyway from MEB. MEB does not compile InnoDB with this option. Hence disabling it. @ storage/innobase/include/trx0sys.h [ 56%] Building C object CMakeFiles/innodb.dir/home/narayanan/mysql-server/mysql-5.5-meb-rel3.8-innodb-integration-1/storage/innobase/trx/trx0sys.c.o /home/narayanan/mysql-server/mysql-5.5-meb-rel3.8-innodb-integration-1/storage/innobase/trx/trx0sys.c: In function ‘trx_sys_read_file_format_id’: /home/narayanan/mysql-server/mysql-5.5-meb-rel3.8-innodb-integration-1/storage/innobase/trx/trx0sys.c:1499:20: error: ‘TRX_SYS_FILE_FORMAT_TAG_MAGIC_N’ undeclared (first use in this function) /home/narayanan/mysql-server/mysql-5.5-meb-rel3.8-innodb-integration-1/storage/innobase/trx/trx0sys.c:1499:20: note: each undeclared identifier is reported only once for each function it appears in /home/narayanan/mysql-server/mysql-5.5-meb-rel3.8-innodb-integration-1/storage/innobase/trx/trx0sys.c: At top level: /home/narayanan/mysql-server/mysql-5.5-meb-rel3.8-innodb-integration-1/storage/innobase/include/buf0buf.h:607:1: warning: ‘buf_block_buf_fix_inc_func’ declared ‘static’ but never defined make[2]: *** [CMakeFiles/innodb.dir/home/narayanan/mysql-server/mysql-5.5-meb-rel3.8-innodb-integration-1/storage/innobase/trx/trx0sys.c.o] Error 1 unused calls excluded to enable compilation @ storage/innobase/mem/mem0dbg.c excluding #include "ha_prototypes.h" that lead to definitions in ha_innodb.cc @ storage/innobase/os/os0file.c InnoDB not compiled with aio support from MEB anyway. Hence excluding this from the compilation. @ storage/innobase/page/page0zip.c page0zip.c:(.text+0x4e9e): undefined reference to `buf_pool_from_block' collect2: ld returned 1 exit status buf_pool_from_block defined in buf0buf.ic, most of the file is excluded for compilation of MEB @ storage/innobase/ut/ut0dbg.c excluding #include "ha_prototypes.h" since it leads to definitions in ha_innodb.cc innobase_basename(file) is defined in ha_innodb.cc. Hence excluding that also. @ storage/innobase/ut/ut0ut.c cal_tm unused from MEB, was leading to earnings, hence disabling for MEB.
This commit is contained in:
parent
22b9ca0af0
commit
f29bfa7eee
@ -42,6 +42,7 @@ Created 6/2/1994 Heikki Tuuri
|
||||
#include "ibuf0ibuf.h"
|
||||
#include "trx0trx.h"
|
||||
|
||||
#endif /* UNIV_HOTBACKUP */
|
||||
/**************************************************************//**
|
||||
Report that an index page is corrupted. */
|
||||
UNIV_INTERN
|
||||
@ -64,6 +65,7 @@ btr_corruption_report(
|
||||
buf_page_print(buf_block_get_frame(block), 0, 0);
|
||||
}
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
#ifdef UNIV_BLOB_DEBUG
|
||||
# include "srv0srv.h"
|
||||
# include "ut0rbt.h"
|
||||
@ -1575,7 +1577,9 @@ btr_page_reorganize_low(
|
||||
dict_index_t* index, /*!< in: record descriptor */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
{
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
buf_pool_t* buf_pool = buf_pool_from_bpage(&block->page);
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
page_t* page = buf_block_get_frame(block);
|
||||
page_zip_des_t* page_zip = buf_block_get_page_zip(block);
|
||||
buf_block_t* temp_block;
|
||||
|
@ -302,7 +302,6 @@ struct buf_chunk_struct{
|
||||
was allocated for the frames */
|
||||
buf_block_t* blocks; /*!< array of buffer control blocks */
|
||||
};
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
/********************************************************************//**
|
||||
Gets the smallest oldest_modification lsn for any page in the pool. Returns
|
||||
@ -438,6 +437,7 @@ buf_block_alloc(
|
||||
|
||||
return(block);
|
||||
}
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
/********************************************************************//**
|
||||
Calculates a page checksum which is stored to the page when it is written
|
||||
|
@ -169,6 +169,7 @@ void
|
||||
dict_field_print_low(
|
||||
/*=================*/
|
||||
const dict_field_t* field); /*!< in: field */
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/*********************************************************************//**
|
||||
Frees a foreign key struct. */
|
||||
static
|
||||
@ -182,7 +183,7 @@ and unique key errors */
|
||||
UNIV_INTERN FILE* dict_foreign_err_file = NULL;
|
||||
/* mutex protecting the foreign and unique error buffers */
|
||||
UNIV_INTERN mutex_t dict_foreign_err_mutex;
|
||||
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/******************************************************************//**
|
||||
Makes all characters in a NUL-terminated UTF-8 string lower case. */
|
||||
UNIV_INTERN
|
||||
@ -2247,6 +2248,7 @@ dict_index_build_internal_non_clust(
|
||||
return(new_index);
|
||||
}
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/*====================== FOREIGN KEY PROCESSING ========================*/
|
||||
|
||||
/*********************************************************************//**
|
||||
@ -2511,6 +2513,7 @@ dict_foreign_find_equiv_index(
|
||||
FALSE/* allow columns to be NULL */));
|
||||
}
|
||||
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/**********************************************************************//**
|
||||
Returns an index object by matching on the name and column names and
|
||||
if more than one index matches return the index with the max id
|
||||
@ -2570,6 +2573,7 @@ dict_table_get_index_by_max_id(
|
||||
return(found);
|
||||
}
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/**********************************************************************//**
|
||||
Report an error in a foreign key definition. */
|
||||
static
|
||||
@ -2735,6 +2739,7 @@ dict_foreign_add_to_cache(
|
||||
return(DB_SUCCESS);
|
||||
}
|
||||
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/*********************************************************************//**
|
||||
Scans from pointer onwards. Stops if is at the start of a copy of
|
||||
'string' where characters are compared without case sensitivity, and
|
||||
@ -3214,6 +3219,7 @@ end_of_string:
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/*********************************************************************//**
|
||||
Finds the highest [number] for foreign key constraints of the table. Looks
|
||||
only at the >= 4.0.18-format id's, which are of the form
|
||||
@ -4050,7 +4056,7 @@ syntax_error:
|
||||
}
|
||||
|
||||
/*==================== END OF FOREIGN KEY PROCESSING ====================*/
|
||||
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/**********************************************************************//**
|
||||
Returns an index object if it is found in the dictionary cache.
|
||||
Assumes that dict_sys->mutex is already being held.
|
||||
@ -4411,6 +4417,7 @@ fake_statistics:
|
||||
dict_table_stats_unlock(table, RW_X_LATCH);
|
||||
}
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/**********************************************************************//**
|
||||
Prints info of a foreign key constraint. */
|
||||
static
|
||||
@ -4441,6 +4448,7 @@ dict_foreign_print_low(
|
||||
fputs(" )\n", stderr);
|
||||
}
|
||||
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/**********************************************************************//**
|
||||
Prints a table data. */
|
||||
UNIV_INTERN
|
||||
@ -4622,6 +4630,7 @@ dict_field_print_low(
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/**********************************************************************//**
|
||||
Outputs info on a foreign key of a table in a format suitable for
|
||||
CREATE TABLE. */
|
||||
@ -4810,6 +4819,7 @@ dict_print_info_on_foreign_keys(
|
||||
mutex_exit(&(dict_sys->mutex));
|
||||
}
|
||||
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/********************************************************************//**
|
||||
Displays the names of the index and the table. */
|
||||
UNIV_INTERN
|
||||
|
@ -33,8 +33,8 @@ Created 1/8/1996 Heikki Tuuri
|
||||
#include "data0type.h"
|
||||
#include "mach0data.h"
|
||||
#include "dict0dict.h"
|
||||
#include "ha_prototypes.h" /* innobase_casedn_str()*/
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
# include "ha_prototypes.h" /* innobase_casedn_str()*/
|
||||
# include "lock0lock.h"
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
#ifdef UNIV_BLOB_DEBUG
|
||||
@ -272,6 +272,7 @@ dict_mem_index_create(
|
||||
return(index);
|
||||
}
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/**********************************************************************//**
|
||||
Creates and initializes a foreign constraint memory object.
|
||||
@return own: foreign constraint struct */
|
||||
@ -346,6 +347,7 @@ dict_mem_referenced_table_name_lookup_set(
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/**********************************************************************//**
|
||||
Adds a field definition to an index. NOTE: does not take a copy
|
||||
of the column name if the field is a column. The memory occupied
|
||||
|
@ -857,8 +857,10 @@ fil_node_close_file(
|
||||
ut_a(node->open);
|
||||
ut_a(node->n_pending == 0);
|
||||
ut_a(node->n_pending_flushes == 0);
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
ut_a(node->modification_counter == node->flush_counter
|
||||
|| srv_fast_shutdown == 2);
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
ret = os_file_close(node->handle);
|
||||
ut_a(ret);
|
||||
|
@ -28,6 +28,7 @@ Created 8/22/1994 Heikki Tuuri
|
||||
#include "ha0ha.ic"
|
||||
#endif
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
#ifdef UNIV_DEBUG
|
||||
# include "buf0buf.h"
|
||||
#endif /* UNIV_DEBUG */
|
||||
@ -51,17 +52,13 @@ ha_create_func(
|
||||
hash table: must be a power of 2, or 0 */
|
||||
{
|
||||
hash_table_t* table;
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
ulint i;
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
ut_ad(ut_is_2pow(n_mutexes));
|
||||
table = hash_create(n);
|
||||
|
||||
#if defined UNIV_AHI_DEBUG || defined UNIV_DEBUG
|
||||
# ifndef UNIV_HOTBACKUP
|
||||
table->adaptive = TRUE;
|
||||
# endif /* !UNIV_HOTBACKUP */
|
||||
#endif /* UNIV_AHI_DEBUG || UNIV_DEBUG */
|
||||
/* Creating MEM_HEAP_BTR_SEARCH type heaps can potentially fail,
|
||||
but in practise it never should in this case, hence the asserts. */
|
||||
@ -74,7 +71,6 @@ ha_create_func(
|
||||
return(table);
|
||||
}
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
hash_create_mutexes(table, n_mutexes, mutex_level);
|
||||
|
||||
table->heaps = mem_alloc(n_mutexes * sizeof(void*));
|
||||
@ -83,7 +79,6 @@ ha_create_func(
|
||||
table->heaps[i] = mem_heap_create_in_btr_search(4096);
|
||||
ut_a(table->heaps[i]);
|
||||
}
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
return(table);
|
||||
}
|
||||
@ -134,7 +129,6 @@ ha_insert_for_fold_func(
|
||||
while (prev_node != NULL) {
|
||||
if (prev_node->fold == fold) {
|
||||
#if defined UNIV_AHI_DEBUG || defined UNIV_DEBUG
|
||||
# ifndef UNIV_HOTBACKUP
|
||||
if (table->adaptive) {
|
||||
buf_block_t* prev_block = prev_node->block;
|
||||
ut_a(prev_block->frame
|
||||
@ -143,7 +137,6 @@ ha_insert_for_fold_func(
|
||||
prev_block->n_pointers--;
|
||||
block->n_pointers++;
|
||||
}
|
||||
# endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
prev_node->block = block;
|
||||
#endif /* UNIV_AHI_DEBUG || UNIV_DEBUG */
|
||||
@ -171,11 +164,9 @@ ha_insert_for_fold_func(
|
||||
ha_node_set_data(node, block, data);
|
||||
|
||||
#if defined UNIV_AHI_DEBUG || defined UNIV_DEBUG
|
||||
# ifndef UNIV_HOTBACKUP
|
||||
if (table->adaptive) {
|
||||
block->n_pointers++;
|
||||
}
|
||||
# endif /* !UNIV_HOTBACKUP */
|
||||
#endif /* UNIV_AHI_DEBUG || UNIV_DEBUG */
|
||||
|
||||
node->fold = fold;
|
||||
@ -217,13 +208,11 @@ ha_delete_hash_node(
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
ut_ad(btr_search_enabled);
|
||||
#if defined UNIV_AHI_DEBUG || defined UNIV_DEBUG
|
||||
# ifndef UNIV_HOTBACKUP
|
||||
if (table->adaptive) {
|
||||
ut_a(del_node->block->frame = page_align(del_node->data));
|
||||
ut_a(del_node->block->n_pointers > 0);
|
||||
del_node->block->n_pointers--;
|
||||
}
|
||||
# endif /* !UNIV_HOTBACKUP */
|
||||
#endif /* UNIV_AHI_DEBUG || UNIV_DEBUG */
|
||||
|
||||
HASH_DELETE_AND_COMPACT(ha_node_t, next, table, del_node);
|
||||
@ -264,13 +253,11 @@ ha_search_and_update_if_found_func(
|
||||
|
||||
if (node) {
|
||||
#if defined UNIV_AHI_DEBUG || defined UNIV_DEBUG
|
||||
# ifndef UNIV_HOTBACKUP
|
||||
if (table->adaptive) {
|
||||
ut_a(node->block->n_pointers > 0);
|
||||
node->block->n_pointers--;
|
||||
new_block->n_pointers++;
|
||||
}
|
||||
# endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
node->block = new_block;
|
||||
#endif /* UNIV_AHI_DEBUG || UNIV_DEBUG */
|
||||
@ -278,7 +265,6 @@ ha_search_and_update_if_found_func(
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/*****************************************************************//**
|
||||
Removes from the chain determined by fold all nodes whose data pointer
|
||||
points to the page given. */
|
||||
|
@ -92,6 +92,8 @@ insert/delete buffer when the record is not in the buffer pool. */
|
||||
buffer when the record is not in the buffer pool. */
|
||||
#define BTR_DELETE 8192
|
||||
|
||||
#endif /* UNIV_HOTBACKUP */
|
||||
|
||||
/**************************************************************//**
|
||||
Report that an index page is corrupted. */
|
||||
UNIV_INTERN
|
||||
@ -112,6 +114,7 @@ btr_corruption_report(
|
||||
ut_error; \
|
||||
}
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
#ifdef UNIV_BLOB_DEBUG
|
||||
# include "ut0rbt.h"
|
||||
/** An index->blobs entry for keeping track of off-page column references */
|
||||
|
@ -39,6 +39,8 @@ typedef struct btr_cur_struct btr_cur_t;
|
||||
/** B-tree search information for the adaptive hash index */
|
||||
typedef struct btr_search_struct btr_search_t;
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
|
||||
/** @brief The latch protecting the adaptive search system
|
||||
|
||||
This latch protects the
|
||||
@ -54,6 +56,8 @@ Bear in mind (3) and (4) when using the hash index.
|
||||
*/
|
||||
extern rw_lock_t* btr_search_latch_temp;
|
||||
|
||||
#endif /* UNIV_HOTBACKUP */
|
||||
|
||||
/** The latch protecting the adaptive search system */
|
||||
#define btr_search_latch (*btr_search_latch_temp)
|
||||
|
||||
|
@ -593,34 +593,34 @@ ib_uint64_t
|
||||
buf_block_get_modify_clock(
|
||||
/*=======================*/
|
||||
buf_block_t* block); /*!< in: block */
|
||||
#else /* !UNIV_HOTBACKUP */
|
||||
# define buf_block_modify_clock_inc(block) ((void) 0)
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/*******************************************************************//**
|
||||
Increments the bufferfix count. */
|
||||
UNIV_INLINE
|
||||
void
|
||||
buf_block_buf_fix_inc_func(
|
||||
/*=======================*/
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
# ifdef UNIV_SYNC_DEBUG
|
||||
const char* file, /*!< in: file name */
|
||||
ulint line, /*!< in: line */
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
# endif /* UNIV_SYNC_DEBUG */
|
||||
buf_block_t* block) /*!< in/out: block to bufferfix */
|
||||
__attribute__((nonnull));
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
# ifdef UNIV_SYNC_DEBUG
|
||||
/** Increments the bufferfix count.
|
||||
@param b in/out: block to bufferfix
|
||||
@param f in: file name where requested
|
||||
@param l in: line number where requested */
|
||||
# define buf_block_buf_fix_inc(b,f,l) buf_block_buf_fix_inc_func(f,l,b)
|
||||
#else /* UNIV_SYNC_DEBUG */
|
||||
# else /* UNIV_SYNC_DEBUG */
|
||||
/** Increments the bufferfix count.
|
||||
@param b in/out: block to bufferfix
|
||||
@param f in: file name where requested
|
||||
@param l in: line number where requested */
|
||||
# define buf_block_buf_fix_inc(b,f,l) buf_block_buf_fix_inc_func(b)
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
# endif /* UNIV_SYNC_DEBUG */
|
||||
#else /* !UNIV_HOTBACKUP */
|
||||
# define buf_block_modify_clock_inc(block) ((void) 0)
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/********************************************************************//**
|
||||
Calculates a page checksum which is stored to the page when it is written
|
||||
to a file. Note that we must be careful to calculate the same value
|
||||
|
@ -31,6 +31,7 @@ Created 11/5/1995 Heikki Tuuri
|
||||
*******************************************************/
|
||||
|
||||
#include "mtr0mtr.h"
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
#include "buf0flu.h"
|
||||
#include "buf0lru.h"
|
||||
#include "buf0rea.h"
|
||||
@ -180,6 +181,7 @@ buf_page_peek_if_too_old(
|
||||
return(!buf_page_peek_if_young(bpage));
|
||||
}
|
||||
}
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
/*********************************************************************//**
|
||||
Gets the state of a block.
|
||||
|
@ -750,6 +750,7 @@ ulint
|
||||
dict_table_zip_size(
|
||||
/*================*/
|
||||
const dict_table_t* table); /*!< in: table */
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/*********************************************************************//**
|
||||
Obtain exclusive locks on all index trees of the table. This is to prevent
|
||||
accessing index trees while InnoDB is updating internal metadata for
|
||||
@ -766,6 +767,7 @@ void
|
||||
dict_table_x_unlock_indexes(
|
||||
/*========================*/
|
||||
dict_table_t* table); /*!< in: table */
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/********************************************************************//**
|
||||
Checks if a column is in the ordering columns of the clustered index of a
|
||||
table. Column prefixes are treated like whole columns.
|
||||
@ -1251,7 +1253,7 @@ UNIV_INTERN
|
||||
void
|
||||
dict_close(void);
|
||||
/*============*/
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/**********************************************************************//**
|
||||
Check whether the table is corrupted.
|
||||
@return nonzero for corrupted table, zero for valid tables */
|
||||
@ -1272,6 +1274,7 @@ dict_index_is_corrupted(
|
||||
const dict_index_t* index) /*!< in: index */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/**********************************************************************//**
|
||||
Flags an index and table corrupted both in the data dictionary cache
|
||||
and in the system table SYS_INDEXES. */
|
||||
|
@ -491,6 +491,7 @@ dict_table_zip_size(
|
||||
return(dict_table_flags_to_zip_size(table->flags));
|
||||
}
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/*********************************************************************//**
|
||||
Obtain exclusive locks on all index trees of the table. This is to prevent
|
||||
accessing index trees while InnoDB is updating internal metadata for
|
||||
@ -533,6 +534,7 @@ dict_table_x_unlock_indexes(
|
||||
rw_lock_x_unlock(dict_index_get_lock(index));
|
||||
}
|
||||
}
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/********************************************************************//**
|
||||
Gets the number of fields in the internal representation of an index,
|
||||
including fields added by the dictionary system.
|
||||
|
@ -762,7 +762,6 @@ struct log_struct{
|
||||
buffer */
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
mutex_t mutex; /*!< mutex protecting the log */
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
mutex_t log_flush_order_mutex;/*!< mutex to serialize access to
|
||||
the flush list when we are putting
|
||||
@ -772,6 +771,7 @@ struct log_struct{
|
||||
mtr_commit and still ensure that
|
||||
insertions in the flush_list happen
|
||||
in the LSN order. */
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
byte* buf_ptr; /* unaligned log buffer */
|
||||
byte* buf; /*!< log buffer */
|
||||
ulint buf_size; /*!< log buffer size in bytes */
|
||||
|
@ -309,7 +309,7 @@ to original un-instrumented file I/O APIs */
|
||||
os_file_create_func(name, create, purpose, type, success)
|
||||
|
||||
# define os_file_create_simple(key, name, create, access, success) \
|
||||
os_file_create_simple_func(name, create_mode, access, success)
|
||||
os_file_create_simple_func(name, create, access, success)
|
||||
|
||||
# define os_file_create_simple_no_error_handling( \
|
||||
key, name, create_mode, access, success) \
|
||||
|
@ -111,13 +111,13 @@ extern ulint srv_max_file_format_at_startup;
|
||||
/** Place locks to records only i.e. do not use next-key locking except
|
||||
on duplicate key checking and foreign key checking */
|
||||
extern ibool srv_locks_unsafe_for_binlog;
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
/* If this flag is TRUE, then we will use the native aio of the
|
||||
OS (provided we compiled Innobase with it in), otherwise we will
|
||||
use simulated aio we build below with threads.
|
||||
Currently we support native aio on windows and linux */
|
||||
extern my_bool srv_use_native_aio;
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
#ifdef __WIN__
|
||||
extern ibool srv_use_native_conditions;
|
||||
#endif
|
||||
|
@ -222,7 +222,6 @@ UNIV_INLINE
|
||||
trx_id_t
|
||||
trx_sys_get_new_trx_id(void);
|
||||
/*========================*/
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
/* Flag to control TRX_RSEG_N_SLOTS behavior debugging. */
|
||||
@ -239,7 +238,6 @@ trx_write_trx_id(
|
||||
/*=============*/
|
||||
byte* ptr, /*!< in: pointer to memory where written */
|
||||
trx_id_t id); /*!< in: id */
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/*****************************************************************//**
|
||||
Reads a trx id from an index page. In case that the id size changes in
|
||||
some future version, this function should be used instead of
|
||||
@ -572,7 +570,6 @@ FIL_PAGE_ARCH_LOG_NO_OR_SPACE_NO. */
|
||||
#define TRX_SYS_DOUBLEWRITE_BLOCK_SIZE FSP_EXTENT_SIZE
|
||||
/* @} */
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/** File format tag */
|
||||
/* @{ */
|
||||
/** The offset of the file format tag on the trx system header page
|
||||
@ -591,6 +588,7 @@ identifier is added to this 64-bit constant. */
|
||||
| TRX_SYS_FILE_FORMAT_TAG_MAGIC_N_LOW)
|
||||
/* @} */
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/** Doublewrite control struct */
|
||||
struct trx_doublewrite_struct{
|
||||
mutex_t mutex; /*!< mutex protecting the first_free field and
|
||||
|
@ -24,7 +24,9 @@ but is included in mem0mem.* !
|
||||
Created 6/9/1994 Heikki Tuuri
|
||||
*************************************************************************/
|
||||
|
||||
#include "ha_prototypes.h"
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
# include "ha_prototypes.h"
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
#ifdef UNIV_MEM_DEBUG
|
||||
# ifndef UNIV_HOTBACKUP
|
||||
|
@ -303,6 +303,7 @@ UNIV_INTERN ulint os_n_pending_writes = 0;
|
||||
UNIV_INTERN ulint os_n_pending_reads = 0;
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
# ifndef UNIV_HOTBACKUP
|
||||
/**********************************************************************//**
|
||||
Validates the consistency the aio system some of the time.
|
||||
@return TRUE if ok or the check was skipped */
|
||||
@ -329,6 +330,7 @@ os_aio_validate_skip(void)
|
||||
os_aio_validate_count = OS_AIO_VALIDATE_SKIP;
|
||||
return(os_aio_validate());
|
||||
}
|
||||
# endif /* !UNIV_HOTBACKUP */
|
||||
#endif /* UNIV_DEBUG */
|
||||
|
||||
#ifdef __WIN__
|
||||
|
@ -4433,7 +4433,9 @@ page_zip_reorganize(
|
||||
dict_index_t* index, /*!< in: index of the B-tree node */
|
||||
mtr_t* mtr) /*!< in: mini-transaction */
|
||||
{
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
buf_pool_t* buf_pool = buf_pool_from_block(block);
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
page_zip_des_t* page_zip = buf_block_get_page_zip(block);
|
||||
page_t* page = buf_block_get_frame(block);
|
||||
buf_block_t* temp_block;
|
||||
|
@ -134,12 +134,12 @@ UNIV_INTERN mysql_pfs_key_t trx_doublewrite_mutex_key;
|
||||
UNIV_INTERN mysql_pfs_key_t file_format_max_mutex_key;
|
||||
#endif /* UNIV_PFS_MUTEX */
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
#ifdef UNIV_DEBUG
|
||||
/* Flag to control TRX_RSEG_N_SLOTS behavior debugging. */
|
||||
uint trx_rseg_n_slots_debug = 0;
|
||||
#endif
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/** This is used to track the maximum file format id known to InnoDB. It's
|
||||
updated via SET GLOBAL innodb_file_format_max = 'x' or when we open
|
||||
or create a table. */
|
||||
|
@ -25,7 +25,9 @@ Created 1/30/1994 Heikki Tuuri
|
||||
|
||||
#include "univ.i"
|
||||
#include "ut0dbg.h"
|
||||
#include "ha_prototypes.h"
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
# include "ha_prototypes.h"
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
#if defined(__GNUC__) && (__GNUC__ > 2)
|
||||
#else
|
||||
@ -56,7 +58,7 @@ ut_dbg_assertion_failed(
|
||||
ut_print_timestamp(stderr);
|
||||
#ifdef UNIV_HOTBACKUP
|
||||
fprintf(stderr, " InnoDB: Assertion failure in file %s line %lu\n",
|
||||
innobase_basename(file), line);
|
||||
file, line);
|
||||
#else /* UNIV_HOTBACKUP */
|
||||
fprintf(stderr,
|
||||
" InnoDB: Assertion failure in thread %lu"
|
||||
|
@ -245,7 +245,9 @@ ut_print_timestamp(
|
||||
(int)cal_tm.wMinute,
|
||||
(int)cal_tm.wSecond);
|
||||
#else
|
||||
#ifdef HAVE_LOCALTIME_R
|
||||
struct tm cal_tm;
|
||||
#endif
|
||||
struct tm* cal_tm_ptr;
|
||||
time_t tm;
|
||||
|
||||
@ -288,7 +290,9 @@ ut_sprintf_timestamp(
|
||||
(int)cal_tm.wMinute,
|
||||
(int)cal_tm.wSecond);
|
||||
#else
|
||||
#ifdef HAVE_LOCALTIME_R
|
||||
struct tm cal_tm;
|
||||
#endif
|
||||
struct tm* cal_tm_ptr;
|
||||
time_t tm;
|
||||
|
||||
@ -333,7 +337,9 @@ ut_sprintf_timestamp_without_extra_chars(
|
||||
(int)cal_tm.wMinute,
|
||||
(int)cal_tm.wSecond);
|
||||
#else
|
||||
#ifdef HAVE_LOCALTIME_R
|
||||
struct tm cal_tm;
|
||||
#endif
|
||||
struct tm* cal_tm_ptr;
|
||||
time_t tm;
|
||||
|
||||
@ -374,7 +380,9 @@ ut_get_year_month_day(
|
||||
*month = (ulint)cal_tm.wMonth;
|
||||
*day = (ulint)cal_tm.wDay;
|
||||
#else
|
||||
#ifdef HAVE_LOCALTIME_R
|
||||
struct tm cal_tm;
|
||||
#endif
|
||||
struct tm* cal_tm_ptr;
|
||||
time_t tm;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user