From f1093c269126176a2998664c42a31a2f6cfc5c9e Mon Sep 17 00:00:00 2001 From: Marty Pradere Date: Thu, 6 Aug 2026 16:57:35 -0700 Subject: [PATCH 1/2] Handle BIGINT exp ObjectId in SND attribute table (#973) ## Rationale The `_SND Attribute Data` ETL fails on every run that includes a delete at SNPRC with `java.lang.ClassCastException: class java.lang.Long cannot be cast to class java.lang.Integer`. exp 25.005 widened `exp.Object.ObjectId` and `exp.ObjectProperty.ObjectId` to BIGINT, but `AttributeDataTable.UpdateService.deleteRows` still cast the delete key to `Integer`. `TransformTask` builds each delete key from the target table's PK columns, which for this table are `exp.ObjectProperty`'s `ObjectId` and `PropertyId`, so the first row aborts the step. ## Changes - `AttributeDataTable.UpdateService.deleteRows` casts `ObjectId` and `PropertyId` to `Number` rather than `Integer`. - `EventDataTable` declares its injected `exp.Object.ObjectId` column as `JdbcType.BIGINT` instead of `JdbcType.INTEGER`, matching the widened column. --- snd/src/org/labkey/snd/query/AttributeDataTable.java | 5 +++-- snd/src/org/labkey/snd/query/EventDataTable.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/snd/src/org/labkey/snd/query/AttributeDataTable.java b/snd/src/org/labkey/snd/query/AttributeDataTable.java index 3c907ed08..81d343671 100644 --- a/snd/src/org/labkey/snd/query/AttributeDataTable.java +++ b/snd/src/org/labkey/snd/query/AttributeDataTable.java @@ -434,8 +434,9 @@ public List> deleteRows(User user, Container container, List { for (Map row : oldRows) { - Integer objectId = (Integer) row.get("ObjectId"); - Integer propertyId = (Integer) row.get("PropertyId"); + // exp.ObjectProperty.ObjectId is BIGINT as of exp 25.005, so the value arrives as a Long + Number objectId = (Number) row.get("ObjectId"); + Number propertyId = (Number) row.get("PropertyId"); SqlExecutor executor = new SqlExecutor(_expSchema); SQLFragment deleteObjProp = new SQLFragment("delete from " + _expSchema.getName() + ".ObjectProperty\n"); diff --git a/snd/src/org/labkey/snd/query/EventDataTable.java b/snd/src/org/labkey/snd/query/EventDataTable.java index f7ddb2d1f..1c9bce9d6 100644 --- a/snd/src/org/labkey/snd/query/EventDataTable.java +++ b/snd/src/org/labkey/snd/query/EventDataTable.java @@ -68,7 +68,7 @@ public EventDataTable(SNDUserSchema schema, TableInfo table) @Override public void addColumns() { - BaseColumnInfo objectid = new BaseColumnInfo("ObjectId", this, JdbcType.INTEGER) + BaseColumnInfo objectid = new BaseColumnInfo("ObjectId", this, JdbcType.BIGINT) { @Override public SQLFragment getValueSql(String tableAliasName) From 653e4606e4a3da1876ac07edf71306d4a11391a5 Mon Sep 17 00:00:00 2001 From: Binal Patel Date: Fri, 7 Aug 2026 11:27:13 -0600 Subject: [PATCH 2/2] Drop redundant unique index on snprc_ehr.labwork_services.ServiceId (#976) * Drop redundant unique index on snprc_ehr.labwork_services.ServiceId * Bump snprc_ehr schema version 26.001 -> 26.002 --- .../dbscripts/postgresql/snprc_ehr-26.001-26.002.sql | 7 +++++++ snprc_ehr/src/org/labkey/snprc_ehr/SNPRC_EHRModule.java | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 snprc_ehr/resources/schemas/dbscripts/postgresql/snprc_ehr-26.001-26.002.sql diff --git a/snprc_ehr/resources/schemas/dbscripts/postgresql/snprc_ehr-26.001-26.002.sql b/snprc_ehr/resources/schemas/dbscripts/postgresql/snprc_ehr-26.001-26.002.sql new file mode 100644 index 000000000..fdf005bd8 --- /dev/null +++ b/snprc_ehr/resources/schemas/dbscripts/postgresql/snprc_ehr-26.001-26.002.sql @@ -0,0 +1,7 @@ +/* + * Copyright (c) 2026 LabKey Corporation + * + * Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0 + */ +-- Dropping UNIQUE idx_labwork_services_serviceid [ServiceId] because it overlaps with PRIMARY pk_snprc_labwork_services [ServiceId] +DROP INDEX snprc_ehr.idx_labwork_services_serviceid; diff --git a/snprc_ehr/src/org/labkey/snprc_ehr/SNPRC_EHRModule.java b/snprc_ehr/src/org/labkey/snprc_ehr/SNPRC_EHRModule.java index c759d33c9..624005282 100644 --- a/snprc_ehr/src/org/labkey/snprc_ehr/SNPRC_EHRModule.java +++ b/snprc_ehr/src/org/labkey/snprc_ehr/SNPRC_EHRModule.java @@ -118,7 +118,7 @@ public String getName() @Override public @Nullable Double getSchemaVersion() { - return 26.001; + return 26.002; } @Nullable