diff --git a/tsk/auto/case_db.cpp b/tsk/auto/case_db.cpp index 57f1491ef96aabb372dbad9c4279fc069736df2c..94a91d7c49fd896db242fe50069bf0afb4c391d9 100644 --- a/tsk/auto/case_db.cpp +++ b/tsk/auto/case_db.cpp @@ -54,15 +54,19 @@ TskCaseDb::~TskCaseDb() TskCaseDb * TskCaseDb::newDb(const TSK_TCHAR * const path) { - + // ELTODO: optimize this #ifdef HAVE_POSTGRESQL #ifdef TSK_WIN32 // ELTODO: check here which database to initialize //TskDb *db = new TskDbSqlite(path, true); - TskDb *db = new TskDbPostgreSQL(path, true); + return TskDbPostgreSQL(path, true); +#else + TskDb *db = new TskDbSqlite(path, true); #endif // TSK_WIN32 +#else + TskDb *db = new TskDbSqlite(path, true); #endif // HAVE_POSTGRESQL // Check if the database already exsists @@ -92,15 +96,19 @@ TskCaseDb::newDb(const TSK_TCHAR * const path) TskCaseDb * TskCaseDb::openDb(const TSK_TCHAR * path) { - + // ELTODO: optimize this #ifdef HAVE_POSTGRESQL #ifdef TSK_WIN32 // ELTODO: check here which database to initialize //TskDb *db = new TskDbSqlite(path, true); - TskDb *db = new TskDbPostgreSQL(path, true); + return TskDbPostgreSQL(path, true); +#else + TskDb *db = new TskDbSqlite(path, true); #endif // TSK_WIN32 +#else + TskDb *db = new TskDbSqlite(path, true); #endif // HAVE_POSTGRESQL // Confirm that database already exsists @@ -121,7 +129,6 @@ TskCaseDb::openDb(const TSK_TCHAR * path) return new TskCaseDb(db); } - /** * Prepares the process to add an image to the database. This method * allows the caller to specify options to be used during the ingest. diff --git a/tsk/auto/db_postgresql.cpp b/tsk/auto/db_postgresql.cpp index b7ae6dfcfba4b19a7462c9051aa5c7ac7690c91f..2d8b654ff1bc854a94db7f3597be0ef9d6338bfc 100755 --- a/tsk/auto/db_postgresql.cpp +++ b/tsk/auto/db_postgresql.cpp @@ -133,7 +133,7 @@ int TskDbPostgreSQL::open(bool createDbFlag) } // ELTODO: delete this: - test(); + //test(); return 0; } @@ -290,7 +290,7 @@ int TskDbPostgreSQL::initialize() { // http://www.postgresql.org/docs/current/interactive/datatype-numeric.html if (attempt_exec - ("CREATE TABLE tsk_objects (obj_id INTEGER PRIMARY KEY, par_obj_id INTEGER, type INTEGER NOT NULL);", + ("CREATE TABLE tsk_objects (obj_id SERIAL PRIMARY KEY, par_obj_id INTEGER, type INTEGER NOT NULL);", "Error creating tsk_objects table: %s\n") || attempt_exec @@ -359,7 +359,8 @@ int TskDbPostgreSQL::initialize() { "FOREIGN KEY(artifact_id) REFERENCES blackboard_artifacts(artifact_id), FOREIGN KEY(artifact_type_id) REFERENCES blackboard_artifact_types(artifact_type_id), FOREIGN KEY(attribute_type_id) REFERENCES blackboard_attribute_types(attribute_type_id))", "Error creating blackboard_attribute table: %s\n") || - /* In PostgreSQL "desc" indicates "descending order" so I had to rename "desc TEXT" to "descr TEXT" */ + /* In PostgreSQL "desc" indicates "descending order" so I had to rename "desc TEXT" to "descr TEXT" + ELTODO: make sure all insert queries have "descr". Should I also make this change for SQLite?*/ attempt_exec ("CREATE TABLE tsk_vs_parts (obj_id INTEGER PRIMARY KEY, addr INTEGER NOT NULL, start INTEGER NOT NULL, length INTEGER NOT NULL, descr TEXT, flags INTEGER NOT NULL, FOREIGN KEY(obj_id) REFERENCES tsk_objects(obj_id));", "Error creating tsk_vol_info table: %s\n") @@ -419,7 +420,9 @@ uint8_t { char stmt[1024]; - snprintf(stmt, 1024, "INSERT INTO tsk_objects (obj_id, par_obj_id, type) VALUES (NULL, %d, %d)", +// snprintf(stmt, 1024, "INSERT INTO tsk_objects (obj_id, par_obj_id, type) VALUES (NULL, %d, %d)", +// parObjId, type); + snprintf(stmt, 1024, "INSERT INTO tsk_objects (par_obj_id, type) VALUES (%d, %d)", parObjId, type); if (attempt_exec(stmt, "TskDbSqlite::addObj: Error adding object to row: %s (result code %d)\n")) { diff --git a/tsk/auto/tsk_case_db.h b/tsk/auto/tsk_case_db.h index 512b2fea494ae6e21e95376b25891db98f67d38d..9315ad422c1857a135a1dcb27f8c653e16411a25 100644 --- a/tsk/auto/tsk_case_db.h +++ b/tsk/auto/tsk_case_db.h @@ -186,7 +186,6 @@ class TskCaseDb { // prevent copying until we add proper logic to handle it TskCaseDb(const TskCaseDb&); TskCaseDb & operator=(const TskCaseDb&); - TskCaseDb(TskDb * a_db); TskDb *m_db; TSK_HDB_INFO * m_NSRLDb;