mirror of
https://github.com/MariaDB/server.git
synced 2025-04-18 21:44:20 +03:00
Tag the sql/log.h
family with ATTRIBUTE_FORMAT
Let GCC `-Wformat` check formats sent to these users of `my_vsnprintf_ex` users (heh)
This commit is contained in:
parent
21dfef474c
commit
2392bd02d8
25
sql/log.h
25
sql/log.h
@ -1213,6 +1213,7 @@ public:
|
||||
const char *user_host, size_t user_host_len, ulonglong query_utime,
|
||||
ulonglong lock_utime, bool is_command,
|
||||
const char *sql_text, size_t sql_text_len)= 0;
|
||||
ATTRIBUTE_FORMAT(printf, 3, 0)
|
||||
virtual bool log_error(enum loglevel level, const char *format,
|
||||
va_list args)= 0;
|
||||
virtual bool log_general(THD *thd, my_hrtime_t event_time, const char *user_host, size_t user_host_len, my_thread_id thread_id,
|
||||
@ -1240,6 +1241,7 @@ public:
|
||||
const char *user_host, size_t user_host_len, ulonglong query_utime,
|
||||
ulonglong lock_utime, bool is_command,
|
||||
const char *sql_text, size_t sql_text_len) override;
|
||||
ATTRIBUTE_FORMAT(printf, 3, 0)
|
||||
bool log_error(enum loglevel level, const char *format,
|
||||
va_list args) override;
|
||||
bool log_general(THD *thd, my_hrtime_t event_time, const char *user_host, size_t user_host_len, my_thread_id thread_id,
|
||||
@ -1270,6 +1272,7 @@ public:
|
||||
const char *user_host, size_t user_host_len, ulonglong query_utime,
|
||||
ulonglong lock_utime, bool is_command,
|
||||
const char *sql_text, size_t sql_text_len) override;
|
||||
ATTRIBUTE_FORMAT(printf, 3, 0)
|
||||
bool log_error(enum loglevel level, const char *format,
|
||||
va_list args) override;
|
||||
bool log_general(THD *thd, my_hrtime_t event_time, const char *user_host, size_t user_host_len, my_thread_id thread_id,
|
||||
@ -1326,10 +1329,12 @@ public:
|
||||
void cleanup_base();
|
||||
/* Free memory. Nothing could be logged after this function is called */
|
||||
void cleanup_end();
|
||||
ATTRIBUTE_FORMAT(printf, 3, 0) // 1st arg is the implicit `this`
|
||||
bool error_log_print(enum loglevel level, const char *format,
|
||||
va_list args);
|
||||
bool slow_log_print(THD *thd, const char *query, size_t query_length,
|
||||
ulonglong current_utime);
|
||||
ATTRIBUTE_FORMAT(printf, 4, 0)
|
||||
bool general_log_print(THD *thd,enum enum_server_command command,
|
||||
const char *format, va_list args);
|
||||
bool general_log_write(THD *thd, enum enum_server_command command,
|
||||
@ -1367,22 +1372,26 @@ enum enum_binlog_format {
|
||||
int query_error_code(THD *thd, bool not_killed);
|
||||
uint purge_log_get_error_code(int res);
|
||||
|
||||
int vprint_msg_to_log(enum loglevel level, const char *format, va_list args);
|
||||
void sql_print_error(const char *format, ...);
|
||||
void sql_print_warning(const char *format, ...);
|
||||
void sql_print_information(const char *format, ...);
|
||||
void sql_print_information_v(const char *format, va_list ap);
|
||||
typedef void (*sql_print_message_func)(const char *format, ...);
|
||||
int vprint_msg_to_log(enum loglevel level, const char *format, va_list args)
|
||||
ATTRIBUTE_FORMAT(printf, 2, 0);
|
||||
void sql_print_error(const char *format, ...) ATTRIBUTE_FORMAT(printf, 1, 2);
|
||||
void sql_print_warning(const char *format, ...) ATTRIBUTE_FORMAT(printf, 1, 2);
|
||||
void sql_print_information(const char *format, ...)
|
||||
ATTRIBUTE_FORMAT(printf, 1, 2);
|
||||
void sql_print_information_v(const char *format, va_list ap)
|
||||
ATTRIBUTE_FORMAT(printf, 1, 0);
|
||||
typedef void (*sql_print_message_func)(const char *format, ...)
|
||||
ATTRIBUTE_FORMAT_FPTR(printf, 1, 2);
|
||||
extern sql_print_message_func sql_print_message_handlers[];
|
||||
|
||||
int error_log_print(enum loglevel level, const char *format,
|
||||
va_list args);
|
||||
va_list args) ATTRIBUTE_FORMAT(printf, 2, 0);
|
||||
|
||||
bool slow_log_print(THD *thd, const char *query, uint query_length,
|
||||
ulonglong current_utime);
|
||||
|
||||
bool general_log_print(THD *thd, enum enum_server_command command,
|
||||
const char *format,...);
|
||||
const char *format,...) ATTRIBUTE_FORMAT(printf, 3, 4);
|
||||
|
||||
bool general_log_write(THD *thd, enum enum_server_command command,
|
||||
const char *query, size_t query_length);
|
||||
|
@ -9252,7 +9252,7 @@ static int test_if_case_insensitive(const char *dir_name)
|
||||
buff, 0666, O_RDWR, MYF(0))) < 0)
|
||||
{
|
||||
if (!opt_abort)
|
||||
sql_print_warning("Can't create test file '%s' (Errcode: %M)", buff, my_errno);
|
||||
sql_print_warning("Can't create test file '%s' (Errcode: %iE)", buff, my_errno);
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
mysql_file_close(file, MYF(0));
|
||||
|
@ -1522,7 +1522,7 @@ bool Master_info_index::remove_master_info(Master_info *mi, bool clear_log_files
|
||||
my_close(index_file_nr,MYF(0));
|
||||
|
||||
sql_print_error("Create of Master Info Index file '%s' failed with "
|
||||
"error: %M",
|
||||
"error: %iE",
|
||||
index_file_name, error);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
|
@ -247,7 +247,7 @@ a file name for --relay-log-index option", opt_relaylog_index_name);
|
||||
{
|
||||
mysql_mutex_unlock(log_lock);
|
||||
mysql_mutex_unlock(&data_lock);
|
||||
sql_print_error("Failed when trying to open logs for '%s' in Relay_log_info::init(). Error: %M", ln, my_errno);
|
||||
sql_print_error("Failed when trying to open logs for '%s' in Relay_log_info::init(). Error: %iE", ln, my_errno);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
mysql_mutex_unlock(log_lock);
|
||||
|
@ -245,7 +245,7 @@ void Ack_receiver::run()
|
||||
|
||||
if (listener.got_error())
|
||||
{
|
||||
sql_print_error("Got error %M starting ack receiver thread",
|
||||
sql_print_error("Got error %iE starting ack receiver thread",
|
||||
listener.got_error());
|
||||
return;
|
||||
}
|
||||
|
@ -148,7 +148,7 @@ void start_handle_manager()
|
||||
if ((err= mysql_thread_create(key_thread_handle_manager, &hThread,
|
||||
&connection_attrib, handle_manager, 0)))
|
||||
{
|
||||
sql_print_warning("Can't create handle_manager thread (errno: %M)", err);
|
||||
sql_print_warning("Can't create handle_manager thread (errno: %iE)", err);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
@ -4108,7 +4108,7 @@ bool verify_data_with_partition(TABLE *table, TABLE *part_table,
|
||||
|
||||
if (table->in_use->lex->without_validation)
|
||||
{
|
||||
sql_print_warning("Table %`s.%`s was altered WITHOUT VALIDATION: "
|
||||
sql_print_warning("Table %sQ.%sQ was altered WITHOUT VALIDATION: "
|
||||
"the table might be corrupted",
|
||||
part_table->s->db.str, part_table->s->table_name.str);
|
||||
DBUG_RETURN(false);
|
||||
|
@ -932,7 +932,7 @@ int mariadb_fix_view(THD *thd, TABLE_LIST *view, bool wrong_checksum,
|
||||
view->db.str, view->table_name.str);
|
||||
DBUG_RETURN(HA_ADMIN_INTERNAL_ERROR);
|
||||
}
|
||||
sql_print_information("View %`s.%`s: the version is set to %llu%s%s",
|
||||
sql_print_information("View %sQ.%sQ: the version is set to %llu%s%s",
|
||||
view->db.str, view->table_name.str,
|
||||
view->mariadb_version,
|
||||
(wrong_checksum ? ", checksum corrected" : ""),
|
||||
|
@ -10747,12 +10747,12 @@ void TR_table::warn_schema_incorrect(const char *reason)
|
||||
{
|
||||
if (MYSQL_VERSION_ID == table->s->mysql_version)
|
||||
{
|
||||
sql_print_error("%`s.%`s schema is incorrect: %s.",
|
||||
sql_print_error("%sQ.%sQ schema is incorrect: %s.",
|
||||
db.str, table_name.str, reason);
|
||||
}
|
||||
else
|
||||
{
|
||||
sql_print_error("%`s.%`s schema is incorrect: %s. Created with MariaDB %d, "
|
||||
sql_print_error("%sQ.%sQ schema is incorrect: %s. Created with MariaDB %d, "
|
||||
"now running %d.",
|
||||
db.str, table_name.str, reason, MYSQL_VERSION_ID,
|
||||
static_cast<int>(table->s->mysql_version));
|
||||
@ -10763,7 +10763,7 @@ bool TR_table::check(bool error)
|
||||
{
|
||||
if (error)
|
||||
{
|
||||
sql_print_warning("%`s.%`s does not exist (open failed).", db.str,
|
||||
sql_print_warning("%sQ.%sQ does not exist (open failed).", db.str,
|
||||
table_name.str);
|
||||
return true;
|
||||
}
|
||||
|
@ -577,6 +577,7 @@ class Table_check_intact
|
||||
{
|
||||
protected:
|
||||
bool has_keys;
|
||||
ATTRIBUTE_FORMAT(printf, 3, 4) // 1st arg is the implicit `this`
|
||||
virtual void report_error(uint code, const char *fmt, ...)= 0;
|
||||
|
||||
public:
|
||||
@ -594,6 +595,7 @@ public:
|
||||
class Table_check_intact_log_error : public Table_check_intact
|
||||
{
|
||||
protected:
|
||||
ATTRIBUTE_FORMAT(printf, 3, 4)
|
||||
void report_error(uint, const char *fmt, ...) override;
|
||||
public:
|
||||
Table_check_intact_log_error() : Table_check_intact(true) {}
|
||||
|
@ -54,7 +54,7 @@ extern "C" {
|
||||
/* Skip writing to the error log to avoid mtr complaints */
|
||||
DBUG_EXECUTE_IF("simulate_out_of_memory", return;);
|
||||
|
||||
sql_print_error(ER_DEFAULT(ER_OUT_OF_RESOURCES));
|
||||
sql_print_error("%s", ER_DEFAULT(ER_OUT_OF_RESOURCES));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1932,7 +1932,7 @@ tz_load_from_open_tables(const String *tz_name, TABLE_LIST *tz_tables)
|
||||
Most probably user has mistyped time zone name, so no need to bark here
|
||||
unless we need it for debugging.
|
||||
*/
|
||||
sql_print_error("Can't find description of time zone '%.*b'",
|
||||
sql_print_error("Can't find description of time zone '%.*sB'",
|
||||
tz_name->length(), tz_name->ptr());
|
||||
#endif
|
||||
goto end;
|
||||
|
@ -1242,7 +1242,7 @@ uint64_t btr_read_autoinc_with_fallback(const dict_table_t *table,
|
||||
{
|
||||
sql_print_information("InnoDB: Resetting PAGE_ROOT_AUTO_INC from "
|
||||
UINT64PF " to " UINT64PF
|
||||
" on table %`.*s.%`s (created with version %lu)",
|
||||
" on table %.*sQ.%sQ (created with version %lu)",
|
||||
autoinc, max_autoinc,
|
||||
int(table->name.dblen()), table->name.m_name,
|
||||
table->name.basename(), mysql_version);
|
||||
|
@ -4626,7 +4626,7 @@ static void row_import_autoinc(dict_table_t *table, row_prebuilt_t *prebuilt,
|
||||
btr_write_autoinc(dict_table_get_first_index(table), autoinc - 1);
|
||||
autoinc_set:
|
||||
table->autoinc= autoinc;
|
||||
sql_print_information("InnoDB: %`.*s.%`s autoinc value set to " UINT64PF,
|
||||
sql_print_information("InnoDB: %.*sQ.%sQ autoinc value set to " UINT64PF,
|
||||
int(table->name.dblen()), table->name.m_name,
|
||||
table->name.basename(), autoinc);
|
||||
}
|
||||
|
@ -1208,7 +1208,7 @@ static dberr_t row_mysql_get_table_error(trx_t *trx, dict_table_t *table)
|
||||
}
|
||||
|
||||
const int dblen= int(table->name.dblen());
|
||||
sql_print_error("InnoDB .ibd file is missing for table %`.*s.%`s",
|
||||
sql_print_error("InnoDB .ibd file is missing for table %.*sQ.%sQ",
|
||||
dblen, table->name.m_name, table->name.m_name + dblen + 1);
|
||||
return DB_TABLESPACE_NOT_FOUND;
|
||||
}
|
||||
|
@ -1064,7 +1064,8 @@ const int MYROCKS_MARIADB_PLUGIN_MATURITY_LEVEL= MariaDB_PLUGIN_MATURITY_STABLE;
|
||||
|
||||
extern uint32_t rocksdb_ignore_datadic_errors;
|
||||
|
||||
void sql_print_verbose_info(const char *format, ...);
|
||||
void sql_print_verbose_info(const char *format, ...)
|
||||
ATTRIBUTE_FORMAT(printf, 1, 2);
|
||||
|
||||
} // namespace myrocks
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user