Commit ced66387 authored by Sergei Golubchik's avatar Sergei Golubchik

mysys: ME_ERROR_LOG_ONLY flag

parent c9061d11
...@@ -106,6 +106,7 @@ typedef struct my_aio_result { ...@@ -106,6 +106,7 @@ typedef struct my_aio_result {
#define ME_BELL 4U /* Ring bell then printing message */ #define ME_BELL 4U /* Ring bell then printing message */
#define ME_ERROR_LOG 64 /**< write the error message to error log */ #define ME_ERROR_LOG 64 /**< write the error message to error log */
#define ME_ERROR_LOG_ONLY 128 /**< write the error message to error log only */
#define ME_NOTE 1024 /**< not error but just info */ #define ME_NOTE 1024 /**< not error but just info */
#define ME_WARNING 2048 /**< not error but just warning */ #define ME_WARNING 2048 /**< not error but just warning */
#define ME_FATAL 4096 /**< fatal statement error */ #define ME_FATAL 4096 /**< fatal statement error */
......
...@@ -32,10 +32,11 @@ extern "C" { ...@@ -32,10 +32,11 @@ extern "C" {
#include <stdlib.h> #include <stdlib.h>
#endif #endif
#define ME_ERROR_LOG 64 /* Write the message to the error log */ #define ME_ERROR_LOG 64 /* Write the message to the error log */
#define ME_NOTE 1024 /* Not an error, just a note */ #define ME_ERROR_LOG_ONLY 128 /* Write the error message to error log only */
#define ME_WARNING 2048 /* Not an error, just a warning */ #define ME_NOTE 1024 /* Not an error, just a note */
#define ME_FATAL 4096 /* Fatal statement error */ #define ME_WARNING 2048 /* Not an error, just a warning */
#define ME_FATAL 4096 /* Fatal statement error */
extern struct my_print_error_service_st { extern struct my_print_error_service_st {
void (*my_error_func)(unsigned int nr, unsigned long MyFlags, ...); void (*my_error_func)(unsigned int nr, unsigned long MyFlags, ...);
......
...@@ -229,7 +229,7 @@ static int aws_init() ...@@ -229,7 +229,7 @@ static int aws_init()
client = new KMSClient(clientConfiguration); client = new KMSClient(clientConfiguration);
if (!client) if (!client)
{ {
my_printf_error(ER_UNKNOWN_ERROR, "Can not initialize KMS client", ME_ERROR_LOG | ME_WARNING); my_printf_error(ER_UNKNOWN_ERROR, "Can't initialize KMS client", ME_ERROR_LOG_ONLY | ME_WARNING);
return -1; return -1;
} }
return 0; return 0;
...@@ -331,12 +331,12 @@ static int load_key(KEY_INFO *info) ...@@ -331,12 +331,12 @@ static int load_key(KEY_INFO *info)
if (!ret) if (!ret)
{ {
my_printf_error(ER_UNKNOWN_ERROR, "AWS KMS plugin: loaded key %u, version %u, key length %u bit", ME_ERROR_LOG | ME_NOTE, my_printf_error(ER_UNKNOWN_ERROR, "AWS KMS plugin: loaded key %u, version %u, key length %u bit", ME_ERROR_LOG_ONLY | ME_NOTE,
info->key_id, info->key_version,(uint)info->length*8); info->key_id, info->key_version,(uint)info->length*8);
} }
else else
{ {
my_printf_error(ER_UNKNOWN_ERROR, "AWS KMS plugin: key %u, version %u could not be decrypted", ME_ERROR_LOG | ME_WARNING, my_printf_error(ER_UNKNOWN_ERROR, "AWS KMS plugin: key %u, version %u could not be decrypted", ME_ERROR_LOG_ONLY | ME_WARNING,
info->key_id, info->key_version); info->key_id, info->key_version);
} }
return ret; return ret;
...@@ -435,13 +435,13 @@ static int read_and_decrypt_key(const char *path, KEY_INFO *info) ...@@ -435,13 +435,13 @@ static int read_and_decrypt_key(const char *path, KEY_INFO *info)
ifstream ifs(path, ios::binary | ios::ate); ifstream ifs(path, ios::binary | ios::ate);
if (!ifs.good()) if (!ifs.good())
{ {
my_printf_error(ER_UNKNOWN_ERROR, "can't open file %s", ME_ERROR_LOG, path); my_printf_error(ER_UNKNOWN_ERROR, "can't open file %s", ME_ERROR_LOG_ONLY, path);
return(-1); return(-1);
} }
size_t pos = (size_t)ifs.tellg(); size_t pos = (size_t)ifs.tellg();
if (!pos || pos == SIZE_T_MAX) if (!pos || pos == SIZE_T_MAX)
{ {
my_printf_error(ER_UNKNOWN_ERROR, "invalid key file %s", ME_ERROR_LOG, path); my_printf_error(ER_UNKNOWN_ERROR, "invalid key file %s", ME_ERROR_LOG_ONLY, path);
return(-1); return(-1);
} }
std::vector<char> contents(pos); std::vector<char> contents(pos);
...@@ -456,7 +456,7 @@ static int read_and_decrypt_key(const char *path, KEY_INFO *info) ...@@ -456,7 +456,7 @@ static int read_and_decrypt_key(const char *path, KEY_INFO *info)
if (decrypt(input, &plaintext, &errmsg)) if (decrypt(input, &plaintext, &errmsg))
{ {
my_printf_error(ER_UNKNOWN_ERROR, "AWS KMS plugin: Decrypt failed for %s : %s", ME_ERROR_LOG, path, my_printf_error(ER_UNKNOWN_ERROR, "AWS KMS plugin: Decrypt failed for %s : %s", ME_ERROR_LOG_ONLY, path,
errmsg.c_str()); errmsg.c_str());
return -1; return -1;
} }
...@@ -465,7 +465,7 @@ static int read_and_decrypt_key(const char *path, KEY_INFO *info) ...@@ -465,7 +465,7 @@ static int read_and_decrypt_key(const char *path, KEY_INFO *info)
if (len > sizeof(info->data)) if (len > sizeof(info->data))
{ {
my_printf_error(ER_UNKNOWN_ERROR, "AWS KMS plugin: encoding key too large for %s", ME_ERROR_LOG, path); my_printf_error(ER_UNKNOWN_ERROR, "AWS KMS plugin: encoding key too large for %s", ME_ERROR_LOG_ONLY, path);
return(ENCRYPTION_KEY_BUFFER_TOO_SMALL); return(ENCRYPTION_KEY_BUFFER_TOO_SMALL);
} }
memcpy(info->data, plaintext.GetUnderlyingData(), len); memcpy(info->data, plaintext.GetUnderlyingData(), len);
...@@ -491,7 +491,7 @@ int aws_generate_encrypted_key(Aws::Utils::ByteBuffer *result) ...@@ -491,7 +491,7 @@ int aws_generate_encrypted_key(Aws::Utils::ByteBuffer *result)
outcome= client->GenerateDataKeyWithoutPlaintext(request); outcome= client->GenerateDataKeyWithoutPlaintext(request);
if (!outcome.IsSuccess()) if (!outcome.IsSuccess())
{ {
my_printf_error(ER_UNKNOWN_ERROR, "AWS KMS plugin : GenerateDataKeyWithoutPlaintext failed : %s - %s", ME_ERROR_LOG, my_printf_error(ER_UNKNOWN_ERROR, "AWS KMS plugin : GenerateDataKeyWithoutPlaintext failed : %s - %s", ME_ERROR_LOG_ONLY,
outcome.GetError().GetExceptionName().c_str(), outcome.GetError().GetExceptionName().c_str(),
outcome.GetError().GetMessage().c_str()); outcome.GetError().GetMessage().c_str());
return(-1); return(-1);
...@@ -524,19 +524,19 @@ static int generate_and_save_datakey(uint keyid, uint version) ...@@ -524,19 +524,19 @@ static int generate_and_save_datakey(uint keyid, uint version)
int fd= open(filename, O_WRONLY |O_CREAT|O_BINARY, IF_WIN(_S_IREAD, S_IRUSR| S_IRGRP| S_IROTH)); int fd= open(filename, O_WRONLY |O_CREAT|O_BINARY, IF_WIN(_S_IREAD, S_IRUSR| S_IRGRP| S_IROTH));
if (fd < 0) if (fd < 0)
{ {
my_printf_error(ER_UNKNOWN_ERROR, "AWS KMS plugin: Can't create file %s", ME_ERROR_LOG, filename); my_printf_error(ER_UNKNOWN_ERROR, "AWS KMS plugin: Can't create file %s", ME_ERROR_LOG_ONLY, filename);
return(-1); return(-1);
} }
unsigned int len= (unsigned int)byteBuffer.GetLength(); unsigned int len= (unsigned int)byteBuffer.GetLength();
if (write(fd, byteBuffer.GetUnderlyingData(), len) != len) if (write(fd, byteBuffer.GetUnderlyingData(), len) != len)
{ {
my_printf_error(ER_UNKNOWN_ERROR, "AWS KMS plugin: can't write to %s", ME_ERROR_LOG, filename); my_printf_error(ER_UNKNOWN_ERROR, "AWS KMS plugin: can't write to %s", ME_ERROR_LOG_ONLY, filename);
close(fd); close(fd);
unlink(filename); unlink(filename);
return(-1); return(-1);
} }
close(fd); close(fd);
my_printf_error(ER_UNKNOWN_ERROR, "AWS KMS plugin: generated encrypted datakey for key id=%u, version=%u", ME_ERROR_LOG | ME_NOTE, my_printf_error(ER_UNKNOWN_ERROR, "AWS KMS plugin: generated encrypted datakey for key id=%u, version=%u", ME_ERROR_LOG_ONLY | ME_NOTE,
keyid, version); keyid, version);
return(0); return(0);
} }
......
...@@ -2181,16 +2181,16 @@ void MYSQL_BIN_LOG::set_write_error(THD *thd, bool is_transactional) ...@@ -2181,16 +2181,16 @@ void MYSQL_BIN_LOG::set_write_error(THD *thd, bool is_transactional)
{ {
if (is_transactional) if (is_transactional)
{ {
my_message(ER_TRANS_CACHE_FULL, ER_THD(thd, ER_TRANS_CACHE_FULL), MYF(MY_WME)); my_message(ER_TRANS_CACHE_FULL, ER_THD(thd, ER_TRANS_CACHE_FULL), MYF(0));
} }
else else
{ {
my_message(ER_STMT_CACHE_FULL, ER_THD(thd, ER_STMT_CACHE_FULL), MYF(MY_WME)); my_message(ER_STMT_CACHE_FULL, ER_THD(thd, ER_STMT_CACHE_FULL), MYF(0));
} }
} }
else else
{ {
my_error(ER_ERROR_ON_WRITE, MYF(MY_WME), name, errno); my_error(ER_ERROR_ON_WRITE, MYF(0), name, errno);
} }
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
......
...@@ -3660,7 +3660,7 @@ extern "C" void my_message_sql(uint error, const char *str, myf MyFlags); ...@@ -3660,7 +3660,7 @@ extern "C" void my_message_sql(uint error, const char *str, myf MyFlags);
void my_message_sql(uint error, const char *str, myf MyFlags) void my_message_sql(uint error, const char *str, myf MyFlags)
{ {
THD *thd= current_thd; THD *thd= MyFlags & ME_ERROR_LOG_ONLY ? NULL : current_thd;
Sql_condition::enum_warning_level level; Sql_condition::enum_warning_level level;
sql_print_message_func func; sql_print_message_func func;
DBUG_ENTER("my_message_sql"); DBUG_ENTER("my_message_sql");
...@@ -3669,6 +3669,8 @@ void my_message_sql(uint error, const char *str, myf MyFlags) ...@@ -3669,6 +3669,8 @@ void my_message_sql(uint error, const char *str, myf MyFlags)
DBUG_ASSERT(str != NULL); DBUG_ASSERT(str != NULL);
DBUG_ASSERT(error != 0); DBUG_ASSERT(error != 0);
DBUG_ASSERT((MyFlags & ~(ME_BELL | ME_ERROR_LOG | ME_ERROR_LOG_ONLY |
ME_NOTE | ME_WARNING | ME_FATAL)) == 0);
if (MyFlags & ME_NOTE) if (MyFlags & ME_NOTE)
{ {
......
...@@ -1468,7 +1468,7 @@ Sp_handler::sp_create_routine(THD *thd, const sp_head *sp) const ...@@ -1468,7 +1468,7 @@ Sp_handler::sp_create_routine(THD *thd, const sp_head *sp) const
log_query.ptr(), log_query.length(), log_query.ptr(), log_query.length(),
FALSE, FALSE, FALSE, 0)) FALSE, FALSE, FALSE, 0))
{ {
my_error(ER_ERROR_ON_WRITE, MYF(MY_WME), "binary log", -1); my_error(ER_ERROR_ON_WRITE, MYF(0), "binary log", -1);
goto done; goto done;
} }
thd->variables.sql_mode= 0; thd->variables.sql_mode= 0;
......
...@@ -427,7 +427,7 @@ static void _ma_check_print_msg(HA_CHECK *param, const char *msg_type, ...@@ -427,7 +427,7 @@ static void _ma_check_print_msg(HA_CHECK *param, const char *msg_type,
if (param->testflag & if (param->testflag &
(T_CREATE_MISSING_KEYS | T_SAFE_REPAIR | T_AUTO_REPAIR)) (T_CREATE_MISSING_KEYS | T_SAFE_REPAIR | T_AUTO_REPAIR))
{ {
my_message(ER_NOT_KEYFILE, msgbuf, MYF(MY_WME)); my_message(ER_NOT_KEYFILE, msgbuf, MYF(0));
if (thd->variables.log_warnings > 2) if (thd->variables.log_warnings > 2)
sql_print_error("%s.%s: %s", param->db_name, param->table_name, msgbuf); sql_print_error("%s.%s: %s", param->db_name, param->table_name, msgbuf);
return; return;
......
...@@ -158,7 +158,7 @@ static void mi_check_print_msg(HA_CHECK *param, const char* msg_type, ...@@ -158,7 +158,7 @@ static void mi_check_print_msg(HA_CHECK *param, const char* msg_type,
if (param->testflag & (T_CREATE_MISSING_KEYS | T_SAFE_REPAIR | if (param->testflag & (T_CREATE_MISSING_KEYS | T_SAFE_REPAIR |
T_AUTO_REPAIR)) T_AUTO_REPAIR))
{ {
my_message(ER_NOT_KEYFILE, msgbuf, MYF(MY_WME)); my_message(ER_NOT_KEYFILE, msgbuf, MYF(0));
if (thd->variables.log_warnings > 2 && ! thd->log_all_errors) if (thd->variables.log_warnings > 2 && ! thd->log_all_errors)
sql_print_error("%s.%s: %s", param->db_name, param->table_name, msgbuf); sql_print_error("%s.%s: %s", param->db_name, param->table_name, msgbuf);
return; return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment