diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java index 750c6a8bafd2bd7a0714243548cd389890232e2e..897faa2f7f60645819974a15c5d9cfe0f68374e2 100644 --- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java +++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java @@ -2119,7 +2119,13 @@ private CaseDbSchemaVersionNumber updateFromSchema8dot4toSchema8dot5(CaseDbSchem } statement.execute("ALTER TABLE tag_names ADD COLUMN tag_set_id INTEGER REFERENCES tsk_tag_sets(tag_set_id)"); - statement.execute("INSERT INTO tsk_tag_sets (name) VALUES ('Project VIC (United States)')"); + + String insertStmt = "INSERT INTO tsk_tag_sets (name) VALUES ('Project VIC (United States)')"; + if (getDatabaseType() == DbType.POSTGRESQL) { + statement.execute(insertStmt, Statement.RETURN_GENERATED_KEYS); + } else { + statement.execute(insertStmt); + } try (ResultSet resultSet = statement.getGeneratedKeys()) { if (resultSet != null && resultSet.next()) { int tagSetId = resultSet.getInt(1); diff --git a/bindings/java/src/org/sleuthkit/datamodel/TagName.java b/bindings/java/src/org/sleuthkit/datamodel/TagName.java index 2994493efed37f88a373eafb6b3663958809551e..e404faeeb36d399690354c181b73467332b6b9df 100644 --- a/bindings/java/src/org/sleuthkit/datamodel/TagName.java +++ b/bindings/java/src/org/sleuthkit/datamodel/TagName.java @@ -81,7 +81,7 @@ public static HTML_COLOR getColorByName(String colorName) { private final HTML_COLOR color; private final TskData.FileKnown knownStatus; private final long tagSetId; - + // Clients of the org.sleuthkit.datamodel package should not directly create these objects. TagName(long id, String displayName, String description, HTML_COLOR color, TskData.FileKnown knownStatus, long tagSetId) { this.id = id; @@ -91,7 +91,7 @@ public static HTML_COLOR getColorByName(String colorName) { this.knownStatus = knownStatus; this.tagSetId = tagSetId; } - + public long getId() { return id; } @@ -111,7 +111,7 @@ public HTML_COLOR getColor() { public TskData.FileKnown getKnownStatus() { return knownStatus; } - + long getTagSetId() { return tagSetId; } diff --git a/bindings/java/src/org/sleuthkit/datamodel/TagSet.java b/bindings/java/src/org/sleuthkit/datamodel/TagSet.java index 3667d52336181bdd957019999d2882f26328b94a..2821aff4d08f8534f93babfa886f1786b114b908 100755 --- a/bindings/java/src/org/sleuthkit/datamodel/TagSet.java +++ b/bindings/java/src/org/sleuthkit/datamodel/TagSet.java @@ -34,7 +34,7 @@ public class TagSet { /** * Construct a TagSet. * - * @param id Tag set id value. + * @param id Tag set id value. * @param setName Name of tag set. */ TagSet(long id, String setName, List<TagName> tagNameList) { @@ -66,7 +66,7 @@ public List<TagName> getTagNames() { /** * Return the TagSet id. - * + * * @return TagSet id value. */ long getId() { diff --git a/bindings/java/src/org/sleuthkit/datamodel/TaggingManager.java b/bindings/java/src/org/sleuthkit/datamodel/TaggingManager.java index b44a8f321820c0eddd5b4d5554723e5ab04dd986..0fb319766962749bd598930f19f1b449f4207eeb 100755 --- a/bindings/java/src/org/sleuthkit/datamodel/TaggingManager.java +++ b/bindings/java/src/org/sleuthkit/datamodel/TaggingManager.java @@ -25,6 +25,7 @@ import java.util.Collections; import java.util.List; import org.sleuthkit.datamodel.SleuthkitCase.CaseDbConnection; +import static org.sleuthkit.datamodel.TskData.DbType.POSTGRESQL; /** * Provides an API to manage Tags. @@ -91,8 +92,13 @@ public TagSet addTagSet(String name, List<TagName> tagNames) throws TskCoreExcep skCase.acquireSingleUserCaseWriteLock(); try (Statement stmt = connection.createStatement()) { connection.beginTransaction(); - // INSERT INTO tsk_tag_sets (name) VALUES('%s') - stmt.execute(String.format("INSERT INTO tsk_tag_sets (name) VALUES('%s')", name)); + String query = String.format("INSERT INTO tsk_tag_sets (name) VALUES('%s')", name); + + if (skCase.getDatabaseType() == POSTGRESQL) { + stmt.execute(query, Statement.RETURN_GENERATED_KEYS); + } else { + stmt.execute(query); + } try (ResultSet resultSet = stmt.getGeneratedKeys()) { @@ -272,13 +278,18 @@ public BlackboardArtifactTagChange addArtifactTag(BlackboardArtifact artifact, T BlackboardArtifactTag artifactTag = null; try (Statement stmt = connection.createStatement()) { Examiner currentExaminer = skCase.getCurrentExaminer(); - String queryTemplate = "INSERT INTO blackboard_artifact_tags (artifact_id, tag_name_id, comment, examiner_id) VALUES (%d, %d, '%s', %d)"; - - stmt.executeUpdate(String.format(queryTemplate, + String query = String.format( + "INSERT INTO blackboard_artifact_tags (artifact_id, tag_name_id, comment, examiner_id) VALUES (%d, %d, '%s', %d)", artifact.getArtifactID(), tagName.getId(), comment, - currentExaminer.getId())); + currentExaminer.getId()); + + if (skCase.getDatabaseType() == POSTGRESQL) { + stmt.execute(query, Statement.RETURN_GENERATED_KEYS); + } else { + stmt.execute(query); + } try (ResultSet resultSet = stmt.getGeneratedKeys()) { resultSet.next(); @@ -361,7 +372,11 @@ public ContentTagChange addContentTag(Content content, TagName tagName, String c endByteOffset, currentExaminer.getId()); - stmt.executeUpdate(query); + if (skCase.getDatabaseType() == POSTGRESQL) { + stmt.executeUpdate(query, Statement.RETURN_GENERATED_KEYS); + } else { + stmt.executeUpdate(query); + } try (ResultSet resultSet = stmt.getGeneratedKeys()) { resultSet.next();