diff options
Diffstat (limited to 'storage')
103 files changed, 707 insertions, 742 deletions
diff --git a/storage/connect/blkfil.cpp b/storage/connect/blkfil.cpp index 1f5a1a27ae5..50535d20a3d 100644 --- a/storage/connect/blkfil.cpp +++ b/storage/connect/blkfil.cpp @@ -412,7 +412,7 @@ void BLKFILMR2::MakeValueBitmap(void) Void = !Bmp[N]; // There are no good values in the file for (i = 0; i < N; i++) { - Bxp[i] = ~0; + Bxp[i] = ~0U; if (noteq) Bmp[i] = Bxp[i]; @@ -708,7 +708,7 @@ void BLKFILIN2::MakeValueBitmap(void) Void = !Bmp[N]; // There are no good values in the file for (i = 0; i < N; i++) { - Bxp[i] = ~0; + Bxp[i] = ~0U; if (noteq) { Bmp[i] = Bxp[i]; @@ -828,7 +828,7 @@ BLKFILIN2::BLKFILIN2(PGLOBAL g, PTDBDOS tdbp, int op, int opm, PXOB *xp) Bxp[i] |= btp; for (N = i--; i >= 0; i--) - Bxp[i] = ~0; + Bxp[i] = ~0U; break; } // endif Bmp diff --git a/storage/innobase/btr/btr0btr.cc b/storage/innobase/btr/btr0btr.cc index 4bebb9ee7dd..49ac63cff6d 100644 --- a/storage/innobase/btr/btr0btr.cc +++ b/storage/innobase/btr/btr0btr.cc @@ -2,7 +2,7 @@ Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. -Copyright (c) 2014, 2016, MariaDB Corporation +Copyright (c) 2014, 2017, 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 @@ -725,7 +725,7 @@ btr_page_free_low( offsets = rec_get_offsets(rec, index, offsets, ULINT_UNDEFINED, &heap); - uint size = rec_offs_data_size(offsets); + ulint size = rec_offs_data_size(offsets); memset(rec, 0, size); rec = page_rec_get_next(rec); cnt++; @@ -890,7 +890,7 @@ btr_page_get_father_node_ptr_func( ulint latch_mode,/*!< in: BTR_CONT_MODIFY_TREE or BTR_CONT_SEARCH_TREE */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr) /*!< in: mtr */ { dtuple_t* tuple; @@ -2396,7 +2396,7 @@ btr_insert_on_non_leaf_level_func( ulint level, /*!< in: level, must be > 0 */ dtuple_t* tuple, /*!< in: the record to be inserted */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr) /*!< in: mtr */ { big_rec_t* dummy_big_rec; diff --git a/storage/innobase/btr/btr0cur.cc b/storage/innobase/btr/btr0cur.cc index 0abc930c11d..06b5b66c2aa 100644 --- a/storage/innobase/btr/btr0cur.cc +++ b/storage/innobase/btr/btr0cur.cc @@ -148,7 +148,7 @@ can be released by page reorganize, then it is reorganized */ @param not_empty table not empty @return estimated table wide stats from sampled value */ #define BTR_TABLE_STATS_FROM_SAMPLE(value, index, sample, ext_size, not_empty) \ - (((value) * static_cast<int64_t>(index->stat_n_leaf_pages) \ + (((value) * static_cast<ib_uint64_t>(index->stat_n_leaf_pages) \ + (sample) - 1 + (ext_size) + (not_empty)) / ((sample) + (ext_size))) /* @} */ @@ -414,7 +414,7 @@ btr_cur_optimistic_latch_leaves( ulint* latch_mode, btr_cur_t* cursor, const char* file, - ulint line, + unsigned line, mtr_t* mtr) { ulint mode; @@ -747,7 +747,7 @@ btr_cur_search_to_nth_level( caller currently has on search system: RW_S_LATCH, or 0 */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr, /*!< in: mtr */ ib_uint64_t autoinc)/*!< in: PAGE_ROOT_AUTO_INC to be written (0 if none) */ @@ -2042,7 +2042,7 @@ btr_cur_open_at_index_side_func( ulint level, /*!< in: level to search for (0=leaf). */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr) /*!< in/out: mini-transaction */ { page_cur_t* page_cursor; @@ -2414,7 +2414,7 @@ btr_cur_open_at_rnd_pos_func( ulint latch_mode, /*!< in: BTR_SEARCH_LEAF, ... */ btr_cur_t* cursor, /*!< in/out: B-tree cursor */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr) /*!< in: mtr */ { page_cur_t* page_cursor; @@ -3623,7 +3623,7 @@ btr_cur_update_in_place( ut_ad(dict_index_is_online_ddl(index) == !!(flags & BTR_CREATE_FLAG) || dict_index_is_clust(index)); ut_ad(thr_get_trx(thr)->id == trx_id - || (flags & ~(BTR_KEEP_POS_FLAG | BTR_KEEP_IBUF_BITMAP)) + || (flags & ulint(~(BTR_KEEP_POS_FLAG | BTR_KEEP_IBUF_BITMAP))) == (BTR_NO_UNDO_LOG_FLAG | BTR_NO_LOCKING_FLAG | BTR_CREATE_FLAG | BTR_KEEP_SYS_FLAG)); ut_ad(fil_page_index_page_check(btr_cur_get_page(cursor))); @@ -3790,7 +3790,7 @@ btr_cur_optimistic_update( ut_ad(dict_index_is_online_ddl(index) == !!(flags & BTR_CREATE_FLAG) || dict_index_is_clust(index)); ut_ad(thr_get_trx(thr)->id == trx_id - || (flags & ~(BTR_KEEP_POS_FLAG | BTR_KEEP_IBUF_BITMAP)) + || (flags & ulint(~(BTR_KEEP_POS_FLAG | BTR_KEEP_IBUF_BITMAP))) == (BTR_NO_UNDO_LOG_FLAG | BTR_NO_LOCKING_FLAG | BTR_CREATE_FLAG | BTR_KEEP_SYS_FLAG)); ut_ad(fil_page_index_page_check(page)); @@ -4123,7 +4123,7 @@ btr_cur_pessimistic_update( ut_ad(dict_index_is_online_ddl(index) == !!(flags & BTR_CREATE_FLAG) || dict_index_is_clust(index)); ut_ad(thr_get_trx(thr)->id == trx_id - || (flags & ~BTR_KEEP_POS_FLAG) + || (flags & ulint(~BTR_KEEP_POS_FLAG)) == (BTR_NO_UNDO_LOG_FLAG | BTR_NO_LOCKING_FLAG | BTR_CREATE_FLAG | BTR_KEEP_SYS_FLAG)); @@ -6231,12 +6231,12 @@ btr_cur_set_ownership_of_extern_field( byte_val = mach_read_from_1(data + local_len + BTR_EXTERN_LEN); if (val) { - byte_val = byte_val & (~BTR_EXTERN_OWNER_FLAG); + byte_val &= ~BTR_EXTERN_OWNER_FLAG; } else { #if defined UNIV_DEBUG || defined UNIV_BLOB_LIGHT_DEBUG ut_a(!(byte_val & BTR_EXTERN_OWNER_FLAG)); #endif /* UNIV_DEBUG || UNIV_BLOB_LIGHT_DEBUG */ - byte_val = byte_val | BTR_EXTERN_OWNER_FLAG; + byte_val |= BTR_EXTERN_OWNER_FLAG; } if (page_zip) { diff --git a/storage/innobase/btr/btr0defragment.cc b/storage/innobase/btr/btr0defragment.cc index 7f06aed9ff0..8c4f27cc78a 100644 --- a/storage/innobase/btr/btr0defragment.cc +++ b/storage/innobase/btr/btr0defragment.cc @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (C) 2013, 2014 Facebook, Inc. All Rights Reserved. -Copyright (C) 2014, 2016, MariaDB Corporation. All Rights Reserved. +Copyright (C) 2014, 2017, 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 @@ -696,8 +696,8 @@ btr_defragment_n_pages( (data_size_per_rec * srv_defragment_fill_factor_n_recs)); optimal_page_size -= reserved_space; - n_new_slots = (total_data_size + optimal_page_size - 1) - / optimal_page_size; + n_new_slots = uint((total_data_size + optimal_page_size - 1) + / optimal_page_size); if (n_new_slots >= n_pages) { /* Can't defragment. */ if (end_of_index) diff --git a/storage/innobase/btr/btr0pcur.cc b/storage/innobase/btr/btr0pcur.cc index ecf3f7c07cb..741f16e0df4 100644 --- a/storage/innobase/btr/btr0pcur.cc +++ b/storage/innobase/btr/btr0pcur.cc @@ -229,7 +229,7 @@ btr_pcur_restore_position_func( ulint latch_mode, /*!< in: BTR_SEARCH_LEAF, ... */ btr_pcur_t* cursor, /*!< in: detached persistent cursor */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr) /*!< in: mtr */ { dict_index_t* index; @@ -586,7 +586,7 @@ btr_pcur_open_on_user_rec_func( btr_pcur_t* cursor, /*!< in: memory buffer for persistent cursor */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr) /*!< in: mtr */ { btr_pcur_open_low(index, 0, tuple, mode, latch_mode, cursor, diff --git a/storage/innobase/btr/btr0scrub.cc b/storage/innobase/btr/btr0scrub.cc index 8051c517e3a..e2670521cf3 100644 --- a/storage/innobase/btr/btr0scrub.cc +++ b/storage/innobase/btr/btr0scrub.cc @@ -254,11 +254,10 @@ btr_page_needs_scrubbing( return BTR_SCRUB_SKIP_PAGE_AND_CLOSE_TABLE; } - page_t* page = buf_block_get_frame(block); - uint type = fil_page_get_type(page); + const page_t* page = buf_block_get_frame(block); if (allocated == BTR_SCRUB_PAGE_ALLOCATED) { - if (type != FIL_PAGE_INDEX) { + if (fil_page_get_type(page) != FIL_PAGE_INDEX) { /* this function is called from fil-crypt-threads. * these threads iterate all pages of all tablespaces * and don't know about fil_page_type. @@ -275,7 +274,7 @@ btr_page_needs_scrubbing( return BTR_SCRUB_SKIP_PAGE_AND_CLOSE_TABLE; } - if (page_has_garbage(page) == false) { + if (!page_has_garbage(page)) { /* no garbage (from deleted/shrunken records) */ return BTR_SCRUB_SKIP_PAGE_AND_CLOSE_TABLE; } @@ -283,11 +282,12 @@ btr_page_needs_scrubbing( } else if (allocated == BTR_SCRUB_PAGE_FREE || allocated == BTR_SCRUB_PAGE_ALLOCATION_UNKNOWN) { - if (! (type == FIL_PAGE_INDEX || - type == FIL_PAGE_TYPE_BLOB || - type == FIL_PAGE_TYPE_ZBLOB || - type == FIL_PAGE_TYPE_ZBLOB2)) { - + switch (fil_page_get_type(page)) { + case FIL_PAGE_INDEX: + case FIL_PAGE_TYPE_ZBLOB: + case FIL_PAGE_TYPE_ZBLOB2: + break; + default: /** * If this is a dropped page, we also need to scrub * BLOB pages @@ -299,7 +299,8 @@ btr_page_needs_scrubbing( } } - if (btr_page_get_index_id(page) == IBUF_INDEX_ID) { + if (block->page.id.space() == TRX_SYS_SPACE + && btr_page_get_index_id(page) == IBUF_INDEX_ID) { /* skip ibuf */ return BTR_SCRUB_SKIP_PAGE_AND_CLOSE_TABLE; } diff --git a/storage/innobase/btr/btr0sea.cc b/storage/innobase/btr/btr0sea.cc index d777e2abc4d..86827fabdd4 100644 --- a/storage/innobase/btr/btr0sea.cc +++ b/storage/innobase/btr/btr0sea.cc @@ -2,6 +2,7 @@ Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, Google Inc. +Copyright (c) 2017, MariaDB Corporation. Portions of this file contain modifications contributed and copyrighted by Google, Inc. Those modifications are gratefully acknowledged and are described @@ -1547,9 +1548,9 @@ btr_search_build_page_hash_index( block->n_hash_helps = 0; - block->curr_n_fields = n_fields; - block->curr_n_bytes = n_bytes; - block->curr_left_side = left_side; + block->curr_n_fields = unsigned(n_fields); + block->curr_n_bytes = unsigned(n_bytes); + block->curr_left_side = unsigned(left_side); block->index = index; for (i = 0; i < n_cached; i++) { diff --git a/storage/innobase/buf/buf0buf.cc b/storage/innobase/buf/buf0buf.cc index b3c11c62929..a1827e7b3b5 100644 --- a/storage/innobase/buf/buf0buf.cc +++ b/storage/innobase/buf/buf0buf.cc @@ -1954,7 +1954,8 @@ buf_pool_init_instance( buf_pool->watch = (buf_page_t*) ut_zalloc_nokey( sizeof(*buf_pool->watch) * BUF_POOL_WATCH_SIZE); for (i = 0; i < BUF_POOL_WATCH_SIZE; i++) { - buf_pool->watch[i].buf_pool_index = buf_pool->instance_no; + buf_pool->watch[i].buf_pool_index + = unsigned(buf_pool->instance_no); } /* All fields are initialized by ut_zalloc_nokey(). */ @@ -4212,7 +4213,7 @@ buf_page_get_gen( buf_block_t* guess, ulint mode, const char* file, - ulint line, + unsigned line, mtr_t* mtr, dberr_t* err) { @@ -4882,7 +4883,7 @@ buf_page_optimistic_get( buf_block_t* block, /*!< in: guessed buffer block */ ib_uint64_t modify_clock,/*!< in: modify clock value */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr) /*!< in: mini-transaction */ { buf_pool_t* buf_pool; @@ -5002,7 +5003,7 @@ buf_page_get_known_nowait( buf_block_t* block, /*!< in: the known page */ ulint mode, /*!< in: BUF_MAKE_YOUNG or BUF_KEEP_OLD */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr) /*!< in: mini-transaction */ { buf_pool_t* buf_pool; @@ -5110,7 +5111,7 @@ buf_block_t* buf_page_try_get_func( const page_id_t& page_id, const char* file, - ulint line, + unsigned line, mtr_t* mtr) { buf_block_t* block; @@ -7468,7 +7469,8 @@ buf_page_encrypt_before_write( page_size, dst_frame); - ulint key_version = mach_read_from_4(dst_frame + FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION); + uint32_t key_version = mach_read_from_4( + dst_frame + FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION); ut_ad(key_version == 0 || key_version >= bpage->key_version); bpage->key_version = key_version; bpage->real_size = page_size.physical(); diff --git a/storage/innobase/data/data0data.cc b/storage/innobase/data/data0data.cc index 0ccf5868d14..c897564c1d4 100644 --- a/storage/innobase/data/data0data.cc +++ b/storage/innobase/data/data0data.cc @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -728,7 +729,7 @@ skip_field: DEBUG_SYNC_C("ib_mv_nonupdated_column_offpage"); upd_field_t upd_field; - upd_field.field_no = longest_i; + upd_field.field_no = unsigned(longest_i); upd_field.orig_len = 0; upd_field.exp = NULL; upd_field.old_v_val = NULL; diff --git a/storage/innobase/data/data0type.cc b/storage/innobase/data/data0type.cc index cad165d1489..7da473f0a3e 100644 --- a/storage/innobase/data/data0type.cc +++ b/storage/innobase/data/data0type.cc @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2014, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -140,23 +141,6 @@ dtype_is_non_binary_string_type( } /*********************************************************************//** -Forms a precise type from the < 4.1.2 format precise type plus the -charset-collation code. -@return precise type, including the charset-collation code */ -ulint -dtype_form_prtype( -/*==============*/ - ulint old_prtype, /*!< in: the MySQL type code and the flags - DATA_BINARY_TYPE etc. */ - ulint charset_coll) /*!< in: MySQL charset-collation code */ -{ - ut_a(old_prtype < 256 * 256); - ut_a(charset_coll <= MAX_CHAR_COLL_NUM); - - return(old_prtype + (charset_coll << 16)); -} - -/*********************************************************************//** Validates a data type structure. @return TRUE if ok */ ibool diff --git a/storage/innobase/dict/dict0dict.cc b/storage/innobase/dict/dict0dict.cc index 491f29067a8..32c1a12ec1e 100644 --- a/storage/innobase/dict/dict0dict.cc +++ b/storage/innobase/dict/dict0dict.cc @@ -264,13 +264,11 @@ dict_get_db_name_len( return(s - name); } -/********************************************************************//** -Reserves the dictionary system mutex for MySQL. */ +/** Reserve the dictionary system mutex. */ void -dict_mutex_enter_for_mysql_func(const char * file, ulint line) -/*============================*/ +dict_mutex_enter_for_mysql_func(const char *file, unsigned line) { - mutex_enter(&dict_sys->mutex); + mutex_enter_loc(&dict_sys->mutex, file, line); } /********************************************************************//** @@ -1316,7 +1314,7 @@ void dict_table_add_to_cache( /*====================*/ dict_table_t* table, /*!< in: table */ - ibool can_be_evicted, /*!< in: TRUE if can be evicted */ + bool can_be_evicted, /*!< in: whether can be evicted */ mem_heap_t* heap) /*!< in: temporary heap */ { ulint fold; @@ -2615,7 +2613,7 @@ dict_index_add_to_cache_w_vcol( new_index->search_info = btr_search_info_create(new_index->heap); #endif /* BTR_CUR_ADAPT */ - new_index->page = page_no; + new_index->page = unsigned(page_no); rw_lock_create(index_tree_rw_lock_key, &new_index->lock, SYNC_INDEX_TREE); @@ -3179,7 +3177,7 @@ dict_index_build_internal_clust( can theoretically occur. Check for it. */ fixed_size += new_index->trx_id_offset; - new_index->trx_id_offset = fixed_size; + new_index->trx_id_offset = unsigned(fixed_size); if (new_index->trx_id_offset != fixed_size) { /* Overflow. Pretend that this is a diff --git a/storage/innobase/dict/dict0load.cc b/storage/innobase/dict/dict0load.cc index db14983cd8f..203185d55a5 100644 --- a/storage/innobase/dict/dict0load.cc +++ b/storage/innobase/dict/dict0load.cc @@ -1822,8 +1822,8 @@ dict_load_field_low( { const byte* field; ulint len; - ulint pos_and_prefix_len; - ulint prefix_len; + unsigned pos_and_prefix_len; + unsigned prefix_len; ibool first_field; ulint position; @@ -2027,7 +2027,7 @@ dict_load_index_low( ulint n_fields; ulint type; ulint space; - ulint merge_threshold; + unsigned merge_threshold; if (allocate) { /* If allocate=TRUE, no dict_index_t will diff --git a/storage/innobase/dict/dict0mem.cc b/storage/innobase/dict/dict0mem.cc index 9463c5103ca..f4dbbf026aa 100644 --- a/storage/innobase/dict/dict0mem.cc +++ b/storage/innobase/dict/dict0mem.cc @@ -2,6 +2,7 @@ Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. +Copyright (c) 2017, 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 @@ -1114,12 +1115,12 @@ dict_mem_table_is_system( /* table has the following format: database/table and some system table are of the form SYS_* */ if (strchr(name, '/')) { - int table_len = strlen(name); + size_t table_len = strlen(name); const char *system_db; int i = 0; while ((system_db = innobase_system_databases[i++]) && (system_db != NullS)) { - int len = strlen(system_db); + size_t len = strlen(system_db); if (table_len > len && !strncmp(name, system_db, len)) { return true; } diff --git a/storage/innobase/fil/fil0crypt.cc b/storage/innobase/fil/fil0crypt.cc index ac1978f2673..ccec6191ed4 100644 --- a/storage/innobase/fil/fil0crypt.cc +++ b/storage/innobase/fil/fil0crypt.cc @@ -1727,7 +1727,7 @@ fil_crypt_get_page_throttle_func( mtr_t* mtr, /*!< in/out: minitransaction */ ulint* sleeptime_ms, /*!< out: sleep time */ const char* file, /*!< in: file name */ - ulint line) /*!< in: file line */ + unsigned line) /*!< in: file line */ { const page_id_t& page_id = page_id_t(space, offset); dberr_t err = DB_SUCCESS; diff --git a/storage/innobase/fil/fil0fil.cc b/storage/innobase/fil/fil0fil.cc index 1ef209ed0ed..5a7a33f67e3 100644 --- a/storage/innobase/fil/fil0fil.cc +++ b/storage/innobase/fil/fil0fil.cc @@ -584,7 +584,9 @@ fil_node_open_file( read_only_mode = !fsp_is_system_temporary(space->id) && srv_read_only_mode; - if (node->size == 0 + const bool first_time_open = node->size == 0; + + if (first_time_open || (space->purpose == FIL_TYPE_TABLESPACE && node == UT_LIST_GET_FIRST(space->chain) && !undo::Truncate::was_tablespace_truncated(space->id) @@ -689,7 +691,7 @@ retry: space->free_limit = free_limit; space->free_len = free_len; - if (node->size == 0) { + if (first_time_open) { ulint extent_size; extent_size = psize * FSP_EXTENT_SIZE; @@ -727,24 +729,21 @@ retry: innodb_data_file_key, node->name, OS_FILE_OPEN, OS_FILE_AIO, OS_DATA_FILE, read_only_mode, &success); - if (!space->atomic_write_tested) - { - const page_size_t page_size(space->flags); - - space->atomic_write_tested= 1; - /* - Atomic writes is supported if the file can be used - with atomic_writes (not log file), O_DIRECT is - used (tested in ha_innodbc.cc) and the file is - device and file system that supports atomic writes - for the given block size - */ - space->atomic_write_supported= - srv_use_atomic_writes && - node->atomic_write && - my_test_if_atomic_write(node->handle, - page_size.physical()) ? - true : false; + if (first_time_open) { + /* + Atomic writes is supported if the file can be used + with atomic_writes (not log file), O_DIRECT is + used (tested in ha_innodb.cc) and the file is + device and file system that supports atomic writes + for the given block size + */ + space->atomic_write_supported + = srv_use_atomic_writes + && node->atomic_write + && my_test_if_atomic_write( + node->handle, + int(page_size_t(space->flags) + .physical())); } } @@ -1302,7 +1301,7 @@ fil_mutex_enter_and_prepare_for_io( } } - if (ulint size = UNIV_UNLIKELY(space->recv_size)) { + if (ulint size = ulint(UNIV_UNLIKELY(space->recv_size))) { ut_ad(node); bool success; if (fil_space_extend_must_retry(space, node, size, diff --git a/storage/innobase/fil/fil0pagecompress.cc b/storage/innobase/fil/fil0pagecompress.cc index 18f95c94d75..1eb9ec37f5d 100644 --- a/storage/innobase/fil/fil0pagecompress.cc +++ b/storage/innobase/fil/fil0pagecompress.cc @@ -99,7 +99,7 @@ fil_compress_page( byte* lzo_mem) /*!< in: temporal memory used by LZO */ { int err = Z_OK; - int comp_level = level; + int comp_level = int(level); ulint header_len = FIL_PAGE_DATA + FIL_PAGE_COMPRESSED_SIZE; ulint write_size=0; /* Cache to avoid change during function execution */ diff --git a/storage/innobase/fsp/fsp0fsp.cc b/storage/innobase/fsp/fsp0fsp.cc index 6128fe54ecc..80a2aa211db 100644 --- a/storage/innobase/fsp/fsp0fsp.cc +++ b/storage/innobase/fsp/fsp0fsp.cc @@ -3755,7 +3755,7 @@ fsp_page_is_free_func( ulint page_no, /*!< in: page offset */ mtr_t* mtr, /*!< in/out: mini-transaction */ const char *file, - ulint line) + unsigned line) { ut_ad(mtr); diff --git a/storage/innobase/gis/gis0sea.cc b/storage/innobase/gis/gis0sea.cc index 122d99dee8f..f23065ae3c7 100644 --- a/storage/innobase/gis/gis0sea.cc +++ b/storage/innobase/gis/gis0sea.cc @@ -542,7 +542,7 @@ rtr_pcur_open_low( ulint latch_mode,/*!< in: BTR_SEARCH_LEAF, ... */ btr_pcur_t* cursor, /*!< in: memory buffer for persistent cursor */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr) /*!< in: mtr */ { btr_cur_t* btr_cursor; @@ -718,7 +718,7 @@ rtr_page_get_father_node_ptr_func( out: cursor on node pointer record, its page x-latched */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr) /*!< in: mtr */ { dtuple_t* tuple; @@ -1262,7 +1262,7 @@ rtr_cur_restore_position_func( btr_cur_t* btr_cur, /*!< in: detached persistent cursor */ ulint level, /*!< in: index level */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr) /*!< in: mtr */ { dict_index_t* index; diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index b9caea017ab..8f1e7657d1d 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -640,25 +640,6 @@ static PSI_file_info all_innodb_files[] = { # endif /* UNIV_PFS_IO */ #endif /* HAVE_PSI_INTERFACE */ -/******************************************************************//** -Debug function used to read a MBR data */ - -#ifdef UNIV_DEBUG -void -srv_mbr_debug(const byte* data) -{ - double a, b, c , d; - a = mach_double_read(data); - data += sizeof(double); - b = mach_double_read(data); - data += sizeof(double); - c = mach_double_read(data); - data += sizeof(double); - d = mach_double_read(data); - ut_ad(a && b && c &&d); -} -#endif - static void innodb_remember_check_sysvar_funcs(); mysql_var_check_func check_sysvar_enum; @@ -4338,8 +4319,8 @@ innobase_change_buffering_inited_ok: " It will be removed in MariaDB 10.3."; } - srv_use_atomic_writes = (ibool) (innobase_use_atomic_writes && - my_may_have_atomic_write); + srv_use_atomic_writes + = innobase_use_atomic_writes && my_may_have_atomic_write; if (srv_use_atomic_writes && !srv_file_per_table) { fprintf(stderr, "InnoDB: Disabling atomic_writes as file_per_table is not used.\n"); @@ -10069,7 +10050,7 @@ ha_innobase::innobase_get_index( << " InnoDB name " << index->name() << " for table " << m_prebuilt->table->name.m_name; - for(ulint i=0; i < table->s->keys; i++) { + for(uint i=0; i < table->s->keys; i++) { index = innobase_index_lookup(m_share, i); key = table->key_info + keynr; diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index 726f641ef5a..82fa4b724f4 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -5019,7 +5019,7 @@ op_ok: ctx->prebuilt->trx->mysql_thd) ? DB_SUCCESS : DB_ERROR; ctx->new_table->fts->fts_status - &= ~TABLE_DICT_LOCKED; + &= ulint(~TABLE_DICT_LOCKED); if (error != DB_SUCCESS) { goto error_handling; diff --git a/storage/innobase/handler/i_s.cc b/storage/innobase/handler/i_s.cc index bc35f772af1..dd43a52ae66 100644 --- a/storage/innobase/handler/i_s.cc +++ b/storage/innobase/handler/i_s.cc @@ -950,8 +950,7 @@ fill_innodb_locks_from_cache( strlen(row->lock_table), thd); OK(fields[IDX_LOCK_TABLE]->store( - buf, static_cast<size_t>(bufend - buf), - system_charset_info)); + buf, uint(bufend - buf), system_charset_info)); /* lock_index */ if (row->lock_index != NULL) { @@ -2594,7 +2593,7 @@ i_s_metrics_fill( } else if (!(monitor_info->monitor_type & MONITOR_NO_AVERAGE) && !(monitor_info->monitor_type & MONITOR_DISPLAY_CURRENT)) { - if (time_diff) { + if (time_diff != 0) { OK(fields[METRIC_AVG_VALUE_START]->store( (double) MONITOR_VALUE_SINCE_START( count) / time_diff)); @@ -2619,7 +2618,7 @@ i_s_metrics_fill( time_diff = 0; } - if (time_diff) { + if (time_diff != 0) { OK(fields[METRIC_AVG_VALUE_RESET]->store( static_cast<double>( MONITOR_VALUE(count) / time_diff))); @@ -4931,7 +4930,7 @@ i_s_innodb_buffer_page_fill( OK(fields[IDX_BUFFER_PAGE_TABLE_NAME]->store( table_name, - static_cast<size_t>(table_name_end - table_name), + uint(table_name_end - table_name), system_charset_info)); fields[IDX_BUFFER_PAGE_TABLE_NAME]->set_notnull(); @@ -5053,7 +5052,7 @@ i_s_innodb_set_page_type( page_info->page_type = I_S_PAGE_TYPE_INDEX; } - page_info->data_size = (ulint)(page_header_get_field( + page_info->data_size = unsigned(page_header_get_field( page, PAGE_HEAP_TOP) - (page_is_comp(page) ? PAGE_NEW_SUPREMUM_END : PAGE_OLD_SUPREMUM_END) @@ -5651,7 +5650,7 @@ i_s_innodb_buf_page_lru_fill( OK(fields[IDX_BUF_LRU_PAGE_TABLE_NAME]->store( table_name, - static_cast<size_t>(table_name_end - table_name), + uint(table_name_end - table_name), system_charset_info)); fields[IDX_BUF_LRU_PAGE_TABLE_NAME]->set_notnull(); @@ -9155,7 +9154,8 @@ i_s_innodb_mutexes_fill_table( OK(field_store_string(fields[MUTEXES_NAME], mutex->cmutex_name)); OK(field_store_string(fields[MUTEXES_CREATE_FILE], innobase_basename(mutex->cfile_name))); - OK(field_store_ulint(fields[MUTEXES_CREATE_LINE], mutex->cline)); + OK(fields[MUTEXES_CREATE_LINE]->store(mutex->cline, true)); + fields[MUTEXES_CREATE_LINE]->set_notnull(); OK(field_store_ulint(fields[MUTEXES_OS_WAITS], (longlong)mutex->count_os_wait)); OK(schema_table_store_record(thd, tables->table)); } @@ -9168,7 +9168,8 @@ i_s_innodb_mutexes_fill_table( OK(field_store_string(fields[MUTEXES_NAME], block_mutex->cmutex_name)); OK(field_store_string(fields[MUTEXES_CREATE_FILE], buf1)); - OK(field_store_ulint(fields[MUTEXES_CREATE_LINE], block_mutex->cline)); + OK(fields[MUTEXES_CREATE_LINE]->store(block_mutex->cline, true)); + fields[MUTEXES_CREATE_LINE]->set_notnull(); OK(field_store_ulint(fields[MUTEXES_OS_WAITS], (longlong)block_mutex_oswait_count)); OK(schema_table_store_record(thd, tables->table)); } @@ -9192,7 +9193,8 @@ i_s_innodb_mutexes_fill_table( //OK(field_store_string(fields[MUTEXES_NAME], lock->lock_name)); OK(field_store_string(fields[MUTEXES_CREATE_FILE], innobase_basename(lock->cfile_name))); - OK(field_store_ulint(fields[MUTEXES_CREATE_LINE], lock->cline)); + OK(fields[MUTEXES_CREATE_LINE]->store(lock->cline, true)); + fields[MUTEXES_CREATE_LINE]->set_notnull(); OK(field_store_ulint(fields[MUTEXES_OS_WAITS], (longlong)lock->count_os_wait)); OK(schema_table_store_record(thd, tables->table)); } @@ -9205,7 +9207,8 @@ i_s_innodb_mutexes_fill_table( //OK(field_store_string(fields[MUTEXES_NAME], block_lock->lock_name)); OK(field_store_string(fields[MUTEXES_CREATE_FILE], buf1)); - OK(field_store_ulint(fields[MUTEXES_CREATE_LINE], block_lock->cline)); + OK(fields[MUTEXES_CREATE_LINE]->store(block_lock->cline, true)); + fields[MUTEXES_CREATE_LINE]->set_notnull(); OK(field_store_ulint(fields[MUTEXES_OS_WAITS], (longlong)block_lock_oswait_count)); OK(schema_table_store_record(thd, tables->table)); } diff --git a/storage/innobase/ibuf/ibuf0ibuf.cc b/storage/innobase/ibuf/ibuf0ibuf.cc index cf3ce487607..3bc56c2d737 100644 --- a/storage/innobase/ibuf/ibuf0ibuf.cc +++ b/storage/innobase/ibuf/ibuf0ibuf.cc @@ -810,7 +810,7 @@ ibuf_bitmap_get_map_page_func( const page_id_t& page_id, const page_size_t& page_size, const char* file, - ulint line, + unsigned line, mtr_t* mtr) { buf_block_t* block = NULL; @@ -1138,7 +1138,7 @@ ibuf_page_low( ibool x_latch, #endif /* UNIV_DEBUG */ const char* file, - ulint line, + unsigned line, mtr_t* mtr) { ibool ret; diff --git a/storage/innobase/include/btr0btr.h b/storage/innobase/include/btr0btr.h index 419c5db657d..4a80b5e4913 100644 --- a/storage/innobase/include/btr0btr.h +++ b/storage/innobase/include/btr0btr.h @@ -2,7 +2,7 @@ Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. -Copyright (c) 2014, 2016, MariaDB Corporation. All Rights Reserved. +Copyright (c) 2014, 2017, 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 @@ -79,66 +79,66 @@ enum btr_latch_mode { /** If this is ORed to btr_latch_mode, it means that the search tuple will be inserted to the index, at the searched position. When the record is not in the buffer pool, try to use the insert buffer. */ -#define BTR_INSERT 512 +#define BTR_INSERT 512U /** This flag ORed to btr_latch_mode says that we do the search in query optimization */ -#define BTR_ESTIMATE 1024 +#define BTR_ESTIMATE 1024U /** This flag ORed to BTR_INSERT says that we can ignore possible UNIQUE definition on secondary indexes when we decide if we can use the insert buffer to speed up inserts */ -#define BTR_IGNORE_SEC_UNIQUE 2048 +#define BTR_IGNORE_SEC_UNIQUE 2048U /** Try to delete mark the record at the searched position using the insert/delete buffer when the record is not in the buffer pool. */ -#define BTR_DELETE_MARK 4096 +#define BTR_DELETE_MARK 4096U /** Try to purge the record at the searched position using the insert/delete buffer when the record is not in the buffer pool. */ -#define BTR_DELETE 8192 +#define BTR_DELETE 8192U /** In the case of BTR_SEARCH_LEAF or BTR_MODIFY_LEAF, the caller is already holding an S latch on the index tree */ -#define BTR_ALREADY_S_LATCHED 16384 +#define BTR_ALREADY_S_LATCHED 16384U /** In the case of BTR_MODIFY_TREE, the caller specifies the intention to insert record only. It is used to optimize block->lock range.*/ -#define BTR_LATCH_FOR_INSERT 32768 +#define BTR_LATCH_FOR_INSERT 32768U /** In the case of BTR_MODIFY_TREE, the caller specifies the intention to delete record only. It is used to optimize block->lock range.*/ -#define BTR_LATCH_FOR_DELETE 65536 +#define BTR_LATCH_FOR_DELETE 65536U /** This flag is for undo insert of rtree. For rtree, we need this flag to find proper rec to undo insert.*/ -#define BTR_RTREE_UNDO_INS 131072 +#define BTR_RTREE_UNDO_INS 131072U /** In the case of BTR_MODIFY_LEAF, the caller intends to allocate or free the pages of externally stored fields. */ -#define BTR_MODIFY_EXTERNAL 262144 +#define BTR_MODIFY_EXTERNAL 262144U /** Try to delete mark the record at the searched position when the record is in spatial index */ -#define BTR_RTREE_DELETE_MARK 524288 - -#define BTR_LATCH_MODE_WITHOUT_FLAGS(latch_mode) \ - ((latch_mode) & ~(BTR_INSERT \ - | BTR_DELETE_MARK \ - | BTR_RTREE_UNDO_INS \ - | BTR_RTREE_DELETE_MARK \ - | BTR_DELETE \ - | BTR_ESTIMATE \ - | BTR_IGNORE_SEC_UNIQUE \ - | BTR_ALREADY_S_LATCHED \ - | BTR_LATCH_FOR_INSERT \ - | BTR_LATCH_FOR_DELETE \ - | BTR_MODIFY_EXTERNAL)) - -#define BTR_LATCH_MODE_WITHOUT_INTENTION(latch_mode) \ - ((latch_mode) & ~(BTR_LATCH_FOR_INSERT \ - | BTR_LATCH_FOR_DELETE \ - | BTR_MODIFY_EXTERNAL)) +#define BTR_RTREE_DELETE_MARK 524288U + +#define BTR_LATCH_MODE_WITHOUT_FLAGS(latch_mode) \ + ((latch_mode) & btr_latch_mode(~(BTR_INSERT \ + | BTR_DELETE_MARK \ + | BTR_RTREE_UNDO_INS \ + | BTR_RTREE_DELETE_MARK \ + | BTR_DELETE \ + | BTR_ESTIMATE \ + | BTR_IGNORE_SEC_UNIQUE \ + | BTR_ALREADY_S_LATCHED \ + | BTR_LATCH_FOR_INSERT \ + | BTR_LATCH_FOR_DELETE \ + | BTR_MODIFY_EXTERNAL))) + +#define BTR_LATCH_MODE_WITHOUT_INTENTION(latch_mode) \ + ((latch_mode) & btr_latch_mode(~(BTR_LATCH_FOR_INSERT \ + | BTR_LATCH_FOR_DELETE \ + | BTR_MODIFY_EXTERNAL))) /**************************************************************//** Report that an index page is corrupted. */ @@ -206,7 +206,7 @@ btr_block_get_func( const page_size_t& page_size, ulint mode, const char* file, - ulint line, + unsigned line, dict_index_t* index, mtr_t* mtr); @@ -507,7 +507,7 @@ btr_insert_on_non_leaf_level_func( ulint level, /*!< in: level, must be > 0 */ dtuple_t* tuple, /*!< in: the record to be inserted */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr); /*!< in: mtr */ #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) diff --git a/storage/innobase/include/btr0btr.ic b/storage/innobase/include/btr0btr.ic index 810ac8f8b67..308fcfe9b03 100644 --- a/storage/innobase/include/btr0btr.ic +++ b/storage/innobase/include/btr0btr.ic @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2015, 2016, MariaDB Corporation. +Copyright (c) 2015, 2017, 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 @@ -51,7 +51,7 @@ btr_block_get_func( const page_size_t& page_size, ulint mode, const char* file, - ulint line, + unsigned line, dict_index_t* index, mtr_t* mtr) { diff --git a/storage/innobase/include/btr0cur.h b/storage/innobase/include/btr0cur.h index 275c4dc51b0..19109e30b13 100644 --- a/storage/innobase/include/btr0cur.h +++ b/storage/innobase/include/btr0cur.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -142,7 +143,7 @@ btr_cur_optimistic_latch_leaves( ulint* latch_mode, btr_cur_t* cursor, const char* file, - ulint line, + unsigned line, mtr_t* mtr); /********************************************************************//** @@ -185,7 +186,7 @@ btr_cur_search_to_nth_level( currently has on search system: RW_S_LATCH, or 0 */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr, /*!< in/out: mini-transaction */ ib_uint64_t autoinc = 0); /*!< in: PAGE_ROOT_AUTO_INC to be written @@ -205,7 +206,7 @@ btr_cur_open_at_index_side_func( ulint level, /*!< in: level to search for (0=leaf) */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr) /*!< in/out: mini-transaction */ MY_ATTRIBUTE((nonnull)); @@ -223,7 +224,7 @@ btr_cur_open_at_rnd_pos_func( ulint latch_mode, /*!< in: BTR_SEARCH_LEAF, ... */ btr_cur_t* cursor, /*!< in/out: B-tree cursor */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr); /*!< in: mtr */ #define btr_cur_open_at_rnd_pos(i,l,c,m) \ btr_cur_open_at_rnd_pos_func(i,l,c,__FILE__,__LINE__,m) @@ -967,13 +968,13 @@ stored part. */ significant bit of the byte at smallest address) is set to 1 if this field does not 'own' the externally stored field; only the owner field is allowed to free the field in purge! */ -#define BTR_EXTERN_OWNER_FLAG 128 +#define BTR_EXTERN_OWNER_FLAG 128U /** If the second most significant bit of BTR_EXTERN_LEN (i.e., the second most significant bit of the byte at smallest address) is 1 then it means that the externally stored field was inherited from an earlier version of the row. In rollback we are not allowed to free an inherited external field. */ -#define BTR_EXTERN_INHERITED_FLAG 64 +#define BTR_EXTERN_INHERITED_FLAG 64U /** Number of searches down the B-tree in btr_cur_search_to_nth_level(). */ extern ulint btr_cur_n_non_sea; diff --git a/storage/innobase/include/btr0pcur.h b/storage/innobase/include/btr0pcur.h index 947316f0e4d..28636715c2b 100644 --- a/storage/innobase/include/btr0pcur.h +++ b/storage/innobase/include/btr0pcur.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -113,7 +114,7 @@ btr_pcur_open_low( ulint latch_mode,/*!< in: BTR_SEARCH_LEAF, ... */ btr_pcur_t* cursor, /*!< in: memory buffer for persistent cursor */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ ib_uint64_t autoinc,/*!< in: PAGE_ROOT_AUTO_INC to be written (0 if none) */ mtr_t* mtr); /*!< in: mtr */ @@ -145,7 +146,7 @@ btr_pcur_open_with_no_init_func( currently has on search system: RW_S_LATCH, or 0 */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr); /*!< in: mtr */ #define btr_pcur_open_with_no_init(ix,t,md,l,cur,has,m) \ btr_pcur_open_with_no_init_func(ix,t,md,l,cur,has,__FILE__,__LINE__,m) @@ -202,7 +203,7 @@ btr_pcur_open_on_user_rec_func( btr_pcur_t* cursor, /*!< in: memory buffer for persistent cursor */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr); /*!< in: mtr */ #define btr_pcur_open_on_user_rec(i,t,md,l,c,m) \ btr_pcur_open_on_user_rec_func(i,t,md,l,c,__FILE__,__LINE__,m) @@ -218,7 +219,7 @@ btr_pcur_open_at_rnd_pos_func( ulint latch_mode, /*!< in: BTR_SEARCH_LEAF, ... */ btr_pcur_t* cursor, /*!< in/out: B-tree pcur */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr); /*!< in: mtr */ #define btr_pcur_open_at_rnd_pos(i,l,c,m) \ btr_pcur_open_at_rnd_pos_func(i,l,c,__FILE__,__LINE__,m) @@ -272,7 +273,7 @@ btr_pcur_restore_position_func( ulint latch_mode, /*!< in: BTR_SEARCH_LEAF, ... */ btr_pcur_t* cursor, /*!< in: detached persistent cursor */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr); /*!< in: mtr */ #define btr_pcur_restore_position(l,cur,mtr) \ btr_pcur_restore_position_func(l,cur,__FILE__,__LINE__,mtr) diff --git a/storage/innobase/include/btr0pcur.ic b/storage/innobase/include/btr0pcur.ic index 60790bc1316..425593631d3 100644 --- a/storage/innobase/include/btr0pcur.ic +++ b/storage/innobase/include/btr0pcur.ic @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2015, 2016, MariaDB Corporation. +Copyright (c) 2015, 2017, 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 @@ -433,7 +433,7 @@ btr_pcur_open_low( ulint latch_mode,/*!< in: BTR_SEARCH_LEAF, ... */ btr_pcur_t* cursor, /*!< in: memory buffer for persistent cursor */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ ib_uint64_t autoinc,/*!< in: PAGE_ROOT_AUTO_INC to be written (0 if none) */ mtr_t* mtr) /*!< in: mtr */ @@ -499,7 +499,7 @@ btr_pcur_open_with_no_init_func( currently has on search system: RW_S_LATCH, or 0 */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr) /*!< in: mtr */ { btr_cur_t* btr_cursor; @@ -574,7 +574,7 @@ btr_pcur_open_at_rnd_pos_func( ulint latch_mode, /*!< in: BTR_SEARCH_LEAF, ... */ btr_pcur_t* cursor, /*!< in/out: B-tree pcur */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr) /*!< in: mtr */ { /* Initialize the cursor */ diff --git a/storage/innobase/include/buf0buf.h b/storage/innobase/include/buf0buf.h index 0279887b226..ea0dd48cdbd 100644 --- a/storage/innobase/include/buf0buf.h +++ b/storage/innobase/include/buf0buf.h @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2013, 2017, MariaDB Corporation. All Rights Reserved. +Copyright (c) 2013, 2017, 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 @@ -493,7 +493,7 @@ buf_page_optimistic_get( buf_block_t* block, /*!< in: guessed block */ ib_uint64_t modify_clock,/*!< in: modify clock value */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr); /*!< in: mini-transaction */ /********************************************************************//** This is used to get access to a known database page, when no waiting can be @@ -506,7 +506,7 @@ buf_page_get_known_nowait( buf_block_t* block, /*!< in: the known page */ ulint mode, /*!< in: BUF_MAKE_YOUNG or BUF_KEEP_OLD */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr); /*!< in: mini-transaction */ /** Given a tablespace id and page number tries to get that page. If the @@ -521,7 +521,7 @@ buf_block_t* buf_page_try_get_func( const page_id_t& page_id, const char* file, - ulint line, + unsigned line, mtr_t* mtr); /** Tries to get a page. @@ -567,7 +567,7 @@ buf_page_get_gen( buf_block_t* guess, ulint mode, const char* file, - ulint line, + unsigned line, mtr_t* mtr, dberr_t* err); @@ -647,7 +647,7 @@ buf_page_reset_file_page_was_freed( Reads the freed_page_clock of a buffer block. @return freed_page_clock */ UNIV_INLINE -ulint +unsigned buf_page_get_freed_page_clock( /*==========================*/ const buf_page_t* bpage) /*!< in: block */ @@ -656,7 +656,7 @@ buf_page_get_freed_page_clock( Reads the freed_page_clock of a buffer block. @return freed_page_clock */ UNIV_INLINE -ulint +unsigned buf_block_get_freed_page_clock( /*===========================*/ const buf_block_t* block) /*!< in: block */ @@ -720,7 +720,7 @@ buf_block_buf_fix_inc_func( /*=======================*/ # ifdef UNIV_DEBUG const char* file, /*!< in: file name */ - ulint line, /*!< in: line */ + unsigned line, /*!< in: line */ # endif /* UNIV_DEBUG */ buf_block_t* block) /*!< in/out: block to bufferfix */ MY_ATTRIBUTE((nonnull)); @@ -820,7 +820,7 @@ Gets the hash value of a block. This can be used in searches in the lock hash table. @return lock hash value */ UNIV_INLINE -ulint +unsigned buf_block_get_lock_hash_val( /*========================*/ const buf_block_t* block) /*!< in: block */ @@ -1160,7 +1160,7 @@ void buf_page_set_old( /*=============*/ buf_page_t* bpage, /*!< in/out: control block */ - ibool old); /*!< in: old */ + bool old); /*!< in: old */ /*********************************************************************//** Determine the time of first access of a block in the buffer pool. @return ut_time_ms() at the time of first access, 0 if not accessed */ @@ -1274,7 +1274,7 @@ buf_page_io_complete( Calculates the index of a buffer pool to the buf_pool[] array. @return the position of the buffer pool in buf_pool[] */ UNIV_INLINE -ulint +unsigned buf_pool_index( /*===========*/ const buf_pool_t* buf_pool) /*!< in: buffer pool */ @@ -2204,7 +2204,7 @@ struct buf_pool_t{ recovery and is set to NULL once the recovery is over. Protected by flush_list_mutex */ - ulint freed_page_clock;/*!< a sequence number used + unsigned freed_page_clock;/*!< a sequence number used to count the number of buffer blocks removed from the end of the LRU list; NOTE that this diff --git a/storage/innobase/include/buf0buf.ic b/storage/innobase/include/buf0buf.ic index 5e75c446bbd..429c7fd3ba6 100644 --- a/storage/innobase/include/buf0buf.ic +++ b/storage/innobase/include/buf0buf.ic @@ -2,7 +2,7 @@ Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, Google Inc. -Copyright (c) 2014, 2016, MariaDB Corporation. +Copyright (c) 2014, 2017, MariaDB Corporation. Portions of this file contain modifications contributed and copyrighted by Google, Inc. Those modifications are gratefully acknowledged and are described @@ -71,12 +71,12 @@ buf_pool_get_curr_size(void) Calculates the index of a buffer pool to the buf_pool[] array. @return the position of the buffer pool in buf_pool[] */ UNIV_INLINE -ulint +unsigned buf_pool_index( /*===========*/ const buf_pool_t* buf_pool) /*!< in: buffer pool */ { - ulint i = buf_pool - buf_pool_ptr; + unsigned i = unsigned(buf_pool - buf_pool_ptr); ut_ad(i < MAX_BUFFER_POOLS); ut_ad(i < srv_buf_pool_instances); return(i); @@ -91,10 +91,8 @@ buf_pool_from_bpage( /*================*/ const buf_page_t* bpage) /*!< in: buffer pool page */ { - ulint i; - i = bpage->buf_pool_index; - ut_ad(i < srv_buf_pool_instances); - return(&buf_pool_ptr[i]); + ut_ad(bpage->buf_pool_index < srv_buf_pool_instances); + return(&buf_pool_ptr[bpage->buf_pool_index]); } /******************************************************************//** @@ -124,7 +122,7 @@ buf_pool_get_n_pages(void) Reads the freed_page_clock of a buffer block. @return freed_page_clock */ UNIV_INLINE -ulint +unsigned buf_page_get_freed_page_clock( /*==========================*/ const buf_page_t* bpage) /*!< in: block */ @@ -137,7 +135,7 @@ buf_page_get_freed_page_clock( Reads the freed_page_clock of a buffer block. @return freed_page_clock */ UNIV_INLINE -ulint +unsigned buf_block_get_freed_page_clock( /*===========================*/ const buf_block_t* block) /*!< in: block */ @@ -162,7 +160,7 @@ buf_page_peek_if_young( /* FIXME: bpage->freed_page_clock is 31 bits */ return((buf_pool->freed_page_clock & ((1UL << 31) - 1)) - < ((ulint) bpage->freed_page_clock + < (bpage->freed_page_clock + (buf_pool->curr_size * (BUF_LRU_OLD_RATIO_DIV - buf_pool->LRU_old_ratio) / (BUF_LRU_OLD_RATIO_DIV * 4)))); @@ -629,7 +627,7 @@ void buf_page_set_old( /*=============*/ buf_page_t* bpage, /*!< in/out: control block */ - ibool old) /*!< in: old */ + bool old) /*!< in: old */ { #ifdef UNIV_DEBUG buf_pool_t* buf_pool = buf_pool_from_bpage(bpage); @@ -792,7 +790,7 @@ Gets the hash value of the page the pointer is pointing to. This can be used in searches in the lock hash table. @return lock hash value */ UNIV_INLINE -ulint +unsigned buf_block_get_lock_hash_val( /*========================*/ const buf_block_t* block) /*!< in: block */ @@ -978,7 +976,7 @@ buf_block_buf_fix_inc_func( /*=======================*/ #ifdef UNIV_DEBUG const char* file, /*!< in: file name */ - ulint line, /*!< in: line */ + unsigned line, /*!< in: line */ #endif /* UNIV_DEBUG */ buf_block_t* block) /*!< in/out: block to bufferfix */ { diff --git a/storage/innobase/include/buf0flu.h b/storage/innobase/include/buf0flu.h index 273f9666419..fd124e8f94e 100644 --- a/storage/innobase/include/buf0flu.h +++ b/storage/innobase/include/buf0flu.h @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2014, 2016, MariaDB Corporation +Copyright (c) 2014, 2017, 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 @@ -376,7 +376,7 @@ public: /** Check pages have been flushed and removed from the flush list in a buffer pool instance. - @pram[in] instance_no buffer pool instance no + @param[in] instance_no buffer pool instance no @return true if the pages were removed from the flush list */ bool is_complete(ulint instance_no) { diff --git a/storage/innobase/include/data0data.ic b/storage/innobase/include/data0data.ic index 2fe5190591b..81788885aa5 100644 --- a/storage/innobase/include/data0data.ic +++ b/storage/innobase/include/data0data.ic @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1994, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -221,7 +222,7 @@ dfield_write_mbr( #endif /* UNIV_VALGRIND_DEBUG */ field->ext = 0; - for (int i = 0; i < SPDIMS * 2; i++) { + for (unsigned i = 0; i < SPDIMS * 2; i++) { mach_double_write(static_cast<byte*>(field->data) + i * sizeof(double), mbr[i]); } diff --git a/storage/innobase/include/data0type.h b/storage/innobase/include/data0type.h index d38aa7c1533..958f5a4d0de 100644 --- a/storage/innobase/include/data0type.h +++ b/storage/innobase/include/data0type.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -147,7 +148,7 @@ columns, and for them the precise type is usually not used at all. for InnoDB's own system tables */ #define DATA_ERROR 111 /* another relic from pre-MySQL time */ -#define DATA_MYSQL_TYPE_MASK 255 /* AND with this mask to extract the MySQL +#define DATA_MYSQL_TYPE_MASK 255U/* AND with this mask to extract the MySQL type from the precise type */ #define DATA_MYSQL_TRUE_VARCHAR 15 /* MySQL type code for the >= 5.0.3 format true VARCHAR */ @@ -168,14 +169,14 @@ be less than 256 */ #define DATA_FTS_DOC_ID 3 /* Used as FTS DOC ID column */ -#define DATA_SYS_PRTYPE_MASK 0xF /* mask to extract the above from prtype */ +#define DATA_SYS_PRTYPE_MASK 0xFU /* mask to extract the above from prtype */ /* Flags ORed to the precise data type */ -#define DATA_NOT_NULL 256 /* this is ORed to the precise type when +#define DATA_NOT_NULL 256U /* this is ORed to the precise type when the column is declared as NOT NULL */ -#define DATA_UNSIGNED 512 /* this id ORed to the precise type when +#define DATA_UNSIGNED 512U /* this id ORed to the precise type when we have an unsigned integer type */ -#define DATA_BINARY_TYPE 1024 /* if the data type is a binary character +#define DATA_BINARY_TYPE 1024U /* if the data type is a binary character string, this is ORed to the precise type: this only holds for tables created with >= MySQL-4.0.14 */ @@ -183,14 +184,14 @@ be less than 256 */ In earlier versions this was set for some BLOB columns. */ -#define DATA_GIS_MBR 2048 /* Used as GIS MBR column */ +#define DATA_GIS_MBR 2048U /* Used as GIS MBR column */ #define DATA_MBR_LEN SPDIMS * 2 * sizeof(double) /* GIS MBR length*/ -#define DATA_LONG_TRUE_VARCHAR 4096 /* this is ORed to the precise data +#define DATA_LONG_TRUE_VARCHAR 4096U /* this is ORed to the precise data type when the column is true VARCHAR where MySQL uses 2 bytes to store the data len; for shorter VARCHARs MySQL uses only 1 byte */ -#define DATA_VIRTUAL 8192 /* Virtual column */ +#define DATA_VIRTUAL 8192U /* Virtual column */ /** Get the number of system columns in a table. */ #define dict_table_get_n_sys_cols(table) DATA_N_SYS_COLS @@ -221,14 +222,12 @@ length from corresponding column or index definition, instead of this MACRO /* Pack mbminlen, mbmaxlen to mbminmaxlen. */ #define DATA_MBMINMAXLEN(mbminlen, mbmaxlen) \ - ((mbmaxlen) * DATA_MBMAX + (mbminlen)) -/* Get mbminlen from mbminmaxlen. Cast the result of UNIV_EXPECT to ulint -because in GCC it returns a long. */ -#define DATA_MBMINLEN(mbminmaxlen) ((ulint) \ - UNIV_EXPECT(((mbminmaxlen) % DATA_MBMAX), \ - 1)) + unsigned((mbmaxlen) * DATA_MBMAX + (mbminlen)) +/* Get mbminlen from mbminmaxlen. */ +#define DATA_MBMINLEN(mbminmaxlen) \ + unsigned(UNIV_EXPECT((mbminmaxlen) % DATA_MBMAX, 1)) /* Get mbmaxlen from mbminmaxlen. */ -#define DATA_MBMAXLEN(mbminmaxlen) ((ulint) ((mbminmaxlen) / DATA_MBMAX)) +#define DATA_MBMAXLEN(mbminmaxlen) unsigned((mbminmaxlen) / DATA_MBMAX) /* For checking if a geom_type is POINT */ #define DATA_POINT_MTYPE(mtype) ((mtype) == DATA_POINT \ @@ -369,16 +368,21 @@ ulint dtype_get_charset_coll( /*===================*/ ulint prtype);/*!< in: precise data type */ -/*********************************************************************//** -Forms a precise type from the < 4.1.2 format precise type plus the +/** Form a precise type from the < 4.1.2 format precise type plus the charset-collation code. +@param[in] old_prtype MySQL type code and the flags + DATA_BINARY_TYPE etc. +@param[in] charset_coll character-set collation code @return precise type, including the charset-collation code */ -ulint -dtype_form_prtype( -/*==============*/ - ulint old_prtype, /*!< in: the MySQL type code and the flags - DATA_BINARY_TYPE etc. */ - ulint charset_coll); /*!< in: MySQL charset-collation code */ +UNIV_INLINE +uint32_t +dtype_form_prtype(ulint old_prtype, ulint charset_coll) +{ + ut_ad(old_prtype < 256 * 256); + ut_ad(charset_coll <= MAX_CHAR_COLL_NUM); + return(uint32_t(old_prtype + (charset_coll << 16))); +} + /*********************************************************************//** Determines if a MySQL string type is a subset of UTF-8. This function may return false negatives, in case further character-set collation diff --git a/storage/innobase/include/data0type.ic b/storage/innobase/include/data0type.ic index 869d0ba8ed6..9ec85dfaf50 100644 --- a/storage/innobase/include/data0type.ic +++ b/storage/innobase/include/data0type.ic @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2014, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -151,9 +152,9 @@ dtype_set( ut_ad(type); ut_ad(mtype <= DATA_MTYPE_MAX); - type->mtype = mtype; - type->prtype = prtype; - type->len = len; + type->mtype = unsigned(mtype); + type->prtype = unsigned(prtype); + type->len = unsigned(len); dtype_set_mblen(type); } diff --git a/storage/innobase/include/dict0dict.h b/storage/innobase/include/dict0dict.h index 036d905f0d8..92f00549dc9 100644 --- a/storage/innobase/include/dict0dict.h +++ b/storage/innobase/include/dict0dict.h @@ -399,7 +399,7 @@ void dict_table_add_to_cache( /*====================*/ dict_table_t* table, /*!< in: table */ - ibool can_be_evicted, /*!< in: TRUE if can be evicted*/ + bool can_be_evicted, /*!< in: whether can be evicted*/ mem_heap_t* heap) /*!< in: temporary heap */ MY_ATTRIBUTE((nonnull)); /**********************************************************************//** @@ -1567,11 +1567,9 @@ dict_index_calc_min_rec_len( /*========================*/ const dict_index_t* index) /*!< in: index */ MY_ATTRIBUTE((nonnull, warn_unused_result)); -/********************************************************************//** -Reserves the dictionary system mutex for MySQL. */ +/** Reserve the dictionary system mutex. */ void -dict_mutex_enter_for_mysql_func(const char * file, ulint line); -/*============================*/ +dict_mutex_enter_for_mysql_func(const char *file, unsigned line); #define dict_mutex_enter_for_mysql() \ dict_mutex_enter_for_mysql_func(__FILE__, __LINE__) diff --git a/storage/innobase/include/dict0dict.ic b/storage/innobase/include/dict0dict.ic index 905a1b78782..061153589c8 100644 --- a/storage/innobase/include/dict0dict.ic +++ b/storage/innobase/include/dict0dict.ic @@ -1418,7 +1418,7 @@ dict_index_set_space( ut_ad(index); ut_ad(index->magic_n == DICT_INDEX_MAGIC_N); - index->space = space; + index->space = unsigned(space); } /*********************************************************************//** diff --git a/storage/innobase/include/dict0mem.h b/storage/innobase/include/dict0mem.h index a458054c225..ff28add8ca4 100644 --- a/storage/innobase/include/dict0mem.h +++ b/storage/innobase/include/dict0mem.h @@ -300,28 +300,28 @@ for unknown bits in order to protect backward incompatibility. */ #define DICT_TF2_BIT_MASK ~DICT_TF2_UNUSED_BIT_MASK /** TEMPORARY; TRUE for tables from CREATE TEMPORARY TABLE. */ -#define DICT_TF2_TEMPORARY 1 +#define DICT_TF2_TEMPORARY 1U /** The table has an internal defined DOC ID column */ -#define DICT_TF2_FTS_HAS_DOC_ID 2 +#define DICT_TF2_FTS_HAS_DOC_ID 2U /** The table has an FTS index */ -#define DICT_TF2_FTS 4 +#define DICT_TF2_FTS 4U /** Need to add Doc ID column for FTS index build. This is a transient bit for index build */ -#define DICT_TF2_FTS_ADD_DOC_ID 8 +#define DICT_TF2_FTS_ADD_DOC_ID 8U /** This bit is used during table creation to indicate that it will use its own tablespace instead of the system tablespace. */ -#define DICT_TF2_USE_FILE_PER_TABLE 16 +#define DICT_TF2_USE_FILE_PER_TABLE 16U /** Set when we discard/detach the tablespace */ -#define DICT_TF2_DISCARDED 32 +#define DICT_TF2_DISCARDED 32U /** This bit is set if all aux table names (both common tables and index tables) of a FTS table are in HEX format. */ -#define DICT_TF2_FTS_AUX_HEX_NAME 64 +#define DICT_TF2_FTS_AUX_HEX_NAME 64U /* @} */ @@ -1257,12 +1257,12 @@ struct dict_foreign_set_free { /** The flags for ON_UPDATE and ON_DELETE can be ORed; the default is that a foreign key constraint is enforced, therefore RESTRICT just means no flag */ /* @{ */ -#define DICT_FOREIGN_ON_DELETE_CASCADE 1 /*!< ON DELETE CASCADE */ -#define DICT_FOREIGN_ON_DELETE_SET_NULL 2 /*!< ON UPDATE SET NULL */ -#define DICT_FOREIGN_ON_UPDATE_CASCADE 4 /*!< ON DELETE CASCADE */ -#define DICT_FOREIGN_ON_UPDATE_SET_NULL 8 /*!< ON UPDATE SET NULL */ -#define DICT_FOREIGN_ON_DELETE_NO_ACTION 16 /*!< ON DELETE NO ACTION */ -#define DICT_FOREIGN_ON_UPDATE_NO_ACTION 32 /*!< ON UPDATE NO ACTION */ +#define DICT_FOREIGN_ON_DELETE_CASCADE 1U /*!< ON DELETE CASCADE */ +#define DICT_FOREIGN_ON_DELETE_SET_NULL 2U /*!< ON UPDATE SET NULL */ +#define DICT_FOREIGN_ON_UPDATE_CASCADE 4U /*!< ON DELETE CASCADE */ +#define DICT_FOREIGN_ON_UPDATE_SET_NULL 8U /*!< ON UPDATE SET NULL */ +#define DICT_FOREIGN_ON_DELETE_NO_ACTION 16U /*!< ON DELETE NO ACTION */ +#define DICT_FOREIGN_ON_UPDATE_NO_ACTION 32U /*!< ON UPDATE NO ACTION */ /* @} */ /** Display an identifier. @@ -1323,7 +1323,7 @@ struct dict_vcol_templ_t { /** when mysql_table was cached */ uint64_t mysql_table_query_id; - dict_vcol_templ_t() : vtempl(0), mysql_table_query_id(-1) {} + dict_vcol_templ_t() : vtempl(0), mysql_table_query_id(~0ULL) {} }; /** These are used when MySQL FRM and InnoDB data dictionary are diff --git a/storage/innobase/include/dict0mem.ic b/storage/innobase/include/dict0mem.ic index e7d68dd4b9d..da2ac629850 100644 --- a/storage/innobase/include/dict0mem.ic +++ b/storage/innobase/include/dict0mem.ic @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -59,7 +60,7 @@ dict_mem_fill_index_struct( /* Assign a ulint to a 4-bit-mapped field. Only the low-order 4 bits are assigned. */ - index->type = type; + index->type = unsigned(type); index->space = (unsigned int) space; index->page = FIL_NULL; index->merge_threshold = DICT_INDEX_MERGE_THRESHOLD_DEFAULT; diff --git a/storage/innobase/include/dict0stats.h b/storage/innobase/include/dict0stats.h index 8941b399f7d..cb16a4dee9c 100644 --- a/storage/innobase/include/dict0stats.h +++ b/storage/innobase/include/dict0stats.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2009, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -77,14 +78,10 @@ dict_stats_set_persistent( ibool ps_off) /*!< in: persistent stats explicitly disabled */ MY_ATTRIBUTE((nonnull)); -/*********************************************************************//** -Check whether persistent statistics is enabled for a given table. -@return TRUE if enabled, FALSE otherwise */ +/** @return whether persistent statistics is enabled for a given table */ UNIV_INLINE -ibool -dict_stats_is_persistent_enabled( -/*=============================*/ - const dict_table_t* table) /*!< in: table */ +bool +dict_stats_is_persistent_enabled(const dict_table_t* table) MY_ATTRIBUTE((nonnull, warn_unused_result)); /*********************************************************************//** @@ -100,14 +97,11 @@ dict_stats_auto_recalc_set( ibool auto_recalc_on, /*!< in: explicitly enabled */ ibool auto_recalc_off); /*!< in: explicitly disabled */ -/*********************************************************************//** -Check whether auto recalc is enabled for a given table. -@return TRUE if enabled, FALSE otherwise */ +/** @return whether auto recalc is enabled for a given table*/ UNIV_INLINE -ibool -dict_stats_auto_recalc_is_enabled( -/*==============================*/ - const dict_table_t* table); /*!< in: table */ +bool +dict_stats_auto_recalc_is_enabled(const dict_table_t* table) + MY_ATTRIBUTE((nonnull, warn_unused_result)); /*********************************************************************//** Initialize table's stats for the first time when opening a table. */ diff --git a/storage/innobase/include/dict0stats.ic b/storage/innobase/include/dict0stats.ic index 61c88773912..1efe5780b58 100644 --- a/storage/innobase/include/dict0stats.ic +++ b/storage/innobase/include/dict0stats.ic @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved. +Copyright (c) 2017, 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 @@ -60,14 +61,10 @@ dict_stats_set_persistent( table->stat_persistent = stat_persistent; } -/*********************************************************************//** -Check whether persistent statistics is enabled for a given table. -@return TRUE if enabled, FALSE otherwise */ +/** @return whether persistent statistics is enabled for a given table */ UNIV_INLINE -ibool -dict_stats_is_persistent_enabled( -/*=============================*/ - const dict_table_t* table) /*!< in: table */ +bool +dict_stats_is_persistent_enabled(const dict_table_t* table) { /* Because of the nature of this check (non-locking) it is possible that a table becomes: @@ -89,9 +86,9 @@ dict_stats_is_persistent_enabled( if (stat_persistent & DICT_STATS_PERSISTENT_ON) { ut_ad(!(stat_persistent & DICT_STATS_PERSISTENT_OFF)); - return(TRUE); + return(true); } else if (stat_persistent & DICT_STATS_PERSISTENT_OFF) { - return(FALSE); + return(false); } else { return(srv_stats_persistent); } @@ -126,23 +123,19 @@ dict_stats_auto_recalc_set( table->stats_auto_recalc = stats_auto_recalc; } -/*********************************************************************//** -Check whether auto recalc is enabled for a given table. -@return TRUE if enabled, FALSE otherwise */ +/** @return whether auto recalc is enabled for a given table*/ UNIV_INLINE -ibool -dict_stats_auto_recalc_is_enabled( -/*==============================*/ - const dict_table_t* table) /*!< in: table */ +bool +dict_stats_auto_recalc_is_enabled(const dict_table_t* table) { /* we rely on this read to be atomic */ ib_uint32_t stats_auto_recalc = table->stats_auto_recalc; if (stats_auto_recalc & DICT_STATS_AUTO_RECALC_ON) { ut_ad(!(stats_auto_recalc & DICT_STATS_AUTO_RECALC_OFF)); - return(TRUE); + return(true); } else if (stats_auto_recalc & DICT_STATS_AUTO_RECALC_OFF) { - return(FALSE); + return(false); } else { return(srv_stats_auto_recalc); } diff --git a/storage/innobase/include/dict0types.h b/storage/innobase/include/dict0types.h index b0623f82bb7..27b4cc0e694 100644 --- a/storage/innobase/include/dict0types.h +++ b/storage/innobase/include/dict0types.h @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2013, 2016, MariaDB Corporation. All Rights Reserved. +Copyright (c) 2013, 2017, 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 @@ -101,7 +101,7 @@ extern uint ibuf_debug; #define SPATIAL_STATUS_SHIFT 12 /** Mask to encode/decode spatial status. */ -#define SPATIAL_STATUS_MASK (3 << SPATIAL_STATUS_SHIFT) +#define SPATIAL_STATUS_MASK (3U << SPATIAL_STATUS_SHIFT) #if SPATIAL_STATUS_MASK < REC_VERSION_56_MAX_INDEX_COL_LEN # error SPATIAL_STATUS_MASK < REC_VERSION_56_MAX_INDEX_COL_LEN diff --git a/storage/innobase/include/fil0crypt.h b/storage/innobase/include/fil0crypt.h index 7185857c039..7211d295c27 100644 --- a/storage/innobase/include/fil0crypt.h +++ b/storage/innobase/include/fil0crypt.h @@ -114,7 +114,7 @@ struct fil_space_crypt_struct : st_encryption_scheme The object is expected to be placed in a buffer that has been zero-initialized. */ fil_space_crypt_struct( - ulint new_type, + uint new_type, uint new_min_key_version, uint new_key_id, ulint offset, diff --git a/storage/innobase/include/fil0crypt.ic b/storage/innobase/include/fil0crypt.ic index 65ca4def85f..fe3a21f0643 100644 --- a/storage/innobase/include/fil0crypt.ic +++ b/storage/innobase/include/fil0crypt.ic @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2015, 2016, MariaDB Corporation. +Copyright (c) 2015, 2017, 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 @@ -59,7 +59,7 @@ fil_page_encryption_status( } } } else { - ulint key = mach_read_from_4(buf + FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION); + unsigned key = mach_read_from_4(buf + FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION); if (!encryption_key_version_exists(crypt_data->key_id, key)) { return 1; } diff --git a/storage/innobase/include/fil0fil.h b/storage/innobase/include/fil0fil.h index cda2fdb4656..587ad902c2a 100644 --- a/storage/innobase/include/fil0fil.h +++ b/storage/innobase/include/fil0fil.h @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2017, MariaDB Corporation. All Rights Reserved. +Copyright (c) 2017, 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 @@ -176,8 +176,6 @@ struct fil_space_t { /** True if page 0 of tablespace is read */ bool read_page0; - /** True if we have tested if this filespace supports atomic writes */ - bool atomic_write_tested; /** True if the device this filespace is on supports atomic writes */ bool atomic_write_supported; diff --git a/storage/innobase/include/fsp0fsp.h b/storage/innobase/include/fsp0fsp.h index 892e6d1035e..621498b9a4c 100644 --- a/storage/innobase/include/fsp0fsp.h +++ b/storage/innobase/include/fsp0fsp.h @@ -862,7 +862,7 @@ fsp_page_is_free_func( ulint page, /*!< in: page offset */ mtr_t* mtr, /*!< in/out: mini-transaction */ const char *file, - ulint line); + unsigned line); #define fsp_page_is_free(space,page,mtr) \ fsp_page_is_free_func(space,page,mtr, __FILE__, __LINE__) diff --git a/storage/innobase/include/fsp0types.h b/storage/innobase/include/fsp0types.h index 429af4210b7..ec33f2e4d10 100644 --- a/storage/innobase/include/fsp0types.h +++ b/storage/innobase/include/fsp0types.h @@ -416,7 +416,7 @@ fsp_flags_is_valid(ulint flags) bits 10..14 would be nonzero 0bsssaa where sss is nonzero PAGE_SSIZE (3, 4, 6, or 7) and aa is ATOMIC_WRITES (not 0b11). */ - if (FSP_FLAGS_GET_RESERVED(flags) & ~1) { + if (FSP_FLAGS_GET_RESERVED(flags) & ~1U) { return(false); } diff --git a/storage/innobase/include/gis0rtree.h b/storage/innobase/include/gis0rtree.h index 436374fd6b2..950e2f2e9f5 100644 --- a/storage/innobase/include/gis0rtree.h +++ b/storage/innobase/include/gis0rtree.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2014, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -151,7 +152,7 @@ rtr_cur_restore_position_func( btr_cur_t* cursor, /*!< in: detached persistent cursor */ ulint level, /*!< in: index level */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr); /*!< in: mtr */ #define rtr_cur_restore_position(l,cur,level,mtr) \ rtr_cur_restore_position_func(l,cur,level,__FILE__,__LINE__,mtr) @@ -351,7 +352,7 @@ rtr_page_get_father_node_ptr_func( out: cursor on node pointer record, its page x-latched */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr); /*!< in: mtr */ @@ -402,7 +403,7 @@ rtr_pcur_open_low( ulint latch_mode,/*!< in: BTR_SEARCH_LEAF, ... */ btr_pcur_t* cursor, /*!< in: memory buffer for persistent cursor */ const char* file, /*!< in: file name */ - ulint line, /*!< in: line where called */ + unsigned line, /*!< in: line where called */ mtr_t* mtr); /*!< in: mtr */ #define rtr_pcur_open(i,t,md,l,c,m) \ diff --git a/storage/innobase/include/gis0rtree.ic b/storage/innobase/include/gis0rtree.ic index a30db122273..7f64a9b13a1 100644 --- a/storage/innobase/include/gis0rtree.ic +++ b/storage/innobase/include/gis0rtree.ic @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2014, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -64,7 +65,7 @@ rtr_page_cal_mbr( ut_ad(len == DATA_MBR_LEN); inc = 0; - for (int i = 0; i < SPDIMS; i++) { + for (unsigned i = 0; i < SPDIMS; i++) { bmin = mach_double_read(field + inc); bmax = mach_double_read(field + inc + sizeof(double)); @@ -167,7 +168,7 @@ rtr_write_mbr( { const double* my_mbr = reinterpret_cast<const double*>(mbr); - for (int i = 0; i < SPDIMS * 2; i++) { + for (unsigned i = 0; i < SPDIMS * 2; i++) { mach_double_write(data + i * sizeof(double), my_mbr[i]); } } @@ -181,7 +182,7 @@ rtr_read_mbr( const byte* data, /*!< in: data */ rtr_mbr_t* mbr) /*!< out: MBR */ { - for (int i = 0; i < SPDIMS * 2; i++) { + for (unsigned i = 0; i < SPDIMS * 2; i++) { (reinterpret_cast<double*>(mbr))[i] = mach_double_read( data + i * sizeof(double)); diff --git a/storage/innobase/include/ibuf0ibuf.h b/storage/innobase/include/ibuf0ibuf.h index e646f678964..ee8272d724c 100644 --- a/storage/innobase/include/ibuf0ibuf.h +++ b/storage/innobase/include/ibuf0ibuf.h @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2016, MariaDB Corporation. +Copyright (c) 2016, 2017, 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 @@ -274,7 +274,7 @@ ibuf_page_low( ibool x_latch, #endif /* UNIV_DEBUG */ const char* file, - ulint line, + unsigned line, mtr_t* mtr) MY_ATTRIBUTE((warn_unused_result)); diff --git a/storage/innobase/include/lock0lock.h b/storage/innobase/include/lock0lock.h index d96ba0d9c7d..b211b24d7ff 100644 --- a/storage/innobase/include/lock0lock.h +++ b/storage/innobase/include/lock0lock.h @@ -612,7 +612,7 @@ Calculates the hash value of a page file address: used in inserting or searching for a lock in the hash table. @return hashed value */ UNIV_INLINE -ulint +unsigned lock_rec_hash( /*==========*/ ulint space, /*!< in: space */ @@ -960,15 +960,15 @@ lock_trx_alloc_locks(trx_t* trx); type_mode field in a lock */ /** Lock types */ /* @{ */ -#define LOCK_TABLE 16 /*!< table lock */ -#define LOCK_REC 32 /*!< record lock */ +#define LOCK_TABLE 16U /*!< table lock */ +#define LOCK_REC 32U /*!< record lock */ #define LOCK_TYPE_MASK 0xF0UL /*!< mask used to extract lock type from the type_mode field in a lock */ #if LOCK_MODE_MASK & LOCK_TYPE_MASK # error "LOCK_MODE_MASK & LOCK_TYPE_MASK" #endif -#define LOCK_WAIT 256 /*!< Waiting lock flag; when set, it +#define LOCK_WAIT 256U /*!< Waiting lock flag; when set, it means that the lock has not yet been granted, it is just waiting for its turn in the wait queue */ @@ -976,14 +976,14 @@ lock_trx_alloc_locks(trx_t* trx); #define LOCK_ORDINARY 0 /*!< this flag denotes an ordinary next-key lock in contrast to LOCK_GAP or LOCK_REC_NOT_GAP */ -#define LOCK_GAP 512 /*!< when this bit is set, it means that the +#define LOCK_GAP 512U /*!< when this bit is set, it means that the lock holds only on the gap before the record; for instance, an x-lock on the gap does not give permission to modify the record on which the bit is set; locks of this type are created when records are removed from the index chain of records */ -#define LOCK_REC_NOT_GAP 1024 /*!< this bit means that the lock is only on +#define LOCK_REC_NOT_GAP 1024U /*!< this bit means that the lock is only on the index record and does NOT block inserts to the gap before the index record; this is used in the case when we retrieve a record @@ -991,7 +991,7 @@ lock_trx_alloc_locks(trx_t* trx); locking plain SELECTs (not part of UPDATE or DELETE) when the user has set the READ COMMITTED isolation level */ -#define LOCK_INSERT_INTENTION 2048 /*!< this bit is set when we place a waiting +#define LOCK_INSERT_INTENTION 2048U/*!< this bit is set when we place a waiting gap type record lock request in order to let an insert of an index record to wait until there are no conflicting locks by other @@ -999,8 +999,8 @@ lock_trx_alloc_locks(trx_t* trx); remains set when the waiting lock is granted, or if the lock is inherited to a neighboring record */ -#define LOCK_PREDICATE 8192 /*!< Predicate lock */ -#define LOCK_PRDT_PAGE 16384 /*!< Page lock */ +#define LOCK_PREDICATE 8192U /*!< Predicate lock */ +#define LOCK_PRDT_PAGE 16384U /*!< Page lock */ #if (LOCK_WAIT|LOCK_GAP|LOCK_REC_NOT_GAP|LOCK_INSERT_INTENTION|LOCK_PREDICATE|LOCK_PRDT_PAGE)&LOCK_MODE_MASK diff --git a/storage/innobase/include/lock0lock.ic b/storage/innobase/include/lock0lock.ic index ba2311c02ea..6c28300467d 100644 --- a/storage/innobase/include/lock0lock.ic +++ b/storage/innobase/include/lock0lock.ic @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -56,14 +57,14 @@ Calculates the hash value of a page file address: used in inserting or searching for a lock in the hash table. @return hashed value */ UNIV_INLINE -ulint +unsigned lock_rec_hash( /*==========*/ ulint space, /*!< in: space */ ulint page_no)/*!< in: page number */ { - return(hash_calc_hash(lock_rec_fold(space, page_no), - lock_sys->rec_hash)); + return(unsigned(hash_calc_hash(lock_rec_fold(space, page_no), + lock_sys->rec_hash))); } /*********************************************************************//** diff --git a/storage/innobase/include/mach0data.h b/storage/innobase/include/mach0data.h index 3d6bccec718..d3e3a53c655 100644 --- a/storage/innobase/include/mach0data.h +++ b/storage/innobase/include/mach0data.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -45,14 +46,13 @@ mach_write_to_1( /*============*/ byte* b, /*!< in: pointer to byte where to store */ ulint n); /*!< in: ulint integer to be stored, >= 0, < 256 */ -/********************************************************//** -The following function is used to fetch data from one byte. +/** The following function is used to fetch data from one byte. +@param[in] b pointer to a byte to read @return ulint integer, >= 0, < 256 */ UNIV_INLINE -ulint +uint8_t mach_read_from_1( -/*=============*/ - const byte* b) /*!< in: pointer to byte */ + const byte* b) MY_ATTRIBUTE((warn_unused_result)); /*******************************************************//** The following function is used to store data in two consecutive @@ -63,17 +63,15 @@ mach_write_to_2( /*============*/ byte* b, /*!< in: pointer to two bytes where to store */ ulint n); /*!< in: ulint integer to be stored, >= 0, < 64k */ -/********************************************************//** -The following function is used to fetch data from two consecutive +/** The following function is used to fetch data from 2 consecutive bytes. The most significant byte is at the lowest address. -@return ulint integer, >= 0, < 64k */ +@param[in] b pointer to 2 bytes where to store +@return 2-byte integer, >= 0, < 64k */ UNIV_INLINE -ulint +uint16_t mach_read_from_2( -/*=============*/ - const byte* b) /*!< in: pointer to two bytes */ + const byte* b) MY_ATTRIBUTE((warn_unused_result)); - /********************************************************//** The following function is used to convert a 16-bit data item to the canonical format, for fast bytewise equality test @@ -105,15 +103,14 @@ mach_write_to_3( /*============*/ byte* b, /*!< in: pointer to 3 bytes where to store */ ulint n); /*!< in: ulint integer to be stored */ -/********************************************************//** -The following function is used to fetch data from 3 consecutive +/** The following function is used to fetch data from 3 consecutive bytes. The most significant byte is at the lowest address. -@return ulint integer */ +@param[in] b pointer to 3 bytes to read +@return 32 bit integer */ UNIV_INLINE -ulint +uint32_t mach_read_from_3( -/*=============*/ - const byte* b) /*!< in: pointer to 3 bytes */ + const byte* b) MY_ATTRIBUTE((warn_unused_result)); /*******************************************************//** The following function is used to store data in four consecutive @@ -124,15 +121,14 @@ mach_write_to_4( /*============*/ byte* b, /*!< in: pointer to four bytes where to store */ ulint n); /*!< in: ulint integer to be stored */ -/********************************************************//** -The following function is used to fetch data from 4 consecutive +/** The following function is used to fetch data from 4 consecutive bytes. The most significant byte is at the lowest address. -@return ulint integer */ +@param[in] b pointer to 4 bytes to read +@return 32 bit integer */ UNIV_INLINE -ulint +uint32_t mach_read_from_4( -/*=============*/ - const byte* b) /*!< in: pointer to four bytes */ + const byte* b) MY_ATTRIBUTE((warn_unused_result)); /*********************************************************//** Writes a ulint in a compressed form (1..5 bytes). diff --git a/storage/innobase/include/mach0data.ic b/storage/innobase/include/mach0data.ic index 31cb873cdf6..6c879b38354 100644 --- a/storage/innobase/include/mach0data.ic +++ b/storage/innobase/include/mach0data.ic @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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,30 +63,28 @@ mach_write_to_2( b[1] = (byte)(n); } -/********************************************************//** -The following function is used to fetch data from one byte. +/** The following function is used to fetch data from one byte. +@param[in] b pointer to a byte to read @return ulint integer, >= 0, < 256 */ UNIV_INLINE -ulint +uint8_t mach_read_from_1( -/*=============*/ - const byte* b) /*!< in: pointer to byte */ + const byte* b) { ut_ad(b); - return((ulint)(b[0])); + return(uint8_t(*b)); } -/********************************************************//** -The following function is used to fetch data from 2 consecutive +/** The following function is used to fetch data from 2 consecutive bytes. The most significant byte is at the lowest address. -@return ulint integer */ +@param[in] b pointer to 2 bytes to read +@return 2-byte integer, >= 0, < 64k */ UNIV_INLINE -ulint +uint16_t mach_read_from_2( -/*=============*/ - const byte* b) /*!< in: pointer to 2 bytes */ + const byte* b) { - return(((ulint)(b[0]) << 8) | (ulint)(b[1])); + return(uint16_t(uint16_t(b[0]) << 8 | b[1])); } #ifndef UNIV_INNOCHECKSUM @@ -139,23 +138,21 @@ mach_write_to_3( b[2] = (byte)(n); } -/********************************************************//** -The following function is used to fetch data from 3 consecutive +/** The following function is used to fetch data from 3 consecutive bytes. The most significant byte is at the lowest address. -@return ulint integer */ +@param[in] b pointer to 3 bytes to read +@return uint32_t integer */ UNIV_INLINE -ulint +uint32_t mach_read_from_3( -/*=============*/ - const byte* b) /*!< in: pointer to 3 bytes */ + const byte* b) { ut_ad(b); - return( ((ulint)(b[0]) << 16) - | ((ulint)(b[1]) << 8) - | (ulint)(b[2]) + return( (static_cast<uint32_t>(b[0]) << 16) + | (static_cast<uint32_t>(b[1]) << 8) + | static_cast<uint32_t>(b[2]) ); } - #endif /* !UNIV_INNOCHECKSUM */ /*******************************************************//** @@ -176,21 +173,20 @@ mach_write_to_4( b[3] = (byte) n; } -/********************************************************//** -The following function is used to fetch data from 4 consecutive +/** The following function is used to fetch data from 4 consecutive bytes. The most significant byte is at the lowest address. -@return ulint integer */ +@param[in] b pointer to 4 bytes to read +@return 32 bit integer */ UNIV_INLINE -ulint +uint32_t mach_read_from_4( -/*=============*/ - const byte* b) /*!< in: pointer to four bytes */ + const byte* b) { ut_ad(b); - return( ((ulint)(b[0]) << 24) - | ((ulint)(b[1]) << 16) - | ((ulint)(b[2]) << 8) - | (ulint)(b[3]) + return( (static_cast<uint32_t>(b[0]) << 24) + | (static_cast<uint32_t>(b[1]) << 16) + | (static_cast<uint32_t>(b[2]) << 8) + | static_cast<uint32_t>(b[3]) ); } diff --git a/storage/innobase/include/mem0mem.h b/storage/innobase/include/mem0mem.h index 991d1179098..c44b6d38b78 100644 --- a/storage/innobase/include/mem0mem.h +++ b/storage/innobase/include/mem0mem.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -121,7 +122,7 @@ mem_heap_create_func( ulint size, #ifdef UNIV_DEBUG const char* file_name, - ulint line, + unsigned line, #endif /* UNIV_DEBUG */ ulint type); @@ -371,7 +372,7 @@ struct mem_block_info_t { ulint magic_n;/* magic number for debugging */ #ifdef UNIV_DEBUG char file_name[8];/* file name where the mem heap was created */ - ulint line; /*!< line number where the mem heap was created */ + unsigned line; /*!< line number where the mem heap was created */ #endif /* UNIV_DEBUG */ UT_LIST_BASE_NODE_T(mem_block_t) base; /* In the first block in the the list this is the base node of the list of blocks; diff --git a/storage/innobase/include/mem0mem.ic b/storage/innobase/include/mem0mem.ic index 82c90584e6f..a8292a16143 100644 --- a/storage/innobase/include/mem0mem.ic +++ b/storage/innobase/include/mem0mem.ic @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1994, 2014, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -48,7 +49,7 @@ mem_heap_create_block_func( ulint n, /*!< in: number of bytes needed for user data */ #ifdef UNIV_DEBUG const char* file_name,/*!< in: file name where created */ - ulint line, /*!< in: line where created */ + unsigned line, /*!< in: line where created */ #endif /* UNIV_DEBUG */ ulint type); /*!< in: type of heap: MEM_HEAP_DYNAMIC or MEM_HEAP_BUFFER */ @@ -477,7 +478,7 @@ mem_heap_create_func( ulint size, #ifdef UNIV_DEBUG const char* file_name, - ulint line, + unsigned line, #endif /* UNIV_DEBUG */ ulint type) { diff --git a/storage/innobase/include/mtr0mtr.h b/storage/innobase/include/mtr0mtr.h index e761aaf7ec1..972209c1bf6 100644 --- a/storage/innobase/include/mtr0mtr.h +++ b/storage/innobase/include/mtr0mtr.h @@ -378,21 +378,21 @@ struct mtr_t { @param lock rw-lock @param file file name from where called @param line line number in file */ - inline void s_lock(rw_lock_t* lock, const char* file, ulint line); + inline void s_lock(rw_lock_t* lock, const char* file, unsigned line); /** Locks a rw-latch in X mode. NOTE: use mtr_x_lock(). @param lock rw-lock @param file file name from where called @param line line number in file */ - inline void x_lock(rw_lock_t* lock, const char* file, ulint line); + inline void x_lock(rw_lock_t* lock, const char* file, unsigned line); /** Locks a rw-latch in X mode. NOTE: use mtr_sx_lock(). @param lock rw-lock @param file file name from where called @param line line number in file */ - inline void sx_lock(rw_lock_t* lock, const char* file, ulint line); + inline void sx_lock(rw_lock_t* lock, const char* file, unsigned line); /** Acquire a tablespace X-latch. NOTE: use mtr_x_lock_space(). @@ -403,7 +403,7 @@ struct mtr_t { fil_space_t* x_lock_space( ulint space_id, const char* file, - ulint line); + unsigned line); /** Release an object in the memo stack. @param object object diff --git a/storage/innobase/include/mtr0mtr.ic b/storage/innobase/include/mtr0mtr.ic index f0354756b23..82f552f22ce 100644 --- a/storage/innobase/include/mtr0mtr.ic +++ b/storage/innobase/include/mtr0mtr.ic @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1995, 2014, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -232,7 +233,7 @@ mtr_t::set_log_mode(mtr_log_t mode) Locks a lock in s-mode. */ void -mtr_t::s_lock(rw_lock_t* lock, const char* file, ulint line) +mtr_t::s_lock(rw_lock_t* lock, const char* file, unsigned line) { rw_lock_s_lock_inline(lock, 0, file, line); @@ -243,7 +244,7 @@ mtr_t::s_lock(rw_lock_t* lock, const char* file, ulint line) Locks a lock in x-mode. */ void -mtr_t::x_lock(rw_lock_t* lock, const char* file, ulint line) +mtr_t::x_lock(rw_lock_t* lock, const char* file, unsigned line) { rw_lock_x_lock_inline(lock, 0, file, line); @@ -254,7 +255,7 @@ mtr_t::x_lock(rw_lock_t* lock, const char* file, ulint line) Locks a lock in sx-mode. */ void -mtr_t::sx_lock(rw_lock_t* lock, const char* file, ulint line) +mtr_t::sx_lock(rw_lock_t* lock, const char* file, unsigned line) { rw_lock_sx_lock_inline(lock, 0, file, line); diff --git a/storage/innobase/include/os0file.h b/storage/innobase/include/os0file.h index ffe7b1a48bf..e30c427dff6 100644 --- a/storage/innobase/include/os0file.h +++ b/storage/innobase/include/os0file.h @@ -110,7 +110,7 @@ whole block gets written. This should be true even in most cases of a crash: if this fails for a log block, then it is equivalent to a media failure in the log. */ -#define OS_FILE_LOG_BLOCK_SIZE 512 +#define OS_FILE_LOG_BLOCK_SIZE 512U /** Options for os_file_create_func @{ */ enum os_file_create_t { @@ -861,7 +861,7 @@ pfs_os_file_create_simple_func( bool read_only, bool* success, const char* src_file, - ulint src_line) + uint src_line) MY_ATTRIBUTE((warn_unused_result)); /** NOTE! Please use the corresponding macro @@ -892,7 +892,7 @@ pfs_os_file_create_simple_no_error_handling_func( bool read_only, bool* success, const char* src_file, - ulint src_line) + uint src_line) MY_ATTRIBUTE((warn_unused_result)); /** NOTE! Please use the corresponding macro os_file_create(), not directly @@ -926,7 +926,7 @@ pfs_os_file_create_func( bool read_only, bool* success, const char* src_file, - ulint src_line) + uint src_line) MY_ATTRIBUTE((warn_unused_result)); /** NOTE! Please use the corresponding macro os_file_close(), not directly @@ -941,7 +941,7 @@ bool pfs_os_file_close_func( os_file_t file, const char* src_file, - ulint src_line); + uint src_line); /** NOTE! Please use the corresponding macro os_file_read(), not directly this function! @@ -964,7 +964,7 @@ pfs_os_file_read_func( os_offset_t offset, ulint n, const char* src_file, - ulint src_line); + uint src_line); /** NOTE! Please use the corresponding macro os_file_read_no_error_handling(), not directly this function! @@ -990,7 +990,7 @@ pfs_os_file_read_no_error_handling_func( ulint n, ulint* o, const char* src_file, - ulint src_line); + uint src_line); /** NOTE! Please use the corresponding macro os_aio(), not directly this function! @@ -1028,7 +1028,7 @@ pfs_os_aio_func( fil_node_t* m1, void* m2, const char* src_file, - ulint src_line); + uint src_line); /** NOTE! Please use the corresponding macro os_file_write(), not directly this function! @@ -1054,7 +1054,7 @@ pfs_os_file_write_func( os_offset_t offset, ulint n, const char* src_file, - ulint src_line); + uint src_line); /** NOTE! Please use the corresponding macro os_file_flush(), not directly this function! @@ -1070,7 +1070,7 @@ bool pfs_os_file_flush_func( os_file_t file, const char* src_file, - ulint src_line); + uint src_line); /** NOTE! Please use the corresponding macro os_file_rename(), not directly this function! @@ -1089,7 +1089,7 @@ pfs_os_file_rename_func( const char* oldpath, const char* newpath, const char* src_file, - ulint src_line); + uint src_line); /** NOTE! Please use the corresponding macro os_file_delete(), not directly @@ -1107,7 +1107,7 @@ pfs_os_file_delete_func( mysql_pfs_key_t key, const char* name, const char* src_file, - ulint src_line); + uint src_line); /** NOTE! Please use the corresponding macro os_file_delete_if_exists(), not @@ -1127,7 +1127,7 @@ pfs_os_file_delete_if_exists_func( const char* name, bool* exist, const char* src_file, - ulint src_line); + uint src_line); #else /* UNIV_PFS_IO */ diff --git a/storage/innobase/include/os0file.ic b/storage/innobase/include/os0file.ic index 5c7c4d45ca6..807d3254b9d 100644 --- a/storage/innobase/include/os0file.ic +++ b/storage/innobase/include/os0file.ic @@ -52,7 +52,7 @@ pfs_os_file_create_simple_func( bool read_only, bool* success, const char* src_file, - ulint src_line) + uint src_line) { PSI_file_locker_state state; struct PSI_file_locker* locker = NULL; @@ -101,7 +101,7 @@ pfs_os_file_create_simple_no_error_handling_func( bool read_only, bool* success, const char* src_file, - ulint src_line) + uint src_line) { PSI_file_locker_state state; struct PSI_file_locker* locker = NULL; @@ -152,7 +152,7 @@ pfs_os_file_create_func( bool read_only, bool* success, const char* src_file, - ulint src_line) + uint src_line) { PSI_file_locker_state state; struct PSI_file_locker* locker = NULL; @@ -184,7 +184,7 @@ bool pfs_os_file_close_func( os_file_t file, const char* src_file, - ulint src_line) + uint src_line) { PSI_file_locker_state state; struct PSI_file_locker* locker = NULL; @@ -236,7 +236,7 @@ pfs_os_aio_func( fil_node_t* m1, void* m2, const char* src_file, - ulint src_line) + uint src_line) { PSI_file_locker_state state; struct PSI_file_locker* locker = NULL; @@ -278,7 +278,7 @@ pfs_os_file_read_func( os_offset_t offset, ulint n, const char* src_file, - ulint src_line) + uint src_line) { PSI_file_locker_state state; struct PSI_file_locker* locker = NULL; @@ -321,7 +321,7 @@ pfs_os_file_read_no_error_handling_func( ulint n, ulint* o, const char* src_file, - ulint src_line) + uint src_line) { PSI_file_locker_state state; struct PSI_file_locker* locker = NULL; @@ -361,7 +361,7 @@ pfs_os_file_write_func( os_offset_t offset, ulint n, const char* src_file, - ulint src_line) + uint src_line) { PSI_file_locker_state state; struct PSI_file_locker* locker = NULL; @@ -392,7 +392,7 @@ bool pfs_os_file_flush_func( os_file_t file, const char* src_file, - ulint src_line) + uint src_line) { PSI_file_locker_state state; struct PSI_file_locker* locker = NULL; @@ -424,7 +424,7 @@ pfs_os_file_rename_func( const char* oldpath, const char* newpath, const char* src_file, - ulint src_line) + uint src_line) { PSI_file_locker_state state; @@ -456,7 +456,7 @@ pfs_os_file_delete_func( mysql_pfs_key_t key, const char* name, const char* src_file, - ulint src_line) + uint src_line) { PSI_file_locker_state state; struct PSI_file_locker* locker = NULL; @@ -489,7 +489,7 @@ pfs_os_file_delete_if_exists_func( const char* name, bool* exist, const char* src_file, - ulint src_line) + uint src_line) { PSI_file_locker_state state; struct PSI_file_locker* locker = NULL; @@ -504,4 +504,3 @@ pfs_os_file_delete_if_exists_func( return(result); } #endif /* UNIV_PFS_IO */ - diff --git a/storage/innobase/include/page0page.ic b/storage/innobase/include/page0page.ic index a70ca3da8d8..3940931125e 100644 --- a/storage/innobase/include/page0page.ic +++ b/storage/innobase/include/page0page.ic @@ -252,7 +252,7 @@ page_header_set_ptr( if (ptr == NULL) { offs = 0; } else { - offs = ptr - page; + offs = ulint(ptr - page); } ut_ad((field != PAGE_HEAP_TOP) || offs); @@ -1248,11 +1248,9 @@ page_mem_free( ut_ad(rec_offs_validate(rec, index, offsets)); free = page_header_get_ptr(page, PAGE_FREE); - bool scrub = srv_immediate_scrub_data_uncompressed; - if (scrub) { + if (srv_immediate_scrub_data_uncompressed) { /* scrub record */ - uint size = rec_offs_data_size(offsets); - memset(rec, 0, size); + memset(rec, 0, rec_offs_data_size(offsets)); } page_rec_set_next(rec, free); diff --git a/storage/innobase/include/page0size.h b/storage/innobase/include/page0size.h index ca173db9b6d..30a996df0a6 100644 --- a/storage/innobase/include/page0size.h +++ b/storage/innobase/include/page0size.h @@ -82,7 +82,7 @@ public: ssize = (0 == ssize) ? UNIV_PAGE_SSIZE_ORIG : ssize; /* Convert from a 'log2 minus 9' to a page size in bytes. */ - const ulint size = ((UNIV_ZIP_SIZE_MIN >> 1) << ssize); + const unsigned size = ((UNIV_ZIP_SIZE_MIN >> 1) << ssize); ut_ad(size <= UNIV_PAGE_SIZE_MAX); ut_ad(size <= (1 << PAGE_SIZE_T_SIZE_BITS)); @@ -102,7 +102,7 @@ public: /* Convert from a 'log2 minus 9' to a page size in bytes. */ - const ulint phy + const unsigned phy = ((UNIV_ZIP_SIZE_MIN >> 1) << ssize); ut_ad(phy <= UNIV_ZIP_SIZE_MAX); diff --git a/storage/innobase/include/page0zip.h b/storage/innobase/include/page0zip.h index 4a32595af66..f4da2b55385 100644 --- a/storage/innobase/include/page0zip.h +++ b/storage/innobase/include/page0zip.h @@ -2,6 +2,7 @@ Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. +Copyright (c) 2017, 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 @@ -69,11 +70,11 @@ extern uint page_zip_level; + DATA_TRX_ID_LEN \ + DATA_ROLL_PTR_LEN) /** Mask of record offsets */ -#define PAGE_ZIP_DIR_SLOT_MASK 0x3fff +#define PAGE_ZIP_DIR_SLOT_MASK 0x3fffU /** 'owned' flag */ -#define PAGE_ZIP_DIR_SLOT_OWNED 0x4000 +#define PAGE_ZIP_DIR_SLOT_OWNED 0x4000U /** 'deleted' flag */ -#define PAGE_ZIP_DIR_SLOT_DEL 0x8000 +#define PAGE_ZIP_DIR_SLOT_DEL 0x8000U /* Whether or not to log compressed page images to avoid possible compression algorithm changes in zlib. */ diff --git a/storage/innobase/include/page0zip.ic b/storage/innobase/include/page0zip.ic index 9cc54dc42fa..5f754e1f993 100644 --- a/storage/innobase/include/page0zip.ic +++ b/storage/innobase/include/page0zip.ic @@ -2,6 +2,7 @@ Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. +Copyright (c) 2017, 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 @@ -133,11 +134,11 @@ page_zip_set_size( ulint size) /*!< in: size in bytes */ { if (size) { - int ssize; + unsigned ssize; ut_ad(ut_is_2pow(size)); - for (ssize = 1; size > (ulint) (512 << ssize); ssize++) { + for (ssize = 1; size > (512U << ssize); ssize++) { } page_zip->ssize = ssize; @@ -268,9 +269,9 @@ page_zip_max_ins_size( trailer_len += PAGE_ZIP_DIR_SLOT_SIZE; - return((lint) page_zip_get_size(page_zip) - - trailer_len - page_zip->m_end - - (REC_N_NEW_EXTRA_BYTES - 2)); + return(lint(page_zip_get_size(page_zip) + - trailer_len - page_zip->m_end + - (REC_N_NEW_EXTRA_BYTES - 2))); } /**********************************************************************//** diff --git a/storage/innobase/include/rem0rec.h b/storage/innobase/include/rem0rec.h index ed700139b53..4b82a6b05b9 100644 --- a/storage/innobase/include/rem0rec.h +++ b/storage/innobase/include/rem0rec.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -458,7 +459,7 @@ rec_get_offsets_func( (ULINT_UNDEFINED if all fields) */ #ifdef UNIV_DEBUG const char* file, /*!< in: file name where called */ - ulint line, /*!< in: line number where called */ + unsigned line, /*!< in: line number where called */ #endif /* UNIV_DEBUG */ mem_heap_t** heap) /*!< in/out: memory heap */ #ifdef UNIV_DEBUG diff --git a/storage/innobase/include/row0ins.h b/storage/innobase/include/row0ins.h index 4038c32b9c0..00a32942de2 100644 --- a/storage/innobase/include/row0ins.h +++ b/storage/innobase/include/row0ins.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -153,7 +154,7 @@ row_ins_index_entry_big_rec_func( #ifndef DBUG_OFF const void* thd, /*!< in: connection, or NULL */ #endif /* DBUG_OFF */ - ulint line) /*!< in: line number of caller */ + unsigned line) /*!< in: line number of caller */ 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) \ diff --git a/storage/innobase/include/row0merge.h b/storage/innobase/include/row0merge.h index 9e71ee42bb0..1b61c475c6f 100644 --- a/storage/innobase/include/row0merge.h +++ b/storage/innobase/include/row0merge.h @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2015, 2016, MariaDB Corporation. +Copyright (c) 2015, 2017, 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 @@ -283,8 +283,8 @@ row_merge_create_index( /*********************************************************************//** Check if a transaction can use an index. -@return TRUE if index can be used by the transaction else FALSE */ -ibool +@return whether the index can be used by the transaction */ +bool row_merge_is_index_usable( /*======================*/ const trx_t* trx, /*!< in: transaction */ diff --git a/storage/innobase/include/row0mysql.h b/storage/innobase/include/row0mysql.h index 607f7c96389..0e4ebafc990 100644 --- a/storage/innobase/include/row0mysql.h +++ b/storage/innobase/include/row0mysql.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2000, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -337,7 +338,7 @@ row_mysql_lock_data_dictionary_func( /*================================*/ trx_t* trx, /*!< in/out: transaction */ const char* file, /*!< in: file name */ - ulint line); /*!< in: line number */ + unsigned line); /*!< in: line number */ #define row_mysql_lock_data_dictionary(trx) \ row_mysql_lock_data_dictionary_func(trx, __FILE__, __LINE__) /*********************************************************************//** @@ -354,7 +355,7 @@ row_mysql_freeze_data_dictionary_func( /*==================================*/ trx_t* trx, /*!< in/out: transaction */ const char* file, /*!< in: file name */ - ulint line); /*!< in: line number */ + unsigned line); /*!< in: line number */ #define row_mysql_freeze_data_dictionary(trx) \ row_mysql_freeze_data_dictionary_func(trx, __FILE__, __LINE__) /*********************************************************************//** diff --git a/storage/innobase/include/row0upd.ic b/storage/innobase/include/row0upd.ic index 8b794e47a07..18c72309930 100644 --- a/storage/innobase/include/row0upd.ic +++ b/storage/innobase/include/row0upd.ic @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -97,10 +98,10 @@ upd_field_set_field_no( dict_index_t* index, /*!< in: index */ trx_t* trx) /*!< in: transaction */ { - upd_field->field_no = field_no; + upd_field->field_no = unsigned(field_no); upd_field->orig_len = 0; - if (field_no >= dict_index_get_n_fields(index)) { + if (UNIV_UNLIKELY(field_no >= dict_index_get_n_fields(index))) { ib::error() << " trying to access field " << field_no << " in " << index->name @@ -125,19 +126,10 @@ upd_field_set_v_field_no( ulint field_no, dict_index_t* index) { - upd_field->field_no = field_no; + ut_a(field_no < dict_table_get_n_v_cols(index->table)); + upd_field->field_no = unsigned(field_no); upd_field->orig_len = 0; - if (field_no >= dict_table_get_n_v_cols(index->table)) { - ib::error() - << " trying to access virtual field " << field_no - << " in " << index->name - << " of table " << index->table->name - << " which contains only " << index->table->n_v_cols - << " virutal columns"; - ut_ad(0); - } - dict_col_copy_type(&dict_table_get_nth_v_col( index->table, field_no)->m_col, dfield_get_type(&upd_field->new_val)); diff --git a/storage/innobase/include/sync0arr.h b/storage/innobase/include/sync0arr.h index bc419a9be8f..23b9b746d20 100644 --- a/storage/innobase/include/sync0arr.h +++ b/storage/innobase/include/sync0arr.h @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1995, 2014, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2015, 2016, MariaDB Corporation. +Copyright (c) 2015, 2017, 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 @@ -49,7 +49,7 @@ sync_array_get_and_reserve_cell( void* object, /*!< in: pointer to the object to wait for */ ulint type, /*!< in: lock request type */ const char* file, /*!< in: file where requested */ - ulint line, /*!< in: line where requested */ + unsigned line, /*!< in: line where requested */ sync_cell_t** cell); /*!< out: the cell reserved, never NULL */ /******************************************************************//** Reserves a wait array cell for waiting for an object. @@ -60,7 +60,7 @@ sync_array_reserve_cell( void* object, /*!< in: pointer to the object to wait for */ ulint type, /*!< in: lock request type */ const char* file, /*!< in: file where requested */ - ulint line); /*!< in: line where requested */ + unsigned line); /*!< in: line where requested */ /******************************************************************//** This function should be called when a thread starts to wait on diff --git a/storage/innobase/include/sync0arr.ic b/storage/innobase/include/sync0arr.ic index a15e2176278..cd1d8e27625 100644 --- a/storage/innobase/include/sync0arr.ic +++ b/storage/innobase/include/sync0arr.ic @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -61,7 +62,7 @@ sync_array_get_and_reserve_cell( void* object, /*!< in: pointer to the object to wait for */ ulint type, /*!< in: lock request type */ const char* file, /*!< in: file where requested */ - ulint line, /*!< in: line where requested */ + unsigned line, /*!< in: line where requested */ sync_cell_t** cell) /*!< out: the cell reserved, never NULL */ { sync_array_t* sync_arr = NULL; diff --git a/storage/innobase/include/sync0policy.h b/storage/innobase/include/sync0policy.h index 0eaefc7167a..1a430328f0e 100644 --- a/storage/innobase/include/sync0policy.h +++ b/storage/innobase/include/sync0policy.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2013, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -70,7 +71,7 @@ public: void locked( const Mutex* mutex, const char* filename, - ulint line) + unsigned line) UNIV_NOTHROW { m_mutex = mutex; @@ -92,7 +93,7 @@ public: m_filename = NULL; - m_line = ULINT_UNDEFINED; + m_line = 0; } /** Print information about the latch @@ -134,7 +135,7 @@ public: const char* m_filename; /** Line mumber in filename */ - ulint m_line; + unsigned m_line; /** Thread ID of the thread that own(ed) the mutex */ os_thread_id_t m_thread_id; @@ -176,7 +177,7 @@ public: void enter( const Mutex* mutex, const char* filename, - ulint line) + unsigned line) UNIV_NOTHROW; /** Called when the mutex is locked @@ -186,7 +187,7 @@ public: void locked( const Mutex* mutex, const char* filename, - ulint line) + unsigned line) UNIV_NOTHROW; /** Called when the mutex is released @@ -210,7 +211,7 @@ public: } /** @return the name of the file from the mutex was acquired */ - ulint get_enter_line() const + unsigned get_enter_line() const UNIV_NOTHROW { return(m_context.m_line); @@ -240,7 +241,7 @@ struct NoPolicy { void init(const Mutex&, latch_id_t, const char*, uint32_t) UNIV_NOTHROW { } void destroy() UNIV_NOTHROW { } - void enter(const Mutex&, const char*, ulint line) UNIV_NOTHROW { } + void enter(const Mutex&, const char*, unsigned line) UNIV_NOTHROW { } void add(uint32_t, uint32_t) UNIV_NOTHROW { } void locked(const Mutex&, const char*, ulint) UNIV_NOTHROW { } void release(const Mutex&) UNIV_NOTHROW { } @@ -293,7 +294,7 @@ public: meta.get_counter()->single_register(&m_count); - sync_file_created_register(this, filename, line); + sync_file_created_register(this, filename, uint16_t(line)); ut_d(MutexDebug<MutexType>::init(m_id)); } @@ -341,7 +342,7 @@ public: void enter( const MutexType& mutex, const char* filename, - ulint line) + unsigned line) UNIV_NOTHROW { ut_d(MutexDebug<MutexType>::enter(&mutex, filename, line)); @@ -354,7 +355,7 @@ public: void locked( const MutexType& mutex, const char* filename, - ulint line) + unsigned line) UNIV_NOTHROW { ut_d(MutexDebug<MutexType>::locked(&mutex, filename, line)); @@ -492,7 +493,7 @@ public: void locked( const MutexType& mutex, const char* filename, - ulint line) + unsigned line) UNIV_NOTHROW { ut_d(MutexDebug<MutexType>::locked(&mutex, filename, line)); @@ -513,7 +514,7 @@ public: void enter( const MutexType& mutex, const char* filename, - ulint line) + unsigned line) UNIV_NOTHROW { ut_d(MutexDebug<MutexType>::enter(&mutex, filename, line)); diff --git a/storage/innobase/include/sync0policy.ic b/storage/innobase/include/sync0policy.ic index f7598fe7854..f3526bbfef5 100644 --- a/storage/innobase/include/sync0policy.ic +++ b/storage/innobase/include/sync0policy.ic @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2013, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -57,7 +58,7 @@ template <typename Mutex> void MutexDebug<Mutex>::enter( const Mutex* mutex, const char* name, - ulint line) + unsigned line) UNIV_NOTHROW { ut_ad(!is_owned()); @@ -75,7 +76,7 @@ template <typename Mutex> void MutexDebug<Mutex>::locked( const Mutex* mutex, const char* name, - ulint line) + unsigned line) UNIV_NOTHROW { ut_ad(!is_owned()); diff --git a/storage/innobase/include/sync0rw.h b/storage/innobase/include/sync0rw.h index 79532790f76..cf4a646cdcc 100644 --- a/storage/innobase/include/sync0rw.h +++ b/storage/innobase/include/sync0rw.h @@ -302,7 +302,7 @@ rw_lock_create_func( latch_level_t level, /*!< in: level */ #endif /* UNIV_DEBUG */ const char* cfile_name, /*!< in: file name where created */ - ulint cline); /*!< in: file line where created */ + unsigned cline); /*!< in: file line where created */ /******************************************************************//** Calling this function is obligatory only if the memory buffer containing the rw-lock is freed. Removes an rw-lock object from the global list. The @@ -334,7 +334,7 @@ rw_lock_s_lock_low( /*!< 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 */ - ulint line); /*!< in: line where requested */ + unsigned line); /*!< in: line where requested */ /******************************************************************//** NOTE! Use the corresponding macro, not directly this function, except if you supply the file name and line number. Lock an rw-lock in shared mode @@ -350,7 +350,7 @@ rw_lock_s_lock_func( ulint pass, /*!< 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 */ - ulint line); /*!< in: line where requested */ + unsigned line); /*!< in: line where requested */ /******************************************************************//** NOTE! Use the corresponding macro, not directly this function! Lock an rw-lock in exclusive mode for the current thread if the lock can be @@ -362,7 +362,7 @@ rw_lock_x_lock_func_nowait( /*=======================*/ rw_lock_t* lock, /*!< in: pointer to rw-lock */ const char* file_name,/*!< in: file name where lock requested */ - ulint line); /*!< in: line where requested */ + unsigned line); /*!< in: line where requested */ /******************************************************************//** Releases a shared mode lock. */ UNIV_INLINE @@ -391,7 +391,7 @@ rw_lock_x_lock_func( ulint pass, /*!< 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 */ - ulint line); /*!< in: line where requested */ + unsigned line); /*!< in: line where requested */ /******************************************************************//** Low-level function for acquiring an sx lock. @return FALSE if did not succeed, TRUE if success. */ @@ -402,7 +402,7 @@ rw_lock_sx_lock_low( ulint pass, /*!< 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 */ - ulint line); /*!< in: line where requested */ + unsigned line); /*!< in: line where requested */ /******************************************************************//** NOTE! Use the corresponding macro, not directly this function! Lock an rw-lock in SX mode for the current thread. If the rw-lock is locked @@ -419,7 +419,7 @@ rw_lock_sx_lock_func( ulint pass, /*!< 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 */ - ulint line); /*!< in: line where requested */ + unsigned line); /*!< in: line where requested */ /******************************************************************//** Releases an exclusive mode lock. */ UNIV_INLINE @@ -688,7 +688,7 @@ struct rw_lock_debug_t { ulint lock_type; /*!< Type of the lock: RW_LOCK_X, RW_LOCK_S, RW_LOCK_X_WAIT */ const char* file_name;/*!< File name where the lock was obtained */ - ulint line; /*!< Line where the rw-lock was locked */ + unsigned line; /*!< Line where the rw-lock was locked */ UT_LIST_NODE_T(rw_lock_debug_t) list; /*!< Debug structs are linked in a two-way list */ @@ -737,7 +737,7 @@ pfs_rw_lock_create_func( latch_level_t level, /*!< in: level */ #endif /* UNIV_DEBUG */ const char* cfile_name, /*!< in: file name where created */ - ulint cline); /*!< in: file line where created */ + unsigned cline); /*!< in: file line where created */ /******************************************************************//** Performance schema instrumented wrap function for rw_lock_x_lock_func() @@ -751,7 +751,7 @@ pfs_rw_lock_x_lock_func( ulint pass, /*!< 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 */ - ulint line); /*!< in: line where requested */ + unsigned line); /*!< in: line where requested */ /******************************************************************//** Performance schema instrumented wrap function for rw_lock_x_lock_func_nowait() @@ -763,7 +763,7 @@ pfs_rw_lock_x_lock_func_nowait( /*===========================*/ rw_lock_t* lock, /*!< in: pointer to rw-lock */ const char* file_name,/*!< in: file name where lock requested */ - ulint line); /*!< in: line where requested */ + unsigned line); /*!< in: line where requested */ /******************************************************************//** Performance schema instrumented wrap function for rw_lock_s_lock_func() NOTE! Please use the corresponding macro rw_lock_s_lock(), not directly @@ -776,7 +776,7 @@ pfs_rw_lock_s_lock_func( ulint pass, /*!< 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 */ - ulint line); /*!< in: line where requested */ + unsigned line); /*!< in: line where requested */ /******************************************************************//** Performance schema instrumented wrap function for rw_lock_s_lock_func() NOTE! Please use the corresponding macro rw_lock_s_lock(), not directly @@ -791,7 +791,7 @@ pfs_rw_lock_s_lock_low( lock will be passed to another thread to unlock */ const char* file_name, /*!< in: file name where lock requested */ - ulint line); /*!< in: line where requested */ + unsigned line); /*!< in: line where requested */ /******************************************************************//** Performance schema instrumented wrap function for rw_lock_x_lock_func() NOTE! Please use the corresponding macro rw_lock_x_lock(), not directly @@ -804,7 +804,7 @@ pfs_rw_lock_x_lock_func( ulint pass, /*!< 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 */ - ulint line); /*!< in: line where requested */ + unsigned line); /*!< in: line where requested */ /******************************************************************//** Performance schema instrumented wrap function for rw_lock_s_unlock_func() NOTE! Please use the corresponding macro rw_lock_s_unlock(), not directly @@ -845,7 +845,7 @@ pfs_rw_lock_sx_lock_func( ulint pass, /*!< 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 */ - ulint line); /*!< in: line where requested */ + unsigned line); /*!< in: line where requested */ /******************************************************************//** Performance schema instrumented wrap function for rw_lock_sx_lock_nowait() NOTE! Please use the corresponding macro, not directly @@ -858,7 +858,7 @@ pfs_rw_lock_sx_lock_low( ulint pass, /*!< 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 */ - ulint line); /*!< in: line where requested */ + unsigned line); /*!< in: line where requested */ /******************************************************************//** Performance schema instrumented wrap function for rw_lock_sx_unlock_func() NOTE! Please use the corresponding macro rw_lock_sx_unlock(), not directly diff --git a/storage/innobase/include/sync0rw.ic b/storage/innobase/include/sync0rw.ic index 0d2c28d9d19..21872cc8bee 100644 --- a/storage/innobase/include/sync0rw.ic +++ b/storage/innobase/include/sync0rw.ic @@ -45,7 +45,7 @@ rw_lock_s_lock_spin( ulint pass, /*!< 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 */ - ulint line); /*!< in: line where requested */ + unsigned line); /*!< in: line where requested */ #ifdef UNIV_DEBUG /******************************************************************//** Inserts the debug information for an rw-lock. */ @@ -56,7 +56,7 @@ rw_lock_add_debug_info( ulint pass, /*!< in: pass value */ ulint lock_type, /*!< in: lock type */ const char* file_name, /*!< in: file where requested */ - ulint line); /*!< in: line where requested */ + unsigned line); /*!< in: line where requested */ /******************************************************************//** Removes a debug information struct for an rw-lock. */ void @@ -237,7 +237,7 @@ rw_lock_s_lock_low( /*!< 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 */ - ulint line) /*!< in: line where requested */ + unsigned line) /*!< in: line where requested */ { if (!rw_lock_lock_word_decr(lock, 1, 0)) { /* Locking did not succeed */ @@ -268,7 +268,7 @@ rw_lock_s_lock_func( ulint pass, /*!< 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 */ - ulint line) /*!< in: line where requested */ + unsigned line) /*!< in: line where requested */ { /* NOTE: As we do not know the thread ids for threads which have s-locked a latch, and s-lockers will be served only after waiting @@ -303,7 +303,7 @@ rw_lock_x_lock_func_nowait( /*=======================*/ rw_lock_t* lock, /*!< in: pointer to rw-lock */ const char* file_name,/*!< in: file name where lock requested */ - ulint line) /*!< in: line where requested */ + unsigned line) /*!< in: line where requested */ { lint oldval = X_LOCK_DECR; @@ -493,7 +493,7 @@ pfs_rw_lock_create_func( latch_level_t level, /*!< in: level */ # endif /* UNIV_DEBUG */ const char* cfile_name, /*!< in: file name where created */ - ulint cline) /*!< in: file line where created */ + unsigned cline) /*!< in: file line where created */ { ut_d(new(lock) rw_lock_t()); @@ -520,7 +520,7 @@ pfs_rw_lock_x_lock_func( ulint pass, /*!< 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 */ - ulint line) /*!< in: line where requested */ + unsigned line) /*!< in: line where requested */ { if (lock->pfs_psi != NULL) { PSI_rwlock_locker* locker; @@ -558,7 +558,7 @@ pfs_rw_lock_x_lock_func_nowait( rw_lock_t* lock, /*!< in: pointer to rw-lock */ const char* file_name,/*!< in: file name where lock requested */ - ulint line) /*!< in: line where requested */ + unsigned line) /*!< in: line where requested */ { ibool ret; @@ -617,7 +617,7 @@ pfs_rw_lock_s_lock_func( thread to unlock */ const char* file_name,/*!< in: file name where lock requested */ - ulint line) /*!< in: line where requested */ + unsigned line) /*!< in: line where requested */ { if (lock->pfs_psi != NULL) { PSI_rwlock_locker* locker; @@ -652,7 +652,7 @@ pfs_rw_lock_sx_lock_func( thread to unlock */ const char* file_name,/*!< in: file name where lock requested */ - ulint line) /*!< in: line where requested */ + unsigned line) /*!< in: line where requested */ { if (lock->pfs_psi != NULL) { PSI_rwlock_locker* locker; @@ -687,7 +687,7 @@ pfs_rw_lock_s_lock_low( lock will be passed to another thread to unlock */ const char* file_name, /*!< in: file name where lock requested */ - ulint line) /*!< in: line where requested */ + unsigned line) /*!< in: line where requested */ { ibool ret; @@ -727,7 +727,7 @@ pfs_rw_lock_sx_lock_low( lock will be passed to another thread to unlock */ const char* file_name, /*!< in: file name where lock requested */ - ulint line) /*!< in: line where requested */ + unsigned line) /*!< in: line where requested */ { ibool ret; diff --git a/storage/innobase/include/trx0rec.h b/storage/innobase/include/trx0rec.h index 90f4604043b..fc3d90b478d 100644 --- a/storage/innobase/include/trx0rec.h +++ b/storage/innobase/include/trx0rec.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -353,16 +354,16 @@ record */ fields of the record can change */ #define TRX_UNDO_DEL_MARK_REC 14 /* delete marking of a record; fields do not change */ -#define TRX_UNDO_CMPL_INFO_MULT 16 /* compilation info is multiplied by +#define TRX_UNDO_CMPL_INFO_MULT 16U /* compilation info is multiplied by this and ORed to the type above */ -#define TRX_UNDO_UPD_EXTERN 128 /* This bit can be ORed to type_cmpl +#define TRX_UNDO_UPD_EXTERN 128U /* This bit can be ORed to type_cmpl to denote that we updated external storage fields: used by purge to free the external storage */ /* Operation type flags used in trx_undo_report_row_operation */ -#define TRX_UNDO_INSERT_OP 1 -#define TRX_UNDO_MODIFY_OP 2 +#define TRX_UNDO_INSERT_OP 1U +#define TRX_UNDO_MODIFY_OP 2U #ifndef UNIV_NONINL #include "trx0rec.ic" diff --git a/storage/innobase/include/trx0trx.h b/storage/innobase/include/trx0trx.h index 062cac2b9ab..efae0556469 100644 --- a/storage/innobase/include/trx0trx.h +++ b/storage/innobase/include/trx0trx.h @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2016, 2017, MariaDB Corporation. All Rights Reserved. +Copyright (c) 2016, 2017, 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 @@ -1242,7 +1242,7 @@ struct trx_t { read-write. */ /*------------------------------*/ #ifdef UNIV_DEBUG - ulint start_line; /*!< Track where it was started from */ + unsigned start_line; /*!< Track where it was started from */ const char* start_file; /*!< Filename where it was started */ #endif /* UNIV_DEBUG */ @@ -1347,8 +1347,8 @@ trx_is_started( /* Treatment of duplicate values (trx->duplicates; for example, in inserts). Multiple flags can be combined with bitwise OR. */ -#define TRX_DUP_IGNORE 1 /* duplicate rows are to be updated */ -#define TRX_DUP_REPLACE 2 /* duplicate rows are to be replaced */ +#define TRX_DUP_IGNORE 1U /* duplicate rows are to be updated */ +#define TRX_DUP_REPLACE 2U /* duplicate rows are to be replaced */ /** Commit node states */ diff --git a/storage/innobase/include/trx0types.h b/storage/innobase/include/trx0types.h index 37a53f900eb..6fd5b1ab678 100644 --- a/storage/innobase/include/trx0types.h +++ b/storage/innobase/include/trx0types.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2014, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ is set. */ static const ib_uint32_t TRX_FORCE_ROLLBACK_ASYNC = 1 << 30; /** Mark the transaction for forced rollback */ -static const ib_uint32_t TRX_FORCE_ROLLBACK = 1 << 31; +static const ib_uint32_t TRX_FORCE_ROLLBACK = 1U << 31; /** For masking out the above four flags */ static const ib_uint32_t TRX_FORCE_ROLLBACK_MASK = 0x1FFFFFFF; diff --git a/storage/innobase/include/univ.i b/storage/innobase/include/univ.i index 908fb60e956..edb018c46e2 100644 --- a/storage/innobase/include/univ.i +++ b/storage/innobase/include/univ.i @@ -302,7 +302,7 @@ definitions: */ /** The following alignment is used in memory allocations in memory heap management to ensure correct alignment for doubles etc. */ -#define UNIV_MEM_ALIGNMENT 8 +#define UNIV_MEM_ALIGNMENT 8U /* DATABASE VERSION CONTROL @@ -400,19 +400,19 @@ and 2 bits for flags. This limits the uncompressed page size to 16k. #define UNIV_PAGE_SSIZE_ORIG (UNIV_PAGE_SIZE_SHIFT_ORIG - 9) /** Minimum page size InnoDB currently supports. */ -#define UNIV_PAGE_SIZE_MIN (1 << UNIV_PAGE_SIZE_SHIFT_MIN) +#define UNIV_PAGE_SIZE_MIN (1U << UNIV_PAGE_SIZE_SHIFT_MIN) /** Maximum page size InnoDB currently supports. */ -#define UNIV_PAGE_SIZE_MAX (1 << UNIV_PAGE_SIZE_SHIFT_MAX) +#define UNIV_PAGE_SIZE_MAX (1U << UNIV_PAGE_SIZE_SHIFT_MAX) /** Default page size for InnoDB tablespaces. */ -#define UNIV_PAGE_SIZE_DEF (1 << UNIV_PAGE_SIZE_SHIFT_DEF) +#define UNIV_PAGE_SIZE_DEF (1U << UNIV_PAGE_SIZE_SHIFT_DEF) /** Original 16k page size for InnoDB tablespaces. */ -#define UNIV_PAGE_SIZE_ORIG (1 << UNIV_PAGE_SIZE_SHIFT_ORIG) +#define UNIV_PAGE_SIZE_ORIG (1U << UNIV_PAGE_SIZE_SHIFT_ORIG) /** Smallest compressed page size */ -#define UNIV_ZIP_SIZE_MIN (1 << UNIV_ZIP_SIZE_SHIFT_MIN) +#define UNIV_ZIP_SIZE_MIN (1U << UNIV_ZIP_SIZE_SHIFT_MIN) /** Largest compressed page size */ -#define UNIV_ZIP_SIZE_MAX (1 << UNIV_ZIP_SIZE_SHIFT_MAX) +#define UNIV_ZIP_SIZE_MAX (1U << UNIV_ZIP_SIZE_SHIFT_MAX) /** Largest possible ssize for an uncompressed page. (The convention 'ssize' is used for 'log2 minus 9' or the number of @@ -584,7 +584,7 @@ contains the sum of the following flag and the locally stored len. */ /* Tell the compiler that 'expr' probably evaluates to 'constant'. */ # define UNIV_EXPECT(expr,constant) __builtin_expect(expr, constant) /* Tell the compiler that a pointer is likely to be NULL */ -# define UNIV_LIKELY_NULL(ptr) __builtin_expect((ulint) ptr, 0) +# define UNIV_LIKELY_NULL(ptr) __builtin_expect((ptr) != 0, 0) /* Minimize cache-miss latency by moving data at addr into a cache before it is read. */ # define UNIV_PREFETCH_R(addr) __builtin_prefetch(addr, 0, 3) diff --git a/storage/innobase/include/ut0dbg.h b/storage/innobase/include/ut0dbg.h index 1a61ed84a38..7d212dfcff4 100644 --- a/storage/innobase/include/ut0dbg.h +++ b/storage/innobase/include/ut0dbg.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -43,7 +44,7 @@ ut_dbg_assertion_failed( /*====================*/ const char* expr, /*!< in: the failed assertion */ const char* file, /*!< in: source file containing the assertion */ - ulint line) /*!< in: line number of the assertion */ + unsigned line) /*!< in: line number of the assertion */ UNIV_COLD MY_ATTRIBUTE((nonnull(2), noreturn)); /** Abort execution if EXPR does not evaluate to nonzero. @@ -51,13 +52,13 @@ ut_dbg_assertion_failed( #define ut_a(EXPR) do { \ if (UNIV_UNLIKELY(!(ulint) (EXPR))) { \ ut_dbg_assertion_failed(#EXPR, \ - __FILE__, (ulint) __LINE__); \ + __FILE__, __LINE__); \ } \ } while (0) /** Abort execution. */ #define ut_error \ - ut_dbg_assertion_failed(0, __FILE__, (ulint) __LINE__) + ut_dbg_assertion_failed(0, __FILE__, __LINE__) #ifdef UNIV_DEBUG /** Debug assertion. Does nothing unless UNIV_DEBUG is defined. */ diff --git a/storage/innobase/include/ut0mem.ic b/storage/innobase/include/ut0mem.ic index 224ff98b0f4..df04449bcb9 100644 --- a/storage/innobase/include/ut0mem.ic +++ b/storage/innobase/include/ut0mem.ic @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1994, 2014, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -118,15 +119,15 @@ ut_raw_to_hex( #define MK_UINT16(a, b) (((uint16) (a)) << 8 | (uint16) (b)) -#define UINT16_GET_A(u) ((unsigned char) ((u) >> 8)) -#define UINT16_GET_B(u) ((unsigned char) ((u) & 0xFF)) +#define UINT16_GET_A(u) ((char) ((u) >> 8)) +#define UINT16_GET_B(u) ((char) ((u) & 0xFF)) #else /* WORDS_BIGENDIAN */ #define MK_UINT16(a, b) (((uint16) (b)) << 8 | (uint16) (a)) -#define UINT16_GET_A(u) ((unsigned char) ((u) & 0xFF)) -#define UINT16_GET_B(u) ((unsigned char) ((u) >> 8)) +#define UINT16_GET_A(u) ((char) ((u) & 0xFF)) +#define UINT16_GET_B(u) ((char) ((u) >> 8)) #endif /* WORDS_BIGENDIAN */ diff --git a/storage/innobase/include/ut0mutex.h b/storage/innobase/include/ut0mutex.h index 354fd9e0a7a..bd3603ad4d0 100644 --- a/storage/innobase/include/ut0mutex.h +++ b/storage/innobase/include/ut0mutex.h @@ -78,19 +78,22 @@ typedef BlockSyncArrayMutex ib_bpmutex_t; extern uint srv_spin_wait_delay; extern ulong srv_n_spin_wait_rounds; -#define mutex_create(I, M) mutex_init((M), (I), __FILE__, __LINE__) +#define mutex_create(I, M) mutex_init((M), (I), \ + __FILE__, __LINE__) -#define mutex_enter(M) (M)->enter( \ - srv_n_spin_wait_rounds, \ - srv_spin_wait_delay, \ - __FILE__, __LINE__) +#define mutex_enter_loc(M,file,line) (M)->enter( \ + uint32_t(srv_n_spin_wait_rounds), \ + uint32_t(srv_spin_wait_delay), \ + file, line) +#define mutex_enter(M) mutex_enter_loc(M, __FILE__, __LINE__) #define mutex_enter_nospin(M) (M)->enter( \ 0, \ 0, \ - __FILE__, __LINE__) + __FILE__, uint32_t(__LINE__)) -#define mutex_enter_nowait(M) (M)->trylock(__FILE__, __LINE__) +#define mutex_enter_nowait(M) (M)->trylock(__FILE__, \ + uint32_t(__LINE__)) #define mutex_exit(M) (M)->exit() diff --git a/storage/innobase/lock/lock0lock.cc b/storage/innobase/lock/lock0lock.cc index 3916bf9961f..11c1bedd39a 100644 --- a/storage/innobase/lock/lock0lock.cc +++ b/storage/innobase/lock/lock0lock.cc @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2014, 2016, MariaDB Corporation +Copyright (c) 2014, 2017, 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 @@ -1109,7 +1109,7 @@ lock_rec_reset_nth_bit( ut_ad(i < lock->un_member.rec_lock.n_bits); byte* b = reinterpret_cast<byte*>(&lock[1]) + (i >> 3); - byte mask = 1 << (i & 7); + byte mask = static_cast<byte>(1U << (i & 7)); byte bit = *b & mask; *b &= ~mask; @@ -1717,7 +1717,7 @@ RecLock::lock_alloc( /* Setup the lock attributes */ - lock->type_mode = LOCK_REC | (mode & ~LOCK_TYPE_MASK); + lock->type_mode = uint32_t(LOCK_REC | (mode & ~LOCK_TYPE_MASK)); lock_rec_t& rec_lock = lock->un_member.rec_lock; diff --git a/storage/innobase/mem/mem0mem.cc b/storage/innobase/mem/mem0mem.cc index ff793821895..d067bbaa803 100644 --- a/storage/innobase/mem/mem0mem.cc +++ b/storage/innobase/mem/mem0mem.cc @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1994, 2014, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -272,7 +273,7 @@ mem_heap_create_block_func( ulint n, /*!< in: number of bytes needed for user data */ #ifdef UNIV_DEBUG const char* file_name,/*!< in: file name where created */ - ulint line, /*!< in: line where created */ + unsigned line, /*!< in: line where created */ #endif /* UNIV_DEBUG */ ulint type) /*!< in: type of heap: MEM_HEAP_DYNAMIC or MEM_HEAP_BUFFER */ diff --git a/storage/innobase/mtr/mtr0log.cc b/storage/innobase/mtr/mtr0log.cc index a63ad40a3b0..783fdcd05ac 100644 --- a/storage/innobase/mtr/mtr0log.cc +++ b/storage/innobase/mtr/mtr0log.cc @@ -101,7 +101,7 @@ mlog_parse_initial_log_record( return(NULL); } - *type = (mlog_id_t)((ulint)*ptr & ~MLOG_SINGLE_REC_FLAG); + *type = mlog_id_t(*ptr & ~MLOG_SINGLE_REC_FLAG); ut_ad(*type <= MLOG_BIGGEST_TYPE || EXTRA_CHECK_MLOG_NUMBER(*type)); ptr++; diff --git a/storage/innobase/mtr/mtr0mtr.cc b/storage/innobase/mtr/mtr0mtr.cc index 418cd7042c6..c19d2131d1e 100644 --- a/storage/innobase/mtr/mtr0mtr.cc +++ b/storage/innobase/mtr/mtr0mtr.cc @@ -124,11 +124,11 @@ struct FindPage /* There must be some flags to look for. */ ut_ad(flags); /* We can only look for page-related flags. */ - ut_ad(!(flags & ~(MTR_MEMO_PAGE_S_FIX - | MTR_MEMO_PAGE_X_FIX - | MTR_MEMO_PAGE_SX_FIX - | MTR_MEMO_BUF_FIX - | MTR_MEMO_MODIFY))); + ut_ad(!(flags & ulint(~(MTR_MEMO_PAGE_S_FIX + | MTR_MEMO_PAGE_X_FIX + | MTR_MEMO_PAGE_SX_FIX + | MTR_MEMO_BUF_FIX + | MTR_MEMO_MODIFY)))); } /** Visit a memo entry. @@ -680,7 +680,7 @@ NOTE: use mtr_x_lock_space(). @param[in] line line number in file @return the tablespace object (never NULL) */ fil_space_t* -mtr_t::x_lock_space(ulint space_id, const char* file, ulint line) +mtr_t::x_lock_space(ulint space_id, const char* file, unsigned line) { fil_space_t* space; @@ -1053,14 +1053,14 @@ struct FlaggedCheck { /* There must be some flags to look for. */ ut_ad(flags); /* Look for rw-lock-related and page-related flags. */ - ut_ad(!(flags & ~(MTR_MEMO_PAGE_S_FIX - | MTR_MEMO_PAGE_X_FIX - | MTR_MEMO_PAGE_SX_FIX - | MTR_MEMO_BUF_FIX - | MTR_MEMO_MODIFY - | MTR_MEMO_X_LOCK - | MTR_MEMO_SX_LOCK - | MTR_MEMO_S_LOCK))); + ut_ad(!(flags & ulint(~(MTR_MEMO_PAGE_S_FIX + | MTR_MEMO_PAGE_X_FIX + | MTR_MEMO_PAGE_SX_FIX + | MTR_MEMO_BUF_FIX + | MTR_MEMO_MODIFY + | MTR_MEMO_X_LOCK + | MTR_MEMO_SX_LOCK + | MTR_MEMO_S_LOCK)))); /* Either some rw-lock-related or page-related flags must be specified, but not both at the same time. */ ut_ad(!(flags & (MTR_MEMO_PAGE_S_FIX diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc index e4bc2754b40..f71602c43b9 100644 --- a/storage/innobase/os/os0file.cc +++ b/storage/innobase/os/os0file.cc @@ -366,7 +366,7 @@ public: void print(FILE* file); /** @return the number of slots per segment */ - ulint slots_per_segment() const + unsigned slots_per_segment() const MY_ATTRIBUTE((warn_unused_result)) { return(m_slots.size() / m_n_segments); @@ -437,7 +437,7 @@ public: @param[in] max_events number of events @param[out] io_ctx io_ctx to initialize. @return true on success. */ - static bool linux_create_io_ctx(ulint max_events, io_context_t* io_ctx) + static bool linux_create_io_ctx(unsigned max_events, io_context_t* io_ctx) MY_ATTRIBUTE((warn_unused_result)); /** Checks if the system supports native linux aio. On some kernel @@ -2129,7 +2129,7 @@ AIO::linux_dispatch(Slot* slot) @return true on success. */ bool AIO::linux_create_io_ctx( - ulint max_events, + unsigned max_events, io_context_t* io_ctx) { ssize_t n_retries = 0; @@ -2907,8 +2907,8 @@ os_file_create_func( on_error_silent = create_mode & OS_FILE_ON_ERROR_SILENT ? true : false; - create_mode &= ~OS_FILE_ON_ERROR_NO_EXIT; - create_mode &= ~OS_FILE_ON_ERROR_SILENT; + create_mode &= ulint(~(OS_FILE_ON_ERROR_NO_EXIT + | OS_FILE_ON_ERROR_SILENT)); if (create_mode == OS_FILE_OPEN || create_mode == OS_FILE_OPEN_RAW @@ -5759,7 +5759,7 @@ AIO::init_linux_native_aio() } io_context** ctx = m_aio_ctx; - ulint max_events = slots_per_segment(); + unsigned max_events = slots_per_segment(); for (ulint i = 0; i < m_n_segments; ++i, ++ctx) { diff --git a/storage/innobase/page/page0page.cc b/storage/innobase/page/page0page.cc index e2d2dd40fd8..d38b426b0d4 100644 --- a/storage/innobase/page/page0page.cc +++ b/storage/innobase/page/page0page.cc @@ -2,6 +2,7 @@ Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. +Copyright (c) 2017, 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 @@ -1162,8 +1163,7 @@ delete_all: if (scrub) { /* scrub record */ - uint recsize = rec_offs_data_size(offsets); - memset(rec2, 0, recsize); + memset(rec2, 0, rec_offs_data_size(offsets)); } rec2 = page_rec_get_next(rec2); diff --git a/storage/innobase/page/page0zip.cc b/storage/innobase/page/page0zip.cc index d49cecdb968..c0746bd9d5f 100644 --- a/storage/innobase/page/page0zip.cc +++ b/storage/innobase/page/page0zip.cc @@ -2,6 +2,7 @@ Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. +Copyright (c) 2017, 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 @@ -1595,9 +1596,9 @@ err_exit: #ifdef UNIV_DEBUG page_zip->m_start = #endif /* UNIV_DEBUG */ - page_zip->m_end = PAGE_DATA + c_stream.total_out; + page_zip->m_end = unsigned(PAGE_DATA + c_stream.total_out); page_zip->m_nonempty = FALSE; - page_zip->n_blobs = n_blobs; + page_zip->n_blobs = unsigned(n_blobs); /* Copy those header fields that will not be written in buf_flush_init_for_writing() */ memcpy(page_zip->data + FIL_PAGE_PREV, page + FIL_PAGE_PREV, @@ -1714,7 +1715,7 @@ page_zip_fields_decode( index = dict_mem_index_create("ZIP_DUMMY", "ZIP_DUMMY", DICT_HDR_SPACE, 0, n); index->table = table; - index->n_uniq = n; + index->n_uniq = unsigned(n); /* avoid ut_ad(index->cached) in dict_index_get_n_unique_in_tree */ index->cached = TRUE; @@ -1773,7 +1774,7 @@ page_zip_fields_decode( page_zip_fields_free(index); index = NULL; } else { - index->n_nullable = val; + index->n_nullable = unsigned(val); } } @@ -2429,7 +2430,7 @@ zlib_done: } #ifdef UNIV_DEBUG - page_zip->m_start = PAGE_DATA + d_stream->total_in; + page_zip->m_start = unsigned(PAGE_DATA + d_stream->total_in); #endif /* UNIV_DEBUG */ /* Apply the modification log. */ @@ -2444,7 +2445,7 @@ zlib_done: if (UNIV_UNLIKELY(!mod_log_ptr)) { return(FALSE); } - page_zip->m_end = mod_log_ptr - page_zip->data; + page_zip->m_end = unsigned(mod_log_ptr - page_zip->data); page_zip->m_nonempty = mod_log_ptr != d_stream->next_in; } @@ -2582,9 +2583,7 @@ zlib_done: - d_stream->next_out); } -#ifdef UNIV_DEBUG - page_zip->m_start = PAGE_DATA + d_stream->total_in; -#endif /* UNIV_DEBUG */ + ut_d(page_zip->m_start = unsigned(PAGE_DATA + d_stream->total_in)); /* Apply the modification log. */ { @@ -2598,7 +2597,7 @@ zlib_done: if (UNIV_UNLIKELY(!mod_log_ptr)) { return(FALSE); } - page_zip->m_end = mod_log_ptr - page_zip->data; + page_zip->m_end = unsigned(mod_log_ptr - page_zip->data); page_zip->m_nonempty = mod_log_ptr != d_stream->next_in; } @@ -2913,9 +2912,7 @@ zlib_done: - d_stream->next_out); } -#ifdef UNIV_DEBUG - page_zip->m_start = PAGE_DATA + d_stream->total_in; -#endif /* UNIV_DEBUG */ + ut_d(page_zip->m_start = unsigned(PAGE_DATA + d_stream->total_in)); /* Apply the modification log. */ { @@ -2929,7 +2926,7 @@ zlib_done: if (UNIV_UNLIKELY(!mod_log_ptr)) { return(FALSE); } - page_zip->m_end = mod_log_ptr - page_zip->data; + page_zip->m_end = unsigned(mod_log_ptr - page_zip->data); page_zip->m_nonempty = mod_log_ptr != d_stream->next_in; } @@ -3132,7 +3129,7 @@ zlib_error: d_stream.avail_in = static_cast<uInt>( page_zip_get_size(page_zip) - (PAGE_DATA + 1)); d_stream.next_out = page + PAGE_ZIP_START; - d_stream.avail_out = UNIV_PAGE_SIZE - PAGE_ZIP_START; + d_stream.avail_out = uInt(UNIV_PAGE_SIZE - PAGE_ZIP_START); if (UNIV_UNLIKELY(inflateInit2(&d_stream, UNIV_PAGE_SIZE_SHIFT) != Z_OK)) { @@ -3853,7 +3850,7 @@ page_zip_write_rec( ut_a(!*data); ut_ad((ulint) (data - page_zip->data) < page_zip_get_size(page_zip)); - page_zip->m_end = data - page_zip->data; + page_zip->m_end = unsigned(data - page_zip->data); page_zip->m_nonempty = TRUE; #ifdef UNIV_ZIP_DEBUG @@ -4919,7 +4916,7 @@ page_zip_calc_checksum( srv_checksum_algorithm_t algo, bool use_legacy_big_endian /* = false */) { - uint32_t adler; + uLong adler; const Bytef* s = static_cast<const byte*>(data); /* Exclude FIL_PAGE_SPACE_OR_CHKSUM, FIL_PAGE_LSN, @@ -4959,7 +4956,7 @@ page_zip_calc_checksum( static_cast<uInt>(size) - FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID); - return(adler); + return(uint32_t(adler)); case SRV_CHECKSUM_ALGORITHM_NONE: case SRV_CHECKSUM_ALGORITHM_STRICT_NONE: return(BUF_NO_CHECKSUM_MAGIC); diff --git a/storage/innobase/rem/rem0rec.cc b/storage/innobase/rem/rem0rec.cc index 920fdb62079..d79b25a35a7 100644 --- a/storage/innobase/rem/rem0rec.cc +++ b/storage/innobase/rem/rem0rec.cc @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -549,7 +550,7 @@ rec_get_offsets_func( (ULINT_UNDEFINED if all fields) */ #ifdef UNIV_DEBUG const char* file, /*!< in: file name where called */ - ulint line, /*!< in: line number where called */ + unsigned line, /*!< in: line number where called */ #endif /* UNIV_DEBUG */ mem_heap_t** heap) /*!< in/out: memory heap */ { diff --git a/storage/innobase/row/row0ins.cc b/storage/innobase/row/row0ins.cc index 1f884017dd3..db8a91ed21e 100644 --- a/storage/innobase/row/row0ins.cc +++ b/storage/innobase/row/row0ins.cc @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2016, MariaDB Corporation. +Copyright (c) 2016, 2017, 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 @@ -2836,7 +2836,7 @@ row_ins_sec_index_entry_low( rtr_info_update_btr(&cursor, &rtr_info); mtr_start(&mtr); mtr.set_named_space(index->space); - search_mode &= ~BTR_MODIFY_LEAF; + search_mode &= ulint(~BTR_MODIFY_LEAF); search_mode |= BTR_MODIFY_TREE; err = btr_cur_search_to_nth_level( index, 0, entry, PAGE_CUR_RTREE_INSERT, @@ -3086,7 +3086,7 @@ row_ins_index_entry_big_rec_func( #ifndef DBUG_OFF const void* thd, /*!< in: connection, or NULL */ #endif /* DBUG_OFF */ - ulint line) /*!< in: line number of caller */ + unsigned line) /*!< in: line number of caller */ { mtr_t mtr; btr_pcur_t pcur; diff --git a/storage/innobase/row/row0merge.cc b/storage/innobase/row/row0merge.cc index 8fc7ecf75ac..ef832c38b95 100644 --- a/storage/innobase/row/row0merge.cc +++ b/storage/innobase/row/row0merge.cc @@ -4511,7 +4511,7 @@ row_merge_create_index( /*********************************************************************//** Check if a transaction can use an index. */ -ibool +bool row_merge_is_index_usable( /*======================*/ const trx_t* trx, /*!< in: transaction */ @@ -4520,7 +4520,7 @@ row_merge_is_index_usable( if (!dict_index_is_clust(index) && dict_index_is_online_ddl(index)) { /* Indexes that are being created are not useable. */ - return(FALSE); + return(false); } return(!dict_index_is_corrupted(index) diff --git a/storage/innobase/row/row0mysql.cc b/storage/innobase/row/row0mysql.cc index fbf49d8d3a0..ab5736f88d7 100644 --- a/storage/innobase/row/row0mysql.cc +++ b/storage/innobase/row/row0mysql.cc @@ -2344,7 +2344,7 @@ row_mysql_freeze_data_dictionary_func( /*==================================*/ trx_t* trx, /*!< in/out: transaction */ const char* file, /*!< in: file name */ - ulint line) /*!< in: line number */ + unsigned line) /*!< in: line number */ { ut_a(trx->dict_operation_lock_mode == 0); @@ -2377,7 +2377,7 @@ row_mysql_lock_data_dictionary_func( /*================================*/ trx_t* trx, /*!< in/out: transaction */ const char* file, /*!< in: file name */ - ulint line) /*!< in: line number */ + unsigned line) /*!< in: line number */ { ut_a(trx->dict_operation_lock_mode == 0 || trx->dict_operation_lock_mode == RW_X_LATCH); diff --git a/storage/innobase/row/row0trunc.cc b/storage/innobase/row/row0trunc.cc index b8002b439da..2402b4807ba 100644 --- a/storage/innobase/row/row0trunc.cc +++ b/storage/innobase/row/row0trunc.cc @@ -1558,7 +1558,7 @@ row_truncate_update_system_tables( fts_update_next_doc_id(trx, table, NULL, 0); fts_cache_clear(table->fts->cache); fts_cache_init(table->fts->cache); - table->fts->fts_status &= ~TABLE_DICT_LOCKED; + table->fts->fts_status &= uint(~TABLE_DICT_LOCKED); } } diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc index 65991a711a3..46d3a7aff0e 100644 --- a/storage/innobase/srv/srv0start.cc +++ b/storage/innobase/srv/srv0start.cc @@ -1319,7 +1319,7 @@ srv_init_abort_low( bool create_new_db, #ifdef UNIV_DEBUG const char* file, - ulint line, + unsigned line, #endif /* UNIV_DEBUG */ dberr_t err) { diff --git a/storage/innobase/sync/sync0arr.cc b/storage/innobase/sync/sync0arr.cc index c9423a04fba..1b561dc3297 100644 --- a/storage/innobase/sync/sync0arr.cc +++ b/storage/innobase/sync/sync0arr.cc @@ -2,7 +2,7 @@ Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, Google Inc. -Copyright (c) 2013, 2015, MariaDB Corporation. All Rights Reserved. +Copyright (c) 2013, 2017, MariaDB Corporation. Portions of this file contain modifications contributed and copyrighted by Google, Inc. Those modifications are gratefully acknowledged and are described @@ -117,7 +117,7 @@ struct sync_cell_t { const char* file; /*!< in debug version file where requested */ ulint line; /*!< in debug version line where - requested */ + requested, or ULINT_UNDEFINED */ os_thread_id_t thread_id; /*!< thread id of this waiting thread */ bool waiting; /*!< TRUE if the thread has already @@ -213,24 +213,16 @@ sync_array_t::sync_array_t(ulint num_cells) UNIV_NOTHROW : n_reserved(), - n_cells(), - array(), + n_cells(num_cells), + array(UT_NEW_ARRAY_NOKEY(sync_cell_t, num_cells)), mutex(), res_count(), next_free_slot(), - first_free_slot() + first_free_slot(ULINT_UNDEFINED) { ut_a(num_cells > 0); - array = UT_NEW_ARRAY_NOKEY(sync_cell_t, num_cells); - - ulint sz = sizeof(sync_cell_t) * num_cells; - - memset(array, 0x0, sz); - - n_cells = num_cells; - - first_free_slot = ULINT_UNDEFINED; + memset(array, 0x0, sizeof(sync_cell_t) * n_cells); /* Then create the mutex to protect the wait array */ mutex_create(LATCH_ID_SYNC_ARRAY_MUTEX, &mutex); @@ -344,7 +336,7 @@ sync_array_reserve_cell( void* object, /*!< in: pointer to the object to wait for */ ulint type, /*!< in: lock request type */ const char* file, /*!< in: file where requested */ - ulint line) /*!< in: line where requested */ + unsigned line) /*!< in: line where requested */ { sync_cell_t* cell; @@ -604,15 +596,15 @@ sync_array_cell_print( fprintf(file, "number of readers %lu, waiters flag %lu," " lock_word: %lx\n" - "Last time read locked in file %s line %lu\n" - "Last time write locked in file %s line %lu\n", + "Last time read locked in file %s line %u\n" + "Last time write locked in file %s line %u\n", (ulint) rw_lock_get_reader_count(rwlock), (ulint) rwlock->waiters, rwlock->lock_word, innobase_basename(rwlock->last_s_file_name), - (ulint) rwlock->last_s_line, + rwlock->last_s_line, rwlock->last_x_file_name, - (ulint) rwlock->last_x_line); + rwlock->last_x_line); /* JAN: TODO: FIX LATER fprintf(file, @@ -1339,7 +1331,8 @@ sync_arr_fill_sys_semphore_waits_table( (longlong)os_thread_pf(cell->thread))); */ OK(field_store_string(fields[SYS_SEMAPHORE_WAITS_FILE], innobase_basename(cell->file))); - OK(field_store_ulint(fields[SYS_SEMAPHORE_WAITS_LINE], cell->line)); + OK(fields[SYS_SEMAPHORE_WAITS_LINE]->store(cell->line, true)); + fields[SYS_SEMAPHORE_WAITS_LINE]->set_notnull(); OK(field_store_ulint(fields[SYS_SEMAPHORE_WAITS_WAIT_TIME], (ulint)difftime(time(NULL), cell->reservation_time))); if (type == SYNC_MUTEX) { @@ -1352,13 +1345,16 @@ sync_arr_fill_sys_semphore_waits_table( OK(field_store_string(fields[SYS_SEMAPHORE_WAITS_WAIT_TYPE], "MUTEX")); //OK(field_store_ulint(fields[SYS_SEMAPHORE_WAITS_HOLDER_THREAD_ID], (longlong)mutex->thread_id)); //OK(field_store_string(fields[SYS_SEMAPHORE_WAITS_HOLDER_FILE], innobase_basename(mutex->file_name))); - //OK(field_store_ulint(fields[SYS_SEMAPHORE_WAITS_HOLDER_LINE], mutex->line)); + //OK(fields[SYS_SEMAPHORE_WAITS_HOLDER_LINE]->store(mutex->line, true)); + //fields[SYS_SEMAPHORE_WAITS_HOLDER_LINE]->set_notnull(); //OK(field_store_string(fields[SYS_SEMAPHORE_WAITS_CREATED_FILE], innobase_basename(mutex->cfile_name))); - //OK(field_store_ulint(fields[SYS_SEMAPHORE_WAITS_CREATED_LINE], mutex->cline)); + //OK(fields[SYS_SEMAPHORE_WAITS_CREATED_LINE]->store(mutex->cline, true)); + //fields[SYS_SEMAPHORE_WAITS_CREATED_LINE]->set_notnull(); //OK(field_store_ulint(fields[SYS_SEMAPHORE_WAITS_WAITERS_FLAG], (longlong)mutex->waiters)); //OK(field_store_ulint(fields[SYS_SEMAPHORE_WAITS_LOCK_WORD], (longlong)mutex->lock_word)); //OK(field_store_string(fields[SYS_SEMAPHORE_WAITS_LAST_WRITER_FILE], innobase_basename(mutex->file_name))); - //OK(field_store_ulint(fields[SYS_SEMAPHORE_WAITS_LAST_WRITER_LINE], mutex->line)); + //OK(fields[SYS_SEMAPHORE_WAITS_LAST_WRITER_LINE]->store(mutex->line, true)); + //fields[SYS_SEMAPHORE_WAITS_LAST_WRITER_LINE]->set_notnull(); //OK(field_store_ulint(fields[SYS_SEMAPHORE_WAITS_OS_WAIT_COUNT], mutex->count_os_wait)); } } else if (type == RW_LOCK_X_WAIT @@ -1398,14 +1394,17 @@ sync_arr_fill_sys_semphore_waits_table( //OK(field_store_ulint(fields[SYS_SEMAPHORE_WAITS_HOLDER_THREAD_ID], (longlong)rwlock->thread_id)); //OK(field_store_string(fields[SYS_SEMAPHORE_WAITS_HOLDER_FILE], innobase_basename(rwlock->file_name))); - //OK(field_store_ulint(fields[SYS_SEMAPHORE_WAITS_HOLDER_LINE], rwlock->line)); + //OK(fields[SYS_SEMAPHORE_WAITS_HOLDER_LINE]->store(rwlock->line, true)); + //fields[SYS_SEMAPHORE_WAITS_HOLDER_LINE]->set_notnull(); OK(field_store_ulint(fields[SYS_SEMAPHORE_WAITS_READERS], rw_lock_get_reader_count(rwlock))); OK(field_store_ulint(fields[SYS_SEMAPHORE_WAITS_WAITERS_FLAG], (longlong)rwlock->waiters)); OK(field_store_ulint(fields[SYS_SEMAPHORE_WAITS_LOCK_WORD], (longlong)rwlock->lock_word)); OK(field_store_string(fields[SYS_SEMAPHORE_WAITS_LAST_READER_FILE], innobase_basename(rwlock->last_s_file_name))); - OK(field_store_ulint(fields[SYS_SEMAPHORE_WAITS_LAST_READER_LINE], rwlock->last_s_line)); + OK(fields[SYS_SEMAPHORE_WAITS_LAST_READER_LINE]->store(rwlock->last_s_line, true)); + fields[SYS_SEMAPHORE_WAITS_LAST_READER_LINE]->set_notnull(); OK(field_store_string(fields[SYS_SEMAPHORE_WAITS_LAST_WRITER_FILE], innobase_basename(rwlock->last_x_file_name))); - OK(field_store_ulint(fields[SYS_SEMAPHORE_WAITS_LAST_WRITER_LINE], rwlock->last_x_line)); + OK(fields[SYS_SEMAPHORE_WAITS_LAST_WRITER_LINE]->store(rwlock->last_x_line, true)); + fields[SYS_SEMAPHORE_WAITS_LAST_WRITER_LINE]->set_notnull(); OK(field_store_ulint(fields[SYS_SEMAPHORE_WAITS_OS_WAIT_COUNT], rwlock->count_os_wait)); } } diff --git a/storage/innobase/sync/sync0rw.cc b/storage/innobase/sync/sync0rw.cc index 9160d9c8bee..497f7f3f9e9 100644 --- a/storage/innobase/sync/sync0rw.cc +++ b/storage/innobase/sync/sync0rw.cc @@ -2,6 +2,7 @@ Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, Google Inc. +Copyright (c) 2017, MariaDB Corporation. Portions of this file contain modifications contributed and copyrighted by Google, Inc. Those modifications are gratefully acknowledged and are described @@ -203,7 +204,7 @@ rw_lock_create_func( latch_level_t level, /*!< in: level */ #endif /* UNIV_DEBUG */ const char* cfile_name, /*!< in: file name where created */ - ulint cline) /*!< in: file line where created */ + unsigned cline) /*!< in: file line where created */ { #if defined(UNIV_DEBUG) && !defined(UNIV_PFS_RWLOCK) /* It should have been created in pfs_rw_lock_create_func() */ @@ -236,7 +237,7 @@ rw_lock_create_func( split the source file anyway. Or create the locks on lines less than 8192. cline is unsigned:13. */ ut_ad(cline <= 8192); - lock->cline = (unsigned int) cline; + lock->cline = cline; lock->count_os_wait = 0; lock->last_s_file_name = "not yet reserved"; lock->last_x_file_name = "not yet reserved"; @@ -295,7 +296,7 @@ rw_lock_s_lock_spin( ulint pass, /*!< 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 */ - ulint line) /*!< in: line where requested */ + unsigned line) /*!< in: line where requested */ { ulint i = 0; /* spin round count */ sync_array_t* sync_arr; @@ -425,7 +426,7 @@ rw_lock_x_lock_wait_func( #endif lint threshold,/*!< in: threshold to wait for */ const char* file_name,/*!< in: file name where lock requested */ - ulint line) /*!< in: line where requested */ + unsigned line) /*!< in: line where requested */ { ulint i = 0; ulint n_spins = 0; @@ -520,7 +521,7 @@ rw_lock_x_lock_low( ulint pass, /*!< 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 */ - ulint line) /*!< in: line where requested */ + unsigned line) /*!< in: line where requested */ { if (rw_lock_lock_word_decr(lock, X_LOCK_DECR, X_LOCK_HALF_DECR)) { @@ -578,7 +579,7 @@ rw_lock_x_lock_low( ut_d(rw_lock_add_debug_info(lock, pass, RW_LOCK_X, file_name, line)); lock->last_x_file_name = file_name; - lock->last_x_line = (unsigned int) line; + lock->last_x_line = line; return(TRUE); } @@ -593,7 +594,7 @@ rw_lock_sx_lock_low( ulint pass, /*!< 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 */ - ulint line) /*!< in: line where requested */ + unsigned line) /*!< in: line where requested */ { if (rw_lock_lock_word_decr(lock, X_LOCK_HALF_DECR, X_LOCK_HALF_DECR)) { @@ -652,7 +653,7 @@ rw_lock_sx_lock_low( ut_d(rw_lock_add_debug_info(lock, pass, RW_LOCK_SX, file_name, line)); lock->last_x_file_name = file_name; - lock->last_x_line = (unsigned int) line; + lock->last_x_line = line; return(TRUE); } @@ -673,7 +674,7 @@ rw_lock_x_lock_func( ulint pass, /*!< 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 */ - ulint line) /*!< in: line where requested */ + unsigned line) /*!< in: line where requested */ { ulint i = 0; sync_array_t* sync_arr; @@ -775,7 +776,7 @@ rw_lock_sx_lock_func( ulint pass, /*!< 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 */ - ulint line) /*!< in: line where requested */ + unsigned line) /*!< in: line where requested */ { ulint i = 0; @@ -928,7 +929,7 @@ rw_lock_add_debug_info( ulint pass, /*!< in: pass value */ ulint lock_type, /*!< in: lock type */ const char* file_name, /*!< in: file where requested */ - ulint line) /*!< in: line where requested */ + unsigned line) /*!< in: line where requested */ { ut_ad(file_name != NULL); diff --git a/storage/innobase/ut/ut0dbg.cc b/storage/innobase/ut/ut0dbg.cc index ed4a7778afa..fff1f0e6687 100644 --- a/storage/innobase/ut/ut0dbg.cc +++ b/storage/innobase/ut/ut0dbg.cc @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, 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 @@ -34,10 +35,10 @@ ut_dbg_assertion_failed( /*====================*/ const char* expr, /*!< in: the failed assertion (optional) */ const char* file, /*!< in: source file containing the assertion */ - ulint line) /*!< in: line number of the assertion */ + unsigned line) /*!< in: line number of the assertion */ { ut_print_timestamp(stderr); - fprintf(stderr, " InnoDB: Assertion failure in file %s line %lu\n", + fprintf(stderr, " InnoDB: Assertion failure in file %s line %u\n", file, line); if (expr) { fprintf(stderr, diff --git a/storage/maria/ma_blockrec.h b/storage/maria/ma_blockrec.h index 3ea1fedf237..c33dfa0d5ea 100644 --- a/storage/maria/ma_blockrec.h +++ b/storage/maria/ma_blockrec.h @@ -50,8 +50,8 @@ #define SUB_RANGE_SIZE 2 #define BLOCK_FILLER_SIZE 2 #define ROW_EXTENT_SIZE (ROW_EXTENT_PAGE_SIZE + ROW_EXTENT_COUNT_SIZE) -#define TAIL_BIT 0x8000 /* Bit in page_count to signify tail */ -#define START_EXTENT_BIT 0x4000 /* Bit in page_count to signify start*/ +#define TAIL_BIT 0x8000U /* Bit in page_count to signify tail */ +#define START_EXTENT_BIT 0x4000U /* Bit in page_count to signify start*/ /* page_count set by bitmap code for tail pages */ #define TAIL_PAGE_COUNT_MARKER 0xffff /* Number of extents reserved MARIA_BITMAP_BLOCKS to store head part */ @@ -75,7 +75,7 @@ #define PAGE_TYPE_MASK 7 enum en_page_type { UNALLOCATED_PAGE, HEAD_PAGE, TAIL_PAGE, BLOB_PAGE, MAX_PAGE_TYPE }; -#define PAGE_CAN_BE_COMPACTED 128 /* Bit in PAGE_TYPE */ +#define PAGE_CAN_BE_COMPACTED 128U /* Bit in PAGE_TYPE */ #define PAGE_TYPE_OFFSET LSN_SIZE #define DIR_COUNT_OFFSET (LSN_SIZE+PAGE_TYPE_SIZE) @@ -86,12 +86,12 @@ enum en_page_type { UNALLOCATED_PAGE, HEAD_PAGE, TAIL_PAGE, BLOB_PAGE, MAX_PAGE_ #define FULL_PAGE_KEY_VERSION_OFFSET (PAGE_TYPE_OFFSET + PAGE_TYPE_SIZE) /* Bits used for flag uchar (one byte, first in record) */ -#define ROW_FLAG_TRANSID 1 -#define ROW_FLAG_VER_PTR 2 -#define ROW_FLAG_DELETE_TRANSID 4 -#define ROW_FLAG_NULLS_EXTENDED 8 -#define ROW_FLAG_EXTENTS 128 -#define ROW_FLAG_ALL (1+2+4+8+128) +#define ROW_FLAG_TRANSID 1U +#define ROW_FLAG_VER_PTR 2U +#define ROW_FLAG_DELETE_TRANSID 4U +#define ROW_FLAG_NULLS_EXTENDED 8U +#define ROW_FLAG_EXTENTS 128U +#define ROW_FLAG_ALL (1U+2U+4U+8U+128U) /* Size for buffer to hold information about bitmap */ #define MAX_BITMAP_INFO_LENGTH ((MARIA_MAX_KEY_BLOCK_LENGTH*8/3)*(61*11/60)+10) @@ -99,8 +99,8 @@ enum en_page_type { UNALLOCATED_PAGE, HEAD_PAGE, TAIL_PAGE, BLOB_PAGE, MAX_PAGE_ /******** Variables that affects how data pages are utilized ********/ -/* Minium size of tail segment */ -#define MIN_TAIL_SIZE 32 +/* Minimum size of tail segment */ +#define MIN_TAIL_SIZE 32U /* Fixed length part of Max possible header size; See row data structure diff --git a/storage/maria/ma_loghandler.h b/storage/maria/ma_loghandler.h index 5ac6d67413a..3719ec5e666 100644 --- a/storage/maria/ma_loghandler.h +++ b/storage/maria/ma_loghandler.h @@ -33,9 +33,9 @@ We allow all kind protections to be switched on together for people who really unsure in their hardware/OS. */ -#define TRANSLOG_PAGE_CRC 1 -#define TRANSLOG_SECTOR_PROTECTION (1<<1) -#define TRANSLOG_RECORD_CRC (1<<2) +#define TRANSLOG_PAGE_CRC 1U +#define TRANSLOG_SECTOR_PROTECTION (1U<<1) +#define TRANSLOG_RECORD_CRC (1U<<2) #define TRANSLOG_FLAGS_NUM ((TRANSLOG_PAGE_CRC | TRANSLOG_SECTOR_PROTECTION | \ TRANSLOG_RECORD_CRC) + 1) diff --git a/storage/maria/maria_chk.c b/storage/maria/maria_chk.c index 0c1c56dfa94..0e347cbbd47 100644 --- a/storage/maria/maria_chk.c +++ b/storage/maria/maria_chk.c @@ -384,13 +384,13 @@ static struct my_option my_long_options[] = &check_param.read_buffer_length, &check_param.read_buffer_length, 0, GET_ULONG, REQUIRED_ARG, (long) READ_BUFFER_INIT, (long) MALLOC_OVERHEAD, - (long) ~0L, (long) MALLOC_OVERHEAD, (long) 1L, 0}, + ~0ULL, (long) MALLOC_OVERHEAD, (long) 1L, 0}, { "write_buffer_size", OPT_WRITE_BUFFER_SIZE, "Write buffer size for sequential writes during repair of fixed size or dynamic size rows", &check_param.write_buffer_length, &check_param.write_buffer_length, 0, GET_ULONG, REQUIRED_ARG, (long) READ_BUFFER_INIT, (long) MALLOC_OVERHEAD, - (long) ~0L, (long) MALLOC_OVERHEAD, (long) 1L, 0}, + ~0UL, (long) MALLOC_OVERHEAD, (long) 1L, 0}, { "sort_buffer_size", OPT_SORT_BUFFER_SIZE, "Size of sort buffer. Used by --recover", &check_param.sort_buffer_length, diff --git a/storage/maria/maria_def.h b/storage/maria/maria_def.h index 19910f4288d..f3c66e87c46 100644 --- a/storage/maria/maria_def.h +++ b/storage/maria/maria_def.h @@ -710,49 +710,49 @@ struct st_maria_handler #define F_EXTRA_LCK -1 /* bits in opt_flag */ -#define MEMMAP_USED 32 -#define REMEMBER_OLD_POS 64 +#define MEMMAP_USED 32U +#define REMEMBER_OLD_POS 64U -#define WRITEINFO_UPDATE_KEYFILE 1 -#define WRITEINFO_NO_UNLOCK 2 +#define WRITEINFO_UPDATE_KEYFILE 1U +#define WRITEINFO_NO_UNLOCK 2U /* once_flags */ -#define USE_PACKED_KEYS 1 -#define RRND_PRESERVE_LASTINX 2 +#define USE_PACKED_KEYS 1U +#define RRND_PRESERVE_LASTINX 2U /* bits in state.changed */ -#define STATE_CHANGED 1 -#define STATE_CRASHED 2 -#define STATE_CRASHED_ON_REPAIR 4 -#define STATE_NOT_ANALYZED 8 -#define STATE_NOT_OPTIMIZED_KEYS 16 -#define STATE_NOT_SORTED_PAGES 32 -#define STATE_NOT_OPTIMIZED_ROWS 64 -#define STATE_NOT_ZEROFILLED 128 -#define STATE_NOT_MOVABLE 256 -#define STATE_MOVED 512 /* set if base->uuid != maria_uuid */ -#define STATE_IN_REPAIR 1024 /* We are running repair on table */ -#define STATE_CRASHED_PRINTED 2048 +#define STATE_CHANGED 1U +#define STATE_CRASHED 2U +#define STATE_CRASHED_ON_REPAIR 4U +#define STATE_NOT_ANALYZED 8U +#define STATE_NOT_OPTIMIZED_KEYS 16U +#define STATE_NOT_SORTED_PAGES 32U +#define STATE_NOT_OPTIMIZED_ROWS 64U +#define STATE_NOT_ZEROFILLED 128U +#define STATE_NOT_MOVABLE 256U +#define STATE_MOVED 512U /* set if base->uuid != maria_uuid */ +#define STATE_IN_REPAIR 1024U /* We are running repair on table */ +#define STATE_CRASHED_PRINTED 2048U #define STATE_CRASHED_FLAGS (STATE_CRASHED | STATE_CRASHED_ON_REPAIR | STATE_CRASHED_PRINTED) /* options to maria_read_cache */ -#define READING_NEXT 1 -#define READING_HEADER 2 +#define READING_NEXT 1U +#define READING_HEADER 2U /* Number of bytes on key pages to indicate used size */ -#define KEYPAGE_USED_SIZE 2 -#define KEYPAGE_KEYID_SIZE 1 -#define KEYPAGE_FLAG_SIZE 1 -#define KEYPAGE_KEY_VERSION_SIZE 4 /* encryption */ -#define KEYPAGE_CHECKSUM_SIZE 4 +#define KEYPAGE_USED_SIZE 2U +#define KEYPAGE_KEYID_SIZE 1U +#define KEYPAGE_FLAG_SIZE 1U +#define KEYPAGE_KEY_VERSION_SIZE 4U /* encryption */ +#define KEYPAGE_CHECKSUM_SIZE 4U #define MAX_KEYPAGE_HEADER_SIZE (LSN_STORE_SIZE + KEYPAGE_USED_SIZE + \ KEYPAGE_KEYID_SIZE + KEYPAGE_FLAG_SIZE + \ TRANSID_SIZE + KEYPAGE_KEY_VERSION_SIZE) -#define KEYPAGE_FLAG_ISNOD 1 -#define KEYPAGE_FLAG_HAS_TRANSID 2 +#define KEYPAGE_FLAG_ISNOD 1U +#define KEYPAGE_FLAG_HAS_TRANSID 2U #define _ma_get_page_used(share,x) \ ((uint) mi_uint2korr((x) + (share)->keypage_header - KEYPAGE_USED_SIZE)) @@ -886,9 +886,9 @@ struct st_maria_handler #define MEMMAP_EXTRA_MARGIN 7 /* Write this as a suffix for file */ -#define PACK_TYPE_SELECTED 1 /* Bits in field->pack_type */ -#define PACK_TYPE_SPACE_FIELDS 2 -#define PACK_TYPE_ZERO_FILL 4 +#define PACK_TYPE_SELECTED 1U /* Bits in field->pack_type */ +#define PACK_TYPE_SPACE_FIELDS 2U +#define PACK_TYPE_ZERO_FILL 4U #define MARIA_FOUND_WRONG_KEY 32738 /* Impossible value from ha_key_cmp */ #define MARIA_BLOCK_SIZE(key_length,data_pointer,key_pointer,block_size) (((((key_length)+(data_pointer)+(key_pointer))*4+(key_pointer)+2)/(block_size)+1)*(block_size)) @@ -911,12 +911,12 @@ extern mysql_mutex_t THR_LOCK_maria; /* Some tuning parameters */ #define MARIA_MIN_KEYBLOCK_LENGTH 50 /* When to split delete blocks */ -#define MARIA_MIN_SIZE_BULK_INSERT_TREE 16384 /* this is per key */ +#define MARIA_MIN_SIZE_BULK_INSERT_TREE 16384U /* this is per key */ #define MARIA_MIN_ROWS_TO_USE_BULK_INSERT 100 #define MARIA_MIN_ROWS_TO_DISABLE_INDEXES 100 #define MARIA_MIN_ROWS_TO_USE_WRITE_CACHE 10 /* Keep a small buffer for tables only using small blobs */ -#define MARIA_SMALL_BLOB_BUFFER 1024 +#define MARIA_SMALL_BLOB_BUFFER 1024U #define MARIA_MAX_CONTROL_FILE_LOCK_RETRY 30 /* Retry this many times */ /* Some extern variables */ @@ -1247,12 +1247,12 @@ typedef struct st_maria_block_info /* bits in return from _ma_get_block_info */ -#define BLOCK_FIRST 1 -#define BLOCK_LAST 2 -#define BLOCK_DELETED 4 -#define BLOCK_ERROR 8 /* Wrong data */ -#define BLOCK_SYNC_ERROR 16 /* Right data at wrong place */ -#define BLOCK_FATAL_ERROR 32 /* hardware-error */ +#define BLOCK_FIRST 1U +#define BLOCK_LAST 2U +#define BLOCK_DELETED 4U +#define BLOCK_ERROR 8U /* Wrong data */ +#define BLOCK_SYNC_ERROR 16U /* Right data at wrong place */ +#define BLOCK_FATAL_ERROR 32U /* hardware-error */ #define NEED_MEM ((uint) 10*4*(IO_SIZE+32)+32) /* Nead for recursion */ #define MAXERR 20 @@ -1261,17 +1261,17 @@ typedef struct st_maria_block_info #define INDEX_TMP_EXT ".TMM" #define DATA_TMP_EXT ".TMD" -#define UPDATE_TIME 1 -#define UPDATE_STAT 2 -#define UPDATE_SORT 4 -#define UPDATE_AUTO_INC 8 -#define UPDATE_OPEN_COUNT 16 +#define UPDATE_TIME 1U +#define UPDATE_STAT 2U +#define UPDATE_SORT 4U +#define UPDATE_AUTO_INC 8U +#define UPDATE_OPEN_COUNT 16U /* We use MY_ALIGN_DOWN here mainly to ensure that we get stable values for mysqld --help ) */ #define PAGE_BUFFER_INIT MY_ALIGN_DOWN(1024L*1024L*256L-MALLOC_OVERHEAD, 8192) #define READ_BUFFER_INIT MY_ALIGN_DOWN(1024L*256L-MALLOC_OVERHEAD, 1024) #define SORT_BUFFER_INIT MY_ALIGN_DOWN(1024L*1024L*256L-MALLOC_OVERHEAD, 1024) -#define MIN_SORT_BUFFER 4096 +#define MIN_SORT_BUFFER 4096U #define fast_ma_writeinfo(INFO) if (!(INFO)->s->tot_locks) (void) _ma_writeinfo((INFO),0) #define fast_ma_readinfo(INFO) ((INFO)->lock_type == F_UNLCK) && _ma_readinfo((INFO),F_RDLCK,1) diff --git a/storage/myisam/myisamdef.h b/storage/myisam/myisamdef.h index f467d44bcb9..8467daaafc3 100644 --- a/storage/myisam/myisamdef.h +++ b/storage/myisam/myisamdef.h @@ -1,5 +1,6 @@ /* Copyright (c) 2000, 2012, Oracle and/or its affiliates. + Copyright (c) 2017, 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 @@ -92,16 +93,16 @@ typedef struct st_mi_state_info } MI_STATE_INFO; #define MI_STATE_INFO_SIZE (24+14*8+7*4+2*2+8) -#define MI_STATE_KEY_SIZE 8 -#define MI_STATE_KEYBLOCK_SIZE 8 -#define MI_STATE_KEYSEG_SIZE 4 +#define MI_STATE_KEY_SIZE 8U +#define MI_STATE_KEYBLOCK_SIZE 8U +#define MI_STATE_KEYSEG_SIZE 4U #define MI_STATE_EXTRA_SIZE ((MI_MAX_KEY+MI_MAX_KEY_BLOCK_SIZE)*MI_STATE_KEY_SIZE + MI_MAX_KEY*HA_MAX_KEY_SEG*MI_STATE_KEYSEG_SIZE) #define MI_KEYDEF_SIZE (2+ 5*2) #define MI_UNIQUEDEF_SIZE (2+1+1) #define HA_KEYSEG_SIZE (6+ 2*2 + 4*2) #define MI_COLUMNDEF_SIZE (2*3+1) #define MI_BASE_INFO_SIZE (5*8 + 8*4 + 4 + 4*2 + 16) -#define MI_INDEX_BLOCK_MARGIN 16 /* Safety margin for .MYI tables */ +#define MI_INDEX_BLOCK_MARGIN 16U /* Safety margin for .MYI tables */ typedef struct st_mi_base_info { @@ -311,27 +312,27 @@ struct st_myisam_info #define USE_WHOLE_KEY (HA_MAX_KEY_BUFF*2) /* Use whole key in _mi_search() */ #define F_EXTRA_LCK -1 /* bits in opt_flag */ -#define MEMMAP_USED 32 -#define REMEMBER_OLD_POS 64 +#define MEMMAP_USED 32U +#define REMEMBER_OLD_POS 64U -#define WRITEINFO_UPDATE_KEYFILE 1 -#define WRITEINFO_NO_UNLOCK 2 +#define WRITEINFO_UPDATE_KEYFILE 1U +#define WRITEINFO_NO_UNLOCK 2U /* once_flags */ -#define USE_PACKED_KEYS 1 -#define RRND_PRESERVE_LASTINX 2 +#define USE_PACKED_KEYS 1U +#define RRND_PRESERVE_LASTINX 2U /* bits in state.changed */ -#define STATE_CHANGED 1 -#define STATE_CRASHED 2 -#define STATE_CRASHED_ON_REPAIR 4 -#define STATE_NOT_ANALYZED 8 -#define STATE_NOT_OPTIMIZED_KEYS 16 -#define STATE_NOT_SORTED_PAGES 32 +#define STATE_CHANGED 1U +#define STATE_CRASHED 2U +#define STATE_CRASHED_ON_REPAIR 4U +#define STATE_NOT_ANALYZED 8U +#define STATE_NOT_OPTIMIZED_KEYS 16U +#define STATE_NOT_SORTED_PAGES 32U /* options to mi_read_cache */ -#define READING_NEXT 1 -#define READING_HEADER 2 +#define READING_NEXT 1U +#define READING_HEADER 2U #define mi_getint(x) ((uint) mi_uint2korr(x) & 32767) #define mi_putint(x,y,nod) { uint16 boh=(nod ? (uint16) 32768 : 0) + (uint16) (y);\ @@ -384,17 +385,17 @@ struct st_myisam_info #define MI_MAX_DYN_BLOCK_HEADER 20 /* Max prefix of record-block */ #define MI_BLOCK_INFO_HEADER_LENGTH 20 #define MI_DYN_DELETE_BLOCK_HEADER 20 /* length of delete-block-header */ -#define MI_DYN_MAX_BLOCK_LENGTH ((1L << 24)-4L) +#define MI_DYN_MAX_BLOCK_LENGTH ((1UL << 24)-4UL) #define MI_DYN_MAX_ROW_LENGTH (MI_DYN_MAX_BLOCK_LENGTH - MI_SPLIT_LENGTH) -#define MI_DYN_ALIGN_SIZE 4 /* Align blocks on this */ +#define MI_DYN_ALIGN_SIZE 4U /* Align blocks on this */ #define MI_MAX_DYN_HEADER_BYTE 13 /* max header byte for dynamic rows */ -#define MI_MAX_BLOCK_LENGTH ((((ulong) 1 << 24)-1) & (~ (ulong) (MI_DYN_ALIGN_SIZE-1))) +#define MI_MAX_BLOCK_LENGTH (((1U << 24)-1) & (~(MI_DYN_ALIGN_SIZE-1))) #define MI_REC_BUFF_OFFSET ALIGN_SIZE(MI_DYN_DELETE_BLOCK_HEADER+sizeof(uint32)) -#define PACK_TYPE_SELECTED 1 /* Bits in field->pack_type */ -#define PACK_TYPE_SPACE_FIELDS 2 -#define PACK_TYPE_ZERO_FILL 4 +#define PACK_TYPE_SELECTED 1U /* Bits in field->pack_type */ +#define PACK_TYPE_SPACE_FIELDS 2U +#define PACK_TYPE_ZERO_FILL 4U #define MI_FOUND_WRONG_KEY 0x7FFFFFFF /* Impossible value from ha_key_cmp */ #define MI_MAX_KEY_BLOCK_SIZE (MI_MAX_KEY_BLOCK_LENGTH/MI_MIN_KEY_BLOCK_LENGTH) @@ -402,7 +403,7 @@ struct st_myisam_info #define MI_MAX_KEYPTR_SIZE 5 /* For calculating block lengths */ #define MI_MIN_KEYBLOCK_LENGTH 50 /* When to split delete blocks */ -#define MI_MIN_SIZE_BULK_INSERT_TREE 16384 /* this is per key */ +#define MI_MIN_SIZE_BULK_INSERT_TREE 16384U /* this is per key */ #define MI_MIN_ROWS_TO_USE_BULK_INSERT 100 #define MI_MIN_ROWS_TO_DISABLE_INDEXES 100 #define MI_MIN_ROWS_TO_USE_WRITE_CACHE 10 @@ -609,12 +610,12 @@ typedef struct st_mi_block_info /* Parameter to _mi_get_block_info */ /* bits in return from _mi_get_block_info */ -#define BLOCK_FIRST 1 -#define BLOCK_LAST 2 -#define BLOCK_DELETED 4 -#define BLOCK_ERROR 8 /* Wrong data */ -#define BLOCK_SYNC_ERROR 16 /* Right data at wrong place */ -#define BLOCK_FATAL_ERROR 32 /* hardware-error */ +#define BLOCK_FIRST 1U +#define BLOCK_LAST 2U +#define BLOCK_DELETED 4U +#define BLOCK_ERROR 8U /* Wrong data */ +#define BLOCK_SYNC_ERROR 16U /* Right data at wrong place */ +#define BLOCK_FATAL_ERROR 32U /* hardware-error */ #define NEED_MEM ((uint) 10*4*(IO_SIZE+32)+32) /* Nead for recursion */ #define MAXERR 20 @@ -623,17 +624,17 @@ typedef struct st_mi_block_info /* Parameter to _mi_get_block_info */ #define INDEX_TMP_EXT ".TMM" #define DATA_TMP_EXT ".TMD" -#define UPDATE_TIME 1 -#define UPDATE_STAT 2 -#define UPDATE_SORT 4 -#define UPDATE_AUTO_INC 8 -#define UPDATE_OPEN_COUNT 16 +#define UPDATE_TIME 1U +#define UPDATE_STAT 2U +#define UPDATE_SORT 4U +#define UPDATE_AUTO_INC 8U +#define UPDATE_OPEN_COUNT 16U /* We use MY_ALIGN_DOWN here mainly to ensure that we get stable values for mysqld --help ) */ #define KEY_BUFFER_INIT MY_ALIGN_DOWN(1024L*1024L-MALLOC_OVERHEAD, IO_SIZE) #define READ_BUFFER_INIT MY_ALIGN_DOWN(1024L*256L-MALLOC_OVERHEAD, 1024) #define SORT_BUFFER_INIT MY_ALIGN_DOWN(1024L*1024L*128L-MALLOC_OVERHEAD, 1024) -#define MIN_SORT_BUFFER 4096 +#define MIN_SORT_BUFFER 4096U enum myisam_log_commands { diff --git a/storage/perfschema/pfs_events_waits.h b/storage/perfschema/pfs_events_waits.h index a7f7a095b9f..6a50134ad44 100644 --- a/storage/perfschema/pfs_events_waits.h +++ b/storage/perfschema/pfs_events_waits.h @@ -1,4 +1,5 @@ /* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2017, 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 @@ -97,13 +98,13 @@ struct PFS_events_waits : public PFS_events }; /** TIMED bit in the state flags bitfield. */ -#define STATE_FLAG_TIMED (1<<0) +#define STATE_FLAG_TIMED (1U<<0) /** THREAD bit in the state flags bitfield. */ -#define STATE_FLAG_THREAD (1<<1) +#define STATE_FLAG_THREAD (1U<<1) /** EVENT bit in the state flags bitfield. */ -#define STATE_FLAG_EVENT (1<<2) +#define STATE_FLAG_EVENT (1U<<2) /** DIGEST bit in the state flags bitfield. */ -#define STATE_FLAG_DIGEST (1<<3) +#define STATE_FLAG_DIGEST (1U<<3) void insert_events_waits_history(PFS_thread *thread, PFS_events_waits *wait); diff --git a/storage/spider/spd_db_include.h b/storage/spider/spd_db_include.h index 56dbc9ce0dc..929b9778556 100644 --- a/storage/spider/spd_db_include.h +++ b/storage/spider/spd_db_include.h @@ -182,32 +182,32 @@ typedef st_spider_result SPIDER_RESULT; #define SPIDER_SQL_LCL_NAME_QUOTE_STR "`" #define SPIDER_SQL_LCL_NAME_QUOTE_LEN (sizeof(SPIDER_SQL_LCL_NAME_QUOTE_STR) - 1) -#define SPIDER_CONN_KIND_MYSQL (1 << 0) +#define SPIDER_CONN_KIND_MYSQL (1U << 0) #if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET) -#define SPIDER_CONN_KIND_HS_READ (1 << 2) -#define SPIDER_CONN_KIND_HS_WRITE (1 << 3) +#define SPIDER_CONN_KIND_HS_READ (1U << 2) +#define SPIDER_CONN_KIND_HS_WRITE (1U << 3) #endif -#define SPIDER_SQL_KIND_SQL (1 << 0) -#define SPIDER_SQL_KIND_HANDLER (1 << 1) +#define SPIDER_SQL_KIND_SQL (1U << 0) +#define SPIDER_SQL_KIND_HANDLER (1U << 1) #if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET) -#define SPIDER_SQL_KIND_HS (1 << 2) +#define SPIDER_SQL_KIND_HS (1U << 2) #endif -#define SPIDER_SQL_TYPE_SELECT_SQL (1 << 0) -#define SPIDER_SQL_TYPE_INSERT_SQL (1 << 1) -#define SPIDER_SQL_TYPE_UPDATE_SQL (1 << 2) -#define SPIDER_SQL_TYPE_DELETE_SQL (1 << 3) -#define SPIDER_SQL_TYPE_BULK_UPDATE_SQL (1 << 4) -#define SPIDER_SQL_TYPE_TMP_SQL (1 << 5) -#define SPIDER_SQL_TYPE_DROP_TMP_TABLE_SQL (1 << 6) -#define SPIDER_SQL_TYPE_OTHER_SQL (1 << 7) -#define SPIDER_SQL_TYPE_HANDLER (1 << 8) -#define SPIDER_SQL_TYPE_SELECT_HS (1 << 9) -#define SPIDER_SQL_TYPE_INSERT_HS (1 << 10) -#define SPIDER_SQL_TYPE_UPDATE_HS (1 << 11) -#define SPIDER_SQL_TYPE_DELETE_HS (1 << 12) -#define SPIDER_SQL_TYPE_OTHER_HS (1 << 13) +#define SPIDER_SQL_TYPE_SELECT_SQL (1U << 0) +#define SPIDER_SQL_TYPE_INSERT_SQL (1U << 1) +#define SPIDER_SQL_TYPE_UPDATE_SQL (1U << 2) +#define SPIDER_SQL_TYPE_DELETE_SQL (1U << 3) +#define SPIDER_SQL_TYPE_BULK_UPDATE_SQL (1U << 4) +#define SPIDER_SQL_TYPE_TMP_SQL (1U << 5) +#define SPIDER_SQL_TYPE_DROP_TMP_TABLE_SQL (1U << 6) +#define SPIDER_SQL_TYPE_OTHER_SQL (1U << 7) +#define SPIDER_SQL_TYPE_HANDLER (1U << 8) +#define SPIDER_SQL_TYPE_SELECT_HS (1U << 9) +#define SPIDER_SQL_TYPE_INSERT_HS (1U << 10) +#define SPIDER_SQL_TYPE_UPDATE_HS (1U << 11) +#define SPIDER_SQL_TYPE_DELETE_HS (1U << 12) +#define SPIDER_SQL_TYPE_OTHER_HS (1U << 13) enum spider_bulk_upd_start { SPD_BU_NOT_START, |