From 076d92fa2b4ae84e5248765b63c871ca022ea4d2 Mon Sep 17 00:00:00 2001 From: Jason Loux Date: Tue, 6 Oct 2026 17:15:50 -0400 Subject: [PATCH] Make changes to migration and filtering to support default date value --- .../service/SearchQueryBuilder.java | 5 +++- .../V006_004__collate_germplasm_columns.sql | 23 +++++++++++-------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/brapi/test/BrAPITestServer/service/SearchQueryBuilder.java b/src/main/java/org/brapi/test/BrAPITestServer/service/SearchQueryBuilder.java index 5bbd0332..855aaf4c 100644 --- a/src/main/java/org/brapi/test/BrAPITestServer/service/SearchQueryBuilder.java +++ b/src/main/java/org/brapi/test/BrAPITestServer/service/SearchQueryBuilder.java @@ -26,6 +26,7 @@ public class SearchQueryBuilder { private List joinedTables = new ArrayList<>(); private List joinedFetchedTables = new ArrayList<>(); private Class clazz; + private final String default_date = "1970-01-01"; public SearchQueryBuilder(Class clazz) { this.selectClause = "SELECT distinct entity FROM " + clazz.getSimpleName() + " entity "; @@ -202,7 +203,9 @@ public SearchQueryBuilder appendLikeDate(String like, String columnName) { String paramName = paramFilterPattern(columnName); if (like != null) { - this.whereClause += " AND to_char(" + entityPrefix(columnName) + ", 'YYYY-MM-DD') LIKE :" + paramName + " "; + this.whereClause += " AND to_char(" + entityPrefix(columnName) + ", 'YYYY-MM-DD') LIKE :" + paramName + " " + + // Ensure we do not filter against the default date, which is effectively a NULL value for DeltaBreed's system. + " AND to_char(" + entityPrefix(columnName) + ", 'YYYY-MM-DD') <> '" + default_date + "' "; this.params.put(paramName, "%" + like + "%"); } return this; diff --git a/src/main/resources/db/migration/V006_004__collate_germplasm_columns.sql b/src/main/resources/db/migration/V006_004__collate_germplasm_columns.sql index 97084b4a..a3b0acea 100644 --- a/src/main/resources/db/migration/V006_004__collate_germplasm_columns.sql +++ b/src/main/resources/db/migration/V006_004__collate_germplasm_columns.sql @@ -36,15 +36,20 @@ ALTER TABLE germplasm ALTER TABLE germplasm ADD COLUMN created_date TIMESTAMP NOT NULL GENERATED ALWAYS AS ( - make_timestamp( - substring(additional_info #>> '{createdDate}' from 7 for 4)::int, -- year - substring(additional_info #>> '{createdDate}' from 4 for 2)::int, -- month - substring(additional_info #>> '{createdDate}' from 1 for 2)::int, -- day - substring(additional_info #>> '{createdDate}' from 12 for 2)::int, -- hour - substring(additional_info #>> '{createdDate}' from 15 for 2)::int, -- minute - substring(additional_info #>> '{createdDate}' from 18 for 2)::int -- second - ) - ) STORED; + CASE + WHEN additional_info #>> '{createdDate}' IS NULL + THEN TIMESTAMP '1970-01-01 00:00:00' + ELSE + make_timestamp( + substring(additional_info #>> '{createdDate}' from 7 for 4)::int, -- year + substring(additional_info #>> '{createdDate}' from 4 for 2)::int, -- month + substring(additional_info #>> '{createdDate}' from 1 for 2)::int, -- day + substring(additional_info #>> '{createdDate}' from 12 for 2)::int, -- hour + substring(additional_info #>> '{createdDate}' from 15 for 2)::int, -- minute + substring(additional_info #>> '{createdDate}' from 18 for 2)::int -- second + ) + END + ) STORED; ALTER TABLE germplasm ADD COLUMN