diff --git a/fhir-persistence-jdbc/src/main/java/com/ibm/fhir/persistence/jdbc/dao/ReindexResourceDAO.java b/fhir-persistence-jdbc/src/main/java/com/ibm/fhir/persistence/jdbc/dao/ReindexResourceDAO.java index 0fdcd950b4b..ef38491dfea 100644 --- a/fhir-persistence-jdbc/src/main/java/com/ibm/fhir/persistence/jdbc/dao/ReindexResourceDAO.java +++ b/fhir-persistence-jdbc/src/main/java/com/ibm/fhir/persistence/jdbc/dao/ReindexResourceDAO.java @@ -111,6 +111,7 @@ public ReindexResourceDAO(Connection connection, IDatabaseTranslator translator, * Getter for the translator currently held by this DAO * @return */ + @Override protected IDatabaseTranslator getTranslator() { return this.translator; } @@ -169,7 +170,8 @@ protected ResourceIndexRecord getNextResource(SecureRandom random, Instant reind } ResultSet rs = stmt.executeQuery(); if (rs.next()) { - result = new ResourceIndexRecord(rs.getLong(1), rs.getInt(2), rs.getString(3), rs.getLong(4)); + // TODO: Update this when PARAMETERS_HASH column exists in the DB table + result = new ResourceIndexRecord(rs.getLong(1), rs.getInt(2), rs.getString(3), rs.getLong(4), null); } } catch (SQLException x) { logger.log(Level.SEVERE, select, x); diff --git a/fhir-persistence-jdbc/src/main/java/com/ibm/fhir/persistence/jdbc/dao/api/ResourceIndexRecord.java b/fhir-persistence-jdbc/src/main/java/com/ibm/fhir/persistence/jdbc/dao/api/ResourceIndexRecord.java index 5b54d7dc95a..385a46d5b34 100644 --- a/fhir-persistence-jdbc/src/main/java/com/ibm/fhir/persistence/jdbc/dao/api/ResourceIndexRecord.java +++ b/fhir-persistence-jdbc/src/main/java/com/ibm/fhir/persistence/jdbc/dao/api/ResourceIndexRecord.java @@ -30,11 +30,15 @@ public class ResourceIndexRecord { // Deletion flag for the resource. Set when we read the resource private boolean deleted; - public ResourceIndexRecord(long logicalResourceId, int resourceTypeId, String logicalId, long transactionId) { + // SHA-256 hash of the search parameters + private String parametersHash; + + public ResourceIndexRecord(long logicalResourceId, int resourceTypeId, String logicalId, long transactionId, String parametersHash) { this.logicalResourceId = logicalResourceId; this.resourceTypeId = resourceTypeId; this.logicalId = logicalId; this.transactionId = transactionId; + this.parametersHash = parametersHash; } /** @@ -92,4 +96,18 @@ public boolean isDeleted() { public void setDeleted(boolean deleted) { this.deleted = deleted; } + + /** + * @return the parametersHash + */ + public String getParametersHash() { + return parametersHash; + } + + /** + * @param parametersHash the parametersHash to set + */ + public void setParametersHash(String parametersHash) { + this.parametersHash = parametersHash; + } } diff --git a/fhir-persistence-jdbc/src/main/java/com/ibm/fhir/persistence/jdbc/dto/ExtractedParameterValue.java b/fhir-persistence-jdbc/src/main/java/com/ibm/fhir/persistence/jdbc/dto/ExtractedParameterValue.java index 597d44dad43..a822cfa4692 100644 --- a/fhir-persistence-jdbc/src/main/java/com/ibm/fhir/persistence/jdbc/dto/ExtractedParameterValue.java +++ b/fhir-persistence-jdbc/src/main/java/com/ibm/fhir/persistence/jdbc/dto/ExtractedParameterValue.java @@ -25,6 +25,9 @@ public abstract class ExtractedParameterValue { // The bass resource name private String base; + // SHA-256 hash of the search parameter + private String hash; + /** * Protected constructor */ @@ -93,4 +96,18 @@ public String getName() { public void setName(String name) { this.name = name; } + + /** + * @return the hash + */ + public String getHash() { + return hash; + } + + /** + * @param hash the hash to set + */ + public void setHash(String hash) { + this.hash = hash; + } } \ No newline at end of file diff --git a/fhir-persistence-jdbc/src/main/java/com/ibm/fhir/persistence/jdbc/postgres/PostgresReindexResourceDAO.java b/fhir-persistence-jdbc/src/main/java/com/ibm/fhir/persistence/jdbc/postgres/PostgresReindexResourceDAO.java index 2a6bcaa962a..574833c99c5 100644 --- a/fhir-persistence-jdbc/src/main/java/com/ibm/fhir/persistence/jdbc/postgres/PostgresReindexResourceDAO.java +++ b/fhir-persistence-jdbc/src/main/java/com/ibm/fhir/persistence/jdbc/postgres/PostgresReindexResourceDAO.java @@ -157,7 +157,8 @@ public ResourceIndexRecord getNextResource(SecureRandom random, Instant reindexT stmt.execute(); ResultSet rs = stmt.getResultSet(); if (rs.next()) { - result = new ResourceIndexRecord(rs.getLong(1), rs.getInt(2), rs.getString(3), rs.getLong(4)); + // TODO: Update this when PARAMETERS_HASH column exists in the DB table + result = new ResourceIndexRecord(rs.getLong(1), rs.getInt(2), rs.getString(3), rs.getLong(4), null); } } catch (SQLException x) { logger.log(Level.SEVERE, update, x);