diff options
Diffstat (limited to 'sql/event_db_repository.cc')
-rw-r--r-- | sql/event_db_repository.cc | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/sql/event_db_repository.cc b/sql/event_db_repository.cc index 703c4160216..a16a04739e2 100644 --- a/sql/event_db_repository.cc +++ b/sql/event_db_repository.cc @@ -123,6 +123,26 @@ const TABLE_FIELD_W_TYPE event_table_fields[ET_FIELD_COUNT] = { C_STRING_WITH_LEN("time_zone") }, { C_STRING_WITH_LEN("char(64)") }, { C_STRING_WITH_LEN("latin1") } + }, + { + { C_STRING_WITH_LEN("character_set_client") }, + { C_STRING_WITH_LEN("char(32)") }, + { C_STRING_WITH_LEN("utf8") } + }, + { + { C_STRING_WITH_LEN("collation_connection") }, + { C_STRING_WITH_LEN("char(32)") }, + { C_STRING_WITH_LEN("utf8") } + }, + { + { C_STRING_WITH_LEN("db_collation") }, + { C_STRING_WITH_LEN("char(32)") }, + { C_STRING_WITH_LEN("utf8") } + }, + { + { C_STRING_WITH_LEN("body_utf8") }, + { C_STRING_WITH_LEN("longblob") }, + { NULL, 0 } } }; @@ -135,6 +155,7 @@ const TABLE_FIELD_W_TYPE event_table_fields[ET_FIELD_COUNT] = @param thd THD @param table The row to fill out @param et Event's data + @param sp Event stored routine @param is_update CREATE EVENT or ALTER EVENT @retval FALSE success @@ -281,6 +302,33 @@ mysql_event_fill_row(THD *thd, goto err_truncate; } + fields[ET_FIELD_CHARACTER_SET_CLIENT]->set_notnull(); + fields[ET_FIELD_CHARACTER_SET_CLIENT]->store( + thd->variables.character_set_client->csname, + strlen(thd->variables.character_set_client->csname), + system_charset_info); + + fields[ET_FIELD_COLLATION_CONNECTION]->set_notnull(); + fields[ET_FIELD_COLLATION_CONNECTION]->store( + thd->variables.collation_connection->name, + strlen(thd->variables.collation_connection->name), + system_charset_info); + + { + CHARSET_INFO *db_cl= get_default_db_collation(thd, et->dbname.str); + + fields[ET_FIELD_DB_COLLATION]->set_notnull(); + fields[ET_FIELD_DB_COLLATION]->store( + db_cl->name, strlen(db_cl->name), system_charset_info); + } + + if (et->body_changed) + { + fields[ET_FIELD_BODY_UTF8]->set_notnull(); + fields[ET_FIELD_BODY_UTF8]->store( + sp->m_body_utf8.str, sp->m_body_utf8.length, system_charset_info); + } + DBUG_RETURN(FALSE); err_truncate: |