From: Michael Friedrich Date: Tue, 1 Oct 2013 10:45:09 +0000 (+0200) Subject: IdoMysqlConnection: Store last notifications insert id. X-Git-Tag: v0.0.3~314 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5d15e3b6448e88ec969d99d634dfc5134c090e63;p=icinga2 IdoMysqlConnection: Store last notifications insert id. refs #4768 --- diff --git a/components/db_ido_mysql/idomysqlconnection.cpp b/components/db_ido_mysql/idomysqlconnection.cpp index bfc7a1230..2fa8e9c31 100644 --- a/components/db_ido_mysql/idomysqlconnection.cpp +++ b/components/db_ido_mysql/idomysqlconnection.cpp @@ -339,6 +339,10 @@ bool IdoMysqlConnection::FieldToEscapedString(const String& key, const Value& va *result = static_cast(m_InstanceID); return true; } + if (key == "notification_id") { + *result = static_cast(m_LastNotificationID); + return true; + } Value rawvalue = DbValue::ExtractValue(value); @@ -503,6 +507,10 @@ void IdoMysqlConnection::ExecuteQuery(const DbQuery& query) if (type == DbQueryInsert && query.ConfigUpdate) SetInsertID(query.Object, GetLastInsertID()); } + if (type == DbQueryInsert && query.Table == "notifications") { // FIXME remove hardcoded table name + m_LastNotificationID = GetLastInsertID(); + Log(LogWarning, "db_ido", "saving contactnotification notification_id=" + Convert::ToString(static_cast(m_LastNotificationID))); + } } void IdoMysqlConnection::CleanUpExecuteQuery(const String& table, const String& time_key, double time_value) diff --git a/components/db_ido_mysql/idomysqlconnection.h b/components/db_ido_mysql/idomysqlconnection.h index 7c94ae260..2eca680c6 100644 --- a/components/db_ido_mysql/idomysqlconnection.h +++ b/components/db_ido_mysql/idomysqlconnection.h @@ -63,6 +63,7 @@ private: String m_InstanceDescription; DbReference m_InstanceID; + DbReference m_LastNotificationID; boost::mutex m_ConnectionMutex; bool m_Connected;