sqlite3* dbOpen(std::string path);
void dbClose(sqlite3 *tac_db);
void dbRollback(sqlite3 *tac_db);
-bool dbUpdate(sqlite3 *tac_db, std::string path, std::string query);
-bool dbInsert(sqlite3 *tac_db, std::string path, std::string query);
-std::vector<std::string> dbSelect(sqlite3 *tac_db, std::string path, std::string query);
-bool dbDelete(sqlite3 *tac_db, std::string path, std::string query);
+bool dbUpdate(sqlite3 *tac_db, std::string query);
+bool dbInsert(sqlite3 *tac_db, std::string query);
+bool dbDelete(sqlite3 *tac_db, std::string query);
+std::vector<std::string> dbSelect(sqlite3 *tac_db, std::string query);
#endif /* __DB_MANAGER_H__ */
bf::create_symlink(concatPath(tlcDir, fileSha), library);
char *sql = sqlite3_mprintf("INSERT INTO TLC (PKGID, LIBRARY) VALUES (%Q, %Q);", pkgId, fileSha.c_str());
- if (!dbInsert(tlc_db, TLC_APP_LIST_DB, sql)) {
+ if (!dbInsert(tlc_db, sql)) {
_ERR("Sqlite insert error");
sqlite3_free(sql);
copyFile(concatPath(tlcDir, fileSha), library);
return 0;
}
}
+ sqlite3_exec(tac_db, "BEGIN;", NULL, NULL, NULL);
if (tacDB.empty()) {
_INFO("Not exist data for TAC in %s", pkgId);
char *sql = sqlite3_mprintf(
"INSERT INTO TAC (PKGID, NUGET, NAME, VERSION) " \
"VALUES (%Q, %Q, %Q, %Q);", pkgId, np.c_str(), tac_name.c_str(), tac_version.c_str());
- dbInsert(tac_db, TAC_APP_LIST_DB, sql);
+ dbInsert(tac_db, sql);
sqlite3_free(sql);
} else {
_INFO("Exists tac_version_dir [%s]", tac_version_dir.c_str());
char *sql = sqlite3_mprintf(
"INSERT INTO TAC (PKGID, NUGET, NAME, VERSION) " \
"VALUES (%Q, %Q, %Q, %Q);", pkgId, np.c_str(), tac_name.c_str(), tac_version.c_str());
- dbInsert(tac_db, TAC_APP_LIST_DB, sql);
+ dbInsert(tac_db, sql);
sqlite3_free(sql);
} else {
_INFO("Different nuget : %s", np.c_str());
return 0;
}
}
+ sqlite3_exec(tlc_db, "BEGIN;", NULL, NULL, NULL);
copyNCreateTlcSymlink(pkgId, getLibrariesInfo(rootPath), tlcDir);
return 0;
}
}
+ sqlite3_exec(tac_db, "BEGIN;", NULL, NULL, NULL);
char *sql = sqlite3_mprintf("SELECT * FROM TAC WHERE PKGID = %Q;", pkgId);
- updateTac = dbSelect(tac_db, TAC_APP_LIST_DB, sql);
+ updateTac = dbSelect(tac_db, sql);
sqlite3_free(sql);
bool skipTLC = false;
if (tacDB.empty()) {
sql = sqlite3_mprintf("DELETE FROM TAC WHERE PKGID = %Q;", pkgId);
- dbDelete(tac_db, TAC_APP_LIST_DB, sql);
+ dbDelete(tac_db, sql);
sqlite3_free(sql);
if (updateTacDB(tac_db) < 0) {
return -1;
sql = sqlite3_mprintf(
"UPDATE TAC SET NAME = %Q, VERSION = %Q, NUGET = %Q WHERE PKGID = %Q AND NAME = %Q;",
tac_name.c_str(), tac_version.c_str(), np.c_str(), pkgId, tac_name.c_str());
- dbUpdate(tac_db, TAC_APP_LIST_DB, sql);
+ dbUpdate(tac_db, sql);
sqlite3_free(sql);
} else if (count == 0) {
sql = sqlite3_mprintf(
"INSERT INTO TAC (PKGID, NUGET, NAME, VERSION) " \
"VALUES (%Q, %Q, %Q, %Q);", pkgId, np.c_str(), tac_name.c_str(), tac_version.c_str());
- dbInsert(tac_db, TAC_APP_LIST_DB, sql);
+ dbInsert(tac_db, sql);
sqlite3_free(sql);
}
} else {
sql = sqlite3_mprintf(
"UPDATE TAC SET NAME = %Q, VERSION = %Q, NUGET = %Q WHERE PKGID = %Q AND NAME = %Q;",
tac_name.c_str(), tac_version.c_str(), np.c_str(), pkgId, tac_name.c_str());
- dbUpdate(tac_db, TAC_APP_LIST_DB, sql);
+ dbUpdate(tac_db, sql);
sqlite3_free(sql);
} else if (count == 0) {
sql = sqlite3_mprintf(
"INSERT INTO TAC (PKGID, NUGET, NAME, VERSION) " \
"VALUES (%Q, %Q, %Q, %Q);", pkgId, np.c_str(), tac_name.c_str(), tac_version.c_str());
- dbInsert(tac_db, TAC_APP_LIST_DB, sql);
+ dbInsert(tac_db, sql);
sqlite3_free(sql);
}
} else {
}
if (!isExits) {
char *sql = sqlite3_mprintf("DELETE FROM TAC WHERE PKGID = %Q AND NUGET = %Q;", pkgId, unp.c_str());
- dbDelete(tac_db, TAC_APP_LIST_DB, sql);
+ dbDelete(tac_db, sql);
sqlite3_free(sql);
}
}
return 0;
}
}
+ sqlite3_exec(tlc_db, "BEGIN;", NULL, NULL, NULL);
sql = sqlite3_mprintf("SELECT * FROM TLC WHERE PKGID = %Q;", pkgId);
- std::vector<std::string> updateTlc = dbSelect(tlc_db, TLC_APP_LIST_DB, sql);
+ std::vector<std::string> updateTlc = dbSelect(tlc_db, sql);
sqlite3_free(sql);
sql = sqlite3_mprintf("DELETE FROM TLC WHERE PKGID = %Q;", pkgId);
- dbDelete(tlc_db, TLC_APP_LIST_DB, sql);
+ dbDelete(tlc_db, sql);
sqlite3_free(sql);
std::vector<std::string> librariesInfo = getLibrariesInfo(rootPath);
return 0;
}
}
+ sqlite3_exec(tac_db, "BEGIN;", NULL, NULL, NULL);
char *sql = sqlite3_mprintf("SELECT * FROM TAC WHERE PKGID = %Q;", pkgId);
- updateTac = dbSelect(tac_db, TAC_APP_LIST_DB, sql);
+ updateTac = dbSelect(tac_db, sql);
sqlite3_free(sql);
sql = sqlite3_mprintf("DELETE FROM TAC WHERE PKGID = %Q;", pkgId);
- dbDelete(tac_db, TAC_APP_LIST_DB, sql);
+ dbDelete(tac_db, sql);
sqlite3_free(sql);
if (updateTacDB(tac_db) < 0) {
return 0;
}
}
+ sqlite3_exec(tlc_db, "BEGIN;", NULL, NULL, NULL);
sql = sqlite3_mprintf("SELECT * FROM TLC WHERE PKGID = %Q;", pkgId);
- std::vector<std::string> updateTlc = dbSelect(tlc_db, TLC_APP_LIST_DB, sql);
+ std::vector<std::string> updateTlc = dbSelect(tlc_db, sql);
sqlite3_free(sql);
sql = sqlite3_mprintf("DELETE FROM TLC WHERE PKGID = %Q;", pkgId);
- dbDelete(tlc_db, TLC_APP_LIST_DB, sql);
+ dbDelete(tlc_db, sql);
sqlite3_free(sql);
updateTlcDB(tlc_db, updateTlc, concatPath(__DOTNET_DIR, TLC_LIBRARIES_DIR));
fprintf(stderr, "Sqlite open error\n");
return -1;
}
+ sqlite3_exec(tac_db, "BEGIN;", NULL, NULL, NULL);
char *sql = sqlite3_mprintf("SELECT * FROM TAC WHERE PKGID = %Q;", pkgId);
- std::vector<std::string> nugets = dbSelect(tac_db, TAC_APP_LIST_DB, sql);
+ std::vector<std::string> nugets = dbSelect(tac_db, sql);
sqlite3_free(sql);
if (tac_db) {
char *sql = sqlite3_mprintf(
"INSERT INTO TAC (PKGID, NUGET, NAME, VERSION) " \
"VALUES (%Q, %Q, %Q, %Q);", pkgId, nuget.c_str(), name.c_str(), version.c_str());
- dbInsert(tac_db, TAC_APP_LIST_RESTORE_DB, sql);
+ dbInsert(tac_db, sql);
restore_nuget.push_back(concatPath(__DOTNET_DIR, nuget));
sqlite3_free(sql);
}
fprintf(stderr, "Sqlite create error\n");
return TAC_ERROR_UNKNOWN;
}
+ sqlite3_exec(tac_db, "BEGIN;", NULL, NULL, NULL);
pkgmgrinfo_appinfo_metadata_filter_h handle;
int ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
if (bf::exists(library)) {
std::string fileSha = library.substr(library.rfind('/') + 1) + ".." + librarySha.substr(librarySha.find(':') + 1);
char *sql = sqlite3_mprintf("INSERT INTO TLC (PKGID, LIBRARY) VALUES (%Q, %Q);", pkgId, fileSha.c_str());
- dbInsert(tlc_db, TLC_APP_LIST_RESTORE_DB, sql);
+ dbInsert(tlc_db, sql);
restore_library.push_back(fileSha);
sqlite3_free(sql);
}
fprintf(stderr, "Sqlite create error\n");
return TAC_ERROR_UNKNOWN;
}
+ sqlite3_exec(tlc_db, "BEGIN;", NULL, NULL, NULL);
pkgmgrinfo_appinfo_metadata_filter_h handle;
int ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
}
}
-bool dbUpdate(sqlite3 *sqlite, std::string path, std::string query)
+static bool dbExec(sqlite3 *sqlite, std::string query)
{
- sqlite3_stmt *stmt = NULL;
- int ret = sqlite3_exec(sqlite, "BEGIN;", NULL, NULL, NULL);
- ret = sqlite3_prepare(sqlite, query.c_str(), query.size(), &stmt, NULL);
+ int ret = sqlite3_exec(sqlite, query.c_str(), NULL, NULL, NULL);
if (ret != SQLITE_OK) {
_ERR("Sqlite error : [%d, %s]", ret, sqlite3_errmsg(sqlite));
- dbClose(sqlite);
return false;
}
- ret = sqlite3_step(stmt);
- if (ret != SQLITE_DONE && ret != SQLITE_ROW && ret != SQLITE_OK) {
- _ERR("Sqlite error : [%d, %s]", ret, sqlite3_errmsg(sqlite));
- dbFinalize(stmt);
- dbClose(sqlite);
- return false;
- }
- dbFinalize(stmt);
return true;
}
-bool dbInsert(sqlite3 *sqlite, std::string path, std::string query)
+bool dbUpdate(sqlite3 *sqlite, std::string query)
{
- sqlite3_stmt *stmt = NULL;
- int ret = sqlite3_exec(sqlite, "BEGIN;", NULL, NULL, NULL);
- ret = sqlite3_prepare(sqlite, query.c_str(), query.size(), &stmt, NULL);
- if (ret != SQLITE_OK) {
- _ERR("Sqlite error : [%d, %s]", ret, sqlite3_errmsg(sqlite));
- dbClose(sqlite);
- return false;
- }
- ret = sqlite3_step(stmt);
- if (ret != SQLITE_DONE && ret != SQLITE_ROW && ret != SQLITE_OK) {
- _ERR("Sqlite error : [%d, %s]", ret, sqlite3_errmsg(sqlite));
- dbFinalize(stmt);
- dbClose(sqlite);
- return false;
- }
- dbFinalize(stmt);
- return true;
+ return dbExec(sqlite, query);
+}
+
+bool dbInsert(sqlite3 *sqlite, std::string query)
+{
+ return dbExec(sqlite, query);
}
-std::vector<std::string> dbSelect(sqlite3 *sqlite, std::string path, std::string query)
+bool dbDelete(sqlite3 *sqlite, std::string query)
{
- std::vector<std::string> updateDB;
+ return dbExec(sqlite, query);
+}
+
+std::vector<std::string> dbSelect(sqlite3 *sqlite, std::string query)
+{
+ std::vector<std::string> selectData;
sqlite3_stmt* stmt = NULL;
const char* str = NULL;
int ret = sqlite3_prepare_v2(sqlite, query.c_str(), query.size(), &stmt, NULL);
if (ret != SQLITE_OK) {
_ERR("Sqlite error : [%d, %s]", ret, sqlite3_errmsg(sqlite));
- dbClose(sqlite);
- return updateDB;
+ return selectData;
}
while (sqlite3_step(stmt) == SQLITE_ROW) {
str = (const char *) sqlite3_column_text(stmt, 2);
- updateDB.push_back((!str || !strlen(str)) ? NULL : strdup(str));
+ selectData.push_back((!str || !strlen(str)) ? NULL : strdup(str));
}
dbFinalize(stmt);
- return updateDB;
-}
-
-bool dbDelete(sqlite3 *sqlite, std::string path, std::string query)
-{
- sqlite3_stmt *stmt = NULL;
- int ret = sqlite3_exec(sqlite, "BEGIN;", NULL, NULL, NULL);
- ret = sqlite3_prepare(sqlite, query.c_str(), query.size(), &stmt, NULL);
- if (ret != SQLITE_OK) {
- _ERR("Sqlite error : [%d, %s]", ret, sqlite3_errmsg(sqlite));
- dbClose(sqlite);
- return false;
- }
- ret = sqlite3_step(stmt);
- if (ret != SQLITE_DONE && ret != SQLITE_ROW && ret != SQLITE_OK) {
- _ERR("Sqlite error : [%d, %s]", ret, sqlite3_errmsg(sqlite));
- dbFinalize(stmt);
- dbClose(sqlite);
- return false;
- }
- dbFinalize(stmt);
- return true;
+ return selectData;
}