From 55753d7da6332cd21c9d77f0b1c7cfbbe21a595b Mon Sep 17 00:00:00 2001 From: Michael Minella Date: Wed, 20 Nov 2013 13:54:05 -0600 Subject: [PATCH] BATCH-2124: Updated files to prevent the ability of inserting more than one row by accident into the sequence tables --- .../batch/core/schema-mysql.sql | 29 +++++++++++++++---- .../src/main/sql/mysql.properties | 1 + spring-batch-core/src/main/sql/mysql.vpp | 6 ++-- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-mysql.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-mysql.sql index 5d24ab343..eab0b084f 100644 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-mysql.sql +++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-mysql.sql @@ -76,9 +76,26 @@ CREATE TABLE BATCH_JOB_EXECUTION_CONTEXT ( references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID) ) ENGINE=InnoDB; -CREATE TABLE BATCH_STEP_EXECUTION_SEQ (ID BIGINT NOT NULL) ENGINE=InnoDB; -INSERT INTO BATCH_STEP_EXECUTION_SEQ values(0); -CREATE TABLE BATCH_JOB_EXECUTION_SEQ (ID BIGINT NOT NULL) ENGINE=InnoDB; -INSERT INTO BATCH_JOB_EXECUTION_SEQ values(0); -CREATE TABLE BATCH_JOB_SEQ (ID BIGINT NOT NULL) ENGINE=InnoDB; -INSERT INTO BATCH_JOB_SEQ values(0); +CREATE TABLE BATCH_STEP_EXECUTION_SEQ ( + ID BIGINT NOT NULL, + UNIQUE_KEY CHAR(1) NOT NULL + constraint UNIQUE_KEY_UN unique (UNIQUE_KEY) +) ENGINE=MYISAM; + +INSERT INTO BATCH_STEP_EXECUTION_SEQ values(0, '0'); + +CREATE TABLE BATCH_JOB_EXECUTION_SEQ ( + ID BIGINT NOT NULL, + UNIQUE_KEY CHAR(1) NOT NULL + constraint UNIQUE_KEY_UN unique (UNIQUE_KEY) +) ENGINE=MYISAM; + +INSERT INTO BATCH_JOB_EXECUTION_SEQ values(0, '0'); + +CREATE TABLE BATCH_JOB_SEQ ( + ID BIGINT NOT NULL, + UNIQUE_KEY CHAR(1) NOT NULL + constraint UNIQUE_KEY_UN unique (UNIQUE_KEY) +) ENGINE=MYISAM; + +INSERT INTO BATCH_JOB_SEQ values(0, '0'); diff --git a/spring-batch-core/src/main/sql/mysql.properties b/spring-batch-core/src/main/sql/mysql.properties index 9dc34ec8e..3d83bc702 100644 --- a/spring-batch-core/src/main/sql/mysql.properties +++ b/spring-batch-core/src/main/sql/mysql.properties @@ -10,5 +10,6 @@ BLOB = BLOB CLOB = TEXT TIMESTAMP = DATETIME VARCHAR = VARCHAR +CHAR = CHAR # for generating drop statements... SEQUENCE = TABLE diff --git a/spring-batch-core/src/main/sql/mysql.vpp b/spring-batch-core/src/main/sql/mysql.vpp index b9d80b890..d49adb54b 100644 --- a/spring-batch-core/src/main/sql/mysql.vpp +++ b/spring-batch-core/src/main/sql/mysql.vpp @@ -1,4 +1,6 @@ -#macro (sequence $name $value)CREATE TABLE ${name} (ID BIGINT NOT NULL) ENGINE=InnoDB; -INSERT INTO ${name} values(0); +#macro (sequence $name $value)CREATE TABLE ${name} (ID BIGINT NOT NULL, + UNIQUE_KEY CHAR(1) NOT NULL, + constraint ${name}_UN unique (UNIQUE_KEY)) ENGINE=MYISAM; +INSERT INTO ${name} values(0, '0'); #end #macro (notnull $name $type)MODIFY COLUMN ${name} ${type} NOT NULL#end