mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Fix for bug#15228 "'invalid access to non-static data member'
warnings in sql_trigger.cc and sql_view.cc". According to the current version of C++ standard offsetof() macro can't be used for non-POD types. So warnings were emitted when we tried to use this macro for TABLE_LIST and Table_triggers_list classes. Note that despite of these warnings it was probably safe thing to do. This fix tries to circumvent this limitation by implementing custom version of offsetof() macro to be used with these classes. This hack should go away once we will refactor File_parser class. Alternative approaches such as disabling this warning for sql_trigger.cc/sql_view.cc or for the whole server were considered less explicit. Also I was unable to find a way to disable particular warning for particular _part_ of file in GCC.
This commit is contained in:
@@ -36,17 +36,17 @@ static File_option triggers_file_parameters[]=
|
||||
{
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("triggers") },
|
||||
offsetof(class Table_triggers_list, definitions_list),
|
||||
my_offsetof(class Table_triggers_list, definitions_list),
|
||||
FILE_OPTIONS_STRLIST
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("sql_modes") },
|
||||
offsetof(class Table_triggers_list, definition_modes_list),
|
||||
my_offsetof(class Table_triggers_list, definition_modes_list),
|
||||
FILE_OPTIONS_ULLLIST
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("definers") },
|
||||
offsetof(class Table_triggers_list, definers_list),
|
||||
my_offsetof(class Table_triggers_list, definers_list),
|
||||
FILE_OPTIONS_STRLIST
|
||||
},
|
||||
{ { 0, 0 }, 0, FILE_OPTIONS_STRING }
|
||||
@@ -55,7 +55,7 @@ static File_option triggers_file_parameters[]=
|
||||
File_option sql_modes_parameters=
|
||||
{
|
||||
{(char*) STRING_WITH_LEN("sql_modes") },
|
||||
offsetof(class Table_triggers_list, definition_modes_list),
|
||||
my_offsetof(class Table_triggers_list, definition_modes_list),
|
||||
FILE_OPTIONS_ULLLIST
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user