From b44be7de5798dac0e69dcae96ed7ef0760b5343a Mon Sep 17 00:00:00 2001 From: Filip Hrisafov Date: Fri, 16 Oct 2026 00:17:35 +0200 Subject: [PATCH 1/2] Combine involved user and group identity link checks into a single EXISTS When a query restricts by a user or any of their groups, the identity link checks were rendered as EXISTS(user link) OR EXISTS(group link). Most databases (Postgres, MySQL, CockroachDB, SQL Server, DB2) can only turn an EXISTS into a semi-join when it is not inside an OR, so they ran both subqueries for every candidate row. On Postgres the resulting cost estimate also triggered JIT compilation on every call. The user and group conditions now go into one EXISTS with the OR inside it. The result is the same, and when nothing else is in the OR the EXISTS can be executed as a semi-join. This applies to: * the or() blocks of the process, historic process, case and historic case instance queries, for involvedUser, involvedGroups and the typed involvedUser(userId, type) / involvedGroup(groupId, type) * startableByUser / startableByUserOrGroups for process and case definitions * forUserOrGroups for external worker job queries and acquisition * the or() blocks of the task and historic task queries --- .../cmmn/db/mapping/entity/CaseDefinition.xml | 38 ++--- .../cmmn/db/mapping/entity/CaseInstance.xml | 45 +++-- .../mapping/entity/HistoricCaseInstance.xml | 47 +++--- .../HistoricCaseInstanceQueryImplTest.java | 55 ++++++ .../runtime/CaseInstanceQueryImplTest.java | 53 ++++++ .../flowable/db/mapping/entity/Execution.xml | 46 +++-- .../entity/HistoricProcessInstance.xml | 46 +++-- .../db/mapping/entity/ProcessDefinition.xml | 33 ++-- .../api/mgmt/ExternalWorkerJobQueryTest.java | 71 +++++++- .../api/runtime/InstanceInvolvementTest.java | 157 ++++++++++++++++++ .../engine/test/api/task/TaskQueryTest.java | 47 ++++++ .../db/mapping/entity/ExternalWorkerJob.xml | 68 ++++---- .../mapping/entity/HistoricTaskInstance.xml | 42 +++-- .../task/service/db/mapping/entity/Task.xml | 42 ++--- 14 files changed, 588 insertions(+), 202 deletions(-) diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/CaseDefinition.xml b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/CaseDefinition.xml index 1fe7896b091..8c631ad9c3f 100644 --- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/CaseDefinition.xml +++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/CaseDefinition.xml @@ -276,29 +276,27 @@ and (RES.TENANT_ID_ = '' or RES.TENANT_ID_ is null) - AND + + AND exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_DEFINITION_ID_ = RES.ID_ and IDN.SCOPE_TYPE_ = 'cmmn' and - - exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_DEFINITION_ID_ = RES.ID_ and IDN.SCOPE_TYPE_ = 'cmmn' and IDN.USER_ID_ = #{authorizationUserId, jdbcType=NVARCHAR}) - - - OR exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_DEFINITION_ID_ = RES.ID_ and IDN.SCOPE_TYPE_ = 'cmmn' and - ( - - - or - - IDN.GROUP_ID_ IN - - #{authorizationGroup, jdbcType=NVARCHAR} - - - ) - ) + + IDN.USER_ID_ = #{authorizationUserId, jdbcType=NVARCHAR} + + + OR + + + or + + IDN.GROUP_ID_ IN + + #{authorizationGroup, jdbcType=NVARCHAR} + + - + ) diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/CaseInstance.xml b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/CaseInstance.xml index dcead35b4cf..e9c8eccab72 100644 --- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/CaseInstance.xml +++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/CaseInstance.xml @@ -909,35 +909,32 @@ and P.STATE_ = 'active') - - or EXISTS(select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.SCOPE_ID_ = RES.ID_ and I.SCOPE_TYPE_ = 'cmmn' and I.USER_ID_ = - #{orQueryObject.involvedUser, jdbcType=NVARCHAR}) - - - or EXISTS(select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.SCOPE_ID_ = RES.ID_ and I.SCOPE_TYPE_ = 'cmmn' and - I.USER_ID_ = #{orQueryObject.involvedUserIdentityLink.userId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedUserIdentityLink.type, jdbcType=NVARCHAR}) - - + + or EXISTS( select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.SCOPE_ID_ = RES.ID_ and I.SCOPE_TYPE_ = 'cmmn' and - ( - - - or + + + or I.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} - I.GROUP_ID_ IN - - #{involvedGroup, jdbcType=NVARCHAR} - - - ) + + or (I.USER_ID_ = #{orQueryObject.involvedUserIdentityLink.userId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedUserIdentityLink.type, jdbcType=NVARCHAR}) + + + + or I.GROUP_ID_ IN + + #{involvedGroup, jdbcType=NVARCHAR} + + + + + or (I.GROUP_ID_ = #{orQueryObject.involvedGroupIdentityLink.groupId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedGroupIdentityLink.type, jdbcType=NVARCHAR}) + + ) - - or EXISTS(select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.SCOPE_ID_ = RES.ID_ and I.SCOPE_TYPE_ = 'cmmn' and - I.GROUP_ID_ = #{orQueryObject.involvedGroupIdentityLink.groupId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedGroupIdentityLink.type, jdbcType=NVARCHAR}) - or EXISTS(select 1 from ${prefix}ACT_RU_ENTITYLINK LINK where LINK.SCOPE_ID_ = #{orQueryObject.parentScopeId, jdbcType=NVARCHAR} diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/HistoricCaseInstance.xml b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/HistoricCaseInstance.xml index 7e2109e9b88..14d221ee3db 100644 --- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/HistoricCaseInstance.xml +++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/mapping/entity/HistoricCaseInstance.xml @@ -1056,35 +1056,32 @@ and P.STATE_ = 'active') - - or EXISTS(select ID_ from ${prefix}ACT_HI_IDENTITYLINK I where I.SCOPE_ID_ = ${queryTablePrefix}ID_ and I.SCOPE_TYPE_ = 'cmmn' and I.USER_ID_ = - #{orQueryObject.involvedUser, jdbcType=NVARCHAR}) - - - or EXISTS(select ID_ from ${prefix}ACT_HI_IDENTITYLINK I where I.SCOPE_ID_ = ${queryTablePrefix}ID_ and I.SCOPE_TYPE_ = 'cmmn' and - I.USER_ID_ = #{orQueryObject.involvedUserIdentityLink.userId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedUserIdentityLink.type, jdbcType=NVARCHAR}) - - + + or EXISTS( - select ID_ from ${prefix}ACT_HI_IDENTITYLINK I where I.SCOPE_ID_ = ${queryTablePrefix}ID_ and I.SCOPE_TYPE_ = 'cmmn' and - ( - - - or + select ID_ from ${prefix}ACT_HI_IDENTITYLINK I where I.SCOPE_ID_ = ${queryTablePrefix}ID_ and I.SCOPE_TYPE_ = 'cmmn' and + + + or I.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} - I.GROUP_ID_ IN - - #{involvedGroup, jdbcType=NVARCHAR} - - - ) + + or (I.USER_ID_ = #{orQueryObject.involvedUserIdentityLink.userId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedUserIdentityLink.type, jdbcType=NVARCHAR}) + + + + or I.GROUP_ID_ IN + + #{involvedGroup, jdbcType=NVARCHAR} + + + + + or (I.GROUP_ID_ = #{orQueryObject.involvedGroupIdentityLink.groupId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedGroupIdentityLink.type, jdbcType=NVARCHAR}) + + ) - - or EXISTS(select ID_ from ${prefix}ACT_HI_IDENTITYLINK I where I.SCOPE_ID_ = ${queryTablePrefix}ID_ and I.SCOPE_TYPE_ = 'cmmn' and - I.GROUP_ID_ = #{orQueryObject.involvedGroupIdentityLink.groupId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedGroupIdentityLink.type, jdbcType=NVARCHAR}) - or EXISTS(select 1 from ${prefix}ACT_HI_ENTITYLINK LINK where LINK.SCOPE_ID_ = #{orQueryObject.parentScopeId, jdbcType=NVARCHAR} diff --git a/modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/history/HistoricCaseInstanceQueryImplTest.java b/modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/history/HistoricCaseInstanceQueryImplTest.java index 43bf49ad152..47c139d7dec 100644 --- a/modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/history/HistoricCaseInstanceQueryImplTest.java +++ b/modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/history/HistoricCaseInstanceQueryImplTest.java @@ -1738,6 +1738,61 @@ public void getCaseInstanceByInvolvedGroupIdentityLink() { } } + @Test + public void getCaseInstanceByOrInvolvedUsersAndGroupsWithIdentityLinkTypes() { + CaseInstance userTypeInstance = startOneTaskCase(); + cmmnRuntimeService.addUserIdentityLink(userTypeInstance.getId(), "kermit", "specialLink"); + CaseInstance userOtherTypeInstance = startOneTaskCase(); + cmmnRuntimeService.addUserIdentityLink(userOtherTypeInstance.getId(), "kermit", "otherLink"); + CaseInstance groupTypeInstance = startOneTaskCase(); + cmmnRuntimeService.addGroupIdentityLink(groupTypeInstance.getId(), "sales", "specialLink"); + CaseInstance groupOtherTypeInstance = startOneTaskCase(); + cmmnRuntimeService.addGroupIdentityLink(groupOtherTypeInstance.getId(), "sales", "otherLink"); + CaseInstance groupsInstance = startOneTaskCase(); + cmmnRuntimeService.addGroupIdentityLink(groupsInstance.getId(), "testGroup", "otherLink"); + + if (CmmnHistoryTestHelper.isHistoryLevelAtLeast(HistoryLevel.ACTIVITY, cmmnEngineConfiguration)) { + assertThat(cmmnHistoryService.createHistoricCaseInstanceQuery() + .or().involvedUser("kermit", "specialLink").involvedGroup("sales", "specialLink").endOr() + .list()) + .extracting(HistoricCaseInstance::getId) + .containsExactlyInAnyOrder(userTypeInstance.getId(), groupTypeInstance.getId()); + + assertThat(cmmnHistoryService.createHistoricCaseInstanceQuery() + .or().involvedUser("kermit", "specialLink").involvedGroups(Set.of("testGroup")).endOr() + .list()) + .extracting(HistoricCaseInstance::getId) + .containsExactlyInAnyOrder(userTypeInstance.getId(), groupsInstance.getId()); + + assertThat(cmmnHistoryService.createHistoricCaseInstanceQuery() + .or().involvedUser("kermit").involvedGroup("sales", "specialLink").involvedGroups(Set.of("testGroup")).endOr() + .list()) + .extracting(HistoricCaseInstance::getId) + .containsExactlyInAnyOrder(userTypeInstance.getId(), userOtherTypeInstance.getId(), groupTypeInstance.getId(), groupsInstance.getId()); + + assertThat(cmmnHistoryService.createHistoricCaseInstanceQuery() + .or() + .involvedUser("kermit", "specialLink") + .involvedGroup("sales", "specialLink") + .involvedGroups(Set.of("testGroup")) + .caseInstanceId(groupOtherTypeInstance.getId()) + .endOr() + .count()) + .isEqualTo(4); + + assertThat(cmmnHistoryService.createHistoricCaseInstanceQuery() + .or().involvedUser("kermit", "wrongType").involvedGroup("sales", "wrongType").endOr() + .count()) + .isZero(); + } + } + + protected CaseInstance startOneTaskCase() { + return cmmnRuntimeService.createCaseInstanceBuilder() + .caseDefinitionKey("oneTaskCase") + .start(); + } + @Test public void getCaseInstanceByInvolvedGroupOrUser() { CaseInstance caseInstance = cmmnRuntimeService.createCaseInstanceBuilder() diff --git a/modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/runtime/CaseInstanceQueryImplTest.java b/modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/runtime/CaseInstanceQueryImplTest.java index 7fe4a27a470..45fa4e14baa 100644 --- a/modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/runtime/CaseInstanceQueryImplTest.java +++ b/modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/runtime/CaseInstanceQueryImplTest.java @@ -1396,6 +1396,59 @@ public void getCaseInstanceByInvolvedGroupIdentityLink() { .isZero(); } + @Test + public void getCaseInstanceByOrInvolvedUsersAndGroupsWithIdentityLinkTypes() { + CaseInstance userTypeInstance = startOneTaskCase(); + cmmnRuntimeService.addUserIdentityLink(userTypeInstance.getId(), "kermit", "specialLink"); + CaseInstance userOtherTypeInstance = startOneTaskCase(); + cmmnRuntimeService.addUserIdentityLink(userOtherTypeInstance.getId(), "kermit", "otherLink"); + CaseInstance groupTypeInstance = startOneTaskCase(); + cmmnRuntimeService.addGroupIdentityLink(groupTypeInstance.getId(), "sales", "specialLink"); + CaseInstance groupOtherTypeInstance = startOneTaskCase(); + cmmnRuntimeService.addGroupIdentityLink(groupOtherTypeInstance.getId(), "sales", "otherLink"); + CaseInstance groupsInstance = startOneTaskCase(); + cmmnRuntimeService.addGroupIdentityLink(groupsInstance.getId(), "testGroup", "otherLink"); + + assertThat(cmmnRuntimeService.createCaseInstanceQuery() + .or().involvedUser("kermit", "specialLink").involvedGroup("sales", "specialLink").endOr() + .list()) + .extracting(CaseInstance::getId) + .containsExactlyInAnyOrder(userTypeInstance.getId(), groupTypeInstance.getId()); + + assertThat(cmmnRuntimeService.createCaseInstanceQuery() + .or().involvedUser("kermit", "specialLink").involvedGroups(Set.of("testGroup")).endOr() + .list()) + .extracting(CaseInstance::getId) + .containsExactlyInAnyOrder(userTypeInstance.getId(), groupsInstance.getId()); + + assertThat(cmmnRuntimeService.createCaseInstanceQuery() + .or().involvedUser("kermit").involvedGroup("sales", "specialLink").involvedGroups(Set.of("testGroup")).endOr() + .list()) + .extracting(CaseInstance::getId) + .containsExactlyInAnyOrder(userTypeInstance.getId(), userOtherTypeInstance.getId(), groupTypeInstance.getId(), groupsInstance.getId()); + + assertThat(cmmnRuntimeService.createCaseInstanceQuery() + .or() + .involvedUser("kermit", "specialLink") + .involvedGroup("sales", "specialLink") + .involvedGroups(Set.of("testGroup")) + .caseInstanceId(groupOtherTypeInstance.getId()) + .endOr() + .count()) + .isEqualTo(4); + + assertThat(cmmnRuntimeService.createCaseInstanceQuery() + .or().involvedUser("kermit", "wrongType").involvedGroup("sales", "wrongType").endOr() + .count()) + .isZero(); + } + + protected CaseInstance startOneTaskCase() { + return cmmnRuntimeService.createCaseInstanceBuilder() + .caseDefinitionKey("oneTaskCase") + .start(); + } + @Test public void getCaseInstanceByInvolvedGroupOrUser() { CaseInstance caseInstance = cmmnRuntimeService.createCaseInstanceBuilder() diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/Execution.xml b/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/Execution.xml index 291d52fdd4e..b65ad7dbe27 100644 --- a/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/Execution.xml +++ b/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/Execution.xml @@ -1362,33 +1362,31 @@ and A.END_TIME_ is null) - - or EXISTS(select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.PROC_INST_ID_ = RES.ID_ and I.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR}) - - - or EXISTS(select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.PROC_INST_ID_ = RES.ID_ and - I.USER_ID_ = #{orQueryObject.involvedUserIdentityLink.userId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedUserIdentityLink.type, jdbcType=NVARCHAR}) - - - or EXISTS(select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.PROC_INST_ID_ = RES.ID_ and - ( - - - or + + + or EXISTS(select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.PROC_INST_ID_ = RES.ID_ and + + + or I.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} - I.GROUP_ID_ IN - - #{groupId, jdbcType=NVARCHAR} - - - ) + + or (I.USER_ID_ = #{orQueryObject.involvedUserIdentityLink.userId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedUserIdentityLink.type, jdbcType=NVARCHAR}) + + + + or I.GROUP_ID_ IN + + #{groupId, jdbcType=NVARCHAR} + + + + + or (I.GROUP_ID_ = #{orQueryObject.involvedGroupIdentityLink.groupId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedGroupIdentityLink.type, jdbcType=NVARCHAR}) + + ) - - or EXISTS(select ID_ from ${prefix}ACT_RU_IDENTITYLINK I where I.PROC_INST_ID_ = RES.ID_ and - I.GROUP_ID_ = #{orQueryObject.involvedGroupIdentityLink.groupId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedGroupIdentityLink.type, jdbcType=NVARCHAR}) - or diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/HistoricProcessInstance.xml b/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/HistoricProcessInstance.xml index d259d25f1e9..93d60585f1a 100644 --- a/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/HistoricProcessInstance.xml +++ b/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/HistoricProcessInstance.xml @@ -1142,34 +1142,32 @@ and A.END_TIME_ is null) - - or (exists(select LINK.USER_ID_ from ${prefix}ACT_HI_IDENTITYLINK LINK where USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} and LINK.PROC_INST_ID_ = ${queryTablePrefix}ID_)) - - - or EXISTS(select ID_ from ${prefix}ACT_HI_IDENTITYLINK I where I.PROC_INST_ID_ = ${queryTablePrefix}ID_ and - I.USER_ID_ = #{orQueryObject.involvedUserIdentityLink.userId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedUserIdentityLink.type, jdbcType=NVARCHAR}) - - + + or EXISTS( - select ID_ from ${prefix}ACT_HI_IDENTITYLINK LINK where LINK.PROC_INST_ID_ = ${queryTablePrefix}ID_ and - ( - - - or + select ID_ from ${prefix}ACT_HI_IDENTITYLINK LINK where LINK.PROC_INST_ID_ = ${queryTablePrefix}ID_ and + + + or LINK.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} - LINK.GROUP_ID_ IN - - #{group, jdbcType=NVARCHAR} - - - ) + + or (LINK.USER_ID_ = #{orQueryObject.involvedUserIdentityLink.userId, jdbcType=NVARCHAR} and LINK.TYPE_ = #{orQueryObject.involvedUserIdentityLink.type, jdbcType=NVARCHAR}) + + + + or LINK.GROUP_ID_ IN + + #{group, jdbcType=NVARCHAR} + + + + + or (LINK.GROUP_ID_ = #{orQueryObject.involvedGroupIdentityLink.groupId, jdbcType=NVARCHAR} and LINK.TYPE_ = #{orQueryObject.involvedGroupIdentityLink.type, jdbcType=NVARCHAR}) + + ) - - or EXISTS(select ID_ from ${prefix}ACT_HI_IDENTITYLINK I where I.PROC_INST_ID_ = ${queryTablePrefix}ID_ and - I.GROUP_ID_ = #{orQueryObject.involvedGroupIdentityLink.groupId, jdbcType=NVARCHAR} and I.TYPE_ = #{orQueryObject.involvedGroupIdentityLink.type, jdbcType=NVARCHAR}) - or ${queryTablePrefix}START_USER_ID_ = #{orQueryObject.startedBy, jdbcType=NVARCHAR} diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/ProcessDefinition.xml b/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/ProcessDefinition.xml index 33eda936fa0..71d5b475e9c 100644 --- a/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/ProcessDefinition.xml +++ b/modules/flowable-engine/src/main/resources/org/flowable/db/mapping/entity/ProcessDefinition.xml @@ -268,28 +268,27 @@ and exists(select 1 from ${prefix}ACT_RU_EVENT_SUBSCR EVT where RES.ID_ = EVT.CONFIGURATION_ and EVT.EVENT_TYPE_ = #{eventSubscriptionType, jdbcType=NVARCHAR} and EVT.EVENT_NAME_ = #{eventSubscriptionName, jdbcType=NVARCHAR}) - AND + + AND exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.PROC_DEF_ID_ = RES.ID_ and - exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.PROC_DEF_ID_ = RES.ID_ and IDN.USER_ID_ = #{authorizationUserId, jdbcType=NVARCHAR}) + IDN.USER_ID_ = #{authorizationUserId, jdbcType=NVARCHAR} - - OR exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.PROC_DEF_ID_ = RES.ID_ and - ( - - - or - - IDN.GROUP_ID_ IN - - #{groupId, jdbcType=NVARCHAR} - - - ) - ) + + OR + + + or + + IDN.GROUP_ID_ IN + + #{groupId, jdbcType=NVARCHAR} + + + ) diff --git a/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/mgmt/ExternalWorkerJobQueryTest.java b/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/mgmt/ExternalWorkerJobQueryTest.java index a08ab858d40..e6b6ccb48eb 100755 --- a/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/mgmt/ExternalWorkerJobQueryTest.java +++ b/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/mgmt/ExternalWorkerJobQueryTest.java @@ -564,7 +564,76 @@ public void testAcquireForUserOrGroups() { .extracting(ExternalWorkerJob::getId) .containsExactlyInAnyOrder(userAndGroupJob.getId()); } - + + @Test + @Deployment(resources = "org/flowable/engine/test/api/mgmt/ExternalWorkerJobQueryTest.bpmn20.xml") + public void testOrQueryForUserOrGroups() { + runtimeService.createProcessInstanceBuilder() + .processDefinitionKey("externalWorkerJobQueryTest") + .start(); + + runtimeService.createProcessInstanceBuilder() + .processDefinitionKey("externalWorkerJobQueryTest") + .start(); + + List jobs = managementService.createExternalWorkerJobQuery().list(); + assertThat(jobs).hasSize(4); + + ExternalWorkerJob onlyUserJob = jobs.get(0); + ExternalWorkerJob onlyGroupJob = jobs.get(1); + ExternalWorkerJob userAndGroupJob = jobs.get(2); + ExternalWorkerJob noLinkJob = jobs.get(3); + + addUserIdentityLinkToJob(onlyUserJob, "gonzo"); + addGroupIdentityLinkToJob(onlyGroupJob, "bears"); + addGroupIdentityLinkToJob(userAndGroupJob, "frogs"); + addUserIdentityLinkToJob(userAndGroupJob, "fozzie"); + + assertThat(managementService.createExternalWorkerJobQuery() + .or() + .forUserOrGroups("kermit", Collections.singleton("muppets")) + .jobId("invalid") + .endOr() + .list()) + .isEmpty(); + + assertThat(managementService.createExternalWorkerJobQuery() + .or() + .forUserOrGroups("gonzo", Collections.singleton("bears")) + .jobId("invalid") + .endOr() + .list()) + .extracting(ExternalWorkerJob::getId) + .containsExactlyInAnyOrder(onlyUserJob.getId(), onlyGroupJob.getId()); + + assertThat(managementService.createExternalWorkerJobQuery() + .or() + .forUserOrGroups("fozzie", Collections.singleton("bears")) + .jobId(noLinkJob.getId()) + .endOr() + .list()) + .extracting(ExternalWorkerJob::getId) + .containsExactlyInAnyOrder(onlyGroupJob.getId(), userAndGroupJob.getId(), noLinkJob.getId()); + + assertThat(managementService.createExternalWorkerJobQuery() + .or() + .forUserOrGroups(null, Collections.singleton("frogs")) + .jobId("invalid") + .endOr() + .list()) + .extracting(ExternalWorkerJob::getId) + .containsExactlyInAnyOrder(userAndGroupJob.getId()); + + assertThat(managementService.createExternalWorkerJobQuery() + .or() + .forUserOrGroups("gonzo", Collections.emptyList()) + .jobId("invalid") + .endOr() + .list()) + .extracting(ExternalWorkerJob::getId) + .containsExactlyInAnyOrder(onlyUserJob.getId()); + } + @Test @Deployment(resources = "org/flowable/engine/test/api/mgmt/ExternalWorkerJobQueryTest.bpmn20.xml") public void testUnaquireWithJobId() { diff --git a/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/runtime/InstanceInvolvementTest.java b/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/runtime/InstanceInvolvementTest.java index 143798fb90e..1e772719681 100644 --- a/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/runtime/InstanceInvolvementTest.java +++ b/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/runtime/InstanceInvolvementTest.java @@ -24,6 +24,7 @@ import org.flowable.common.engine.impl.AbstractEngineConfiguration; import org.flowable.common.engine.impl.history.HistoryLevel; +import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.history.HistoricProcessInstanceQuery; import org.flowable.engine.impl.test.HistoryTestHelper; import org.flowable.engine.impl.test.PluggableFlowableTestCase; @@ -401,6 +402,162 @@ public void testOrOneInvolvedUserTogetherWithGroup() { involvedUser("kermit").involvedGroups(Collections.singleton("testGroup")).endOr().count()).isEqualTo(1); } + @Test + @Deployment(resources = { "org/flowable/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" }) + public void testOrInvolvedUserOrGroupsInMultiple() { + ProcessInstance userInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); + runtimeService.addUserIdentityLink(userInstance.getId(), "kermit", IdentityLinkType.PARTICIPANT); + ProcessInstance groupInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); + runtimeService.addGroupIdentityLink(groupInstance.getId(), "testGroup2", IdentityLinkType.CANDIDATE); + ProcessInstance otherInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); + runtimeService.addUserIdentityLink(otherInstance.getId(), "gonzo", IdentityLinkType.PARTICIPANT); + runtimeService.addGroupIdentityLink(otherInstance.getId(), "otherGroup", IdentityLinkType.PARTICIPANT); + + Set groups = Set.of("testGroup", "testGroup2"); + assertThat(runtimeService.createProcessInstanceQuery().or().involvedUser("kermit").involvedGroups(groups).endOr().list()) + .extracting(ProcessInstance::getId) + .containsExactlyInAnyOrder(userInstance.getId(), groupInstance.getId()); + assertThat(runtimeService.createProcessInstanceQuery().or().involvedUser("kermit").involvedGroups(groups).endOr().count()) + .isEqualTo(2); + + assertThat(runtimeService.createProcessInstanceQuery() + .or().involvedUser("kermit").involvedGroups(groups).processInstanceId(otherInstance.getId()).endOr() + .list()) + .extracting(ProcessInstance::getId) + .containsExactlyInAnyOrder(userInstance.getId(), groupInstance.getId(), otherInstance.getId()); + + assertThat(runtimeService.createProcessInstanceQuery() + .processInstanceId(groupInstance.getId()) + .or().involvedUser("kermit").involvedGroups(groups).endOr() + .list()) + .extracting(ProcessInstance::getId) + .containsExactly(groupInstance.getId()); + + assertThat(runtimeService.createProcessInstanceQuery().or().involvedUser("fozzie").involvedGroups(Set.of("unknownGroup")).endOr().count()) + .isZero(); + } + + @Test + @Deployment(resources = { "org/flowable/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" }) + public void testHistoryOrInvolvedUserOrGroupsInMultiple() { + ProcessInstance userInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); + runtimeService.addUserIdentityLink(userInstance.getId(), "kermit", IdentityLinkType.PARTICIPANT); + ProcessInstance groupInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); + runtimeService.addGroupIdentityLink(groupInstance.getId(), "testGroup2", IdentityLinkType.CANDIDATE); + ProcessInstance otherInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); + runtimeService.addUserIdentityLink(otherInstance.getId(), "gonzo", IdentityLinkType.PARTICIPANT); + runtimeService.addGroupIdentityLink(otherInstance.getId(), "otherGroup", IdentityLinkType.PARTICIPANT); + taskService.complete(taskService.createTaskQuery().processInstanceId(groupInstance.getId()).singleResult().getId()); + + if (HistoryTestHelper.isHistoryLevelAtLeast(HistoryLevel.AUDIT, processEngineConfiguration)) { + Set groups = Set.of("testGroup", "testGroup2"); + assertThat(historyService.createHistoricProcessInstanceQuery().or().involvedUser("kermit").involvedGroups(groups).endOr().list()) + .extracting(HistoricProcessInstance::getId) + .containsExactlyInAnyOrder(userInstance.getId(), groupInstance.getId()); + assertThat(historyService.createHistoricProcessInstanceQuery().or().involvedUser("kermit").involvedGroups(groups).endOr().count()) + .isEqualTo(2); + + assertThat(historyService.createHistoricProcessInstanceQuery() + .or().involvedUser("kermit").involvedGroups(groups).processInstanceId(otherInstance.getId()).endOr() + .list()) + .extracting(HistoricProcessInstance::getId) + .containsExactlyInAnyOrder(userInstance.getId(), groupInstance.getId(), otherInstance.getId()); + + assertThat(historyService.createHistoricProcessInstanceQuery() + .finished() + .or().involvedUser("kermit").involvedGroups(groups).endOr() + .list()) + .extracting(HistoricProcessInstance::getId) + .containsExactly(groupInstance.getId()); + + assertThat(historyService.createHistoricProcessInstanceQuery().or().involvedUser("fozzie").involvedGroups(Set.of("unknownGroup")).endOr().count()) + .isZero(); + } + } + + @Test + @Deployment(resources = { "org/flowable/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" }) + public void testOrInvolvedUsersAndGroupsWithIdentityLinkTypes() { + ProcessInstance userTypeInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); + runtimeService.addUserIdentityLink(userTypeInstance.getId(), "kermit", "specialLink"); + ProcessInstance userOtherTypeInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); + runtimeService.addUserIdentityLink(userOtherTypeInstance.getId(), "kermit", "otherLink"); + ProcessInstance groupTypeInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); + runtimeService.addGroupIdentityLink(groupTypeInstance.getId(), "sales", "specialLink"); + ProcessInstance groupOtherTypeInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); + runtimeService.addGroupIdentityLink(groupOtherTypeInstance.getId(), "sales", "otherLink"); + ProcessInstance groupsInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); + runtimeService.addGroupIdentityLink(groupsInstance.getId(), "testGroup", "otherLink"); + + assertThat(runtimeService.createProcessInstanceQuery() + .or().involvedUser("kermit", "specialLink").involvedGroup("sales", "specialLink").endOr() + .list()) + .extracting(ProcessInstance::getId) + .containsExactlyInAnyOrder(userTypeInstance.getId(), groupTypeInstance.getId()); + + assertThat(runtimeService.createProcessInstanceQuery() + .or().involvedUser("kermit", "specialLink").involvedGroups(Set.of("testGroup")).endOr() + .list()) + .extracting(ProcessInstance::getId) + .containsExactlyInAnyOrder(userTypeInstance.getId(), groupsInstance.getId()); + + assertThat(runtimeService.createProcessInstanceQuery() + .or().involvedUser("kermit").involvedGroup("sales", "specialLink").involvedGroups(Set.of("testGroup")).endOr() + .list()) + .extracting(ProcessInstance::getId) + .containsExactlyInAnyOrder(userTypeInstance.getId(), userOtherTypeInstance.getId(), groupTypeInstance.getId(), groupsInstance.getId()); + + assertThat(runtimeService.createProcessInstanceQuery() + .or() + .involvedUser("kermit", "specialLink") + .involvedGroup("sales", "specialLink") + .involvedGroups(Set.of("testGroup")) + .processInstanceId(groupOtherTypeInstance.getId()) + .endOr() + .count()) + .isEqualTo(4); + + assertThat(runtimeService.createProcessInstanceQuery() + .or().involvedUser("kermit", "wrongType").involvedGroup("sales", "wrongType").endOr() + .count()) + .isZero(); + + if (HistoryTestHelper.isHistoryLevelAtLeast(HistoryLevel.AUDIT, processEngineConfiguration)) { + assertThat(historyService.createHistoricProcessInstanceQuery() + .or().involvedUser("kermit", "specialLink").involvedGroup("sales", "specialLink").endOr() + .list()) + .extracting(HistoricProcessInstance::getId) + .containsExactlyInAnyOrder(userTypeInstance.getId(), groupTypeInstance.getId()); + + assertThat(historyService.createHistoricProcessInstanceQuery() + .or().involvedUser("kermit", "specialLink").involvedGroups(Set.of("testGroup")).endOr() + .list()) + .extracting(HistoricProcessInstance::getId) + .containsExactlyInAnyOrder(userTypeInstance.getId(), groupsInstance.getId()); + + assertThat(historyService.createHistoricProcessInstanceQuery() + .or().involvedUser("kermit").involvedGroup("sales", "specialLink").involvedGroups(Set.of("testGroup")).endOr() + .list()) + .extracting(HistoricProcessInstance::getId) + .containsExactlyInAnyOrder(userTypeInstance.getId(), userOtherTypeInstance.getId(), groupTypeInstance.getId(), groupsInstance.getId()); + + assertThat(historyService.createHistoricProcessInstanceQuery() + .or() + .involvedUser("kermit", "specialLink") + .involvedGroup("sales", "specialLink") + .involvedGroups(Set.of("testGroup")) + .processInstanceId(groupOtherTypeInstance.getId()) + .endOr() + .count()) + .isEqualTo(4); + + assertThat(historyService.createHistoricProcessInstanceQuery() + .or().involvedUser("kermit", "wrongType").involvedGroup("sales", "wrongType").endOr() + .count()) + .isZero(); + } + } + @Test @Deployment(resources = { "org/flowable/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" }) public void testInvolvedGroupsWithHistoricProcessInstance() { diff --git a/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/task/TaskQueryTest.java b/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/task/TaskQueryTest.java index ba0ea516879..5afbb81bd67 100644 --- a/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/task/TaskQueryTest.java +++ b/modules/flowable-engine/src/test/java/org/flowable/engine/test/api/task/TaskQueryTest.java @@ -27,6 +27,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; import org.flowable.common.engine.api.FlowableException; import org.flowable.common.engine.api.FlowableIllegalArgumentException; @@ -904,6 +905,52 @@ public void testQueryByInvolvedGroupOrOwner() { } } + @Test + public void testQueryByOrInvolvedUserOrInvolvedGroups() { + try { + Task userLinkTask = taskService.newTask(); + taskService.saveTask(userLinkTask); + taskService.addUserIdentityLink(userLinkTask.getId(), "involvedUser", IdentityLinkType.PARTICIPANT); + Task groupLinkTask = taskService.newTask(); + taskService.saveTask(groupLinkTask); + taskService.addGroupIdentityLink(groupLinkTask.getId(), "involvedGroup2", IdentityLinkType.CANDIDATE); + Task assigneeTask = taskService.newTask(); + assigneeTask.setAssignee("involvedUser"); + taskService.saveTask(assigneeTask); + Task ownerTask = taskService.newTask(); + ownerTask.setOwner("involvedUser"); + taskService.saveTask(ownerTask); + Task otherTask = taskService.newTask(); + taskService.saveTask(otherTask); + taskService.addUserIdentityLink(otherTask.getId(), "otherUser", IdentityLinkType.PARTICIPANT); + taskService.addGroupIdentityLink(otherTask.getId(), "otherGroup", IdentityLinkType.CANDIDATE); + + Set groups = Set.of("involvedGroup1", "involvedGroup2"); + assertThat(taskService.createTaskQuery().or().taskInvolvedUser("involvedUser").taskInvolvedGroups(groups).endOr().list()) + .extracting(Task::getId) + .containsExactlyInAnyOrder(userLinkTask.getId(), groupLinkTask.getId(), assigneeTask.getId(), ownerTask.getId()); + assertThat(taskService.createTaskQuery().or().taskInvolvedUser("involvedUser").taskInvolvedGroups(groups).endOr().count()) + .isEqualTo(4); + assertThat(taskService.createTaskQuery().or().taskInvolvedUser("involvedUser").taskInvolvedGroups(groups).taskId(otherTask.getId()).endOr().list()) + .extracting(Task::getId) + .containsExactlyInAnyOrder(userLinkTask.getId(), groupLinkTask.getId(), assigneeTask.getId(), ownerTask.getId(), otherTask.getId()); + assertThat(taskService.createTaskQuery().or().taskInvolvedUser("unknownUser").taskInvolvedGroups(Set.of("unknownGroup")).endOr().count()) + .isZero(); + + if (isHistoryLevelAtLeast(HistoryLevel.AUDIT)) { + assertThat(historyService.createHistoricTaskInstanceQuery().or().taskInvolvedUser("involvedUser").taskInvolvedGroups(groups).endOr().list()) + .extracting(HistoricTaskInstance::getId) + .containsExactlyInAnyOrder(userLinkTask.getId(), groupLinkTask.getId(), assigneeTask.getId(), ownerTask.getId()); + assertThat(historyService.createHistoricTaskInstanceQuery().or().taskInvolvedUser("unknownUser").taskInvolvedGroups(Set.of("unknownGroup")) + .endOr().count()) + .isZero(); + } + + } finally { + deleteAllTasks(); + } + } + @Test public void testQueryByInvolvedGroupAndAssignee() { try { diff --git a/modules/flowable-job-service/src/main/resources/org/flowable/job/service/db/mapping/entity/ExternalWorkerJob.xml b/modules/flowable-job-service/src/main/resources/org/flowable/job/service/db/mapping/entity/ExternalWorkerJob.xml index 1f65b54fda1..13f72d30c22 100755 --- a/modules/flowable-job-service/src/main/resources/org/flowable/job/service/db/mapping/entity/ExternalWorkerJob.xml +++ b/modules/flowable-job-service/src/main/resources/org/flowable/job/service/db/mapping/entity/ExternalWorkerJob.xml @@ -86,19 +86,23 @@ - - - exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and IDN.USER_ID_ = #{parameter.authorizedUser, jdbcType=NVARCHAR}) - - - OR exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and IDN.GROUP_ID_ IN - - #{groupId, jdbcType=NVARCHAR} - - ) - - + + + and exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and + + + IDN.USER_ID_ = #{parameter.authorizedUser, jdbcType=NVARCHAR} + + + OR IDN.GROUP_ID_ IN + + #{groupId, jdbcType=NVARCHAR} + + + + ) + and LOCK_EXP_TIME_ is null ${orderBy} @@ -292,19 +296,23 @@ and (RES.SCOPE_TYPE_ = '' or RES.SCOPE_TYPE_ is null) - - - exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and IDN.USER_ID_ = #{authorizedUser, jdbcType=NVARCHAR}) - - - OR exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and IDN.GROUP_ID_ IN - - #{groupId, jdbcType=NVARCHAR} - - ) - - + + + and exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and + + + IDN.USER_ID_ = #{authorizedUser, jdbcType=NVARCHAR} + + + OR IDN.GROUP_ID_ IN + + #{groupId, jdbcType=NVARCHAR} + + + + ) + and @@ -427,20 +435,20 @@ or (RES.SCOPE_TYPE_ = '' or RES.SCOPE_TYPE_ is null) - or + or exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and - exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and IDN.USER_ID_ = #{orQueryObject.authorizedUser, jdbcType=NVARCHAR}) + IDN.USER_ID_ = #{orQueryObject.authorizedUser, jdbcType=NVARCHAR} - OR exists (select ID_ from ${prefix}ACT_RU_IDENTITYLINK IDN where IDN.SCOPE_ID_ = RES.CORRELATION_ID_ and IDN.SCOPE_TYPE_ = 'externalWorker' and IDN.GROUP_ID_ IN + OR IDN.GROUP_ID_ IN #{groupId, jdbcType=NVARCHAR} - ) + ) diff --git a/modules/flowable-task-service/src/main/resources/org/flowable/task/service/db/mapping/entity/HistoricTaskInstance.xml b/modules/flowable-task-service/src/main/resources/org/flowable/task/service/db/mapping/entity/HistoricTaskInstance.xml index 0bfd6acdaa6..31f726aba4b 100644 --- a/modules/flowable-task-service/src/main/resources/org/flowable/task/service/db/mapping/entity/HistoricTaskInstance.xml +++ b/modules/flowable-task-service/src/main/resources/org/flowable/task/service/db/mapping/entity/HistoricTaskInstance.xml @@ -1862,30 +1862,36 @@ ) - - or ( - EXISTS(select LINK.ID_ from ${prefix}ACT_HI_IDENTITYLINK LINK where LINK.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} and LINK.TASK_ID_ = ${queryTablePrefix}ID_) - or ${queryTablePrefix}ASSIGNEE_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} - or ${queryTablePrefix}OWNER_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} - ) - - + + or - EXISTS(select ID_ from ${prefix}ACT_HI_IDENTITYLINK LINK where LINK.TASK_ID_ = ${queryTablePrefix}ID_ and + EXISTS(select LINK.ID_ from ${prefix}ACT_HI_IDENTITYLINK LINK where LINK.TASK_ID_ = ${queryTablePrefix}ID_ and ( - - - or - - LINK.GROUP_ID_ IN - - #{group, jdbcType=NVARCHAR} + + LINK.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} + + + or + + + + + or + + LINK.GROUP_ID_ IN + + #{group, jdbcType=NVARCHAR} + - + ) ) + + or ${queryTablePrefix}ASSIGNEE_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} + or ${queryTablePrefix}OWNER_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} + or EXISTS(select 1 from ${prefix}ACT_HI_ENTITYLINK LINK where LINK.SCOPE_ID_ = #{orQueryObject.parentScopeId, jdbcType=NVARCHAR} diff --git a/modules/flowable-task-service/src/main/resources/org/flowable/task/service/db/mapping/entity/Task.xml b/modules/flowable-task-service/src/main/resources/org/flowable/task/service/db/mapping/entity/Task.xml index 673a26fb924..3a8e1942f27 100644 --- a/modules/flowable-task-service/src/main/resources/org/flowable/task/service/db/mapping/entity/Task.xml +++ b/modules/flowable-task-service/src/main/resources/org/flowable/task/service/db/mapping/entity/Task.xml @@ -1484,31 +1484,35 @@ ) ) - - or ( - exists(select LINK.ID_ from ${prefix}ACT_RU_IDENTITYLINK LINK where LINK.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} and LINK.TASK_ID_ = RES.ID_) - or RES.ASSIGNEE_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} - or RES.OWNER_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} - ) - - - or ( - EXISTS(select LINK.ID_ from ${prefix}ACT_RU_IDENTITYLINK LINK where LINK.TASK_ID_ = RES.ID_ and + + + or EXISTS(select LINK.ID_ from ${prefix}ACT_RU_IDENTITYLINK LINK where LINK.TASK_ID_ = RES.ID_ and ( - - + + LINK.USER_ID_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} + + or - - LINK.GROUP_ID_ IN - - #{groupId, jdbcType=NVARCHAR} + + + + + or + + LINK.GROUP_ID_ IN + + #{groupId, jdbcType=NVARCHAR} + - + ) - ) ) + + or RES.ASSIGNEE_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} + or RES.OWNER_ = #{orQueryObject.involvedUser, jdbcType=NVARCHAR} + or EXISTS(select 1 from ${prefix}ACT_RU_ENTITYLINK LINK where LINK.SCOPE_ID_ = #{orQueryObject.parentScopeId, jdbcType=NVARCHAR} From e96989792acc8201fdfc08d59e89f3b27ae62e70 Mon Sep 17 00:00:00 2001 From: Filip Hrisafov Date: Fri, 16 Oct 2026 00:23:43 +0200 Subject: [PATCH 2/2] Add an index on GROUP_ID_ of ACT_HI_IDENTITYLINK ACT_RU_IDENTITYLINK has an index on GROUP_ID_, but ACT_HI_IDENTITYLINK only has one on USER_ID_. Historic process, case and task queries that restrict by involved groups therefore had to scan the whole historic identity link table instead of looking up the matching links. --- .../org/flowable/app/db/create/flowable.db2.create.app.sql | 2 +- .../org/flowable/app/db/create/flowable.h2.create.app.sql | 2 +- .../org/flowable/app/db/create/flowable.mssql.create.app.sql | 2 +- .../org/flowable/app/db/create/flowable.mysql.create.app.sql | 2 +- .../org/flowable/app/db/create/flowable.oracle.create.app.sql | 2 +- .../flowable/app/db/create/flowable.postgres.create.app.sql | 2 +- .../db/upgrade/flowable.all.upgradestep.8102.to.8103.app.sql | 1 + .../flowable/test/persistence/SqlUpgradeValidationTest.java | 3 ++- .../org/flowable/cmmn/db/create/flowable.db2.create.cmmn.sql | 2 +- .../org/flowable/cmmn/db/create/flowable.h2.create.cmmn.sql | 2 +- .../org/flowable/cmmn/db/create/flowable.hsql.create.cmmn.sql | 2 +- .../org/flowable/cmmn/db/create/flowable.mssql.create.cmmn.sql | 2 +- .../org/flowable/cmmn/db/create/flowable.mysql.create.cmmn.sql | 2 +- .../flowable/cmmn/db/create/flowable.oracle.create.cmmn.sql | 2 +- .../flowable/cmmn/db/create/flowable.postgres.create.cmmn.sql | 2 +- .../db/upgrade/flowable.all.upgradestep.8102.to.8103.cmmn.sql | 1 + .../org/flowable/dmn/db/create/flowable.db2.create.dmn.sql | 2 +- .../org/flowable/dmn/db/create/flowable.h2.create.dmn.sql | 2 +- .../org/flowable/dmn/db/create/flowable.mssql.create.dmn.sql | 2 +- .../org/flowable/dmn/db/create/flowable.mysql.create.dmn.sql | 2 +- .../org/flowable/dmn/db/create/flowable.oracle.create.dmn.sql | 2 +- .../flowable/dmn/db/create/flowable.postgres.create.dmn.sql | 2 +- .../db/upgrade/flowable.all.upgradestep.8102.to.8103.dmn.sql | 1 + .../java/org/flowable/common/engine/impl/FlowableVersions.java | 3 ++- .../common/db/create/flowable.cockroachdb.create.common.sql | 2 +- .../flowable/common/db/create/flowable.db2.create.common.sql | 3 ++- .../flowable/common/db/create/flowable.h2.create.common.sql | 3 ++- .../flowable/common/db/create/flowable.hsql.create.common.sql | 3 ++- .../flowable/common/db/create/flowable.mssql.create.common.sql | 3 ++- .../flowable/common/db/create/flowable.mysql.create.common.sql | 3 ++- .../common/db/create/flowable.oracle.create.common.sql | 3 ++- .../common/db/create/flowable.postgres.create.common.sql | 3 ++- .../org/flowable/common/db/drop/flowable.db2.drop.common.sql | 1 + .../org/flowable/common/db/drop/flowable.h2.drop.common.sql | 1 + .../org/flowable/common/db/drop/flowable.hsql.drop.common.sql | 1 + .../org/flowable/common/db/drop/flowable.mssql.drop.common.sql | 1 + .../org/flowable/common/db/drop/flowable.mysql.drop.common.sql | 1 + .../flowable/common/db/drop/flowable.oracle.drop.common.sql | 1 + .../upgrade/flowable.db2.upgradestep.8102.to.8103.common.sql | 3 +++ .../db/upgrade/flowable.h2.upgradestep.8102.to.8103.common.sql | 3 +++ .../upgrade/flowable.hsql.upgradestep.8102.to.8103.common.sql | 3 +++ .../upgrade/flowable.mssql.upgradestep.8102.to.8103.common.sql | 3 +++ .../upgrade/flowable.mysql.upgradestep.8102.to.8103.common.sql | 3 +++ .../flowable.oracle.upgradestep.8102.to.8103.common.sql | 3 +++ .../flowable.postgres.upgradestep.8102.to.8103.common.sql | 3 +++ .../flowable/db/create/flowable.cockroachdb.create.engine.sql | 2 +- .../org/flowable/db/create/flowable.db2.create.engine.sql | 2 +- .../org/flowable/db/create/flowable.h2.create.engine.sql | 2 +- .../org/flowable/db/create/flowable.hsql.create.engine.sql | 2 +- .../org/flowable/db/create/flowable.mssql.create.engine.sql | 2 +- .../org/flowable/db/create/flowable.mysql.create.engine.sql | 2 +- .../org/flowable/db/create/flowable.oracle.create.engine.sql | 2 +- .../org/flowable/db/create/flowable.postgres.create.engine.sql | 2 +- .../upgrade/flowable.all.upgradestep.8102.to.8103.engine.sql | 1 + .../db/create/flowable.db2.create.eventregistry.sql | 2 +- .../db/create/flowable.h2.create.eventregistry.sql | 2 +- .../db/create/flowable.mssql.create.eventregistry.sql | 2 +- .../db/create/flowable.mysql.create.eventregistry.sql | 2 +- .../db/create/flowable.oracle.create.eventregistry.sql | 2 +- .../db/create/flowable.postgres.create.eventregistry.sql | 2 +- .../flowable.all.upgradestep.8102.to.8103.eventregistry.sql | 1 + .../idm/db/create/flowable.cockroachdb.create.identity.sql | 2 +- .../flowable/idm/db/create/flowable.db2.create.identity.sql | 2 +- .../org/flowable/idm/db/create/flowable.h2.create.identity.sql | 2 +- .../flowable/idm/db/create/flowable.hsql.create.identity.sql | 2 +- .../flowable/idm/db/create/flowable.mssql.create.identity.sql | 2 +- .../flowable/idm/db/create/flowable.mysql.create.identity.sql | 2 +- .../flowable/idm/db/create/flowable.oracle.create.identity.sql | 2 +- .../idm/db/create/flowable.postgres.create.identity.sql | 2 +- .../upgrade/flowable.all.upgradestep.8102.to.8103.identity.sql | 1 + 70 files changed, 93 insertions(+), 51 deletions(-) create mode 100644 modules/flowable-app-engine/src/main/resources/org/flowable/app/db/upgrade/flowable.all.upgradestep.8102.to.8103.app.sql create mode 100644 modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/upgrade/flowable.all.upgradestep.8102.to.8103.cmmn.sql create mode 100644 modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/upgrade/flowable.all.upgradestep.8102.to.8103.dmn.sql create mode 100644 modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.db2.upgradestep.8102.to.8103.common.sql create mode 100644 modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.h2.upgradestep.8102.to.8103.common.sql create mode 100644 modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.hsql.upgradestep.8102.to.8103.common.sql create mode 100644 modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.mssql.upgradestep.8102.to.8103.common.sql create mode 100644 modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.mysql.upgradestep.8102.to.8103.common.sql create mode 100644 modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.oracle.upgradestep.8102.to.8103.common.sql create mode 100644 modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.postgres.upgradestep.8102.to.8103.common.sql create mode 100644 modules/flowable-engine/src/main/resources/org/flowable/db/upgrade/flowable.all.upgradestep.8102.to.8103.engine.sql create mode 100644 modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/upgrade/flowable.all.upgradestep.8102.to.8103.eventregistry.sql create mode 100644 modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/upgrade/flowable.all.upgradestep.8102.to.8103.identity.sql diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.db2.create.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.db2.create.app.sql index f54aa4e0723..1623d6456e9 100644 --- a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.db2.create.app.sql +++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.db2.create.app.sql @@ -15,4 +15,4 @@ CREATE INDEX ACT_IDX_APP_DEF_DPLY ON ACT_APP_APPDEF(DEPLOYMENT_ID_); CREATE UNIQUE INDEX ACT_IDX_APP_DEF_UNIQ ON ACT_APP_APPDEF(KEY_, VERSION_, TENANT_ID_); insert into ACT_GE_PROPERTY -values ('app.schema.version', '8.1.0.2', 1); +values ('app.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.h2.create.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.h2.create.app.sql index f434a1822d9..594d7279a93 100644 --- a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.h2.create.app.sql +++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.h2.create.app.sql @@ -15,4 +15,4 @@ CREATE INDEX ACT_IDX_APP_DEF_DPLY ON ACT_APP_APPDEF(DEPLOYMENT_ID_); CREATE UNIQUE INDEX ACT_IDX_APP_DEF_UNIQ ON ACT_APP_APPDEF(KEY_, VERSION_, TENANT_ID_); insert into ACT_GE_PROPERTY -values ('app.schema.version', '8.1.0.2', 1); +values ('app.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.mssql.create.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.mssql.create.app.sql index 7e149d2ccea..e07acf7a1b5 100644 --- a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.mssql.create.app.sql +++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.mssql.create.app.sql @@ -15,4 +15,4 @@ CREATE NONCLUSTERED INDEX ACT_IDX_APP_DEF_DPLY ON ACT_APP_APPDEF(DEPLOYMENT_ID_) CREATE UNIQUE NONCLUSTERED INDEX ACT_IDX_APP_DEF_UNIQ ON ACT_APP_APPDEF(KEY_, VERSION_, TENANT_ID_); insert into ACT_GE_PROPERTY -values ('app.schema.version', '8.1.0.2', 1); +values ('app.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.mysql.create.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.mysql.create.app.sql index f30bf8879f8..7d3eee8e73b 100644 --- a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.mysql.create.app.sql +++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.mysql.create.app.sql @@ -17,4 +17,4 @@ ALTER TABLE ACT_APP_DEPLOYMENT MODIFY DEPLOY_TIME_ datetime(3); CREATE UNIQUE INDEX ACT_IDX_APP_DEF_UNIQ ON ACT_APP_APPDEF(KEY_, VERSION_, TENANT_ID_); insert into ACT_GE_PROPERTY -values ('app.schema.version', '8.1.0.2', 1); +values ('app.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.oracle.create.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.oracle.create.app.sql index f75cadd0dfb..7a23c9b58bb 100644 --- a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.oracle.create.app.sql +++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.oracle.create.app.sql @@ -15,4 +15,4 @@ CREATE INDEX ACT_IDX_APP_DEF_DPLY ON ACT_APP_APPDEF(DEPLOYMENT_ID_); CREATE UNIQUE INDEX ACT_IDX_APP_DEF_UNIQ ON ACT_APP_APPDEF(KEY_, VERSION_, TENANT_ID_); insert into ACT_GE_PROPERTY -values ('app.schema.version', '8.1.0.2', 1); +values ('app.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.postgres.create.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.postgres.create.app.sql index c57d8ab015b..c0bb107c4e1 100644 --- a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.postgres.create.app.sql +++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/create/flowable.postgres.create.app.sql @@ -15,4 +15,4 @@ CREATE INDEX ACT_IDX_APP_DEF_DPLY ON ACT_APP_APPDEF(DEPLOYMENT_ID_); CREATE UNIQUE INDEX ACT_IDX_APP_DEF_UNIQ ON ACT_APP_APPDEF(KEY_, VERSION_, TENANT_ID_); insert into ACT_GE_PROPERTY -values ('app.schema.version', '8.1.0.2', 1); +values ('app.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/upgrade/flowable.all.upgradestep.8102.to.8103.app.sql b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/upgrade/flowable.all.upgradestep.8102.to.8103.app.sql new file mode 100644 index 00000000000..3c1c5c02723 --- /dev/null +++ b/modules/flowable-app-engine/src/main/resources/org/flowable/app/db/upgrade/flowable.all.upgradestep.8102.to.8103.app.sql @@ -0,0 +1 @@ +update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'app.schema.version'; diff --git a/modules/flowable-app-rest/src/test/java/org/flowable/test/persistence/SqlUpgradeValidationTest.java b/modules/flowable-app-rest/src/test/java/org/flowable/test/persistence/SqlUpgradeValidationTest.java index cb29a6ecdb0..2e12bdebc79 100644 --- a/modules/flowable-app-rest/src/test/java/org/flowable/test/persistence/SqlUpgradeValidationTest.java +++ b/modules/flowable-app-rest/src/test/java/org/flowable/test/persistence/SqlUpgradeValidationTest.java @@ -35,7 +35,8 @@ class SqlUpgradeValidationTest { "7.1.0.2", "7.2.0.1", "7.2.0.2", - "8.1.0.2" + "8.1.0.2", + "8.1.0.3" ); @ParameterizedTest diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.db2.create.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.db2.create.cmmn.sql index b34f6e99ad6..62e88e88208 100644 --- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.db2.create.cmmn.sql +++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.db2.create.cmmn.sql @@ -268,4 +268,4 @@ CREATE TABLE ACT_CMMN_HI_PLAN_ITEM_INST CREATE INDEX ACT_IDX_HI_PLAN_ITEM_INST_CASE ON ACT_CMMN_HI_PLAN_ITEM_INST (CASE_INST_ID_); insert into ACT_GE_PROPERTY -values ('cmmn.schema.version', '8.1.0.2', 1); +values ('cmmn.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.h2.create.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.h2.create.cmmn.sql index 840620d6ea8..fa0fd2a57b9 100644 --- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.h2.create.cmmn.sql +++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.h2.create.cmmn.sql @@ -268,4 +268,4 @@ CREATE TABLE ACT_CMMN_HI_PLAN_ITEM_INST CREATE INDEX ACT_IDX_HI_PLAN_ITEM_INST_CASE ON ACT_CMMN_HI_PLAN_ITEM_INST (CASE_INST_ID_); insert into ACT_GE_PROPERTY -values ('cmmn.schema.version', '8.1.0.2', 1); +values ('cmmn.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.hsql.create.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.hsql.create.cmmn.sql index 840620d6ea8..fa0fd2a57b9 100644 --- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.hsql.create.cmmn.sql +++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.hsql.create.cmmn.sql @@ -268,4 +268,4 @@ CREATE TABLE ACT_CMMN_HI_PLAN_ITEM_INST CREATE INDEX ACT_IDX_HI_PLAN_ITEM_INST_CASE ON ACT_CMMN_HI_PLAN_ITEM_INST (CASE_INST_ID_); insert into ACT_GE_PROPERTY -values ('cmmn.schema.version', '8.1.0.2', 1); +values ('cmmn.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.mssql.create.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.mssql.create.cmmn.sql index 12f427bd3c9..9900bee294b 100644 --- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.mssql.create.cmmn.sql +++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.mssql.create.cmmn.sql @@ -268,4 +268,4 @@ CREATE TABLE ACT_CMMN_HI_PLAN_ITEM_INST CREATE NONCLUSTERED INDEX ACT_IDX_HI_PLAN_ITEM_INST_CASE ON ACT_CMMN_HI_PLAN_ITEM_INST(CASE_INST_ID_); insert into ACT_GE_PROPERTY -values ('cmmn.schema.version', '8.1.0.2', 1); +values ('cmmn.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.mysql.create.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.mysql.create.cmmn.sql index c74b15e194a..9fe85875027 100644 --- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.mysql.create.cmmn.sql +++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.mysql.create.cmmn.sql @@ -268,4 +268,4 @@ CREATE TABLE ACT_CMMN_HI_PLAN_ITEM_INST CREATE INDEX ACT_IDX_HI_PLAN_ITEM_INST_CASE ON ACT_CMMN_HI_PLAN_ITEM_INST (CASE_INST_ID_); insert into ACT_GE_PROPERTY -values ('cmmn.schema.version', '8.1.0.2', 1); +values ('cmmn.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.oracle.create.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.oracle.create.cmmn.sql index da331c17d2d..eb096d81cf1 100644 --- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.oracle.create.cmmn.sql +++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.oracle.create.cmmn.sql @@ -268,4 +268,4 @@ CREATE TABLE ACT_CMMN_HI_PLAN_ITEM_INST CREATE INDEX ACT_IDX_HI_PLAN_ITEM_INST_CASE ON ACT_CMMN_HI_PLAN_ITEM_INST (CASE_INST_ID_); insert into ACT_GE_PROPERTY -values ('cmmn.schema.version', '8.1.0.2', 1); +values ('cmmn.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.postgres.create.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.postgres.create.cmmn.sql index 10e6e9f0f3d..162ebcb875a 100644 --- a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.postgres.create.cmmn.sql +++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/create/flowable.postgres.create.cmmn.sql @@ -268,4 +268,4 @@ CREATE TABLE ACT_CMMN_HI_PLAN_ITEM_INST CREATE INDEX ACT_IDX_HI_PLAN_ITEM_INST_CASE ON ACT_CMMN_HI_PLAN_ITEM_INST (CASE_INST_ID_); insert into ACT_GE_PROPERTY -values ('cmmn.schema.version', '8.1.0.2', 1); +values ('cmmn.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/upgrade/flowable.all.upgradestep.8102.to.8103.cmmn.sql b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/upgrade/flowable.all.upgradestep.8102.to.8103.cmmn.sql new file mode 100644 index 00000000000..d924cf33fe5 --- /dev/null +++ b/modules/flowable-cmmn-engine/src/main/resources/org/flowable/cmmn/db/upgrade/flowable.all.upgradestep.8102.to.8103.cmmn.sql @@ -0,0 +1 @@ +update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'cmmn.schema.version'; diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.db2.create.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.db2.create.dmn.sql index ebf78d27cf1..d71beafe6da 100644 --- a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.db2.create.dmn.sql +++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.db2.create.dmn.sql @@ -16,4 +16,4 @@ CREATE UNIQUE INDEX ACT_IDX_DMN_DEC_UNIQ ON ACT_DMN_DECISION(KEY_, VERSION_, TEN CREATE INDEX ACT_IDX_DMN_INSTANCE_ID ON ACT_DMN_HI_DECISION_EXECUTION(INSTANCE_ID_); insert into ACT_GE_PROPERTY -values ('dmn.schema.version', '8.1.0.2', 1); +values ('dmn.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.h2.create.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.h2.create.dmn.sql index 5ef25020ecf..f7c4bff9a5a 100644 --- a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.h2.create.dmn.sql +++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.h2.create.dmn.sql @@ -16,4 +16,4 @@ CREATE UNIQUE INDEX ACT_IDX_DMN_DEC_UNIQ ON ACT_DMN_DECISION(KEY_, VERSION_, TEN CREATE INDEX ACT_IDX_DMN_INSTANCE_ID ON ACT_DMN_HI_DECISION_EXECUTION(INSTANCE_ID_); insert into ACT_GE_PROPERTY -values ('dmn.schema.version', '8.1.0.2', 1); +values ('dmn.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.mssql.create.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.mssql.create.dmn.sql index 66d930f625b..f95dfb4f3a4 100644 --- a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.mssql.create.dmn.sql +++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.mssql.create.dmn.sql @@ -16,4 +16,4 @@ CREATE UNIQUE NONCLUSTERED INDEX ACT_IDX_DMN_DEC_UNIQ ON ACT_DMN_DECISION(KEY_, CREATE NONCLUSTERED INDEX ACT_IDX_DMN_INSTANCE_ID ON ACT_DMN_HI_DECISION_EXECUTION(INSTANCE_ID_); insert into ACT_GE_PROPERTY -values ('dmn.schema.version', '8.1.0.2', 1); +values ('dmn.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.mysql.create.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.mysql.create.dmn.sql index 2a48ea91c28..5b09d6a8449 100644 --- a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.mysql.create.dmn.sql +++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.mysql.create.dmn.sql @@ -16,4 +16,4 @@ CREATE UNIQUE INDEX ACT_IDX_DMN_DEC_UNIQ ON ACT_DMN_DECISION(KEY_, VERSION_, TEN CREATE INDEX ACT_IDX_DMN_INSTANCE_ID ON ACT_DMN_HI_DECISION_EXECUTION(INSTANCE_ID_); insert into ACT_GE_PROPERTY -values ('dmn.schema.version', '8.1.0.2', 1); +values ('dmn.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.oracle.create.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.oracle.create.dmn.sql index 8c8d42a9d59..1bdcd2b34c8 100644 --- a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.oracle.create.dmn.sql +++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.oracle.create.dmn.sql @@ -16,4 +16,4 @@ CREATE UNIQUE INDEX ACT_IDX_DMN_DEC_UNIQ ON ACT_DMN_DECISION(KEY_, VERSION_, TEN CREATE INDEX ACT_IDX_DMN_INSTANCE_ID ON ACT_DMN_HI_DECISION_EXECUTION(INSTANCE_ID_); insert into ACT_GE_PROPERTY -values ('dmn.schema.version', '8.1.0.2', 1); +values ('dmn.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.postgres.create.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.postgres.create.dmn.sql index f1b989bf29b..f9ef5a9727a 100644 --- a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.postgres.create.dmn.sql +++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/create/flowable.postgres.create.dmn.sql @@ -16,4 +16,4 @@ CREATE UNIQUE INDEX ACT_IDX_DMN_DEC_UNIQ ON ACT_DMN_DECISION(KEY_, VERSION_, TEN CREATE INDEX ACT_IDX_DMN_INSTANCE_ID ON ACT_DMN_HI_DECISION_EXECUTION(INSTANCE_ID_); insert into ACT_GE_PROPERTY -values ('dmn.schema.version', '8.1.0.2', 1); +values ('dmn.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/upgrade/flowable.all.upgradestep.8102.to.8103.dmn.sql b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/upgrade/flowable.all.upgradestep.8102.to.8103.dmn.sql new file mode 100644 index 00000000000..d5baaf85e83 --- /dev/null +++ b/modules/flowable-dmn-engine/src/main/resources/org/flowable/dmn/db/upgrade/flowable.all.upgradestep.8102.to.8103.dmn.sql @@ -0,0 +1 @@ +update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'dmn.schema.version'; diff --git a/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/FlowableVersions.java b/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/FlowableVersions.java index 07cd9e7b69b..402d28e638f 100644 --- a/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/FlowableVersions.java +++ b/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/FlowableVersions.java @@ -23,7 +23,7 @@ */ public class FlowableVersions { - public static final String CURRENT_VERSION = "8.1.0.2"; // Note the extra .x at the end. To cater for snapshot releases with different database changes + public static final String CURRENT_VERSION = "8.1.0.3"; // Note the extra .x at the end. To cater for snapshot releases with different database changes public static final List FLOWABLE_VERSIONS = new ArrayList<>(); @@ -152,6 +152,7 @@ public class FlowableVersions { FLOWABLE_VERSIONS.add(new FlowableVersion("8.0.0.0")); FLOWABLE_VERSIONS.add(new FlowableVersion("8.1.0.0")); FLOWABLE_VERSIONS.add(new FlowableVersion("8.1.0.1")); + FLOWABLE_VERSIONS.add(new FlowableVersion("8.1.0.2")); /* Current */ FLOWABLE_VERSIONS.add(new FlowableVersion(CURRENT_VERSION)); diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.cockroachdb.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.cockroachdb.create.common.sql index 191d3d7242a..942eb9270bc 100644 --- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.cockroachdb.create.common.sql +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.cockroachdb.create.common.sql @@ -16,7 +16,7 @@ CREATE TABLE if not exists ACT_GE_BYTEARRAY ( ); insert into ACT_GE_PROPERTY -values ('common.schema.version', '8.1.0.2', 1); +values ('common.schema.version', '8.1.0.3', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.db2.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.db2.create.common.sql index 41b1e39884f..78e2af59395 100644 --- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.db2.create.common.sql +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.db2.create.common.sql @@ -16,7 +16,7 @@ create table ACT_GE_BYTEARRAY ( ); insert into ACT_GE_PROPERTY -values ('common.schema.version', '8.1.0.2', 1); +values ('common.schema.version', '8.1.0.3', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); @@ -108,6 +108,7 @@ create table ACT_HI_IDENTITYLINK ( ); create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_); +create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_); create index ACT_IDX_HI_IDENT_LNK_SCOPE on ACT_HI_IDENTITYLINK(SCOPE_ID_, SCOPE_TYPE_); create index ACT_IDX_HI_IDENT_LNK_SUB_SCOPE on ACT_HI_IDENTITYLINK(SUB_SCOPE_ID_, SCOPE_TYPE_); create index ACT_IDX_HI_IDENT_LNK_SCOPE_DEF on ACT_HI_IDENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_); diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.h2.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.h2.create.common.sql index dbb2abdeff4..4230cb40cbb 100644 --- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.h2.create.common.sql +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.h2.create.common.sql @@ -16,7 +16,7 @@ create table ACT_GE_BYTEARRAY ( ); insert into ACT_GE_PROPERTY -values ('common.schema.version', '8.1.0.2', 1); +values ('common.schema.version', '8.1.0.3', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); @@ -172,6 +172,7 @@ create table ACT_HI_IDENTITYLINK ( ); create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_); +create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_); create index ACT_IDX_HI_IDENT_LNK_SCOPE on ACT_HI_IDENTITYLINK(SCOPE_ID_, SCOPE_TYPE_); create index ACT_IDX_HI_IDENT_LNK_SUB_SCOPE on ACT_HI_IDENTITYLINK(SUB_SCOPE_ID_, SCOPE_TYPE_); create index ACT_IDX_HI_IDENT_LNK_SCOPE_DEF on ACT_HI_IDENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_); diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.hsql.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.hsql.create.common.sql index dbb2abdeff4..4230cb40cbb 100644 --- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.hsql.create.common.sql +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.hsql.create.common.sql @@ -16,7 +16,7 @@ create table ACT_GE_BYTEARRAY ( ); insert into ACT_GE_PROPERTY -values ('common.schema.version', '8.1.0.2', 1); +values ('common.schema.version', '8.1.0.3', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); @@ -172,6 +172,7 @@ create table ACT_HI_IDENTITYLINK ( ); create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_); +create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_); create index ACT_IDX_HI_IDENT_LNK_SCOPE on ACT_HI_IDENTITYLINK(SCOPE_ID_, SCOPE_TYPE_); create index ACT_IDX_HI_IDENT_LNK_SUB_SCOPE on ACT_HI_IDENTITYLINK(SUB_SCOPE_ID_, SCOPE_TYPE_); create index ACT_IDX_HI_IDENT_LNK_SCOPE_DEF on ACT_HI_IDENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_); diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.mssql.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.mssql.create.common.sql index 7c8b2d1ed5c..292a18aba8a 100644 --- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.mssql.create.common.sql +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.mssql.create.common.sql @@ -16,7 +16,7 @@ create table ACT_GE_BYTEARRAY ( ); insert into ACT_GE_PROPERTY -values ('common.schema.version', '8.1.0.2', 1); +values ('common.schema.version', '8.1.0.3', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); @@ -108,6 +108,7 @@ create table ACT_HI_IDENTITYLINK ( ); create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_); +create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_); create index ACT_IDX_HI_IDENT_LNK_SCOPE on ACT_HI_IDENTITYLINK(SCOPE_ID_, SCOPE_TYPE_); create index ACT_IDX_HI_IDENT_LNK_SUB_SCOPE on ACT_HI_IDENTITYLINK(SUB_SCOPE_ID_, SCOPE_TYPE_); create index ACT_IDX_HI_IDENT_LNK_SCOPE_DEF on ACT_HI_IDENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_); diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.mysql.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.mysql.create.common.sql index 1fd1ca8a61d..a19171f3329 100644 --- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.mysql.create.common.sql +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.mysql.create.common.sql @@ -16,7 +16,7 @@ create table ACT_GE_BYTEARRAY ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; insert into ACT_GE_PROPERTY -values ('common.schema.version', '8.1.0.2', 1); +values ('common.schema.version', '8.1.0.3', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); @@ -108,6 +108,7 @@ create table ACT_HI_IDENTITYLINK ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_); +create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_); create index ACT_IDX_HI_IDENT_LNK_SCOPE on ACT_HI_IDENTITYLINK(SCOPE_ID_, SCOPE_TYPE_); create index ACT_IDX_HI_IDENT_LNK_SUB_SCOPE on ACT_HI_IDENTITYLINK(SUB_SCOPE_ID_, SCOPE_TYPE_); create index ACT_IDX_HI_IDENT_LNK_SCOPE_DEF on ACT_HI_IDENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_); diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.oracle.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.oracle.create.common.sql index 9514a9c0170..712def1a757 100644 --- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.oracle.create.common.sql +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.oracle.create.common.sql @@ -16,7 +16,7 @@ create table ACT_GE_BYTEARRAY ( ); insert into ACT_GE_PROPERTY -values ('common.schema.version', '8.1.0.2', 1); +values ('common.schema.version', '8.1.0.3', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); @@ -108,6 +108,7 @@ create table ACT_HI_IDENTITYLINK ( ); create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_); +create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_); create index ACT_IDX_HI_IDENT_LNK_SCOPE on ACT_HI_IDENTITYLINK(SCOPE_ID_, SCOPE_TYPE_); create index ACT_IDX_HI_IDENT_LNK_SUB_SCOPE on ACT_HI_IDENTITYLINK(SUB_SCOPE_ID_, SCOPE_TYPE_); create index ACT_IDX_HI_IDENT_LNK_SCOPE_DEF on ACT_HI_IDENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_); diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.postgres.create.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.postgres.create.common.sql index 64a08b56776..76a569be70c 100644 --- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.postgres.create.common.sql +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/create/flowable.postgres.create.common.sql @@ -16,7 +16,7 @@ create table ACT_GE_BYTEARRAY ( ); insert into ACT_GE_PROPERTY -values ('common.schema.version', '8.1.0.2', 1); +values ('common.schema.version', '8.1.0.3', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); @@ -108,6 +108,7 @@ create table ACT_HI_IDENTITYLINK ( ); create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_); +create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_); create index ACT_IDX_HI_IDENT_LNK_SCOPE on ACT_HI_IDENTITYLINK(SCOPE_ID_, SCOPE_TYPE_); create index ACT_IDX_HI_IDENT_LNK_SUB_SCOPE on ACT_HI_IDENTITYLINK(SUB_SCOPE_ID_, SCOPE_TYPE_); create index ACT_IDX_HI_IDENT_LNK_SCOPE_DEF on ACT_HI_IDENTITYLINK(SCOPE_DEFINITION_ID_, SCOPE_TYPE_); diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.db2.drop.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.db2.drop.common.sql index 53ee0c19775..a15e3f4130e 100644 --- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.db2.drop.common.sql +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.db2.drop.common.sql @@ -36,6 +36,7 @@ drop index ACT_IDX_IDENT_LNK_SCOPE_DEF; drop table ACT_RU_IDENTITYLINK; drop index ACT_IDX_HI_IDENT_LNK_USER; +drop index ACT_IDX_HI_IDENT_LNK_GROUP; drop index ACT_IDX_HI_IDENT_LNK_SCOPE; drop index ACT_IDX_HI_IDENT_LNK_SUB_SCOPE; drop index ACT_IDX_HI_IDENT_LNK_SCOPE_DEF; diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.h2.drop.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.h2.drop.common.sql index ded6c3530e4..c2b3734b67f 100644 --- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.h2.drop.common.sql +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.h2.drop.common.sql @@ -35,6 +35,7 @@ drop index if exists ACT_IDX_IDENT_LNK_SCOPE_DEF; drop table if exists ACT_HI_IDENTITYLINK cascade constraints; drop index if exists ACT_IDX_HI_IDENT_LNK_USER; +drop index if exists ACT_IDX_HI_IDENT_LNK_GROUP; drop index if exists ACT_IDX_HI_IDENT_LNK_SCOPE; drop index if exists ACT_IDX_HI_IDENT_LNK_SUB_SCOPE; drop index if exists ACT_IDX_HI_IDENT_LNK_SCOPE_DEF; diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.hsql.drop.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.hsql.drop.common.sql index ded6c3530e4..c2b3734b67f 100644 --- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.hsql.drop.common.sql +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.hsql.drop.common.sql @@ -35,6 +35,7 @@ drop index if exists ACT_IDX_IDENT_LNK_SCOPE_DEF; drop table if exists ACT_HI_IDENTITYLINK cascade constraints; drop index if exists ACT_IDX_HI_IDENT_LNK_USER; +drop index if exists ACT_IDX_HI_IDENT_LNK_GROUP; drop index if exists ACT_IDX_HI_IDENT_LNK_SCOPE; drop index if exists ACT_IDX_HI_IDENT_LNK_SUB_SCOPE; drop index if exists ACT_IDX_HI_IDENT_LNK_SCOPE_DEF; diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.mssql.drop.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.mssql.drop.common.sql index b615d8aa698..0db086f2a70 100644 --- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.mssql.drop.common.sql +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.mssql.drop.common.sql @@ -34,6 +34,7 @@ IF EXISTS (SELECT name FROM sysindexes WHERE name = 'ACT_IDX_IDENT_LNK_SCOPE_DEF if exists (select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_NAME = 'ACT_RU_IDENTITYLINK') drop table ACT_RU_IDENTITYLINK; IF EXISTS (SELECT name FROM sysindexes WHERE name = 'ACT_IDX_HI_IDENT_LNK_USER') drop index ACT_HI_IDENTITYLINK.ACT_IDX_HI_IDENT_LNK_USER; +IF EXISTS (SELECT name FROM sysindexes WHERE name = 'ACT_IDX_HI_IDENT_LNK_GROUP') drop index ACT_HI_IDENTITYLINK.ACT_IDX_HI_IDENT_LNK_GROUP; IF EXISTS (SELECT name FROM sysindexes WHERE name = 'ACT_IDX_HI_IDENT_LNK_SCOPE') drop index ACT_HI_IDENTITYLINK.ACT_IDX_HI_IDENT_LNK_SCOPE; IF EXISTS (SELECT name FROM sysindexes WHERE name = 'ACT_IDX_HI_IDENT_LNK_SUB_SCOPE') drop index ACT_HI_IDENTITYLINK.ACT_IDX_HI_IDENT_LNK_SUB_SCOPE; IF EXISTS (SELECT name FROM sysindexes WHERE name = 'ACT_IDX_HI_IDENT_LNK_SCOPE_DEF') drop index ACT_HI_IDENTITYLINK.ACT_IDX_HI_IDENT_LNK_SCOPE_DEF; diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.mysql.drop.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.mysql.drop.common.sql index 5cb9c1fb01c..a3cb86272bd 100644 --- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.mysql.drop.common.sql +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.mysql.drop.common.sql @@ -36,6 +36,7 @@ drop index ACT_IDX_IDENT_LNK_SCOPE_DEF on ACT_RU_IDENTITYLINK; drop table if exists ACT_RU_IDENTITYLINK; drop index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK; +drop index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK; drop index ACT_IDX_HI_IDENT_LNK_SCOPE on ACT_HI_IDENTITYLINK; drop index ACT_IDX_HI_IDENT_LNK_SUB_SCOPE on ACT_HI_IDENTITYLINK; drop index ACT_IDX_HI_IDENT_LNK_SCOPE_DEF on ACT_HI_IDENTITYLINK; diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.oracle.drop.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.oracle.drop.common.sql index d4641eea246..609f5763d2d 100644 --- a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.oracle.drop.common.sql +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/drop/flowable.oracle.drop.common.sql @@ -36,6 +36,7 @@ drop index ACT_IDX_IDENT_LNK_SCOPE_DEF; drop table ACT_RU_IDENTITYLINK; drop index ACT_IDX_HI_IDENT_LNK_USER; +drop index ACT_IDX_HI_IDENT_LNK_GROUP; drop index ACT_IDX_HI_IDENT_LNK_SCOPE; drop index ACT_IDX_HI_IDENT_LNK_SUB_SCOPE; diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.db2.upgradestep.8102.to.8103.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.db2.upgradestep.8102.to.8103.common.sql new file mode 100644 index 00000000000..b6e4cb89068 --- /dev/null +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.db2.upgradestep.8102.to.8103.common.sql @@ -0,0 +1,3 @@ +create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_); + +update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'common.schema.version'; diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.h2.upgradestep.8102.to.8103.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.h2.upgradestep.8102.to.8103.common.sql new file mode 100644 index 00000000000..b6e4cb89068 --- /dev/null +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.h2.upgradestep.8102.to.8103.common.sql @@ -0,0 +1,3 @@ +create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_); + +update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'common.schema.version'; diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.hsql.upgradestep.8102.to.8103.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.hsql.upgradestep.8102.to.8103.common.sql new file mode 100644 index 00000000000..b6e4cb89068 --- /dev/null +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.hsql.upgradestep.8102.to.8103.common.sql @@ -0,0 +1,3 @@ +create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_); + +update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'common.schema.version'; diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.mssql.upgradestep.8102.to.8103.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.mssql.upgradestep.8102.to.8103.common.sql new file mode 100644 index 00000000000..b6e4cb89068 --- /dev/null +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.mssql.upgradestep.8102.to.8103.common.sql @@ -0,0 +1,3 @@ +create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_); + +update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'common.schema.version'; diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.mysql.upgradestep.8102.to.8103.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.mysql.upgradestep.8102.to.8103.common.sql new file mode 100644 index 00000000000..b6e4cb89068 --- /dev/null +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.mysql.upgradestep.8102.to.8103.common.sql @@ -0,0 +1,3 @@ +create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_); + +update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'common.schema.version'; diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.oracle.upgradestep.8102.to.8103.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.oracle.upgradestep.8102.to.8103.common.sql new file mode 100644 index 00000000000..b6e4cb89068 --- /dev/null +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.oracle.upgradestep.8102.to.8103.common.sql @@ -0,0 +1,3 @@ +create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_); + +update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'common.schema.version'; diff --git a/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.postgres.upgradestep.8102.to.8103.common.sql b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.postgres.upgradestep.8102.to.8103.common.sql new file mode 100644 index 00000000000..b6e4cb89068 --- /dev/null +++ b/modules/flowable-engine-common/src/main/resources/org/flowable/common/db/upgrade/flowable.postgres.upgradestep.8102.to.8103.common.sql @@ -0,0 +1,3 @@ +create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_); + +update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'common.schema.version'; diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.cockroachdb.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.cockroachdb.create.engine.sql index d8dbb626822..0a465a87997 100644 --- a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.cockroachdb.create.engine.sql +++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.cockroachdb.create.engine.sql @@ -352,7 +352,7 @@ alter table ACT_PROCDEF_INFO unique (PROC_DEF_ID_); insert into ACT_GE_PROPERTY -values ('schema.version', '8.1.0.2', 1); +values ('schema.version', '8.1.0.3', 1); insert into ACT_GE_PROPERTY values ('schema.history', 'create(8.1.0.2)', 1); diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.db2.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.db2.create.engine.sql index d072d4b1666..e2ded506e49 100644 --- a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.db2.create.engine.sql +++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.db2.create.engine.sql @@ -347,7 +347,7 @@ alter table ACT_PROCDEF_INFO unique (PROC_DEF_ID_); insert into ACT_GE_PROPERTY -values ('schema.version', '8.1.0.2', 1); +values ('schema.version', '8.1.0.3', 1); insert into ACT_GE_PROPERTY values ('schema.history', 'create(8.1.0.2)', 1); diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.h2.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.h2.create.engine.sql index 53b734f42c9..88da6be4bdb 100644 --- a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.h2.create.engine.sql +++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.h2.create.engine.sql @@ -323,7 +323,7 @@ alter table ACT_PROCDEF_INFO unique (PROC_DEF_ID_); insert into ACT_GE_PROPERTY -values ('schema.version', '8.1.0.2', 1); +values ('schema.version', '8.1.0.3', 1); insert into ACT_GE_PROPERTY values ('schema.history', 'create(8.1.0.2)', 1); diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.hsql.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.hsql.create.engine.sql index a7149709417..aab31a80b49 100644 --- a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.hsql.create.engine.sql +++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.hsql.create.engine.sql @@ -323,7 +323,7 @@ alter table ACT_PROCDEF_INFO unique (PROC_DEF_ID_); insert into ACT_GE_PROPERTY -values ('schema.version', '8.1.0.2', 1); +values ('schema.version', '8.1.0.3', 1); insert into ACT_GE_PROPERTY values ('schema.history', 'create(8.1.0.2)', 1); diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.mssql.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.mssql.create.engine.sql index c96de161961..b2e1cac850f 100644 --- a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.mssql.create.engine.sql +++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.mssql.create.engine.sql @@ -343,7 +343,7 @@ alter table ACT_PROCDEF_INFO unique (PROC_DEF_ID_); insert into ACT_GE_PROPERTY -values ('schema.version', '8.1.0.2', 1); +values ('schema.version', '8.1.0.3', 1); insert into ACT_GE_PROPERTY values ('schema.history', 'create(8.1.0.2)', 1); diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.mysql.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.mysql.create.engine.sql index 7fd45810d25..4443de4cc22 100644 --- a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.mysql.create.engine.sql +++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.mysql.create.engine.sql @@ -324,7 +324,7 @@ alter table ACT_PROCDEF_INFO unique (PROC_DEF_ID_); insert into ACT_GE_PROPERTY -values ('schema.version', '8.1.0.2', 1); +values ('schema.version', '8.1.0.3', 1); insert into ACT_GE_PROPERTY values ('schema.history', 'create(8.1.0.2)', 1); diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.oracle.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.oracle.create.engine.sql index 83d536eb475..0d6afc0cbb0 100644 --- a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.oracle.create.engine.sql +++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.oracle.create.engine.sql @@ -352,7 +352,7 @@ alter table ACT_PROCDEF_INFO unique (PROC_DEF_ID_); insert into ACT_GE_PROPERTY -values ('schema.version', '8.1.0.2', 1); +values ('schema.version', '8.1.0.3', 1); insert into ACT_GE_PROPERTY values ('schema.history', 'create(8.1.0.2)', 1); diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.postgres.create.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.postgres.create.engine.sql index 0c2c3c8f915..68e36d97865 100644 --- a/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.postgres.create.engine.sql +++ b/modules/flowable-engine/src/main/resources/org/flowable/db/create/flowable.postgres.create.engine.sql @@ -352,7 +352,7 @@ alter table ACT_PROCDEF_INFO unique (PROC_DEF_ID_); insert into ACT_GE_PROPERTY -values ('schema.version', '8.1.0.2', 1); +values ('schema.version', '8.1.0.3', 1); insert into ACT_GE_PROPERTY values ('schema.history', 'create(8.1.0.2)', 1); diff --git a/modules/flowable-engine/src/main/resources/org/flowable/db/upgrade/flowable.all.upgradestep.8102.to.8103.engine.sql b/modules/flowable-engine/src/main/resources/org/flowable/db/upgrade/flowable.all.upgradestep.8102.to.8103.engine.sql new file mode 100644 index 00000000000..81ff4add4dc --- /dev/null +++ b/modules/flowable-engine/src/main/resources/org/flowable/db/upgrade/flowable.all.upgradestep.8102.to.8103.engine.sql @@ -0,0 +1 @@ +update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'schema.version'; diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.db2.create.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.db2.create.eventregistry.sql index 5a21132870b..8488da5a471 100644 --- a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.db2.create.eventregistry.sql +++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.db2.create.eventregistry.sql @@ -16,4 +16,4 @@ CREATE TABLE FLW_CHANNEL_DEFINITION (ID_ VARCHAR(255) NOT NULL, NAME_ VARCHAR(25 CREATE UNIQUE INDEX ACT_IDX_CHANNEL_DEF_UNIQ ON FLW_CHANNEL_DEFINITION(KEY_, VERSION_, TENANT_ID_); insert into ACT_GE_PROPERTY -values ('eventregistry.schema.version', '8.1.0.2', 1); +values ('eventregistry.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.h2.create.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.h2.create.eventregistry.sql index a51e426895c..aca7bb907c1 100644 --- a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.h2.create.eventregistry.sql +++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.h2.create.eventregistry.sql @@ -16,4 +16,4 @@ CREATE TABLE FLW_CHANNEL_DEFINITION (ID_ VARCHAR(255) NOT NULL, NAME_ VARCHAR(25 CREATE UNIQUE INDEX ACT_IDX_CHANNEL_DEF_UNIQ ON FLW_CHANNEL_DEFINITION(KEY_, VERSION_, TENANT_ID_); insert into ACT_GE_PROPERTY -values ('eventregistry.schema.version', '8.1.0.2', 1); +values ('eventregistry.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.mssql.create.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.mssql.create.eventregistry.sql index 06654243387..8ef4239f1b3 100644 --- a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.mssql.create.eventregistry.sql +++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.mssql.create.eventregistry.sql @@ -16,4 +16,4 @@ CREATE TABLE FLW_CHANNEL_DEFINITION (ID_ varchar(255) NOT NULL, NAME_ nvarchar(2 CREATE UNIQUE NONCLUSTERED INDEX ACT_IDX_CHANNEL_DEF_UNIQ ON FLW_CHANNEL_DEFINITION(KEY_, VERSION_, TENANT_ID_); insert into ACT_GE_PROPERTY -values ('eventregistry.schema.version', '8.1.0.2', 1); +values ('eventregistry.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.mysql.create.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.mysql.create.eventregistry.sql index f48d0d329c7..3dedab8fda7 100644 --- a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.mysql.create.eventregistry.sql +++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.mysql.create.eventregistry.sql @@ -16,4 +16,4 @@ CREATE TABLE FLW_CHANNEL_DEFINITION (ID_ VARCHAR(255) NOT NULL, NAME_ VARCHAR(25 CREATE UNIQUE INDEX ACT_IDX_CHANNEL_DEF_UNIQ ON FLW_CHANNEL_DEFINITION(KEY_, VERSION_, TENANT_ID_); insert into ACT_GE_PROPERTY -values ('eventregistry.schema.version', '8.1.0.2', 1); +values ('eventregistry.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.oracle.create.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.oracle.create.eventregistry.sql index 7ced0b858ad..9f22332713a 100644 --- a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.oracle.create.eventregistry.sql +++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.oracle.create.eventregistry.sql @@ -16,4 +16,4 @@ CREATE TABLE FLW_CHANNEL_DEFINITION (ID_ VARCHAR2(255) NOT NULL, NAME_ VARCHAR2( CREATE UNIQUE INDEX ACT_IDX_CHANNEL_DEF_UNIQ ON FLW_CHANNEL_DEFINITION(KEY_, VERSION_, TENANT_ID_); insert into ACT_GE_PROPERTY -values ('eventregistry.schema.version', '8.1.0.2', 1); +values ('eventregistry.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.postgres.create.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.postgres.create.eventregistry.sql index 70b521fd133..8928a670e13 100644 --- a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.postgres.create.eventregistry.sql +++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/create/flowable.postgres.create.eventregistry.sql @@ -16,4 +16,4 @@ CREATE TABLE FLW_CHANNEL_DEFINITION (ID_ VARCHAR(255) NOT NULL, NAME_ VARCHAR(25 CREATE UNIQUE INDEX ACT_IDX_CHANNEL_DEF_UNIQ ON FLW_CHANNEL_DEFINITION(KEY_, VERSION_, TENANT_ID_); insert into ACT_GE_PROPERTY -values ('eventregistry.schema.version', '8.1.0.2', 1); +values ('eventregistry.schema.version', '8.1.0.3', 1); diff --git a/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/upgrade/flowable.all.upgradestep.8102.to.8103.eventregistry.sql b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/upgrade/flowable.all.upgradestep.8102.to.8103.eventregistry.sql new file mode 100644 index 00000000000..dfa0db338c8 --- /dev/null +++ b/modules/flowable-event-registry/src/main/resources/org/flowable/eventregistry/db/upgrade/flowable.all.upgradestep.8102.to.8103.eventregistry.sql @@ -0,0 +1 @@ +update ACT_GE_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'eventregistry.schema.version'; diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.cockroachdb.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.cockroachdb.create.identity.sql index a5b4c4bab7d..6a39872630e 100644 --- a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.cockroachdb.create.identity.sql +++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.cockroachdb.create.identity.sql @@ -6,7 +6,7 @@ create table ACT_ID_PROPERTY ( ); insert into ACT_ID_PROPERTY -values ('schema.version', '8.1.0.2', 1); +values ('schema.version', '8.1.0.3', 1); create table ACT_ID_BYTEARRAY ( ID_ varchar(64), diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.db2.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.db2.create.identity.sql index ecec3f94bac..40ab5742c42 100644 --- a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.db2.create.identity.sql +++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.db2.create.identity.sql @@ -6,7 +6,7 @@ create table ACT_ID_PROPERTY ( ); insert into ACT_ID_PROPERTY -values ('schema.version', '8.1.0.2', 1); +values ('schema.version', '8.1.0.3', 1); create table ACT_ID_BYTEARRAY ( ID_ varchar(64) not null, diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.h2.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.h2.create.identity.sql index f323f3fd21d..7fd1eb60f10 100644 --- a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.h2.create.identity.sql +++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.h2.create.identity.sql @@ -6,7 +6,7 @@ create table ACT_ID_PROPERTY ( ); insert into ACT_ID_PROPERTY -values ('schema.version', '8.1.0.2', 1); +values ('schema.version', '8.1.0.3', 1); create table ACT_ID_BYTEARRAY ( ID_ varchar(64), diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.hsql.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.hsql.create.identity.sql index 8d2d203b3a1..60a111bd0fe 100644 --- a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.hsql.create.identity.sql +++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.hsql.create.identity.sql @@ -6,7 +6,7 @@ create table ACT_ID_PROPERTY ( ); insert into ACT_ID_PROPERTY -values ('schema.version', '8.1.0.2', 1); +values ('schema.version', '8.1.0.3', 1); create table ACT_ID_BYTEARRAY ( ID_ varchar(64), diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.mssql.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.mssql.create.identity.sql index feef8c730c8..33a32c054fd 100644 --- a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.mssql.create.identity.sql +++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.mssql.create.identity.sql @@ -6,7 +6,7 @@ create table ACT_ID_PROPERTY ( ); insert into ACT_ID_PROPERTY -values ('schema.version', '8.1.0.2', 1); +values ('schema.version', '8.1.0.3', 1); create table ACT_ID_BYTEARRAY ( ID_ nvarchar(64), diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.mysql.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.mysql.create.identity.sql index cdc92dc05fa..bce026ae956 100644 --- a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.mysql.create.identity.sql +++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.mysql.create.identity.sql @@ -6,7 +6,7 @@ create table ACT_ID_PROPERTY ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; insert into ACT_ID_PROPERTY -values ('schema.version', '8.1.0.2', 1); +values ('schema.version', '8.1.0.3', 1); create table ACT_ID_BYTEARRAY ( ID_ varchar(64), diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.oracle.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.oracle.create.identity.sql index 8541d92857f..fd49f0a5e40 100644 --- a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.oracle.create.identity.sql +++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.oracle.create.identity.sql @@ -6,7 +6,7 @@ create table ACT_ID_PROPERTY ( ); insert into ACT_ID_PROPERTY -values ('schema.version', '8.1.0.2', 1); +values ('schema.version', '8.1.0.3', 1); create table ACT_ID_BYTEARRAY ( ID_ NVARCHAR2(64), diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.postgres.create.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.postgres.create.identity.sql index 58b6f23cf75..936514d7d86 100644 --- a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.postgres.create.identity.sql +++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/create/flowable.postgres.create.identity.sql @@ -6,7 +6,7 @@ create table ACT_ID_PROPERTY ( ); insert into ACT_ID_PROPERTY -values ('schema.version', '8.1.0.2', 1); +values ('schema.version', '8.1.0.3', 1); create table ACT_ID_BYTEARRAY ( ID_ varchar(64), diff --git a/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/upgrade/flowable.all.upgradestep.8102.to.8103.identity.sql b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/upgrade/flowable.all.upgradestep.8102.to.8103.identity.sql new file mode 100644 index 00000000000..cea487ebf51 --- /dev/null +++ b/modules/flowable-idm-engine/src/main/resources/org/flowable/idm/db/upgrade/flowable.all.upgradestep.8102.to.8103.identity.sql @@ -0,0 +1 @@ +update ACT_ID_PROPERTY set VALUE_ = '8.1.0.3' where NAME_ = 'schema.version';