From 67e22903873eeeebeeff810b9f7599c70092755e Mon Sep 17 00:00:00 2001 From: Edvard Fonsell Date: Wed, 31 Mar 2021 14:13:40 +0300 Subject: [PATCH] disable cache for oracle sequences (#446) * disable cache for oracle sequences * another fix to oracle scripts * update changelog [ci-skip] * initialize seq * drop and recreate nflow_workflow_action_id_seq * Tune Oracle SQL scripts * Tune oracle update script still more * Update CHANGELOG.md Co-authored-by: Esa Puttonen --- CHANGELOG.md | 6 +++++ .../scripts/db/oracle.create.ddl.sql | 10 ++++---- .../db/update-7.2.5-x/oracle.update.ddl.sql | 25 +++++++++++++++++++ 3 files changed, 36 insertions(+), 5 deletions(-) create mode 100644 nflow-engine/src/main/resources/scripts/db/update-7.2.5-x/oracle.update.ddl.sql diff --git a/CHANGELOG.md b/CHANGELOG.md index a2ec6c71f..bdb0a02c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ - Sortable workflow definitions, workflow instance search result and executors tables - Persist workflow instance query parameters to URL - Support wildcard characters when searching workflow instances by business key or external id +- Database scripts + - Fix issues in Oracle scripts **Details** - `nflow-jetty` @@ -20,6 +22,10 @@ - y18n 4.0.1 - `nflow-engine` - Support SQL wildcards in workflow instance queries by business key or external id +- Database scripts + - Disable cache for Oracle sequences + - Fix `nflow_workflow_action_insert` trigger in Oracle database scripts + - Fix syntax error in `create table nflow_workflow` statement in `oracle.create.ddl.sql` ## 7.2.4 (2021-02-25) diff --git a/nflow-engine/src/main/resources/scripts/db/oracle.create.ddl.sql b/nflow-engine/src/main/resources/scripts/db/oracle.create.ddl.sql index 06646c3de..a65e21a15 100644 --- a/nflow-engine/src/main/resources/scripts/db/oracle.create.ddl.sql +++ b/nflow-engine/src/main/resources/scripts/db/oracle.create.ddl.sql @@ -4,7 +4,7 @@ create table nflow_workflow ( id int not null primary key, status varchar(32) not null, type varchar(64) not null, - priority smallint not null default 0, + priority smallint default 0 not null, parent_workflow_id int default null, parent_action_id int default null, business_key varchar(64), @@ -31,7 +31,7 @@ create index nflow_workflow_polling on nflow_workflow(next_activation, status, e create index idx_workflow_parent on nflow_workflow(parent_workflow_id) / -create sequence nflow_workflow_id_seq +create sequence nflow_workflow_id_seq nocache / create or replace trigger nflow_workflow_insert @@ -70,7 +70,7 @@ create table nflow_workflow_action ( create index nflow_workflow_action_workflow on nflow_workflow_action(workflow_id) / -create sequence nflow_workflow_action_id_seq +create sequence nflow_workflow_action_id_seq nocache / create or replace trigger nflow_workflow_action_insert @@ -78,7 +78,7 @@ create or replace trigger nflow_workflow_action_insert for each row declare begin - :new.id := nflow_workflow_id_seq.nextval; + :new.id := nflow_workflow_action_id_seq.nextval; end; / @@ -104,7 +104,7 @@ create table nflow_executor ( ) / -create sequence nflow_executor_id_seq +create sequence nflow_executor_id_seq nocache / create or replace trigger nflow_executor_insert diff --git a/nflow-engine/src/main/resources/scripts/db/update-7.2.5-x/oracle.update.ddl.sql b/nflow-engine/src/main/resources/scripts/db/update-7.2.5-x/oracle.update.ddl.sql new file mode 100644 index 000000000..5c3787120 --- /dev/null +++ b/nflow-engine/src/main/resources/scripts/db/update-7.2.5-x/oracle.update.ddl.sql @@ -0,0 +1,25 @@ +alter sequence nflow_executor_id_seq nocache +/ + +alter sequence nflow_workflow_id_seq nocache +/ + +drop sequence nflow_workflow_action_id_seq +/ + +declare + id_with_slack number; +begin + select nvl(max(id),0) + 1000 into id_with_slack from nflow_workflow_action; + execute immediate 'create sequence nflow_workflow_action_id_seq start with ' || id_with_slack || ' nocache'; +end; +/ + +create or replace trigger nflow_workflow_action_insert + before insert on nflow_workflow_action + for each row +declare +begin + :new.id := nflow_workflow_action_id_seq.nextval; +end; +/