mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
Merge branch 'merge-innodb-5.6' into 10.0
This commit is contained in:
commit
a79d46c3a4
146 changed files with 1540 additions and 1480 deletions
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2012, Facebook Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
|
@ -1102,7 +1102,7 @@ that the caller has made the reservation for free extents!
|
|||
@retval block, rw_lock_x_lock_count(&block->lock) == 1 if allocation succeeded
|
||||
(init_mtr == mtr, or the page was not previously freed in mtr)
|
||||
@retval block (not allocated or initialized) otherwise */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
buf_block_t*
|
||||
btr_page_alloc_low(
|
||||
/*===============*/
|
||||
|
@ -1971,7 +1971,7 @@ IBUF_BITMAP_FREE is unaffected by reorganization.
|
|||
|
||||
@retval true if the operation was successful
|
||||
@retval false if it is a compressed page, and recompression failed */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
bool
|
||||
btr_page_reorganize_block(
|
||||
/*======================*/
|
||||
|
@ -2033,7 +2033,8 @@ btr_parse_page_reorganize(
|
|||
{
|
||||
ulint level;
|
||||
|
||||
ut_ad(ptr && end_ptr);
|
||||
ut_ad(ptr != NULL);
|
||||
ut_ad(end_ptr != NULL);
|
||||
|
||||
/* If dealing with a compressed page the record has the
|
||||
compression level used during original compression written in
|
||||
|
@ -2500,7 +2501,7 @@ func_exit:
|
|||
Returns TRUE if the insert fits on the appropriate half-page with the
|
||||
chosen split_rec.
|
||||
@return true if fits */
|
||||
static __attribute__((nonnull(1,3,4,6), warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull(1,3,4,6), warn_unused_result))
|
||||
bool
|
||||
btr_page_insert_fits(
|
||||
/*=================*/
|
||||
|
@ -2643,7 +2644,7 @@ btr_insert_on_non_leaf_level_func(
|
|||
/**************************************************************//**
|
||||
Attaches the halves of an index page on the appropriate level in an
|
||||
index tree. */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
btr_attach_half_pages(
|
||||
/*==================*/
|
||||
|
@ -2779,7 +2780,7 @@ btr_attach_half_pages(
|
|||
/*************************************************************//**
|
||||
Determine if a tuple is smaller than any record on the page.
|
||||
@return TRUE if smaller */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
bool
|
||||
btr_page_tuple_smaller(
|
||||
/*===================*/
|
||||
|
@ -3355,7 +3356,7 @@ Removes a page from the level list of pages.
|
|||
|
||||
/*************************************************************//**
|
||||
Removes a page from the level list of pages. */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
btr_level_list_remove_func(
|
||||
/*=======================*/
|
||||
|
@ -3371,7 +3372,8 @@ btr_level_list_remove_func(
|
|||
ulint prev_page_no;
|
||||
ulint next_page_no;
|
||||
|
||||
ut_ad(page && mtr);
|
||||
ut_ad(page != NULL);
|
||||
ut_ad(mtr != NULL);
|
||||
ut_ad(mtr_memo_contains_page(mtr, page, MTR_MEMO_PAGE_X_FIX));
|
||||
ut_ad(space == page_get_space_id(page));
|
||||
/* Get the previous and next page numbers of page */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2008, Google Inc.
|
||||
Copyright (c) 2012, Facebook Inc.
|
||||
|
||||
|
@ -1085,7 +1085,7 @@ This has to be done either within the same mini-transaction,
|
|||
or by invoking ibuf_reset_free_bits() before mtr_commit().
|
||||
|
||||
@return pointer to inserted record if succeed, else NULL */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
rec_t*
|
||||
btr_cur_insert_if_possible(
|
||||
/*=======================*/
|
||||
|
@ -1128,7 +1128,7 @@ btr_cur_insert_if_possible(
|
|||
/*************************************************************//**
|
||||
For an insert, checks the locks and does the undo logging if desired.
|
||||
@return DB_SUCCESS, DB_WAIT_LOCK, DB_FAIL, or error number */
|
||||
UNIV_INLINE __attribute__((warn_unused_result, nonnull(2,3,5,6)))
|
||||
UNIV_INLINE MY_ATTRIBUTE((warn_unused_result, nonnull(2,3,5,6)))
|
||||
dberr_t
|
||||
btr_cur_ins_lock_and_undo(
|
||||
/*======================*/
|
||||
|
@ -1654,7 +1654,7 @@ btr_cur_pessimistic_insert(
|
|||
/*************************************************************//**
|
||||
For an update, checks the locks and does the undo logging.
|
||||
@return DB_SUCCESS, DB_WAIT_LOCK, or error number */
|
||||
UNIV_INLINE __attribute__((warn_unused_result, nonnull(2,3,6,7)))
|
||||
UNIV_INLINE MY_ATTRIBUTE((warn_unused_result, nonnull(2,3,6,7)))
|
||||
dberr_t
|
||||
btr_cur_upd_lock_and_undo(
|
||||
/*======================*/
|
||||
|
@ -1673,7 +1673,7 @@ btr_cur_upd_lock_and_undo(
|
|||
const rec_t* rec;
|
||||
dberr_t err;
|
||||
|
||||
ut_ad(thr || (flags & BTR_NO_LOCKING_FLAG));
|
||||
ut_ad((thr != NULL) || (flags & BTR_NO_LOCKING_FLAG));
|
||||
|
||||
rec = btr_cur_get_rec(cursor);
|
||||
index = cursor->index;
|
||||
|
@ -2962,7 +2962,7 @@ btr_cur_del_mark_set_clust_rec(
|
|||
ut_ad(page_is_leaf(page_align(rec)));
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
if (btr_cur_print_record_ops && thr) {
|
||||
if (btr_cur_print_record_ops && (thr != NULL)) {
|
||||
btr_cur_trx_report(thr_get_trx(thr)->id, index, "del mark ");
|
||||
rec_print_new(stderr, rec, offsets);
|
||||
}
|
||||
|
@ -3110,7 +3110,7 @@ btr_cur_del_mark_set_sec_rec(
|
|||
rec = btr_cur_get_rec(cursor);
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
if (btr_cur_print_record_ops && thr) {
|
||||
if (btr_cur_print_record_ops && (thr != NULL)) {
|
||||
btr_cur_trx_report(thr_get_trx(thr)->id, cursor->index,
|
||||
"del mark ");
|
||||
rec_print(stderr, rec, cursor->index);
|
||||
|
@ -5043,7 +5043,7 @@ btr_free_externally_stored_field(
|
|||
ulint i, /*!< in: field number of field_ref;
|
||||
ignored if rec == NULL */
|
||||
enum trx_rb_ctx rb_ctx, /*!< in: rollback context */
|
||||
mtr_t* local_mtr __attribute__((unused))) /*!< in: mtr
|
||||
mtr_t* local_mtr MY_ATTRIBUTE((unused))) /*!< in: mtr
|
||||
containing the latch to data an an
|
||||
X-latch to the index tree */
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2008, Google Inc.
|
||||
|
||||
Portions of this file contain modifications contributed and copyrighted by
|
||||
|
@ -473,7 +473,7 @@ btr_search_update_block_hash_info(
|
|||
/*==============================*/
|
||||
btr_search_t* info, /*!< in: search info */
|
||||
buf_block_t* block, /*!< in: buffer block */
|
||||
btr_cur_t* cursor __attribute__((unused)))
|
||||
btr_cur_t* cursor MY_ATTRIBUTE((unused)))
|
||||
/*!< in: cursor */
|
||||
{
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2006, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2006, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -112,7 +112,7 @@ buf_buddy_mem_invalid(
|
|||
/**********************************************************************//**
|
||||
Check if a buddy is stamped free.
|
||||
@return whether the buddy is free */
|
||||
UNIV_INLINE __attribute__((warn_unused_result))
|
||||
UNIV_INLINE MY_ATTRIBUTE((warn_unused_result))
|
||||
bool
|
||||
buf_buddy_stamp_is_free(
|
||||
/*====================*/
|
||||
|
@ -225,7 +225,7 @@ Checks if a buf is free i.e.: in the zip_free[].
|
|||
@retval BUF_BUDDY_STATE_FREE if fully free
|
||||
@retval BUF_BUDDY_STATE_USED if currently in use
|
||||
@retval BUF_BUDDY_STATE_PARTIALLY_USED if partially in use. */
|
||||
static __attribute__((warn_unused_result))
|
||||
static MY_ATTRIBUTE((warn_unused_result))
|
||||
buf_buddy_state_t
|
||||
buf_buddy_is_free(
|
||||
/*==============*/
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2008, Google Inc.
|
||||
|
||||
Portions of this file contain modifications contributed and copyrighted by
|
||||
|
@ -3470,7 +3470,7 @@ buf_page_init_low(
|
|||
|
||||
/********************************************************************//**
|
||||
Inits a page to the buffer buf_pool. */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
buf_page_init(
|
||||
/*==========*/
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2011, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -105,7 +105,7 @@ SELECT variable_value FROM information_schema.global_status WHERE
|
|||
variable_name = 'INNODB_BUFFER_POOL_DUMP_STATUS';
|
||||
or by:
|
||||
SHOW STATUS LIKE 'innodb_buffer_pool_dump_status'; */
|
||||
static __attribute__((nonnull, format(printf, 2, 3)))
|
||||
static MY_ATTRIBUTE((nonnull, format(printf, 2, 3)))
|
||||
void
|
||||
buf_dump_status(
|
||||
/*============*/
|
||||
|
@ -141,7 +141,7 @@ SELECT variable_value FROM information_schema.global_status WHERE
|
|||
variable_name = 'INNODB_BUFFER_POOL_LOAD_STATUS';
|
||||
or by:
|
||||
SHOW STATUS LIKE 'innodb_buffer_pool_load_status'; */
|
||||
static __attribute__((nonnull, format(printf, 2, 3)))
|
||||
static MY_ATTRIBUTE((nonnull, format(printf, 2, 3)))
|
||||
void
|
||||
buf_load_status(
|
||||
/*============*/
|
||||
|
@ -676,7 +676,7 @@ extern "C" UNIV_INTERN
|
|||
os_thread_ret_t
|
||||
DECLARE_THREAD(buf_dump_thread)(
|
||||
/*============================*/
|
||||
void* arg __attribute__((unused))) /*!< in: a dummy parameter
|
||||
void* arg MY_ATTRIBUTE((unused))) /*!< in: a dummy parameter
|
||||
required by os_thread_create */
|
||||
{
|
||||
ut_ad(!srv_read_only_mode);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -2402,7 +2402,7 @@ extern "C" UNIV_INTERN
|
|||
os_thread_ret_t
|
||||
DECLARE_THREAD(buf_flush_page_cleaner_thread)(
|
||||
/*==========================================*/
|
||||
void* arg __attribute__((unused)))
|
||||
void* arg MY_ATTRIBUTE((unused)))
|
||||
/*!< in: a dummy parameter required by
|
||||
os_thread_create */
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -142,7 +142,7 @@ If a compressed page is freed other compressed pages may be relocated.
|
|||
caller needs to free the page to the free list
|
||||
@retval false if BUF_BLOCK_ZIP_PAGE was removed from page_hash. In
|
||||
this case the block is already returned to the buddy allocator. */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
bool
|
||||
buf_LRU_block_remove_hashed(
|
||||
/*========================*/
|
||||
|
@ -366,7 +366,7 @@ want to hog the CPU and resources. Release the buffer pool and block
|
|||
mutex and try to force a context switch. Then reacquire the same mutexes.
|
||||
The current page is "fixed" before the release of the mutexes and then
|
||||
"unfixed" again once we have reacquired the mutexes. */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
buf_flush_yield(
|
||||
/*============*/
|
||||
|
@ -407,7 +407,7 @@ If we have hogged the resources for too long then release the buffer
|
|||
pool and flush list mutex and do a thread yield. Set the current page
|
||||
to "sticky" so that it is not relocated during the yield.
|
||||
@return true if yielded */
|
||||
static __attribute__((nonnull(1), warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull(1), warn_unused_result))
|
||||
bool
|
||||
buf_flush_try_yield(
|
||||
/*================*/
|
||||
|
@ -450,7 +450,7 @@ buf_flush_try_yield(
|
|||
Removes a single page from a given tablespace inside a specific
|
||||
buffer pool instance.
|
||||
@return true if page was removed. */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
bool
|
||||
buf_flush_or_remove_page(
|
||||
/*=====================*/
|
||||
|
@ -531,7 +531,7 @@ the list as they age towards the tail of the LRU.
|
|||
@retval DB_SUCCESS if all freed
|
||||
@retval DB_FAIL if not all freed
|
||||
@retval DB_INTERRUPTED if the transaction was interrupted */
|
||||
static __attribute__((nonnull(1), warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull(1), warn_unused_result))
|
||||
dberr_t
|
||||
buf_flush_or_remove_pages(
|
||||
/*======================*/
|
||||
|
@ -637,7 +637,7 @@ Remove or flush all the dirty pages that belong to a given tablespace
|
|||
inside a specific buffer pool instance. The pages will remain in the LRU
|
||||
list and will be evicted from the LRU list as they age and move towards
|
||||
the tail of the LRU list. */
|
||||
static __attribute__((nonnull(1)))
|
||||
static MY_ATTRIBUTE((nonnull(1)))
|
||||
void
|
||||
buf_flush_dirty_pages(
|
||||
/*==================*/
|
||||
|
@ -677,7 +677,7 @@ buf_flush_dirty_pages(
|
|||
/******************************************************************//**
|
||||
Remove all pages that belong to a given tablespace inside a specific
|
||||
buffer pool instance when we are DISCARDing the tablespace. */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
buf_LRU_remove_all_pages(
|
||||
/*=====================*/
|
||||
|
@ -825,7 +825,7 @@ buffer pool instance when we are deleting the data file(s) of that
|
|||
tablespace. The pages still remain a part of LRU and are evicted from
|
||||
the list as they age towards the tail of the LRU only if buf_remove
|
||||
is BUF_REMOVE_FLUSH_NO_WRITE. */
|
||||
static __attribute__((nonnull(1)))
|
||||
static MY_ATTRIBUTE((nonnull(1)))
|
||||
void
|
||||
buf_LRU_remove_pages(
|
||||
/*=================*/
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -67,7 +67,8 @@ dtuple_coll_cmp(
|
|||
ulint n_fields;
|
||||
ulint i;
|
||||
|
||||
ut_ad(tuple1 && tuple2);
|
||||
ut_ad(tuple1 != NULL);
|
||||
ut_ad(tuple2 != NULL);
|
||||
ut_ad(tuple1->magic_n == DATA_TUPLE_MAGIC_N);
|
||||
ut_ad(tuple2->magic_n == DATA_TUPLE_MAGIC_N);
|
||||
ut_ad(dtuple_check_typed(tuple1));
|
||||
|
@ -715,7 +716,7 @@ UNIV_INTERN
|
|||
void
|
||||
dtuple_convert_back_big_rec(
|
||||
/*========================*/
|
||||
dict_index_t* index __attribute__((unused)), /*!< in: index */
|
||||
dict_index_t* index MY_ATTRIBUTE((unused)), /*!< in: index */
|
||||
dtuple_t* entry, /*!< in: entry whose data was put to vector */
|
||||
big_rec_t* vector) /*!< in, own: big rec vector; it is
|
||||
freed in this function */
|
||||
|
|
|
@ -246,7 +246,7 @@ dict_create_sys_columns_tuple(
|
|||
/***************************************************************//**
|
||||
Builds a table definition to insert.
|
||||
@return DB_SUCCESS or error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
dict_build_table_def_step(
|
||||
/*======================*/
|
||||
|
@ -573,7 +573,7 @@ dict_create_search_tuple(
|
|||
/***************************************************************//**
|
||||
Builds an index definition row to insert.
|
||||
@return DB_SUCCESS or error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
dict_build_index_def_step(
|
||||
/*======================*/
|
||||
|
@ -648,7 +648,7 @@ dict_build_field_def_step(
|
|||
/***************************************************************//**
|
||||
Creates an index tree for the index if it is not a member of a cluster.
|
||||
@return DB_SUCCESS or DB_OUT_OF_FILE_SPACE */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
dict_create_index_tree_step(
|
||||
/*========================*/
|
||||
|
@ -1464,7 +1464,7 @@ dict_create_or_check_foreign_constraint_tables(void)
|
|||
/****************************************************************//**
|
||||
Evaluate the given foreign key SQL statement.
|
||||
@return error code or DB_SUCCESS */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
dict_foreign_eval_sql(
|
||||
/*==================*/
|
||||
|
@ -1530,7 +1530,7 @@ dict_foreign_eval_sql(
|
|||
Add a single foreign key field definition to the data dictionary tables in
|
||||
the database.
|
||||
@return error code or DB_SUCCESS */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
dict_create_add_foreign_field_to_dictionary(
|
||||
/*========================================*/
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2012, Facebook Inc.
|
||||
Copyright (c) 2014, 2015, MariaDB Corporation.
|
||||
|
||||
|
@ -6251,7 +6251,7 @@ dict_set_corrupted_index_cache_only(
|
|||
dict_index_t* index, /*!< in/out: index */
|
||||
dict_table_t* table) /*!< in/out: table */
|
||||
{
|
||||
ut_ad(index);
|
||||
ut_ad(index != NULL);
|
||||
ut_ad(mutex_own(&dict_sys->mutex));
|
||||
ut_ad(!dict_table_is_comp(dict_sys->sys_tables));
|
||||
ut_ad(!dict_table_is_comp(dict_sys->sys_indexes));
|
||||
|
@ -6261,8 +6261,9 @@ dict_set_corrupted_index_cache_only(
|
|||
if (dict_index_is_clust(index)) {
|
||||
dict_table_t* corrupt_table;
|
||||
|
||||
corrupt_table = table ? table : index->table;
|
||||
ut_ad(!index->table || !table || index->table == table);
|
||||
corrupt_table = (table != NULL) ? table : index->table;
|
||||
ut_ad((index->table != NULL) || (table != NULL)
|
||||
|| index->table == table);
|
||||
|
||||
if (corrupt_table) {
|
||||
corrupt_table->corrupted = TRUE;
|
||||
|
@ -6342,11 +6343,6 @@ dict_table_get_index_on_name(
|
|||
{
|
||||
dict_index_t* index;
|
||||
|
||||
/* If name is NULL, just return */
|
||||
if (!name) {
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
index = dict_table_get_first_index(table);
|
||||
|
||||
while (index != NULL) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -1744,7 +1744,7 @@ err_len:
|
|||
goto err_len;
|
||||
}
|
||||
type = mach_read_from_4(field);
|
||||
if (type & (~0 << DICT_IT_BITS)) {
|
||||
if (type & (~0U << DICT_IT_BITS)) {
|
||||
return("unknown SYS_INDEXES.TYPE bits");
|
||||
}
|
||||
|
||||
|
@ -1783,7 +1783,7 @@ Loads definitions for table indexes. Adds them to the data dictionary
|
|||
cache.
|
||||
@return DB_SUCCESS if ok, DB_CORRUPTION if corruption of dictionary
|
||||
table or DB_UNSUPPORTED if table has unknown index type */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
dberr_t
|
||||
dict_load_indexes(
|
||||
/*==============*/
|
||||
|
@ -2531,6 +2531,7 @@ func_exit:
|
|||
/* the table->fts could be created in dict_load_column
|
||||
when a user defined FTS_DOC_ID is present, but no
|
||||
FTS */
|
||||
fts_optimize_remove_table(table);
|
||||
fts_free(table);
|
||||
} else {
|
||||
fts_optimize_add_table(table);
|
||||
|
@ -2596,14 +2597,13 @@ dict_load_table_on_id(
|
|||
btr_pcur_open_on_user_rec(sys_table_ids, tuple, PAGE_CUR_GE,
|
||||
BTR_SEARCH_LEAF, &pcur, &mtr);
|
||||
|
||||
check_rec:
|
||||
rec = btr_pcur_get_rec(&pcur);
|
||||
|
||||
if (page_rec_is_user_rec(rec)) {
|
||||
/*---------------------------------------------------*/
|
||||
/* Now we have the record in the secondary index
|
||||
containing the table ID and NAME */
|
||||
|
||||
check_rec:
|
||||
field = rec_get_nth_field_old(
|
||||
rec, DICT_FLD__SYS_TABLE_IDS__ID, &len);
|
||||
ut_ad(len == 8);
|
||||
|
@ -2613,12 +2613,14 @@ check_rec:
|
|||
if (rec_get_deleted_flag(rec, 0)) {
|
||||
/* Until purge has completed, there
|
||||
may be delete-marked duplicate records
|
||||
for the same SYS_TABLES.ID.
|
||||
Due to Bug #60049, some delete-marked
|
||||
records may survive the purge forever. */
|
||||
if (btr_pcur_move_to_next(&pcur, &mtr)) {
|
||||
for the same SYS_TABLES.ID, but different
|
||||
SYS_TABLES.NAME. */
|
||||
while (btr_pcur_move_to_next(&pcur, &mtr)) {
|
||||
rec = btr_pcur_get_rec(&pcur);
|
||||
|
||||
goto check_rec;
|
||||
if (page_rec_is_user_rec(rec)) {
|
||||
goto check_rec;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* Now we get the table name from the record */
|
||||
|
@ -2787,7 +2789,7 @@ dict_load_foreign_cols(
|
|||
/***********************************************************************//**
|
||||
Loads a foreign key constraint to the dictionary cache.
|
||||
@return DB_SUCCESS or error code */
|
||||
static __attribute__((nonnull(1), warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull(1), warn_unused_result))
|
||||
dberr_t
|
||||
dict_load_foreign(
|
||||
/*==============*/
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2012, Facebook Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
|
@ -303,7 +303,7 @@ dict_mem_table_add_col(
|
|||
|
||||
/**********************************************************************//**
|
||||
Renames a column of a table in the data dictionary cache. */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
dict_mem_table_col_rename_low(
|
||||
/*==========================*/
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2012, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2012, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -341,7 +341,7 @@ extern "C" UNIV_INTERN
|
|||
os_thread_ret_t
|
||||
DECLARE_THREAD(dict_stats_thread)(
|
||||
/*==============================*/
|
||||
void* arg __attribute__((unused))) /*!< in: a dummy parameter
|
||||
void* arg MY_ATTRIBUTE((unused))) /*!< in: a dummy parameter
|
||||
required by os_thread_create */
|
||||
{
|
||||
ut_a(!srv_read_only_mode);
|
||||
|
|
|
@ -1706,7 +1706,7 @@ fil_set_max_space_id_if_bigger(
|
|||
Writes the flushed lsn and the latest archived log number to the page header
|
||||
of the first page of a data file of the system tablespace (space 0),
|
||||
which is uncompressed. */
|
||||
static __attribute__((warn_unused_result))
|
||||
static MY_ATTRIBUTE((warn_unused_result))
|
||||
dberr_t
|
||||
fil_write_lsn_and_arch_no_to_file(
|
||||
/*==============================*/
|
||||
|
@ -1714,7 +1714,7 @@ fil_write_lsn_and_arch_no_to_file(
|
|||
ulint sum_of_sizes, /*!< in: combined size of previous files
|
||||
in space, in database pages */
|
||||
lsn_t lsn, /*!< in: lsn to write */
|
||||
ulint arch_log_no __attribute__((unused)))
|
||||
ulint arch_log_no MY_ATTRIBUTE((unused)))
|
||||
/*!< in: archived log number to write */
|
||||
{
|
||||
byte* buf1;
|
||||
|
@ -1801,7 +1801,7 @@ Checks the consistency of the first data page of a tablespace
|
|||
at database startup.
|
||||
@retval NULL on success, or if innodb_force_recovery is set
|
||||
@return pointer to an error message string */
|
||||
static __attribute__((warn_unused_result))
|
||||
static MY_ATTRIBUTE((warn_unused_result))
|
||||
const char*
|
||||
fil_check_first_page(
|
||||
/*=================*/
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -93,7 +93,7 @@ fseg_n_reserved_pages_low(
|
|||
/********************************************************************//**
|
||||
Marks a page used. The page must reside within the extents of the given
|
||||
segment. */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
fseg_mark_page_used(
|
||||
/*================*/
|
||||
|
@ -132,7 +132,7 @@ fsp_fill_free_list(
|
|||
ulint space, /*!< in: space */
|
||||
fsp_header_t* header, /*!< in/out: space header */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
UNIV_COLD __attribute__((nonnull));
|
||||
UNIV_COLD MY_ATTRIBUTE((nonnull));
|
||||
/**********************************************************************//**
|
||||
Allocates a single free page from a segment. This function implements
|
||||
the intelligent allocation strategy which tries to minimize file space
|
||||
|
@ -161,7 +161,7 @@ fseg_alloc_free_page_low(
|
|||
in which the page should be initialized.
|
||||
If init_mtr!=mtr, but the page is already
|
||||
latched in mtr, do not initialize the page. */
|
||||
__attribute__((warn_unused_result, nonnull));
|
||||
MY_ATTRIBUTE((warn_unused_result, nonnull));
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
/**********************************************************************//**
|
||||
|
@ -425,7 +425,7 @@ descriptor resides is x-locked. This function no longer extends the data
|
|||
file.
|
||||
@return pointer to the extent descriptor, NULL if the page does not
|
||||
exist in the space or if the offset is >= the free limit */
|
||||
UNIV_INLINE __attribute__((nonnull, warn_unused_result))
|
||||
UNIV_INLINE MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
xdes_t*
|
||||
xdes_get_descriptor_with_space_hdr(
|
||||
/*===============================*/
|
||||
|
@ -487,7 +487,7 @@ is necessary to make the descriptor defined, as they are uninitialized
|
|||
above the free limit.
|
||||
@return pointer to the extent descriptor, NULL if the page does not
|
||||
exist in the space or if the offset exceeds the free limit */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
xdes_t*
|
||||
xdes_get_descriptor(
|
||||
/*================*/
|
||||
|
@ -614,7 +614,7 @@ byte*
|
|||
fsp_parse_init_file_page(
|
||||
/*=====================*/
|
||||
byte* ptr, /*!< in: buffer */
|
||||
byte* end_ptr __attribute__((unused)), /*!< in: buffer end */
|
||||
byte* end_ptr MY_ATTRIBUTE((unused)), /*!< in: buffer end */
|
||||
buf_block_t* block) /*!< in: block or NULL */
|
||||
{
|
||||
ut_ad(ptr && end_ptr);
|
||||
|
@ -850,7 +850,7 @@ fsp_header_get_tablespace_size(void)
|
|||
Tries to extend a single-table tablespace so that a page would fit in the
|
||||
data file.
|
||||
@return TRUE if success */
|
||||
static UNIV_COLD __attribute__((nonnull, warn_unused_result))
|
||||
static UNIV_COLD MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
ibool
|
||||
fsp_try_extend_data_file_with_pages(
|
||||
/*================================*/
|
||||
|
@ -882,7 +882,7 @@ fsp_try_extend_data_file_with_pages(
|
|||
/***********************************************************************//**
|
||||
Tries to extend the last data file of a tablespace if it is auto-extending.
|
||||
@return FALSE if not auto-extending */
|
||||
static UNIV_COLD __attribute__((nonnull))
|
||||
static UNIV_COLD MY_ATTRIBUTE((nonnull))
|
||||
ibool
|
||||
fsp_try_extend_data_file(
|
||||
/*=====================*/
|
||||
|
@ -1064,7 +1064,8 @@ fsp_fill_free_list(
|
|||
ulint i;
|
||||
mtr_t ibuf_mtr;
|
||||
|
||||
ut_ad(header && mtr);
|
||||
ut_ad(header != NULL);
|
||||
ut_ad(mtr != NULL);
|
||||
ut_ad(page_offset(header) == FSP_HEADER_OFFSET);
|
||||
|
||||
/* Check if we can fill free list from above the free list limit */
|
||||
|
@ -1236,7 +1237,7 @@ fsp_alloc_free_extent(
|
|||
|
||||
/**********************************************************************//**
|
||||
Allocates a single free page from a space. */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
fsp_alloc_from_free_frag(
|
||||
/*=====================*/
|
||||
|
@ -1327,7 +1328,7 @@ Allocates a single free page from a space. The page is marked as used.
|
|||
@retval block, rw_lock_x_lock_count(&block->lock) == 1 if allocation succeeded
|
||||
(init_mtr == mtr, or the page was not previously freed in mtr)
|
||||
@retval block (not allocated or initialized) otherwise */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
buf_block_t*
|
||||
fsp_alloc_free_page(
|
||||
/*================*/
|
||||
|
@ -1576,9 +1577,9 @@ fsp_seg_inode_page_get_nth_inode(
|
|||
/*=============================*/
|
||||
page_t* page, /*!< in: segment inode page */
|
||||
ulint i, /*!< in: inode index on page */
|
||||
ulint zip_size __attribute__((unused)),
|
||||
ulint zip_size MY_ATTRIBUTE((unused)),
|
||||
/*!< in: compressed page size, or 0 */
|
||||
mtr_t* mtr __attribute__((unused)))
|
||||
mtr_t* mtr MY_ATTRIBUTE((unused)))
|
||||
/*!< in/out: mini-transaction */
|
||||
{
|
||||
ut_ad(i < FSP_SEG_INODES_PER_PAGE(zip_size));
|
||||
|
@ -1877,7 +1878,7 @@ fseg_get_nth_frag_page_no(
|
|||
/*======================*/
|
||||
fseg_inode_t* inode, /*!< in: segment inode */
|
||||
ulint n, /*!< in: slot index */
|
||||
mtr_t* mtr __attribute__((unused)))
|
||||
mtr_t* mtr MY_ATTRIBUTE((unused)))
|
||||
/*!< in/out: mini-transaction */
|
||||
{
|
||||
ut_ad(inode && mtr);
|
||||
|
@ -2972,7 +2973,7 @@ fsp_get_available_space_in_free_extents(
|
|||
/********************************************************************//**
|
||||
Marks a page used. The page must reside within the extents of the given
|
||||
segment. */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
fseg_mark_page_used(
|
||||
/*================*/
|
||||
|
@ -3044,7 +3045,8 @@ fseg_free_page_low(
|
|||
ib_id_t seg_id;
|
||||
ulint i;
|
||||
|
||||
ut_ad(seg_inode && mtr);
|
||||
ut_ad(seg_inode != NULL);
|
||||
ut_ad(mtr != NULL);
|
||||
ut_ad(mach_read_from_4(seg_inode + FSEG_MAGIC_N)
|
||||
== FSEG_MAGIC_N_VALUE);
|
||||
ut_ad(!((page_offset(seg_inode) - FSEG_ARR_OFFSET) % FSEG_INODE_SIZE));
|
||||
|
@ -3253,7 +3255,8 @@ fseg_free_extent(
|
|||
ulint descr_n_used;
|
||||
ulint i;
|
||||
|
||||
ut_ad(seg_inode && mtr);
|
||||
ut_ad(seg_inode != NULL);
|
||||
ut_ad(mtr != NULL);
|
||||
|
||||
descr = xdes_get_descriptor(space, zip_size, page, mtr);
|
||||
|
||||
|
|
|
@ -305,9 +305,9 @@ YY_BUFFER_STATE fts0b_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner
|
|||
YY_BUFFER_STATE fts0b_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
|
||||
YY_BUFFER_STATE fts0b_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
|
||||
|
||||
void *fts0balloc (yy_size_t , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) );
|
||||
void *fts0brealloc (void *,yy_size_t , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) );
|
||||
void fts0bfree (void * , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) );
|
||||
void *fts0balloc (yy_size_t , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) );
|
||||
void *fts0brealloc (void *,yy_size_t , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) );
|
||||
void fts0bfree (void * , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) );
|
||||
|
||||
#define yy_new_buffer fts0b_create_buffer
|
||||
|
||||
|
@ -347,7 +347,7 @@ typedef int yy_state_type;
|
|||
static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
|
||||
static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
|
||||
static int yy_get_next_buffer (yyscan_t yyscanner );
|
||||
static void yy_fatal_error (yyconst char msg[] , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) );
|
||||
static void yy_fatal_error (yyconst char msg[] , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) );
|
||||
|
||||
/* Done after the current pattern has been matched and before the
|
||||
* corresponding action - sets up yytext.
|
||||
|
@ -451,7 +451,7 @@ static yyconst flex_int16_t yy_chk[32] =
|
|||
#line 1 "fts0blex.l"
|
||||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2007, 2014, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -579,11 +579,11 @@ extern int fts0bwrap (yyscan_t yyscanner );
|
|||
#endif
|
||||
|
||||
#ifndef yytext_ptr
|
||||
static void yy_flex_strncpy (char *,yyconst char *,int , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)));
|
||||
static void yy_flex_strncpy (char *,yyconst char *,int , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)));
|
||||
#endif
|
||||
|
||||
#ifdef YY_NEED_STRLEN
|
||||
static int yy_flex_strlen (yyconst char * , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)));
|
||||
static int yy_flex_strlen (yyconst char * , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)));
|
||||
#endif
|
||||
|
||||
#ifndef YY_NO_INPUT
|
||||
|
@ -1609,7 +1609,7 @@ YY_BUFFER_STATE fts0b_scan_bytes (yyconst char * yybytes, int _yybytes_len , y
|
|||
#define YY_EXIT_FAILURE 2
|
||||
#endif
|
||||
|
||||
static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
|
||||
static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
|
||||
{
|
||||
(void) fprintf( stderr, "%s\n", msg );
|
||||
exit( YY_EXIT_FAILURE );
|
||||
|
@ -1910,7 +1910,7 @@ int fts0blex_destroy (yyscan_t yyscanner)
|
|||
*/
|
||||
|
||||
#ifndef yytext_ptr
|
||||
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
|
||||
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
|
||||
{
|
||||
register int i;
|
||||
for ( i = 0; i < n; ++i )
|
||||
|
@ -1919,7 +1919,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yys
|
|||
#endif
|
||||
|
||||
#ifdef YY_NEED_STRLEN
|
||||
static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
|
||||
static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
|
||||
{
|
||||
register int n;
|
||||
for ( n = 0; s[n]; ++n )
|
||||
|
@ -1929,12 +1929,12 @@ static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner __at
|
|||
}
|
||||
#endif
|
||||
|
||||
void *fts0balloc (yy_size_t size , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
|
||||
void *fts0balloc (yy_size_t size , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
|
||||
{
|
||||
return (void *) malloc( size );
|
||||
}
|
||||
|
||||
void *fts0brealloc (void * ptr, yy_size_t size , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
|
||||
void *fts0brealloc (void * ptr, yy_size_t size , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
|
||||
{
|
||||
/* The cast to (char *) in the following accommodates both
|
||||
* implementations that use char* generic pointers, and those
|
||||
|
@ -1946,7 +1946,7 @@ void *fts0brealloc (void * ptr, yy_size_t size , yyscan_t yyscanner
|
|||
return (void *) realloc( (char *) ptr, size );
|
||||
}
|
||||
|
||||
void fts0bfree (void * ptr , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
|
||||
void fts0bfree (void * ptr , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
|
||||
{
|
||||
free( (char *) ptr ); /* see fts0brealloc() for (char *) cast */
|
||||
}
|
||||
|
|
|
@ -280,7 +280,7 @@ void
|
|||
fts_words_free(
|
||||
/*===========*/
|
||||
ib_rbt_t* words) /*!< in: rb tree of words */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#ifdef FTS_CACHE_SIZE_DEBUG
|
||||
/****************************************************************//**
|
||||
Read the max cache size parameter from the config table. */
|
||||
|
@ -302,7 +302,7 @@ fts_add_doc_by_id(
|
|||
/*==============*/
|
||||
fts_trx_table_t*ftt, /*!< in: FTS trx table */
|
||||
doc_id_t doc_id, /*!< in: doc id */
|
||||
ib_vector_t* fts_indexes __attribute__((unused)));
|
||||
ib_vector_t* fts_indexes MY_ATTRIBUTE((unused)));
|
||||
/*!< in: affected fts indexes */
|
||||
#ifdef FTS_DOC_STATS_DEBUG
|
||||
/****************************************************************//**
|
||||
|
@ -317,7 +317,7 @@ fts_is_word_in_index(
|
|||
fts_table_t* fts_table, /*!< in: table instance */
|
||||
const fts_string_t* word, /*!< in: the word to check */
|
||||
ibool* found) /*!< out: TRUE if exists */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
#endif /* FTS_DOC_STATS_DEBUG */
|
||||
|
||||
/******************************************************************//**
|
||||
|
@ -332,7 +332,7 @@ fts_update_sync_doc_id(
|
|||
const char* table_name, /*!< in: table name, or NULL */
|
||||
doc_id_t doc_id, /*!< in: last document id */
|
||||
trx_t* trx) /*!< in: update trx, or NULL */
|
||||
__attribute__((nonnull(1)));
|
||||
MY_ATTRIBUTE((nonnull(1)));
|
||||
|
||||
/****************************************************************//**
|
||||
This function loads the default InnoDB stopword list */
|
||||
|
@ -1075,13 +1075,12 @@ fts_words_free(
|
|||
}
|
||||
}
|
||||
|
||||
/*********************************************************************//**
|
||||
Clear cache. */
|
||||
/** Clear cache.
|
||||
@param[in,out] cache fts cache */
|
||||
UNIV_INTERN
|
||||
void
|
||||
fts_cache_clear(
|
||||
/*============*/
|
||||
fts_cache_t* cache) /*!< in: cache */
|
||||
fts_cache_t* cache)
|
||||
{
|
||||
ulint i;
|
||||
|
||||
|
@ -1477,7 +1476,7 @@ fts_cache_add_doc(
|
|||
/****************************************************************//**
|
||||
Drops a table. If the table can't be found we return a SUCCESS code.
|
||||
@return DB_SUCCESS or error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_drop_table(
|
||||
/*===========*/
|
||||
|
@ -1519,7 +1518,7 @@ fts_drop_table(
|
|||
/****************************************************************//**
|
||||
Rename a single auxiliary table due to database name change.
|
||||
@return DB_SUCCESS or error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_rename_one_aux_table(
|
||||
/*=====================*/
|
||||
|
@ -1628,7 +1627,7 @@ Drops the common ancillary tables needed for supporting an FTS index
|
|||
on the given table. row_mysql_lock_data_dictionary must have been called
|
||||
before this.
|
||||
@return DB_SUCCESS or error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_drop_common_tables(
|
||||
/*===================*/
|
||||
|
@ -1755,7 +1754,7 @@ Drops FTS ancillary tables needed for supporting an FTS index
|
|||
on the given table. row_mysql_lock_data_dictionary must have been called
|
||||
before this.
|
||||
@return DB_SUCCESS or error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_drop_all_index_tables(
|
||||
/*======================*/
|
||||
|
@ -2663,7 +2662,7 @@ fts_get_next_doc_id(
|
|||
This function fetch the Doc ID from CONFIG table, and compare with
|
||||
the Doc ID supplied. And store the larger one to the CONFIG table.
|
||||
@return DB_SUCCESS if OK */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
dberr_t
|
||||
fts_cmp_set_sync_doc_id(
|
||||
/*====================*/
|
||||
|
@ -2917,7 +2916,7 @@ fts_add(
|
|||
/*********************************************************************//**
|
||||
Do commit-phase steps necessary for the deletion of a row.
|
||||
@return DB_SUCCESS or error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_delete(
|
||||
/*=======*/
|
||||
|
@ -3008,7 +3007,7 @@ fts_delete(
|
|||
/*********************************************************************//**
|
||||
Do commit-phase steps necessary for the modification of a row.
|
||||
@return DB_SUCCESS or error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_modify(
|
||||
/*=======*/
|
||||
|
@ -3079,7 +3078,7 @@ fts_create_doc_id(
|
|||
The given transaction is about to be committed; do whatever is necessary
|
||||
from the FTS system's POV.
|
||||
@return DB_SUCCESS or error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_commit_table(
|
||||
/*=============*/
|
||||
|
@ -3413,7 +3412,7 @@ fts_add_doc_by_id(
|
|||
/*==============*/
|
||||
fts_trx_table_t*ftt, /*!< in: FTS trx table */
|
||||
doc_id_t doc_id, /*!< in: doc id */
|
||||
ib_vector_t* fts_indexes __attribute__((unused)))
|
||||
ib_vector_t* fts_indexes MY_ATTRIBUTE((unused)))
|
||||
/*!< in: affected fts indexes */
|
||||
{
|
||||
mtr_t mtr;
|
||||
|
@ -3533,7 +3532,7 @@ fts_add_doc_by_id(
|
|||
get_doc, clust_index, doc_pcur, offsets, &doc);
|
||||
|
||||
if (doc.found) {
|
||||
ibool success __attribute__((unused));
|
||||
ibool success MY_ATTRIBUTE((unused));
|
||||
|
||||
btr_pcur_store_position(doc_pcur, &mtr);
|
||||
mtr_commit(&mtr);
|
||||
|
@ -3642,7 +3641,7 @@ fts_get_max_doc_id(
|
|||
dict_table_t* table) /*!< in: user table */
|
||||
{
|
||||
dict_index_t* index;
|
||||
dict_field_t* dfield __attribute__((unused)) = NULL;
|
||||
dict_field_t* dfield MY_ATTRIBUTE((unused)) = NULL;
|
||||
doc_id_t doc_id = 0;
|
||||
mtr_t mtr;
|
||||
btr_pcur_t pcur;
|
||||
|
@ -3900,7 +3899,7 @@ fts_write_node(
|
|||
/*********************************************************************//**
|
||||
Add rows to the DELETED_CACHE table.
|
||||
@return DB_SUCCESS if all went well else error code*/
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_sync_add_deleted_cache(
|
||||
/*=======================*/
|
||||
|
@ -3954,7 +3953,7 @@ fts_sync_add_deleted_cache(
|
|||
@param[in] index_cache index cache
|
||||
@param[in] unlock_cache whether unlock cache when write node
|
||||
@return DB_SUCCESS if all went well else error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_sync_write_words(
|
||||
trx_t* trx,
|
||||
|
@ -4090,7 +4089,7 @@ fts_sync_write_words(
|
|||
/*********************************************************************//**
|
||||
Write a single documents statistics to disk.
|
||||
@return DB_SUCCESS if all went well else error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_sync_write_doc_stat(
|
||||
/*====================*/
|
||||
|
@ -4344,7 +4343,7 @@ fts_sync_begin(
|
|||
Run SYNC on the table, i.e., write out data from the index specific
|
||||
cache to the FTS aux INDEX table and FTS aux doc id stats table.
|
||||
@return DB_SUCCESS if all OK */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_sync_index(
|
||||
/*===========*/
|
||||
|
@ -4412,7 +4411,7 @@ fts_sync_index_check(
|
|||
/*********************************************************************//**
|
||||
Commit the SYNC, change state of processed doc ids etc.
|
||||
@return DB_SUCCESS if all OK */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_sync_commit(
|
||||
/*============*/
|
||||
|
@ -4474,13 +4473,12 @@ fts_sync_commit(
|
|||
return(error);
|
||||
}
|
||||
|
||||
/*********************************************************************//**
|
||||
Rollback a sync operation */
|
||||
/** Rollback a sync operation
|
||||
@param[in,out] sync sync state */
|
||||
static
|
||||
void
|
||||
fts_sync_rollback(
|
||||
/*==============*/
|
||||
fts_sync_t* sync) /*!< in: sync state */
|
||||
fts_sync_t* sync)
|
||||
{
|
||||
trx_t* trx = sync->trx;
|
||||
fts_cache_t* cache = sync->table->fts->cache;
|
||||
|
@ -6170,7 +6168,7 @@ fts_update_hex_format_flag(
|
|||
/*********************************************************************//**
|
||||
Rename an aux table to HEX format. It's called when "%016llu" is used
|
||||
to format an object id in table name, which only happens in Windows. */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_rename_one_aux_table_to_hex_format(
|
||||
/*===================================*/
|
||||
|
@ -6261,7 +6259,7 @@ Note the ids in tables are correct but the names are old ambiguous ones.
|
|||
|
||||
This function should make sure that either all the parent table and aux tables
|
||||
are set DICT_TF2_FTS_AUX_HEX_NAME with flags2 or none of them are set */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_rename_aux_tables_to_hex_format_low(
|
||||
/*====================================*/
|
||||
|
@ -6415,7 +6413,7 @@ fts_fake_hex_to_dec(
|
|||
{
|
||||
ib_id_t dec_id = 0;
|
||||
char tmp_id[FTS_AUX_MIN_TABLE_ID_LENGTH];
|
||||
int ret __attribute__((unused));
|
||||
int ret MY_ATTRIBUTE((unused));
|
||||
|
||||
ret = sprintf(tmp_id, UINT64PFx, id);
|
||||
ut_ad(ret == 16);
|
||||
|
@ -6737,7 +6735,7 @@ fts_drop_aux_table_from_vector(
|
|||
Check and drop all orphaned FTS auxiliary tables, those that don't have
|
||||
a parent table or FTS index defined on them.
|
||||
@return DB_SUCCESS or error code */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
fts_check_and_drop_orphaned_tables(
|
||||
/*===============================*/
|
||||
|
|
|
@ -797,7 +797,7 @@ fts_zip_deflate_end(
|
|||
Read the words from the FTS INDEX.
|
||||
@return DB_SUCCESS if all OK, DB_TABLE_NOT_FOUND if no more indexes
|
||||
to search else error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_index_fetch_words(
|
||||
/*==================*/
|
||||
|
@ -1131,7 +1131,7 @@ fts_optimize_lookup(
|
|||
/**********************************************************************//**
|
||||
Encode the word pos list into the node
|
||||
@return DB_SUCCESS or error code*/
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
dberr_t
|
||||
fts_optimize_encode_node(
|
||||
/*=====================*/
|
||||
|
@ -1220,7 +1220,7 @@ fts_optimize_encode_node(
|
|||
/**********************************************************************//**
|
||||
Optimize the data contained in a node.
|
||||
@return DB_SUCCESS or error code*/
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
dberr_t
|
||||
fts_optimize_node(
|
||||
/*==============*/
|
||||
|
@ -1318,7 +1318,7 @@ test_again:
|
|||
/**********************************************************************//**
|
||||
Determine the starting pos within the deleted doc id vector for a word.
|
||||
@return delete position */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
int
|
||||
fts_optimize_deleted_pos(
|
||||
/*=====================*/
|
||||
|
@ -1447,7 +1447,7 @@ fts_optimize_word(
|
|||
/**********************************************************************//**
|
||||
Update the FTS index table. This is a delete followed by an insert.
|
||||
@return DB_SUCCESS or error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_optimize_write_word(
|
||||
/*====================*/
|
||||
|
@ -1550,7 +1550,7 @@ fts_word_free(
|
|||
/**********************************************************************//**
|
||||
Optimize the word ilist and rewrite data to the FTS index.
|
||||
@return status one of RESTART, EXIT, ERROR */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_optimize_compact(
|
||||
/*=================*/
|
||||
|
@ -1645,7 +1645,7 @@ fts_optimize_create(
|
|||
/**********************************************************************//**
|
||||
Get optimize start time of an FTS index.
|
||||
@return DB_SUCCESS if all OK else error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_optimize_get_index_start_time(
|
||||
/*==============================*/
|
||||
|
@ -1661,7 +1661,7 @@ fts_optimize_get_index_start_time(
|
|||
/**********************************************************************//**
|
||||
Set the optimize start time of an FTS index.
|
||||
@return DB_SUCCESS if all OK else error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_optimize_set_index_start_time(
|
||||
/*==============================*/
|
||||
|
@ -1677,7 +1677,7 @@ fts_optimize_set_index_start_time(
|
|||
/**********************************************************************//**
|
||||
Get optimize end time of an FTS index.
|
||||
@return DB_SUCCESS if all OK else error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_optimize_get_index_end_time(
|
||||
/*============================*/
|
||||
|
@ -1692,7 +1692,7 @@ fts_optimize_get_index_end_time(
|
|||
/**********************************************************************//**
|
||||
Set the optimize end time of an FTS index.
|
||||
@return DB_SUCCESS if all OK else error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_optimize_set_index_end_time(
|
||||
/*============================*/
|
||||
|
@ -1912,7 +1912,7 @@ fts_optimize_set_next_word(
|
|||
Optimize is complete. Set the completion time, and reset the optimize
|
||||
start string for this FTS index to "".
|
||||
@return DB_SUCCESS if all OK */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_optimize_index_completed(
|
||||
/*=========================*/
|
||||
|
@ -1952,7 +1952,7 @@ fts_optimize_index_completed(
|
|||
Read the list of words from the FTS auxiliary index that will be
|
||||
optimized in this pass.
|
||||
@return DB_SUCCESS if all OK */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_optimize_index_read_words(
|
||||
/*==========================*/
|
||||
|
@ -2009,7 +2009,7 @@ fts_optimize_index_read_words(
|
|||
Run OPTIMIZE on the given FTS index. Note: this can take a very long
|
||||
time (hours).
|
||||
@return DB_SUCCESS if all OK */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_optimize_index(
|
||||
/*===============*/
|
||||
|
@ -2080,7 +2080,7 @@ fts_optimize_index(
|
|||
/**********************************************************************//**
|
||||
Delete the document ids in the delete, and delete cache tables.
|
||||
@return DB_SUCCESS if all OK */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_optimize_purge_deleted_doc_ids(
|
||||
/*===============================*/
|
||||
|
@ -2149,7 +2149,7 @@ fts_optimize_purge_deleted_doc_ids(
|
|||
/**********************************************************************//**
|
||||
Delete the document ids in the pending delete, and delete tables.
|
||||
@return DB_SUCCESS if all OK */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_optimize_purge_deleted_doc_id_snapshot(
|
||||
/*=======================================*/
|
||||
|
@ -2199,7 +2199,7 @@ Copy the deleted doc ids that will be purged during this optimize run
|
|||
to the being deleted FTS auxiliary tables. The transaction is committed
|
||||
upon successfull copy and rolled back on DB_DUPLICATE_KEY error.
|
||||
@return DB_SUCCESS if all OK */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_optimize_create_deleted_doc_id_snapshot(
|
||||
/*========================================*/
|
||||
|
@ -2237,7 +2237,7 @@ fts_optimize_create_deleted_doc_id_snapshot(
|
|||
Read in the document ids that are to be purged during optimize. The
|
||||
transaction is committed upon successfully read.
|
||||
@return DB_SUCCESS if all OK */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_optimize_read_deleted_doc_id_snapshot(
|
||||
/*======================================*/
|
||||
|
@ -2274,7 +2274,7 @@ Optimze all the FTS indexes, skipping those that have already been
|
|||
optimized, since the FTS auxiliary indexes are not guaranteed to be
|
||||
of the same cardinality.
|
||||
@return DB_SUCCESS if all OK */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_optimize_indexes(
|
||||
/*=================*/
|
||||
|
@ -2344,7 +2344,7 @@ fts_optimize_indexes(
|
|||
/*********************************************************************//**
|
||||
Cleanup the snapshot tables and the master deleted table.
|
||||
@return DB_SUCCESS if all OK */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_optimize_purge_snapshot(
|
||||
/*========================*/
|
||||
|
@ -2373,7 +2373,7 @@ fts_optimize_purge_snapshot(
|
|||
/*********************************************************************//**
|
||||
Reset the start time to 0 so that a new optimize can be started.
|
||||
@return DB_SUCCESS if all OK */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_optimize_reset_start_time(
|
||||
/*==========================*/
|
||||
|
@ -2412,7 +2412,7 @@ fts_optimize_reset_start_time(
|
|||
/*********************************************************************//**
|
||||
Run OPTIMIZE on the given table by a background thread.
|
||||
@return DB_SUCCESS if all OK */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
dberr_t
|
||||
fts_optimize_table_bk(
|
||||
/*==================*/
|
||||
|
@ -2757,6 +2757,7 @@ fts_optimize_new_table(
|
|||
empty_slot = i;
|
||||
} else if (slot->table->id == table->id) {
|
||||
/* Already exists in our optimize queue. */
|
||||
ut_ad(slot->table_id = table->id);
|
||||
return(FALSE);
|
||||
}
|
||||
}
|
||||
|
@ -2974,6 +2975,13 @@ fts_optimize_sync_table(
|
|||
{
|
||||
dict_table_t* table = NULL;
|
||||
|
||||
/* Prevent DROP INDEX etc. from running when we are syncing
|
||||
cache in background. */
|
||||
if (!rw_lock_s_lock_nowait(&dict_operation_lock, __FILE__, __LINE__)) {
|
||||
/* Exit when fail to get dict operation lock. */
|
||||
return;
|
||||
}
|
||||
|
||||
table = dict_table_open_on_id(table_id, FALSE, DICT_TABLE_OP_NORMAL);
|
||||
|
||||
if (table) {
|
||||
|
@ -2983,6 +2991,8 @@ fts_optimize_sync_table(
|
|||
|
||||
dict_table_close(table, FALSE, FALSE);
|
||||
}
|
||||
|
||||
rw_lock_s_unlock(&dict_operation_lock);
|
||||
}
|
||||
|
||||
/**********************************************************************//**
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2007, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -287,7 +287,7 @@ fts_expand_query(
|
|||
dict_index_t* index, /*!< in: FTS index to search */
|
||||
fts_query_t* query) /*!< in: query result, to be freed
|
||||
by the client */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*************************************************************//**
|
||||
This function finds documents that contain all words in a
|
||||
phrase or proximity search. And if proximity search, verify
|
||||
|
@ -1128,7 +1128,7 @@ cont_search:
|
|||
/*****************************************************************//**
|
||||
Set difference.
|
||||
@return DB_SUCCESS if all go well */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_query_difference(
|
||||
/*=================*/
|
||||
|
@ -1220,7 +1220,7 @@ fts_query_difference(
|
|||
/*****************************************************************//**
|
||||
Intersect the token doc ids with the current set.
|
||||
@return DB_SUCCESS if all go well */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_query_intersect(
|
||||
/*================*/
|
||||
|
@ -1398,7 +1398,7 @@ fts_query_cache(
|
|||
/*****************************************************************//**
|
||||
Set union.
|
||||
@return DB_SUCCESS if all go well */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_query_union(
|
||||
/*============*/
|
||||
|
@ -2015,7 +2015,7 @@ fts_query_select(
|
|||
Read the rows from the FTS index, that match word and where the
|
||||
doc id is between first and last doc id.
|
||||
@return DB_SUCCESS if all go well else error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_query_find_term(
|
||||
/*================*/
|
||||
|
@ -2155,7 +2155,7 @@ fts_query_sum(
|
|||
/********************************************************************
|
||||
Calculate the total documents that contain a particular word (term).
|
||||
@return DB_SUCCESS if all go well else error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_query_total_docs_containing_term(
|
||||
/*=================================*/
|
||||
|
@ -2234,7 +2234,7 @@ fts_query_total_docs_containing_term(
|
|||
/********************************************************************
|
||||
Get the total number of words in a documents.
|
||||
@return DB_SUCCESS if all go well else error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_query_terms_in_document(
|
||||
/*========================*/
|
||||
|
@ -2315,7 +2315,7 @@ fts_query_terms_in_document(
|
|||
/*****************************************************************//**
|
||||
Retrieve the document and match the phrase tokens.
|
||||
@return DB_SUCCESS or error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_query_match_document(
|
||||
/*=====================*/
|
||||
|
@ -2361,7 +2361,7 @@ fts_query_match_document(
|
|||
This function fetches the original documents and count the
|
||||
words in between matching words to see that is in specified distance
|
||||
@return DB_SUCCESS if all OK */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
bool
|
||||
fts_query_is_in_proximity_range(
|
||||
/*============================*/
|
||||
|
@ -2416,7 +2416,7 @@ fts_query_is_in_proximity_range(
|
|||
Iterate over the matched document ids and search the for the
|
||||
actual phrase in the text.
|
||||
@return DB_SUCCESS if all OK */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_query_search_phrase(
|
||||
/*====================*/
|
||||
|
@ -2504,7 +2504,7 @@ func_exit:
|
|||
/*****************************************************************//**
|
||||
Text/Phrase search.
|
||||
@return DB_SUCCESS or error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_query_phrase_search(
|
||||
/*====================*/
|
||||
|
@ -2755,7 +2755,7 @@ func_exit:
|
|||
/*****************************************************************//**
|
||||
Find the word and evaluate.
|
||||
@return DB_SUCCESS if all go well */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_query_execute(
|
||||
/*==============*/
|
||||
|
@ -4126,7 +4126,7 @@ words in documents found in the first search pass will be used as
|
|||
search arguments to search the document again, thus "expand"
|
||||
the search result set.
|
||||
@return DB_SUCCESS if success, otherwise the error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
fts_expand_query(
|
||||
/*=============*/
|
||||
|
|
|
@ -305,9 +305,9 @@ YY_BUFFER_STATE fts0t_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner
|
|||
YY_BUFFER_STATE fts0t_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
|
||||
YY_BUFFER_STATE fts0t_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
|
||||
|
||||
void *fts0talloc (yy_size_t , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) );
|
||||
void *fts0trealloc (void *,yy_size_t , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) );
|
||||
void fts0tfree (void * , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) );
|
||||
void *fts0talloc (yy_size_t , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) );
|
||||
void *fts0trealloc (void *,yy_size_t , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) );
|
||||
void fts0tfree (void * , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) );
|
||||
|
||||
#define yy_new_buffer fts0t_create_buffer
|
||||
|
||||
|
@ -347,7 +347,7 @@ typedef int yy_state_type;
|
|||
static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
|
||||
static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
|
||||
static int yy_get_next_buffer (yyscan_t yyscanner );
|
||||
static void yy_fatal_error (yyconst char msg[] , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) );
|
||||
static void yy_fatal_error (yyconst char msg[] , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) );
|
||||
|
||||
/* Done after the current pattern has been matched and before the
|
||||
* corresponding action - sets up yytext.
|
||||
|
@ -447,7 +447,7 @@ static yyconst flex_int16_t yy_chk[29] =
|
|||
#line 1 "fts0tlex.l"
|
||||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2007, 2014, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -575,11 +575,11 @@ extern int fts0twrap (yyscan_t yyscanner );
|
|||
#endif
|
||||
|
||||
#ifndef yytext_ptr
|
||||
static void yy_flex_strncpy (char *,yyconst char *,int , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)));
|
||||
static void yy_flex_strncpy (char *,yyconst char *,int , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)));
|
||||
#endif
|
||||
|
||||
#ifdef YY_NEED_STRLEN
|
||||
static int yy_flex_strlen (yyconst char * , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)));
|
||||
static int yy_flex_strlen (yyconst char * , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)));
|
||||
#endif
|
||||
|
||||
#ifndef YY_NO_INPUT
|
||||
|
@ -1602,7 +1602,7 @@ YY_BUFFER_STATE fts0t_scan_bytes (yyconst char * yybytes, int _yybytes_len , y
|
|||
#define YY_EXIT_FAILURE 2
|
||||
#endif
|
||||
|
||||
static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
|
||||
static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
|
||||
{
|
||||
(void) fprintf( stderr, "%s\n", msg );
|
||||
exit( YY_EXIT_FAILURE );
|
||||
|
@ -1903,7 +1903,7 @@ int fts0tlex_destroy (yyscan_t yyscanner)
|
|||
*/
|
||||
|
||||
#ifndef yytext_ptr
|
||||
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
|
||||
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
|
||||
{
|
||||
register int i;
|
||||
for ( i = 0; i < n; ++i )
|
||||
|
@ -1912,7 +1912,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yys
|
|||
#endif
|
||||
|
||||
#ifdef YY_NEED_STRLEN
|
||||
static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
|
||||
static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
|
||||
{
|
||||
register int n;
|
||||
for ( n = 0; s[n]; ++n )
|
||||
|
@ -1922,12 +1922,12 @@ static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner __at
|
|||
}
|
||||
#endif
|
||||
|
||||
void *fts0talloc (yy_size_t size , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
|
||||
void *fts0talloc (yy_size_t size , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
|
||||
{
|
||||
return (void *) malloc( size );
|
||||
}
|
||||
|
||||
void *fts0trealloc (void * ptr, yy_size_t size , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
|
||||
void *fts0trealloc (void * ptr, yy_size_t size , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
|
||||
{
|
||||
/* The cast to (char *) in the following accommodates both
|
||||
* implementations that use char* generic pointers, and those
|
||||
|
@ -1939,7 +1939,7 @@ void *fts0trealloc (void * ptr, yy_size_t size , yyscan_t yyscanner
|
|||
return (void *) realloc( (char *) ptr, size );
|
||||
}
|
||||
|
||||
void fts0tfree (void * ptr , yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
|
||||
void fts0tfree (void * ptr , yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
|
||||
{
|
||||
free( (char *) ptr ); /* see fts0trealloc() for (char *) cast */
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2007, 2011, Oracle and/or its affiliates. All Rights Reserved.
|
||||
# Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -22,15 +22,15 @@ make -f Makefile.query
|
|||
echo '#include "univ.i"' > $TMPF
|
||||
|
||||
# This is to avoid compiler warning about unused parameters.
|
||||
# FIXME: gcc extension "__attribute__" causing compilation errors on windows
|
||||
# FIXME: gcc extension "MY_ATTRIBUTE" causing compilation errors on windows
|
||||
# platform. Quote them out for now.
|
||||
sed -e '
|
||||
s/^\(static.*void.*yy_fatal_error.*msg.*,\)\(.*yyscanner\)/\1 \2 __attribute__((unused))/;
|
||||
s/^\(static.*void.*yy_flex_strncpy.*n.*,\)\(.*yyscanner\)/\1 \2 __attribute__((unused))/;
|
||||
s/^\(static.*int.*yy_flex_strlen.*s.*,\)\(.*yyscanner\)/\1 \2 __attribute__((unused))/;
|
||||
s/^\(\(static\|void\).*fts0[bt]alloc.*,\)\(.*yyscanner\)/\1 \3 __attribute__((unused))/;
|
||||
s/^\(\(static\|void\).*fts0[bt]realloc.*,\)\(.*yyscanner\)/\1 \3 __attribute__((unused))/;
|
||||
s/^\(\(static\|void\).*fts0[bt]free.*,\)\(.*yyscanner\)/\1 \3 __attribute__((unused))/;
|
||||
s/^\(static.*void.*yy_fatal_error.*msg.*,\)\(.*yyscanner\)/\1 \2 MY_ATTRIBUTE((unused))/;
|
||||
s/^\(static.*void.*yy_flex_strncpy.*n.*,\)\(.*yyscanner\)/\1 \2 MY_ATTRIBUTE((unused))/;
|
||||
s/^\(static.*int.*yy_flex_strlen.*s.*,\)\(.*yyscanner\)/\1 \2 MY_ATTRIBUTE((unused))/;
|
||||
s/^\(\(static\|void\).*fts0[bt]alloc.*,\)\(.*yyscanner\)/\1 \3 MY_ATTRIBUTE((unused))/;
|
||||
s/^\(\(static\|void\).*fts0[bt]realloc.*,\)\(.*yyscanner\)/\1 \3 MY_ATTRIBUTE((unused))/;
|
||||
s/^\(\(static\|void\).*fts0[bt]free.*,\)\(.*yyscanner\)/\1 \3 MY_ATTRIBUTE((unused))/;
|
||||
' < fts0blex.cc >> $TMPF
|
||||
|
||||
mv $TMPF fts0blex.cc
|
||||
|
@ -38,12 +38,12 @@ mv $TMPF fts0blex.cc
|
|||
echo '#include "univ.i"' > $TMPF
|
||||
|
||||
sed -e '
|
||||
s/^\(static.*void.*yy_fatal_error.*msg.*,\)\(.*yyscanner\)/\1 \2 __attribute__((unused))/;
|
||||
s/^\(static.*void.*yy_flex_strncpy.*n.*,\)\(.*yyscanner\)/\1 \2 __attribute__((unused))/;
|
||||
s/^\(static.*int.*yy_flex_strlen.*s.*,\)\(.*yyscanner\)/\1 \2 __attribute__((unused))/;
|
||||
s/^\(\(static\|void\).*fts0[bt]alloc.*,\)\(.*yyscanner\)/\1 \3 __attribute__((unused))/;
|
||||
s/^\(\(static\|void\).*fts0[bt]realloc.*,\)\(.*yyscanner\)/\1 \3 __attribute__((unused))/;
|
||||
s/^\(\(static\|void\).*fts0[bt]free.*,\)\(.*yyscanner\)/\1 \3 __attribute__((unused))/;
|
||||
s/^\(static.*void.*yy_fatal_error.*msg.*,\)\(.*yyscanner\)/\1 \2 MY_ATTRIBUTE((unused))/;
|
||||
s/^\(static.*void.*yy_flex_strncpy.*n.*,\)\(.*yyscanner\)/\1 \2 MY_ATTRIBUTE((unused))/;
|
||||
s/^\(static.*int.*yy_flex_strlen.*s.*,\)\(.*yyscanner\)/\1 \2 MY_ATTRIBUTE((unused))/;
|
||||
s/^\(\(static\|void\).*fts0[bt]alloc.*,\)\(.*yyscanner\)/\1 \3 MY_ATTRIBUTE((unused))/;
|
||||
s/^\(\(static\|void\).*fts0[bt]realloc.*,\)\(.*yyscanner\)/\1 \3 MY_ATTRIBUTE((unused))/;
|
||||
s/^\(\(static\|void\).*fts0[bt]free.*,\)\(.*yyscanner\)/\1 \3 MY_ATTRIBUTE((unused))/;
|
||||
' < fts0tlex.cc >> $TMPF
|
||||
|
||||
mv $TMPF fts0tlex.cc
|
||||
|
|
|
@ -1537,7 +1537,7 @@ thd_set_lock_wait_time(
|
|||
/********************************************************************//**
|
||||
Obtain the InnoDB transaction of a MySQL thread.
|
||||
@return reference to transaction pointer */
|
||||
__attribute__((warn_unused_result, nonnull))
|
||||
MY_ATTRIBUTE((warn_unused_result, nonnull))
|
||||
static inline
|
||||
trx_t*&
|
||||
thd_to_trx(
|
||||
|
@ -3673,7 +3673,7 @@ int
|
|||
innobase_end(
|
||||
/*=========*/
|
||||
handlerton* hton, /*!< in/out: InnoDB handlerton */
|
||||
ha_panic_function type __attribute__((unused)))
|
||||
ha_panic_function type MY_ATTRIBUTE((unused)))
|
||||
/*!< in: ha_panic() parameter */
|
||||
{
|
||||
int err= 0;
|
||||
|
@ -9101,7 +9101,7 @@ create_table_check_doc_id_col(
|
|||
|
||||
/*****************************************************************//**
|
||||
Creates a table definition to an InnoDB database. */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
int
|
||||
create_table_def(
|
||||
/*=============*/
|
||||
|
@ -10546,6 +10546,25 @@ ha_innobase::discard_or_import_tablespace(
|
|||
/* Commit the transaction in order to release the table lock. */
|
||||
trx_commit_for_mysql(prebuilt->trx);
|
||||
|
||||
if (err == DB_SUCCESS && !discard
|
||||
&& dict_stats_is_persistent_enabled(dict_table)) {
|
||||
dberr_t ret;
|
||||
|
||||
/* Adjust the persistent statistics. */
|
||||
ret = dict_stats_update(dict_table,
|
||||
DICT_STATS_RECALC_PERSISTENT);
|
||||
|
||||
if (ret != DB_SUCCESS) {
|
||||
push_warning_printf(
|
||||
ha_thd(),
|
||||
Sql_condition::WARN_LEVEL_WARN,
|
||||
ER_ALTER_INFO,
|
||||
"Error updating stats for table '%s'"
|
||||
" after table rebuild: %s",
|
||||
dict_table->name, ut_strerr(ret));
|
||||
}
|
||||
}
|
||||
|
||||
DBUG_RETURN(convert_error_code_to_mysql(err, dict_table->flags, NULL));
|
||||
}
|
||||
|
||||
|
@ -10796,7 +10815,7 @@ innobase_drop_database(
|
|||
/*********************************************************************//**
|
||||
Renames an InnoDB table.
|
||||
@return DB_SUCCESS or error code */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
innobase_rename_table(
|
||||
/*==================*/
|
||||
|
@ -15719,7 +15738,7 @@ static char* srv_buffer_pool_evict;
|
|||
Evict all uncompressed pages of compressed tables from the buffer pool.
|
||||
Keep the compressed pages in the buffer pool.
|
||||
@return whether all uncompressed pages were evicted */
|
||||
static __attribute__((warn_unused_result))
|
||||
static MY_ATTRIBUTE((warn_unused_result))
|
||||
bool
|
||||
innodb_buffer_pool_evict_uncompressed(void)
|
||||
/*=======================================*/
|
||||
|
@ -16047,13 +16066,13 @@ void
|
|||
purge_run_now_set(
|
||||
/*==============*/
|
||||
THD* thd /*!< in: thread handle */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
struct st_mysql_sys_var* var /*!< in: pointer to system
|
||||
variable */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
void* var_ptr /*!< out: where the formal
|
||||
string goes */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
const void* save) /*!< in: immediate result from
|
||||
check function */
|
||||
{
|
||||
|
@ -16070,13 +16089,13 @@ void
|
|||
purge_stop_now_set(
|
||||
/*===============*/
|
||||
THD* thd /*!< in: thread handle */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
struct st_mysql_sys_var* var /*!< in: pointer to system
|
||||
variable */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
void* var_ptr /*!< out: where the formal
|
||||
string goes */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
const void* save) /*!< in: immediate result from
|
||||
check function */
|
||||
{
|
||||
|
@ -16092,13 +16111,13 @@ void
|
|||
checkpoint_now_set(
|
||||
/*===============*/
|
||||
THD* thd /*!< in: thread handle */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
struct st_mysql_sys_var* var /*!< in: pointer to system
|
||||
variable */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
void* var_ptr /*!< out: where the formal
|
||||
string goes */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
const void* save) /*!< in: immediate result from
|
||||
check function */
|
||||
{
|
||||
|
@ -16119,13 +16138,13 @@ void
|
|||
buf_flush_list_now_set(
|
||||
/*===================*/
|
||||
THD* thd /*!< in: thread handle */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
struct st_mysql_sys_var* var /*!< in: pointer to system
|
||||
variable */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
void* var_ptr /*!< out: where the formal
|
||||
string goes */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
const void* save) /*!< in: immediate result from
|
||||
check function */
|
||||
{
|
||||
|
@ -16222,13 +16241,13 @@ void
|
|||
buffer_pool_dump_now(
|
||||
/*=================*/
|
||||
THD* thd /*!< in: thread handle */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
struct st_mysql_sys_var* var /*!< in: pointer to system
|
||||
variable */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
void* var_ptr /*!< out: where the formal
|
||||
string goes */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
const void* save) /*!< in: immediate result from
|
||||
check function */
|
||||
{
|
||||
|
@ -16245,13 +16264,13 @@ void
|
|||
buffer_pool_load_now(
|
||||
/*=================*/
|
||||
THD* thd /*!< in: thread handle */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
struct st_mysql_sys_var* var /*!< in: pointer to system
|
||||
variable */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
void* var_ptr /*!< out: where the formal
|
||||
string goes */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
const void* save) /*!< in: immediate result from
|
||||
check function */
|
||||
{
|
||||
|
@ -16268,13 +16287,13 @@ void
|
|||
buffer_pool_load_abort(
|
||||
/*===================*/
|
||||
THD* thd /*!< in: thread handle */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
struct st_mysql_sys_var* var /*!< in: pointer to system
|
||||
variable */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
void* var_ptr /*!< out: where the formal
|
||||
string goes */
|
||||
__attribute__((unused)),
|
||||
MY_ATTRIBUTE((unused)),
|
||||
const void* save) /*!< in: immediate result from
|
||||
check function */
|
||||
{
|
||||
|
@ -16292,10 +16311,10 @@ which control InnoDB "status monitor" output to the error log.
|
|||
static
|
||||
void
|
||||
innodb_status_output_update(
|
||||
THD* thd __attribute__((unused)),
|
||||
struct st_mysql_sys_var* var __attribute__((unused)),
|
||||
void* var_ptr __attribute__((unused)),
|
||||
const void* save __attribute__((unused)))
|
||||
THD* thd MY_ATTRIBUTE((unused)),
|
||||
struct st_mysql_sys_var* var MY_ATTRIBUTE((unused)),
|
||||
void* var_ptr MY_ATTRIBUTE((unused)),
|
||||
const void* save MY_ATTRIBUTE((unused)))
|
||||
{
|
||||
*static_cast<my_bool*>(var_ptr) = *static_cast<const my_bool*>(save);
|
||||
/* Wakeup server monitor thread. */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2013, 2016, MariaDB Corporation.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
|
@ -433,7 +433,7 @@ enum durability_properties thd_get_durability_property(const MYSQL_THD thd);
|
|||
@return True if sql_mode has strict mode (all or trans), false otherwise.
|
||||
*/
|
||||
bool thd_is_strict_mode(const MYSQL_THD thd)
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
} /* extern "C" */
|
||||
|
||||
/** Get the file name and position of the MySQL binlog corresponding to the
|
||||
|
@ -476,7 +476,7 @@ innobase_index_name_is_reserved(
|
|||
const KEY* key_info, /*!< in: Indexes to be created */
|
||||
ulint num_of_keys) /*!< in: Number of indexes to
|
||||
be created. */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/*****************************************************************//**
|
||||
Determines InnoDB table flags.
|
||||
|
@ -493,7 +493,7 @@ innobase_table_flags(
|
|||
outside system tablespace */
|
||||
ulint* flags, /*!< out: DICT_TF flags */
|
||||
ulint* flags2) /*!< out: DICT_TF2 flags */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/*****************************************************************//**
|
||||
Validates the create options. We may build on this function
|
||||
|
@ -510,7 +510,7 @@ create_options_are_invalid(
|
|||
columns and indexes */
|
||||
HA_CREATE_INFO* create_info, /*!< in: create info. */
|
||||
bool use_tablespace) /*!< in: srv_file_per_table */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/*********************************************************************//**
|
||||
Retrieve the FTS Relevance Ranking result for doc with doc_id
|
||||
|
@ -540,7 +540,7 @@ void
|
|||
innobase_fts_close_ranking(
|
||||
/*=======================*/
|
||||
FT_INFO* fts_hdl) /*!< in: FTS handler */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*****************************************************************//**
|
||||
Initialize the table FTS stopword list
|
||||
@return TRUE if success */
|
||||
|
@ -551,7 +551,7 @@ innobase_fts_load_stopword(
|
|||
dict_table_t* table, /*!< in: Table has the FTS */
|
||||
trx_t* trx, /*!< in: transaction */
|
||||
THD* thd) /*!< in: current thread */
|
||||
__attribute__((nonnull(1,3), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(1,3), warn_unused_result));
|
||||
|
||||
/** Some defines for innobase_fts_check_doc_id_index() return value */
|
||||
enum fts_doc_id_index_enum {
|
||||
|
@ -573,7 +573,7 @@ innobase_fts_check_doc_id_index(
|
|||
that is being altered */
|
||||
ulint* fts_doc_col_no) /*!< out: The column number for
|
||||
Doc ID */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
|
||||
/*******************************************************************//**
|
||||
Check whether the table has a unique index with FTS_DOC_ID_INDEX_NAME
|
||||
|
@ -586,7 +586,7 @@ innobase_fts_check_doc_id_index_in_def(
|
|||
/*===================================*/
|
||||
ulint n_key, /*!< in: Number of keys */
|
||||
const KEY* key_info) /*!< in: Key definitions */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/***********************************************************************
|
||||
@return version of the extended FTS API */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2005, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -100,7 +100,7 @@ static const Alter_inplace_info::HA_ALTER_FLAGS INNOBASE_ALTER_NOREBUILD
|
|||
| Alter_inplace_info::ALTER_COLUMN_NAME;
|
||||
|
||||
/* Report an InnoDB error to the client by invoking my_error(). */
|
||||
static UNIV_COLD __attribute__((nonnull))
|
||||
static UNIV_COLD MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
my_error_innodb(
|
||||
/*============*/
|
||||
|
@ -202,7 +202,7 @@ Determine if ALTER TABLE needs to rebuild the table.
|
|||
@param ha_alter_info the DDL operation
|
||||
@param altered_table MySQL original table
|
||||
@return whether it is necessary to rebuild the table */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
bool
|
||||
innobase_need_rebuild(
|
||||
/*==================*/
|
||||
|
@ -622,7 +622,7 @@ ha_innobase::check_if_supported_inplace_alter(
|
|||
/*************************************************************//**
|
||||
Initialize the dict_foreign_t structure with supplied info
|
||||
@return true if added, false if duplicate foreign->id */
|
||||
static __attribute__((nonnull(1,3,5,7)))
|
||||
static MY_ATTRIBUTE((nonnull(1,3,5,7)))
|
||||
bool
|
||||
innobase_init_foreign(
|
||||
/*==================*/
|
||||
|
@ -711,7 +711,7 @@ innobase_init_foreign(
|
|||
/*************************************************************//**
|
||||
Check whether the foreign key options is legit
|
||||
@return true if it is */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
bool
|
||||
innobase_check_fk_option(
|
||||
/*=====================*/
|
||||
|
@ -743,7 +743,7 @@ innobase_check_fk_option(
|
|||
/*************************************************************//**
|
||||
Set foreign key options
|
||||
@return true if successfully set */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
bool
|
||||
innobase_set_foreign_key_option(
|
||||
/*============================*/
|
||||
|
@ -788,7 +788,7 @@ innobase_set_foreign_key_option(
|
|||
Check if a foreign key constraint can make use of an index
|
||||
that is being created.
|
||||
@return useable index, or NULL if none found */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
const KEY*
|
||||
innobase_find_equiv_index(
|
||||
/*======================*/
|
||||
|
@ -844,7 +844,7 @@ no_match:
|
|||
Find an index whose first fields are the columns in the array
|
||||
in the same order and is not marked for deletion
|
||||
@return matching index, NULL if not found */
|
||||
static __attribute__((nonnull(1,2,6), warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull(1,2,6), warn_unused_result))
|
||||
dict_index_t*
|
||||
innobase_find_fk_index(
|
||||
/*===================*/
|
||||
|
@ -892,7 +892,7 @@ next_rec:
|
|||
Create InnoDB foreign key structure from MySQL alter_info
|
||||
@retval true if successful
|
||||
@retval false on error (will call my_error()) */
|
||||
static __attribute__((nonnull(1,2,3,7,8), warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull(1,2,3,7,8), warn_unused_result))
|
||||
bool
|
||||
innobase_get_foreign_key_info(
|
||||
/*==========================*/
|
||||
|
@ -1390,7 +1390,7 @@ innobase_rec_reset(
|
|||
/*******************************************************************//**
|
||||
This function checks that index keys are sensible.
|
||||
@return 0 or error number */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
int
|
||||
innobase_check_index_keys(
|
||||
/*======================*/
|
||||
|
@ -1511,7 +1511,7 @@ name_ok:
|
|||
|
||||
/*******************************************************************//**
|
||||
Create index field definition for key part */
|
||||
static __attribute__((nonnull(2,3)))
|
||||
static MY_ATTRIBUTE((nonnull(2,3)))
|
||||
void
|
||||
innobase_create_index_field_def(
|
||||
/*============================*/
|
||||
|
@ -1560,7 +1560,7 @@ innobase_create_index_field_def(
|
|||
|
||||
/*******************************************************************//**
|
||||
Create index definition for key */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
innobase_create_index_def(
|
||||
/*======================*/
|
||||
|
@ -1850,7 +1850,7 @@ ELSE
|
|||
ENDIF
|
||||
|
||||
@return key definitions */
|
||||
static __attribute__((nonnull, warn_unused_result, malloc))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result, malloc))
|
||||
index_def_t*
|
||||
innobase_create_key_defs(
|
||||
/*=====================*/
|
||||
|
@ -2074,7 +2074,7 @@ created_clustered:
|
|||
/*******************************************************************//**
|
||||
Check each index column size, make sure they do not exceed the max limit
|
||||
@return true if index column size exceeds limit */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
bool
|
||||
innobase_check_column_length(
|
||||
/*=========================*/
|
||||
|
@ -2224,7 +2224,7 @@ online_retry_drop_indexes_low(
|
|||
/********************************************************************//**
|
||||
Drop any indexes that we were not able to free previously due to
|
||||
open table handles. */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
online_retry_drop_indexes(
|
||||
/*======================*/
|
||||
|
@ -2254,7 +2254,7 @@ online_retry_drop_indexes(
|
|||
/********************************************************************//**
|
||||
Commit a dictionary transaction and drop any indexes that we were not
|
||||
able to free previously due to open table handles. */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
online_retry_drop_indexes_with_trx(
|
||||
/*===============================*/
|
||||
|
@ -2283,7 +2283,7 @@ online_retry_drop_indexes_with_trx(
|
|||
@param drop_fk constraints being dropped
|
||||
@param n_drop_fk number of constraints that are being dropped
|
||||
@return whether the constraint is being dropped */
|
||||
inline __attribute__((pure, nonnull, warn_unused_result))
|
||||
inline MY_ATTRIBUTE((pure, nonnull, warn_unused_result))
|
||||
bool
|
||||
innobase_dropping_foreign(
|
||||
/*======================*/
|
||||
|
@ -2310,7 +2310,7 @@ column that is being dropped or modified to NOT NULL.
|
|||
@retval true Not allowed (will call my_error())
|
||||
@retval false Allowed
|
||||
*/
|
||||
static __attribute__((pure, nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((pure, nonnull, warn_unused_result))
|
||||
bool
|
||||
innobase_check_foreigns_low(
|
||||
/*========================*/
|
||||
|
@ -2410,7 +2410,7 @@ column that is being dropped or modified to NOT NULL.
|
|||
@retval true Not allowed (will call my_error())
|
||||
@retval false Allowed
|
||||
*/
|
||||
static __attribute__((pure, nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((pure, nonnull, warn_unused_result))
|
||||
bool
|
||||
innobase_check_foreigns(
|
||||
/*====================*/
|
||||
|
@ -2455,7 +2455,7 @@ innobase_check_foreigns(
|
|||
@param dfield InnoDB data field to copy to
|
||||
@param field MySQL value for the column
|
||||
@param comp nonzero if in compact format */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
innobase_build_col_map_add(
|
||||
/*=======================*/
|
||||
|
@ -2489,7 +2489,7 @@ adding columns.
|
|||
@param heap Memory heap where allocated
|
||||
@return array of integers, mapping column numbers in the table
|
||||
to column numbers in altered_table */
|
||||
static __attribute__((nonnull(1,2,3,4,5,7), warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull(1,2,3,4,5,7), warn_unused_result))
|
||||
const ulint*
|
||||
innobase_build_col_map(
|
||||
/*===================*/
|
||||
|
@ -2639,7 +2639,7 @@ innobase_drop_fts_index_table(
|
|||
@param user_table InnoDB table as it is before the ALTER operation
|
||||
@param heap Memory heap for the allocation
|
||||
@return array of new column names in rebuilt_table, or NULL if not renamed */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
const char**
|
||||
innobase_get_col_names(
|
||||
Alter_inplace_info* ha_alter_info,
|
||||
|
@ -2702,7 +2702,7 @@ while preparing ALTER TABLE.
|
|||
@retval true Failure
|
||||
@retval false Success
|
||||
*/
|
||||
static __attribute__((warn_unused_result, nonnull(1,2,3,4)))
|
||||
static MY_ATTRIBUTE((warn_unused_result, nonnull(1,2,3,4)))
|
||||
bool
|
||||
prepare_inplace_alter_table_dict(
|
||||
/*=============================*/
|
||||
|
@ -3346,7 +3346,7 @@ err_exit:
|
|||
/* Check whether an index is needed for the foreign key constraint.
|
||||
If so, if it is dropped, is there an equivalent index can play its role.
|
||||
@return true if the index is needed and can't be dropped */
|
||||
static __attribute__((nonnull(1,2,3,5), warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull(1,2,3,5), warn_unused_result))
|
||||
bool
|
||||
innobase_check_foreign_key_index(
|
||||
/*=============================*/
|
||||
|
@ -4250,7 +4250,7 @@ temparary index prefix
|
|||
@param locked TRUE=table locked, FALSE=may need to do a lazy drop
|
||||
@param trx the transaction
|
||||
*/
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
innobase_rollback_sec_index(
|
||||
/*========================*/
|
||||
|
@ -4284,7 +4284,7 @@ during prepare, but might not be during commit).
|
|||
@retval true Failure
|
||||
@retval false Success
|
||||
*/
|
||||
inline __attribute__((nonnull, warn_unused_result))
|
||||
inline MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
bool
|
||||
rollback_inplace_alter_table(
|
||||
/*=========================*/
|
||||
|
@ -4416,7 +4416,7 @@ func_exit:
|
|||
@param foreign_id Foreign key constraint identifier
|
||||
@retval true Failure
|
||||
@retval false Success */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
bool
|
||||
innobase_drop_foreign_try(
|
||||
/*======================*/
|
||||
|
@ -4473,7 +4473,7 @@ innobase_drop_foreign_try(
|
|||
@param new_clustered whether the table has been rebuilt
|
||||
@retval true Failure
|
||||
@retval false Success */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
bool
|
||||
innobase_rename_column_try(
|
||||
/*=======================*/
|
||||
|
@ -4682,7 +4682,7 @@ rename_foreign:
|
|||
@param table_name Table name in MySQL
|
||||
@retval true Failure
|
||||
@retval false Success */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
bool
|
||||
innobase_rename_columns_try(
|
||||
/*========================*/
|
||||
|
@ -4732,7 +4732,7 @@ as part of commit_cache_norebuild().
|
|||
@param ha_alter_info Data used during in-place alter.
|
||||
@param table the TABLE
|
||||
@param user_table InnoDB table that was being altered */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
innobase_rename_columns_cache(
|
||||
/*==========================*/
|
||||
|
@ -4776,7 +4776,7 @@ processed_field:
|
|||
@param altered_table MySQL table that is being altered
|
||||
@param old_table MySQL table as it is before the ALTER operation
|
||||
@return the next auto-increment value (0 if not present) */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
ulonglong
|
||||
commit_get_autoinc(
|
||||
/*===============*/
|
||||
|
@ -4860,7 +4860,7 @@ but do not touch the data dictionary cache.
|
|||
@retval true Failure
|
||||
@retval false Success
|
||||
*/
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
bool
|
||||
innobase_update_foreign_try(
|
||||
/*========================*/
|
||||
|
@ -4944,7 +4944,7 @@ after the changes to data dictionary tables were committed.
|
|||
@param ctx In-place ALTER TABLE context
|
||||
@param user_thd MySQL connection
|
||||
@return InnoDB error code (should always be DB_SUCCESS) */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
innobase_update_foreign_cache(
|
||||
/*==========================*/
|
||||
|
@ -5029,7 +5029,7 @@ when rebuilding the table.
|
|||
@retval true Failure
|
||||
@retval false Success
|
||||
*/
|
||||
inline __attribute__((nonnull, warn_unused_result))
|
||||
inline MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
bool
|
||||
commit_try_rebuild(
|
||||
/*===============*/
|
||||
|
@ -5191,7 +5191,7 @@ commit_try_rebuild(
|
|||
/** Apply the changes made during commit_try_rebuild(),
|
||||
to the data dictionary cache and the file system.
|
||||
@param ctx In-place ALTER TABLE context */
|
||||
inline __attribute__((nonnull))
|
||||
inline MY_ATTRIBUTE((nonnull))
|
||||
void
|
||||
commit_cache_rebuild(
|
||||
/*=================*/
|
||||
|
@ -5286,7 +5286,7 @@ when not rebuilding the table.
|
|||
@retval true Failure
|
||||
@retval false Success
|
||||
*/
|
||||
inline __attribute__((nonnull, warn_unused_result))
|
||||
inline MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
bool
|
||||
commit_try_norebuild(
|
||||
/*=================*/
|
||||
|
@ -5396,7 +5396,7 @@ after a successful commit_try_norebuild() call.
|
|||
@param trx Data dictionary transaction object
|
||||
(will be started and committed)
|
||||
@return whether all replacements were found for dropped indexes */
|
||||
inline __attribute__((nonnull, warn_unused_result))
|
||||
inline MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
bool
|
||||
commit_cache_norebuild(
|
||||
/*===================*/
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1997, 2014, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -657,7 +657,7 @@ byte*
|
|||
ibuf_parse_bitmap_init(
|
||||
/*===================*/
|
||||
byte* ptr, /*!< in: buffer */
|
||||
byte* end_ptr __attribute__((unused)), /*!< in: buffer end */
|
||||
byte* end_ptr MY_ATTRIBUTE((unused)), /*!< in: buffer end */
|
||||
buf_block_t* block, /*!< in: block or NULL */
|
||||
mtr_t* mtr) /*!< in: mtr or NULL */
|
||||
{
|
||||
|
@ -2494,7 +2494,7 @@ ibuf_get_merge_page_nos_func(
|
|||
/*******************************************************************//**
|
||||
Get the matching records for space id.
|
||||
@return current rec or NULL */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
const rec_t*
|
||||
ibuf_get_user_rec(
|
||||
/*===============*/
|
||||
|
@ -2516,7 +2516,7 @@ ibuf_get_user_rec(
|
|||
Reads page numbers for a space id from an ibuf tree.
|
||||
@return a lower limit for the combined volume of records which will be
|
||||
merged */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
ulint
|
||||
ibuf_get_merge_pages(
|
||||
/*=================*/
|
||||
|
@ -2624,40 +2624,22 @@ ibuf_merge_pages(
|
|||
}
|
||||
|
||||
/*********************************************************************//**
|
||||
Get the table instance from the table id.
|
||||
@return table instance */
|
||||
static __attribute__((warn_unused_result))
|
||||
dict_table_t*
|
||||
ibuf_get_table(
|
||||
/*===========*/
|
||||
table_id_t table_id) /*!< in: valid table id */
|
||||
{
|
||||
rw_lock_s_lock_func(&dict_operation_lock, 0, __FILE__, __LINE__);
|
||||
|
||||
dict_table_t* table = dict_table_open_on_id(
|
||||
table_id, FALSE, DICT_TABLE_OP_NORMAL);
|
||||
|
||||
rw_lock_s_unlock_gen(&dict_operation_lock, 0);
|
||||
|
||||
return(table);
|
||||
}
|
||||
|
||||
/*********************************************************************//**
|
||||
Contracts insert buffer trees by reading pages to the buffer pool.
|
||||
@return a lower limit for the combined size in bytes of entries which
|
||||
will be merged from ibuf trees to the pages read, 0 if ibuf is
|
||||
empty */
|
||||
static
|
||||
Contracts insert buffer trees by reading pages referring to space_id
|
||||
to the buffer pool.
|
||||
@returns number of pages merged.*/
|
||||
UNIV_INTERN
|
||||
ulint
|
||||
ibuf_merge_space(
|
||||
/*=============*/
|
||||
ulint space, /*!< in: tablespace id to merge */
|
||||
ulint* n_pages)/*!< out: number of pages to which merged */
|
||||
ulint space) /*!< in: tablespace id to merge */
|
||||
{
|
||||
mtr_t mtr;
|
||||
btr_pcur_t pcur;
|
||||
mem_heap_t* heap = mem_heap_create(512);
|
||||
dtuple_t* tuple = ibuf_search_tuple_build(space, 0, heap);
|
||||
ulint n_pages = 0;
|
||||
|
||||
ut_ad(space < SRV_LOG_SPACE_FIRST_ID);
|
||||
|
||||
ibuf_mtr_start(&mtr);
|
||||
|
||||
|
@ -2689,50 +2671,47 @@ ibuf_merge_space(
|
|||
} else {
|
||||
|
||||
sum_sizes = ibuf_get_merge_pages(
|
||||
&pcur, space, IBUF_MAX_N_PAGES_MERGED,
|
||||
&pages[0], &spaces[0], &versions[0], n_pages,
|
||||
&mtr);
|
||||
&pcur, space, IBUF_MAX_N_PAGES_MERGED,
|
||||
&pages[0], &spaces[0], &versions[0], &n_pages,
|
||||
&mtr);
|
||||
ib_logf(IB_LOG_LEVEL_INFO,"\n Size of pages merged %lu"
|
||||
,sum_sizes);
|
||||
|
||||
++sum_sizes;
|
||||
}
|
||||
|
||||
ibuf_mtr_commit(&mtr);
|
||||
|
||||
btr_pcur_close(&pcur);
|
||||
|
||||
if (sum_sizes > 0) {
|
||||
|
||||
ut_a(*n_pages > 0 || sum_sizes == 1);
|
||||
if (n_pages > 0) {
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
ut_ad(*n_pages <= UT_ARR_SIZE(pages));
|
||||
ut_ad(n_pages <= UT_ARR_SIZE(pages));
|
||||
|
||||
for (ulint i = 0; i < *n_pages; ++i) {
|
||||
for (ulint i = 0; i < n_pages; ++i) {
|
||||
ut_ad(spaces[i] == space);
|
||||
ut_ad(i == 0 || versions[i] == versions[i - 1]);
|
||||
}
|
||||
#endif /* UNIV_DEBUG */
|
||||
|
||||
buf_read_ibuf_merge_pages(
|
||||
true, spaces, versions, pages, *n_pages);
|
||||
true, spaces, versions, pages, n_pages);
|
||||
}
|
||||
|
||||
return(sum_sizes);
|
||||
return(n_pages);
|
||||
}
|
||||
|
||||
/*********************************************************************//**
|
||||
Contracts insert buffer trees by reading pages to the buffer pool.
|
||||
/** Contract the change buffer by reading pages to the buffer pool.
|
||||
@param[out] n_pages number of pages merged
|
||||
@param[in] sync whether the caller waits for
|
||||
the issued reads to complete
|
||||
@return a lower limit for the combined size in bytes of entries which
|
||||
will be merged from ibuf trees to the pages read, 0 if ibuf is
|
||||
empty */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
ulint
|
||||
ibuf_merge(
|
||||
/*=======*/
|
||||
table_id_t table_id, /*!< in: if merge should be
|
||||
done only for a specific
|
||||
table, for all tables this
|
||||
should be 0 */
|
||||
ulint* n_pages, /*!< out: number of pages to
|
||||
which merged */
|
||||
bool sync) /*!< in: TRUE if the caller
|
||||
|
@ -2740,8 +2719,6 @@ ibuf_merge(
|
|||
read with the highest
|
||||
tablespace address to complete */
|
||||
{
|
||||
dict_table_t* table;
|
||||
|
||||
*n_pages = 0;
|
||||
|
||||
/* We perform a dirty read of ibuf->empty, without latching
|
||||
|
@ -2755,55 +2732,45 @@ ibuf_merge(
|
|||
} else if (ibuf_debug) {
|
||||
return(0);
|
||||
#endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */
|
||||
} else if (table_id == 0) {
|
||||
} else {
|
||||
return(ibuf_merge_pages(n_pages, sync));
|
||||
} else if ((table = ibuf_get_table(table_id)) == 0) {
|
||||
/* Table has been dropped. */
|
||||
return(0);
|
||||
}
|
||||
|
||||
ulint volume = ibuf_merge_space(table->space, n_pages);
|
||||
|
||||
dict_table_close(table, FALSE, FALSE);
|
||||
|
||||
return(volume);
|
||||
}
|
||||
|
||||
/*********************************************************************//**
|
||||
Contracts insert buffer trees by reading pages to the buffer pool.
|
||||
/** Contract the change buffer by reading pages to the buffer pool.
|
||||
@param[in] sync whether the caller waits for
|
||||
the issued reads to complete
|
||||
@return a lower limit for the combined size in bytes of entries which
|
||||
will be merged from ibuf trees to the pages read, 0 if ibuf is
|
||||
empty */
|
||||
will be merged from ibuf trees to the pages read, 0 if ibuf is empty */
|
||||
static
|
||||
ulint
|
||||
ibuf_contract(
|
||||
/*==========*/
|
||||
ibool sync) /*!< in: TRUE if the caller wants to wait for the
|
||||
bool sync) /*!< in: TRUE if the caller wants to wait for the
|
||||
issued read with the highest tablespace address
|
||||
to complete */
|
||||
{
|
||||
ulint n_pages;
|
||||
|
||||
return(ibuf_merge(0, &n_pages, sync));
|
||||
return(ibuf_merge_pages(&n_pages, sync));
|
||||
}
|
||||
|
||||
/*********************************************************************//**
|
||||
Contracts insert buffer trees by reading pages to the buffer pool.
|
||||
/** Contract the change buffer by reading pages to the buffer pool.
|
||||
@param[in] full If true, do a full contraction based
|
||||
on PCT_IO(100). If false, the size of contract batch is determined
|
||||
based on the current size of the change buffer.
|
||||
@return a lower limit for the combined size in bytes of entries which
|
||||
will be merged from ibuf trees to the pages read, 0 if ibuf is
|
||||
empty */
|
||||
UNIV_INTERN
|
||||
ulint
|
||||
ibuf_contract_in_background(
|
||||
/*========================*/
|
||||
table_id_t table_id, /*!< in: if merge should be done only
|
||||
for a specific table, for all tables
|
||||
this should be 0 */
|
||||
ibool full) /*!< in: TRUE if the caller wants to
|
||||
do a full contract based on PCT_IO(100).
|
||||
If FALSE then the size of contract
|
||||
batch is determined based on the
|
||||
current size of the ibuf tree. */
|
||||
ibuf_merge_in_background(
|
||||
/*=====================*/
|
||||
bool full) /*!< in: TRUE if the caller wants to
|
||||
do a full contract based on PCT_IO(100).
|
||||
If FALSE then the size of contract
|
||||
batch is determined based on the
|
||||
current size of the ibuf tree. */
|
||||
{
|
||||
ulint sum_bytes = 0;
|
||||
ulint sum_pages = 0;
|
||||
|
@ -2811,7 +2778,7 @@ ibuf_contract_in_background(
|
|||
ulint n_pages;
|
||||
|
||||
#if defined UNIV_DEBUG || defined UNIV_IBUF_DEBUG
|
||||
if (srv_ibuf_disable_background_merge && table_id == 0) {
|
||||
if (srv_ibuf_disable_background_merge) {
|
||||
return(0);
|
||||
}
|
||||
#endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */
|
||||
|
@ -2848,7 +2815,7 @@ ibuf_contract_in_background(
|
|||
while (sum_pages < n_pages) {
|
||||
ulint n_bytes;
|
||||
|
||||
n_bytes = ibuf_merge(table_id, &n_pag2, FALSE);
|
||||
n_bytes = ibuf_merge(&n_pag2, false);
|
||||
|
||||
if (n_bytes == 0) {
|
||||
return(sum_bytes);
|
||||
|
@ -3452,7 +3419,7 @@ ibuf_get_entry_counter_func(
|
|||
Buffer an operation in the insert/delete buffer, instead of doing it
|
||||
directly to the disk page, if this is possible.
|
||||
@return DB_SUCCESS, DB_STRONG_FAIL or other error */
|
||||
static __attribute__((nonnull, warn_unused_result))
|
||||
static MY_ATTRIBUTE((nonnull, warn_unused_result))
|
||||
dberr_t
|
||||
ibuf_insert_low(
|
||||
/*============*/
|
||||
|
@ -3519,8 +3486,7 @@ ibuf_insert_low(
|
|||
#ifdef UNIV_IBUF_DEBUG
|
||||
fputs("Ibuf too big\n", stderr);
|
||||
#endif
|
||||
/* Use synchronous contract (== TRUE) */
|
||||
ibuf_contract(TRUE);
|
||||
ibuf_contract(true);
|
||||
|
||||
return(DB_STRONG_FAIL);
|
||||
}
|
||||
|
@ -3943,7 +3909,7 @@ skip_watch:
|
|||
During merge, inserts to an index page a secondary index entry extracted
|
||||
from the insert buffer.
|
||||
@return newly inserted record */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
rec_t*
|
||||
ibuf_insert_to_index_page_low(
|
||||
/*==========================*/
|
||||
|
@ -4374,7 +4340,7 @@ ibuf_delete(
|
|||
/*********************************************************************//**
|
||||
Restores insert buffer tree cursor position
|
||||
@return TRUE if the position was restored; FALSE if not */
|
||||
static __attribute__((nonnull))
|
||||
static MY_ATTRIBUTE((nonnull))
|
||||
ibool
|
||||
ibuf_restore_pos(
|
||||
/*=============*/
|
||||
|
@ -4429,7 +4395,7 @@ Deletes from ibuf the record on which pcur is positioned. If we have to
|
|||
resort to a pessimistic delete, this function commits mtr and closes
|
||||
the cursor.
|
||||
@return TRUE if mtr was committed and pcur closed in this operation */
|
||||
static __attribute__((warn_unused_result))
|
||||
static MY_ATTRIBUTE((warn_unused_result))
|
||||
ibool
|
||||
ibuf_delete_rec(
|
||||
/*============*/
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2011, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -36,7 +36,7 @@ InnoDB Native API
|
|||
#endif
|
||||
|
||||
#if defined(__GNUC__) && (__GNUC__ > 2) && ! defined(__INTEL_COMPILER)
|
||||
#define UNIV_NO_IGNORE __attribute__ ((warn_unused_result))
|
||||
#define UNIV_NO_IGNORE MY_ATTRIBUTE ((warn_unused_result))
|
||||
#else
|
||||
#define UNIV_NO_IGNORE
|
||||
#endif /* __GNUC__ && __GNUC__ > 2 && !__INTEL_COMPILER */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2012, Facebook Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
|
@ -114,7 +114,7 @@ btr_corruption_report(
|
|||
/*==================*/
|
||||
const buf_block_t* block, /*!< in: corrupted block */
|
||||
const dict_index_t* index) /*!< in: index tree */
|
||||
UNIV_COLD __attribute__((nonnull));
|
||||
UNIV_COLD MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/** Assert that a B-tree page is not corrupted.
|
||||
@param block buffer block containing a B-tree page
|
||||
|
@ -156,7 +156,7 @@ btr_blob_dbg_add_blob(
|
|||
ulint page_no, /*!< in: start page of the column */
|
||||
dict_index_t* index, /*!< in/out: index tree */
|
||||
const char* ctx) /*!< in: context (for logging) */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**************************************************************//**
|
||||
Display the references to off-page columns.
|
||||
This function is to be called from a debugger,
|
||||
|
@ -166,7 +166,7 @@ void
|
|||
btr_blob_dbg_print(
|
||||
/*===============*/
|
||||
const dict_index_t* index) /*!< in: index tree */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**************************************************************//**
|
||||
Check that there are no references to off-page columns from or to
|
||||
the given page. Invoked when freeing or clearing a page.
|
||||
|
@ -177,7 +177,7 @@ btr_blob_dbg_is_empty(
|
|||
/*==================*/
|
||||
dict_index_t* index, /*!< in: index */
|
||||
ulint page_no) /*!< in: page number */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/**************************************************************//**
|
||||
Modify the 'deleted' flag of a record. */
|
||||
|
@ -189,7 +189,7 @@ btr_blob_dbg_set_deleted_flag(
|
|||
dict_index_t* index, /*!< in/out: index */
|
||||
const ulint* offsets,/*!< in: rec_get_offs(rec, index) */
|
||||
ibool del) /*!< in: TRUE=deleted, FALSE=exists */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**************************************************************//**
|
||||
Change the ownership of an off-page column. */
|
||||
UNIV_INTERN
|
||||
|
@ -201,7 +201,7 @@ btr_blob_dbg_owner(
|
|||
const ulint* offsets,/*!< in: rec_get_offs(rec, index) */
|
||||
ulint i, /*!< in: ith field in rec */
|
||||
ibool own) /*!< in: TRUE=owned, FALSE=disowned */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/** Assert that there are no BLOB references to or from the given page. */
|
||||
# define btr_blob_dbg_assert_empty(index, page_no) \
|
||||
ut_a(btr_blob_dbg_is_empty(index, page_no))
|
||||
|
@ -221,7 +221,7 @@ btr_root_get(
|
|||
/*=========*/
|
||||
const dict_index_t* index, /*!< in: index tree */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/**************************************************************//**
|
||||
Checks and adjusts the root node of a tree during IMPORT TABLESPACE.
|
||||
|
@ -231,7 +231,7 @@ dberr_t
|
|||
btr_root_adjust_on_import(
|
||||
/*======================*/
|
||||
const dict_index_t* index) /*!< in: index tree */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/**************************************************************//**
|
||||
Gets the height of the B-tree (the level of the root, when the leaf
|
||||
|
@ -244,7 +244,7 @@ btr_height_get(
|
|||
/*===========*/
|
||||
dict_index_t* index, /*!< in: index tree */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/**************************************************************//**
|
||||
Gets a buffer page and declares its latching order level. */
|
||||
UNIV_INLINE
|
||||
|
@ -306,7 +306,7 @@ index_id_t
|
|||
btr_page_get_index_id(
|
||||
/*==================*/
|
||||
const page_t* page) /*!< in: index page */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/********************************************************//**
|
||||
Gets the node level field in an index page.
|
||||
|
@ -316,7 +316,7 @@ ulint
|
|||
btr_page_get_level_low(
|
||||
/*===================*/
|
||||
const page_t* page) /*!< in: index page */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
#define btr_page_get_level(page, mtr) btr_page_get_level_low(page)
|
||||
/********************************************************//**
|
||||
Gets the next index page number.
|
||||
|
@ -327,7 +327,7 @@ btr_page_get_next(
|
|||
/*==============*/
|
||||
const page_t* page, /*!< in: index page */
|
||||
mtr_t* mtr) /*!< in: mini-transaction handle */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/********************************************************//**
|
||||
Gets the previous index page number.
|
||||
@return prev page number */
|
||||
|
@ -337,7 +337,7 @@ btr_page_get_prev(
|
|||
/*==============*/
|
||||
const page_t* page, /*!< in: index page */
|
||||
mtr_t* mtr) /*!< in: mini-transaction handle */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*************************************************************//**
|
||||
Gets pointer to the previous user record in the tree. It is assumed
|
||||
that the caller has appropriate latches on the page and its neighbor.
|
||||
|
@ -349,7 +349,7 @@ btr_get_prev_user_rec(
|
|||
rec_t* rec, /*!< in: record on leaf level */
|
||||
mtr_t* mtr) /*!< in: mtr holding a latch on the page, and if
|
||||
needed, also to the previous page */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*************************************************************//**
|
||||
Gets pointer to the next user record in the tree. It is assumed
|
||||
that the caller has appropriate latches on the page and its neighbor.
|
||||
|
@ -361,7 +361,7 @@ btr_get_next_user_rec(
|
|||
rec_t* rec, /*!< in: record on leaf level */
|
||||
mtr_t* mtr) /*!< in: mtr holding a latch on the page, and if
|
||||
needed, also to the next page */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/**************************************************************//**
|
||||
Releases the latch on a leaf page and bufferunfixes it. */
|
||||
UNIV_INLINE
|
||||
|
@ -372,7 +372,7 @@ btr_leaf_page_release(
|
|||
ulint latch_mode, /*!< in: BTR_SEARCH_LEAF or
|
||||
BTR_MODIFY_LEAF */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**************************************************************//**
|
||||
Gets the child node file address in a node pointer.
|
||||
NOTE: the offsets array must contain all offsets for the record since
|
||||
|
@ -386,7 +386,7 @@ btr_node_ptr_get_child_page_no(
|
|||
/*===========================*/
|
||||
const rec_t* rec, /*!< in: node pointer record */
|
||||
const ulint* offsets)/*!< in: array returned by rec_get_offsets() */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/************************************************************//**
|
||||
Creates the root node for a new index tree.
|
||||
@return page number of the created root, FIL_NULL if did not succeed */
|
||||
|
@ -401,7 +401,7 @@ btr_create(
|
|||
index_id_t index_id,/*!< in: index id */
|
||||
dict_index_t* index, /*!< in: index */
|
||||
mtr_t* mtr) /*!< in: mini-transaction handle */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/************************************************************//**
|
||||
Frees a B-tree except the root page, which MUST be freed after this
|
||||
by calling btr_free_root. */
|
||||
|
@ -424,7 +424,7 @@ btr_free_root(
|
|||
or 0 for uncompressed pages */
|
||||
ulint root_page_no, /*!< in: root page number */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*************************************************************//**
|
||||
Makes tree one level higher by splitting the root, and inserts
|
||||
the tuple. It is assumed that mtr contains an x-latch on the tree.
|
||||
|
@ -447,7 +447,7 @@ btr_root_raise_and_insert(
|
|||
const dtuple_t* tuple, /*!< in: tuple to insert */
|
||||
ulint n_ext, /*!< in: number of externally stored columns */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*************************************************************//**
|
||||
Reorganizes an index page.
|
||||
|
||||
|
@ -473,7 +473,7 @@ btr_page_reorganize_low(
|
|||
page_cur_t* cursor, /*!< in/out: page cursor */
|
||||
dict_index_t* index, /*!< in: the index tree of the page */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*************************************************************//**
|
||||
Reorganizes an index page.
|
||||
|
||||
|
@ -492,7 +492,7 @@ btr_page_reorganize(
|
|||
page_cur_t* cursor, /*!< in/out: page cursor */
|
||||
dict_index_t* index, /*!< in: the index tree of the page */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*************************************************************//**
|
||||
Decides if the page should be split at the convergence point of
|
||||
inserts converging to left.
|
||||
|
@ -505,7 +505,7 @@ btr_page_get_split_rec_to_left(
|
|||
rec_t** split_rec)/*!< out: if split recommended,
|
||||
the first record on upper half page,
|
||||
or NULL if tuple should be first */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*************************************************************//**
|
||||
Decides if the page should be split at the convergence point of
|
||||
inserts converging to right.
|
||||
|
@ -518,7 +518,7 @@ btr_page_get_split_rec_to_right(
|
|||
rec_t** split_rec)/*!< out: if split recommended,
|
||||
the first record on upper half page,
|
||||
or NULL if tuple should be first */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*************************************************************//**
|
||||
Splits an index page to halves and inserts the tuple. It is assumed
|
||||
that mtr holds an x-latch to the index tree. NOTE: the tree x-latch is
|
||||
|
@ -542,7 +542,7 @@ btr_page_split_and_insert(
|
|||
const dtuple_t* tuple, /*!< in: tuple to insert */
|
||||
ulint n_ext, /*!< in: number of externally stored columns */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*******************************************************//**
|
||||
Inserts a data tuple to a tree on a non-leaf level. It is assumed
|
||||
that mtr holds an x-latch on the tree. */
|
||||
|
@ -557,7 +557,7 @@ btr_insert_on_non_leaf_level_func(
|
|||
const char* file, /*!< in: file name */
|
||||
ulint line, /*!< in: line where called */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
# define btr_insert_on_non_leaf_level(f,i,l,t,m) \
|
||||
btr_insert_on_non_leaf_level_func(f,i,l,t,__FILE__,__LINE__,m)
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
@ -569,7 +569,7 @@ btr_set_min_rec_mark(
|
|||
/*=================*/
|
||||
rec_t* rec, /*!< in/out: record */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/*************************************************************//**
|
||||
Deletes on the upper level the node pointer to a page. */
|
||||
|
@ -580,7 +580,7 @@ btr_node_ptr_delete(
|
|||
dict_index_t* index, /*!< in: index tree */
|
||||
buf_block_t* block, /*!< in: page whose node pointer is deleted */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#ifdef UNIV_DEBUG
|
||||
/************************************************************//**
|
||||
Checks that the node pointer to a page is appropriate.
|
||||
|
@ -592,7 +592,7 @@ btr_check_node_ptr(
|
|||
dict_index_t* index, /*!< in: index tree */
|
||||
buf_block_t* block, /*!< in: index page */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
#endif /* UNIV_DEBUG */
|
||||
/*************************************************************//**
|
||||
Tries to merge the page first to the left immediate brother if such a
|
||||
|
@ -615,7 +615,7 @@ btr_compress(
|
|||
ibool adjust, /*!< in: TRUE if should adjust the
|
||||
cursor position even if compression occurs */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*************************************************************//**
|
||||
Discards a page from a B-tree. This is used to remove the last record from
|
||||
a B-tree page: the whole page must be removed at the same time. This cannot
|
||||
|
@ -627,7 +627,7 @@ btr_discard_page(
|
|||
btr_cur_t* cursor, /*!< in: cursor on the page to discard: not on
|
||||
the root page */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/****************************************************************//**
|
||||
Parses the redo log record for setting an index record as the predefined
|
||||
|
@ -642,7 +642,7 @@ btr_parse_set_min_rec_mark(
|
|||
ulint comp, /*!< in: nonzero=compact page format */
|
||||
page_t* page, /*!< in: page or NULL */
|
||||
mtr_t* mtr) /*!< in: mtr or NULL */
|
||||
__attribute__((nonnull(1,2), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(1,2), warn_unused_result));
|
||||
/***********************************************************//**
|
||||
Parses a redo log record of reorganizing a page.
|
||||
@return end of log record or NULL */
|
||||
|
@ -656,7 +656,7 @@ btr_parse_page_reorganize(
|
|||
bool compressed,/*!< in: true if compressed page */
|
||||
buf_block_t* block, /*!< in: page to be reorganized, or NULL */
|
||||
mtr_t* mtr) /*!< in: mtr or NULL */
|
||||
__attribute__((nonnull(1,2,3), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(1,2,3), warn_unused_result));
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/**************************************************************//**
|
||||
Gets the number of pages in a B-tree.
|
||||
|
@ -669,7 +669,7 @@ btr_get_size(
|
|||
ulint flag, /*!< in: BTR_N_LEAF_PAGES or BTR_TOTAL_SIZE */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction where index
|
||||
is s-latched */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/**************************************************************//**
|
||||
Allocates a new file page to be used in an index tree. NOTE: we assume
|
||||
that the caller has made the reservation for free extents!
|
||||
|
@ -692,7 +692,7 @@ btr_page_alloc(
|
|||
mtr_t* init_mtr) /*!< in/out: mini-transaction
|
||||
for x-latching and initializing
|
||||
the page */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/**************************************************************//**
|
||||
Frees a file page used in an index tree. NOTE: cannot free field external
|
||||
storage pages because the page must contain info on its level. */
|
||||
|
@ -703,7 +703,7 @@ btr_page_free(
|
|||
dict_index_t* index, /*!< in: index tree */
|
||||
buf_block_t* block, /*!< in: block to be freed, x-latched */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**************************************************************//**
|
||||
Frees a file page used in an index tree. Can be used also to BLOB
|
||||
external storage pages, because the page level 0 can be given as an
|
||||
|
@ -716,7 +716,7 @@ btr_page_free_low(
|
|||
buf_block_t* block, /*!< in: block to be freed, x-latched */
|
||||
ulint level, /*!< in: page level */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#ifdef UNIV_BTR_PRINT
|
||||
/*************************************************************//**
|
||||
Prints size info of a B-tree. */
|
||||
|
@ -725,7 +725,7 @@ void
|
|||
btr_print_size(
|
||||
/*===========*/
|
||||
dict_index_t* index) /*!< in: index tree */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**************************************************************//**
|
||||
Prints directories and other info of all nodes in the index. */
|
||||
UNIV_INTERN
|
||||
|
@ -735,7 +735,7 @@ btr_print_index(
|
|||
dict_index_t* index, /*!< in: index */
|
||||
ulint width) /*!< in: print this many entries from start
|
||||
and end */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#endif /* UNIV_BTR_PRINT */
|
||||
/************************************************************//**
|
||||
Checks the size and number of fields in a record based on the definition of
|
||||
|
@ -750,7 +750,7 @@ btr_index_rec_validate(
|
|||
ibool dump_on_error) /*!< in: TRUE if the function
|
||||
should print hex dump of record
|
||||
and page on error */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/**************************************************************//**
|
||||
Checks the consistency of an index tree.
|
||||
@return TRUE if ok */
|
||||
|
@ -760,7 +760,7 @@ btr_validate_index(
|
|||
/*===============*/
|
||||
dict_index_t* index, /*!< in: index */
|
||||
const trx_t* trx) /*!< in: transaction or 0 */
|
||||
__attribute__((nonnull(1), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(1), warn_unused_result));
|
||||
|
||||
#define BTR_N_LEAF_PAGES 1
|
||||
#define BTR_TOTAL_SIZE 2
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -159,10 +159,11 @@ ulint
|
|||
btr_page_get_next(
|
||||
/*==============*/
|
||||
const page_t* page, /*!< in: index page */
|
||||
mtr_t* mtr __attribute__((unused)))
|
||||
mtr_t* mtr MY_ATTRIBUTE((unused)))
|
||||
/*!< in: mini-transaction handle */
|
||||
{
|
||||
ut_ad(page && mtr);
|
||||
ut_ad(page != NULL);
|
||||
ut_ad(mtr != NULL);
|
||||
ut_ad(mtr_memo_contains_page(mtr, page, MTR_MEMO_PAGE_X_FIX)
|
||||
|| mtr_memo_contains_page(mtr, page, MTR_MEMO_PAGE_S_FIX));
|
||||
|
||||
|
@ -181,7 +182,8 @@ btr_page_set_next(
|
|||
ulint next, /*!< in: next page number */
|
||||
mtr_t* mtr) /*!< in: mini-transaction handle */
|
||||
{
|
||||
ut_ad(page && mtr);
|
||||
ut_ad(page != NULL);
|
||||
ut_ad(mtr != NULL);
|
||||
|
||||
if (page_zip) {
|
||||
mach_write_to_4(page + FIL_PAGE_NEXT, next);
|
||||
|
@ -199,9 +201,10 @@ ulint
|
|||
btr_page_get_prev(
|
||||
/*==============*/
|
||||
const page_t* page, /*!< in: index page */
|
||||
mtr_t* mtr __attribute__((unused))) /*!< in: mini-transaction handle */
|
||||
mtr_t* mtr MY_ATTRIBUTE((unused))) /*!< in: mini-transaction handle */
|
||||
{
|
||||
ut_ad(page && mtr);
|
||||
ut_ad(page != NULL);
|
||||
ut_ad(mtr != NULL);
|
||||
|
||||
return(mach_read_from_4(page + FIL_PAGE_PREV));
|
||||
}
|
||||
|
@ -218,7 +221,8 @@ btr_page_set_prev(
|
|||
ulint prev, /*!< in: previous page number */
|
||||
mtr_t* mtr) /*!< in: mini-transaction handle */
|
||||
{
|
||||
ut_ad(page && mtr);
|
||||
ut_ad(page != NULL);
|
||||
ut_ad(mtr != NULL);
|
||||
|
||||
if (page_zip) {
|
||||
mach_write_to_4(page + FIL_PAGE_PREV, prev);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2014, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -186,7 +186,7 @@ btr_cur_open_at_index_side_func(
|
|||
const char* file, /*!< in: file name */
|
||||
ulint line, /*!< in: line where called */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#define btr_cur_open_at_index_side(f,i,l,c,lv,m) \
|
||||
btr_cur_open_at_index_side_func(f,i,l,c,lv,__FILE__,__LINE__,m)
|
||||
/**********************************************************************//**
|
||||
|
@ -235,7 +235,7 @@ btr_cur_optimistic_insert(
|
|||
compressed tablespace, the caller must
|
||||
mtr_commit(mtr) before latching
|
||||
any further pages */
|
||||
__attribute__((nonnull(2,3,4,5,6,7,10), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(2,3,4,5,6,7,10), warn_unused_result));
|
||||
/*************************************************************//**
|
||||
Performs an insert on a page of an index tree. It is assumed that mtr
|
||||
holds an x-latch on the tree and on the cursor page. If the insert is
|
||||
|
@ -266,7 +266,7 @@ btr_cur_pessimistic_insert(
|
|||
ulint n_ext, /*!< in: number of externally stored columns */
|
||||
que_thr_t* thr, /*!< in: query thread or NULL */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull(2,3,4,5,6,7,10), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(2,3,4,5,6,7,10), warn_unused_result));
|
||||
/*************************************************************//**
|
||||
See if there is enough place in the page modification log to log
|
||||
an update-in-place.
|
||||
|
@ -293,7 +293,7 @@ btr_cur_update_alloc_zip_func(
|
|||
bool create, /*!< in: true=delete-and-insert,
|
||||
false=update-in-place */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
#ifdef UNIV_DEBUG
|
||||
# define btr_cur_update_alloc_zip(page_zip,cursor,index,offsets,len,cr,mtr) \
|
||||
btr_cur_update_alloc_zip_func(page_zip,cursor,index,offsets,len,cr,mtr)
|
||||
|
@ -325,7 +325,7 @@ btr_cur_update_in_place(
|
|||
is a secondary index, the caller must
|
||||
mtr_commit(mtr) before latching any
|
||||
further pages */
|
||||
__attribute__((warn_unused_result, nonnull));
|
||||
MY_ATTRIBUTE((warn_unused_result, nonnull));
|
||||
/***********************************************************//**
|
||||
Writes a redo log record of updating a record in-place. */
|
||||
UNIV_INTERN
|
||||
|
@ -339,7 +339,7 @@ btr_cur_update_in_place_log(
|
|||
trx_id_t trx_id, /*!< in: transaction id */
|
||||
roll_ptr_t roll_ptr, /*!< in: roll ptr */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*************************************************************//**
|
||||
Tries to update a record on a page in an index tree. It is assumed that mtr
|
||||
holds an x-latch on the page. The operation does not succeed if there is too
|
||||
|
@ -371,7 +371,7 @@ btr_cur_optimistic_update(
|
|||
is a secondary index, the caller must
|
||||
mtr_commit(mtr) before latching any
|
||||
further pages */
|
||||
__attribute__((warn_unused_result, nonnull));
|
||||
MY_ATTRIBUTE((warn_unused_result, nonnull));
|
||||
/*************************************************************//**
|
||||
Performs an update of a record on a page of a tree. It is assumed
|
||||
that mtr holds an x-latch on the tree and on the cursor page. If the
|
||||
|
@ -405,7 +405,7 @@ btr_cur_pessimistic_update(
|
|||
trx_id_t trx_id, /*!< in: transaction id */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction; must be committed
|
||||
before latching any further pages */
|
||||
__attribute__((warn_unused_result, nonnull));
|
||||
MY_ATTRIBUTE((warn_unused_result, nonnull));
|
||||
/***********************************************************//**
|
||||
Marks a clustered index record deleted. Writes an undo log record to
|
||||
undo log on this delete marking. Writes in the trx id field the id
|
||||
|
@ -422,7 +422,7 @@ btr_cur_del_mark_set_clust_rec(
|
|||
const ulint* offsets,/*!< in: rec_get_offsets(rec) */
|
||||
que_thr_t* thr, /*!< in: query thread */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/***********************************************************//**
|
||||
Sets a secondary index record delete mark to TRUE or FALSE.
|
||||
@return DB_SUCCESS, DB_LOCK_WAIT, or error number */
|
||||
|
@ -435,7 +435,7 @@ btr_cur_del_mark_set_sec_rec(
|
|||
ibool val, /*!< in: value to set */
|
||||
que_thr_t* thr, /*!< in: query thread */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*************************************************************//**
|
||||
Tries to compress a page of the tree if it seems useful. It is assumed
|
||||
that mtr holds an x-latch on the tree and on the cursor page. To avoid
|
||||
|
@ -453,7 +453,7 @@ btr_cur_compress_if_useful(
|
|||
ibool adjust, /*!< in: TRUE if should adjust the
|
||||
cursor position even if compression occurs */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*******************************************************//**
|
||||
Removes the record on which the tree cursor is positioned. It is assumed
|
||||
that the mtr has an x-latch on the page where the cursor is positioned,
|
||||
|
@ -474,7 +474,7 @@ btr_cur_optimistic_delete_func(
|
|||
TRUE on a leaf page of a secondary
|
||||
index, the mtr must be committed
|
||||
before latching any further pages */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
# ifdef UNIV_DEBUG
|
||||
# define btr_cur_optimistic_delete(cursor, flags, mtr) \
|
||||
btr_cur_optimistic_delete_func(cursor, flags, mtr)
|
||||
|
@ -510,7 +510,7 @@ btr_cur_pessimistic_delete(
|
|||
ulint flags, /*!< in: BTR_CREATE_FLAG or 0 */
|
||||
enum trx_rb_ctx rb_ctx, /*!< in: rollback context */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/***********************************************************//**
|
||||
Parses a redo log record of updating a record in-place.
|
||||
|
@ -604,7 +604,7 @@ btr_cur_disown_inherited_fields(
|
|||
const ulint* offsets,/*!< in: array returned by rec_get_offsets() */
|
||||
const upd_t* update, /*!< in: update vector */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull(2,3,4,5,6)));
|
||||
MY_ATTRIBUTE((nonnull(2,3,4,5,6)));
|
||||
|
||||
/** Operation code for btr_store_big_rec_extern_fields(). */
|
||||
enum blob_op {
|
||||
|
@ -624,7 +624,7 @@ ibool
|
|||
btr_blob_op_is_update(
|
||||
/*==================*/
|
||||
enum blob_op op) /*!< in: operation */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
|
||||
/*******************************************************************//**
|
||||
Stores the fields in big_rec_vec to the tablespace and puts pointers to
|
||||
|
@ -649,7 +649,7 @@ btr_store_big_rec_extern_fields(
|
|||
mtr_t* btr_mtr, /*!< in: mtr containing the
|
||||
latches to the clustered index */
|
||||
enum blob_op op) /*! in: operation code */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/*******************************************************************//**
|
||||
Frees the space in an externally stored field to the file space
|
||||
|
@ -746,7 +746,7 @@ btr_push_update_extern_fields(
|
|||
dtuple_t* tuple, /*!< in/out: data tuple */
|
||||
const upd_t* update, /*!< in: update vector */
|
||||
mem_heap_t* heap) /*!< in: memory heap */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/***********************************************************//**
|
||||
Sets a secondary index record's delete mark to the given value. This
|
||||
function is only used by the insert buffer merge mechanism. */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -155,7 +155,7 @@ btr_pcur_open_at_index_side(
|
|||
ulint level, /*!< in: level to search for
|
||||
(0=leaf) */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**************************************************************//**
|
||||
Gets the up_match value for a pcur after a search.
|
||||
@return number of matched fields at the cursor or to the right if
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2011, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -69,7 +69,7 @@ btr_search_t*
|
|||
btr_search_get_info(
|
||||
/*================*/
|
||||
dict_index_t* index) /*!< in: index */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*****************************************************************//**
|
||||
Creates and initializes a search info struct.
|
||||
@return own: search info struct */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2011, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -81,7 +81,7 @@ btr_blob_dbg_rbt_insert(
|
|||
dict_index_t* index, /*!< in/out: index tree */
|
||||
const btr_blob_dbg_t* b, /*!< in: the reference */
|
||||
const char* ctx) /*!< in: context (for logging) */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/** Remove from index->blobs a reference to an off-page column.
|
||||
@param index the index tree
|
||||
|
@ -94,7 +94,7 @@ btr_blob_dbg_rbt_delete(
|
|||
dict_index_t* index, /*!< in/out: index tree */
|
||||
const btr_blob_dbg_t* b, /*!< in: the reference */
|
||||
const char* ctx) /*!< in: context (for logging) */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/**************************************************************//**
|
||||
Add to index->blobs any references to off-page columns from a record.
|
||||
|
@ -107,7 +107,7 @@ btr_blob_dbg_add_rec(
|
|||
dict_index_t* index, /*!< in/out: index */
|
||||
const ulint* offsets,/*!< in: offsets */
|
||||
const char* ctx) /*!< in: context (for logging) */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**************************************************************//**
|
||||
Remove from index->blobs any references to off-page columns from a record.
|
||||
@return number of references removed */
|
||||
|
@ -119,7 +119,7 @@ btr_blob_dbg_remove_rec(
|
|||
dict_index_t* index, /*!< in/out: index */
|
||||
const ulint* offsets,/*!< in: offsets */
|
||||
const char* ctx) /*!< in: context (for logging) */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**************************************************************//**
|
||||
Count and add to index->blobs any references to off-page columns
|
||||
from records on a page.
|
||||
|
@ -131,7 +131,7 @@ btr_blob_dbg_add(
|
|||
const page_t* page, /*!< in: rewritten page */
|
||||
dict_index_t* index, /*!< in/out: index */
|
||||
const char* ctx) /*!< in: context (for logging) */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**************************************************************//**
|
||||
Count and remove from index->blobs any references to off-page columns
|
||||
from records on a page.
|
||||
|
@ -144,7 +144,7 @@ btr_blob_dbg_remove(
|
|||
const page_t* page, /*!< in: b-tree page */
|
||||
dict_index_t* index, /*!< in/out: index */
|
||||
const char* ctx) /*!< in: context (for logging) */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**************************************************************//**
|
||||
Restore in index->blobs any references to off-page columns
|
||||
Used when page reorganize fails due to compressed page overflow. */
|
||||
|
@ -156,7 +156,7 @@ btr_blob_dbg_restore(
|
|||
const page_t* page, /*!< in: copy of original page */
|
||||
dict_index_t* index, /*!< in/out: index */
|
||||
const char* ctx) /*!< in: context (for logging) */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/** Operation that processes the BLOB references of an index record
|
||||
@param[in] rec record on index page
|
||||
|
@ -180,7 +180,7 @@ btr_blob_dbg_op(
|
|||
dict_index_t* index, /*!< in/out: index */
|
||||
const char* ctx, /*!< in: context (for logging) */
|
||||
const btr_blob_dbg_op_f op) /*!< in: operation on records */
|
||||
__attribute__((nonnull(1,3,4,5)));
|
||||
MY_ATTRIBUTE((nonnull(1,3,4,5)));
|
||||
#else /* UNIV_BLOB_DEBUG */
|
||||
# define btr_blob_dbg_add_rec(rec, index, offsets, ctx) ((void) 0)
|
||||
# define btr_blob_dbg_add(page, index, ctx) ((void) 0)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2006, 2011, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2006, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -54,7 +54,7 @@ buf_buddy_alloc(
|
|||
storage was allocated from the
|
||||
LRU list and buf_pool->mutex was
|
||||
temporarily released */
|
||||
__attribute__((malloc, nonnull));
|
||||
MY_ATTRIBUTE((malloc, nonnull));
|
||||
|
||||
/**********************************************************************//**
|
||||
Deallocate a block. */
|
||||
|
@ -68,7 +68,7 @@ buf_buddy_free(
|
|||
be pointed to by the buffer pool */
|
||||
ulint size) /*!< in: block size,
|
||||
up to UNIV_PAGE_SIZE */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
#ifndef UNIV_NONINL
|
||||
# include "buf0buddy.ic"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2006, 2011, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2006, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -50,7 +50,7 @@ buf_buddy_alloc_low(
|
|||
allocated from the LRU list and
|
||||
buf_pool->mutex was temporarily
|
||||
released */
|
||||
__attribute__((malloc, nonnull));
|
||||
MY_ATTRIBUTE((malloc, nonnull));
|
||||
|
||||
/**********************************************************************//**
|
||||
Deallocate a block. */
|
||||
|
@ -63,7 +63,7 @@ buf_buddy_free_low(
|
|||
pointed to by the buffer pool */
|
||||
ulint i) /*!< in: index of buf_pool->zip_free[],
|
||||
or BUF_BUDDY_SIZES */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/**********************************************************************//**
|
||||
Get the index of buf_pool->zip_free[] for a given block size.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2014, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -255,7 +255,7 @@ buf_relocate(
|
|||
buf_page_get_state(bpage) must be
|
||||
BUF_BLOCK_ZIP_DIRTY or BUF_BLOCK_ZIP_PAGE */
|
||||
buf_page_t* dpage) /*!< in/out: destination control block */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Gets the current size of buffer buf_pool in bytes.
|
||||
@return size in bytes */
|
||||
|
@ -286,7 +286,7 @@ UNIV_INLINE
|
|||
buf_page_t*
|
||||
buf_page_alloc_descriptor(void)
|
||||
/*===========================*/
|
||||
__attribute__((malloc));
|
||||
MY_ATTRIBUTE((malloc));
|
||||
/********************************************************************//**
|
||||
Free a buf_page_t descriptor. */
|
||||
UNIV_INLINE
|
||||
|
@ -294,7 +294,7 @@ void
|
|||
buf_page_free_descriptor(
|
||||
/*=====================*/
|
||||
buf_page_t* bpage) /*!< in: bpage descriptor to free. */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/********************************************************************//**
|
||||
Allocates a buffer block.
|
||||
|
@ -531,7 +531,7 @@ ulint
|
|||
buf_page_get_freed_page_clock(
|
||||
/*==========================*/
|
||||
const buf_page_t* bpage) /*!< in: block */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
/********************************************************************//**
|
||||
Reads the freed_page_clock of a buffer block.
|
||||
@return freed_page_clock */
|
||||
|
@ -540,7 +540,7 @@ ulint
|
|||
buf_block_get_freed_page_clock(
|
||||
/*===========================*/
|
||||
const buf_block_t* block) /*!< in: block */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
|
||||
/********************************************************************//**
|
||||
Tells if a block is still close enough to the MRU end of the LRU list
|
||||
|
@ -603,7 +603,7 @@ buf_block_buf_fix_inc_func(
|
|||
ulint line, /*!< in: line */
|
||||
# endif /* UNIV_SYNC_DEBUG */
|
||||
buf_block_t* block) /*!< in/out: block to bufferfix */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/*******************************************************************//**
|
||||
Increments the bufferfix count. */
|
||||
|
@ -649,7 +649,7 @@ buf_page_is_corrupted(
|
|||
const byte* read_buf, /*!< in: a database page */
|
||||
ulint zip_size) /*!< in: size of compressed page;
|
||||
0 for uncompressed pages */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/********************************************************************//**
|
||||
Checks if a page is all zeroes.
|
||||
@return TRUE if the page is all zeroes */
|
||||
|
@ -679,7 +679,7 @@ ulint
|
|||
buf_block_get_lock_hash_val(
|
||||
/*========================*/
|
||||
const buf_block_t* block) /*!< in: block */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
#ifdef UNIV_DEBUG
|
||||
/*********************************************************************//**
|
||||
Finds a block in the buffer pool that points to a
|
||||
|
@ -740,7 +740,7 @@ buf_page_print(
|
|||
ulint flags) /*!< in: 0 or
|
||||
BUF_PAGE_PRINT_NO_CRASH or
|
||||
BUF_PAGE_PRINT_NO_FULL */
|
||||
UNIV_COLD __attribute__((nonnull));
|
||||
UNIV_COLD MY_ATTRIBUTE((nonnull));
|
||||
/********************************************************************//**
|
||||
Decompress a block.
|
||||
@return TRUE if successful */
|
||||
|
@ -867,7 +867,7 @@ enum buf_page_state
|
|||
buf_block_get_state(
|
||||
/*================*/
|
||||
const buf_block_t* block) /*!< in: pointer to the control block */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
/*********************************************************************//**
|
||||
Sets the state of a block. */
|
||||
UNIV_INLINE
|
||||
|
@ -892,7 +892,7 @@ ibool
|
|||
buf_page_in_file(
|
||||
/*=============*/
|
||||
const buf_page_t* bpage) /*!< in: pointer to control block */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/*********************************************************************//**
|
||||
Determines if a block should be on unzip_LRU list.
|
||||
|
@ -902,7 +902,7 @@ ibool
|
|||
buf_page_belongs_to_unzip_LRU(
|
||||
/*==========================*/
|
||||
const buf_page_t* bpage) /*!< in: pointer to control block */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
|
||||
/*********************************************************************//**
|
||||
Gets the mutex of a block.
|
||||
|
@ -912,7 +912,7 @@ ib_mutex_t*
|
|||
buf_page_get_mutex(
|
||||
/*===============*/
|
||||
const buf_page_t* bpage) /*!< in: pointer to control block */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
|
||||
/*********************************************************************//**
|
||||
Get the flush type of a page.
|
||||
|
@ -922,7 +922,7 @@ buf_flush_t
|
|||
buf_page_get_flush_type(
|
||||
/*====================*/
|
||||
const buf_page_t* bpage) /*!< in: buffer page */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
/*********************************************************************//**
|
||||
Set the flush type of a page. */
|
||||
UNIV_INLINE
|
||||
|
@ -948,7 +948,7 @@ enum buf_io_fix
|
|||
buf_page_get_io_fix(
|
||||
/*================*/
|
||||
const buf_page_t* bpage) /*!< in: pointer to the control block */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
/*********************************************************************//**
|
||||
Gets the io_fix state of a block.
|
||||
@return io_fix state */
|
||||
|
@ -957,7 +957,7 @@ enum buf_io_fix
|
|||
buf_block_get_io_fix(
|
||||
/*================*/
|
||||
const buf_block_t* block) /*!< in: pointer to the control block */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
/*********************************************************************//**
|
||||
Sets the io_fix state of a block. */
|
||||
UNIV_INLINE
|
||||
|
@ -1003,7 +1003,7 @@ ibool
|
|||
buf_page_can_relocate(
|
||||
/*==================*/
|
||||
const buf_page_t* bpage) /*!< control block being relocated */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
|
||||
/*********************************************************************//**
|
||||
Determine if a block has been flagged old.
|
||||
|
@ -1013,7 +1013,7 @@ ibool
|
|||
buf_page_is_old(
|
||||
/*============*/
|
||||
const buf_page_t* bpage) /*!< in: control block */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
/*********************************************************************//**
|
||||
Flag a block old. */
|
||||
UNIV_INLINE
|
||||
|
@ -1030,7 +1030,7 @@ unsigned
|
|||
buf_page_is_accessed(
|
||||
/*=================*/
|
||||
const buf_page_t* bpage) /*!< in: control block */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/*********************************************************************//**
|
||||
Flag a block accessed. */
|
||||
UNIV_INLINE
|
||||
|
@ -1038,7 +1038,7 @@ void
|
|||
buf_page_set_accessed(
|
||||
/*==================*/
|
||||
buf_page_t* bpage) /*!< in/out: control block */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Gets the buf_block_t handle of a buffered file block if an uncompressed
|
||||
page frame exists, or NULL. Note: even though bpage is not declared a
|
||||
|
@ -1049,7 +1049,7 @@ buf_block_t*
|
|||
buf_page_get_block(
|
||||
/*===============*/
|
||||
buf_page_t* bpage) /*!< in: control block, or NULL */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
#ifdef UNIV_DEBUG
|
||||
/*********************************************************************//**
|
||||
|
@ -1060,7 +1060,7 @@ buf_frame_t*
|
|||
buf_block_get_frame(
|
||||
/*================*/
|
||||
const buf_block_t* block) /*!< in: pointer to the control block */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
#else /* UNIV_DEBUG */
|
||||
# define buf_block_get_frame(block) (block)->frame
|
||||
#endif /* UNIV_DEBUG */
|
||||
|
@ -1072,7 +1072,7 @@ ulint
|
|||
buf_page_get_space(
|
||||
/*===============*/
|
||||
const buf_page_t* bpage) /*!< in: pointer to the control block */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
/*********************************************************************//**
|
||||
Gets the space id of a block.
|
||||
@return space id */
|
||||
|
@ -1081,7 +1081,7 @@ ulint
|
|||
buf_block_get_space(
|
||||
/*================*/
|
||||
const buf_block_t* block) /*!< in: pointer to the control block */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
/*********************************************************************//**
|
||||
Gets the page number of a block.
|
||||
@return page number */
|
||||
|
@ -1090,7 +1090,7 @@ ulint
|
|||
buf_page_get_page_no(
|
||||
/*=================*/
|
||||
const buf_page_t* bpage) /*!< in: pointer to the control block */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
/*********************************************************************//**
|
||||
Gets the page number of a block.
|
||||
@return page number */
|
||||
|
@ -1099,7 +1099,7 @@ ulint
|
|||
buf_block_get_page_no(
|
||||
/*==================*/
|
||||
const buf_block_t* block) /*!< in: pointer to the control block */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
/*********************************************************************//**
|
||||
Gets the compressed page size of a block.
|
||||
@return compressed page size, or 0 */
|
||||
|
@ -1108,7 +1108,7 @@ ulint
|
|||
buf_page_get_zip_size(
|
||||
/*==================*/
|
||||
const buf_page_t* bpage) /*!< in: pointer to the control block */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
/*********************************************************************//**
|
||||
Gets the compressed page size of a block.
|
||||
@return compressed page size, or 0 */
|
||||
|
@ -1117,7 +1117,7 @@ ulint
|
|||
buf_block_get_zip_size(
|
||||
/*===================*/
|
||||
const buf_block_t* block) /*!< in: pointer to the control block */
|
||||
__attribute__((pure));
|
||||
MY_ATTRIBUTE((pure));
|
||||
/*********************************************************************//**
|
||||
Gets the compressed page descriptor corresponding to an uncompressed page
|
||||
if applicable. */
|
||||
|
@ -1206,7 +1206,7 @@ buf_page_address_fold(
|
|||
/*==================*/
|
||||
ulint space, /*!< in: space id */
|
||||
ulint offset) /*!< in: offset of the page within space */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
/********************************************************************//**
|
||||
Calculates the index of a buffer pool to the buf_pool[] array.
|
||||
@return the position of the buffer pool in buf_pool[] */
|
||||
|
@ -1215,7 +1215,7 @@ ulint
|
|||
buf_pool_index(
|
||||
/*===========*/
|
||||
const buf_pool_t* buf_pool) /*!< in: buffer pool */
|
||||
__attribute__((nonnull, const));
|
||||
MY_ATTRIBUTE((nonnull, const));
|
||||
/******************************************************************//**
|
||||
Returns the buffer pool instance given a page instance
|
||||
@return buf_pool */
|
||||
|
@ -1355,7 +1355,7 @@ buf_pool_watch_is_sentinel(
|
|||
/*=======================*/
|
||||
buf_pool_t* buf_pool, /*!< buffer pool instance */
|
||||
const buf_page_t* bpage) /*!< in: block */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/****************************************************************//**
|
||||
Add watch for the given page to be read in. Caller must have the buffer pool
|
||||
@return NULL if watch set, block if the page is in the buffer pool */
|
||||
|
@ -1366,7 +1366,7 @@ buf_pool_watch_set(
|
|||
ulint space, /*!< in: space id */
|
||||
ulint offset, /*!< in: page number */
|
||||
ulint fold) /*!< in: buf_page_address_fold(space, offset) */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
/****************************************************************//**
|
||||
Stop watching if the page has been read in.
|
||||
buf_pool_watch_set(space,offset) must have returned NULL before. */
|
||||
|
@ -1387,7 +1387,7 @@ buf_pool_watch_occurred(
|
|||
/*====================*/
|
||||
ulint space, /*!< in: space id */
|
||||
ulint offset) /*!< in: page number */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
/********************************************************************//**
|
||||
Get total buffer pool statistics. */
|
||||
UNIV_INTERN
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -85,7 +85,7 @@ buf_flush_page_try(
|
|||
/*===============*/
|
||||
buf_pool_t* buf_pool, /*!< in/out: buffer pool instance */
|
||||
buf_block_t* block) /*!< in/out: buffer control block */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
# endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */
|
||||
/*******************************************************************//**
|
||||
This utility flushes dirty blocks from the end of the flush list of
|
||||
|
@ -254,7 +254,7 @@ buf_flush_ready_for_flush(
|
|||
buf_page_t* bpage, /*!< in: buffer control block, must be
|
||||
buf_page_in_file(bpage) */
|
||||
buf_flush_t flush_type)/*!< in: type of flush */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
/******************************************************************//**
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -93,7 +93,7 @@ buf_LRU_free_page(
|
|||
buf_page_t* bpage, /*!< in: block to be freed */
|
||||
bool zip) /*!< in: true if should remove also the
|
||||
compressed page of an uncompressed page */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************************//**
|
||||
Try to free a replaceable block.
|
||||
@return TRUE if found and freed */
|
||||
|
@ -105,7 +105,7 @@ buf_LRU_scan_and_free_block(
|
|||
ibool scan_all) /*!< in: scan whole LRU list
|
||||
if TRUE, otherwise scan only
|
||||
'old' blocks. */
|
||||
__attribute__((nonnull,warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull,warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Returns a free block from the buf_pool. The block is taken off the
|
||||
free list. If it is empty, returns NULL.
|
||||
|
@ -146,7 +146,7 @@ buf_block_t*
|
|||
buf_LRU_get_free_block(
|
||||
/*===================*/
|
||||
buf_pool_t* buf_pool) /*!< in/out: buffer pool instance */
|
||||
__attribute__((nonnull,warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull,warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Determines if the unzip_LRU list should be used for evicting a victim
|
||||
instead of the general LRU list.
|
||||
|
@ -229,7 +229,7 @@ buf_LRU_free_one_page(
|
|||
buf_page_t* bpage) /*!< in/out: block, must contain a file page and
|
||||
be in a state where it can be freed; there
|
||||
may or may not be a hash index to the page */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
#if defined UNIV_DEBUG || defined UNIV_BUF_DEBUG
|
||||
/**********************************************************************//**
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -46,7 +46,7 @@ dtype_t*
|
|||
dfield_get_type(
|
||||
/*============*/
|
||||
const dfield_t* field) /*!< in: SQL data field */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Gets pointer to the data in a field.
|
||||
@return pointer to data */
|
||||
|
@ -55,7 +55,7 @@ void*
|
|||
dfield_get_data(
|
||||
/*============*/
|
||||
const dfield_t* field) /*!< in: field */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
#else /* UNIV_DEBUG */
|
||||
# define dfield_get_type(field) (&(field)->type)
|
||||
# define dfield_get_data(field) ((field)->data)
|
||||
|
@ -68,7 +68,7 @@ dfield_set_type(
|
|||
/*============*/
|
||||
dfield_t* field, /*!< in: SQL data field */
|
||||
const dtype_t* type) /*!< in: pointer to data type struct */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Gets length of field data.
|
||||
@return length of data; UNIV_SQL_NULL if SQL null data */
|
||||
|
@ -77,7 +77,7 @@ ulint
|
|||
dfield_get_len(
|
||||
/*===========*/
|
||||
const dfield_t* field) /*!< in: field */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Sets length in a field. */
|
||||
UNIV_INLINE
|
||||
|
@ -86,7 +86,7 @@ dfield_set_len(
|
|||
/*===========*/
|
||||
dfield_t* field, /*!< in: field */
|
||||
ulint len) /*!< in: length or UNIV_SQL_NULL */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Determines if a field is SQL NULL
|
||||
@return nonzero if SQL null data */
|
||||
|
@ -95,7 +95,7 @@ ulint
|
|||
dfield_is_null(
|
||||
/*===========*/
|
||||
const dfield_t* field) /*!< in: field */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Determines if a field is externally stored
|
||||
@return nonzero if externally stored */
|
||||
|
@ -104,7 +104,7 @@ ulint
|
|||
dfield_is_ext(
|
||||
/*==========*/
|
||||
const dfield_t* field) /*!< in: field */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Sets the "external storage" flag */
|
||||
UNIV_INLINE
|
||||
|
@ -112,7 +112,7 @@ void
|
|||
dfield_set_ext(
|
||||
/*===========*/
|
||||
dfield_t* field) /*!< in/out: field */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Sets pointer to the data and length in a field. */
|
||||
UNIV_INLINE
|
||||
|
@ -122,7 +122,7 @@ dfield_set_data(
|
|||
dfield_t* field, /*!< in: field */
|
||||
const void* data, /*!< in: data */
|
||||
ulint len) /*!< in: length or UNIV_SQL_NULL */
|
||||
__attribute__((nonnull(1)));
|
||||
MY_ATTRIBUTE((nonnull(1)));
|
||||
/*********************************************************************//**
|
||||
Sets a data field to SQL NULL. */
|
||||
UNIV_INLINE
|
||||
|
@ -130,7 +130,7 @@ void
|
|||
dfield_set_null(
|
||||
/*============*/
|
||||
dfield_t* field) /*!< in/out: field */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**********************************************************************//**
|
||||
Writes an SQL null field full of zeros. */
|
||||
UNIV_INLINE
|
||||
|
@ -139,7 +139,7 @@ data_write_sql_null(
|
|||
/*================*/
|
||||
byte* data, /*!< in: pointer to a buffer of size len */
|
||||
ulint len) /*!< in: SQL null size in bytes */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Copies the data and len fields. */
|
||||
UNIV_INLINE
|
||||
|
@ -148,7 +148,7 @@ dfield_copy_data(
|
|||
/*=============*/
|
||||
dfield_t* field1, /*!< out: field to copy to */
|
||||
const dfield_t* field2) /*!< in: field to copy from */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Copies a data field to another. */
|
||||
UNIV_INLINE
|
||||
|
@ -157,7 +157,7 @@ dfield_copy(
|
|||
/*========*/
|
||||
dfield_t* field1, /*!< out: field to copy to */
|
||||
const dfield_t* field2) /*!< in: field to copy from */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Copies the data pointed to by a data field. */
|
||||
UNIV_INLINE
|
||||
|
@ -166,7 +166,7 @@ dfield_dup(
|
|||
/*=======*/
|
||||
dfield_t* field, /*!< in/out: data field */
|
||||
mem_heap_t* heap) /*!< in: memory heap where allocated */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/*********************************************************************//**
|
||||
Tests if two data fields are equal.
|
||||
|
@ -181,7 +181,7 @@ dfield_datas_are_binary_equal(
|
|||
const dfield_t* field2, /*!< in: field */
|
||||
ulint len) /*!< in: maximum prefix to compare,
|
||||
or 0 to compare the whole field length */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Tests if dfield data length and content is equal to the given.
|
||||
@return TRUE if equal */
|
||||
|
@ -192,7 +192,7 @@ dfield_data_is_binary_equal(
|
|||
const dfield_t* field, /*!< in: field */
|
||||
ulint len, /*!< in: data length or UNIV_SQL_NULL */
|
||||
const byte* data) /*!< in: data */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/*********************************************************************//**
|
||||
Gets number of fields in a data tuple.
|
||||
|
@ -202,7 +202,7 @@ ulint
|
|||
dtuple_get_n_fields(
|
||||
/*================*/
|
||||
const dtuple_t* tuple) /*!< in: tuple */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
#ifdef UNIV_DEBUG
|
||||
/*********************************************************************//**
|
||||
Gets nth field of a tuple.
|
||||
|
@ -224,7 +224,7 @@ ulint
|
|||
dtuple_get_info_bits(
|
||||
/*=================*/
|
||||
const dtuple_t* tuple) /*!< in: tuple */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Sets info bits in a data tuple. */
|
||||
UNIV_INLINE
|
||||
|
@ -233,7 +233,7 @@ dtuple_set_info_bits(
|
|||
/*=================*/
|
||||
dtuple_t* tuple, /*!< in: tuple */
|
||||
ulint info_bits) /*!< in: info bits */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Gets number of fields used in record comparisons.
|
||||
@return number of fields used in comparisons in rem0cmp.* */
|
||||
|
@ -242,7 +242,7 @@ ulint
|
|||
dtuple_get_n_fields_cmp(
|
||||
/*====================*/
|
||||
const dtuple_t* tuple) /*!< in: tuple */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Gets number of fields used in record comparisons. */
|
||||
UNIV_INLINE
|
||||
|
@ -252,7 +252,7 @@ dtuple_set_n_fields_cmp(
|
|||
dtuple_t* tuple, /*!< in: tuple */
|
||||
ulint n_fields_cmp) /*!< in: number of fields used in
|
||||
comparisons in rem0cmp.* */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/* Estimate the number of bytes that are going to be allocated when
|
||||
creating a new dtuple_t object */
|
||||
|
@ -272,7 +272,7 @@ dtuple_create_from_mem(
|
|||
void* buf, /*!< in, out: buffer to use */
|
||||
ulint buf_size, /*!< in: buffer size */
|
||||
ulint n_fields) /*!< in: number of fields */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/**********************************************************//**
|
||||
Creates a data tuple to a memory heap. The default value for number
|
||||
|
@ -286,7 +286,7 @@ dtuple_create(
|
|||
is created, DTUPLE_EST_ALLOC(n_fields)
|
||||
bytes will be allocated from this heap */
|
||||
ulint n_fields)/*!< in: number of fields */
|
||||
__attribute__((nonnull, malloc));
|
||||
MY_ATTRIBUTE((nonnull, malloc));
|
||||
|
||||
/*********************************************************************//**
|
||||
Sets number of fields used in a tuple. Normally this is set in
|
||||
|
@ -297,7 +297,7 @@ dtuple_set_n_fields(
|
|||
/*================*/
|
||||
dtuple_t* tuple, /*!< in: tuple */
|
||||
ulint n_fields) /*!< in: number of fields */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Copies a data tuple to another. This is a shallow copy; if a deep copy
|
||||
is desired, dfield_dup() will have to be invoked on each field.
|
||||
|
@ -309,7 +309,7 @@ dtuple_copy(
|
|||
const dtuple_t* tuple, /*!< in: tuple to copy from */
|
||||
mem_heap_t* heap) /*!< in: memory heap
|
||||
where the tuple is created */
|
||||
__attribute__((nonnull, malloc));
|
||||
MY_ATTRIBUTE((nonnull, malloc));
|
||||
/**********************************************************//**
|
||||
The following function returns the sum of data lengths of a tuple. The space
|
||||
occupied by the field structs or the tuple struct is not counted.
|
||||
|
@ -320,7 +320,7 @@ dtuple_get_data_size(
|
|||
/*=================*/
|
||||
const dtuple_t* tuple, /*!< in: typed data tuple */
|
||||
ulint comp) /*!< in: nonzero=ROW_FORMAT=COMPACT */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Computes the number of externally stored fields in a data tuple.
|
||||
@return number of fields */
|
||||
|
@ -329,7 +329,7 @@ ulint
|
|||
dtuple_get_n_ext(
|
||||
/*=============*/
|
||||
const dtuple_t* tuple) /*!< in: tuple */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/************************************************************//**
|
||||
Compare two data tuples, respecting the collation of character fields.
|
||||
@return 1, 0 , -1 if tuple1 is greater, equal, less, respectively,
|
||||
|
@ -340,7 +340,7 @@ dtuple_coll_cmp(
|
|||
/*============*/
|
||||
const dtuple_t* tuple1, /*!< in: tuple 1 */
|
||||
const dtuple_t* tuple2) /*!< in: tuple 2 */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/************************************************************//**
|
||||
Folds a prefix given as the number of fields of a tuple.
|
||||
@return the folded value */
|
||||
|
@ -353,7 +353,7 @@ dtuple_fold(
|
|||
ulint n_bytes,/*!< in: number of bytes to fold in an
|
||||
incomplete last field */
|
||||
index_id_t tree_id)/*!< in: index tree id */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/*******************************************************************//**
|
||||
Sets types of fields binary in a tuple. */
|
||||
UNIV_INLINE
|
||||
|
@ -362,7 +362,7 @@ dtuple_set_types_binary(
|
|||
/*====================*/
|
||||
dtuple_t* tuple, /*!< in: data tuple */
|
||||
ulint n) /*!< in: number of fields to set */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**********************************************************************//**
|
||||
Checks if a dtuple contains an SQL null value.
|
||||
@return TRUE if some field is SQL null */
|
||||
|
@ -371,7 +371,7 @@ ibool
|
|||
dtuple_contains_null(
|
||||
/*=================*/
|
||||
const dtuple_t* tuple) /*!< in: dtuple */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/**********************************************************//**
|
||||
Checks that a data field is typed. Asserts an error if not.
|
||||
@return TRUE if ok */
|
||||
|
@ -380,7 +380,7 @@ ibool
|
|||
dfield_check_typed(
|
||||
/*===============*/
|
||||
const dfield_t* field) /*!< in: data field */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/**********************************************************//**
|
||||
Checks that a data tuple is typed. Asserts an error if not.
|
||||
@return TRUE if ok */
|
||||
|
@ -389,7 +389,7 @@ ibool
|
|||
dtuple_check_typed(
|
||||
/*===============*/
|
||||
const dtuple_t* tuple) /*!< in: tuple */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/**********************************************************//**
|
||||
Checks that a data tuple is typed.
|
||||
@return TRUE if ok */
|
||||
|
@ -398,7 +398,7 @@ ibool
|
|||
dtuple_check_typed_no_assert(
|
||||
/*=========================*/
|
||||
const dtuple_t* tuple) /*!< in: tuple */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
#ifdef UNIV_DEBUG
|
||||
/**********************************************************//**
|
||||
Validates the consistency of a tuple which must be complete, i.e,
|
||||
|
@ -409,7 +409,7 @@ ibool
|
|||
dtuple_validate(
|
||||
/*============*/
|
||||
const dtuple_t* tuple) /*!< in: tuple */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
#endif /* UNIV_DEBUG */
|
||||
/*************************************************************//**
|
||||
Pretty prints a dfield value according to its data type. */
|
||||
|
@ -418,7 +418,7 @@ void
|
|||
dfield_print(
|
||||
/*=========*/
|
||||
const dfield_t* dfield) /*!< in: dfield */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*************************************************************//**
|
||||
Pretty prints a dfield value according to its data type. Also the hex string
|
||||
is printed if a string contains non-printable characters. */
|
||||
|
@ -427,7 +427,7 @@ void
|
|||
dfield_print_also_hex(
|
||||
/*==================*/
|
||||
const dfield_t* dfield) /*!< in: dfield */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**********************************************************//**
|
||||
The following function prints the contents of a tuple. */
|
||||
UNIV_INTERN
|
||||
|
@ -436,7 +436,7 @@ dtuple_print(
|
|||
/*=========*/
|
||||
FILE* f, /*!< in: output stream */
|
||||
const dtuple_t* tuple) /*!< in: tuple */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**************************************************************//**
|
||||
Moves parts of long fields in entry to the big record vector so that
|
||||
the size of tuple drops below the maximum record size allowed in the
|
||||
|
@ -453,7 +453,7 @@ dtuple_convert_big_rec(
|
|||
dtuple_t* entry, /*!< in/out: index entry */
|
||||
ulint* n_ext) /*!< in/out: number of
|
||||
externally stored columns */
|
||||
__attribute__((nonnull, malloc, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, malloc, warn_unused_result));
|
||||
/**************************************************************//**
|
||||
Puts back to entry the data stored in vector. Note that to ensure the
|
||||
fields in entry can accommodate the data, vector must have been created
|
||||
|
@ -466,7 +466,7 @@ dtuple_convert_back_big_rec(
|
|||
dtuple_t* entry, /*!< in: entry whose data was put to vector */
|
||||
big_rec_t* vector) /*!< in, own: big rec vector; it is
|
||||
freed in this function */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**************************************************************//**
|
||||
Frees the memory in a big rec vector. */
|
||||
UNIV_INLINE
|
||||
|
@ -475,7 +475,7 @@ dtuple_big_rec_free(
|
|||
/*================*/
|
||||
big_rec_t* vector) /*!< in, own: big rec vector; it is
|
||||
freed in this function */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/*######################################################################*/
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -56,7 +56,8 @@ dfield_set_type(
|
|||
dfield_t* field, /*!< in: SQL data field */
|
||||
const dtype_t* type) /*!< in: pointer to data type struct */
|
||||
{
|
||||
ut_ad(field && type);
|
||||
ut_ad(field != NULL);
|
||||
ut_ad(type != NULL);
|
||||
|
||||
field->type = *type;
|
||||
}
|
||||
|
@ -194,7 +195,8 @@ dfield_copy_data(
|
|||
dfield_t* field1, /*!< out: field to copy to */
|
||||
const dfield_t* field2) /*!< in: field to copy from */
|
||||
{
|
||||
ut_ad(field1 && field2);
|
||||
ut_ad(field1 != NULL);
|
||||
ut_ad(field2 != NULL);
|
||||
|
||||
field1->data = field2->data;
|
||||
field1->len = field2->len;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -95,7 +95,7 @@ UNIV_INTERN
|
|||
dberr_t
|
||||
dict_boot(void)
|
||||
/*===========*/
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
|
||||
/*****************************************************************//**
|
||||
Creates and initializes the data dictionary at the server bootstrap.
|
||||
|
@ -104,7 +104,7 @@ UNIV_INTERN
|
|||
dberr_t
|
||||
dict_create(void)
|
||||
/*=============*/
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
|
||||
/*********************************************************************//**
|
||||
Check if a table id belongs to system table.
|
||||
|
@ -114,7 +114,7 @@ bool
|
|||
dict_is_sys_table(
|
||||
/*==============*/
|
||||
table_id_t id) /*!< in: table id to check */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
|
||||
/* Space id and page no where the dictionary header resides */
|
||||
#define DICT_HDR_SPACE 0 /* the SYSTEM tablespace */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2014, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -134,7 +134,7 @@ dict_create_add_foreign_id(
|
|||
incremented if used */
|
||||
const char* name, /*!< in: table name */
|
||||
dict_foreign_t* foreign)/*!< in/out: foreign key */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/** Adds the given set of foreign key objects to the dictionary tables
|
||||
in the database. This function does not modify the dictionary cache. The
|
||||
|
@ -153,7 +153,7 @@ dict_create_add_foreigns_to_dictionary(
|
|||
const dict_foreign_set& local_fk_set,
|
||||
const dict_table_t* table,
|
||||
trx_t* trx)
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/****************************************************************//**
|
||||
Creates the tablespaces and datafiles system tables inside InnoDB
|
||||
at server bootstrap or server start if they are not found or are
|
||||
|
@ -189,7 +189,7 @@ dict_create_add_foreign_to_dictionary(
|
|||
const char* name, /*!< in: table name */
|
||||
const dict_foreign_t* foreign,/*!< in: foreign key */
|
||||
trx_t* trx) /*!< in/out: dictionary transaction */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/********************************************************************//**
|
||||
Construct foreign key constraint defintion from data dictionary information.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -33,7 +33,7 @@ UNIV_INTERN
|
|||
bool
|
||||
row_is_mysql_tmp_table_name(
|
||||
/*========================*/
|
||||
const char* name) __attribute__((warn_unused_result));
|
||||
const char* name) MY_ATTRIBUTE((warn_unused_result));
|
||||
/*!< in: table name in the form
|
||||
'database/tablename' */
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -80,7 +80,8 @@ dict_col_copy_type(
|
|||
const dict_col_t* col, /*!< in: column */
|
||||
dtype_t* type) /*!< out: data type */
|
||||
{
|
||||
ut_ad(col && type);
|
||||
ut_ad(col != NULL);
|
||||
ut_ad(type != NULL);
|
||||
|
||||
type->mtype = col->mtype;
|
||||
type->prtype = col->prtype;
|
||||
|
@ -357,7 +358,7 @@ UNIV_INLINE
|
|||
ulint
|
||||
dict_table_get_n_sys_cols(
|
||||
/*======================*/
|
||||
const dict_table_t* table __attribute__((unused))) /*!< in: table */
|
||||
const dict_table_t* table MY_ATTRIBUTE((unused))) /*!< in: table */
|
||||
{
|
||||
ut_ad(table);
|
||||
ut_ad(table->magic_n == DICT_TABLE_MAGIC_N);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -243,7 +243,7 @@ dict_load_foreigns(
|
|||
bool check_charsets, /*!< in: whether to check
|
||||
charset compatibility */
|
||||
dict_err_ignore_t ignore_err) /*!< in: error to be ignored */
|
||||
__attribute__((nonnull(1), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(1), warn_unused_result));
|
||||
/********************************************************************//**
|
||||
Prints to the standard output information on all tables found in the data
|
||||
dictionary system table. */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2012, Facebook Inc.
|
||||
Copyright (c) 2015, 2016, MariaDB Corporation.
|
||||
|
||||
|
@ -152,19 +152,19 @@ allows InnoDB to update_create_info() accordingly. */
|
|||
|
||||
/** Bit mask of the COMPACT field */
|
||||
#define DICT_TF_MASK_COMPACT \
|
||||
((~(~0 << DICT_TF_WIDTH_COMPACT)) \
|
||||
((~(~0U << DICT_TF_WIDTH_COMPACT)) \
|
||||
<< DICT_TF_POS_COMPACT)
|
||||
/** Bit mask of the ZIP_SSIZE field */
|
||||
#define DICT_TF_MASK_ZIP_SSIZE \
|
||||
((~(~0 << DICT_TF_WIDTH_ZIP_SSIZE)) \
|
||||
((~(~0U << DICT_TF_WIDTH_ZIP_SSIZE)) \
|
||||
<< DICT_TF_POS_ZIP_SSIZE)
|
||||
/** Bit mask of the ATOMIC_BLOBS field */
|
||||
#define DICT_TF_MASK_ATOMIC_BLOBS \
|
||||
((~(~0 << DICT_TF_WIDTH_ATOMIC_BLOBS)) \
|
||||
((~(~0U << DICT_TF_WIDTH_ATOMIC_BLOBS)) \
|
||||
<< DICT_TF_POS_ATOMIC_BLOBS)
|
||||
/** Bit mask of the DATA_DIR field */
|
||||
#define DICT_TF_MASK_DATA_DIR \
|
||||
((~(~0 << DICT_TF_WIDTH_DATA_DIR)) \
|
||||
((~(~0U << DICT_TF_WIDTH_DATA_DIR)) \
|
||||
<< DICT_TF_POS_DATA_DIR)
|
||||
|
||||
/** Return the value of the COMPACT field */
|
||||
|
@ -198,7 +198,7 @@ for unknown bits in order to protect backward incompatibility. */
|
|||
/* @{ */
|
||||
/** Total number of bits in table->flags2. */
|
||||
#define DICT_TF2_BITS 7
|
||||
#define DICT_TF2_BIT_MASK ~(~0 << DICT_TF2_BITS)
|
||||
#define DICT_TF2_BIT_MASK ~(~0U << DICT_TF2_BITS)
|
||||
|
||||
/** TEMPORARY; TRUE for tables from CREATE TEMPORARY TABLE. */
|
||||
#define DICT_TF2_TEMPORARY 1
|
||||
|
@ -286,7 +286,7 @@ dict_mem_table_add_col(
|
|||
ulint mtype, /*!< in: main datatype */
|
||||
ulint prtype, /*!< in: precise type */
|
||||
ulint len) /*!< in: precision */
|
||||
__attribute__((nonnull(1)));
|
||||
MY_ATTRIBUTE((nonnull(1)));
|
||||
/**********************************************************************//**
|
||||
Renames a column of a table in the data dictionary cache. */
|
||||
UNIV_INTERN
|
||||
|
@ -297,7 +297,7 @@ dict_mem_table_col_rename(
|
|||
unsigned nth_col,/*!< in: column index */
|
||||
const char* from, /*!< in: old column name */
|
||||
const char* to) /*!< in: new column name */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**********************************************************************//**
|
||||
This function populates a dict_col_t memory structure with
|
||||
supplied information. */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2009, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2009, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -77,7 +77,7 @@ dict_stats_set_persistent(
|
|||
dict_table_t* table, /*!< in/out: table */
|
||||
ibool ps_on, /*!< in: persistent stats explicitly enabled */
|
||||
ibool ps_off) /*!< in: persistent stats explicitly disabled */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/*********************************************************************//**
|
||||
Check whether persistent statistics is enabled for a given table.
|
||||
|
@ -87,7 +87,7 @@ ibool
|
|||
dict_stats_is_persistent_enabled(
|
||||
/*=============================*/
|
||||
const dict_table_t* table) /*!< in: table */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/*********************************************************************//**
|
||||
Set the auto recalc flag for a given table (only honored for a persistent
|
||||
|
@ -127,7 +127,7 @@ void
|
|||
dict_stats_deinit(
|
||||
/*==============*/
|
||||
dict_table_t* table) /*!< in/out: table */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/*********************************************************************//**
|
||||
Calculates new estimates for table and index statistics. The statistics
|
||||
|
@ -179,7 +179,7 @@ void
|
|||
dict_stats_update_for_index(
|
||||
/*========================*/
|
||||
dict_index_t* index) /*!< in/out: index */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/*********************************************************************//**
|
||||
Renames a table in InnoDB persistent stats storage.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2012, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2012, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -74,7 +74,7 @@ bool
|
|||
dict_stats_stop_bg(
|
||||
/*===============*/
|
||||
dict_table_t* table) /*!< in/out: table */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
|
||||
/*****************************************************************//**
|
||||
Wait until background stats thread has stopped using the specified table.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -48,7 +48,7 @@ dyn_array_create(
|
|||
/*=============*/
|
||||
dyn_array_t* arr) /*!< in/out memory buffer of
|
||||
size sizeof(dyn_array_t) */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/************************************************************//**
|
||||
Frees a dynamic array. */
|
||||
UNIV_INLINE
|
||||
|
@ -56,7 +56,7 @@ void
|
|||
dyn_array_free(
|
||||
/*===========*/
|
||||
dyn_array_t* arr) /*!< in,own: dyn array */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Makes room on top of a dyn array and returns a pointer to a buffer in it.
|
||||
After copying the elements, the caller must close the buffer using
|
||||
|
@ -69,7 +69,7 @@ dyn_array_open(
|
|||
dyn_array_t* arr, /*!< in: dynamic array */
|
||||
ulint size) /*!< in: size in bytes of the buffer; MUST be
|
||||
smaller than DYN_ARRAY_DATA_SIZE! */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Closes the buffer returned by dyn_array_open. */
|
||||
UNIV_INLINE
|
||||
|
@ -78,7 +78,7 @@ dyn_array_close(
|
|||
/*============*/
|
||||
dyn_array_t* arr, /*!< in: dynamic array */
|
||||
const byte* ptr) /*!< in: end of used space */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Makes room on top of a dyn array and returns a pointer to
|
||||
the added element. The caller must copy the element to
|
||||
|
@ -90,7 +90,7 @@ dyn_array_push(
|
|||
/*===========*/
|
||||
dyn_array_t* arr, /*!< in/out: dynamic array */
|
||||
ulint size) /*!< in: size in bytes of the element */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/************************************************************//**
|
||||
Returns pointer to an element in dyn array.
|
||||
@return pointer to element */
|
||||
|
@ -101,7 +101,7 @@ dyn_array_get_element(
|
|||
const dyn_array_t* arr, /*!< in: dyn array */
|
||||
ulint pos) /*!< in: position of element
|
||||
in bytes from array start */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/************************************************************//**
|
||||
Returns the size of stored data in a dyn array.
|
||||
@return data size in bytes */
|
||||
|
@ -110,7 +110,7 @@ ulint
|
|||
dyn_array_get_data_size(
|
||||
/*====================*/
|
||||
const dyn_array_t* arr) /*!< in: dyn array */
|
||||
__attribute__((nonnull, warn_unused_result, pure));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result, pure));
|
||||
/************************************************************//**
|
||||
Gets the first block in a dyn array.
|
||||
@param arr dyn array
|
||||
|
@ -144,7 +144,7 @@ ulint
|
|||
dyn_block_get_used(
|
||||
/*===============*/
|
||||
const dyn_block_t* block) /*!< in: dyn array block */
|
||||
__attribute__((nonnull, warn_unused_result, pure));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result, pure));
|
||||
/********************************************************************//**
|
||||
Gets pointer to the start of data in a dyn array block.
|
||||
@return pointer to data */
|
||||
|
@ -153,7 +153,7 @@ byte*
|
|||
dyn_block_get_data(
|
||||
/*===============*/
|
||||
const dyn_block_t* block) /*!< in: dyn array block */
|
||||
__attribute__((nonnull, warn_unused_result, pure));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result, pure));
|
||||
/********************************************************//**
|
||||
Pushes n bytes to a dyn array. */
|
||||
UNIV_INLINE
|
||||
|
@ -163,7 +163,7 @@ dyn_push_string(
|
|||
dyn_array_t* arr, /*!< in/out: dyn array */
|
||||
const byte* str, /*!< in: string to write */
|
||||
ulint len) /*!< in: string length */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/*#################################################################*/
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -36,7 +36,7 @@ dyn_block_t*
|
|||
dyn_array_add_block(
|
||||
/*================*/
|
||||
dyn_array_t* arr) /*!< in/out: dyn array */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/********************************************************************//**
|
||||
Gets the number of used bytes in a dyn array block.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -415,7 +415,7 @@ fil_node_create(
|
|||
ulint id, /*!< in: space id where to append */
|
||||
ibool is_raw) /*!< in: TRUE if a raw device or
|
||||
a raw disk partition */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
#ifdef UNIV_LOG_ARCHIVE
|
||||
/****************************************************************//**
|
||||
Drops files from the start of a file space, so that its size is cut by
|
||||
|
@ -582,7 +582,7 @@ fil_read_first_page(
|
|||
lsn values in data files */
|
||||
lsn_t* max_flushed_lsn) /*!< out: max of flushed
|
||||
lsn values in data files */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
/*******************************************************************//**
|
||||
Increments the count of pending operation, if space is not being deleted.
|
||||
@return TRUE if being deleted, and operation should be skipped */
|
||||
|
@ -670,7 +670,7 @@ dberr_t
|
|||
fil_discard_tablespace(
|
||||
/*===================*/
|
||||
ulint id) /*!< in: space id */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
/** Test if a tablespace file can be renamed to a new filepath by checking
|
||||
|
@ -779,7 +779,7 @@ fil_create_new_single_table_tablespace(
|
|||
ulint size) /*!< in: the initial size of the
|
||||
tablespace file in pages,
|
||||
must be >= FIL_IBD_FILE_INITIAL_SIZE */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/********************************************************************//**
|
||||
Tries to open a single-table tablespace and optionally checks the space id is
|
||||
|
@ -813,7 +813,7 @@ fil_open_single_table_tablespace(
|
|||
const char* tablename, /*!< in: table name in the
|
||||
databasename/tablename format */
|
||||
const char* filepath) /*!< in: tablespace filepath */
|
||||
__attribute__((nonnull(5), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(5), warn_unused_result));
|
||||
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/********************************************************************//**
|
||||
|
@ -962,7 +962,7 @@ fil_io(
|
|||
appropriately aligned */
|
||||
void* message) /*!< in: message for aio handler if non-sync
|
||||
aio used, else ignored */
|
||||
__attribute__((nonnull(8)));
|
||||
MY_ATTRIBUTE((nonnull(8)));
|
||||
/**********************************************************************//**
|
||||
Waits for an aio operation to complete. This function is used to write the
|
||||
handler for completed requests. The aio array of pending requests is divided
|
||||
|
@ -1157,7 +1157,7 @@ fil_tablespace_iterate(
|
|||
dict_table_t* table,
|
||||
ulint n_io_buffers,
|
||||
PageCallback& callback)
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/*******************************************************************//**
|
||||
Checks if a single-table tablespace for a given table name exists in the
|
||||
|
@ -1181,7 +1181,7 @@ fil_get_space_names(
|
|||
/*================*/
|
||||
space_name_list_t& space_name_list)
|
||||
/*!< in/out: Vector for collecting the names. */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
|
||||
/** Generate redo log for swapping two .ibd files
|
||||
@param[in] old_table old table
|
||||
|
@ -1196,7 +1196,7 @@ fil_mtr_rename_log(
|
|||
const dict_table_t* new_table,
|
||||
const char* tmp_name,
|
||||
mtr_t* mtr)
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/*******************************************************************//**
|
||||
Finds the given page_no of the given space id from the double write buffer,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -83,23 +83,23 @@ is found in a remote location, not the default data directory. */
|
|||
|
||||
/** Bit mask of the POST_ANTELOPE field */
|
||||
#define FSP_FLAGS_MASK_POST_ANTELOPE \
|
||||
((~(~0 << FSP_FLAGS_WIDTH_POST_ANTELOPE)) \
|
||||
((~(~0U << FSP_FLAGS_WIDTH_POST_ANTELOPE)) \
|
||||
<< FSP_FLAGS_POS_POST_ANTELOPE)
|
||||
/** Bit mask of the ZIP_SSIZE field */
|
||||
#define FSP_FLAGS_MASK_ZIP_SSIZE \
|
||||
((~(~0 << FSP_FLAGS_WIDTH_ZIP_SSIZE)) \
|
||||
((~(~0U << FSP_FLAGS_WIDTH_ZIP_SSIZE)) \
|
||||
<< FSP_FLAGS_POS_ZIP_SSIZE)
|
||||
/** Bit mask of the ATOMIC_BLOBS field */
|
||||
#define FSP_FLAGS_MASK_ATOMIC_BLOBS \
|
||||
((~(~0 << FSP_FLAGS_WIDTH_ATOMIC_BLOBS)) \
|
||||
((~(~0U << FSP_FLAGS_WIDTH_ATOMIC_BLOBS)) \
|
||||
<< FSP_FLAGS_POS_ATOMIC_BLOBS)
|
||||
/** Bit mask of the PAGE_SSIZE field */
|
||||
#define FSP_FLAGS_MASK_PAGE_SSIZE \
|
||||
((~(~0 << FSP_FLAGS_WIDTH_PAGE_SSIZE)) \
|
||||
((~(~0U << FSP_FLAGS_WIDTH_PAGE_SSIZE)) \
|
||||
<< FSP_FLAGS_POS_PAGE_SSIZE)
|
||||
/** Bit mask of the DATA_DIR field */
|
||||
#define FSP_FLAGS_MASK_DATA_DIR \
|
||||
((~(~0 << FSP_FLAGS_WIDTH_DATA_DIR)) \
|
||||
((~(~0U << FSP_FLAGS_WIDTH_DATA_DIR)) \
|
||||
<< FSP_FLAGS_POS_DATA_DIR)
|
||||
|
||||
/** Return the value of the POST_ANTELOPE field */
|
||||
|
@ -510,7 +510,7 @@ fseg_alloc_free_page_general(
|
|||
in which the page should be initialized.
|
||||
If init_mtr!=mtr, but the page is already
|
||||
latched in mtr, do not initialize the page. */
|
||||
__attribute__((warn_unused_result, nonnull));
|
||||
MY_ATTRIBUTE((warn_unused_result, nonnull));
|
||||
/**********************************************************************//**
|
||||
Reserves free pages from a tablespace. All mini-transactions which may
|
||||
use several pages from the tablespace should call this function beforehand
|
||||
|
@ -579,7 +579,7 @@ fseg_page_is_free(
|
|||
fseg_header_t* seg_header, /*!< in: segment header */
|
||||
ulint space, /*!< in: space id */
|
||||
ulint page) /*!< in: page offset */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/**********************************************************************//**
|
||||
Frees part of a segment. This function can be used to free a segment
|
||||
by repeatedly calling this function in different mini-transactions.
|
||||
|
@ -675,7 +675,7 @@ bool
|
|||
fsp_flags_is_valid(
|
||||
/*===============*/
|
||||
ulint flags) /*!< in: tablespace flags */
|
||||
__attribute__((warn_unused_result, const));
|
||||
MY_ATTRIBUTE((warn_unused_result, const));
|
||||
/********************************************************************//**
|
||||
Determine if the tablespace is compressed from dict_table_t::flags.
|
||||
@return TRUE if compressed, FALSE if not compressed */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2007, 2014, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -200,7 +200,7 @@ fts_ast_visit(
|
|||
and ignored processing an
|
||||
operator, currently we only
|
||||
ignore FTS_IGNORE operator */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*****************************************************************//**
|
||||
Process (nested) sub-expression, create a new result set to store the
|
||||
sub-expression result by processing nodes under current sub-expression
|
||||
|
@ -213,7 +213,7 @@ fts_ast_visit_sub_exp(
|
|||
fts_ast_node_t* node, /*!< in: instance to traverse*/
|
||||
fts_ast_callback visitor, /*!< in: callback */
|
||||
void* arg) /*!< in: callback arg */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/********************************************************************
|
||||
Create a lex instance.*/
|
||||
UNIV_INTERN
|
||||
|
@ -223,7 +223,7 @@ fts_lexer_create(
|
|||
ibool boolean_mode, /*!< in: query type */
|
||||
const byte* query, /*!< in: query string */
|
||||
ulint query_len) /*!< in: query string len */
|
||||
__attribute__((nonnull, malloc, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, malloc, warn_unused_result));
|
||||
/********************************************************************
|
||||
Free an fts_lexer_t instance.*/
|
||||
UNIV_INTERN
|
||||
|
@ -232,7 +232,7 @@ fts_lexer_free(
|
|||
/*===========*/
|
||||
fts_lexer_t* fts_lexer) /*!< in: lexer instance to
|
||||
free */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/**
|
||||
Create an ast string object, with NUL-terminator, so the string
|
||||
|
|
|
@ -94,7 +94,10 @@ those defined in mysql file ft_global.h */
|
|||
/** Threshold where our optimize thread automatically kicks in */
|
||||
#define FTS_OPTIMIZE_THRESHOLD 10000000
|
||||
|
||||
#define FTS_DOC_ID_MAX_STEP 10000
|
||||
/** Threshold to avoid exhausting of doc ids. Consecutive doc id difference
|
||||
should not exceed FTS_DOC_ID_MAX_STEP */
|
||||
#define FTS_DOC_ID_MAX_STEP 65535
|
||||
|
||||
/** Variable specifying the FTS parallel sort degree */
|
||||
extern ulong fts_sort_pll_degree;
|
||||
|
||||
|
@ -408,7 +411,7 @@ fts_get_next_doc_id(
|
|||
/*================*/
|
||||
const dict_table_t* table, /*!< in: table */
|
||||
doc_id_t* doc_id) /*!< out: new document id */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Update the next and last Doc ID in the CONFIG table to be the input
|
||||
"doc_id" value (+ 1). We would do so after each FTS index build or
|
||||
|
@ -421,7 +424,7 @@ fts_update_next_doc_id(
|
|||
const dict_table_t* table, /*!< in: table */
|
||||
const char* table_name, /*!< in: table name, or NULL */
|
||||
doc_id_t doc_id) /*!< in: DOC ID to set */
|
||||
__attribute__((nonnull(2)));
|
||||
MY_ATTRIBUTE((nonnull(2)));
|
||||
|
||||
/******************************************************************//**
|
||||
Create a new document id .
|
||||
|
@ -437,7 +440,7 @@ fts_create_doc_id(
|
|||
current row that is being
|
||||
inserted. */
|
||||
mem_heap_t* heap) /*!< in: heap */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************************//**
|
||||
Create a new fts_doc_ids_t.
|
||||
@return new fts_doc_ids_t. */
|
||||
|
@ -466,7 +469,7 @@ fts_trx_add_op(
|
|||
fts_row_state state, /*!< in: state of the row */
|
||||
ib_vector_t* fts_indexes) /*!< in: FTS indexes affected
|
||||
(NULL=all) */
|
||||
__attribute__((nonnull(1,2)));
|
||||
MY_ATTRIBUTE((nonnull(1,2)));
|
||||
|
||||
/******************************************************************//**
|
||||
Free an FTS trx. */
|
||||
|
@ -491,7 +494,7 @@ fts_create_common_tables(
|
|||
index */
|
||||
const char* name, /*!< in: table name */
|
||||
bool skip_doc_id_index) /*!< in: Skip index on doc id */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Wrapper function of fts_create_index_tables_low(), create auxiliary
|
||||
tables for an FTS index
|
||||
|
@ -503,7 +506,7 @@ fts_create_index_tables(
|
|||
trx_t* trx, /*!< in: transaction handle */
|
||||
const dict_index_t* index) /*!< in: the FTS index
|
||||
instance */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Creates the column specific ancillary tables needed for supporting an
|
||||
FTS index on the given table. row_mysql_lock_data_dictionary must have
|
||||
|
@ -519,7 +522,7 @@ fts_create_index_tables_low(
|
|||
instance */
|
||||
const char* table_name, /*!< in: the table name */
|
||||
table_id_t table_id) /*!< in: the table id */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Add the FTS document id hidden column. */
|
||||
UNIV_INTERN
|
||||
|
@ -528,7 +531,7 @@ fts_add_doc_id_column(
|
|||
/*==================*/
|
||||
dict_table_t* table, /*!< in/out: Table with FTS index */
|
||||
mem_heap_t* heap) /*!< in: temporary memory heap, or NULL */
|
||||
__attribute__((nonnull(1)));
|
||||
MY_ATTRIBUTE((nonnull(1)));
|
||||
|
||||
/*********************************************************************//**
|
||||
Drops the ancillary tables needed for supporting an FTS index on the
|
||||
|
@ -542,7 +545,7 @@ fts_drop_tables(
|
|||
trx_t* trx, /*!< in: transaction */
|
||||
dict_table_t* table) /*!< in: table has the FTS
|
||||
index */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************************//**
|
||||
The given transaction is about to be committed; do whatever is necessary
|
||||
from the FTS system's POV.
|
||||
|
@ -552,7 +555,7 @@ dberr_t
|
|||
fts_commit(
|
||||
/*=======*/
|
||||
trx_t* trx) /*!< in: transaction */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/*******************************************************************//**
|
||||
FTS Query entry point.
|
||||
|
@ -569,7 +572,7 @@ fts_query(
|
|||
in bytes */
|
||||
fts_result_t** result) /*!< out: query result, to be
|
||||
freed by the caller.*/
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/******************************************************************//**
|
||||
Retrieve the FTS Relevance Ranking result for doc with doc_id
|
||||
|
@ -687,7 +690,7 @@ dberr_t
|
|||
fts_optimize_table(
|
||||
/*===============*/
|
||||
dict_table_t* table) /*!< in: table to optimiza */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/**********************************************************************//**
|
||||
Startup the optimize thread and create the work queue. */
|
||||
|
@ -713,7 +716,7 @@ fts_drop_index_tables(
|
|||
/*==================*/
|
||||
trx_t* trx, /*!< in: transaction */
|
||||
dict_index_t* index) /*!< in: Index to drop */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/******************************************************************//**
|
||||
Remove the table from the OPTIMIZER's list. We do wait for
|
||||
|
@ -754,7 +757,7 @@ fts_savepoint_take(
|
|||
trx_t* trx, /*!< in: transaction */
|
||||
fts_trx_t* fts_trx, /*!< in: fts transaction */
|
||||
const char* name) /*!< in: savepoint name */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**********************************************************************//**
|
||||
Refresh last statement savepoint. */
|
||||
UNIV_INTERN
|
||||
|
@ -762,7 +765,7 @@ void
|
|||
fts_savepoint_laststmt_refresh(
|
||||
/*===========================*/
|
||||
trx_t* trx) /*!< in: transaction */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**********************************************************************//**
|
||||
Release the savepoint data identified by name. */
|
||||
UNIV_INTERN
|
||||
|
@ -780,13 +783,12 @@ fts_cache_destroy(
|
|||
/*==============*/
|
||||
fts_cache_t* cache); /*!< in: cache*/
|
||||
|
||||
/*********************************************************************//**
|
||||
Clear cache. */
|
||||
/** Clear cache.
|
||||
@param[in,out] cache fts cache */
|
||||
UNIV_INTERN
|
||||
void
|
||||
fts_cache_clear(
|
||||
/*============*/
|
||||
fts_cache_t* cache); /*!< in: cache */
|
||||
fts_cache_t* cache);
|
||||
|
||||
/*********************************************************************//**
|
||||
Initialize things in cache. */
|
||||
|
@ -831,7 +833,7 @@ fts_drop_index_split_tables(
|
|||
/*========================*/
|
||||
trx_t* trx, /*!< in: transaction */
|
||||
dict_index_t* index) /*!< in: fts instance */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/** Run SYNC on the table, i.e., write out data from the cache to the
|
||||
FTS auxiliary INDEX table and clear the cache at the end.
|
||||
|
@ -1023,7 +1025,7 @@ fts_drop_index(
|
|||
dict_table_t* table, /*!< in: Table where indexes are dropped */
|
||||
dict_index_t* index, /*!< in: Index to be dropped */
|
||||
trx_t* trx) /*!< in: Transaction for the drop */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/****************************************************************//**
|
||||
Rename auxiliary tables for all fts index for a table
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2011, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -121,7 +121,7 @@ fts_parse_sql(
|
|||
fts_table_t* fts_table, /*!< in: FTS aux table */
|
||||
pars_info_t* info, /*!< in: info struct, or NULL */
|
||||
const char* sql) /*!< in: SQL string to evaluate */
|
||||
__attribute__((nonnull(3), malloc, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(3), malloc, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Evaluate a parsed SQL statement
|
||||
@return DB_SUCCESS or error code */
|
||||
|
@ -131,7 +131,7 @@ fts_eval_sql(
|
|||
/*=========*/
|
||||
trx_t* trx, /*!< in: transaction */
|
||||
que_t* graph) /*!< in: Parsed statement */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Construct the name of an ancillary FTS table for the given table.
|
||||
@return own: table name, must be freed with mem_free() */
|
||||
|
@ -141,7 +141,7 @@ fts_get_table_name(
|
|||
/*===============*/
|
||||
const fts_table_t*
|
||||
fts_table) /*!< in: FTS aux table info */
|
||||
__attribute__((nonnull, malloc, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, malloc, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Construct the column specification part of the SQL string for selecting the
|
||||
indexed FTS columns for the given table. Adds the necessary bound
|
||||
|
@ -164,7 +164,7 @@ fts_get_select_columns_str(
|
|||
dict_index_t* index, /*!< in: FTS index */
|
||||
pars_info_t* info, /*!< in/out: parser info */
|
||||
mem_heap_t* heap) /*!< in: memory heap */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/** define for fts_doc_fetch_by_doc_id() "option" value, defines whether
|
||||
we want to get Doc whose ID is equal to or greater or smaller than supplied
|
||||
|
@ -191,7 +191,7 @@ fts_doc_fetch_by_doc_id(
|
|||
callback, /*!< in: callback to read
|
||||
records */
|
||||
void* arg) /*!< in: callback arg */
|
||||
__attribute__((nonnull(6)));
|
||||
MY_ATTRIBUTE((nonnull(6)));
|
||||
|
||||
/*******************************************************************//**
|
||||
Callback function for fetch that stores the text of an FTS document,
|
||||
|
@ -203,7 +203,7 @@ fts_query_expansion_fetch_doc(
|
|||
/*==========================*/
|
||||
void* row, /*!< in: sel_node_t* */
|
||||
void* user_arg) /*!< in: fts_doc_t* */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/********************************************************************
|
||||
Write out a single word's data as new entry/entries in the INDEX table.
|
||||
@return DB_SUCCESS if all OK. */
|
||||
|
@ -216,7 +216,7 @@ fts_write_node(
|
|||
fts_table_t* fts_table, /*!< in: the FTS aux index */
|
||||
fts_string_t* word, /*!< in: word in UTF-8 */
|
||||
fts_node_t* node) /*!< in: node columns */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*******************************************************************//**
|
||||
Tokenize a document. */
|
||||
UNIV_INTERN
|
||||
|
@ -227,7 +227,7 @@ fts_tokenize_document(
|
|||
tokenize */
|
||||
fts_doc_t* result) /*!< out: if provided, save
|
||||
result tokens here */
|
||||
__attribute__((nonnull(1)));
|
||||
MY_ATTRIBUTE((nonnull(1)));
|
||||
|
||||
/*******************************************************************//**
|
||||
Continue to tokenize a document. */
|
||||
|
@ -241,7 +241,7 @@ fts_tokenize_document_next(
|
|||
tokens from this tokenization */
|
||||
fts_doc_t* result) /*!< out: if provided, save
|
||||
result tokens here */
|
||||
__attribute__((nonnull(1)));
|
||||
MY_ATTRIBUTE((nonnull(1)));
|
||||
/******************************************************************//**
|
||||
Initialize a document. */
|
||||
UNIV_INTERN
|
||||
|
@ -249,7 +249,7 @@ void
|
|||
fts_doc_init(
|
||||
/*=========*/
|
||||
fts_doc_t* doc) /*!< in: doc to initialize */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/******************************************************************//**
|
||||
Do a binary search for a doc id in the array
|
||||
|
@ -263,7 +263,7 @@ fts_bsearch(
|
|||
int lower, /*!< in: lower bound of array*/
|
||||
int upper, /*!< in: upper bound of array*/
|
||||
doc_id_t doc_id) /*!< in: doc id to lookup */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Free document. */
|
||||
UNIV_INTERN
|
||||
|
@ -271,7 +271,7 @@ void
|
|||
fts_doc_free(
|
||||
/*=========*/
|
||||
fts_doc_t* doc) /*!< in: document */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************************//**
|
||||
Free fts_optimizer_word_t instanace.*/
|
||||
UNIV_INTERN
|
||||
|
@ -279,7 +279,7 @@ void
|
|||
fts_word_free(
|
||||
/*==========*/
|
||||
fts_word_t* word) /*!< in: instance to free.*/
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************************//**
|
||||
Read the rows from the FTS inde
|
||||
@return DB_SUCCESS or error code */
|
||||
|
@ -293,7 +293,7 @@ fts_index_fetch_nodes(
|
|||
const fts_string_t*
|
||||
word, /*!< in: the word to fetch */
|
||||
fts_fetch_t* fetch) /*!< in: fetch callback.*/
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************************//**
|
||||
Create a fts_optimizer_word_t instance.
|
||||
@return new instance */
|
||||
|
@ -304,7 +304,7 @@ fts_word_init(
|
|||
fts_word_t* word, /*!< in: word to initialize */
|
||||
byte* utf8, /*!< in: UTF-8 string */
|
||||
ulint len) /*!< in: length of string in bytes */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************************//**
|
||||
Compare two fts_trx_table_t instances, we actually compare the
|
||||
table id's here.
|
||||
|
@ -315,7 +315,7 @@ fts_trx_table_cmp(
|
|||
/*==============*/
|
||||
const void* v1, /*!< in: id1 */
|
||||
const void* v2) /*!< in: id2 */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Compare a table id with a trx_table_t table id.
|
||||
@return < 0 if n1 < n2, 0 if n1 == n2, > 0 if n1 > n2 */
|
||||
|
@ -325,7 +325,7 @@ fts_trx_table_id_cmp(
|
|||
/*=================*/
|
||||
const void* p1, /*!< in: id1 */
|
||||
const void* p2) /*!< in: id2 */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Commit a transaction.
|
||||
@return DB_SUCCESS if all OK */
|
||||
|
@ -334,7 +334,7 @@ dberr_t
|
|||
fts_sql_commit(
|
||||
/*===========*/
|
||||
trx_t* trx) /*!< in: transaction */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************************//**
|
||||
Rollback a transaction.
|
||||
@return DB_SUCCESS if all OK */
|
||||
|
@ -343,7 +343,7 @@ dberr_t
|
|||
fts_sql_rollback(
|
||||
/*=============*/
|
||||
trx_t* trx) /*!< in: transaction */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************************//**
|
||||
Parse an SQL string. %s is replaced with the table's id. Don't acquire
|
||||
the dict mutex
|
||||
|
@ -355,7 +355,7 @@ fts_parse_sql_no_dict_lock(
|
|||
fts_table_t* fts_table, /*!< in: table with FTS index */
|
||||
pars_info_t* info, /*!< in: parser info */
|
||||
const char* sql) /*!< in: SQL string to evaluate */
|
||||
__attribute__((nonnull(3), malloc, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(3), malloc, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Get value from config table. The caller must ensure that enough
|
||||
space is allocated for value to hold the column contents
|
||||
|
@ -370,7 +370,7 @@ fts_config_get_value(
|
|||
this parameter name */
|
||||
fts_string_t* value) /*!< out: value read from
|
||||
config table */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************************//**
|
||||
Get value specific to an FTS index from the config table. The caller
|
||||
must ensure that enough space is allocated for value to hold the
|
||||
|
@ -386,7 +386,7 @@ fts_config_get_index_value(
|
|||
this parameter name */
|
||||
fts_string_t* value) /*!< out: value read from
|
||||
config table */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Set the value in the config table for name.
|
||||
@return DB_SUCCESS or error code */
|
||||
|
@ -400,7 +400,7 @@ fts_config_set_value(
|
|||
this parameter name */
|
||||
const fts_string_t*
|
||||
value) /*!< in: value to update */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/****************************************************************//**
|
||||
Set an ulint value in the config table.
|
||||
@return DB_SUCCESS if all OK else error code */
|
||||
|
@ -412,7 +412,7 @@ fts_config_set_ulint(
|
|||
fts_table_t* fts_table, /*!< in: the indexed FTS table */
|
||||
const char* name, /*!< in: param name */
|
||||
ulint int_value) /*!< in: value */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Set the value specific to an FTS index in the config table.
|
||||
@return DB_SUCCESS or error code */
|
||||
|
@ -426,7 +426,7 @@ fts_config_set_index_value(
|
|||
this parameter name */
|
||||
fts_string_t* value) /*!< out: value read from
|
||||
config table */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Increment the value in the config table for column name.
|
||||
@return DB_SUCCESS or error code */
|
||||
|
@ -439,7 +439,7 @@ fts_config_increment_value(
|
|||
const char* name, /*!< in: increment config value
|
||||
for this parameter name */
|
||||
ulint delta) /*!< in: increment by this much */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Increment the per index value in the config table for column name.
|
||||
@return DB_SUCCESS or error code */
|
||||
|
@ -452,7 +452,7 @@ fts_config_increment_index_value(
|
|||
const char* name, /*!< in: increment config value
|
||||
for this parameter name */
|
||||
ulint delta) /*!< in: increment by this much */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************************//**
|
||||
Get an ulint value from the config table.
|
||||
@return DB_SUCCESS or error code */
|
||||
|
@ -464,7 +464,7 @@ fts_config_get_index_ulint(
|
|||
dict_index_t* index, /*!< in: FTS index */
|
||||
const char* name, /*!< in: param name */
|
||||
ulint* int_value) /*!< out: value */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Set an ulint value int the config table.
|
||||
@return DB_SUCCESS or error code */
|
||||
|
@ -476,7 +476,7 @@ fts_config_set_index_ulint(
|
|||
dict_index_t* index, /*!< in: FTS index */
|
||||
const char* name, /*!< in: param name */
|
||||
ulint int_value) /*!< in: value */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Get an ulint value from the config table.
|
||||
@return DB_SUCCESS or error code */
|
||||
|
@ -488,7 +488,7 @@ fts_config_get_ulint(
|
|||
fts_table_t* fts_table, /*!< in: the indexed FTS table */
|
||||
const char* name, /*!< in: param name */
|
||||
ulint* int_value) /*!< out: value */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************************//**
|
||||
Search cache for word.
|
||||
@return the word node vector if found else NULL */
|
||||
|
@ -500,7 +500,7 @@ fts_cache_find_word(
|
|||
index_cache, /*!< in: cache to search */
|
||||
const fts_string_t*
|
||||
text) /*!< in: word to search for */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Check cache for deleted doc id.
|
||||
@return TRUE if deleted */
|
||||
|
@ -511,7 +511,7 @@ fts_cache_is_deleted_doc_id(
|
|||
const fts_cache_t*
|
||||
cache, /*!< in: cache ito search */
|
||||
doc_id_t doc_id) /*!< in: doc id to search for */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Append deleted doc ids to vector and sort the vector. */
|
||||
UNIV_INTERN
|
||||
|
@ -546,7 +546,7 @@ fts_get_total_word_count(
|
|||
trx_t* trx, /*!< in: transaction */
|
||||
dict_index_t* index, /*!< in: for this index */
|
||||
ulint* total) /*!< out: total words */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
#endif
|
||||
/******************************************************************//**
|
||||
Search the index specific cache for a particular FTS index.
|
||||
|
@ -559,7 +559,7 @@ fts_find_index_cache(
|
|||
cache, /*!< in: cache to search */
|
||||
const dict_index_t*
|
||||
index) /*!< in: index to search for */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Write the table id to the given buffer (including final NUL). Buffer must be
|
||||
at least FTS_AUX_MIN_TABLE_ID_LENGTH bytes long.
|
||||
|
@ -570,10 +570,10 @@ fts_write_object_id(
|
|||
/*================*/
|
||||
ib_id_t id, /*!< in: a table/index id */
|
||||
char* str, /*!< in: buffer to write the id to */
|
||||
bool hex_format __attribute__((unused)))
|
||||
bool hex_format MY_ATTRIBUTE((unused)))
|
||||
/*!< in: true for fixed hex format,
|
||||
false for old ambiguous format */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************************//**
|
||||
Read the table id from the string generated by fts_write_object_id().
|
||||
@return TRUE if parse successful */
|
||||
|
@ -583,7 +583,7 @@ fts_read_object_id(
|
|||
/*===============*/
|
||||
ib_id_t* id, /*!< out: a table id */
|
||||
const char* str) /*!< in: buffer to read from */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Get the table id.
|
||||
@return number of bytes written */
|
||||
|
@ -596,7 +596,7 @@ fts_get_table_id(
|
|||
char* table_id) /*!< out: table id, must be at least
|
||||
FTS_AUX_MIN_TABLE_ID_LENGTH bytes
|
||||
long */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Add the table to add to the OPTIMIZER's list. */
|
||||
UNIV_INTERN
|
||||
|
@ -604,7 +604,7 @@ void
|
|||
fts_optimize_add_table(
|
||||
/*===================*/
|
||||
dict_table_t* table) /*!< in: table to add */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************************//**
|
||||
Optimize a table. */
|
||||
UNIV_INTERN
|
||||
|
@ -612,7 +612,7 @@ void
|
|||
fts_optimize_do_table(
|
||||
/*==================*/
|
||||
dict_table_t* table) /*!< in: table to optimize */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************************//**
|
||||
Construct the prefix name of an FTS table.
|
||||
@return own: table name, must be freed with mem_free() */
|
||||
|
@ -622,7 +622,7 @@ fts_get_table_name_prefix(
|
|||
/*======================*/
|
||||
const fts_table_t*
|
||||
fts_table) /*!< in: Auxiliary table type */
|
||||
__attribute__((nonnull, malloc, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, malloc, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Add node positions. */
|
||||
UNIV_INTERN
|
||||
|
@ -633,7 +633,7 @@ fts_cache_node_add_positions(
|
|||
fts_node_t* node, /*!< in: word node */
|
||||
doc_id_t doc_id, /*!< in: doc id */
|
||||
ib_vector_t* positions) /*!< in: fts_token_t::positions */
|
||||
__attribute__((nonnull(2,4)));
|
||||
MY_ATTRIBUTE((nonnull(2,4)));
|
||||
|
||||
/******************************************************************//**
|
||||
Create the config table name for retrieving index specific value.
|
||||
|
@ -644,7 +644,7 @@ fts_config_create_index_param_name(
|
|||
/*===============================*/
|
||||
const char* param, /*!< in: base name of param */
|
||||
const dict_index_t* index) /*!< in: index for config */
|
||||
__attribute__((nonnull, malloc, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, malloc, warn_unused_result));
|
||||
|
||||
#ifndef UNIV_NONINL
|
||||
#include "fts0priv.ic"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2011, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -33,7 +33,7 @@ fts_write_object_id(
|
|||
/*================*/
|
||||
ib_id_t id, /* in: a table/index id */
|
||||
char* str, /* in: buffer to write the id to */
|
||||
bool hex_format __attribute__((unused)))
|
||||
bool hex_format MY_ATTRIBUTE((unused)))
|
||||
/* in: true for fixed hex format,
|
||||
false for old ambiguous format */
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2006, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2006, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -136,7 +136,7 @@ enum durability_properties
|
|||
thd_requested_durability(
|
||||
/*=====================*/
|
||||
const THD* thd) /*!< in: thread handle */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/******************************************************************//**
|
||||
Returns true if the transaction this thread is processing has edited
|
||||
|
@ -177,7 +177,7 @@ innobase_mysql_cmp(
|
|||
const unsigned char* b, /*!< in: data field */
|
||||
unsigned int b_length) /*!< in: data field length,
|
||||
not UNIV_SQL_NULL */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/*****************************************************************//**
|
||||
Log code calls this whenever log has been written and/or flushed up
|
||||
|
@ -205,7 +205,7 @@ get_innobase_type_from_mysql_type(
|
|||
and unsigned integer
|
||||
types are 'unsigned types' */
|
||||
const void* field) /*!< in: MySQL Field */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/******************************************************************//**
|
||||
Get the variable length bounds of the given character set. */
|
||||
|
@ -303,7 +303,7 @@ innobase_get_stmt(
|
|||
/*==============*/
|
||||
THD* thd, /*!< in: MySQL thread handle */
|
||||
size_t* length) /*!< out: length of the SQL statement */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************************//**
|
||||
This function is used to find the storage length in bytes of the first n
|
||||
characters for prefix indexes using a multibyte character set. The function
|
||||
|
@ -329,7 +329,7 @@ enum icp_result
|
|||
innobase_index_cond(
|
||||
/*================*/
|
||||
void* file) /*!< in/out: pointer to ha_innobase */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Returns true if the thread supports XA,
|
||||
global value of innodb_supports_xa if thd is NULL.
|
||||
|
@ -465,7 +465,7 @@ innobase_format_name(
|
|||
const char* name, /*!< in: index or table name
|
||||
to format */
|
||||
ibool is_index_name) /*!< in: index name */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/** Corresponds to Sql_condition:enum_warning_level. */
|
||||
enum ib_log_level_t {
|
||||
|
@ -495,7 +495,7 @@ ib_errf(
|
|||
ib_uint32_t code, /*!< MySQL error code */
|
||||
const char* format, /*!< printf format */
|
||||
...) /*!< Args */
|
||||
__attribute__((format(printf, 4, 5)));
|
||||
MY_ATTRIBUTE((format(printf, 4, 5)));
|
||||
|
||||
/******************************************************************//**
|
||||
Use this when the args are passed to the format string from
|
||||
|
@ -526,7 +526,7 @@ ib_logf(
|
|||
ib_log_level_t level, /*!< in: warning level */
|
||||
const char* format, /*!< printf format */
|
||||
...) /*!< Args */
|
||||
__attribute__((format(printf, 2, 3)));
|
||||
MY_ATTRIBUTE((format(printf, 2, 3)));
|
||||
|
||||
/******************************************************************//**
|
||||
Returns the NUL terminated value of glob_hostname.
|
||||
|
@ -572,7 +572,7 @@ innobase_next_autoinc(
|
|||
ulonglong step, /*!< in: AUTOINC increment step */
|
||||
ulonglong offset, /*!< in: AUTOINC offset */
|
||||
ulonglong max_value) /*!< in: max value for type */
|
||||
__attribute__((pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((pure, warn_unused_result));
|
||||
|
||||
/********************************************************************//**
|
||||
Get the upper limit of the MySQL integral and floating-point type.
|
||||
|
@ -582,7 +582,7 @@ ulonglong
|
|||
innobase_get_int_col_max_value(
|
||||
/*===========================*/
|
||||
const Field* field) /*!< in: MySQL field */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
|
||||
/**********************************************************************
|
||||
Converts an identifier from my_charset_filename to UTF-8 charset. */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2005, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -32,7 +32,7 @@ innobase_rec_to_mysql(
|
|||
const dict_index_t* index, /*!< in: index */
|
||||
const ulint* offsets)/*!< in: rec_get_offsets(
|
||||
rec, index, ...) */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/*************************************************************//**
|
||||
Copies an InnoDB index entry to table->record[0]. */
|
||||
|
@ -43,7 +43,7 @@ innobase_fields_to_mysql(
|
|||
struct TABLE* table, /*!< in/out: MySQL table */
|
||||
const dict_index_t* index, /*!< in: InnoDB index */
|
||||
const dfield_t* fields) /*!< in: InnoDB index fields */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/*************************************************************//**
|
||||
Copies an InnoDB row to table->record[0]. */
|
||||
|
@ -54,7 +54,7 @@ innobase_row_to_mysql(
|
|||
struct TABLE* table, /*!< in/out: MySQL table */
|
||||
const dict_table_t* itab, /*!< in: InnoDB table */
|
||||
const dtuple_t* row) /*!< in: InnoDB row */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/*************************************************************//**
|
||||
Resets table->record[0]. */
|
||||
|
@ -63,7 +63,7 @@ void
|
|||
innobase_rec_reset(
|
||||
/*===============*/
|
||||
struct TABLE* table) /*!< in/out: MySQL table */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/** Generate the next autoinc based on a snapshot of the session
|
||||
auto_increment_increment and auto_increment_offset variables. */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1997, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -118,7 +118,7 @@ void
|
|||
ibuf_mtr_start(
|
||||
/*===========*/
|
||||
mtr_t* mtr) /*!< out: mini-transaction */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/***************************************************************//**
|
||||
Commits an insert buffer mini-transaction. */
|
||||
UNIV_INLINE
|
||||
|
@ -126,7 +126,7 @@ void
|
|||
ibuf_mtr_commit(
|
||||
/*============*/
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Initializes an ibuf bitmap page. */
|
||||
UNIV_INTERN
|
||||
|
@ -252,7 +252,7 @@ ibool
|
|||
ibuf_inside(
|
||||
/*========*/
|
||||
const mtr_t* mtr) /*!< in: mini-transaction */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/***********************************************************************//**
|
||||
Checks if a page address is an ibuf bitmap page (level 3 page) address.
|
||||
@return TRUE if a bitmap page */
|
||||
|
@ -285,7 +285,7 @@ ibuf_page_low(
|
|||
is not one of the fixed address ibuf
|
||||
pages, or NULL, in which case a new
|
||||
transaction is created. */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
#ifdef UNIV_DEBUG
|
||||
/** Checks if a page is a level 2 or 3 page in the ibuf hierarchy of
|
||||
pages. Must not be called when recv_no_ibuf_operations==TRUE.
|
||||
|
@ -364,23 +364,31 @@ void
|
|||
ibuf_delete_for_discarded_space(
|
||||
/*============================*/
|
||||
ulint space); /*!< in: space id */
|
||||
/*********************************************************************//**
|
||||
Contracts insert buffer trees by reading pages to the buffer pool.
|
||||
/** Contract the change buffer by reading pages to the buffer pool.
|
||||
@param[in] full If true, do a full contraction based
|
||||
on PCT_IO(100). If false, the size of contract batch is determined
|
||||
based on the current size of the change buffer.
|
||||
@return a lower limit for the combined size in bytes of entries which
|
||||
will be merged from ibuf trees to the pages read, 0 if ibuf is
|
||||
empty */
|
||||
UNIV_INTERN
|
||||
ulint
|
||||
ibuf_contract_in_background(
|
||||
/*========================*/
|
||||
table_id_t table_id, /*!< in: if merge should be done only
|
||||
for a specific table, for all tables
|
||||
this should be 0 */
|
||||
ibool full); /*!< in: TRUE if the caller wants to
|
||||
do a full contract based on PCT_IO(100).
|
||||
If FALSE then the size of contract
|
||||
batch is determined based on the
|
||||
current size of the ibuf tree. */
|
||||
ibuf_merge_in_background(
|
||||
bool full); /*!< in: TRUE if the caller wants to
|
||||
do a full contract based on PCT_IO(100).
|
||||
If FALSE then the size of contract
|
||||
batch is determined based on the
|
||||
current size of the ibuf tree. */
|
||||
|
||||
/** Contracts insert buffer trees by reading pages referring to space_id
|
||||
to the buffer pool.
|
||||
@returns number of pages merged.*/
|
||||
UNIV_INTERN
|
||||
ulint
|
||||
ibuf_merge_space(
|
||||
/*=============*/
|
||||
ulint space); /*!< in: space id */
|
||||
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/*********************************************************************//**
|
||||
Parses a redo log record of an ibuf bitmap page init.
|
||||
|
@ -445,7 +453,7 @@ ibuf_check_bitmap_on_import(
|
|||
/*========================*/
|
||||
const trx_t* trx, /*!< in: transaction */
|
||||
ulint space_id) /*!< in: tablespace identifier */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
#define IBUF_HEADER_PAGE_NO FSP_IBUF_HEADER_PAGE_NO
|
||||
#define IBUF_TREE_ROOT_PAGE_NO FSP_IBUF_TREE_ROOT_PAGE_NO
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2014, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -266,7 +266,7 @@ lock_rec_expl_exist_on_page(
|
|||
/*========================*/
|
||||
ulint space, /*!< in: space id */
|
||||
ulint page_no)/*!< in: page number */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Checks if locks of other transactions prevent an immediate insert of
|
||||
a record. If they do, first tests if the query thread should anyway
|
||||
|
@ -289,7 +289,7 @@ lock_rec_insert_check_and_lock(
|
|||
inserted record maybe should inherit
|
||||
LOCK_GAP type locks from the successor
|
||||
record */
|
||||
__attribute__((nonnull(2,3,4,6,7), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(2,3,4,6,7), warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Checks if locks of other transactions prevent an immediate modify (update,
|
||||
delete mark, or delete unmark) of a clustered index record. If they do,
|
||||
|
@ -310,7 +310,7 @@ lock_clust_rec_modify_check_and_lock(
|
|||
dict_index_t* index, /*!< in: clustered index */
|
||||
const ulint* offsets,/*!< in: rec_get_offsets(rec, index) */
|
||||
que_thr_t* thr) /*!< in: query thread */
|
||||
__attribute__((warn_unused_result, nonnull));
|
||||
MY_ATTRIBUTE((warn_unused_result, nonnull));
|
||||
/*********************************************************************//**
|
||||
Checks if locks of other transactions prevent an immediate modify
|
||||
(delete mark or delete unmark) of a secondary index record.
|
||||
|
@ -331,7 +331,7 @@ lock_sec_rec_modify_check_and_lock(
|
|||
que_thr_t* thr, /*!< in: query thread
|
||||
(can be NULL if BTR_NO_LOCKING_FLAG) */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((warn_unused_result, nonnull(2,3,4,6)));
|
||||
MY_ATTRIBUTE((warn_unused_result, nonnull(2,3,4,6)));
|
||||
/*********************************************************************//**
|
||||
Like lock_clust_rec_read_check_and_lock(), but reads a
|
||||
secondary index record.
|
||||
|
@ -418,7 +418,7 @@ lock_clust_rec_read_check_and_lock_alt(
|
|||
ulint gap_mode,/*!< in: LOCK_ORDINARY, LOCK_GAP, or
|
||||
LOCK_REC_NOT_GAP */
|
||||
que_thr_t* thr) /*!< in: query thread */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Checks that a record is seen in a consistent read.
|
||||
@return true if sees, or false if an earlier version of the record
|
||||
|
@ -450,7 +450,7 @@ lock_sec_rec_cons_read_sees(
|
|||
should be read or passed over
|
||||
by a read cursor */
|
||||
const read_view_t* view) /*!< in: consistent read view */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Locks the specified database table in the mode given. If the lock cannot
|
||||
be granted immediately, the query thread is put to wait.
|
||||
|
@ -465,7 +465,7 @@ lock_table(
|
|||
in dictionary cache */
|
||||
enum lock_mode mode, /*!< in: lock mode */
|
||||
que_thr_t* thr) /*!< in: query thread */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Creates a table IX lock object for a resurrected transaction. */
|
||||
UNIV_INTERN
|
||||
|
@ -520,7 +520,7 @@ lock_rec_fold(
|
|||
/*==========*/
|
||||
ulint space, /*!< in: space */
|
||||
ulint page_no)/*!< in: page number */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
/*********************************************************************//**
|
||||
Calculates the hash value of a page file address: used in inserting or
|
||||
searching for a lock in the hash table.
|
||||
|
@ -570,7 +570,7 @@ lock_is_table_exclusive(
|
|||
/*====================*/
|
||||
const dict_table_t* table, /*!< in: table */
|
||||
const trx_t* trx) /*!< in: transaction */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Checks if a lock request lock1 has to wait for request lock2.
|
||||
@return TRUE if lock1 has to wait for lock2 to be removed */
|
||||
|
@ -594,7 +594,7 @@ lock_report_trx_id_insanity(
|
|||
dict_index_t* index, /*!< in: index */
|
||||
const ulint* offsets, /*!< in: rec_get_offsets(rec, index) */
|
||||
trx_id_t max_trx_id) /*!< in: trx_sys_get_max_trx_id() */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Prints info of a table lock. */
|
||||
UNIV_INTERN
|
||||
|
@ -621,7 +621,7 @@ lock_print_info_summary(
|
|||
/*====================*/
|
||||
FILE* file, /*!< in: file where to print */
|
||||
ibool nowait) /*!< in: whether to wait for the lock mutex */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Prints info of locks for each transaction. This function assumes that the
|
||||
caller holds the lock mutex and more importantly it will release the lock
|
||||
|
@ -641,7 +641,7 @@ ulint
|
|||
lock_number_of_rows_locked(
|
||||
/*=======================*/
|
||||
const trx_lock_t* trx_lock) /*!< in: transaction locks */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/*******************************************************************//**
|
||||
Gets the type of a lock. Non-inline version for using outside of the
|
||||
|
@ -799,7 +799,7 @@ dberr_t
|
|||
lock_trx_handle_wait(
|
||||
/*=================*/
|
||||
trx_t* trx) /*!< in/out: trx lock state */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Get the number of locks on a table.
|
||||
@return number of locks */
|
||||
|
@ -808,7 +808,7 @@ ulint
|
|||
lock_table_get_n_locks(
|
||||
/*===================*/
|
||||
const dict_table_t* table) /*!< in: table */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#ifdef UNIV_DEBUG
|
||||
/*********************************************************************//**
|
||||
Checks that a transaction id is sensible, i.e., not in the future.
|
||||
|
@ -821,7 +821,7 @@ lock_check_trx_id_sanity(
|
|||
const rec_t* rec, /*!< in: user record */
|
||||
dict_index_t* index, /*!< in: index */
|
||||
const ulint* offsets) /*!< in: rec_get_offsets(rec, index) */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*******************************************************************//**
|
||||
Check if the transaction holds any locks on the sys tables
|
||||
or its records.
|
||||
|
@ -831,7 +831,7 @@ const lock_t*
|
|||
lock_trx_has_sys_table_locks(
|
||||
/*=========================*/
|
||||
const trx_t* trx) /*!< in: transaction to check */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
|
||||
/*******************************************************************//**
|
||||
Check if the transaction holds an exclusive lock on a record.
|
||||
|
@ -844,7 +844,7 @@ lock_trx_has_rec_x_lock(
|
|||
const dict_table_t* table, /*!< in: table to check */
|
||||
const buf_block_t* block, /*!< in: buffer block of the record */
|
||||
ulint heap_no)/*!< in: record heap number */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
#endif /* UNIV_DEBUG */
|
||||
|
||||
/** Lock modes and types */
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2007, 2011, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2015, MariaDB Corporation
|
||||
Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2015, 2016, MariaDB Corporation
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -124,7 +124,7 @@ lock_clust_rec_some_has_impl(
|
|||
const rec_t* rec, /*!< in: user record */
|
||||
const dict_index_t* index, /*!< in: clustered index */
|
||||
const ulint* offsets)/*!< in: rec_get_offsets(rec, index) */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
#ifndef UNIV_NONINL
|
||||
#include "lock0priv.ic"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1997, 2014, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -51,7 +51,7 @@ recv_read_checkpoint_info_for_backup(
|
|||
lsn_t* first_header_lsn)
|
||||
/*!< out: lsn of of the start of the
|
||||
first log file */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*******************************************************************//**
|
||||
Scans the log segment and n_bytes_scanned is set to the length of valid
|
||||
log scanned. */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2009, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -53,7 +53,7 @@ ulint
|
|||
mach_read_from_1(
|
||||
/*=============*/
|
||||
const byte* b) /*!< in: pointer to byte */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/*******************************************************//**
|
||||
The following function is used to store data in two consecutive
|
||||
bytes. We store the most significant byte to the lower address. */
|
||||
|
@ -72,7 +72,7 @@ ulint
|
|||
mach_read_from_2(
|
||||
/*=============*/
|
||||
const byte* b) /*!< in: pointer to two bytes */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
|
||||
/********************************************************//**
|
||||
The following function is used to convert a 16-bit data item
|
||||
|
@ -84,7 +84,7 @@ uint16
|
|||
mach_encode_2(
|
||||
/*==========*/
|
||||
ulint n) /*!< in: integer in machine-dependent format */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
/********************************************************//**
|
||||
The following function is used to convert a 16-bit data item
|
||||
from the canonical format, for fast bytewise equality test
|
||||
|
@ -95,7 +95,7 @@ ulint
|
|||
mach_decode_2(
|
||||
/*==========*/
|
||||
uint16 n) /*!< in: 16-bit integer in canonical format */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
/*******************************************************//**
|
||||
The following function is used to store data in 3 consecutive
|
||||
bytes. We store the most significant byte to the lowest address. */
|
||||
|
@ -114,7 +114,7 @@ ulint
|
|||
mach_read_from_3(
|
||||
/*=============*/
|
||||
const byte* b) /*!< in: pointer to 3 bytes */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/*******************************************************//**
|
||||
The following function is used to store data in four consecutive
|
||||
bytes. We store the most significant byte to the lowest address. */
|
||||
|
@ -133,7 +133,7 @@ ulint
|
|||
mach_read_from_4(
|
||||
/*=============*/
|
||||
const byte* b) /*!< in: pointer to four bytes */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/*********************************************************//**
|
||||
Writes a ulint in a compressed form (1..5 bytes).
|
||||
@return stored size in bytes */
|
||||
|
@ -151,7 +151,7 @@ ulint
|
|||
mach_get_compressed_size(
|
||||
/*=====================*/
|
||||
ulint n) /*!< in: ulint integer to be stored */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
/*********************************************************//**
|
||||
Reads a ulint in a compressed form.
|
||||
@return read integer */
|
||||
|
@ -160,7 +160,7 @@ ulint
|
|||
mach_read_compressed(
|
||||
/*=================*/
|
||||
const byte* b) /*!< in: pointer to memory from where to read */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/*******************************************************//**
|
||||
The following function is used to store data in 6 consecutive
|
||||
bytes. We store the most significant byte to the lowest address. */
|
||||
|
@ -179,7 +179,7 @@ ib_uint64_t
|
|||
mach_read_from_6(
|
||||
/*=============*/
|
||||
const byte* b) /*!< in: pointer to 6 bytes */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/*******************************************************//**
|
||||
The following function is used to store data in 7 consecutive
|
||||
bytes. We store the most significant byte to the lowest address. */
|
||||
|
@ -198,7 +198,7 @@ ib_uint64_t
|
|||
mach_read_from_7(
|
||||
/*=============*/
|
||||
const byte* b) /*!< in: pointer to 7 bytes */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/*******************************************************//**
|
||||
The following function is used to store data in 8 consecutive
|
||||
bytes. We store the most significant byte to the lowest address. */
|
||||
|
@ -217,7 +217,7 @@ ib_uint64_t
|
|||
mach_read_from_8(
|
||||
/*=============*/
|
||||
const byte* b) /*!< in: pointer to 8 bytes */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/*********************************************************//**
|
||||
Writes a 64-bit integer in a compressed form (5..9 bytes).
|
||||
@return size in bytes */
|
||||
|
@ -243,7 +243,7 @@ ib_uint64_t
|
|||
mach_ull_read_compressed(
|
||||
/*=====================*/
|
||||
const byte* b) /*!< in: pointer to memory from where to read */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/*********************************************************//**
|
||||
Writes a 64-bit integer in a compressed form (1..11 bytes).
|
||||
@return size in bytes */
|
||||
|
@ -261,7 +261,7 @@ ulint
|
|||
mach_ull_get_much_compressed_size(
|
||||
/*==============================*/
|
||||
ib_uint64_t n) /*!< in: 64-bit integer to be stored */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
/*********************************************************//**
|
||||
Reads a 64-bit integer in a compressed form.
|
||||
@return the value read */
|
||||
|
@ -270,7 +270,7 @@ ib_uint64_t
|
|||
mach_ull_read_much_compressed(
|
||||
/*==========================*/
|
||||
const byte* b) /*!< in: pointer to memory from where to read */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/*********************************************************//**
|
||||
Reads a ulint in a compressed form if the log record fully contains it.
|
||||
@return pointer to end of the stored field, NULL if not complete */
|
||||
|
@ -301,7 +301,7 @@ double
|
|||
mach_double_read(
|
||||
/*=============*/
|
||||
const byte* b) /*!< in: pointer to memory from where to read */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/*********************************************************//**
|
||||
Writes a double. It is stored in a little-endian format. */
|
||||
UNIV_INLINE
|
||||
|
@ -318,7 +318,7 @@ float
|
|||
mach_float_read(
|
||||
/*============*/
|
||||
const byte* b) /*!< in: pointer to memory from where to read */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/*********************************************************//**
|
||||
Writes a float. It is stored in a little-endian format. */
|
||||
UNIV_INLINE
|
||||
|
@ -336,7 +336,7 @@ mach_read_from_n_little_endian(
|
|||
/*===========================*/
|
||||
const byte* buf, /*!< in: from where to read */
|
||||
ulint buf_size) /*!< in: from how many bytes to read */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/*********************************************************//**
|
||||
Writes a ulint in the little-endian format. */
|
||||
UNIV_INLINE
|
||||
|
@ -354,7 +354,7 @@ ulint
|
|||
mach_read_from_2_little_endian(
|
||||
/*===========================*/
|
||||
const byte* buf) /*!< in: from where to read */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/*********************************************************//**
|
||||
Writes a ulint in the little-endian format. */
|
||||
UNIV_INLINE
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2010, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -353,7 +353,7 @@ mem_heap_printf(
|
|||
/*============*/
|
||||
mem_heap_t* heap, /*!< in: memory heap */
|
||||
const char* format, /*!< in: format string */
|
||||
...) __attribute__ ((format (printf, 2, 3)));
|
||||
...) MY_ATTRIBUTE ((format (printf, 2, 3)));
|
||||
|
||||
#ifdef MEM_PERIODIC_CHECK
|
||||
/******************************************************************//**
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2010, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -476,9 +476,9 @@ void
|
|||
mem_heap_free_func(
|
||||
/*===============*/
|
||||
mem_heap_t* heap, /*!< in, own: heap to be freed */
|
||||
const char* file_name __attribute__((unused)),
|
||||
const char* file_name MY_ATTRIBUTE((unused)),
|
||||
/*!< in: file name where freed */
|
||||
ulint line __attribute__((unused)))
|
||||
ulint line MY_ATTRIBUTE((unused)))
|
||||
{
|
||||
mem_block_t* block;
|
||||
mem_block_t* prev_block;
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2012, Facebook Inc.
|
||||
Copyright (c) 2013, 2016, MariaDB Corporation
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -209,7 +210,7 @@ mtr_start_trx(
|
|||
/*======*/
|
||||
mtr_t* mtr, /*!< out: mini-transaction */
|
||||
trx_t* trx) /*!< in: transaction */
|
||||
__attribute__((nonnull (1)));
|
||||
MY_ATTRIBUTE((nonnull (1)));
|
||||
/***************************************************************//**
|
||||
Starts a mini-transaction. */
|
||||
UNIV_INLINE
|
||||
|
@ -220,7 +221,7 @@ mtr_start(
|
|||
{
|
||||
mtr_start_trx(mtr, NULL);
|
||||
}
|
||||
__attribute__((nonnull))
|
||||
MY_ATTRIBUTE((nonnull))
|
||||
/***************************************************************//**
|
||||
Commits a mini-transaction. */
|
||||
UNIV_INTERN
|
||||
|
@ -228,7 +229,7 @@ void
|
|||
mtr_commit(
|
||||
/*=======*/
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**********************************************************//**
|
||||
Sets and returns a savepoint in mtr.
|
||||
@return savepoint */
|
||||
|
@ -321,7 +322,7 @@ mtr_memo_release(
|
|||
mtr_t* mtr, /*!< in/out: mini-transaction */
|
||||
void* object, /*!< in: object */
|
||||
ulint type) /*!< in: object type: MTR_MEMO_S_LOCK, ... */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#ifdef UNIV_DEBUG
|
||||
# ifndef UNIV_HOTBACKUP
|
||||
/**********************************************************//**
|
||||
|
@ -334,7 +335,7 @@ mtr_memo_contains(
|
|||
mtr_t* mtr, /*!< in: mtr */
|
||||
const void* object, /*!< in: object to search */
|
||||
ulint type) /*!< in: type of object */
|
||||
__attribute__((warn_unused_result, nonnull));
|
||||
MY_ATTRIBUTE((warn_unused_result, nonnull));
|
||||
|
||||
/**********************************************************//**
|
||||
Checks if memo contains the given page.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -37,7 +37,7 @@ ibool
|
|||
mtr_block_dirtied(
|
||||
/*==============*/
|
||||
const buf_block_t* block) /*!< in: block being x-fixed */
|
||||
__attribute__((nonnull,warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull,warn_unused_result));
|
||||
|
||||
/***************************************************************//**
|
||||
Starts a mini-transaction. */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/***********************************************************************
|
||||
|
||||
Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2009, Percona Inc.
|
||||
|
||||
Portions of this file contain modifications contributed and copyrighted
|
||||
|
@ -530,7 +530,7 @@ os_file_create_simple_no_error_handling_func(
|
|||
OS_FILE_READ_ALLOW_DELETE; the last option is
|
||||
used by a backup program reading the file */
|
||||
ibool* success)/*!< out: TRUE if succeed, FALSE if error */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/****************************************************************//**
|
||||
Tries to disable OS caching on an opened file descriptor. */
|
||||
UNIV_INTERN
|
||||
|
@ -564,7 +564,7 @@ os_file_create_func(
|
|||
function source code for the exact rules */
|
||||
ulint type, /*!< in: OS_DATA_FILE or OS_LOG_FILE */
|
||||
ibool* success)/*!< out: TRUE if succeed, FALSE if error */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/***********************************************************************//**
|
||||
Deletes a file. The file has to be closed before calling this.
|
||||
@return TRUE if success */
|
||||
|
@ -630,7 +630,7 @@ pfs_os_file_create_simple_func(
|
|||
ibool* success,/*!< out: TRUE if succeed, FALSE if error */
|
||||
const char* src_file,/*!< in: file name where func invoked */
|
||||
ulint src_line)/*!< in: line where the func invoked */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/****************************************************************//**
|
||||
NOTE! Please use the corresponding macro
|
||||
|
@ -655,7 +655,7 @@ pfs_os_file_create_simple_no_error_handling_func(
|
|||
ibool* success,/*!< out: TRUE if succeed, FALSE if error */
|
||||
const char* src_file,/*!< in: file name where func invoked */
|
||||
ulint src_line)/*!< in: line where the func invoked */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/****************************************************************//**
|
||||
NOTE! Please use the corresponding macro os_file_create(), not directly
|
||||
|
@ -683,7 +683,7 @@ pfs_os_file_create_func(
|
|||
ibool* success,/*!< out: TRUE if succeed, FALSE if error */
|
||||
const char* src_file,/*!< in: file name where func invoked */
|
||||
ulint src_line)/*!< in: line where the func invoked */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/***********************************************************************//**
|
||||
NOTE! Please use the corresponding macro os_file_close(), not directly
|
||||
|
@ -862,7 +862,7 @@ os_offset_t
|
|||
os_file_get_size(
|
||||
/*=============*/
|
||||
os_file_t file) /*!< in: handle to a file */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
/***********************************************************************//**
|
||||
Write the specified number of zeros to a newly created file.
|
||||
@return TRUE if success */
|
||||
|
@ -874,7 +874,7 @@ os_file_set_size(
|
|||
null-terminated string */
|
||||
os_file_t file, /*!< in: handle to a file */
|
||||
os_offset_t size) /*!< in: file size */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/***********************************************************************//**
|
||||
Truncates a file at its current position.
|
||||
@return TRUE if success */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2011, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -125,7 +125,7 @@ os_thread_exit(
|
|||
/*===========*/
|
||||
void* exit_value) /*!< in: exit value; in Windows this void*
|
||||
is cast as a DWORD */
|
||||
UNIV_COLD __attribute__((noreturn));
|
||||
UNIV_COLD MY_ATTRIBUTE((noreturn));
|
||||
/*****************************************************************//**
|
||||
Returns the thread identifier of current thread.
|
||||
@return current thread identifier */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -180,7 +180,7 @@ page_cur_tuple_insert(
|
|||
mem_heap_t** heap, /*!< in/out: pointer to memory heap, or NULL */
|
||||
ulint n_ext, /*!< in: number of externally stored columns */
|
||||
mtr_t* mtr) /*!< in: mini-transaction handle, or NULL */
|
||||
__attribute__((nonnull(1,2,3,4,5), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(1,2,3,4,5), warn_unused_result));
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/***********************************************************//**
|
||||
Inserts a record next to page cursor. Returns pointer to inserted record if
|
||||
|
@ -218,7 +218,7 @@ page_cur_insert_rec_low(
|
|||
const rec_t* rec, /*!< in: pointer to a physical record */
|
||||
ulint* offsets,/*!< in/out: rec_get_offsets(rec, index) */
|
||||
mtr_t* mtr) /*!< in: mini-transaction handle, or NULL */
|
||||
__attribute__((nonnull(1,2,3,4), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(1,2,3,4), warn_unused_result));
|
||||
/***********************************************************//**
|
||||
Inserts a record next to page cursor on a compressed and uncompressed
|
||||
page. Returns pointer to inserted record if succeed, i.e.,
|
||||
|
@ -240,7 +240,7 @@ page_cur_insert_rec_zip(
|
|||
const rec_t* rec, /*!< in: pointer to a physical record */
|
||||
ulint* offsets,/*!< in/out: rec_get_offsets(rec, index) */
|
||||
mtr_t* mtr) /*!< in: mini-transaction handle, or NULL */
|
||||
__attribute__((nonnull(1,2,3,4), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(1,2,3,4), warn_unused_result));
|
||||
/*************************************************************//**
|
||||
Copies records from page to a newly created page, from a given record onward,
|
||||
including that record. Infimum and supremum records are not copied.
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2013, 2016, MariaDB Corporation
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -170,7 +171,7 @@ page_t*
|
|||
page_align(
|
||||
/*=======*/
|
||||
const void* ptr) /*!< in: pointer to page frame */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
/************************************************************//**
|
||||
Gets the offset within a page.
|
||||
@return offset from the start of the page */
|
||||
|
@ -179,7 +180,7 @@ ulint
|
|||
page_offset(
|
||||
/*========*/
|
||||
const void* ptr) /*!< in: pointer to page frame */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
/*************************************************************//**
|
||||
Returns the max trx id field value. */
|
||||
UNIV_INLINE
|
||||
|
@ -237,7 +238,7 @@ page_header_get_offs(
|
|||
/*=================*/
|
||||
const page_t* page, /*!< in: page */
|
||||
ulint field) /*!< in: PAGE_FREE, ... */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
|
||||
/*************************************************************//**
|
||||
Returns the pointer stored in the given header field, or NULL. */
|
||||
|
@ -297,7 +298,7 @@ page_rec_get_nth_const(
|
|||
/*===================*/
|
||||
const page_t* page, /*!< in: page */
|
||||
ulint nth) /*!< in: nth record */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/************************************************************//**
|
||||
Returns the nth record of the record list.
|
||||
This is the inverse function of page_rec_get_n_recs_before().
|
||||
|
@ -308,7 +309,7 @@ page_rec_get_nth(
|
|||
/*=============*/
|
||||
page_t* page, /*< in: page */
|
||||
ulint nth) /*!< in: nth record */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/************************************************************//**
|
||||
|
@ -321,7 +322,7 @@ rec_t*
|
|||
page_get_middle_rec(
|
||||
/*================*/
|
||||
page_t* page) /*!< in: page */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*************************************************************//**
|
||||
Compares a data tuple to a physical record. Differs from the function
|
||||
cmp_dtuple_rec_with_match in the way that the record must reside on an
|
||||
|
@ -534,7 +535,7 @@ bool
|
|||
page_is_leaf(
|
||||
/*=========*/
|
||||
const page_t* page) /*!< in: page */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
#ifndef UNIV_INNOCHECKSUM
|
||||
/************************************************************//**
|
||||
Determine whether the page is empty.
|
||||
|
@ -544,7 +545,7 @@ bool
|
|||
page_is_empty(
|
||||
/*==========*/
|
||||
const page_t* page) /*!< in: page */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/************************************************************//**
|
||||
Determine whether the page contains garbage.
|
||||
@return true if the page contains garbage (PAGE_GARBAGE is not 0) */
|
||||
|
@ -553,7 +554,7 @@ bool
|
|||
page_has_garbage(
|
||||
/*=============*/
|
||||
const page_t* page) /*!< in: page */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/************************************************************//**
|
||||
Gets the pointer to the next record on the page.
|
||||
@return pointer to next record */
|
||||
|
@ -625,7 +626,7 @@ ibool
|
|||
page_rec_is_user_rec_low(
|
||||
/*=====================*/
|
||||
ulint offset) /*!< in: record offset on page */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
/************************************************************//**
|
||||
TRUE if the record is the supremum record on a page.
|
||||
@return TRUE if the supremum record */
|
||||
|
@ -634,7 +635,7 @@ ibool
|
|||
page_rec_is_supremum_low(
|
||||
/*=====================*/
|
||||
ulint offset) /*!< in: record offset on page */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
/************************************************************//**
|
||||
TRUE if the record is the infimum record on a page.
|
||||
@return TRUE if the infimum record */
|
||||
|
@ -643,7 +644,7 @@ ibool
|
|||
page_rec_is_infimum_low(
|
||||
/*====================*/
|
||||
ulint offset) /*!< in: record offset on page */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
|
||||
/************************************************************//**
|
||||
TRUE if the record is a user record on the page.
|
||||
|
@ -653,7 +654,7 @@ ibool
|
|||
page_rec_is_user_rec(
|
||||
/*=================*/
|
||||
const rec_t* rec) /*!< in: record */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
/************************************************************//**
|
||||
TRUE if the record is the supremum record on a page.
|
||||
@return TRUE if the supremum record */
|
||||
|
@ -662,7 +663,7 @@ ibool
|
|||
page_rec_is_supremum(
|
||||
/*=================*/
|
||||
const rec_t* rec) /*!< in: record */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
|
||||
/************************************************************//**
|
||||
TRUE if the record is the infimum record on a page.
|
||||
|
@ -672,7 +673,7 @@ ibool
|
|||
page_rec_is_infimum(
|
||||
/*================*/
|
||||
const rec_t* rec) /*!< in: record */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
/***************************************************************//**
|
||||
Looks for the record which owns the given record.
|
||||
@return the owner record */
|
||||
|
@ -692,7 +693,7 @@ page_rec_write_field(
|
|||
ulint i, /*!< in: index of the field to update */
|
||||
ulint val, /*!< in: value to write */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/************************************************************//**
|
||||
Returns the maximum combined size of records which can be inserted on top
|
||||
|
@ -722,7 +723,7 @@ ulint
|
|||
page_get_free_space_of_empty(
|
||||
/*=========================*/
|
||||
ulint comp) /*!< in: nonzero=compact page format */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
/**********************************************************//**
|
||||
Returns the base extra size of a physical record. This is the
|
||||
size of the fixed header, independent of the record size.
|
||||
|
@ -808,7 +809,7 @@ page_create_zip(
|
|||
ulint level, /*!< in: the B-tree level of the page */
|
||||
trx_id_t max_trx_id, /*!< in: PAGE_MAX_TRX_ID */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/**********************************************************//**
|
||||
Empty a previously created B-tree index page. */
|
||||
UNIV_INTERN
|
||||
|
@ -818,7 +819,7 @@ page_create_empty(
|
|||
buf_block_t* block, /*!< in/out: B-tree block */
|
||||
dict_index_t* index, /*!< in: the index of the page */
|
||||
mtr_t* mtr) /*!< in/out: mini-transaction */
|
||||
__attribute__((nonnull(1,2)));
|
||||
MY_ATTRIBUTE((nonnull(1,2)));
|
||||
/*************************************************************//**
|
||||
Differs from page_copy_rec_list_end, because this function does not
|
||||
touch the lock table and max trx id on page or compress the page.
|
||||
|
@ -857,7 +858,7 @@ page_copy_rec_list_end(
|
|||
rec_t* rec, /*!< in: record on page */
|
||||
dict_index_t* index, /*!< in: record descriptor */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*************************************************************//**
|
||||
Copies records from page to new_page, up to the given record, NOT
|
||||
including that record. Infimum and supremum records are not copied.
|
||||
|
@ -879,7 +880,7 @@ page_copy_rec_list_start(
|
|||
rec_t* rec, /*!< in: record on page */
|
||||
dict_index_t* index, /*!< in: record descriptor */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*************************************************************//**
|
||||
Deletes records from a page from a given record onward, including that record.
|
||||
The infimum and supremum records are not deleted. */
|
||||
|
@ -896,7 +897,7 @@ page_delete_rec_list_end(
|
|||
records in the end of the chain to
|
||||
delete, or ULINT_UNDEFINED if not known */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*************************************************************//**
|
||||
Deletes records from page, up to the given record, NOT including
|
||||
that record. Infimum and supremum records are not deleted. */
|
||||
|
@ -908,7 +909,7 @@ page_delete_rec_list_start(
|
|||
buf_block_t* block, /*!< in: buffer block of the page */
|
||||
dict_index_t* index, /*!< in: record descriptor */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*************************************************************//**
|
||||
Moves record list end to another page. Moved records include
|
||||
split_rec.
|
||||
|
@ -929,7 +930,7 @@ page_move_rec_list_end(
|
|||
rec_t* split_rec, /*!< in: first record to move */
|
||||
dict_index_t* index, /*!< in: record descriptor */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull(1, 2, 4, 5)));
|
||||
MY_ATTRIBUTE((nonnull(1, 2, 4, 5)));
|
||||
/*************************************************************//**
|
||||
Moves record list start to another page. Moved records do not include
|
||||
split_rec.
|
||||
|
@ -949,7 +950,7 @@ page_move_rec_list_start(
|
|||
rec_t* split_rec, /*!< in: first record not to move */
|
||||
dict_index_t* index, /*!< in: record descriptor */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull(1, 2, 4, 5)));
|
||||
MY_ATTRIBUTE((nonnull(1, 2, 4, 5)));
|
||||
/****************************************************************//**
|
||||
Splits a directory slot which owns too many records. */
|
||||
UNIV_INTERN
|
||||
|
@ -960,7 +961,7 @@ page_dir_split_slot(
|
|||
page_zip_des_t* page_zip,/*!< in/out: compressed page whose
|
||||
uncompressed part will be written, or NULL */
|
||||
ulint slot_no)/*!< in: the directory slot */
|
||||
__attribute__((nonnull(1)));
|
||||
MY_ATTRIBUTE((nonnull(1)));
|
||||
/*************************************************************//**
|
||||
Tries to balance the given directory slot with too few records
|
||||
with the upper neighbor, so that there are at least the minimum number
|
||||
|
@ -973,7 +974,7 @@ page_dir_balance_slot(
|
|||
page_t* page, /*!< in/out: index page */
|
||||
page_zip_des_t* page_zip,/*!< in/out: compressed page, or NULL */
|
||||
ulint slot_no)/*!< in: the directory slot */
|
||||
__attribute__((nonnull(1)));
|
||||
MY_ATTRIBUTE((nonnull(1)));
|
||||
/**********************************************************//**
|
||||
Parses a log record of a record list end or start deletion.
|
||||
@return end of log record or NULL */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -131,7 +131,7 @@ page_zip_rec_set_deleted(
|
|||
page_zip_des_t* page_zip,/*!< in/out: compressed page */
|
||||
const byte* rec, /*!< in: record on the uncompressed page */
|
||||
ulint flag) /*!< in: the deleted flag (nonzero=TRUE) */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/**********************************************************************//**
|
||||
Write the "owned" flag of a record on a compressed page. The n_owned field
|
||||
|
@ -143,7 +143,7 @@ page_zip_rec_set_owned(
|
|||
page_zip_des_t* page_zip,/*!< in/out: compressed page */
|
||||
const byte* rec, /*!< in: record on the uncompressed page */
|
||||
ulint flag) /*!< in: the owned flag (nonzero=TRUE) */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/**********************************************************************//**
|
||||
Shift the dense page directory when a record is deleted. */
|
||||
|
@ -156,7 +156,7 @@ page_zip_dir_delete(
|
|||
dict_index_t* index, /*!< in: index of rec */
|
||||
const ulint* offsets,/*!< in: rec_get_offsets(rec) */
|
||||
const byte* free) /*!< in: previous start of the free list */
|
||||
__attribute__((nonnull(1,2,3,4)));
|
||||
MY_ATTRIBUTE((nonnull(1,2,3,4)));
|
||||
|
||||
/**********************************************************************//**
|
||||
Add a slot to the dense page directory. */
|
||||
|
@ -167,5 +167,5 @@ page_zip_dir_add_slot(
|
|||
page_zip_des_t* page_zip, /*!< in/out: compressed page */
|
||||
ulint is_clustered) /*!< in: nonzero for clustered index,
|
||||
zero for others */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#endif
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
|
||||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2005, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2012, Facebook Inc.
|
||||
Copyright (c) 2013, 2016, MariaDB Corporation
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -62,7 +63,7 @@ ulint
|
|||
page_zip_get_size(
|
||||
/*==============*/
|
||||
const page_zip_des_t* page_zip) /*!< in: compressed page */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/**********************************************************************//**
|
||||
Set the size of a compressed page in bytes. */
|
||||
UNIV_INLINE
|
||||
|
@ -85,7 +86,7 @@ page_zip_rec_needs_ext(
|
|||
ulint n_fields, /*!< in: number of fields in the record;
|
||||
ignored if zip_size == 0 */
|
||||
ulint zip_size) /*!< in: compressed page size in bytes, or 0 */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
|
||||
/**********************************************************************//**
|
||||
Determine the guaranteed free space on an empty page.
|
||||
|
@ -96,7 +97,7 @@ page_zip_empty_size(
|
|||
/*================*/
|
||||
ulint n_fields, /*!< in: number of columns in the index */
|
||||
ulint zip_size) /*!< in: compressed page size in bytes */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
/**********************************************************************//**
|
||||
|
@ -132,7 +133,7 @@ page_zip_compress(
|
|||
dict_index_t* index, /*!< in: index of the B-tree node */
|
||||
ulint level, /*!< in: compression level */
|
||||
mtr_t* mtr) /*!< in: mini-transaction, or NULL */
|
||||
__attribute__((nonnull(1,2,3)));
|
||||
MY_ATTRIBUTE((nonnull(1,2,3)));
|
||||
|
||||
/**********************************************************************//**
|
||||
Decompress a page. This function should tolerate errors on the compressed
|
||||
|
@ -150,7 +151,7 @@ page_zip_decompress(
|
|||
FALSE=verify but do not copy some
|
||||
page header fields that should not change
|
||||
after page creation */
|
||||
__attribute__((nonnull(1,2)));
|
||||
MY_ATTRIBUTE((nonnull(1,2)));
|
||||
|
||||
#ifndef UNIV_INNOCHECKSUM
|
||||
#ifdef UNIV_DEBUG
|
||||
|
@ -179,7 +180,7 @@ page_zip_validate_low(
|
|||
const dict_index_t* index, /*!< in: index of the page, if known */
|
||||
ibool sloppy) /*!< in: FALSE=strict,
|
||||
TRUE=ignore the MIN_REC_FLAG */
|
||||
__attribute__((nonnull(1,2)));
|
||||
MY_ATTRIBUTE((nonnull(1,2)));
|
||||
/**********************************************************************//**
|
||||
Check that the compressed and decompressed pages match. */
|
||||
UNIV_INTERN
|
||||
|
@ -189,7 +190,7 @@ page_zip_validate(
|
|||
const page_zip_des_t* page_zip,/*!< in: compressed page */
|
||||
const page_t* page, /*!< in: uncompressed page */
|
||||
const dict_index_t* index) /*!< in: index of the page, if known */
|
||||
__attribute__((nonnull(1,2)));
|
||||
MY_ATTRIBUTE((nonnull(1,2)));
|
||||
#endif /* UNIV_ZIP_DEBUG */
|
||||
|
||||
#ifndef UNIV_INNOCHECKSUM
|
||||
|
@ -203,7 +204,7 @@ page_zip_max_ins_size(
|
|||
/*==================*/
|
||||
const page_zip_des_t* page_zip,/*!< in: compressed page */
|
||||
ibool is_clust)/*!< in: TRUE if clustered index */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
|
||||
/**********************************************************************//**
|
||||
Determine if enough space is available in the modification log.
|
||||
|
@ -217,7 +218,7 @@ page_zip_available(
|
|||
ulint length, /*!< in: combined size of the record */
|
||||
ulint create) /*!< in: nonzero=add the record to
|
||||
the heap */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
|
||||
/**********************************************************************//**
|
||||
Write data to the uncompressed header portion of a page. The data must
|
||||
|
@ -230,7 +231,7 @@ page_zip_write_header(
|
|||
const byte* str, /*!< in: address on the uncompressed page */
|
||||
ulint length, /*!< in: length of the data */
|
||||
mtr_t* mtr) /*!< in: mini-transaction, or NULL */
|
||||
__attribute__((nonnull(1,2)));
|
||||
MY_ATTRIBUTE((nonnull(1,2)));
|
||||
|
||||
/**********************************************************************//**
|
||||
Write an entire record on the compressed page. The data must already
|
||||
|
@ -244,7 +245,7 @@ page_zip_write_rec(
|
|||
dict_index_t* index, /*!< in: the index the record belongs to */
|
||||
const ulint* offsets,/*!< in: rec_get_offsets(rec, index) */
|
||||
ulint create) /*!< in: nonzero=insert, zero=update */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/***********************************************************//**
|
||||
Parses a log record of writing a BLOB pointer of a record.
|
||||
|
@ -273,7 +274,7 @@ page_zip_write_blob_ptr(
|
|||
ulint n, /*!< in: column index */
|
||||
mtr_t* mtr) /*!< in: mini-transaction handle,
|
||||
or NULL if no logging is needed */
|
||||
__attribute__((nonnull(1,2,3,4)));
|
||||
MY_ATTRIBUTE((nonnull(1,2,3,4)));
|
||||
|
||||
/***********************************************************//**
|
||||
Parses a log record of writing the node pointer of a record.
|
||||
|
@ -298,7 +299,7 @@ page_zip_write_node_ptr(
|
|||
ulint size, /*!< in: data size of rec */
|
||||
ulint ptr, /*!< in: node pointer */
|
||||
mtr_t* mtr) /*!< in: mini-transaction, or NULL */
|
||||
__attribute__((nonnull(1,2)));
|
||||
MY_ATTRIBUTE((nonnull(1,2)));
|
||||
|
||||
/**********************************************************************//**
|
||||
Write the trx_id and roll_ptr of a record on a B-tree leaf node page. */
|
||||
|
@ -312,7 +313,7 @@ page_zip_write_trx_id_and_roll_ptr(
|
|||
ulint trx_id_col,/*!< in: column number of TRX_ID in rec */
|
||||
trx_id_t trx_id, /*!< in: transaction identifier */
|
||||
roll_ptr_t roll_ptr)/*!< in: roll_ptr */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/**********************************************************************//**
|
||||
Write the "deleted" flag of a record on a compressed page. The flag must
|
||||
|
@ -324,7 +325,7 @@ page_zip_rec_set_deleted(
|
|||
page_zip_des_t* page_zip,/*!< in/out: compressed page */
|
||||
const byte* rec, /*!< in: record on the uncompressed page */
|
||||
ulint flag) /*!< in: the deleted flag (nonzero=TRUE) */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/**********************************************************************//**
|
||||
Write the "owned" flag of a record on a compressed page. The n_owned field
|
||||
|
@ -336,7 +337,7 @@ page_zip_rec_set_owned(
|
|||
page_zip_des_t* page_zip,/*!< in/out: compressed page */
|
||||
const byte* rec, /*!< in: record on the uncompressed page */
|
||||
ulint flag) /*!< in: the owned flag (nonzero=TRUE) */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/**********************************************************************//**
|
||||
Insert a record to the dense page directory. */
|
||||
|
@ -363,7 +364,7 @@ page_zip_dir_delete(
|
|||
const ulint* offsets, /*!< in: rec_get_offsets(rec) */
|
||||
const byte* free) /*!< in: previous start of
|
||||
the free list */
|
||||
__attribute__((nonnull(1,2,3,4)));
|
||||
MY_ATTRIBUTE((nonnull(1,2,3,4)));
|
||||
|
||||
/**********************************************************************//**
|
||||
Add a slot to the dense page directory. */
|
||||
|
@ -374,7 +375,7 @@ page_zip_dir_add_slot(
|
|||
page_zip_des_t* page_zip, /*!< in/out: compressed page */
|
||||
ulint is_clustered) /*!< in: nonzero for clustered index,
|
||||
zero for others */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/***********************************************************//**
|
||||
Parses a log record of writing to the header of a page.
|
||||
|
@ -402,7 +403,7 @@ page_zip_write_header(
|
|||
const byte* str, /*!< in: address on the uncompressed page */
|
||||
ulint length, /*!< in: length of the data */
|
||||
mtr_t* mtr) /*!< in: mini-transaction, or NULL */
|
||||
__attribute__((nonnull(1,2)));
|
||||
MY_ATTRIBUTE((nonnull(1,2)));
|
||||
|
||||
/**********************************************************************//**
|
||||
Reorganize and compress a page. This is a low-level operation for
|
||||
|
@ -425,7 +426,7 @@ page_zip_reorganize(
|
|||
m_start, m_end, m_nonempty */
|
||||
dict_index_t* index, /*!< in: index of the B-tree node */
|
||||
mtr_t* mtr) /*!< in: mini-transaction */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#endif /* !UNIV_INNOCHECKSUM */
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
|
@ -446,7 +447,7 @@ page_zip_copy_recs(
|
|||
const page_t* src, /*!< in: page */
|
||||
dict_index_t* index, /*!< in: index of the B-tree */
|
||||
mtr_t* mtr) /*!< in: mini-transaction */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
/**********************************************************************//**
|
||||
|
@ -460,7 +461,7 @@ page_zip_parse_compress(
|
|||
byte* end_ptr,/*!< in: buffer end */
|
||||
page_t* page, /*!< out: uncompressed page */
|
||||
page_zip_des_t* page_zip)/*!< out: compressed page */
|
||||
__attribute__((nonnull(1,2)));
|
||||
MY_ATTRIBUTE((nonnull(1,2)));
|
||||
|
||||
/**********************************************************************//**
|
||||
Calculate the compressed page checksum.
|
||||
|
@ -472,7 +473,7 @@ page_zip_calc_checksum(
|
|||
const void* data, /*!< in: compressed page */
|
||||
ulint size, /*!< in: size of compressed page */
|
||||
srv_checksum_algorithm_t algo) /*!< in: algorithm to use */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/**********************************************************************//**
|
||||
Verify a compressed page's checksum.
|
||||
|
@ -508,7 +509,7 @@ page_zip_parse_compress_no_data(
|
|||
page_t* page, /*!< in: uncompressed page */
|
||||
page_zip_des_t* page_zip, /*!< out: compressed page */
|
||||
dict_index_t* index) /*!< in: index */
|
||||
__attribute__((nonnull(1,2)));
|
||||
MY_ATTRIBUTE((nonnull(1,2)));
|
||||
|
||||
/**********************************************************************//**
|
||||
Reset the counters used for filling
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -472,7 +472,7 @@ pars_complete_graph_for_exec(
|
|||
query graph, or NULL for dummy graph */
|
||||
trx_t* trx, /*!< in: transaction handle */
|
||||
mem_heap_t* heap) /*!< in: memory heap from which allocated */
|
||||
__attribute__((nonnull(2,3), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(2,3), warn_unused_result));
|
||||
|
||||
/****************************************************************//**
|
||||
Create parser info struct.
|
||||
|
@ -628,7 +628,7 @@ pars_info_bind_ull_literal(
|
|||
pars_info_t* info, /*!< in: info struct */
|
||||
const char* name, /*!< in: name */
|
||||
const ib_uint64_t* val) /*!< in: value */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/****************************************************************//**
|
||||
Add bound id. */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1997, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -82,7 +82,7 @@ read_view_sees_trx_id(
|
|||
/*==================*/
|
||||
const read_view_t* view, /*!< in: read view */
|
||||
trx_id_t trx_id) /*!< in: trx id */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Prints a read view to stderr. */
|
||||
UNIV_INTERN
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -174,7 +174,7 @@ cmp_dtuple_rec_with_match_low(
|
|||
bytes within the first field not completely
|
||||
matched; when function returns, contains the
|
||||
value for current comparison */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#define cmp_dtuple_rec_with_match(tuple,rec,offsets,fields,bytes) \
|
||||
cmp_dtuple_rec_with_match_low( \
|
||||
tuple,rec,offsets,dtuple_get_n_fields_cmp(tuple),fields,bytes)
|
||||
|
@ -218,7 +218,7 @@ cmp_rec_rec_simple(
|
|||
struct TABLE* table) /*!< in: MySQL table, for reporting
|
||||
duplicate key value if applicable,
|
||||
or NULL */
|
||||
__attribute__((nonnull(1,2,3,4), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(1,2,3,4), warn_unused_result));
|
||||
/*************************************************************//**
|
||||
This function is used to compare two physical records. Only the common
|
||||
first fields are compared, and if an externally stored field is
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -101,7 +101,7 @@ rec_get_next_ptr_const(
|
|||
/*===================*/
|
||||
const rec_t* rec, /*!< in: physical record */
|
||||
ulint comp) /*!< in: nonzero=compact page format */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
The following function is used to get the pointer of the next chained record
|
||||
on the same page.
|
||||
|
@ -112,7 +112,7 @@ rec_get_next_ptr(
|
|||
/*=============*/
|
||||
rec_t* rec, /*!< in: physical record */
|
||||
ulint comp) /*!< in: nonzero=compact page format */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
The following function is used to get the offset of the
|
||||
next chained record on the same page.
|
||||
|
@ -123,7 +123,7 @@ rec_get_next_offs(
|
|||
/*==============*/
|
||||
const rec_t* rec, /*!< in: physical record */
|
||||
ulint comp) /*!< in: nonzero=compact page format */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
The following function is used to set the next record offset field
|
||||
of an old-style record. */
|
||||
|
@ -133,7 +133,7 @@ rec_set_next_offs_old(
|
|||
/*==================*/
|
||||
rec_t* rec, /*!< in: old-style physical record */
|
||||
ulint next) /*!< in: offset of the next record */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************//**
|
||||
The following function is used to set the next record offset field
|
||||
of a new-style record. */
|
||||
|
@ -143,7 +143,7 @@ rec_set_next_offs_new(
|
|||
/*==================*/
|
||||
rec_t* rec, /*!< in/out: new-style physical record */
|
||||
ulint next) /*!< in: offset of the next record */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************//**
|
||||
The following function is used to get the number of fields
|
||||
in an old-style record.
|
||||
|
@ -153,7 +153,7 @@ ulint
|
|||
rec_get_n_fields_old(
|
||||
/*=================*/
|
||||
const rec_t* rec) /*!< in: physical record */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
The following function is used to get the number of fields
|
||||
in a record.
|
||||
|
@ -164,7 +164,7 @@ rec_get_n_fields(
|
|||
/*=============*/
|
||||
const rec_t* rec, /*!< in: physical record */
|
||||
const dict_index_t* index) /*!< in: record descriptor */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
The following function is used to get the number of records owned by the
|
||||
previous directory record.
|
||||
|
@ -174,7 +174,7 @@ ulint
|
|||
rec_get_n_owned_old(
|
||||
/*================*/
|
||||
const rec_t* rec) /*!< in: old-style physical record */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
The following function is used to set the number of owned records. */
|
||||
UNIV_INLINE
|
||||
|
@ -183,7 +183,7 @@ rec_set_n_owned_old(
|
|||
/*================*/
|
||||
rec_t* rec, /*!< in: old-style physical record */
|
||||
ulint n_owned) /*!< in: the number of owned */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************//**
|
||||
The following function is used to get the number of records owned by the
|
||||
previous directory record.
|
||||
|
@ -193,7 +193,7 @@ ulint
|
|||
rec_get_n_owned_new(
|
||||
/*================*/
|
||||
const rec_t* rec) /*!< in: new-style physical record */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
The following function is used to set the number of owned records. */
|
||||
UNIV_INLINE
|
||||
|
@ -203,7 +203,7 @@ rec_set_n_owned_new(
|
|||
rec_t* rec, /*!< in/out: new-style physical record */
|
||||
page_zip_des_t* page_zip,/*!< in/out: compressed page, or NULL */
|
||||
ulint n_owned)/*!< in: the number of owned */
|
||||
__attribute__((nonnull(1)));
|
||||
MY_ATTRIBUTE((nonnull(1)));
|
||||
/******************************************************//**
|
||||
The following function is used to retrieve the info bits of
|
||||
a record.
|
||||
|
@ -214,7 +214,7 @@ rec_get_info_bits(
|
|||
/*==============*/
|
||||
const rec_t* rec, /*!< in: physical record */
|
||||
ulint comp) /*!< in: nonzero=compact page format */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
The following function is used to set the info bits of a record. */
|
||||
UNIV_INLINE
|
||||
|
@ -223,7 +223,7 @@ rec_set_info_bits_old(
|
|||
/*==================*/
|
||||
rec_t* rec, /*!< in: old-style physical record */
|
||||
ulint bits) /*!< in: info bits */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************//**
|
||||
The following function is used to set the info bits of a record. */
|
||||
UNIV_INLINE
|
||||
|
@ -232,7 +232,7 @@ rec_set_info_bits_new(
|
|||
/*==================*/
|
||||
rec_t* rec, /*!< in/out: new-style physical record */
|
||||
ulint bits) /*!< in: info bits */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************//**
|
||||
The following function retrieves the status bits of a new-style record.
|
||||
@return status bits */
|
||||
|
@ -241,7 +241,7 @@ ulint
|
|||
rec_get_status(
|
||||
/*===========*/
|
||||
const rec_t* rec) /*!< in: physical record */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
|
||||
/******************************************************//**
|
||||
The following function is used to set the status bits of a new-style record. */
|
||||
|
@ -251,7 +251,7 @@ rec_set_status(
|
|||
/*===========*/
|
||||
rec_t* rec, /*!< in/out: physical record */
|
||||
ulint bits) /*!< in: info bits */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/******************************************************//**
|
||||
The following function is used to retrieve the info and status
|
||||
|
@ -263,7 +263,7 @@ rec_get_info_and_status_bits(
|
|||
/*=========================*/
|
||||
const rec_t* rec, /*!< in: physical record */
|
||||
ulint comp) /*!< in: nonzero=compact page format */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
The following function is used to set the info and status
|
||||
bits of a record. (Only compact records have status bits.) */
|
||||
|
@ -273,7 +273,7 @@ rec_set_info_and_status_bits(
|
|||
/*=========================*/
|
||||
rec_t* rec, /*!< in/out: compact physical record */
|
||||
ulint bits) /*!< in: info bits */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/******************************************************//**
|
||||
The following function tells if record is delete marked.
|
||||
|
@ -284,7 +284,7 @@ rec_get_deleted_flag(
|
|||
/*=================*/
|
||||
const rec_t* rec, /*!< in: physical record */
|
||||
ulint comp) /*!< in: nonzero=compact page format */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
The following function is used to set the deleted bit. */
|
||||
UNIV_INLINE
|
||||
|
@ -293,7 +293,7 @@ rec_set_deleted_flag_old(
|
|||
/*=====================*/
|
||||
rec_t* rec, /*!< in: old-style physical record */
|
||||
ulint flag) /*!< in: nonzero if delete marked */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************//**
|
||||
The following function is used to set the deleted bit. */
|
||||
UNIV_INLINE
|
||||
|
@ -303,7 +303,7 @@ rec_set_deleted_flag_new(
|
|||
rec_t* rec, /*!< in/out: new-style physical record */
|
||||
page_zip_des_t* page_zip,/*!< in/out: compressed page, or NULL */
|
||||
ulint flag) /*!< in: nonzero if delete marked */
|
||||
__attribute__((nonnull(1)));
|
||||
MY_ATTRIBUTE((nonnull(1)));
|
||||
/******************************************************//**
|
||||
The following function tells if a new-style record is a node pointer.
|
||||
@return TRUE if node pointer */
|
||||
|
@ -312,7 +312,7 @@ ibool
|
|||
rec_get_node_ptr_flag(
|
||||
/*==================*/
|
||||
const rec_t* rec) /*!< in: physical record */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
The following function is used to get the order number
|
||||
of an old-style record in the heap of the index page.
|
||||
|
@ -322,7 +322,7 @@ ulint
|
|||
rec_get_heap_no_old(
|
||||
/*================*/
|
||||
const rec_t* rec) /*!< in: physical record */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
The following function is used to set the heap number
|
||||
field in an old-style record. */
|
||||
|
@ -332,7 +332,7 @@ rec_set_heap_no_old(
|
|||
/*================*/
|
||||
rec_t* rec, /*!< in: physical record */
|
||||
ulint heap_no)/*!< in: the heap number */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************//**
|
||||
The following function is used to get the order number
|
||||
of a new-style record in the heap of the index page.
|
||||
|
@ -342,7 +342,7 @@ ulint
|
|||
rec_get_heap_no_new(
|
||||
/*================*/
|
||||
const rec_t* rec) /*!< in: physical record */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
The following function is used to set the heap number
|
||||
field in a new-style record. */
|
||||
|
@ -352,7 +352,7 @@ rec_set_heap_no_new(
|
|||
/*================*/
|
||||
rec_t* rec, /*!< in/out: physical record */
|
||||
ulint heap_no)/*!< in: the heap number */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************//**
|
||||
The following function is used to test whether the data offsets
|
||||
in the record are stored in one-byte or two-byte format.
|
||||
|
@ -362,7 +362,7 @@ ibool
|
|||
rec_get_1byte_offs_flag(
|
||||
/*====================*/
|
||||
const rec_t* rec) /*!< in: physical record */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
|
||||
/******************************************************//**
|
||||
The following function is used to set the 1-byte offsets flag. */
|
||||
|
@ -372,7 +372,7 @@ rec_set_1byte_offs_flag(
|
|||
/*====================*/
|
||||
rec_t* rec, /*!< in: physical record */
|
||||
ibool flag) /*!< in: TRUE if 1byte form */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/******************************************************//**
|
||||
Returns the offset of nth field end if the record is stored in the 1-byte
|
||||
|
@ -385,7 +385,7 @@ rec_1_get_field_end_info(
|
|||
/*=====================*/
|
||||
const rec_t* rec, /*!< in: record */
|
||||
ulint n) /*!< in: field index */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
|
||||
/******************************************************//**
|
||||
Returns the offset of nth field end if the record is stored in the 2-byte
|
||||
|
@ -399,7 +399,7 @@ rec_2_get_field_end_info(
|
|||
/*=====================*/
|
||||
const rec_t* rec, /*!< in: record */
|
||||
ulint n) /*!< in: field index */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
|
||||
/******************************************************//**
|
||||
Returns nonzero if the field is stored off-page.
|
||||
|
@ -411,7 +411,7 @@ rec_2_is_field_extern(
|
|||
/*==================*/
|
||||
const rec_t* rec, /*!< in: record */
|
||||
ulint n) /*!< in: field index */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
|
||||
/******************************************************//**
|
||||
Determine how many of the first n columns in a compact
|
||||
|
@ -424,7 +424,7 @@ rec_get_n_extern_new(
|
|||
const rec_t* rec, /*!< in: compact physical record */
|
||||
const dict_index_t* index, /*!< in: record descriptor */
|
||||
ulint n) /*!< in: number of columns to scan */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/******************************************************//**
|
||||
The following function determines the offsets to each field
|
||||
|
@ -449,9 +449,9 @@ rec_get_offsets_func(
|
|||
#endif /* UNIV_DEBUG */
|
||||
mem_heap_t** heap) /*!< in/out: memory heap */
|
||||
#ifdef UNIV_DEBUG
|
||||
__attribute__((nonnull(1,2,5,7),warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(1,2,5,7),warn_unused_result));
|
||||
#else /* UNIV_DEBUG */
|
||||
__attribute__((nonnull(1,2,5),warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(1,2,5),warn_unused_result));
|
||||
#endif /* UNIV_DEBUG */
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
|
@ -478,7 +478,7 @@ rec_get_offsets_reverse(
|
|||
0=leaf node */
|
||||
ulint* offsets)/*!< in/out: array consisting of
|
||||
offsets[0] allocated elements */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#ifdef UNIV_DEBUG
|
||||
/************************************************************//**
|
||||
Validates offsets returned by rec_get_offsets().
|
||||
|
@ -491,7 +491,7 @@ rec_offs_validate(
|
|||
const dict_index_t* index, /*!< in: record descriptor or NULL */
|
||||
const ulint* offsets)/*!< in: array returned by
|
||||
rec_get_offsets() */
|
||||
__attribute__((nonnull(3), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(3), warn_unused_result));
|
||||
/************************************************************//**
|
||||
Updates debug data in offsets, in order to avoid bogus
|
||||
rec_offs_validate() failures. */
|
||||
|
@ -503,7 +503,7 @@ rec_offs_make_valid(
|
|||
const dict_index_t* index, /*!< in: record descriptor */
|
||||
ulint* offsets)/*!< in: array returned by
|
||||
rec_get_offsets() */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#else
|
||||
# define rec_offs_make_valid(rec, index, offsets) ((void) 0)
|
||||
#endif /* UNIV_DEBUG */
|
||||
|
@ -520,7 +520,7 @@ rec_get_nth_field_offs_old(
|
|||
ulint n, /*!< in: index of the field */
|
||||
ulint* len) /*!< out: length of the field; UNIV_SQL_NULL
|
||||
if SQL null */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#define rec_get_nth_field_old(rec, n, len) \
|
||||
((rec) + rec_get_nth_field_offs_old(rec, n, len))
|
||||
/************************************************************//**
|
||||
|
@ -534,7 +534,7 @@ rec_get_nth_field_size(
|
|||
/*===================*/
|
||||
const rec_t* rec, /*!< in: record */
|
||||
ulint n) /*!< in: index of the field */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/************************************************************//**
|
||||
The following function is used to get an offset to the nth
|
||||
data field in a record.
|
||||
|
@ -547,7 +547,7 @@ rec_get_nth_field_offs(
|
|||
ulint n, /*!< in: index of the field */
|
||||
ulint* len) /*!< out: length of the field; UNIV_SQL_NULL
|
||||
if SQL null */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#define rec_get_nth_field(rec, offsets, n, len) \
|
||||
((rec) + rec_get_nth_field_offs(offsets, n, len))
|
||||
/******************************************************//**
|
||||
|
@ -559,7 +559,7 @@ ulint
|
|||
rec_offs_comp(
|
||||
/*==========*/
|
||||
const ulint* offsets)/*!< in: array returned by rec_get_offsets() */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
Determine if the offsets are for a record containing
|
||||
externally stored columns.
|
||||
|
@ -569,7 +569,7 @@ ulint
|
|||
rec_offs_any_extern(
|
||||
/*================*/
|
||||
const ulint* offsets)/*!< in: array returned by rec_get_offsets() */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
Determine if the offsets are for a record containing null BLOB pointers.
|
||||
@return first field containing a null BLOB pointer, or NULL if none found */
|
||||
|
@ -579,7 +579,7 @@ rec_offs_any_null_extern(
|
|||
/*=====================*/
|
||||
const rec_t* rec, /*!< in: record */
|
||||
const ulint* offsets) /*!< in: rec_get_offsets(rec) */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
Returns nonzero if the extern bit is set in nth field of rec.
|
||||
@return nonzero if externally stored */
|
||||
|
@ -589,7 +589,7 @@ rec_offs_nth_extern(
|
|||
/*================*/
|
||||
const ulint* offsets,/*!< in: array returned by rec_get_offsets() */
|
||||
ulint n) /*!< in: nth field */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
Returns nonzero if the SQL NULL bit is set in nth field of rec.
|
||||
@return nonzero if SQL NULL */
|
||||
|
@ -599,7 +599,7 @@ rec_offs_nth_sql_null(
|
|||
/*==================*/
|
||||
const ulint* offsets,/*!< in: array returned by rec_get_offsets() */
|
||||
ulint n) /*!< in: nth field */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/******************************************************//**
|
||||
Gets the physical size of a field.
|
||||
@return length of field */
|
||||
|
@ -609,7 +609,7 @@ rec_offs_nth_size(
|
|||
/*==============*/
|
||||
const ulint* offsets,/*!< in: array returned by rec_get_offsets() */
|
||||
ulint n) /*!< in: nth field */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
|
||||
/******************************************************//**
|
||||
Returns the number of extern bits set in a record.
|
||||
|
@ -619,7 +619,7 @@ ulint
|
|||
rec_offs_n_extern(
|
||||
/*==============*/
|
||||
const ulint* offsets)/*!< in: array returned by rec_get_offsets() */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/***********************************************************//**
|
||||
This is used to modify the value of an already existing field in a record.
|
||||
The previous value must have exactly the same size as the new value. If len
|
||||
|
@ -639,7 +639,7 @@ rec_set_nth_field(
|
|||
length as the previous value.
|
||||
If SQL null, previous value must be
|
||||
SQL null. */
|
||||
__attribute__((nonnull(1,2)));
|
||||
MY_ATTRIBUTE((nonnull(1,2)));
|
||||
/**********************************************************//**
|
||||
The following function returns the data size of an old-style physical
|
||||
record, that is the sum of field lengths. SQL null fields
|
||||
|
@ -651,7 +651,7 @@ ulint
|
|||
rec_get_data_size_old(
|
||||
/*==================*/
|
||||
const rec_t* rec) /*!< in: physical record */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/**********************************************************//**
|
||||
The following function returns the number of allocated elements
|
||||
for an array of offsets.
|
||||
|
@ -661,7 +661,7 @@ ulint
|
|||
rec_offs_get_n_alloc(
|
||||
/*=================*/
|
||||
const ulint* offsets)/*!< in: array for rec_get_offsets() */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/**********************************************************//**
|
||||
The following function sets the number of allocated elements
|
||||
for an array of offsets. */
|
||||
|
@ -672,7 +672,7 @@ rec_offs_set_n_alloc(
|
|||
ulint* offsets, /*!< out: array for rec_get_offsets(),
|
||||
must be allocated */
|
||||
ulint n_alloc) /*!< in: number of elements */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#define rec_offs_init(offsets) \
|
||||
rec_offs_set_n_alloc(offsets, (sizeof offsets) / sizeof *offsets)
|
||||
/**********************************************************//**
|
||||
|
@ -683,7 +683,7 @@ ulint
|
|||
rec_offs_n_fields(
|
||||
/*==============*/
|
||||
const ulint* offsets)/*!< in: array returned by rec_get_offsets() */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/**********************************************************//**
|
||||
The following function returns the data size of a physical
|
||||
record, that is the sum of field lengths. SQL null fields
|
||||
|
@ -695,7 +695,7 @@ ulint
|
|||
rec_offs_data_size(
|
||||
/*===============*/
|
||||
const ulint* offsets)/*!< in: array returned by rec_get_offsets() */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/**********************************************************//**
|
||||
Returns the total size of record minus data size of record.
|
||||
The value returned by the function is the distance from record
|
||||
|
@ -706,7 +706,7 @@ ulint
|
|||
rec_offs_extra_size(
|
||||
/*================*/
|
||||
const ulint* offsets)/*!< in: array returned by rec_get_offsets() */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/**********************************************************//**
|
||||
Returns the total size of a physical record.
|
||||
@return size */
|
||||
|
@ -715,7 +715,7 @@ ulint
|
|||
rec_offs_size(
|
||||
/*==========*/
|
||||
const ulint* offsets)/*!< in: array returned by rec_get_offsets() */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
#ifdef UNIV_DEBUG
|
||||
/**********************************************************//**
|
||||
Returns a pointer to the start of the record.
|
||||
|
@ -726,7 +726,7 @@ rec_get_start(
|
|||
/*==========*/
|
||||
const rec_t* rec, /*!< in: pointer to record */
|
||||
const ulint* offsets)/*!< in: array returned by rec_get_offsets() */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
/**********************************************************//**
|
||||
Returns a pointer to the end of the record.
|
||||
@return pointer to end */
|
||||
|
@ -736,7 +736,7 @@ rec_get_end(
|
|||
/*========*/
|
||||
const rec_t* rec, /*!< in: pointer to record */
|
||||
const ulint* offsets)/*!< in: array returned by rec_get_offsets() */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
#else /* UNIV_DEBUG */
|
||||
# define rec_get_start(rec, offsets) ((rec) - rec_offs_extra_size(offsets))
|
||||
# define rec_get_end(rec, offsets) ((rec) + rec_offs_data_size(offsets))
|
||||
|
@ -751,7 +751,7 @@ rec_copy(
|
|||
void* buf, /*!< in: buffer */
|
||||
const rec_t* rec, /*!< in: physical record */
|
||||
const ulint* offsets)/*!< in: array returned by rec_get_offsets() */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/**********************************************************//**
|
||||
Determines the size of a data tuple prefix in a temporary file.
|
||||
|
@ -764,7 +764,7 @@ rec_get_converted_size_temp(
|
|||
const dfield_t* fields, /*!< in: array of data fields */
|
||||
ulint n_fields,/*!< in: number of data fields */
|
||||
ulint* extra) /*!< out: extra size */
|
||||
__attribute__((warn_unused_result, nonnull));
|
||||
MY_ATTRIBUTE((warn_unused_result, nonnull));
|
||||
|
||||
/******************************************************//**
|
||||
Determine the offset to each field in temporary file.
|
||||
|
@ -777,7 +777,7 @@ rec_init_offsets_temp(
|
|||
const dict_index_t* index, /*!< in: record descriptor */
|
||||
ulint* offsets)/*!< in/out: array of offsets;
|
||||
in: n=rec_offs_n_fields(offsets) */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/*********************************************************//**
|
||||
Builds a temporary file record out of a data tuple.
|
||||
|
@ -790,7 +790,7 @@ rec_convert_dtuple_to_temp(
|
|||
const dict_index_t* index, /*!< in: record descriptor */
|
||||
const dfield_t* fields, /*!< in: array of data fields */
|
||||
ulint n_fields) /*!< in: number of fields */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/**************************************************************//**
|
||||
Copies the first n fields of a physical record to a new physical record in
|
||||
|
@ -808,7 +808,7 @@ rec_copy_prefix_to_buf(
|
|||
for the copied prefix,
|
||||
or NULL */
|
||||
ulint* buf_size) /*!< in/out: buffer size */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/************************************************************//**
|
||||
Folds a prefix of a physical record to a ulint.
|
||||
@return the folded value */
|
||||
|
@ -824,7 +824,7 @@ rec_fold(
|
|||
ulint n_bytes, /*!< in: number of bytes to fold
|
||||
in an incomplete last field */
|
||||
index_id_t tree_id) /*!< in: index tree id */
|
||||
__attribute__((nonnull, pure, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/*********************************************************//**
|
||||
Builds a physical record out of a data tuple and
|
||||
|
@ -840,7 +840,7 @@ rec_convert_dtuple_to_rec(
|
|||
const dtuple_t* dtuple, /*!< in: data tuple */
|
||||
ulint n_ext) /*!< in: number of
|
||||
externally stored columns */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/**********************************************************//**
|
||||
Returns the extra size of an old-style physical record if we know its
|
||||
data size and number of fields.
|
||||
|
@ -852,7 +852,7 @@ rec_get_converted_extra_size(
|
|||
ulint data_size, /*!< in: data size */
|
||||
ulint n_fields, /*!< in: number of fields */
|
||||
ulint n_ext) /*!< in: number of externally stored columns */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
/**********************************************************//**
|
||||
Determines the size of a data tuple prefix in ROW_FORMAT=COMPACT.
|
||||
@return total size */
|
||||
|
@ -864,7 +864,7 @@ rec_get_converted_size_comp_prefix(
|
|||
const dfield_t* fields, /*!< in: array of data fields */
|
||||
ulint n_fields,/*!< in: number of data fields */
|
||||
ulint* extra) /*!< out: extra size */
|
||||
__attribute__((warn_unused_result, nonnull(1,2)));
|
||||
MY_ATTRIBUTE((warn_unused_result, nonnull(1,2)));
|
||||
/**********************************************************//**
|
||||
Determines the size of a data tuple in ROW_FORMAT=COMPACT.
|
||||
@return total size */
|
||||
|
@ -880,7 +880,7 @@ rec_get_converted_size_comp(
|
|||
const dfield_t* fields, /*!< in: array of data fields */
|
||||
ulint n_fields,/*!< in: number of data fields */
|
||||
ulint* extra) /*!< out: extra size */
|
||||
__attribute__((nonnull(1,3)));
|
||||
MY_ATTRIBUTE((nonnull(1,3)));
|
||||
/**********************************************************//**
|
||||
The following function returns the size of a data tuple when converted to
|
||||
a physical record.
|
||||
|
@ -892,7 +892,7 @@ rec_get_converted_size(
|
|||
dict_index_t* index, /*!< in: record descriptor */
|
||||
const dtuple_t* dtuple, /*!< in: data tuple */
|
||||
ulint n_ext) /*!< in: number of externally stored columns */
|
||||
__attribute__((warn_unused_result, nonnull));
|
||||
MY_ATTRIBUTE((warn_unused_result, nonnull));
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/**************************************************************//**
|
||||
Copies the first n fields of a physical record to a data tuple.
|
||||
|
@ -907,7 +907,7 @@ rec_copy_prefix_to_dtuple(
|
|||
ulint n_fields, /*!< in: number of fields
|
||||
to copy */
|
||||
mem_heap_t* heap) /*!< in: memory heap */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/***************************************************************//**
|
||||
Validates the consistency of a physical record.
|
||||
|
@ -918,7 +918,7 @@ rec_validate(
|
|||
/*=========*/
|
||||
const rec_t* rec, /*!< in: physical record */
|
||||
const ulint* offsets)/*!< in: array returned by rec_get_offsets() */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/***************************************************************//**
|
||||
Prints an old-style physical record. */
|
||||
UNIV_INTERN
|
||||
|
@ -927,7 +927,7 @@ rec_print_old(
|
|||
/*==========*/
|
||||
FILE* file, /*!< in: file where to print */
|
||||
const rec_t* rec) /*!< in: physical record */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
/***************************************************************//**
|
||||
Prints a physical record in ROW_FORMAT=COMPACT. Ignores the
|
||||
|
@ -939,7 +939,7 @@ rec_print_comp(
|
|||
FILE* file, /*!< in: file where to print */
|
||||
const rec_t* rec, /*!< in: physical record */
|
||||
const ulint* offsets)/*!< in: array returned by rec_get_offsets() */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/***************************************************************//**
|
||||
Prints a physical record. */
|
||||
UNIV_INTERN
|
||||
|
@ -949,7 +949,7 @@ rec_print_new(
|
|||
FILE* file, /*!< in: file where to print */
|
||||
const rec_t* rec, /*!< in: physical record */
|
||||
const ulint* offsets)/*!< in: array returned by rec_get_offsets() */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/***************************************************************//**
|
||||
Prints a physical record. */
|
||||
UNIV_INTERN
|
||||
|
@ -959,7 +959,7 @@ rec_print(
|
|||
FILE* file, /*!< in: file where to print */
|
||||
const rec_t* rec, /*!< in: physical record */
|
||||
const dict_index_t* index) /*!< in: record descriptor */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
# ifdef UNIV_DEBUG
|
||||
/************************************************************//**
|
||||
|
@ -971,7 +971,7 @@ rec_get_trx_id(
|
|||
/*===========*/
|
||||
const rec_t* rec, /*!< in: record */
|
||||
const dict_index_t* index) /*!< in: clustered index */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
# endif /* UNIV_DEBUG */
|
||||
#endif /* UNIV_HOTBACKUP */
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -1540,7 +1540,8 @@ rec_copy(
|
|||
ulint extra_len;
|
||||
ulint data_len;
|
||||
|
||||
ut_ad(rec && buf);
|
||||
ut_ad(rec != NULL);
|
||||
ut_ad(buf != NULL);
|
||||
ut_ad(rec_offs_validate(rec, NULL, offsets));
|
||||
ut_ad(rec_validate(rec, offsets));
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2010, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2010, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -187,7 +187,7 @@ row_fts_psort_info_init(
|
|||
instantiated */
|
||||
fts_psort_t** merge) /*!< out: parallel merge info
|
||||
to be instantiated */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/********************************************************************//**
|
||||
Clean up and deallocate FTS parallel sort structures, and close
|
||||
temparary merge sort files */
|
||||
|
@ -275,5 +275,5 @@ row_fts_merge_insert(
|
|||
fts_psort_t* psort_info, /*!< parallel sort info */
|
||||
ulint id) /* !< in: which auxiliary table's data
|
||||
to insert to */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#endif /* row0ftsort_h */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2012, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -46,7 +46,7 @@ row_import_for_mysql(
|
|||
dict_table_t* table, /*!< in/out: table */
|
||||
row_prebuilt_t* prebuilt) /*!< in: prebuilt struct
|
||||
in MySQL */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/*****************************************************************//**
|
||||
Update the DICT_TF2_DISCARDED flag in SYS_TABLES.
|
||||
|
@ -64,7 +64,7 @@ row_import_update_discarded_flag(
|
|||
bool dict_locked) /*!< in: Set to true if the
|
||||
caller already owns the
|
||||
dict_sys_t:: mutex. */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/*****************************************************************//**
|
||||
Update the (space, root page) of a table's indexes from the values
|
||||
|
@ -83,7 +83,7 @@ row_import_update_index_root(
|
|||
bool dict_locked) /*!< in: Set to true if the
|
||||
caller already owns the
|
||||
dict_sys_t:: mutex. */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
#ifndef UNIV_NONINL
|
||||
#include "row0import.ic"
|
||||
#endif
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -53,7 +53,7 @@ row_ins_check_foreign_constraint(
|
|||
table, else the referenced table */
|
||||
dtuple_t* entry, /*!< in: index entry for index */
|
||||
que_thr_t* thr) /*!< in: query thread */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Creates an insert node struct.
|
||||
@return own: insert node struct */
|
||||
|
@ -98,7 +98,7 @@ row_ins_clust_index_entry_low(
|
|||
dtuple_t* entry, /*!< in/out: index entry to insert */
|
||||
ulint n_ext, /*!< in: number of externally stored columns */
|
||||
que_thr_t* thr) /*!< in: query thread or NULL */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/***************************************************************//**
|
||||
Tries to insert an entry into a secondary index. If a record with exactly the
|
||||
same fields is found, the other record is necessarily marked deleted.
|
||||
|
@ -123,7 +123,7 @@ row_ins_sec_index_entry_low(
|
|||
trx_id_t trx_id, /*!< in: PAGE_MAX_TRX_ID during
|
||||
row_log_table_apply(), or 0 */
|
||||
que_thr_t* thr) /*!< in: query thread */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/***************************************************************//**
|
||||
Tries to insert the externally stored fields (off-page columns)
|
||||
of a clustered index entry.
|
||||
|
@ -142,7 +142,7 @@ row_ins_index_entry_big_rec_func(
|
|||
const void* thd, /*!< in: connection, or NULL */
|
||||
#endif /* DBUG_OFF */
|
||||
ulint line) /*!< in: line number of caller */
|
||||
__attribute__((nonnull(1,2,3,4,5,6), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(1,2,3,4,5,6), warn_unused_result));
|
||||
#ifdef DBUG_OFF
|
||||
# define row_ins_index_entry_big_rec(e,big,ofs,heap,index,thd,file,line) \
|
||||
row_ins_index_entry_big_rec_func(e,big,ofs,heap,index,file,line)
|
||||
|
@ -164,7 +164,7 @@ row_ins_clust_index_entry(
|
|||
dtuple_t* entry, /*!< in/out: index entry to insert */
|
||||
que_thr_t* thr, /*!< in: query thread */
|
||||
ulint n_ext) /*!< in: number of externally stored columns */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/***************************************************************//**
|
||||
Inserts an entry into a secondary index. Tries first optimistic,
|
||||
then pessimistic descent down the tree. If the entry matches enough
|
||||
|
@ -178,7 +178,7 @@ row_ins_sec_index_entry(
|
|||
dict_index_t* index, /*!< in: secondary index */
|
||||
dtuple_t* entry, /*!< in/out: index entry to insert */
|
||||
que_thr_t* thr) /*!< in: query thread */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/***********************************************************//**
|
||||
Inserts a row to a table. This is a high-level function used in
|
||||
SQL execution graphs.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2011, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -54,7 +54,7 @@ row_log_allocate(
|
|||
const ulint* col_map,/*!< in: mapping of old column
|
||||
numbers to new ones, or NULL if !table */
|
||||
const char* path) /*!< in: where to create temporary file */
|
||||
__attribute__((nonnull(1), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(1), warn_unused_result));
|
||||
|
||||
/******************************************************//**
|
||||
Free the row log for an index that was being created online. */
|
||||
|
@ -63,7 +63,7 @@ void
|
|||
row_log_free(
|
||||
/*=========*/
|
||||
row_log_t*& log) /*!< in,own: row log */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/******************************************************//**
|
||||
Free the row log for an index on which online creation was aborted. */
|
||||
|
@ -72,7 +72,7 @@ void
|
|||
row_log_abort_sec(
|
||||
/*==============*/
|
||||
dict_index_t* index) /*!< in/out: index (x-latched) */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/******************************************************//**
|
||||
Try to log an operation to a secondary index that is
|
||||
|
@ -87,7 +87,7 @@ row_log_online_op_try(
|
|||
const dtuple_t* tuple, /*!< in: index tuple */
|
||||
trx_id_t trx_id) /*!< in: transaction ID for insert,
|
||||
or 0 for delete */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/******************************************************//**
|
||||
Logs an operation to a secondary index that is (or was) being created. */
|
||||
UNIV_INTERN
|
||||
|
@ -98,7 +98,7 @@ row_log_online_op(
|
|||
const dtuple_t* tuple, /*!< in: index tuple */
|
||||
trx_id_t trx_id) /*!< in: transaction ID for insert,
|
||||
or 0 for delete */
|
||||
UNIV_COLD __attribute__((nonnull));
|
||||
UNIV_COLD MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/******************************************************//**
|
||||
Gets the error status of the online index rebuild log.
|
||||
|
@ -109,7 +109,7 @@ row_log_table_get_error(
|
|||
/*====================*/
|
||||
const dict_index_t* index) /*!< in: clustered index of a table
|
||||
that is being rebuilt online */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/******************************************************//**
|
||||
Logs a delete operation to a table that is being rebuilt.
|
||||
|
@ -125,7 +125,7 @@ row_log_table_delete(
|
|||
const ulint* offsets,/*!< in: rec_get_offsets(rec,index) */
|
||||
const byte* sys) /*!< in: DB_TRX_ID,DB_ROLL_PTR that should
|
||||
be logged, or NULL to use those in rec */
|
||||
UNIV_COLD __attribute__((nonnull(1,2,3)));
|
||||
UNIV_COLD MY_ATTRIBUTE((nonnull(1,2,3)));
|
||||
|
||||
/******************************************************//**
|
||||
Logs an update operation to a table that is being rebuilt.
|
||||
|
@ -141,7 +141,7 @@ row_log_table_update(
|
|||
const ulint* offsets,/*!< in: rec_get_offsets(rec,index) */
|
||||
const dtuple_t* old_pk) /*!< in: row_log_table_get_pk()
|
||||
before the update */
|
||||
UNIV_COLD __attribute__((nonnull(1,2,3)));
|
||||
UNIV_COLD MY_ATTRIBUTE((nonnull(1,2,3)));
|
||||
|
||||
/******************************************************//**
|
||||
Constructs the old PRIMARY KEY and DB_TRX_ID,DB_ROLL_PTR
|
||||
|
@ -161,7 +161,7 @@ row_log_table_get_pk(
|
|||
byte* sys, /*!< out: DB_TRX_ID,DB_ROLL_PTR for
|
||||
row_log_table_delete(), or NULL */
|
||||
mem_heap_t** heap) /*!< in/out: memory heap where allocated */
|
||||
UNIV_COLD __attribute__((nonnull(1,2,5), warn_unused_result));
|
||||
UNIV_COLD MY_ATTRIBUTE((nonnull(1,2,5), warn_unused_result));
|
||||
|
||||
/******************************************************//**
|
||||
Logs an insert to a table that is being rebuilt.
|
||||
|
@ -175,7 +175,7 @@ row_log_table_insert(
|
|||
dict_index_t* index, /*!< in/out: clustered index, S-latched
|
||||
or X-latched */
|
||||
const ulint* offsets)/*!< in: rec_get_offsets(rec,index) */
|
||||
UNIV_COLD __attribute__((nonnull));
|
||||
UNIV_COLD MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************//**
|
||||
Notes that a BLOB is being freed during online ALTER TABLE. */
|
||||
UNIV_INTERN
|
||||
|
@ -184,7 +184,7 @@ row_log_table_blob_free(
|
|||
/*====================*/
|
||||
dict_index_t* index, /*!< in/out: clustered index, X-latched */
|
||||
ulint page_no)/*!< in: starting page number of the BLOB */
|
||||
UNIV_COLD __attribute__((nonnull));
|
||||
UNIV_COLD MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************//**
|
||||
Notes that a BLOB is being allocated during online ALTER TABLE. */
|
||||
UNIV_INTERN
|
||||
|
@ -193,7 +193,7 @@ row_log_table_blob_alloc(
|
|||
/*=====================*/
|
||||
dict_index_t* index, /*!< in/out: clustered index, X-latched */
|
||||
ulint page_no)/*!< in: starting page number of the BLOB */
|
||||
UNIV_COLD __attribute__((nonnull));
|
||||
UNIV_COLD MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************//**
|
||||
Apply the row_log_table log to a table upon completing rebuild.
|
||||
@return DB_SUCCESS, or error code on failure */
|
||||
|
@ -206,7 +206,7 @@ row_log_table_apply(
|
|||
/*!< in: old table */
|
||||
struct TABLE* table) /*!< in/out: MySQL table
|
||||
(for reporting duplicates) */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/******************************************************//**
|
||||
Get the latest transaction ID that has invoked row_log_online_op()
|
||||
|
@ -217,7 +217,7 @@ trx_id_t
|
|||
row_log_get_max_trx(
|
||||
/*================*/
|
||||
dict_index_t* index) /*!< in: index, must be locked */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/******************************************************//**
|
||||
Merge the row log to the index upon completing index creation.
|
||||
|
@ -231,7 +231,7 @@ row_log_apply(
|
|||
dict_index_t* index, /*!< in/out: secondary index */
|
||||
struct TABLE* table) /*!< in/out: MySQL table
|
||||
(for reporting duplicates) */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
#ifndef UNIV_NONINL
|
||||
#include "row0log.ic"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2005, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -128,7 +128,7 @@ row_merge_dup_report(
|
|||
/*=================*/
|
||||
row_merge_dup_t* dup, /*!< in/out: for reporting duplicates */
|
||||
const dfield_t* entry) /*!< in: duplicate index entry */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Sets an exclusive lock on a table, for the duration of creating indexes.
|
||||
@return error code or DB_SUCCESS */
|
||||
|
@ -139,7 +139,7 @@ row_merge_lock_table(
|
|||
trx_t* trx, /*!< in/out: transaction */
|
||||
dict_table_t* table, /*!< in: table to lock */
|
||||
enum lock_mode mode) /*!< in: LOCK_X or LOCK_S */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Drop indexes that were created before an error occurred.
|
||||
The data dictionary must have been locked exclusively by the caller,
|
||||
|
@ -150,7 +150,7 @@ row_merge_drop_indexes_dict(
|
|||
/*========================*/
|
||||
trx_t* trx, /*!< in/out: dictionary transaction */
|
||||
table_id_t table_id)/*!< in: table identifier */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Drop those indexes which were created before an error occurred.
|
||||
The data dictionary must have been locked exclusively by the caller,
|
||||
|
@ -163,7 +163,7 @@ row_merge_drop_indexes(
|
|||
dict_table_t* table, /*!< in/out: table containing the indexes */
|
||||
ibool locked) /*!< in: TRUE=table locked,
|
||||
FALSE=may need to do a lazy drop */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Drop all partially created indexes during crash recovery. */
|
||||
UNIV_INTERN
|
||||
|
@ -179,7 +179,7 @@ UNIV_INTERN
|
|||
int
|
||||
row_merge_file_create_low(
|
||||
const char* path)
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Destroy a merge file. And de-register the file from Performance Schema
|
||||
if UNIV_PFS_IO is defined. */
|
||||
|
@ -215,7 +215,7 @@ row_merge_rename_tables_dict(
|
|||
old_table->name */
|
||||
const char* tmp_name, /*!< in: new name for old_table */
|
||||
trx_t* trx) /*!< in/out: dictionary transaction */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/*********************************************************************//**
|
||||
Rename an index in the dictionary that was created. The data
|
||||
|
@ -229,7 +229,7 @@ row_merge_rename_index_to_add(
|
|||
trx_t* trx, /*!< in/out: transaction */
|
||||
table_id_t table_id, /*!< in: table identifier */
|
||||
index_id_t index_id) /*!< in: index identifier */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Rename an index in the dictionary that is to be dropped. The data
|
||||
dictionary must have been locked exclusively by the caller, because
|
||||
|
@ -242,7 +242,7 @@ row_merge_rename_index_to_drop(
|
|||
trx_t* trx, /*!< in/out: transaction */
|
||||
table_id_t table_id, /*!< in: table identifier */
|
||||
index_id_t index_id) /*!< in: index identifier */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Create the index and load in to the dictionary.
|
||||
@return index, or NULL on error */
|
||||
|
@ -278,7 +278,7 @@ row_merge_drop_table(
|
|||
/*=================*/
|
||||
trx_t* trx, /*!< in: transaction */
|
||||
dict_table_t* table) /*!< in: table instance to drop */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Build indexes on a table by reading a clustered index,
|
||||
creating a temporary file containing index entries, merge sorting
|
||||
|
@ -311,7 +311,7 @@ row_merge_build_indexes(
|
|||
AUTO_INCREMENT column, or
|
||||
ULINT_UNDEFINED if none is added */
|
||||
ib_sequence_t& sequence) /*!< in/out: autoinc sequence */
|
||||
__attribute__((nonnull(1,2,3,5,6,8), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(1,2,3,5,6,8), warn_unused_result));
|
||||
/********************************************************************//**
|
||||
Write a buffer to a block. */
|
||||
UNIV_INTERN
|
||||
|
@ -321,7 +321,7 @@ row_merge_buf_write(
|
|||
const row_merge_buf_t* buf, /*!< in: sorted buffer */
|
||||
const merge_file_t* of, /*!< in: output file */
|
||||
row_merge_block_t* block) /*!< out: buffer for writing to file */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/********************************************************************//**
|
||||
Sort a buffer. */
|
||||
UNIV_INTERN
|
||||
|
@ -331,7 +331,7 @@ row_merge_buf_sort(
|
|||
row_merge_buf_t* buf, /*!< in/out: sort buffer */
|
||||
row_merge_dup_t* dup) /*!< in/out: reporter of duplicates
|
||||
(NULL if non-unique index) */
|
||||
__attribute__((nonnull(1)));
|
||||
MY_ATTRIBUTE((nonnull(1)));
|
||||
/********************************************************************//**
|
||||
Write a merge block to the file system.
|
||||
@return TRUE if request was successful, FALSE if fail */
|
||||
|
@ -351,7 +351,7 @@ row_merge_buf_t*
|
|||
row_merge_buf_empty(
|
||||
/*================*/
|
||||
row_merge_buf_t* buf) /*!< in,own: sort buffer */
|
||||
__attribute__((warn_unused_result, nonnull));
|
||||
MY_ATTRIBUTE((warn_unused_result, nonnull));
|
||||
|
||||
/** Create a merge file in the given location.
|
||||
@param[out] merge_file merge file structure
|
||||
|
@ -377,7 +377,7 @@ row_merge_sort(
|
|||
index entries */
|
||||
row_merge_block_t* block, /*!< in/out: 3 buffers */
|
||||
int* tmpfd) /*!< in/out: temporary file handle */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Allocate a sort buffer.
|
||||
@return own: sort buffer */
|
||||
|
@ -386,7 +386,7 @@ row_merge_buf_t*
|
|||
row_merge_buf_create(
|
||||
/*=================*/
|
||||
dict_index_t* index) /*!< in: secondary index */
|
||||
__attribute__((warn_unused_result, nonnull, malloc));
|
||||
MY_ATTRIBUTE((warn_unused_result, nonnull, malloc));
|
||||
/*********************************************************************//**
|
||||
Deallocate a sort buffer. */
|
||||
UNIV_INTERN
|
||||
|
@ -394,7 +394,7 @@ void
|
|||
row_merge_buf_free(
|
||||
/*===============*/
|
||||
row_merge_buf_t* buf) /*!< in,own: sort buffer to be freed */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Destroy a merge file. */
|
||||
UNIV_INTERN
|
||||
|
@ -402,7 +402,7 @@ void
|
|||
row_merge_file_destroy(
|
||||
/*===================*/
|
||||
merge_file_t* merge_file) /*!< in/out: merge file structure */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/********************************************************************//**
|
||||
Read a merge block from the file system.
|
||||
@return TRUE if request was successful, FALSE if fail */
|
||||
|
@ -432,5 +432,5 @@ row_merge_read_rec(
|
|||
or NULL on end of list
|
||||
(non-NULL on I/O error) */
|
||||
ulint* offsets)/*!< out: offsets of mrec */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
#endif /* row0merge.h */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -167,7 +167,7 @@ row_mysql_handle_errors(
|
|||
trx_t* trx, /*!< in: transaction */
|
||||
que_thr_t* thr, /*!< in: query thread, or NULL */
|
||||
trx_savept_t* savept) /*!< in: savepoint, or NULL */
|
||||
__attribute__((nonnull(1,2)));
|
||||
MY_ATTRIBUTE((nonnull(1,2)));
|
||||
/********************************************************************//**
|
||||
Create a prebuilt struct for a MySQL table handle.
|
||||
@return own: a prebuilt struct */
|
||||
|
@ -209,7 +209,7 @@ row_lock_table_autoinc_for_mysql(
|
|||
/*=============================*/
|
||||
row_prebuilt_t* prebuilt) /*!< in: prebuilt struct in the MySQL
|
||||
table handle */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Sets a table lock on the table mentioned in prebuilt.
|
||||
@return error code or DB_SUCCESS */
|
||||
|
@ -225,7 +225,7 @@ row_lock_table_for_mysql(
|
|||
prebuilt->select_lock_type */
|
||||
ulint mode) /*!< in: lock mode of table
|
||||
(ignored if table==NULL) */
|
||||
__attribute__((nonnull(1)));
|
||||
MY_ATTRIBUTE((nonnull(1)));
|
||||
/*********************************************************************//**
|
||||
Does an insert for MySQL.
|
||||
@return error code or DB_SUCCESS */
|
||||
|
@ -236,7 +236,7 @@ row_insert_for_mysql(
|
|||
byte* mysql_rec, /*!< in: row in the MySQL format */
|
||||
row_prebuilt_t* prebuilt) /*!< in: prebuilt struct in MySQL
|
||||
handle */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Builds a dummy query graph used in selects. */
|
||||
UNIV_INTERN
|
||||
|
@ -276,7 +276,7 @@ row_update_for_mysql(
|
|||
the MySQL format */
|
||||
row_prebuilt_t* prebuilt) /*!< in: prebuilt struct in MySQL
|
||||
handle */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
This can only be used when srv_locks_unsafe_for_binlog is TRUE or this
|
||||
session is using a READ COMMITTED or READ UNCOMMITTED isolation level.
|
||||
|
@ -297,7 +297,7 @@ row_unlock_for_mysql(
|
|||
the records under pcur and
|
||||
clust_pcur, and we do not need
|
||||
to reposition the cursors. */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Checks if a table name contains the string "/#sql" which denotes temporary
|
||||
tables in MySQL.
|
||||
|
@ -306,7 +306,7 @@ UNIV_INTERN
|
|||
bool
|
||||
row_is_mysql_tmp_table_name(
|
||||
/*========================*/
|
||||
const char* name) __attribute__((warn_unused_result));
|
||||
const char* name) MY_ATTRIBUTE((warn_unused_result));
|
||||
/*!< in: table name in the form
|
||||
'database/tablename' */
|
||||
|
||||
|
@ -331,7 +331,7 @@ row_update_cascade_for_mysql(
|
|||
upd_node_t* node, /*!< in: update node used in the cascade
|
||||
or set null operation */
|
||||
dict_table_t* table) /*!< in: table where we do the operation */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Locks the data dictionary exclusively for performing a table create or other
|
||||
data dictionary modification operation. */
|
||||
|
@ -387,7 +387,7 @@ row_create_table_for_mysql(
|
|||
added to the data dictionary cache) */
|
||||
trx_t* trx, /*!< in/out: transaction */
|
||||
bool commit) /*!< in: if true, commit the transaction */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Does an index creation operation for MySQL. TODO: currently failure
|
||||
to create an index results in dropping the whole table! This is no problem
|
||||
|
@ -406,7 +406,7 @@ row_create_index_for_mysql(
|
|||
index columns, which are
|
||||
then checked for not being too
|
||||
large. */
|
||||
__attribute__((nonnull(1,2), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(1,2), warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Scans a table create SQL string and adds to the data dictionary
|
||||
the foreign key constraints declared in the string. This function
|
||||
|
@ -432,7 +432,7 @@ row_table_add_foreign_constraints(
|
|||
ibool reject_fks) /*!< in: if TRUE, fail with error
|
||||
code DB_CANNOT_ADD_CONSTRAINT if
|
||||
any foreign keys are found. */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
The master thread in srv0srv.cc calls this regularly to drop tables which
|
||||
we must drop in background after queries to them have ended. Such lazy
|
||||
|
@ -461,7 +461,7 @@ row_mysql_lock_table(
|
|||
dict_table_t* table, /*!< in: table to lock */
|
||||
enum lock_mode mode, /*!< in: LOCK_X or LOCK_S */
|
||||
const char* op_info) /*!< in: string for trx->op_info */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/*********************************************************************//**
|
||||
Truncates a table for MySQL.
|
||||
|
@ -472,7 +472,7 @@ row_truncate_table_for_mysql(
|
|||
/*=========================*/
|
||||
dict_table_t* table, /*!< in: table handle */
|
||||
trx_t* trx) /*!< in: transaction handle */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Drops a table for MySQL. If the name of the dropped table ends in
|
||||
one of "innodb_monitor", "innodb_lock_monitor", "innodb_tablespace_monitor",
|
||||
|
@ -491,7 +491,7 @@ row_drop_table_for_mysql(
|
|||
bool nonatomic = true)
|
||||
/*!< in: whether it is permitted
|
||||
to release and reacquire dict_operation_lock */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Drop all temporary tables during crash recovery. */
|
||||
UNIV_INTERN
|
||||
|
@ -510,7 +510,7 @@ row_discard_tablespace_for_mysql(
|
|||
/*=============================*/
|
||||
const char* name, /*!< in: table name */
|
||||
trx_t* trx) /*!< in: transaction handle */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*****************************************************************//**
|
||||
Imports a tablespace. The space id in the .ibd file must match the space id
|
||||
of the table in the data dictionary.
|
||||
|
@ -521,7 +521,7 @@ row_import_tablespace_for_mysql(
|
|||
/*============================*/
|
||||
dict_table_t* table, /*!< in/out: table */
|
||||
row_prebuilt_t* prebuilt) /*!< in: prebuilt struct in MySQL */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Drops a database for MySQL.
|
||||
@return error code or DB_SUCCESS */
|
||||
|
@ -531,7 +531,7 @@ row_drop_database_for_mysql(
|
|||
/*========================*/
|
||||
const char* name, /*!< in: database name which ends to '/' */
|
||||
trx_t* trx) /*!< in: transaction handle */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*********************************************************************//**
|
||||
Renames a table for MySQL.
|
||||
@return error code or DB_SUCCESS */
|
||||
|
@ -543,7 +543,7 @@ row_rename_table_for_mysql(
|
|||
const char* new_name, /*!< in: new table name */
|
||||
trx_t* trx, /*!< in/out: transaction */
|
||||
bool commit) /*!< in: whether to commit trx */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Checks that the index contains entries in an ascending order, unique
|
||||
constraint is not broken, and calculates the number of index entries
|
||||
|
@ -558,7 +558,7 @@ row_check_index_for_mysql(
|
|||
const dict_index_t* index, /*!< in: index */
|
||||
ulint* n_rows) /*!< out: number of entries
|
||||
seen in the consistent read */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Determines if a table is a magic monitor table.
|
||||
@return true if monitor table */
|
||||
|
@ -568,7 +568,7 @@ row_is_magic_monitor_table(
|
|||
/*=======================*/
|
||||
const char* table_name) /*!< in: name of the table, in the
|
||||
form database/table_name */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Initialize this module */
|
||||
UNIV_INTERN
|
||||
|
@ -593,7 +593,7 @@ row_mysql_table_id_reassign(
|
|||
dict_table_t* table, /*!< in/out: table */
|
||||
trx_t* trx, /*!< in/out: transaction */
|
||||
table_id_t* new_id) /*!< out: new table id */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/* A struct describing a place for an individual column in the MySQL
|
||||
row format which is presented to the table handler in ha_innobase.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1997, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -47,7 +47,7 @@ row_purge_node_create(
|
|||
que_thr_t* parent, /*!< in: parent node, i.e., a
|
||||
thr node */
|
||||
mem_heap_t* heap) /*!< in: memory heap where created */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/***********************************************************//**
|
||||
Determines if it is possible to remove a secondary index entry.
|
||||
Removal is possible if the secondary index entry does not refer to any
|
||||
|
@ -70,7 +70,7 @@ row_purge_poss_sec(
|
|||
purge_node_t* node, /*!< in/out: row purge node */
|
||||
dict_index_t* index, /*!< in: secondary index */
|
||||
const dtuple_t* entry) /*!< in: secondary index entry */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/***************************************************************
|
||||
Does the purge operation for a single undo log record. This is a high-level
|
||||
function used in an SQL execution graph.
|
||||
|
@ -80,7 +80,7 @@ que_thr_t*
|
|||
row_purge_step(
|
||||
/*===========*/
|
||||
que_thr_t* thr) /*!< in: query thread */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/* Purge node structure */
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2012, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -43,7 +43,7 @@ row_quiesce_table_start(
|
|||
/*====================*/
|
||||
dict_table_t* table, /*!< in: quiesce this table */
|
||||
trx_t* trx) /*!< in/out: transaction/session */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/*********************************************************************//**
|
||||
Set a table's quiesce state.
|
||||
|
@ -55,7 +55,7 @@ row_quiesce_set_state(
|
|||
dict_table_t* table, /*!< in: quiesce this table */
|
||||
ib_quiesce_t state, /*!< in: quiesce state to set */
|
||||
trx_t* trx) /*!< in/out: transaction */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/*********************************************************************//**
|
||||
Cleanup after table quiesce. */
|
||||
|
@ -65,7 +65,7 @@ row_quiesce_table_complete(
|
|||
/*=======================*/
|
||||
dict_table_t* table, /*!< in: quiesce this table */
|
||||
trx_t* trx) /*!< in/out: transaction/session */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
#ifndef UNIV_NONINL
|
||||
#include "row0quiesce.ic"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -47,7 +47,7 @@ row_get_trx_id_offset(
|
|||
/*==================*/
|
||||
const dict_index_t* index, /*!< in: clustered index */
|
||||
const ulint* offsets)/*!< in: record offsets */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Reads the trx id field from a clustered index record.
|
||||
@return value of the field */
|
||||
|
@ -58,7 +58,7 @@ row_get_rec_trx_id(
|
|||
const rec_t* rec, /*!< in: record */
|
||||
const dict_index_t* index, /*!< in: clustered index */
|
||||
const ulint* offsets)/*!< in: rec_get_offsets(rec, index) */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Reads the roll pointer field from a clustered index record.
|
||||
@return value of the field */
|
||||
|
@ -69,7 +69,7 @@ row_get_rec_roll_ptr(
|
|||
const rec_t* rec, /*!< in: record */
|
||||
const dict_index_t* index, /*!< in: clustered index */
|
||||
const ulint* offsets)/*!< in: rec_get_offsets(rec, index) */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*****************************************************************//**
|
||||
When an insert or purge to a table is performed, this function builds
|
||||
the entry to be inserted into or purged from an index on the table.
|
||||
|
@ -88,7 +88,7 @@ row_build_index_entry_low(
|
|||
mem_heap_t* heap) /*!< in: memory heap from which
|
||||
the memory for the index entry
|
||||
is allocated */
|
||||
__attribute__((warn_unused_result, nonnull(1,3,4)));
|
||||
MY_ATTRIBUTE((warn_unused_result, nonnull(1,3,4)));
|
||||
/*****************************************************************//**
|
||||
When an insert or purge to a table is performed, this function builds
|
||||
the entry to be inserted into or purged from an index on the table.
|
||||
|
@ -107,7 +107,7 @@ row_build_index_entry(
|
|||
mem_heap_t* heap) /*!< in: memory heap from which
|
||||
the memory for the index entry
|
||||
is allocated */
|
||||
__attribute__((warn_unused_result, nonnull(1,3,4)));
|
||||
MY_ATTRIBUTE((warn_unused_result, nonnull(1,3,4)));
|
||||
/*******************************************************************//**
|
||||
An inverse function to row_build_index_entry. Builds a row from a
|
||||
record in a clustered index.
|
||||
|
@ -155,7 +155,7 @@ row_build(
|
|||
prefixes, or NULL */
|
||||
mem_heap_t* heap) /*!< in: memory heap from which
|
||||
the memory needed is allocated */
|
||||
__attribute__((nonnull(2,3,9)));
|
||||
MY_ATTRIBUTE((nonnull(2,3,9)));
|
||||
/*******************************************************************//**
|
||||
Converts an index record to a typed data tuple.
|
||||
@return index entry built; does not set info_bits, and the data fields
|
||||
|
@ -171,7 +171,7 @@ row_rec_to_index_entry_low(
|
|||
stored columns */
|
||||
mem_heap_t* heap) /*!< in: memory heap from which
|
||||
the memory needed is allocated */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*******************************************************************//**
|
||||
Converts an index record to a typed data tuple. NOTE that externally
|
||||
stored (often big) fields are NOT copied to heap.
|
||||
|
@ -187,7 +187,7 @@ row_rec_to_index_entry(
|
|||
stored columns */
|
||||
mem_heap_t* heap) /*!< in: memory heap from which
|
||||
the memory needed is allocated */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*******************************************************************//**
|
||||
Builds from a secondary index record a row reference with which we can
|
||||
search the clustered index record.
|
||||
|
@ -210,7 +210,7 @@ row_build_row_ref(
|
|||
as long as the row reference is used! */
|
||||
mem_heap_t* heap) /*!< in: memory heap from which the memory
|
||||
needed is allocated */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*******************************************************************//**
|
||||
Builds from a secondary index record a row reference with which we can
|
||||
search the clustered index record. */
|
||||
|
@ -232,7 +232,7 @@ row_build_row_ref_in_tuple(
|
|||
ulint* offsets,/*!< in: rec_get_offsets(rec, index)
|
||||
or NULL */
|
||||
trx_t* trx) /*!< in: transaction or NULL */
|
||||
__attribute__((nonnull(1,2,3)));
|
||||
MY_ATTRIBUTE((nonnull(1,2,3)));
|
||||
/*******************************************************************//**
|
||||
Builds from a secondary index record a row reference with which we can
|
||||
search the clustered index record. */
|
||||
|
@ -263,7 +263,7 @@ row_search_on_row_ref(
|
|||
const dict_table_t* table, /*!< in: table */
|
||||
const dtuple_t* ref, /*!< in: row reference */
|
||||
mtr_t* mtr) /*!< in/out: mtr */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*********************************************************************//**
|
||||
Fetches the clustered index record for a secondary index record. The latches
|
||||
on the secondary index record are preserved.
|
||||
|
@ -277,7 +277,7 @@ row_get_clust_rec(
|
|||
dict_index_t* index, /*!< in: secondary index */
|
||||
dict_index_t** clust_index,/*!< out: clustered index */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/** Result of row_search_index_entry */
|
||||
enum row_search_result {
|
||||
|
@ -305,7 +305,7 @@ row_search_index_entry(
|
|||
btr_pcur_t* pcur, /*!< in/out: persistent cursor, which must
|
||||
be closed by the caller */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
#define ROW_COPY_DATA 1
|
||||
#define ROW_COPY_POINTERS 2
|
||||
|
@ -334,7 +334,7 @@ row_raw_format(
|
|||
char* buf, /*!< out: output buffer */
|
||||
ulint buf_size) /*!< in: output buffer size
|
||||
in bytes */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
#ifndef UNIV_NONINL
|
||||
#include "row0row.ic"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1997, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -168,7 +168,7 @@ row_search_for_mysql(
|
|||
then prebuilt must have a pcur
|
||||
with stored position! In opening of a
|
||||
cursor 'direction' should be 0. */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*******************************************************************//**
|
||||
Checks if MySQL at the moment is allowed for this table to retrieve a
|
||||
consistent read result, or store it to the query cache.
|
||||
|
@ -190,7 +190,7 @@ row_search_max_autoinc(
|
|||
dict_index_t* index, /*!< in: index to search */
|
||||
const char* col_name, /*!< in: autoinc column name */
|
||||
ib_uint64_t* value) /*!< out: AUTOINC value read */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/** A structure for caching column values for prefetched rows */
|
||||
struct sel_buf_t{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1997, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -46,7 +46,7 @@ dberr_t
|
|||
row_undo_ins(
|
||||
/*=========*/
|
||||
undo_node_t* node) /*!< in: row undo node */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
#ifndef UNIV_NONINL
|
||||
#include "row0uins.ic"
|
||||
#endif
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1997, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -43,7 +43,7 @@ row_undo_mod(
|
|||
/*=========*/
|
||||
undo_node_t* node, /*!< in: row undo node */
|
||||
que_thr_t* thr) /*!< in: query thread */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
#ifndef UNIV_NONINL
|
||||
#include "row0umod.ic"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -91,7 +91,7 @@ upd_get_field_by_field_no(
|
|||
/*======================*/
|
||||
const upd_t* update, /*!< in: update vector */
|
||||
ulint no) /*!< in: field_no */
|
||||
__attribute__((nonnull, pure));
|
||||
MY_ATTRIBUTE((nonnull, pure));
|
||||
/*********************************************************************//**
|
||||
Writes into the redo log the values of trx id and roll ptr and enough info
|
||||
to determine their positions within a clustered index record.
|
||||
|
@ -174,7 +174,7 @@ bool
|
|||
row_upd_changes_disowned_external(
|
||||
/*==============================*/
|
||||
const upd_t* update) /*!< in: update vector */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/***********************************************************//**
|
||||
Replaces the new column values stored in the update vector to the
|
||||
|
@ -207,7 +207,7 @@ row_upd_build_sec_rec_difference_binary(
|
|||
const ulint* offsets,/*!< in: rec_get_offsets(rec, index) */
|
||||
const dtuple_t* entry, /*!< in: entry to insert */
|
||||
mem_heap_t* heap) /*!< in: memory heap from which allocated */
|
||||
__attribute__((warn_unused_result, nonnull));
|
||||
MY_ATTRIBUTE((warn_unused_result, nonnull));
|
||||
/***************************************************************//**
|
||||
Builds an update vector from those fields, excluding the roll ptr and
|
||||
trx id fields, which in an index entry differ from a record that has
|
||||
|
@ -227,7 +227,7 @@ row_upd_build_difference_binary(
|
|||
trx_t* trx, /*!< in: transaction (for diagnostics),
|
||||
or NULL */
|
||||
mem_heap_t* heap) /*!< in: memory heap from which allocated */
|
||||
__attribute__((nonnull(1,2,3,7), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(1,2,3,7), warn_unused_result));
|
||||
/***********************************************************//**
|
||||
Replaces the new column values stored in the update vector to the index entry
|
||||
given. */
|
||||
|
@ -250,7 +250,7 @@ row_upd_index_replace_new_col_vals_index_pos(
|
|||
does not work for non-clustered indexes. */
|
||||
mem_heap_t* heap) /*!< in: memory heap for allocating and
|
||||
copying the new values */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/***********************************************************//**
|
||||
Replaces the new column values stored in the update vector to the index entry
|
||||
given. */
|
||||
|
@ -269,7 +269,7 @@ row_upd_index_replace_new_col_vals(
|
|||
an upd_field is the clustered index position */
|
||||
mem_heap_t* heap) /*!< in: memory heap for allocating and
|
||||
copying the new values */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/***********************************************************//**
|
||||
Replaces the new column values stored in the update vector. */
|
||||
UNIV_INTERN
|
||||
|
@ -311,7 +311,7 @@ row_upd_changes_ord_field_binary_func(
|
|||
compile time */
|
||||
const row_ext_t*ext) /*!< NULL, or prefixes of the externally
|
||||
stored columns in the old row */
|
||||
__attribute__((nonnull(1,2), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(1,2), warn_unused_result));
|
||||
#ifdef UNIV_DEBUG
|
||||
# define row_upd_changes_ord_field_binary(index,update,thr,row,ext) \
|
||||
row_upd_changes_ord_field_binary_func(index,update,thr,row,ext)
|
||||
|
@ -338,7 +338,7 @@ row_upd_changes_doc_id(
|
|||
/*===================*/
|
||||
dict_table_t* table, /*!< in: table */
|
||||
upd_field_t* upd_field) /*!< in: field to check */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/***********************************************************//**
|
||||
Checks if an update vector changes an ordering field of an index record.
|
||||
This function is fast if the update vector is short or the number of ordering
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1997, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -110,7 +110,7 @@ row_vers_build_for_consistent_read(
|
|||
if the history is missing or the record
|
||||
does not exist in the view, that is,
|
||||
it was freshly inserted afterwards */
|
||||
__attribute__((nonnull(1,2,3,4,5,6,7)));
|
||||
MY_ATTRIBUTE((nonnull(1,2,3,4,5,6,7)));
|
||||
|
||||
/*****************************************************************//**
|
||||
Constructs the last committed version of a clustered index record,
|
||||
|
@ -136,7 +136,7 @@ row_vers_build_for_semi_consistent_read(
|
|||
const rec_t** old_vers)/*!< out: rec, old version, or NULL if the
|
||||
record does not exist in the view, that is,
|
||||
it was freshly inserted afterwards */
|
||||
__attribute__((nonnull(1,2,3,4,5)));
|
||||
MY_ATTRIBUTE((nonnull(1,2,3,4,5)));
|
||||
|
||||
|
||||
#ifndef UNIV_NONINL
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
Copyright (c) 2008, 2009, Google Inc.
|
||||
Copyright (c) 2009, Percona Inc.
|
||||
Copyright (c) 2013, 2014, SkySQL Ab. All Rights Reserved.
|
||||
|
@ -758,7 +758,7 @@ UNIV_INTERN
|
|||
os_thread_ret_t
|
||||
DECLARE_THREAD(srv_purge_coordinator_thread)(
|
||||
/*=========================================*/
|
||||
void* arg __attribute__((unused))); /*!< in: a dummy parameter
|
||||
void* arg MY_ATTRIBUTE((unused))); /*!< in: a dummy parameter
|
||||
required by os_thread_create */
|
||||
|
||||
/*********************************************************************//**
|
||||
|
@ -768,7 +768,7 @@ UNIV_INTERN
|
|||
os_thread_ret_t
|
||||
DECLARE_THREAD(srv_worker_thread)(
|
||||
/*==============================*/
|
||||
void* arg __attribute__((unused))); /*!< in: a dummy parameter
|
||||
void* arg MY_ATTRIBUTE((unused))); /*!< in: a dummy parameter
|
||||
required by os_thread_create */
|
||||
} /* extern "C" */
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -105,7 +105,7 @@ srv_path_copy(
|
|||
ulint dest_len, /*!< in: max bytes to copy */
|
||||
const char* basedir, /*!< in: base directory */
|
||||
const char* table_name) /*!< in: source table name */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
|
||||
/*****************************************************************//**
|
||||
Get the meta-data filename from the table name. */
|
||||
|
@ -116,7 +116,7 @@ srv_get_meta_data_filename(
|
|||
dict_table_t* table, /*!< in: table */
|
||||
char* filename, /*!< out: filename */
|
||||
ulint max_len) /*!< in: filename max length */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
|
||||
/** Log sequence number at shutdown */
|
||||
extern lsn_t srv_shutdown_lsn;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -110,7 +110,7 @@ sync_array_print_long_waits(
|
|||
/*========================*/
|
||||
os_thread_id_t* waiter, /*!< out: longest waiting thread */
|
||||
const void** sema) /*!< out: longest-waited-for semaphore */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/********************************************************************//**
|
||||
Validates the integrity of the wait array. Checks
|
||||
that the number of reserved cells equals the count variable. */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2014, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2008, Google Inc.
|
||||
|
||||
Portions of this file contain modifications contributed and copyrighted by
|
||||
|
@ -327,7 +327,7 @@ ibool
|
|||
rw_lock_s_lock_low(
|
||||
/*===============*/
|
||||
rw_lock_t* lock, /*!< in: pointer to rw-lock */
|
||||
ulint pass __attribute__((unused)),
|
||||
ulint pass MY_ATTRIBUTE((unused)),
|
||||
/*!< in: pass value; != 0, if the lock will be
|
||||
passed to another thread to unlock */
|
||||
const char* file_name, /*!< in: file name where lock requested */
|
||||
|
@ -495,7 +495,7 @@ rw_lock_own(
|
|||
rw_lock_t* lock, /*!< in: rw-lock */
|
||||
ulint lock_type) /*!< in: lock type: RW_LOCK_SHARED,
|
||||
RW_LOCK_EX */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
/******************************************************************//**
|
||||
Checks if somebody has locked the rw-lock in the specified mode. */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2011, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2008, Google Inc.
|
||||
|
||||
Portions of this file contain modifications contributed and copyrighted by
|
||||
|
@ -306,7 +306,7 @@ ibool
|
|||
rw_lock_s_lock_low(
|
||||
/*===============*/
|
||||
rw_lock_t* lock, /*!< in: pointer to rw-lock */
|
||||
ulint pass __attribute__((unused)),
|
||||
ulint pass MY_ATTRIBUTE((unused)),
|
||||
/*!< in: pass value; != 0, if the lock will be
|
||||
passed to another thread to unlock */
|
||||
const char* file_name, /*!< in: file name where lock requested */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2008, Google Inc.
|
||||
Copyright (c) 2012, Facebook Inc.
|
||||
|
||||
|
@ -400,7 +400,7 @@ ibool
|
|||
mutex_own(
|
||||
/*======*/
|
||||
const ib_mutex_t* mutex) /*!< in: mutex */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
#endif /* UNIV_DEBUG */
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
/******************************************************************//**
|
||||
|
@ -415,7 +415,7 @@ sync_thread_add_level(
|
|||
ulint level, /*!< in: level in the latching order; if
|
||||
SYNC_LEVEL_VARYING, nothing is done */
|
||||
ibool relock) /*!< in: TRUE if re-entering an x-lock */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/******************************************************************//**
|
||||
Removes a latch from the thread level array if it is found there.
|
||||
@return TRUE if found in the array; it is no error if the latch is
|
||||
|
@ -445,7 +445,7 @@ sync_thread_levels_nonempty_gen(
|
|||
/*============================*/
|
||||
ibool dict_mutex_allowed) /*!< in: TRUE if dictionary mutex is
|
||||
allowed to be owned by the thread */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Checks if the level array for the current thread is empty,
|
||||
except for data dictionary latches. */
|
||||
|
@ -462,7 +462,7 @@ sync_thread_levels_nonempty_trx(
|
|||
ibool has_search_latch)
|
||||
/*!< in: TRUE if and only if the thread
|
||||
is supposed to hold btr_search_latch */
|
||||
__attribute__((warn_unused_result));
|
||||
MY_ATTRIBUTE((warn_unused_result));
|
||||
|
||||
/******************************************************************//**
|
||||
Gets the debug information for a reserved mutex. */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
|
@ -86,7 +86,7 @@ ulint
|
|||
trx_undo_rec_get_offset(
|
||||
/*====================*/
|
||||
undo_no_t undo_no) /*!< in: undo no read from node */
|
||||
__attribute__((const));
|
||||
MY_ATTRIBUTE((const));
|
||||
|
||||
/**********************************************************************//**
|
||||
Returns the start of the undo record data area. */
|
||||
|
@ -109,7 +109,7 @@ trx_undo_rec_get_pars(
|
|||
externally stored fild */
|
||||
undo_no_t* undo_no, /*!< out: undo log record number */
|
||||
table_id_t* table_id) /*!< out: table id */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
/*******************************************************************//**
|
||||
Builds a row reference from an undo log record.
|
||||
@return pointer to remaining part of undo record */
|
||||
|
@ -201,7 +201,7 @@ trx_undo_rec_get_partial_row(
|
|||
only in the assertion. */
|
||||
mem_heap_t* heap) /*!< in: memory heap from which the memory
|
||||
needed is allocated */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/***********************************************************************//**
|
||||
Writes information to an undo log about an insert, update, or a delete marking
|
||||
of a clustered index record. This information is used in a rollback of the
|
||||
|
@ -233,7 +233,7 @@ trx_undo_report_row_operation(
|
|||
inserted undo log record,
|
||||
0 if BTR_NO_UNDO_LOG
|
||||
flag was specified */
|
||||
__attribute__((nonnull(3,4,10), warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull(3,4,10), warn_unused_result));
|
||||
/******************************************************************//**
|
||||
Copies an undo record to heap. This function can be called if we know that
|
||||
the undo log record exists.
|
||||
|
@ -244,7 +244,7 @@ trx_undo_get_undo_rec_low(
|
|||
/*======================*/
|
||||
roll_ptr_t roll_ptr, /*!< in: roll pointer to record */
|
||||
mem_heap_t* heap) /*!< in: memory heap where copied */
|
||||
__attribute__((nonnull, warn_unused_result));
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/*******************************************************************//**
|
||||
Build a previous version of a clustered index record. The caller must
|
||||
hold a latch on the index page of the clustered index record.
|
||||
|
@ -268,7 +268,7 @@ trx_undo_prev_version_build(
|
|||
rec_t** old_vers)/*!< out, own: previous version, or NULL if
|
||||
rec is the first inserted version, or if
|
||||
history data has been deleted */
|
||||
__attribute__((nonnull));
|
||||
MY_ATTRIBUTE((nonnull));
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
/***********************************************************//**
|
||||
Parses a redo log record of adding an undo log record.
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue