diff --git a/bootstrap/sql/migrations/native/1.5.7/mysql/postDataMigrationSQLScript.sql b/bootstrap/sql/migrations/native/1.5.7/mysql/postDataMigrationSQLScript.sql index 0aaa75e3876..c56233b9e77 100644 --- a/bootstrap/sql/migrations/native/1.5.7/mysql/postDataMigrationSQLScript.sql +++ b/bootstrap/sql/migrations/native/1.5.7/mysql/postDataMigrationSQLScript.sql @@ -14,4 +14,5 @@ SET json = JSON_MERGE_PRESERVE( ) ) ) -WHERE name = 'tableDiff'; +WHERE name = 'tableDiff' +AND NOT JSON_CONTAINS(json->>'$.parameterDefinition', JSON_OBJECT('name', 'caseSensitiveColumns')); diff --git a/bootstrap/sql/migrations/native/1.5.7/postgres/postDataMigrationSQLScript.sql b/bootstrap/sql/migrations/native/1.5.7/postgres/postDataMigrationSQLScript.sql index 32afd14731f..ce58d3d3160 100644 --- a/bootstrap/sql/migrations/native/1.5.7/postgres/postDataMigrationSQLScript.sql +++ b/bootstrap/sql/migrations/native/1.5.7/postgres/postDataMigrationSQLScript.sql @@ -5,4 +5,9 @@ SET json = jsonb_set( (json->'parameterDefinition')::jsonb || '{"name": "caseSensitiveColumns", "dataType": "BOOLEAN", "required": false, "description": "Use case sensitivity when comparing the columns.", "displayName": "Case sensitive columns"}'::jsonb ) -WHERE name = 'tableDiff'; +WHERE name = 'tableDiff' +AND NOT EXISTS ( + SELECT 1 + FROM jsonb_array_elements(json#>'{parameterDefinition}') AS elem + WHERE elem->>'name' = 'caseSensitiveColumns' +); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/migration/utils/v157/MigrationUtil.java b/openmetadata-service/src/main/java/org/openmetadata/service/migration/utils/v157/MigrationUtil.java index 1beaacce423..e251afe5f92 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/migration/utils/v157/MigrationUtil.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/migration/utils/v157/MigrationUtil.java @@ -37,9 +37,14 @@ public class MigrationUtil { TestDefinition td = getTestDefinition(daoCollection, testCase); if (Objects.nonNull(td) && Objects.equals(td.getName(), TABLE_DIFF)) { LOG.debug("Adding caseSensitiveColumns=true table diff test case: {}", testCase.getId()); - testCase - .getParameterValues() - .add(new TestCaseParameterValue().withName("caseSensitiveColumns").withValue("true")); + if (!hasCaseSensitiveColumnsParam(testCase.getParameterValues())) { + testCase + .getParameterValues() + .add( + new TestCaseParameterValue() + .withName("caseSensitiveColumns") + .withValue("true")); + } daoCollection.testCaseDAO().update(testCase); } } @@ -60,4 +65,10 @@ public class MigrationUtil { } return dao.testDefinitionDAO().findEntityById(records.get(0).getId()); } + + private static boolean hasCaseSensitiveColumnsParam( + List parameterValues) { + return parameterValues.stream() + .anyMatch(paramValue -> paramValue.getName().equals("caseSensitiveColumns")); + } }