Fix insert name query not to replace 41/77741/1
authorKyungwook Tak <k.tak@samsung.com>
Fri, 1 Jul 2016 01:48:31 +0000 (10:48 +0900)
committerKyungwook Tak <k.tak@samsung.com>
Fri, 1 Jul 2016 01:48:31 +0000 (10:48 +0900)
Change-Id: I546649837c647cda53ddab97904be5ebf8c43ae9
Signed-off-by: Kyungwook Tak <k.tak@samsung.com>
src/framework/db/manager.cpp
src/framework/db/query.h

index f2b81ba..7e036ef 100644 (file)
@@ -489,6 +489,7 @@ void Manager::insertName(const std::string &name)
        Statement stmt(this->m_conn, Query::INS_NAME);
 
        stmt.bind(name);
+       stmt.bind(name);
        stmt.exec();
 }
 
index 049434d..38bb4a9 100644 (file)
@@ -87,7 +87,8 @@ const std::string SEL_WORST_BY_PKGPATH =
        " where name = ? and detected_time >= ?";
 
 const std::string INS_NAME =
-       "insert or replace into NAMES(name) values(?)";
+       "insert into NAMES(name) select ? where not exists"
+       " (select 1 from NAMES where name = ?)";
 
 const std::string INS_DETECTED_CLOUD =
        "insert or replace into DETECTED_MALWARE_CLOUD(idx, pkg_id, data_version,"