From 5bf9b86b0479a726bc6847bba72d440546413161 Mon Sep 17 00:00:00 2001 From: Frank Langelage Date: Sat, 12 Jan 2019 22:21:43 +0100 Subject: [PATCH] IBM Informix support (update VI). --- .../impl/db/sql/DbSqlSessionFactory.java | 21 +++++- .../bpm/engine/impl/util/ExceptionUtil.java | 10 ++- .../activiti.informix.create.case.engine.sql | 16 +++++ .../activiti.informix.create.case.history.sql | 17 ++++- ...tiviti.informix.create.decision.engine.sql | 16 +++++ ...iviti.informix.create.decision.history.sql | 28 ++++++++ .../activiti.informix.create.engine.sql | 28 +++++++- .../activiti.informix.create.history.sql | 71 ++++++++++++++++++- .../activiti.informix.create.identity.sql | 16 +++++ .../engine/impl/mapping/entity/Attachment.xml | 9 +++ .../impl/mapping/entity/Authorization.xml | 60 ++++++++++++---- .../engine/impl/mapping/entity/Comment.xml | 9 +++ .../entity/HistoricActivityInstance.xml | 9 +++ .../impl/mapping/entity/HistoricBatch.xml | 9 +++ .../entity/HistoricDecisionInputInstance.xml | 9 +++ .../entity/HistoricDecisionInstance.xml | 9 +++ .../entity/HistoricDecisionOutputInstance.xml | 9 +++ .../impl/mapping/entity/HistoricDetail.xml | 9 +++ .../entity/HistoricExternalTaskLog.xml | 11 ++- .../entity/HistoricIdentityLinkLog.xml | 11 ++- .../impl/mapping/entity/HistoricIncident.xml | 9 +++ .../impl/mapping/entity/HistoricJobLog.xml | 9 +++ .../entity/HistoricProcessInstance.xml | 9 +++ .../mapping/entity/HistoricTaskInstance.xml | 9 +++ .../entity/HistoricVariableInstance.xml | 9 +++ .../mapping/entity/UserOperationLogEntry.xml | 9 +++ .../impl/mapping/entity/VariableInstance.xml | 9 +++ 27 files changed, 416 insertions(+), 24 deletions(-) diff --git a/engine/src/main/java/org/camunda/bpm/engine/impl/db/sql/DbSqlSessionFactory.java b/engine/src/main/java/org/camunda/bpm/engine/impl/db/sql/DbSqlSessionFactory.java index bc31c50d65f..da15536f2d9 100644 --- a/engine/src/main/java/org/camunda/bpm/engine/impl/db/sql/DbSqlSessionFactory.java +++ b/engine/src/main/java/org/camunda/bpm/engine/impl/db/sql/DbSqlSessionFactory.java @@ -686,6 +686,24 @@ public class DbSqlSessionFactory implements SessionFactory { addDatabaseSpecificStatement(INFORMIX, "selectFilterByQueryCriteria", "selectFilterByQueryCriteria_oracleDb2"); + addDatabaseSpecificStatement(INFORMIX, "deleteAttachmentsByRemovalTime", "deleteAttachmentsByRemovalTime_informix"); + addDatabaseSpecificStatement(INFORMIX, "deleteCommentsByRemovalTime", "deleteCommentsByRemovalTime_informix"); + addDatabaseSpecificStatement(INFORMIX, "deleteHistoricActivityInstancesByRemovalTime", "deleteHistoricActivityInstancesByRemovalTime_informix"); + addDatabaseSpecificStatement(INFORMIX, "deleteHistoricDecisionInputInstancesByRemovalTime", "deleteHistoricDecisionInputInstancesByRemovalTime_informix"); + addDatabaseSpecificStatement(INFORMIX, "deleteHistoricDecisionInstancesByRemovalTime", "deleteHistoricDecisionInstancesByRemovalTime_informix"); + addDatabaseSpecificStatement(INFORMIX, "deleteHistoricDecisionOutputInstancesByRemovalTime", "deleteHistoricDecisionOutputInstancesByRemovalTime_informix"); + addDatabaseSpecificStatement(INFORMIX, "deleteHistoricDetailsByRemovalTime", "deleteHistoricDetailsByRemovalTime_informix"); + addDatabaseSpecificStatement(INFORMIX, "deleteExternalTaskLogByRemovalTime", "deleteExternalTaskLogByRemovalTime_informix"); + addDatabaseSpecificStatement(INFORMIX, "deleteHistoricIdentityLinkLogByRemovalTime", "deleteHistoricIdentityLinkLogByRemovalTime_informix"); + addDatabaseSpecificStatement(INFORMIX, "deleteHistoricIncidentsByRemovalTime", "deleteHistoricIncidentsByRemovalTime_informix"); + addDatabaseSpecificStatement(INFORMIX, "deleteJobLogByRemovalTime", "deleteJobLogByRemovalTime_informix"); + addDatabaseSpecificStatement(INFORMIX, "deleteHistoricProcessInstancesByRemovalTime", "deleteHistoricProcessInstancesByRemovalTime_informix"); + addDatabaseSpecificStatement(INFORMIX, "deleteHistoricTaskInstancesByRemovalTime", "deleteHistoricTaskInstancesByRemovalTime_informix"); + addDatabaseSpecificStatement(INFORMIX, "deleteHistoricVariableInstancesByRemovalTime", "deleteHistoricVariableInstancesByRemovalTime_informix"); + addDatabaseSpecificStatement(INFORMIX, "deleteUserOperationLogByRemovalTime", "deleteUserOperationLogByRemovalTime_informix"); + addDatabaseSpecificStatement(INFORMIX, "deleteByteArraysByRemovalTime", "deleteByteArraysByRemovalTime_informix"); + addDatabaseSpecificStatement(INFORMIX, "deleteHistoricBatchesByRemovalTime", "deleteHistoricBatchesByRemovalTime_informix"); + constants = new HashMap(); constants.put("constant.event", "'event'"); constants.put("constant.op_message", "NEW_VALUE_ || '_|_' || PROPERTY_"); @@ -693,8 +711,9 @@ public class DbSqlSessionFactory implements SessionFactory { constants.put("constant.datepart.quarter", "QUARTER"); constants.put("constant.datepart.month", "MONTH"); constants.put("constant.datepart.minute", "MINUTE"); - constants.put("constant.null.startTime", "null START_TIME_"); + constants.put("constant.null.startTime", "CAST(NULL AS DATETIME) AS START_TIME_"); constants.put("constant.varchar.cast", "'${key}'"); + constants.put("constant.null.reporter", "CAST(NULL AS VARCHAR(255)) AS REPORTER_"); dbSpecificConstants.put(INFORMIX, constants); } diff --git a/engine/src/main/java/org/camunda/bpm/engine/impl/util/ExceptionUtil.java b/engine/src/main/java/org/camunda/bpm/engine/impl/util/ExceptionUtil.java index 632eaec3e29..2c97ab6c335 100644 --- a/engine/src/main/java/org/camunda/bpm/engine/impl/util/ExceptionUtil.java +++ b/engine/src/main/java/org/camunda/bpm/engine/impl/util/ExceptionUtil.java @@ -133,8 +133,11 @@ public static boolean checkForeignKeyConstraintViolation(Throwable cause) { List relatedSqlExceptions = findRelatedSqlExceptions(cause); for (SQLException exception : relatedSqlExceptions) { + // Exception.message can be null on Informix + if (exception.getMessage() == null) { + return false; // PostgreSQL doesn't allow for a proper check - if ("23503".equals(exception.getSQLState()) && exception.getErrorCode() == 0) { + } else if ("23503".equals(exception.getSQLState()) && exception.getErrorCode() == 0) { return false; } else if ( // SqlServer @@ -170,7 +173,10 @@ public static boolean checkVariableIntegrityViolation(Throwable cause) { List relatedSqlExceptions = findRelatedSqlExceptions(cause); for (SQLException exception : relatedSqlExceptions) { - if ( + // Exception.message can be null on Informix + if (exception.getMessage() == null) { + return false; + } else if ( // MySQL & MariaDB (exception.getMessage().toLowerCase().contains("act_uniq_variable") && "23000".equals(exception.getSQLState()) && exception.getErrorCode() == 1062) // PostgreSQL diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.case.engine.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.case.engine.sql index 55aff900654..13164111f0a 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.case.engine.sql +++ b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.case.engine.sql @@ -1,3 +1,19 @@ +-- +-- Copyright © 2012 - 2018 camunda services GmbH and various authors (info@camunda.com) +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- + -- create case definition table -- create table ACT_RE_CASE_DEF ( diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.case.history.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.case.history.sql index 35d8a468cab..cece3e02032 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.case.history.sql +++ b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.case.history.sql @@ -1,3 +1,19 @@ +-- +-- Copyright © 2012 - 2018 camunda services GmbH and various authors (info@camunda.com) +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- + create table ACT_HI_CASEINST ( ID_ varchar(64) not null, CASE_INST_ID_ varchar(64) not null, @@ -36,7 +52,6 @@ create table ACT_HI_CASEACTINST ( primary key (ID_) ); - create index ACT_IDX_HI_CAS_I_CLOSE on ACT_HI_CASEINST(CLOSE_TIME_); create index ACT_IDX_HI_CAS_I_BUSKEY on ACT_HI_CASEINST(BUSINESS_KEY_); create index ACT_IDX_HI_CAS_I_TENANT_ID on ACT_HI_CASEINST(TENANT_ID_); diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.decision.engine.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.decision.engine.sql index 4c6c49a0d63..54a66294ff3 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.decision.engine.sql +++ b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.decision.engine.sql @@ -1,3 +1,19 @@ +-- +-- Copyright © 2012 - 2018 camunda services GmbH and various authors (info@camunda.com) +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- + -- create decision definition table -- create table ACT_RE_DECISION_DEF ( ID_ varchar(64) not null, diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.decision.history.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.decision.history.sql index 5f82acdd49e..c2490424b38 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.decision.history.sql +++ b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.decision.history.sql @@ -1,3 +1,19 @@ +-- +-- Copyright © 2012 - 2018 camunda services GmbH and various authors (info@camunda.com) +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- + -- create history decision instance table -- create table ACT_HI_DECINST ( ID_ varchar(64) not null, @@ -13,9 +29,11 @@ create table ACT_HI_DECINST ( ACT_INST_ID_ varchar(64), ACT_ID_ varchar(255), EVAL_TIME_ datetime year to fraction(5) not null, + REMOVAL_TIME_ datetime year to fraction(5), COLLECT_VALUE_ double precision, USER_ID_ varchar(255), ROOT_DEC_INST_ID_ varchar(64), + ROOT_PROC_INST_ID_ varchar(64), DEC_REQ_ID_ varchar(64), DEC_REQ_KEY_ varchar(255), TENANT_ID_ varchar(64), @@ -36,6 +54,8 @@ create table ACT_HI_DEC_IN ( TEXT2_ lvarchar(4000), TENANT_ID_ varchar(64), CREATE_TIME_ datetime year to fraction(5), + ROOT_PROC_INST_ID_ varchar(64), + REMOVAL_TIME_ datetime year to fraction(5), primary key (ID_) ); @@ -56,6 +76,8 @@ create table ACT_HI_DEC_OUT ( TEXT2_ lvarchar(4000), TENANT_ID_ varchar(64), CREATE_TIME_ datetime year to fraction(5), + ROOT_PROC_INST_ID_ varchar(64), + REMOVAL_TIME_ datetime year to fraction(5), primary key (ID_) ); @@ -71,9 +93,15 @@ create index ACT_IDX_HI_DEC_INST_TENANT_ID on ACT_HI_DECINST(TENANT_ID_); create index ACT_IDX_HI_DEC_INST_ROOT_ID on ACT_HI_DECINST(ROOT_DEC_INST_ID_); create index ACT_IDX_HI_DEC_INST_REQ_ID on ACT_HI_DECINST(DEC_REQ_ID_); create index ACT_IDX_HI_DEC_INST_REQ_KEY on ACT_HI_DECINST(DEC_REQ_KEY_); +create index ACT_IDX_HI_DEC_INST_ROOT_PI on ACT_HI_DECINST(ROOT_PROC_INST_ID_); +create index ACT_IDX_HI_DEC_INST_RM_TIME on ACT_HI_DECINST(REMOVAL_TIME_); create index ACT_IDX_HI_DEC_IN_INST on ACT_HI_DEC_IN(DEC_INST_ID_); create index ACT_IDX_HI_DEC_IN_CLAUSE on ACT_HI_DEC_IN(DEC_INST_ID_, CLAUSE_ID_); +create index ACT_IDX_HI_DEC_IN_ROOT_PI on ACT_HI_DEC_IN(ROOT_PROC_INST_ID_); +create index ACT_IDX_HI_DEC_IN_RM_TIME on ACT_HI_DEC_IN(REMOVAL_TIME_); create index ACT_IDX_HI_DEC_OUT_INST on ACT_HI_DEC_OUT(DEC_INST_ID_); create index ACT_IDX_HI_DEC_OUT_RULE on ACT_HI_DEC_OUT(RULE_ORDER_, CLAUSE_ID_); +create index ACT_IDX_HI_DEC_OUT_ROOT_PI on ACT_HI_DEC_OUT(ROOT_PROC_INST_ID_); +create index ACT_IDX_HI_DEC_OUT_RM_TIME on ACT_HI_DEC_OUT(REMOVAL_TIME_); diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.engine.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.engine.sql index 88cafbde93b..9fce7b041ae 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.engine.sql +++ b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.engine.sql @@ -1,3 +1,19 @@ +-- +-- Copyright © 2012 - 2018 camunda services GmbH and various authors (info@camunda.com) +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- + create table ACT_GE_PROPERTY ( NAME_ varchar(64) not null, VALUE_ varchar(255), @@ -31,6 +47,10 @@ create table ACT_GE_BYTEARRAY ( BYTES_ byte, GENERATED_ boolean, TENANT_ID_ varchar(64), + TYPE_ integer, + CREATE_TIME_ datetime year to fraction(5), + ROOT_PROC_INST_ID_ varchar(64), + REMOVAL_TIME_ datetime year to fraction(5), primary key (ID_) ); @@ -46,6 +66,7 @@ create table ACT_RE_DEPLOYMENT ( create table ACT_RU_EXECUTION ( ID_ varchar(64) not null, REV_ integer, + ROOT_PROC_INST_ID_ varchar(64), PROC_INST_ID_ varchar(64), BUSINESS_KEY_ varchar(255), PARENT_ID_ varchar(64), @@ -90,6 +111,7 @@ create table ACT_RU_JOB ( PRIORITY_ bigint not null default 0, SEQUENCE_COUNTER_ bigint, TENANT_ID_ varchar(64), + CREATE_TIME_ datetime year to fraction(5), primary key (ID_) ); @@ -285,9 +307,11 @@ create table ACT_RU_BATCH ( SUSPENSION_STATE_ integer, CONFIGURATION_ varchar(255), TENANT_ID_ varchar(64), + CREATE_USER_ID_ varchar(255), primary key (ID_) ); +create index ACT_IDX_EXECUTION_ROOT_PI on ACT_RU_EXECUTION(ROOT_PROC_INST_ID_); create index ACT_IDX_EXEC_BUSKEY on ACT_RU_EXECUTION(BUSINESS_KEY_); create index ACT_IDX_EXEC_TENANT_ID on ACT_RU_EXECUTION(TENANT_ID_); create index ACT_IDX_TASK_CREATE on ACT_RU_TASK(CREATE_TIME_); @@ -308,6 +332,7 @@ create index ACT_IDX_JOB_EXECUTION_ID on ACT_RU_JOB(EXECUTION_ID_); create index ACT_IDX_JOB_PROCINST on ACT_RU_JOB(PROCESS_INSTANCE_ID_); create index ACT_IDX_JOB_TENANT_ID on ACT_RU_JOB(TENANT_ID_); create index ACT_IDX_JOBDEF_TENANT_ID on ACT_RU_JOBDEF(TENANT_ID_); +create index ACT_IDX_JOB_JOB_DEF_ID on ACT_RU_JOB(JOB_DEF_ID_); -- new metric milliseconds column create index ACT_IDX_METER_LOG_MS on ACT_RU_METER_LOG(MILLISECONDS_); @@ -323,7 +348,6 @@ create index ACT_IDX_EXT_TASK_TENANT_ID on ACT_RU_EXT_TASK(TENANT_ID_); create index ACT_IDX_EXT_TASK_PRIORITY on ACT_RU_EXT_TASK(PRIORITY_); create index ACT_IDX_EXT_TASK_ERR_DETAILS on ACT_RU_EXT_TASK(ERROR_DETAILS_ID_); create index ACT_IDX_AUTH_GROUP_ID on ACT_RU_AUTHORIZATION(GROUP_ID_); -create index ACT_IDX_JOB_JOB_DEF_ID on ACT_RU_JOB(JOB_DEF_ID_); create function ACT_FCT_USER_ID_OR_ID_(USER_ID_ varchar(255),ID_ varchar(64)) returning varchar(255) with (not variant); return nvl(USER_ID_,ID_); end function; create function ACT_FCT_GROUP_ID_OR_ID_(GROUP_ID_ varchar(255),ID_ varchar(64)) returning varchar(255) with (not variant); return nvl(GROUP_ID_,ID_); end function; @@ -490,6 +514,8 @@ create index ACT_IDX_AUTH_RESOURCE_ID on ACT_RU_AUTHORIZATION(RESOURCE_ID_); -- indexes to improve deployment +create index ACT_IDX_BYTEARRAY_ROOT_PI on ACT_GE_BYTEARRAY(ROOT_PROC_INST_ID_); +create index ACT_IDX_BYTEARRAY_RM_TIME on ACT_GE_BYTEARRAY(REMOVAL_TIME_); create index ACT_IDX_BYTEARRAY_NAME on ACT_GE_BYTEARRAY(NAME_); create index ACT_IDX_DEPLOYMENT_NAME on ACT_RE_DEPLOYMENT(NAME_); create index ACT_IDX_DEPLOYMENT_TENANT_ID on ACT_RE_DEPLOYMENT(TENANT_ID_); diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.history.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.history.sql index 2babd0dad79..5c46616eb13 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.history.sql +++ b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.history.sql @@ -1,3 +1,19 @@ +-- +-- Copyright © 2012 - 2018 camunda services GmbH and various authors (info@camunda.com) +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- + create table ACT_HI_PROCINST ( ID_ varchar(64) not null, PROC_INST_ID_ varchar(64) not null, @@ -12,7 +28,7 @@ create table ACT_HI_PROCINST ( START_ACT_ID_ varchar(255), END_ACT_ID_ varchar(255), SUPER_PROCESS_INSTANCE_ID_ varchar(64), - ROOT_PROCESS_INSTANCE_ID_ varchar(64), + ROOT_PROC_INST_ID_ varchar(64), SUPER_CASE_INSTANCE_ID_ varchar(64), CASE_INST_ID_ varchar(64), DELETE_REASON_ lvarchar(4000), @@ -28,6 +44,7 @@ create table ACT_HI_ACTINST ( PARENT_ACT_INST_ID_ varchar(64), PROC_DEF_KEY_ varchar(255), PROC_DEF_ID_ varchar(64) not null, + ROOT_PROC_INST_ID_ varchar(64), PROC_INST_ID_ varchar(64) not null, EXECUTION_ID_ varchar(64) not null, ACT_ID_ varchar(255) not null, @@ -43,6 +60,7 @@ create table ACT_HI_ACTINST ( ACT_INST_STATE_ integer, SEQUENCE_COUNTER_ bigint, TENANT_ID_ varchar(64), + REMOVAL_TIME_ datetime year to fraction(5), primary key (ID_) ); @@ -51,6 +69,7 @@ create table ACT_HI_TASKINST ( TASK_DEF_KEY_ varchar(255), PROC_DEF_KEY_ varchar(255), PROC_DEF_ID_ varchar(64), + ROOT_PROC_INST_ID_ varchar(64), PROC_INST_ID_ varchar(64), EXECUTION_ID_ varchar(64), CASE_DEF_KEY_ varchar(255), @@ -71,6 +90,7 @@ create table ACT_HI_TASKINST ( DUE_DATE_ datetime year to fraction(5), FOLLOW_UP_DATE_ datetime year to fraction(5), TENANT_ID_ varchar(64), + REMOVAL_TIME_ datetime year to fraction(5), primary key (ID_) ); @@ -78,6 +98,7 @@ create table ACT_HI_VARINST ( ID_ varchar(64) not null, PROC_DEF_KEY_ varchar(255), PROC_DEF_ID_ varchar(64), + ROOT_PROC_INST_ID_ varchar(64), PROC_INST_ID_ varchar(64), EXECUTION_ID_ varchar(64), ACT_INST_ID_ varchar(64), @@ -97,6 +118,7 @@ create table ACT_HI_VARINST ( TEXT2_ lvarchar(4000), TENANT_ID_ varchar(64), STATE_ varchar(20), + REMOVAL_TIME_ datetime year to fraction(5), primary key (ID_) ); @@ -105,6 +127,7 @@ create table ACT_HI_DETAIL ( TYPE_ varchar(255) not null, PROC_DEF_KEY_ varchar(255), PROC_DEF_ID_ varchar(64), + ROOT_PROC_INST_ID_ varchar(64), PROC_INST_ID_ varchar(64), EXECUTION_ID_ varchar(64), CASE_DEF_KEY_ varchar(255), @@ -126,6 +149,7 @@ create table ACT_HI_DETAIL ( SEQUENCE_COUNTER_ bigint, TENANT_ID_ varchar(64), OPERATION_ID_ varchar(64), + REMOVAL_TIME_ datetime year to fraction(5), primary key (ID_) ); @@ -136,11 +160,13 @@ create table ACT_HI_IDENTITYLINK ( USER_ID_ varchar(255), GROUP_ID_ varchar(255), TASK_ID_ varchar(64), + ROOT_PROC_INST_ID_ varchar(64), PROC_DEF_ID_ varchar(64), OPERATION_TYPE_ varchar(64), ASSIGNER_ID_ varchar(64), PROC_DEF_KEY_ varchar(255), TENANT_ID_ varchar(64), + REMOVAL_TIME_ datetime year to fraction(5), primary key (ID_) ); @@ -150,11 +176,13 @@ create table ACT_HI_COMMENT ( TIME_ datetime year to fraction(5) not null, USER_ID_ varchar(255), TASK_ID_ varchar(64), + ROOT_PROC_INST_ID_ varchar(64), PROC_INST_ID_ varchar(64), ACTION_ varchar(255), MESSAGE_ lvarchar(4000), FULL_MSG_ byte, TENANT_ID_ varchar(64), + REMOVAL_TIME_ datetime year to fraction(5), primary key (ID_) ); @@ -166,11 +194,13 @@ create table ACT_HI_ATTACHMENT ( DESCRIPTION_ lvarchar(4000), TYPE_ varchar(255), TASK_ID_ varchar(64), + ROOT_PROC_INST_ID_ varchar(64), PROC_INST_ID_ varchar(64), URL_ lvarchar(4000), CONTENT_ID_ varchar(64), TENANT_ID_ varchar(64), CREATE_TIME_ datetime year to fraction(5), + REMOVAL_TIME_ datetime year to fraction(5), primary key (ID_) ); @@ -179,6 +209,7 @@ create table ACT_HI_OP_LOG ( DEPLOYMENT_ID_ varchar(64), PROC_DEF_ID_ varchar(64), PROC_DEF_KEY_ varchar(255), + ROOT_PROC_INST_ID_ varchar(64), PROC_INST_ID_ varchar(64), EXECUTION_ID_ varchar(64), CASE_DEF_ID_ varchar(64), @@ -197,6 +228,7 @@ create table ACT_HI_OP_LOG ( ORG_VALUE_ lvarchar(4000), NEW_VALUE_ lvarchar(4000), TENANT_ID_ varchar(64), + REMOVAL_TIME_ datetime year to fraction(5), primary key (ID_) ); @@ -204,6 +236,7 @@ create table ACT_HI_INCIDENT ( ID_ varchar(64) not null, PROC_DEF_KEY_ varchar(255), PROC_DEF_ID_ varchar(64), + ROOT_PROC_INST_ID_ varchar(64), PROC_INST_ID_ varchar(64), EXECUTION_ID_ varchar(64), CREATE_TIME_ datetime year to fraction(5) not null, @@ -217,6 +250,7 @@ create table ACT_HI_INCIDENT ( INCIDENT_STATE_ integer, TENANT_ID_ varchar(64), JOB_DEF_ID_ varchar(64), + REMOVAL_TIME_ datetime year to fraction(5), primary key (ID_) ); @@ -235,12 +269,14 @@ create table ACT_HI_JOB_LOG ( JOB_DEF_CONFIGURATION_ varchar(255), ACT_ID_ varchar(255), EXECUTION_ID_ varchar(64), + ROOT_PROC_INST_ID_ varchar(64), PROCESS_INSTANCE_ID_ varchar(64), PROCESS_DEF_ID_ varchar(64), PROCESS_DEF_KEY_ varchar(255), DEPLOYMENT_ID_ varchar(64), SEQUENCE_COUNTER_ bigint, TENANT_ID_ varchar(64), + REMOVAL_TIME_ datetime year to fraction(5), primary key (ID_) ); @@ -257,6 +293,7 @@ create table ACT_HI_BATCH ( CREATE_USER_ID_ varchar(255), START_TIME_ datetime year to fraction(5) not null, END_TIME_ datetime year to fraction(5), + REMOVAL_TIME_ datetime year to fraction(5), primary key (ID_) ); @@ -273,11 +310,13 @@ create table ACT_HI_EXT_TASK_LOG ( ACT_ID_ varchar(255), ACT_INST_ID_ varchar(64), EXECUTION_ID_ varchar(64), + ROOT_PROC_INST_ID_ varchar(64), PROC_INST_ID_ varchar(64), PROC_DEF_ID_ varchar(64), PROC_DEF_KEY_ varchar(255), TENANT_ID_ varchar(64), STATE_ integer, + REMOVAL_TIME_ datetime year to fraction(5), primary key (ID_) ); @@ -287,9 +326,10 @@ create index ACT_IDX_HI_PRO_INST_TENANT_ID on ACT_HI_PROCINST(TENANT_ID_); create index ACT_IDX_HI_PRO_INST_PROC_DEF_KEY on ACT_HI_PROCINST(PROC_DEF_KEY_); create index ACT_IDX_HI_PRO_INST_PROC_TIME on ACT_HI_PROCINST(START_TIME_, END_TIME_); create index ACT_IDX_HI_PI_PDEFID_END_TIME on ACT_HI_PROCINST(PROC_DEF_ID_, END_TIME_); -create index ACT_IDX_HI_PRO_INST_ROOT_PI on ACT_HI_PROCINST(ROOT_PROCESS_INSTANCE_ID_); +create index ACT_IDX_HI_PRO_INST_ROOT_PI on ACT_HI_PROCINST(ROOT_PROC_INST_ID_); create index ACT_IDX_HI_PRO_INST_RM_TIME on ACT_HI_PROCINST(REMOVAL_TIME_); +create index ACT_IDX_HI_ACTINST_ROOT_PI on ACT_HI_ACTINST(ROOT_PROC_INST_ID_); create index ACT_IDX_HI_ACT_INST_START on ACT_HI_ACTINST(START_TIME_); create index ACT_IDX_HI_ACT_INST_END on ACT_HI_ACTINST(END_TIME_); create index ACT_IDX_HI_ACT_INST_PROCINST on ACT_HI_ACTINST(PROC_INST_ID_, ACT_ID_); @@ -298,12 +338,18 @@ create index ACT_IDX_HI_ACT_INST_STATS on ACT_HI_ACTINST(PROC_DEF_ID_, PROC_INST create index ACT_IDX_HI_ACT_INST_TENANT_ID on ACT_HI_ACTINST(TENANT_ID_); create index ACT_IDX_HI_ACT_INST_PROC_DEF_KEY on ACT_HI_ACTINST(PROC_DEF_KEY_); create index ACT_IDX_HI_AI_PDEFID_END_TIME on ACT_HI_ACTINST(PROC_DEF_ID_, END_TIME_); +create index ACT_IDX_HI_ACT_INST_RM_TIME on ACT_HI_ACTINST(REMOVAL_TIME_); +create index ACT_IDX_HI_TASKINST_ROOT_PI on ACT_HI_TASKINST(ROOT_PROC_INST_ID_); create index ACT_IDX_HI_TASK_INST_TENANT_ID on ACT_HI_TASKINST(TENANT_ID_); create index ACT_IDX_HI_TASK_INST_PROC_DEF_KEY on ACT_HI_TASKINST(PROC_DEF_KEY_); create index ACT_IDX_HI_TASKINST_PROCINST on ACT_HI_TASKINST(PROC_INST_ID_); create index ACT_IDX_HI_TASKINSTID_PROCINST on ACT_HI_TASKINST(ID_,PROC_INST_ID_); +create index ACT_IDX_HI_TASK_INST_RM_TIME on ACT_HI_TASKINST(REMOVAL_TIME_); +create index ACT_IDX_HI_TASK_INST_START on ACT_HI_TASKINST(START_TIME_); +create index ACT_IDX_HI_TASK_INST_END on ACT_HI_TASKINST(END_TIME_); +create index ACT_IDX_HI_DETAIL_ROOT_PI on ACT_HI_DETAIL(ROOT_PROC_INST_ID_); create index ACT_IDX_HI_DETAIL_PROC_INST on ACT_HI_DETAIL(PROC_INST_ID_); create index ACT_IDX_HI_DETAIL_ACT_INST on ACT_HI_DETAIL(ACT_INST_ID_); create index ACT_IDX_HI_DETAIL_CASE_INST on ACT_HI_DETAIL(CASE_INST_ID_); @@ -314,44 +360,65 @@ create index ACT_IDX_HI_DETAIL_TASK_ID on ACT_HI_DETAIL(TASK_ID_); create index ACT_IDX_HI_DETAIL_TENANT_ID on ACT_HI_DETAIL(TENANT_ID_); create index ACT_IDX_HI_DETAIL_PROC_DEF_KEY on ACT_HI_DETAIL(PROC_DEF_KEY_); create index ACT_IDX_HI_DETAIL_BYTEAR on ACT_HI_DETAIL(BYTEARRAY_ID_); +create index ACT_IDX_HI_DETAIL_RM_TIME on ACT_HI_DETAIL(REMOVAL_TIME_); +create index ACT_IDX_HI_DETAIL_TASK_BYTEAR on ACT_HI_DETAIL(BYTEARRAY_ID_, TASK_ID_); +create index ACT_IDX_HI_IDENT_LNK_ROOT_PI on ACT_HI_IDENTITYLINK(ROOT_PROC_INST_ID_); 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_TENANT_ID on ACT_HI_IDENTITYLINK(TENANT_ID_); create index ACT_IDX_HI_IDENT_LNK_PROC_DEF_KEY on ACT_HI_IDENTITYLINK(PROC_DEF_KEY_); create index ACT_IDX_HI_IDENT_LINK_TASK on ACT_HI_IDENTITYLINK(TASK_ID_); +create index ACT_IDX_HI_IDENT_LINK_RM_TIME on ACT_HI_IDENTITYLINK(REMOVAL_TIME_); +create index ACT_IDX_HI_VARINST_ROOT_PI on ACT_HI_VARINST(ROOT_PROC_INST_ID_); create index ACT_IDX_HI_PROCVAR_PROC_INST on ACT_HI_VARINST(PROC_INST_ID_); create index ACT_IDX_HI_PROCVAR_NAME_TYPE on ACT_HI_VARINST(NAME_, VAR_TYPE_); create index ACT_IDX_HI_CASEVAR_CASE_INST on ACT_HI_VARINST(CASE_INST_ID_); create index ACT_IDX_HI_VAR_INST_TENANT_ID on ACT_HI_VARINST(TENANT_ID_); create index ACT_IDX_HI_VAR_INST_PROC_DEF_KEY on ACT_HI_VARINST(PROC_DEF_KEY_); create index ACT_IDX_HI_VARINST_BYTEAR on ACT_HI_VARINST(BYTEARRAY_ID_); +create index ACT_IDX_HI_VARINST_RM_TIME on ACT_HI_VARINST(REMOVAL_TIME_); create index ACT_IDX_HI_INCIDENT_TENANT_ID on ACT_HI_INCIDENT(TENANT_ID_); create index ACT_IDX_HI_INCIDENT_PROC_DEF_KEY on ACT_HI_INCIDENT(PROC_DEF_KEY_); +create index ACT_IDX_HI_INCIDENT_ROOT_PI on ACT_HI_INCIDENT(ROOT_PROC_INST_ID_); create index ACT_IDX_HI_INCIDENT_PROCINST on ACT_HI_INCIDENT(PROC_INST_ID_); +create index ACT_IDX_HI_INCIDENT_RM_TIME on ACT_HI_INCIDENT(REMOVAL_TIME_); +create index ACT_IDX_HI_JOB_LOG_ROOT_PI on ACT_HI_JOB_LOG(ROOT_PROC_INST_ID_); create index ACT_IDX_HI_JOB_LOG_PROCINST on ACT_HI_JOB_LOG(PROCESS_INSTANCE_ID_); create index ACT_IDX_HI_JOB_LOG_PROCDEF on ACT_HI_JOB_LOG(PROCESS_DEF_ID_); create index ACT_IDX_HI_JOB_LOG_TENANT_ID on ACT_HI_JOB_LOG(TENANT_ID_); create index ACT_IDX_HI_JOB_LOG_JOB_DEF_ID on ACT_HI_JOB_LOG(JOB_DEF_ID_); create index ACT_IDX_HI_JOB_LOG_PROC_DEF_KEY on ACT_HI_JOB_LOG(PROCESS_DEF_KEY_); create index ACT_IDX_HI_JOB_LOG_EX_STACK on ACT_HI_JOB_LOG(JOB_EXCEPTION_STACK_ID_); +create index ACT_IDX_HI_JOB_LOG_RM_TIME on ACT_HI_JOB_LOG(REMOVAL_TIME_); + +create index ACT_HI_BAT_RM_TIME on ACT_HI_BATCH(REMOVAL_TIME_); +create index ACT_HI_EXT_TASK_LOG_ROOT_PI on ACT_HI_EXT_TASK_LOG(ROOT_PROC_INST_ID_); create index ACT_HI_EXT_TASK_LOG_PROCINST on ACT_HI_EXT_TASK_LOG(PROC_INST_ID_); create index ACT_HI_EXT_TASK_LOG_PROCDEF on ACT_HI_EXT_TASK_LOG(PROC_DEF_ID_); create index ACT_HI_EXT_TASK_LOG_PROC_DEF_KEY on ACT_HI_EXT_TASK_LOG(PROC_DEF_KEY_); create index ACT_HI_EXT_TASK_LOG_TENANT_ID on ACT_HI_EXT_TASK_LOG(TENANT_ID_); create index ACT_IDX_HI_EXTTASKLOG_ERRORDET on ACT_HI_EXT_TASK_LOG(ERROR_DETAILS_ID_); +create index ACT_HI_EXT_TASK_LOG_RM_TIME on ACT_HI_EXT_TASK_LOG(REMOVAL_TIME_); +create index ACT_IDX_HI_OP_LOG_ROOT_PI on ACT_HI_OP_LOG(ROOT_PROC_INST_ID_); create index ACT_IDX_HI_OP_LOG_PROCINST on ACT_HI_OP_LOG(PROC_INST_ID_); create index ACT_IDX_HI_OP_LOG_PROCDEF on ACT_HI_OP_LOG(PROC_DEF_ID_); create index ACT_IDX_HI_OP_LOG_TASK on ACT_HI_OP_LOG(TASK_ID_); +create index ACT_IDX_HI_OP_LOG_RM_TIME on ACT_HI_OP_LOG(REMOVAL_TIME_); +create index ACT_IDX_HI_OP_LOG_TIMESTAMP on ACT_HI_OP_LOG(TIMESTAMP_); create index ACT_IDX_HI_ATTACHMENT_CONTENT on ACT_HI_ATTACHMENT(CONTENT_ID_); +create index ACT_IDX_HI_COMMENT_ROOT_PI on ACT_HI_COMMENT(ROOT_PROC_INST_ID_); create index ACT_IDX_HI_ATTACHMENT_PROCINST on ACT_HI_ATTACHMENT(PROC_INST_ID_); create index ACT_IDX_HI_ATTACHMENT_TASK on ACT_HI_ATTACHMENT(TASK_ID_); +create index ACT_IDX_HI_ATTACHMENT_RM_TIME on ACT_HI_ATTACHMENT(REMOVAL_TIME_); create index ACT_IDX_HI_COMMENT_TASK on ACT_HI_COMMENT(TASK_ID_); +create index ACT_IDX_HI_ATTACHMENT_ROOT_PI on ACT_HI_ATTACHMENT(ROOT_PROC_INST_ID_); create index ACT_IDX_HI_COMMENT_PROCINST on ACT_HI_COMMENT(PROC_INST_ID_); +create index ACT_IDX_HI_COMMENT_RM_TIME on ACT_HI_COMMENT(REMOVAL_TIME_); diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.identity.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.identity.sql index 0fd79ea7531..9eaf5a4bd10 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.identity.sql +++ b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.identity.sql @@ -1,3 +1,19 @@ +-- +-- Copyright © 2012 - 2018 camunda services GmbH and various authors (info@camunda.com) +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- + create table ACT_ID_GROUP ( ID_ varchar(64) not null, REV_ integer, diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Attachment.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Attachment.xml index 060ce172990..6a8470e7eb8 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Attachment.xml +++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Attachment.xml @@ -187,6 +187,15 @@ ${limitAfterWithoutOffset}) + + + + delete from ${prefix}ACT_HI_ATTACHMENT + where REMOVAL_TIME_ <= #{parameter.removalTime} + + + diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Authorization.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Authorization.xml index 2a1cd8f319e..be660714cde 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Authorization.xml +++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Authorization.xml @@ -297,7 +297,7 @@ and RES.RESOURCE_ID_ = #{resourceId} - and ${bitand1}RES.PERMS_${bitand2}${permission}${bitand3} = ${permission} + and ${bitand1}RES.PERMS_${bitand2}#{permission}${bitand3} = #{permission} @@ -337,7 +337,12 @@ WHEN + + ${permCheck.resourceIdQueryParam} IN + + EXISTS + (SELECT A.RESOURCE_ID_ FROM @@ -347,7 +352,7 @@ AND A.USER_ID_ = #{authUserId, jdbcType=VARCHAR} AND - ${bitand1}A.PERMS_${bitand2}${permCheck.perms}${bitand3} = ${permCheck.perms} + ${bitand1}A.PERMS_${bitand2}#{permCheck.perms, jdbcType=INTEGER}${bitand3} = #{permCheck.perms, jdbcType=INTEGER} AND A.RESOURCE_TYPE_ = #{permCheck.resourceType, jdbcType=INTEGER} AND @@ -358,7 +363,12 @@ WHEN + + ${permCheck.resourceIdQueryParam} IN + + EXISTS + (SELECT A.RESOURCE_ID_ FROM @@ -368,7 +378,7 @@ AND A.USER_ID_ = #{authUserId, jdbcType=VARCHAR} AND - ${bitand1}A.PERMS_${bitand2}${permCheck.perms}${bitand3} != ${permCheck.perms} + ${bitand1}A.PERMS_${bitand2}#{permCheck.perms, jdbcType=INTEGER}${bitand3} != #{permCheck.perms, jdbcType=INTEGER} AND A.RESOURCE_TYPE_ = #{permCheck.resourceType, jdbcType=INTEGER} AND @@ -388,7 +398,7 @@ AND A.USER_ID_ = #{authUserId, jdbcType=VARCHAR} AND - ${bitand1}A.PERMS_${bitand2}${permCheck.perms}${bitand3} = ${permCheck.perms} + ${bitand1}A.PERMS_${bitand2}#{permCheck.perms, jdbcType=INTEGER}${bitand3} = #{permCheck.perms, jdbcType=INTEGER} AND A.RESOURCE_TYPE_ = #{permCheck.resourceType, jdbcType=INTEGER} AND @@ -408,7 +418,7 @@ AND A.USER_ID_ = #{authUserId, jdbcType=VARCHAR} AND - ${bitand1}A.PERMS_${bitand2}${permCheck.perms}${bitand3} != ${permCheck.perms} + ${bitand1}A.PERMS_${bitand2}#{permCheck.perms, jdbcType=INTEGER}${bitand3} != #{permCheck.perms, jdbcType=INTEGER} AND A.RESOURCE_TYPE_ = #{permCheck.resourceType, jdbcType=INTEGER} AND @@ -425,7 +435,12 @@ WHEN + + ${permCheck.resourceIdQueryParam} IN + + EXISTS + (SELECT A.RESOURCE_ID_ FROM @@ -435,7 +450,7 @@ AND A.GROUP_ID_ IN #{item} AND - ${bitand1}A.PERMS_${bitand2}${permCheck.perms}${bitand3} = ${permCheck.perms} + ${bitand1}A.PERMS_${bitand2}#{permCheck.perms, jdbcType=INTEGER}${bitand3} = #{permCheck.perms, jdbcType=INTEGER} AND A.RESOURCE_TYPE_ = #{permCheck.resourceType, jdbcType=INTEGER} AND @@ -446,7 +461,12 @@ WHEN + + ${permCheck.resourceIdQueryParam} IN + + EXISTS + (SELECT A.RESOURCE_ID_ FROM @@ -456,7 +476,7 @@ AND A.GROUP_ID_ IN #{item} AND - ${bitand1}A.PERMS_${bitand2}${permCheck.perms}${bitand3} != ${permCheck.perms} + ${bitand1}A.PERMS_${bitand2}#{permCheck.perms, jdbcType=INTEGER}${bitand3} != #{permCheck.perms, jdbcType=INTEGER} AND A.RESOURCE_TYPE_ = #{permCheck.resourceType, jdbcType=INTEGER} AND @@ -476,7 +496,7 @@ AND A.GROUP_ID_ IN #{item} AND - ${bitand1}A.PERMS_${bitand2}${permCheck.perms}${bitand3} = ${permCheck.perms} + ${bitand1}A.PERMS_${bitand2}#{permCheck.perms, jdbcType=INTEGER}${bitand3} = #{permCheck.perms, jdbcType=INTEGER} AND A.RESOURCE_TYPE_ = #{permCheck.resourceType, jdbcType=INTEGER} AND @@ -496,7 +516,7 @@ AND A.GROUP_ID_ IN #{item} AND - ${bitand1}A.PERMS_${bitand2}${permCheck.perms}${bitand3} != ${permCheck.perms} + ${bitand1}A.PERMS_${bitand2}#{permCheck.perms, jdbcType=INTEGER}${bitand3} != #{permCheck.perms, jdbcType=INTEGER} AND A.RESOURCE_TYPE_ = #{permCheck.resourceType, jdbcType=INTEGER} AND @@ -511,7 +531,12 @@ WHEN + + ${permCheck.resourceIdQueryParam} IN + + EXISTS + (SELECT A.RESOURCE_ID_ FROM @@ -521,7 +546,7 @@ AND A.USER_ID_ = '*' AND - ${bitand1}A.PERMS_${bitand2}${permCheck.perms}${bitand3} = ${permCheck.perms} + ${bitand1}A.PERMS_${bitand2}#{permCheck.perms, jdbcType=INTEGER}${bitand3} = #{permCheck.perms, jdbcType=INTEGER} AND A.RESOURCE_TYPE_ = #{permCheck.resourceType, jdbcType=INTEGER} AND @@ -532,7 +557,12 @@ WHEN + + ${permCheck.resourceIdQueryParam} IN + + EXISTS + (SELECT A.RESOURCE_ID_ FROM @@ -542,7 +572,7 @@ AND A.USER_ID_ = '*' AND - ${bitand1}A.PERMS_${bitand2}${permCheck.perms}${bitand3} != ${permCheck.perms} + ${bitand1}A.PERMS_${bitand2}#{permCheck.perms, jdbcType=INTEGER}${bitand3} != #{permCheck.perms, jdbcType=INTEGER} AND A.RESOURCE_TYPE_ = #{permCheck.resourceType, jdbcType=INTEGER} AND @@ -562,7 +592,7 @@ AND A.USER_ID_ = '*' AND - ${bitand1}A.PERMS_${bitand2}${permCheck.perms}${bitand3} = ${permCheck.perms} + ${bitand1}A.PERMS_${bitand2}#{permCheck.perms, jdbcType=INTEGER}${bitand3} = #{permCheck.perms, jdbcType=INTEGER} AND A.RESOURCE_TYPE_ = #{permCheck.resourceType, jdbcType=INTEGER} AND @@ -582,7 +612,7 @@ AND A.USER_ID_ = '*' AND - ${bitand1}A.PERMS_${bitand2}${permCheck.perms}${bitand3} != ${permCheck.perms} + ${bitand1}A.PERMS_${bitand2}#{permCheck.perms, jdbcType=INTEGER}${bitand3} != #{permCheck.perms, jdbcType=INTEGER} AND A.RESOURCE_TYPE_ = #{permCheck.resourceType, jdbcType=INTEGER} AND @@ -701,12 +731,12 @@ AND ( - A.RESOURCE_TYPE_ = #{permCheck.resourceType, jdbcType=INTEGER} AND ${bitand1}A.PERMS_${bitand2}${permCheck.perms}${bitand3} = ${permCheck.perms} + A.RESOURCE_TYPE_ = #{permCheck.resourceType, jdbcType=INTEGER} AND ${bitand1}A.PERMS_${bitand2}#{permCheck.perms, jdbcType=INTEGER}${bitand3} = #{permCheck.perms, jdbcType=INTEGER} - A.RESOURCE_TYPE_ = #{permCheck.resourceType, jdbcType=INTEGER} AND ${bitand1}A.PERMS_${bitand2}${permCheck.perms}${bitand3} = ${permCheck.perms} + A.RESOURCE_TYPE_ = #{permCheck.resourceType, jdbcType=INTEGER} AND ${bitand1}A.PERMS_${bitand2}#{permCheck.perms, jdbcType=INTEGER}${bitand3} = #{permCheck.perms, jdbcType=INTEGER} ) diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Comment.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Comment.xml index b7ba6bd9d44..a4e31a4dea9 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Comment.xml +++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Comment.xml @@ -207,6 +207,15 @@ ${limitAfterWithoutOffset}) + + + + delete from ${prefix}ACT_HI_COMMENT + where REMOVAL_TIME_ <= #{parameter.removalTime} + + + diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricActivityInstance.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricActivityInstance.xml index acfece063dc..5e97ad3d02c 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricActivityInstance.xml +++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricActivityInstance.xml @@ -194,6 +194,15 @@ ${limitAfterWithoutOffset}) + + + + delete from ${prefix}ACT_HI_ACTINST + where REMOVAL_TIME_ <= #{parameter.removalTime} + + + diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricBatch.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricBatch.xml index 2f54fa17815..d04281f9725 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricBatch.xml +++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricBatch.xml @@ -134,6 +134,15 @@ ${limitAfterWithoutOffset}) + + + + delete from ${prefix}ACT_HI_BATCH + where REMOVAL_TIME_ <= #{parameter.removalTime} + + + update ${prefix}ACT_HI_BATCH diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricDecisionInputInstance.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricDecisionInputInstance.xml index d9b3cd33b24..a4ac02b4e30 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricDecisionInputInstance.xml +++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricDecisionInputInstance.xml @@ -220,6 +220,15 @@ ${limitAfterWithoutOffset}) + + + + delete from ${prefix}ACT_HI_DEC_IN + where REMOVAL_TIME_ <= #{parameter.removalTime} + + + diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricDecisionInstance.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricDecisionInstance.xml index 7336805db45..f00b0b4b300 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricDecisionInstance.xml +++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricDecisionInstance.xml @@ -195,6 +195,15 @@ ${limitAfterWithoutOffset}) + + + + delete from ${prefix}ACT_HI_DECINST + where REMOVAL_TIME_ <= #{parameter.removalTime} + + + diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricDecisionOutputInstance.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricDecisionOutputInstance.xml index bf8e306c8bf..36dff2dff9a 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricDecisionOutputInstance.xml +++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricDecisionOutputInstance.xml @@ -226,6 +226,15 @@ ${limitAfterWithoutOffset}) + + + + delete from ${prefix}ACT_HI_DEC_OUT + where REMOVAL_TIME_ <= #{parameter.removalTime} + + + diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricDetail.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricDetail.xml index 8687fbb47d7..698d05324a9 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricDetail.xml +++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricDetail.xml @@ -261,6 +261,15 @@ ${limitAfterWithoutOffset}) + + + + delete from ${prefix}ACT_HI_DETAIL + where REMOVAL_TIME_ <= #{parameter.removalTime} + + + diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricExternalTaskLog.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricExternalTaskLog.xml index bf971833b40..5a62c480427 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricExternalTaskLog.xml +++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricExternalTaskLog.xml @@ -174,6 +174,15 @@ ${limitAfterWithoutOffset}) + + + + delete from ${prefix}ACT_HI_EXT_TASK_LOG + where REMOVAL_TIME_ <= #{parameter.removalTime} + + + @@ -370,4 +379,4 @@ - \ No newline at end of file + diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricIdentityLinkLog.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricIdentityLinkLog.xml index 57cdaa20452..b0b2d25a6b0 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricIdentityLinkLog.xml +++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricIdentityLinkLog.xml @@ -217,6 +217,15 @@ ${limitAfterWithoutOffset}) + + + + delete from ${prefix}ACT_HI_IDENTITYLINK + where REMOVAL_TIME_ <= #{parameter.removalTime} + + + @@ -378,4 +387,4 @@ ORDER BY RES.TIMESTAMP_ ASC - \ No newline at end of file + diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricIncident.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricIncident.xml index cb04d6e5554..bd6a55fdc75 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricIncident.xml +++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricIncident.xml @@ -275,6 +275,15 @@ ${limitAfterWithoutOffset}) + + + + delete from ${prefix}ACT_HI_INCIDENT + where REMOVAL_TIME_ <= #{parameter.removalTime} + + + diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricJobLog.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricJobLog.xml index 32000178ba5..d3cde2ee009 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricJobLog.xml +++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricJobLog.xml @@ -216,6 +216,15 @@ ${limitAfterWithoutOffset}) + + + + delete from ${prefix}ACT_HI_JOB_LOG + where REMOVAL_TIME_ <= #{parameter.removalTime} + + + diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricProcessInstance.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricProcessInstance.xml index d22586106b1..4779f5b672e 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricProcessInstance.xml +++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricProcessInstance.xml @@ -190,6 +190,15 @@ ${limitAfterWithoutOffset}) + + + + delete from ${prefix}ACT_HI_PROCINST + where REMOVAL_TIME_ <= #{parameter.removalTime} + + + + + + + delete from ${prefix}ACT_HI_TASKINST + where REMOVAL_TIME_ <= #{parameter.removalTime} + + + diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricVariableInstance.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricVariableInstance.xml index 15ecb5f8e88..b83d486917e 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricVariableInstance.xml +++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/HistoricVariableInstance.xml @@ -219,6 +219,15 @@ ${limitAfterWithoutOffset}) + + + + delete from ${prefix}ACT_HI_VARINST + where REMOVAL_TIME_ <= #{parameter.removalTime} + + + diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/UserOperationLogEntry.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/UserOperationLogEntry.xml index 51dc98a4174..2bbab8cd7e5 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/UserOperationLogEntry.xml +++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/UserOperationLogEntry.xml @@ -201,6 +201,15 @@ ${limitAfterWithoutOffset}) + + + + delete from ${prefix}ACT_HI_OP_LOG + where REMOVAL_TIME_ <= #{parameter.removalTime} + + + diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/VariableInstance.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/VariableInstance.xml index c66b75b688b..657d78e3e02 100644 --- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/VariableInstance.xml +++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/VariableInstance.xml @@ -884,6 +884,15 @@ ${limitAfterWithoutOffset}) + + + + delete from ${prefix}ACT_GE_BYTEARRAY + where REMOVAL_TIME_ <= #{parameter.removalTime} + + +