summaryrefslogtreecommitdiffstats
path: root/lib/Plugins/SQLite3.cpp
diff options
context:
space:
mode:
authorKarel Klic <kklic@redhat.com>2009-11-09 13:55:20 +0100
committerKarel Klic <kklic@redhat.com>2009-11-09 13:55:20 +0100
commit19f406b4930c931a932dc6930762e8e12e29ce8b (patch)
treeb08468bf9a010cbce0ecd000a0279222f0d4b4e7 /lib/Plugins/SQLite3.cpp
parent801ab58f32f2cb7dca3352b721a07c83705a0287 (diff)
parent8fa9a6ecd247454ab758efecf818d8067455c778 (diff)
downloadabrt-19f406b4930c931a932dc6930762e8e12e29ce8b.tar.gz
abrt-19f406b4930c931a932dc6930762e8e12e29ce8b.tar.xz
abrt-19f406b4930c931a932dc6930762e8e12e29ce8b.zip
merge
Diffstat (limited to 'lib/Plugins/SQLite3.cpp')
-rw-r--r--lib/Plugins/SQLite3.cpp36
1 files changed, 21 insertions, 15 deletions
diff --git a/lib/Plugins/SQLite3.cpp b/lib/Plugins/SQLite3.cpp
index a2dc426..ab39d04 100644
--- a/lib/Plugins/SQLite3.cpp
+++ b/lib/Plugins/SQLite3.cpp
@@ -24,7 +24,8 @@
#include <stdlib.h>
#include "SQLite3.h"
#include "ABRTException.h"
-
+#include <limits.h>
+#include <abrtlib.h>
#define ABRT_TABLE_VERSION 2
#define ABRT_TABLE_VERSION_STR "2"
@@ -96,8 +97,10 @@ bool CSQLite3::Exist(const std::string& pUUID, const std::string& pUID)
{
vector_database_rows_t table;
GetTable("SELECT "DATABASE_COLUMN_REPORTED" FROM "ABRT_TABLE" WHERE "
- DATABASE_COLUMN_UUID" = '"+pUUID+"' AND "
- DATABASE_COLUMN_UID" = '"+pUID+"';", table);
+ DATABASE_COLUMN_UUID" = '"+pUUID+"' "
+ "AND ("DATABASE_COLUMN_UID" = '"+pUID+"' "
+ "OR "DATABASE_COLUMN_UID" = '-1');"
+ , table);
if (table.empty())
{
return false;
@@ -311,7 +314,8 @@ void CSQLite3::Delete(const std::string& pUUID, const std::string& pUID)
{
Exec("DELETE FROM "ABRT_TABLE" "
"WHERE "DATABASE_COLUMN_UUID" = '"+pUUID+"' "
- "AND "DATABASE_COLUMN_UID" = '"+pUID+"';");
+ "AND "DATABASE_COLUMN_UID" = '"+pUID+"' "
+ "OR "DATABASE_COLUMN_UID" = '-1';");
}
else
{
@@ -321,7 +325,7 @@ void CSQLite3::Delete(const std::string& pUUID, const std::string& pUID)
void CSQLite3::SetReported(const std::string& pUUID, const std::string& pUID, const std::string& pMessage)
{
- if(pUID == "0")
+ if (pUID == "0")
{
Exec("UPDATE "ABRT_TABLE" "
"SET "DATABASE_COLUMN_REPORTED" = 1 "
@@ -335,15 +339,17 @@ void CSQLite3::SetReported(const std::string& pUUID, const std::string& pUID, co
Exec("UPDATE "ABRT_TABLE" "
"SET "DATABASE_COLUMN_REPORTED" = 1 "
"WHERE "DATABASE_COLUMN_UUID" = '"+pUUID+"' "
- "AND "DATABASE_COLUMN_UID" = '"+pUID+"';");
+ "AND ("DATABASE_COLUMN_UID" = '"+pUID+"' "
+ "OR "DATABASE_COLUMN_UID" = '-1');");
Exec("UPDATE "ABRT_TABLE" "
"SET "DATABASE_COLUMN_MESSAGE" = '" + pMessage + "' "
"WHERE "DATABASE_COLUMN_UUID" = '"+pUUID+"' "
- "AND "DATABASE_COLUMN_UID" = '"+pUID+"';");
+ "AND ("DATABASE_COLUMN_UID" = '"+pUID+"' "
+ "OR "DATABASE_COLUMN_UID" = '-1');");
}
else
{
- throw CABRTException(EXCEP_PLUGIN, "CSQLite3::SetReported(): UUID is not found in DB.");
+ throw CABRTException(EXCEP_PLUGIN, "CSQLite3::SetReported(): UUID"+pUID+" is not found in DB.");
}
}
@@ -357,7 +363,8 @@ vector_database_rows_t CSQLite3::GetUIDData(const std::string& pUID)
else
{
GetTable("SELECT * FROM "ABRT_TABLE
- " WHERE "DATABASE_COLUMN_UID" = '"+pUID+"';",
+ " WHERE "DATABASE_COLUMN_UID" = '"+pUID+"' "
+ "OR "DATABASE_COLUMN_UID" = '-1';",
table);
}
return table;
@@ -377,7 +384,8 @@ database_row_t CSQLite3::GetUUIDData(const std::string& pUUID, const std::string
{
GetTable("SELECT * FROM "ABRT_TABLE" "
"WHERE "DATABASE_COLUMN_UUID" = '"+pUUID+"' "
- "AND "DATABASE_COLUMN_UID" = '"+pUID+"';",
+ "AND ("DATABASE_COLUMN_UID" = '"+pUID+"' "
+ "OR "DATABASE_COLUMN_UID" = '-1');",
table);
}
@@ -396,13 +404,11 @@ void CSQLite3::SetSettings(const map_plugin_settings_t& pSettings)
}
}
-map_plugin_settings_t CSQLite3::GetSettings()
+const map_plugin_settings_t& CSQLite3::GetSettings()
{
- map_plugin_settings_t ret;
-
- ret["DBPath"] = m_sDBPath;
+ m_pSettings["DBPath"] = m_sDBPath;
- return ret;
+ return m_pSettings;
}
PLUGIN_INFO(DATABASE,