From 98bba730fd3ab9a40177eface5321af129ee8dec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?El=C5=BCbieta=20Babij?= Date: Mon, 23 May 2016 10:21:20 +0200 Subject: [PATCH] Bug #23329353 - Replace ut_snprint with the C++11 snprintf function. --- storage/innobase/api/api0api.cc | 2 +- storage/innobase/buf/buf0dump.cc | 8 ++--- storage/innobase/dict/dict0crea.cc | 4 +-- storage/innobase/dict/dict0dict.cc | 20 ++++++------ storage/innobase/dict/dict0mem.cc | 2 +- storage/innobase/dict/dict0stats.cc | 14 ++++---- storage/innobase/fts/fts0config.cc | 2 +- storage/innobase/fts/fts0fts.cc | 2 +- storage/innobase/handler/ha_innodb.cc | 20 ++++++------ storage/innobase/handler/handler0alter.cc | 4 +-- storage/innobase/handler/i_s.cc | 12 +++---- storage/innobase/include/data0type.ic | 40 +++++++++++------------ storage/innobase/include/fts0priv.ic | 2 +- storage/innobase/include/ut0ut.h | 17 ---------- storage/innobase/os/os0file.cc | 14 ++++---- storage/innobase/page/page0zip.cc | 4 +-- storage/innobase/row/row0import.cc | 6 ++-- storage/innobase/row/row0quiesce.cc | 8 ++--- storage/innobase/row/row0row.cc | 4 +-- storage/innobase/srv/srv0start.cc | 10 +++--- storage/innobase/trx/trx0i_s.cc | 6 ++-- storage/innobase/trx/trx0purge.cc | 2 +- storage/innobase/ut/ut0ut.cc | 36 -------------------- unittest/gunit/innodb/printf-t.cc | 14 ++++---- 24 files changed, 100 insertions(+), 153 deletions(-) diff --git a/storage/innobase/api/api0api.cc b/storage/innobase/api/api0api.cc index 088324aa47e4..d36873d57c8b 100644 --- a/storage/innobase/api/api0api.cc +++ b/storage/innobase/api/api0api.cc @@ -3936,7 +3936,7 @@ ib_memc_sdi_get_keys( for (dd::sdi_container::iterator it = ib_vector.sdi_vector->m_vec.begin(); it != ib_vector.sdi_vector->m_vec.end(); it++) { - bytes_printed = ut_snprintf( + bytes_printed = snprintf( ptr, list_buf_len - cur_len, "%llu:%u|", it->id, it->type); diff --git a/storage/innobase/buf/buf0dump.cc b/storage/innobase/buf/buf0dump.cc index d40f4254f19f..e71198577f26 100644 --- a/storage/innobase/buf/buf0dump.cc +++ b/storage/innobase/buf/buf0dump.cc @@ -210,7 +210,7 @@ buf_dump_generate_path( { char buf[FN_REFLEN]; - ut_snprintf(buf, sizeof(buf), "%s%c%s", get_buf_dump_dir(), + snprintf(buf, sizeof(buf), "%s%c%s", get_buf_dump_dir(), OS_PATH_SEPARATOR, srv_buf_dump_filename); os_file_type_t type; @@ -237,11 +237,11 @@ buf_dump_generate_path( if (srv_data_home_full[strlen(srv_data_home_full) - 1] == OS_PATH_SEPARATOR) { - ut_snprintf(path, path_size, "%s%s", + snprintf(path, path_size, "%s%s", srv_data_home_full, srv_buf_dump_filename); } else { - ut_snprintf(path, path_size, "%s%c%s", + snprintf(path, path_size, "%s%c%s", srv_data_home_full, OS_PATH_SEPARATOR, srv_buf_dump_filename); @@ -271,7 +271,7 @@ buf_dump( buf_dump_generate_path(full_filename, sizeof(full_filename)); - ut_snprintf(tmp_filename, sizeof(tmp_filename), + snprintf(tmp_filename, sizeof(tmp_filename), "%s.incomplete", full_filename); buf_dump_status(STATUS_INFO, "Dumping buffer pool(s) to %s", diff --git a/storage/innobase/dict/dict0crea.cc b/storage/innobase/dict/dict0crea.cc index 9f271bb3ca57..42e0487b4930 100644 --- a/storage/innobase/dict/dict0crea.cc +++ b/storage/innobase/dict/dict0crea.cc @@ -2531,7 +2531,7 @@ dict_sdi_create_idx_in_mem( digits of copy_num (10) + 1 */ char table_name[28]; mem_heap_t* heap = mem_heap_create(DICT_HEAP_SIZE); - ut_snprintf(table_name, sizeof(table_name), "SDI_" ULINTPF "_" UINT32PF, + snprintf(table_name, sizeof(table_name), "SDI_" ULINTPF "_" UINT32PF, space, copy_num); dict_table_t* table = dict_mem_table_create( @@ -2556,7 +2556,7 @@ dict_sdi_create_idx_in_mem( /* 16 = 14(CLUST_IND_SDI_) + 1 (copy_num 0 or 1) + 1 */ char index_name[16]; - ut_snprintf(index_name, sizeof(index_name), "CLUST_IND_SDI_" UINT32PF, + snprintf(index_name, sizeof(index_name), "CLUST_IND_SDI_" UINT32PF, copy_num); dict_index_t* temp_index = dict_mem_index_create( diff --git a/storage/innobase/dict/dict0dict.cc b/storage/innobase/dict/dict0dict.cc index b349dcfa3c91..36b128207007 100644 --- a/storage/innobase/dict/dict0dict.cc +++ b/storage/innobase/dict/dict0dict.cc @@ -6455,7 +6455,7 @@ dict_table_schema_check( if (table == NULL) { /* no such table */ - ut_snprintf(errstr, errstr_sz, + snprintf(errstr, errstr_sz, "Table %s not found.", ut_format_name(req_schema->table_name, buf, sizeof(buf))); @@ -6466,7 +6466,7 @@ dict_table_schema_check( if (table->ibd_file_missing) { /* missing tablespace */ - ut_snprintf(errstr, errstr_sz, + snprintf(errstr, errstr_sz, "Tablespace for table %s is missing.", ut_format_name(req_schema->table_name, buf, sizeof(buf))); @@ -6477,7 +6477,7 @@ dict_table_schema_check( ulint n_sys_cols = dict_table_get_n_sys_cols(table); if ((ulint) table->n_def - n_sys_cols != req_schema->n_cols) { /* the table has a different number of columns than required */ - ut_snprintf(errstr, errstr_sz, + snprintf(errstr, errstr_sz, "%s has %lu columns but should have %lu.", ut_format_name(req_schema->table_name, buf, sizeof(buf)), @@ -6498,7 +6498,7 @@ dict_table_schema_check( if (j == table->n_def) { - ut_snprintf(errstr, errstr_sz, + snprintf(errstr, errstr_sz, "required column %s" " not found in table %s.", req_schema->columns[i].name, @@ -6517,7 +6517,7 @@ dict_table_schema_check( CREATE_TYPES_NAMES(); - ut_snprintf(errstr, errstr_sz, + snprintf(errstr, errstr_sz, "Column %s in table %s is %s" " but should be %s (length mismatch).", req_schema->columns[i].name, @@ -6533,7 +6533,7 @@ dict_table_schema_check( CREATE_TYPES_NAMES(); - ut_snprintf(errstr, errstr_sz, + snprintf(errstr, errstr_sz, "Column %s in table %s is %s" " but should be %s (type mismatch).", req_schema->columns[i].name, @@ -6552,7 +6552,7 @@ dict_table_schema_check( CREATE_TYPES_NAMES(); - ut_snprintf(errstr, errstr_sz, + snprintf(errstr, errstr_sz, "Column %s in table %s is %s" " but should be %s (flags mismatch).", req_schema->columns[i].name, @@ -6565,7 +6565,7 @@ dict_table_schema_check( } if (req_schema->n_foreign != table->foreign_set.size()) { - ut_snprintf( + snprintf( errstr, errstr_sz, "Table %s has " ULINTPF " foreign key(s) pointing" " to other tables, but it must have %lu.", @@ -6577,7 +6577,7 @@ dict_table_schema_check( } if (req_schema->n_referenced != table->referenced_set.size()) { - ut_snprintf( + snprintf( errstr, errstr_sz, "There are " ULINTPF " foreign key(s) pointing to %s, " "but there must be %lu.", @@ -6653,7 +6653,7 @@ dict_fs2utf8( &errors); if (errors != 0) { - ut_snprintf(table_utf8, table_utf8_size, "%s", table); + snprintf(table_utf8, table_utf8_size, "%s", table); } } diff --git a/storage/innobase/dict/dict0mem.cc b/storage/innobase/dict/dict0mem.cc index 9a1578a47c1a..63ec22ef1625 100644 --- a/storage/innobase/dict/dict0mem.cc +++ b/storage/innobase/dict/dict0mem.cc @@ -694,7 +694,7 @@ dict_mem_create_temporary_tablename( size = dblen + (sizeof(TEMP_FILE_PREFIX) + 3 + 20 + 1 + 10); name = static_cast(mem_heap_alloc(heap, size)); memcpy(name, dbtab, dblen); - ut_snprintf(name + dblen, size - dblen, + snprintf(name + dblen, size - dblen, TEMP_FILE_PREFIX_INNODB UINT64PF "-" UINT32PF, id, dict_temp_file_num); diff --git a/storage/innobase/dict/dict0stats.cc b/storage/innobase/dict/dict0stats.cc index 4af835d1ed0b..14ca65e1fa9e 100644 --- a/storage/innobase/dict/dict0stats.cc +++ b/storage/innobase/dict/dict0stats.cc @@ -2365,11 +2365,11 @@ dict_stats_save( char stat_description[1024]; ulint j; - ut_snprintf(stat_name, sizeof(stat_name), + snprintf(stat_name, sizeof(stat_name), "n_diff_pfx%02lu", i + 1); /* craft a string that contains the column names */ - ut_snprintf(stat_description, + snprintf(stat_description, sizeof(stat_description), "%s", index->fields[0].name()); for (j = 1; j <= i; j++) { @@ -2377,7 +2377,7 @@ dict_stats_save( len = strlen(stat_description); - ut_snprintf(stat_description + len, + snprintf(stat_description + len, sizeof(stat_description) - len, ",%s", index->fields[j].name()); } @@ -3155,7 +3155,7 @@ dict_stats_drop_index( } if (ret != DB_SUCCESS) { - ut_snprintf(errstr, errstr_sz, + snprintf(errstr, errstr_sz, "Unable to delete statistics for index %s" " from %s%s: %s. They can be deleted later using" " DELETE FROM %s WHERE" @@ -3301,7 +3301,7 @@ dict_stats_drop_table( if (ret != DB_SUCCESS) { - ut_snprintf(errstr, errstr_sz, + snprintf(errstr, errstr_sz, "Unable to delete statistics for table %s.%s: %s." " They can be deleted later using" @@ -3484,7 +3484,7 @@ dict_stats_rename_table( && n_attempts < 5); if (ret != DB_SUCCESS) { - ut_snprintf(errstr, errstr_sz, + snprintf(errstr, errstr_sz, "Unable to rename statistics from" " %s.%s to %s.%s in %s: %s." " They can be renamed later using" @@ -3543,7 +3543,7 @@ dict_stats_rename_table( rw_lock_x_unlock(dict_operation_lock); if (ret != DB_SUCCESS) { - ut_snprintf(errstr, errstr_sz, + snprintf(errstr, errstr_sz, "Unable to rename statistics from" " %s.%s to %s.%s in %s: %s." " They can be renamed later using" diff --git a/storage/innobase/fts/fts0config.cc b/storage/innobase/fts/fts0config.cc index cca3d5fcd875..cd335260530b 100644 --- a/storage/innobase/fts/fts0config.cc +++ b/storage/innobase/fts/fts0config.cc @@ -348,7 +348,7 @@ fts_config_set_index_ulint( // FIXME: Get rid of snprintf ut_a(FTS_MAX_INT_LEN < FTS_MAX_CONFIG_VALUE_LEN); - value.f_len = ut_snprintf( + value.f_len = snprintf( (char*) value.f_str, FTS_MAX_INT_LEN, "%lu", int_value); error = fts_config_set_index_value(trx, index, name, &value); diff --git a/storage/innobase/fts/fts0fts.cc b/storage/innobase/fts/fts0fts.cc index 7d6f92b98f0d..75c6bb86c4de 100644 --- a/storage/innobase/fts/fts0fts.cc +++ b/storage/innobase/fts/fts0fts.cc @@ -2811,7 +2811,7 @@ fts_update_sync_doc_id( info = pars_info_create(); - id_len = ut_snprintf( + id_len = snprintf( (char*) id, sizeof(id), FTS_DOC_ID_FORMAT, doc_id + 1); pars_info_bind_varchar_literal(info, "doc_id", id, id_len); diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index e1d6236f8ee9..08c36f715cb9 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -10281,12 +10281,12 @@ create_table_info_t::create_table_def() if (dict_table_is_intrinsic(table) && field->orig_table) { - ut_snprintf(field_name, sizeof(field_name), + snprintf(field_name, sizeof(field_name), "%s_%s_%lu", field->orig_table->alias, field->field_name, i); } else { - ut_snprintf(field_name, sizeof(field_name), + snprintf(field_name, sizeof(field_name), "%s", field->field_name); } @@ -16598,13 +16598,13 @@ ShowStatus::to_string( int name_len; char name_buf[IO_SIZE]; - name_len = ut_snprintf( + name_len = snprintf( name_buf, sizeof(name_buf), "%s", it->m_name.c_str()); int status_len; char status_buf[IO_SIZE]; - status_len = ut_snprintf( + status_len = snprintf( status_buf, sizeof(status_buf), "spins=%lu,waits=%lu,calls=" TRX_ID_FMT, static_cast(it->m_spins), @@ -16691,7 +16691,7 @@ innodb_show_rwlock_status( continue; } - buf1len = ut_snprintf( + buf1len = snprintf( buf1, sizeof buf1, "rwlock: %s:%lu", innobase_basename(rw_lock->cfile_name), static_cast(rw_lock->cline)); @@ -16699,7 +16699,7 @@ innodb_show_rwlock_status( int buf2len; char buf2[IO_SIZE]; - buf2len = ut_snprintf( + buf2len = snprintf( buf2, sizeof buf2, "waits=%lu", static_cast(rw_lock->count_os_wait)); @@ -16719,7 +16719,7 @@ innodb_show_rwlock_status( int buf1len; char buf1[IO_SIZE]; - buf1len = ut_snprintf( + buf1len = snprintf( buf1, sizeof buf1, "sum rwlock: %s:%lu", innobase_basename(block_rwlock->cfile_name), static_cast(block_rwlock->cline)); @@ -16727,7 +16727,7 @@ innodb_show_rwlock_status( int buf2len; char buf2[IO_SIZE]; - buf2len = ut_snprintf( + buf2len = snprintf( buf2, sizeof buf2, "waits=%lu", static_cast(block_rwlock_oswait_count)); @@ -17362,7 +17362,7 @@ ha_innobase::get_foreign_dup_key( child_table_name[len] = '\0'; /* copy index name */ - ut_snprintf(child_key_name, child_key_name_len, "%s", + snprintf(child_key_name, child_key_name_len, "%s", err_index->name()); return(true); @@ -17948,7 +17948,7 @@ innodb_buffer_pool_size_update( { longlong in_val = *static_cast(save); - ut_snprintf(export_vars.innodb_buffer_pool_resize_status, + snprintf(export_vars.innodb_buffer_pool_resize_status, sizeof(export_vars.innodb_buffer_pool_resize_status), "Requested to resize buffer pool."); diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index 39c8f801c1ee..217db5a0e2cb 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -8096,7 +8096,7 @@ alter_stats_rebuild( # define DBUG_INJECT_CRASH(prefix, count) \ do { \ char buf[32]; \ - ut_snprintf(buf, sizeof buf, prefix "_%u", count); \ + snprintf(buf, sizeof buf, prefix "_%u", count); \ DBUG_EXECUTE_IF(buf, DBUG_SUICIDE();); \ } while (0) #else @@ -8338,7 +8338,7 @@ ha_innobase::commit_inplace_alter_table( /* Generate a dynamic dbug text. */ char buf[32]; - ut_snprintf(buf, sizeof buf, + snprintf(buf, sizeof buf, "ib_commit_inplace_fail_%u", failure_inject_count++); diff --git a/storage/innobase/handler/i_s.cc b/storage/innobase/handler/i_s.cc index a09ef56c22ca..b0d353799772 100644 --- a/storage/innobase/handler/i_s.cc +++ b/storage/innobase/handler/i_s.cc @@ -604,7 +604,7 @@ fill_innodb_trx_from_cache( cache, I_S_INNODB_TRX, i); /* trx_id */ - ut_snprintf(trx_id, sizeof(trx_id), TRX_ID_FMT, row->trx_id); + snprintf(trx_id, sizeof(trx_id), TRX_ID_FMT, row->trx_id); OK(field_store_string(fields[IDX_TRX_ID], trx_id)); /* trx_state */ @@ -941,7 +941,7 @@ fill_innodb_locks_from_cache( lock_id)); /* lock_trx_id */ - ut_snprintf(lock_trx_id, sizeof(lock_trx_id), + snprintf(lock_trx_id, sizeof(lock_trx_id), TRX_ID_FMT, row->lock_trx_id); OK(field_store_string(fields[IDX_LOCK_TRX_ID], lock_trx_id)); @@ -1146,7 +1146,7 @@ fill_innodb_lock_waits_from_cache( cache, I_S_INNODB_LOCK_WAITS, i); /* requesting_trx_id */ - ut_snprintf(requesting_trx_id, sizeof(requesting_trx_id), + snprintf(requesting_trx_id, sizeof(requesting_trx_id), TRX_ID_FMT, row->requested_lock_row->lock_trx_id); OK(field_store_string(fields[IDX_REQUESTING_TRX_ID], requesting_trx_id)); @@ -1160,7 +1160,7 @@ fill_innodb_lock_waits_from_cache( sizeof(requested_lock_id)))); /* blocking_trx_id */ - ut_snprintf(blocking_trx_id, sizeof(blocking_trx_id), + snprintf(blocking_trx_id, sizeof(blocking_trx_id), TRX_ID_FMT, row->blocking_lock_row->lock_trx_id); OK(field_store_string(fields[IDX_BLOCKING_TRX_ID], blocking_trx_id)); @@ -1773,7 +1773,7 @@ i_s_cmp_per_index_fill_low( index->name); } else { /* index not found */ - ut_snprintf(name, sizeof(name), + snprintf(name, sizeof(name), "index_id:" IB_ID_FMT, iter->first.m_index_id); field_store_string(fields[IDX_DATABASE_NAME], @@ -8858,7 +8858,7 @@ i_s_files_table_fill( the user must match the space_id to i_s_table.space in order find the single table that is in it or the schema it belongs to. */ - ut_snprintf( + snprintf( file_per_table_name, sizeof(file_per_table_name), "innodb_file_per_table_" ULINTPF, diff --git a/storage/innobase/include/data0type.ic b/storage/innobase/include/data0type.ic index 3a16eee79828..682b3e0192d5 100644 --- a/storage/innobase/include/data0type.ic +++ b/storage/innobase/include/data0type.ic @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -391,79 +391,79 @@ dtype_sql_name( #define APPEND_UNSIGNED() \ do { \ if (prtype & DATA_UNSIGNED) { \ - ut_snprintf(name + strlen(name), \ + snprintf(name + strlen(name), \ name_sz - strlen(name), \ " UNSIGNED"); \ } \ } while (0) - ut_snprintf(name, name_sz, "UNKNOWN"); + snprintf(name, name_sz, "UNKNOWN"); switch (mtype) { case DATA_INT: switch (len) { case 1: - ut_snprintf(name, name_sz, "TINYINT"); + snprintf(name, name_sz, "TINYINT"); break; case 2: - ut_snprintf(name, name_sz, "SMALLINT"); + snprintf(name, name_sz, "SMALLINT"); break; case 3: - ut_snprintf(name, name_sz, "MEDIUMINT"); + snprintf(name, name_sz, "MEDIUMINT"); break; case 4: - ut_snprintf(name, name_sz, "INT"); + snprintf(name, name_sz, "INT"); break; case 8: - ut_snprintf(name, name_sz, "BIGINT"); + snprintf(name, name_sz, "BIGINT"); break; } APPEND_UNSIGNED(); break; case DATA_FLOAT: - ut_snprintf(name, name_sz, "FLOAT"); + snprintf(name, name_sz, "FLOAT"); APPEND_UNSIGNED(); break; case DATA_DOUBLE: - ut_snprintf(name, name_sz, "DOUBLE"); + snprintf(name, name_sz, "DOUBLE"); APPEND_UNSIGNED(); break; case DATA_FIXBINARY: - ut_snprintf(name, name_sz, "BINARY(%u)", len); + snprintf(name, name_sz, "BINARY(%u)", len); break; case DATA_CHAR: case DATA_MYSQL: - ut_snprintf(name, name_sz, "CHAR(%u)", len); + snprintf(name, name_sz, "CHAR(%u)", len); break; case DATA_VARCHAR: case DATA_VARMYSQL: - ut_snprintf(name, name_sz, "VARCHAR(%u)", len); + snprintf(name, name_sz, "VARCHAR(%u)", len); break; case DATA_BINARY: - ut_snprintf(name, name_sz, "VARBINARY(%u)", len); + snprintf(name, name_sz, "VARBINARY(%u)", len); break; case DATA_GEOMETRY: - ut_snprintf(name, name_sz, "GEOMETRY"); + snprintf(name, name_sz, "GEOMETRY"); break; case DATA_BLOB: switch (len) { case 9: - ut_snprintf(name, name_sz, "TINYBLOB"); + snprintf(name, name_sz, "TINYBLOB"); break; case 10: - ut_snprintf(name, name_sz, "BLOB"); + snprintf(name, name_sz, "BLOB"); break; case 11: - ut_snprintf(name, name_sz, "MEDIUMBLOB"); + snprintf(name, name_sz, "MEDIUMBLOB"); break; case 12: - ut_snprintf(name, name_sz, "LONGBLOB"); + snprintf(name, name_sz, "LONGBLOB"); break; } } if (prtype & DATA_NOT_NULL) { - ut_snprintf(name + strlen(name), + snprintf(name + strlen(name), name_sz - strlen(name), " NOT NULL"); } diff --git a/storage/innobase/include/fts0priv.ic b/storage/innobase/include/fts0priv.ic index eb92ba9b12bd..1923c9a51346 100644 --- a/storage/innobase/include/fts0priv.ic +++ b/storage/innobase/include/fts0priv.ic @@ -63,7 +63,7 @@ fts_write_object_id( /* As above, but this is only for those tables failing to rename. */ if (!hex_format) { #ifdef _WIN32 - // FIXME: Use ut_snprintf(), so does following one. + // FIXME: Use snprintf(), so does following one. return(sprintf(str, "%016llu", id)); #else /* _WIN32 */ return(sprintf(str, "%016" PRIu64, id)); diff --git a/storage/innobase/include/ut0ut.h b/storage/innobase/include/ut0ut.h index 6b4beba3ef5a..8437881ce4fc 100644 --- a/storage/innobase/include/ut0ut.h +++ b/storage/innobase/include/ut0ut.h @@ -373,19 +373,6 @@ ut_vsnprintf( size_t size, /*!< in: str size */ const char* fmt, /*!< in: format */ va_list ap); /*!< in: format values */ - -/**********************************************************************//** -A substitute for snprintf(3), formatted output conversion into -a limited buffer. -@return number of characters that would have been printed if the size -were unlimited, not including the terminating '\0'. */ -int -ut_snprintf( -/*========*/ - char* str, /*!< out: string */ - size_t size, /*!< in: str size */ - const char* fmt, /*!< in: format */ - ...); /*!< in: format values */ #else /**********************************************************************//** A wrapper for vsnprintf(3), formatted output conversion into @@ -396,10 +383,6 @@ _vscprintf() in addition to estimate that but we would need another copy of "ap" for that and VC does not provide va_copy(). */ # define ut_vsnprintf(buf, size, fmt, ap) \ ((void) vsnprintf(buf, size, fmt, ap)) -/**********************************************************************//** -A wrapper for snprintf(3), formatted output conversion into -a limited buffer. */ -# define ut_snprintf snprintf #endif /* _WIN32 */ /*************************************************************//** diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc index bf0258495100..074cd7fd4458 100644 --- a/storage/innobase/os/os0file.cc +++ b/storage/innobase/os/os0file.cc @@ -1772,7 +1772,7 @@ os_file_make_new_pathname( new_path = static_cast(ut_malloc_nokey(new_path_len)); memcpy(new_path, old_path, dir_len); - ut_snprintf(new_path + dir_len, + snprintf(new_path + dir_len, new_path_len - dir_len, "%c%s.ibd", OS_PATH_SEPARATOR, @@ -8064,7 +8064,7 @@ Encryption::create_master_key(byte** master_key) memset(key_name, 0, ENCRYPTION_MASTER_KEY_NAME_MAX_LEN); /* Generate new master key */ - ut_snprintf(key_name, ENCRYPTION_MASTER_KEY_NAME_MAX_LEN, + snprintf(key_name, ENCRYPTION_MASTER_KEY_NAME_MAX_LEN, "%s-%s-%lu", ENCRYPTION_MASTER_KEY_PRIFIX, uuid, master_key_id + 1); @@ -8106,14 +8106,14 @@ Encryption::get_master_key(ulint master_key_id, memset(key_name, 0, ENCRYPTION_MASTER_KEY_NAME_MAX_LEN); if (srv_uuid != NULL) { - ut_snprintf(key_name, ENCRYPTION_MASTER_KEY_NAME_MAX_LEN, + snprintf(key_name, ENCRYPTION_MASTER_KEY_NAME_MAX_LEN, "%s-%s-%lu", ENCRYPTION_MASTER_KEY_PRIFIX, srv_uuid, master_key_id); } else { /* For compitable with 5.7.11, we need to get master key with server id. */ memset(key_name, 0, ENCRYPTION_MASTER_KEY_NAME_MAX_LEN); - ut_snprintf(key_name, ENCRYPTION_MASTER_KEY_NAME_MAX_LEN, + snprintf(key_name, ENCRYPTION_MASTER_KEY_NAME_MAX_LEN, "%s-%lu-%lu", ENCRYPTION_MASTER_KEY_PRIFIX, server_id, master_key_id); } @@ -8173,7 +8173,7 @@ Encryption::get_master_key(ulint* master_key_id, memcpy(uuid, server_uuid, ENCRYPTION_SERVER_UUID_LEN); /* Prepare the server uuid. */ - ut_snprintf(key_name, ENCRYPTION_MASTER_KEY_NAME_MAX_LEN, + snprintf(key_name, ENCRYPTION_MASTER_KEY_NAME_MAX_LEN, "%s-%s-1", ENCRYPTION_MASTER_KEY_PRIFIX, uuid); @@ -8200,7 +8200,7 @@ Encryption::get_master_key(ulint* master_key_id, } else { *master_key_id = Encryption::master_key_id; - ut_snprintf(key_name, ENCRYPTION_MASTER_KEY_NAME_MAX_LEN, + snprintf(key_name, ENCRYPTION_MASTER_KEY_NAME_MAX_LEN, "%s-%s-%lu", ENCRYPTION_MASTER_KEY_PRIFIX, uuid, *master_key_id); @@ -8218,7 +8218,7 @@ Encryption::get_master_key(ulint* master_key_id, memset(key_name, 0, ENCRYPTION_MASTER_KEY_NAME_MAX_LEN); - ut_snprintf(key_name, ENCRYPTION_MASTER_KEY_NAME_MAX_LEN, + snprintf(key_name, ENCRYPTION_MASTER_KEY_NAME_MAX_LEN, "%s-%lu-%lu", ENCRYPTION_MASTER_KEY_PRIFIX, server_id, *master_key_id); diff --git a/storage/innobase/page/page0zip.cc b/storage/innobase/page/page0zip.cc index af77c8363999..1a7301f7a5a6 100644 --- a/storage/innobase/page/page0zip.cc +++ b/storage/innobase/page/page0zip.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2005, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. This program is free software; you can redistribute it and/or modify it under @@ -1066,7 +1066,7 @@ page_zip_compress( if (UNIV_UNLIKELY(page_zip_compress_log)) { /* Create a log file for every compression attempt. */ char logfilename[9]; - ut_snprintf(logfilename, sizeof logfilename, + snprintf(logfilename, sizeof logfilename, "%08x", page_zip_compress_log++); logfile = fopen(logfilename, "wb"); diff --git a/storage/innobase/row/row0import.cc b/storage/innobase/row/row0import.cc index 0ba9487528d7..e6bfd52b30bf 100644 --- a/storage/innobase/row/row0import.cc +++ b/storage/innobase/row/row0import.cc @@ -776,7 +776,7 @@ FetchIndexRootPages::build_row_import(row_import* cfg) const UNIV_NOTHROW char name[BUFSIZ]; - ut_snprintf(name, sizeof(name), "index" IB_ID_FMT, it->m_id); + snprintf(name, sizeof(name), "index" IB_ID_FMT, it->m_id); ulint len = strlen(name) + 1; @@ -2711,7 +2711,7 @@ row_import_read_index_data( if (n_bytes != sizeof(row)) { char msg[BUFSIZ]; - ut_snprintf(msg, sizeof(msg), + snprintf(msg, sizeof(msg), "while reading index meta-data, expected" " to read %lu bytes but read only %lu" " bytes", @@ -3301,7 +3301,7 @@ row_import_read_cfg( if (file == NULL) { char msg[BUFSIZ]; - ut_snprintf(msg, sizeof(msg), + snprintf(msg, sizeof(msg), "Error opening '%s', will attempt to import" " without schema verification", name); diff --git a/storage/innobase/row/row0quiesce.cc b/storage/innobase/row/row0quiesce.cc index 7b334d87d832..1beb30983039 100644 --- a/storage/innobase/row/row0quiesce.cc +++ b/storage/innobase/row/row0quiesce.cc @@ -511,7 +511,7 @@ row_quiesce_write_cfg( char msg[BUFSIZ]; - ut_snprintf(msg, sizeof(msg), "%s flush() failed", + snprintf(msg, sizeof(msg), "%s flush() failed", name); ib_senderrf( @@ -522,7 +522,7 @@ row_quiesce_write_cfg( if (fclose(file) != 0) { char msg[BUFSIZ]; - ut_snprintf(msg, sizeof(msg), "%s flose() failed", + snprintf(msg, sizeof(msg), "%s flose() failed", name); ib_senderrf( @@ -705,7 +705,7 @@ row_quiesce_write_cfp( char msg[BUFSIZ]; - ut_snprintf(msg, sizeof(msg), "%s flush() failed", + snprintf(msg, sizeof(msg), "%s flush() failed", name); ib_senderrf( @@ -718,7 +718,7 @@ row_quiesce_write_cfp( if (fclose(file) != 0) { char msg[BUFSIZ]; - ut_snprintf(msg, sizeof(msg), "%s flose() failed", + snprintf(msg, sizeof(msg), "%s flose() failed", name); ib_senderrf( diff --git a/storage/innobase/row/row0row.cc b/storage/innobase/row/row0row.cc index 9cffe0213a4a..4416f86441f9 100644 --- a/storage/innobase/row/row0row.cc +++ b/storage/innobase/row/row0row.cc @@ -1176,7 +1176,7 @@ row_raw_format_int( value = mach_read_int_type( (const byte*) data, data_len, unsigned_type); - ret = ut_snprintf( + ret = snprintf( buf, buf_size, unsigned_type ? UINT64PF : "%" PRId64, value) + 1; } else { @@ -1273,7 +1273,7 @@ row_raw_format( if (data_len == UNIV_SQL_NULL) { - ret = ut_snprintf((char*) buf, buf_size, "NULL") + 1; + ret = snprintf((char*) buf, buf_size, "NULL") + 1; return(ut_min(ret, buf_size)); } diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc index d750b34efa96..89f3951b7912 100644 --- a/storage/innobase/srv/srv0start.cc +++ b/storage/innobase/srv/srv0start.cc @@ -636,7 +636,7 @@ srv_undo_tablespace_open( dberr_t err = DB_ERROR; char undo_name[sizeof "innodb_undo000"]; - ut_snprintf(undo_name, sizeof(undo_name), + snprintf(undo_name, sizeof(undo_name), "innodb_undo%03u", static_cast(space_id)); if (!srv_file_check_mode(name)) { @@ -754,7 +754,7 @@ srv_undo_tablespaces_init( for (i = 0; create_new_db && i < n_conf_tablespaces; ++i) { char name[OS_FILE_MAX_PATH]; - ut_snprintf( + snprintf( name, sizeof(name), "%s%cundo%03lu", srv_undo_dir, OS_PATH_SEPARATOR, i + 1); @@ -795,7 +795,7 @@ srv_undo_tablespaces_init( char name[OS_FILE_MAX_PATH]; - ut_snprintf(name, sizeof(name), + snprintf(name, sizeof(name), "%s%cundo%03lu", srv_undo_dir, OS_PATH_SEPARATOR, undo_tablespace_ids[i]); @@ -835,7 +835,7 @@ srv_undo_tablespaces_init( for (i = 0; i < n_undo_tablespaces; ++i) { char name[OS_FILE_MAX_PATH]; - ut_snprintf( + snprintf( name, sizeof(name), "%s%cundo%03lu", srv_undo_dir, OS_PATH_SEPARATOR, @@ -873,7 +873,7 @@ srv_undo_tablespaces_init( for (i = prev_space_id + 1; i < TRX_SYS_N_RSEGS; ++i) { char name[OS_FILE_MAX_PATH]; - ut_snprintf( + snprintf( name, sizeof(name), "%s%cundo%03lu", srv_undo_dir, OS_PATH_SEPARATOR, i); diff --git a/storage/innobase/trx/trx0i_s.cc b/storage/innobase/trx/trx0i_s.cc index 05bf6ff7b6a0..4cfdf7b22aea 100644 --- a/storage/innobase/trx/trx0i_s.cc +++ b/storage/innobase/trx/trx0i_s.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2007, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -1606,13 +1606,13 @@ trx_i_s_create_lock_id( if (row->lock_space != ULINT_UNDEFINED) { /* record lock */ - res_len = ut_snprintf(lock_id, lock_id_size, + res_len = snprintf(lock_id, lock_id_size, TRX_ID_FMT ":%lu:%lu:%lu", row->lock_trx_id, row->lock_space, row->lock_page, row->lock_rec); } else { /* table lock */ - res_len = ut_snprintf(lock_id, lock_id_size, + res_len = snprintf(lock_id, lock_id_size, TRX_ID_FMT":" UINT64PF, row->lock_trx_id, row->lock_table_id); diff --git a/storage/innobase/trx/trx0purge.cc b/storage/innobase/trx/trx0purge.cc index 5d7e8d996d30..e9575b82ebd6 100644 --- a/storage/innobase/trx/trx0purge.cc +++ b/storage/innobase/trx/trx0purge.cc @@ -656,7 +656,7 @@ namespace undo { log_file_name_len = strlen(log_file_name); } - ut_snprintf(log_file_name + log_file_name_len, + snprintf(log_file_name + log_file_name_len, log_file_name_sz - log_file_name_len, "%s%lu_%s", undo::s_log_prefix, (ulong) space_id, s_log_ext); diff --git a/storage/innobase/ut/ut0ut.cc b/storage/innobase/ut/ut0ut.cc index d7488db876a2..4b94311aa8b3 100644 --- a/storage/innobase/ut/ut0ut.cc +++ b/storage/innobase/ut/ut0ut.cc @@ -459,42 +459,6 @@ ut_vsnprintf( str[size - 1] = '\0'; } -/**********************************************************************//** -A substitute for snprintf(3), formatted output conversion into -a limited buffer. -@return number of characters that would have been printed if the size -were unlimited, not including the terminating '\0'. */ -int -ut_snprintf( -/*========*/ - char* str, /*!< out: string */ - size_t size, /*!< in: str size */ - const char* fmt, /*!< in: format */ - ...) /*!< in: format values */ -{ - int res; - va_list ap1; - va_list ap2; - - va_start(ap1, fmt); - va_start(ap2, fmt); - - res = _vscprintf(fmt, ap1); - ut_a(res != -1); - - if (size > 0) { - _vsnprintf(str, size, fmt, ap2); - - if ((size_t) res >= size) { - str[size - 1] = '\0'; - } - } - - va_end(ap1); - va_end(ap2); - - return(res); -} #endif /* _WIN32 */ /** Convert an error number to a human readable text message. diff --git a/unittest/gunit/innodb/printf-t.cc b/unittest/gunit/innodb/printf-t.cc index 9167792f0d0e..6ad6bb036f7a 100644 --- a/unittest/gunit/innodb/printf-t.cc +++ b/unittest/gunit/innodb/printf-t.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -48,11 +48,11 @@ TEST(hainnodb, UtMySnprintf) bufsz = sizeof buf; #define ARGS buf, bufsz, "foo %u " IB_ID_FMT ".", 1, (trx_id_t) -1 - ut_snprintf(ARGS); + snprintf(ARGS); test_snprintf("foo 1 18446744073709551615.", ARGS); bufsz = 25; - ut_snprintf(ARGS); EXPECT_STREQ(buf, "foo 1 184467440737095516"); + snprintf(ARGS); EXPECT_STREQ(buf, "foo 1 184467440737095516"); my_snprintf(ARGS); EXPECT_STREQ(buf, "foo 1 ."); bufsz = sizeof buf; #undef ARGS @@ -65,21 +65,21 @@ TEST(hainnodb, UtMySnprintf) a, b, c, b a = 0, b = 1, c = 2; - ut_snprintf(ARGS); + snprintf(ARGS); test_snprintf( "0/1/2/0000000000000001*", ARGS); a = -1, b = -2, c = -3; - ut_snprintf(ARGS); + snprintf(ARGS); test_snprintf( "4294967295/18446744073709551614/-3/fffffffffffffffe*", ARGS); a = 1234567890, b = 12345678901234567890ULL, c = static_cast(b); - ut_snprintf(ARGS); + snprintf(ARGS); test_snprintf( "1234567890/12345678901234567890/-6101065172474983726/" "ab54a98ceb1f0ad2*", ARGS); a = -1234567890, c = -8765432109876543210LL, b = ib_uint64_t (c); - ut_snprintf(ARGS); + snprintf(ARGS); test_snprintf( "3060399406/9681311963833008406/-8765432109876543210/" "865aedeff4018116*", ARGS);