From 81526f77aca7218114e048b2db3a223180a629ac Mon Sep 17 00:00:00 2001 From: Wayne Lund Date: Mon, 11 Feb 2013 12:13:48 -0800 Subject: [PATCH 1/4] Fixed issue of "drop table" scripts causing tests to fail in samples. Only done for sqlfire and postgres. I believe others that do not have the "if exists" statements in their drop tables scripts should be retested as I have not had to do this on any other previous version. Suspect that "continueOnError" default flag has somehow gotten flipped. --- .../batch/core/schema-drop-postgresql.sql | 18 ++++++++--------- .../batch/core/schema-drop-sqlf.sql | 18 ++++++++--------- .../batch/core/schema-postgresql.sql | 1 + spring-batch-samples/pom.xml | 3 +-- .../resources/batch-postgresql.properties | 20 +++++++++++++++++++ .../src/main/resources/batch-sqlf.properties | 6 ++++-- .../resources/business-schema-postgresql.sql | 20 +++++++++---------- .../main/resources/business-schema-sqlf.sql | 20 +++++++++---------- 8 files changed, 64 insertions(+), 42 deletions(-) create mode 100644 spring-batch-samples/src/main/resources/batch-postgresql.properties diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-postgresql.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-postgresql.sql index 891182071..b8bfceeaa 100644 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-postgresql.sql +++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-postgresql.sql @@ -1,12 +1,12 @@ -- Autogenerated: do not edit this file -DROP TABLE BATCH_STEP_EXECUTION_CONTEXT ; -DROP TABLE BATCH_JOB_EXECUTION_CONTEXT ; -DROP TABLE BATCH_STEP_EXECUTION ; -DROP TABLE BATCH_JOB_EXECUTION_PARAMS ; -DROP TABLE BATCH_JOB_EXECUTION ; -DROP TABLE BATCH_JOB_INSTANCE ; +DROP TABLE IF EXISTS BATCH_STEP_EXECUTION_CONTEXT CASCADE; +DROP TABLE IF EXISTS BATCH_JOB_EXECUTION_CONTEXT CASCADE; +DROP TABLE IF EXISTS BATCH_STEP_EXECUTION CASCADE; +DROP TABLE IF EXISTS BATCH_JOB_EXECUTION_PARAMS CASCADE; +DROP TABLE IF EXISTS BATCH_JOB_EXECUTION CASCADE; +DROP TABLE IF EXISTS BATCH_JOB_INSTANCE CASCADE; -DROP SEQUENCE BATCH_STEP_EXECUTION_SEQ ; -DROP SEQUENCE BATCH_JOB_EXECUTION_SEQ ; -DROP SEQUENCE BATCH_JOB_SEQ ; +DROP SEQUENCE IF EXISTS BATCH_STEP_EXECUTION_SEQ ; +DROP SEQUENCE IF EXISTS BATCH_JOB_EXECUTION_SEQ ; +DROP SEQUENCE IF EXISTS BATCH_JOB_SEQ ; diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-sqlf.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-sqlf.sql index d63d1c074..b65c4869e 100644 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-sqlf.sql +++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-sqlf.sql @@ -1,12 +1,12 @@ -- Autogenerated: do not edit this file -DROP TABLE BATCH_STEP_EXECUTION_CONTEXT ; -DROP TABLE BATCH_JOB_EXECUTION_CONTEXT ; -DROP TABLE BATCH_STEP_EXECUTION ; -DROP TABLE BATCH_JOB_EXECUTION_PARAMS ; -DROP TABLE BATCH_JOB_EXECUTION ; -DROP TABLE BATCH_JOB_INSTANCE ; +DROP TABLE IF EXISTS BATCH_STEP_EXECUTION_CONTEXT ; +DROP TABLE IF EXISTS BATCH_JOB_EXECUTION_CONTEXT ; +DROP TABLE IF EXISTS BATCH_STEP_EXECUTION ; +DROP TABLE IF EXISTS BATCH_JOB_EXECUTION_PARAMS ; +DROP TABLE IF EXISTS BATCH_JOB_EXECUTION ; +DROP TABLE IF EXISTS BATCH_JOB_INSTANCE ; -DROP TABLE BATCH_STEP_EXECUTION_SEQ ; -DROP TABLE BATCH_JOB_EXECUTION_SEQ ; -DROP TABLE BATCH_JOB_SEQ ; +DROP TABLE IF EXISTS BATCH_STEP_EXECUTION_SEQ ; +DROP TABLE IF EXISTS BATCH_JOB_EXECUTION_SEQ ; +DROP TABLE IF EXISTS BATCH_JOB_SEQ ; diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-postgresql.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-postgresql.sql index 82dcb00c0..d0435b3f8 100644 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-postgresql.sql +++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-postgresql.sql @@ -31,6 +31,7 @@ CREATE TABLE BATCH_JOB_EXECUTION_PARAMS ( DATE_VAL TIMESTAMP DEFAULT NULL , LONG_VAL BIGINT , DOUBLE_VAL DOUBLE PRECISION , + IDENTIFYING CHAR(1) NOT NULL , constraint JOB_EXEC_PARAMS_FK foreign key (JOB_EXECUTION_ID) references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID) ) ; diff --git a/spring-batch-samples/pom.xml b/spring-batch-samples/pom.xml index 46bb1cf4e..860be73b1 100644 --- a/spring-batch-samples/pom.xml +++ b/spring-batch-samples/pom.xml @@ -189,9 +189,8 @@ postgresql postgresql - 8.3-603.jdbc3 + 9.1-901.jdbc4 true - runtime org.springframework diff --git a/spring-batch-samples/src/main/resources/batch-postgresql.properties b/spring-batch-samples/src/main/resources/batch-postgresql.properties new file mode 100644 index 000000000..bf554dde7 --- /dev/null +++ b/spring-batch-samples/src/main/resources/batch-postgresql.properties @@ -0,0 +1,20 @@ +# Placeholders batch.* +# for Postgres: +batch.jdbc.driver=org.postgresql.Driver +batch.jdbc.url=jdbc:postgresql://localhost/samples +batch.jdbc.user=postgres +batch.jdbc.password=dba +batch.jdbc.testWhileIdle=false +batch.jdbc.validationQuery= +batch.jdbc.verifyCursorPosition=false +batch.drop.script=classpath:/org/springframework/batch/core/schema-drop-postgresql.sql +batch.schema.script=classpath:/org/springframework/batch/core/schema-postgresql.sql +batch.business.schema.script=business-schema-postgresql.sql +batch.data.source.init=true +batch.database.incrementer.class=org.springframework.jdbc.support.incrementer.PostgreSQLSequenceMaxValueIncrementer +batch.database.incrementer.parent=sequenceIncrementerParent +batch.lob.handler.class=org.springframework.jdbc.support.lob.DefaultLobHandler +batch.grid.size=2 +batch.jdbc.pool.size=6 +batch.verify.cursor.position=false +batch.isolationlevel=ISOLATION_SERIALIZABLE \ No newline at end of file diff --git a/spring-batch-samples/src/main/resources/batch-sqlf.properties b/spring-batch-samples/src/main/resources/batch-sqlf.properties index f47ecf9d1..532ab10fb 100644 --- a/spring-batch-samples/src/main/resources/batch-sqlf.properties +++ b/spring-batch-samples/src/main/resources/batch-sqlf.properties @@ -1,5 +1,5 @@ # Placeholders batch.* -# for Derby: +# for SQLFire: batch.jdbc.driver=com.vmware.sqlfire.jdbc.ClientDriver batch.jdbc.url=jdbc:sqlfire://localhost:1257/;update=true batch.jdbc.user=SAMPLES @@ -7,7 +7,7 @@ batch.jdbc.password=SAMPLES batch.jdbc.testWhileIdle=false batch.jdbc.validationQuery= batch.jdbc.verifyCursorPosition=false -batch.drop.script=classpath:/org/springframework/batch/core/schema-drop-derby.sql +batch.drop.script=classpath:/org/springframework/batch/core/schema-drop-sqlf.sql batch.schema.script=classpath:/org/springframework/batch/core/schema-sqlf.sql batch.business.schema.script=business-schema-sqlf.sql batch.data.source.init=true @@ -17,4 +17,6 @@ batch.lob.handler.class=org.springframework.jdbc.support.lob.DefaultLobHandler batch.grid.size=2 batch.jdbc.pool.size=6 batch.verify.cursor.position=false +#add this for your jobRepository bean p:isolationLevelForCreate = "${batch.isolationlevel}" +#see simple-job-launcher-context.xml for example batch.isolationlevel=ISOLATION_READ_COMMITTED \ No newline at end of file diff --git a/spring-batch-samples/src/main/resources/business-schema-postgresql.sql b/spring-batch-samples/src/main/resources/business-schema-postgresql.sql index 63add0c36..461a8c365 100644 --- a/spring-batch-samples/src/main/resources/business-schema-postgresql.sql +++ b/spring-batch-samples/src/main/resources/business-schema-postgresql.sql @@ -1,14 +1,14 @@ -- Autogenerated: do not edit this file -DROP SEQUENCE BATCH_STAGING_SEQ ; -DROP SEQUENCE TRADE_SEQ ; -DROP SEQUENCE CUSTOMER_SEQ ; -DROP TABLE BATCH_STAGING ; -DROP TABLE TRADE ; -DROP TABLE CUSTOMER ; -DROP TABLE PLAYERS ; -DROP TABLE GAMES ; -DROP TABLE PLAYER_SUMMARY ; -DROP TABLE ERROR_LOG ; +DROP SEQUENCE IF EXISTS BATCH_STAGING_SEQ ; +DROP SEQUENCE IF EXISTS TRADE_SEQ ; +DROP SEQUENCE IF EXISTS CUSTOMER_SEQ ; +DROP TABLE IF EXISTS BATCH_STAGING ; +DROP TABLE IF EXISTS TRADE ; +DROP TABLE IF EXISTS CUSTOMER ; +DROP TABLE IF EXISTS PLAYERS ; +DROP TABLE IF EXISTS GAMES ; +DROP TABLE IF EXISTS PLAYER_SUMMARY ; +DROP TABLE IF EXISTS ERROR_LOG ; -- Autogenerated: do not edit this file diff --git a/spring-batch-samples/src/main/resources/business-schema-sqlf.sql b/spring-batch-samples/src/main/resources/business-schema-sqlf.sql index 027892559..59d67936e 100644 --- a/spring-batch-samples/src/main/resources/business-schema-sqlf.sql +++ b/spring-batch-samples/src/main/resources/business-schema-sqlf.sql @@ -1,15 +1,15 @@ -- Autogenerated: do not edit this file -- You might need to remove this section the first time you run against a clean database -DROP TABLE BATCH_STAGING_SEQ ; -DROP TABLE TRADE_SEQ ; -DROP TABLE CUSTOMER_SEQ ; -DROP TABLE BATCH_STAGING ; -DROP TABLE TRADE ; -DROP TABLE CUSTOMER ; -DROP TABLE PLAYERS ; -DROP TABLE GAMES ; -DROP TABLE PLAYER_SUMMARY ; -DROP TABLE ERROR_LOG ; +DROP TABLE IF EXISTS BATCH_STAGING_SEQ ; +DROP TABLE IF EXISTS TRADE_SEQ ; +DROP TABLE IF EXISTS CUSTOMER_SEQ ; +DROP TABLE IF EXISTS BATCH_STAGING ; +DROP TABLE IF EXISTS TRADE ; +DROP TABLE IF EXISTS CUSTOMER ; +DROP TABLE IF EXISTS PLAYERS ; +DROP TABLE IF EXISTS GAMES ; +DROP TABLE IF EXISTS PLAYER_SUMMARY ; +DROP TABLE IF EXISTS ERROR_LOG ; -- Autogenerated: do not edit this file From 4beba532206bc971e86a7af43f02c22e84715d43 Mon Sep 17 00:00:00 2001 From: Wayne Lund Date: Tue, 12 Feb 2013 23:11:36 -0800 Subject: [PATCH 2/4] Made changes to generate-sql. Do not understand how we copy from generated-sources to /src/main/resources but the generation has fixed all of the same bugs that were manually fixed in /src/main/resources including the preferred approach, drop contraints for postgresql. --- .../src/main/sql/drop.constraints.sql.vpp | 7 +++++++ .../src/main/sql/postgresql.properties | 1 + spring-batch-core/src/main/sql/sqlf.properties | 13 +++++++++++++ spring-batch-core/src/main/sql/sqlf.vpp | 3 +++ 4 files changed, 24 insertions(+) create mode 100644 spring-batch-core/src/main/sql/drop.constraints.sql.vpp create mode 100644 spring-batch-core/src/main/sql/sqlf.properties create mode 100644 spring-batch-core/src/main/sql/sqlf.vpp diff --git a/spring-batch-core/src/main/sql/drop.constraints.sql.vpp b/spring-batch-core/src/main/sql/drop.constraints.sql.vpp new file mode 100644 index 000000000..cdeb14c42 --- /dev/null +++ b/spring-batch-core/src/main/sql/drop.constraints.sql.vpp @@ -0,0 +1,7 @@ +ALTER TABLE BATCH_JOB_INSTANCE DROP CONSTRAINT ${IFEXISTSBEFORE} JOB_INST_UN; +ALTER TABLE BATCH_JOB_EXECUTION DROP CONSTRAINT ${IFEXISTSBEFORE} JOB_INST_EXEC_FK; +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS DROP CONSTRAINT ${IFEXISTSBEFORE} JOB_EXEC_PARAMS_FK; +ALTER TABLE BATCH_STEP_EXECUTION DROP CONSTRAINT ${IFEXISTSBEFORE} JOB_EXEC_STEP_FK; +ALTER TABLE BATCH_STEP_EXECUTION_CONTEXT DROP CONSTRAINT ${IFEXISTSBEFORE} STEP_EXEC_CTX_FK; +ALTER TABLE BATCH_JOB_EXECUTION_CONTEXT DROP CONSTRAINT ${IFEXISTSBEFORE} JOB_EXEC_CTX_FK; + diff --git a/spring-batch-core/src/main/sql/postgresql.properties b/spring-batch-core/src/main/sql/postgresql.properties index 8d51883a7..f2b744e1a 100644 --- a/spring-batch-core/src/main/sql/postgresql.properties +++ b/spring-batch-core/src/main/sql/postgresql.properties @@ -3,6 +3,7 @@ platform=postgresql BIGINT = BIGINT IDENTITY = GENERATED = +IFEXISTSBEFORE = IF EXISTS DOUBLE = DOUBLE PRECISION BLOB = BYTEA CLOB = TEXT diff --git a/spring-batch-core/src/main/sql/sqlf.properties b/spring-batch-core/src/main/sql/sqlf.properties new file mode 100644 index 000000000..ff40f7be0 --- /dev/null +++ b/spring-batch-core/src/main/sql/sqlf.properties @@ -0,0 +1,13 @@ +platform=sqlfire +# SQL language oddities (cloned from Derby) +BIGINT = BIGINT +IDENTITY = +GENERATED = GENERATED BY DEFAULT AS IDENTITY +IFEXISTSBEFORE = IF EXISTS +DOUBLE = DOUBLE PRECISION +BLOB = BLOB +CLOB = CLOB +TIMESTAMP = TIMESTAMP +VARCHAR = VARCHAR +# for generating drop statements... +SEQUENCE = TABLE diff --git a/spring-batch-core/src/main/sql/sqlf.vpp b/spring-batch-core/src/main/sql/sqlf.vpp new file mode 100644 index 000000000..8e346ba00 --- /dev/null +++ b/spring-batch-core/src/main/sql/sqlf.vpp @@ -0,0 +1,3 @@ +#macro (sequence $name $value)CREATE TABLE ${name} (ID BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, DUMMY VARCHAR(1)); +#end +#macro (notnull $name $type)ALTER COLUMN ${name} NOT NULL#end From f056a1136fcbecf7cc23a497b241924ed72be32b Mon Sep 17 00:00:00 2001 From: Wayne Lund Date: Tue, 12 Feb 2013 23:14:21 -0800 Subject: [PATCH 3/4] Failed to add all of the files in the previous commit. These are the other additional changes made. --- spring-batch-core/pom.xml | 16 +++++++++++++++- .../batch/core/schema-drop-postgresql.sql | 6 ++++++ .../src/main/sql/postgresql.properties | 1 + spring-batch-core/src/main/sql/postgresql.vpp | 2 ++ .../src/main/sql/schema-drop.sql.vpp | 4 +++- 5 files changed, 27 insertions(+), 2 deletions(-) diff --git a/spring-batch-core/pom.xml b/spring-batch-core/pom.xml index 27dcc5d88..5593f2061 100644 --- a/spring-batch-core/pom.xml +++ b/spring-batch-core/pom.xml @@ -188,8 +188,22 @@ - + + + + + + + + + + + + + + + diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-postgresql.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-postgresql.sql index b8bfceeaa..3be649d76 100644 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-postgresql.sql +++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-postgresql.sql @@ -1,4 +1,10 @@ -- Autogenerated: do not edit this file +ALTER TABLE BATCH_JOB_INSTANCE DROP CONSTRAINT IF EXISTS JOB_INST_UN; +ALTER TABLE BATCH_JOB_EXECUTION DROP CONSTRAINT IF EXISTS JOB_INST_EXEC_FK; +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS DROP CONSTRAINT IF EXISTS JOB_EXEC_PARAMS_FK; +ALTER TABLE BATCH_STEP_EXECUTION DROP CONSTRAINT IF EXISTS JOB_EXEC_STEP_FK; +ALTER TABLE BATCH_STEP_EXECUTION_CONTEXT DROP CONSTRAINT IF EXISTS STEP_EXEC_CTX_FK; +ALTER TABLE BATCH_JOB_EXECUTION_CONTEXT DROP CONSTRAINT IF EXISTS JOB_EXEC_CTX_FK; DROP TABLE IF EXISTS BATCH_STEP_EXECUTION_CONTEXT CASCADE; DROP TABLE IF EXISTS BATCH_JOB_EXECUTION_CONTEXT CASCADE; diff --git a/spring-batch-core/src/main/sql/postgresql.properties b/spring-batch-core/src/main/sql/postgresql.properties index f2b744e1a..15041c2a5 100644 --- a/spring-batch-core/src/main/sql/postgresql.properties +++ b/spring-batch-core/src/main/sql/postgresql.properties @@ -4,6 +4,7 @@ BIGINT = BIGINT IDENTITY = GENERATED = IFEXISTSBEFORE = IF EXISTS +DROPCONSTRAINT = TRUE DOUBLE = DOUBLE PRECISION BLOB = BYTEA CLOB = TEXT diff --git a/spring-batch-core/src/main/sql/postgresql.vpp b/spring-batch-core/src/main/sql/postgresql.vpp index 59986a65a..3d0eebaf6 100644 --- a/spring-batch-core/src/main/sql/postgresql.vpp +++ b/spring-batch-core/src/main/sql/postgresql.vpp @@ -1,3 +1,5 @@ +#macro (alter $name $table $constraint) ALTER TABLE ${name} DROP CONSTRAINT IF EXISTS ${constraint}; +#end #macro (sequence $name $value)CREATE SEQUENCE ${name} MAXVALUE 9223372036854775807 NO CYCLE; #end #macro (notnull $name $type)ALTER COLUMN ${name} SET NOT NULL#end diff --git a/spring-batch-core/src/main/sql/schema-drop.sql.vpp b/spring-batch-core/src/main/sql/schema-drop.sql.vpp index 36da3d815..33650f0a3 100644 --- a/spring-batch-core/src/main/sql/schema-drop.sql.vpp +++ b/spring-batch-core/src/main/sql/schema-drop.sql.vpp @@ -1,3 +1,5 @@ -- Autogenerated: do not edit this file - +## Done so that we didn't have to modify all of the other files besides postgresql +#if (!$DROPCONSTRAINT) #set($DROPCONSTRAINT = "FALSE") #end +#if ( $DROPCONSTRAINT == "TRUE") #parse("${includes}/drop.constraints.sql.vpp") #end #parse("${includes}/destroy.sql.vpp") From d2549044b869b3ac3cbc397339640e0c537bbbb8 Mon Sep 17 00:00:00 2001 From: Michael Minella Date: Tue, 19 Feb 2013 09:11:59 -0600 Subject: [PATCH 4/4] BATCH-1960: Removed cascades and updated .vpp files --- .../batch/core/schema-drop-postgresql.sql | 12 ++++++------ spring-batch-core/src/main/sql/schema.sql.vpp | 9 +++++---- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-postgresql.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-postgresql.sql index 3be649d76..96de64fa4 100644 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-postgresql.sql +++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-postgresql.sql @@ -6,12 +6,12 @@ ALTER TABLE BATCH_STEP_EXECUTION DROP CONSTRAINT IF EXISTS JOB_EXEC_STEP_FK; ALTER TABLE BATCH_STEP_EXECUTION_CONTEXT DROP CONSTRAINT IF EXISTS STEP_EXEC_CTX_FK; ALTER TABLE BATCH_JOB_EXECUTION_CONTEXT DROP CONSTRAINT IF EXISTS JOB_EXEC_CTX_FK; -DROP TABLE IF EXISTS BATCH_STEP_EXECUTION_CONTEXT CASCADE; -DROP TABLE IF EXISTS BATCH_JOB_EXECUTION_CONTEXT CASCADE; -DROP TABLE IF EXISTS BATCH_STEP_EXECUTION CASCADE; -DROP TABLE IF EXISTS BATCH_JOB_EXECUTION_PARAMS CASCADE; -DROP TABLE IF EXISTS BATCH_JOB_EXECUTION CASCADE; -DROP TABLE IF EXISTS BATCH_JOB_INSTANCE CASCADE; +DROP TABLE IF EXISTS BATCH_STEP_EXECUTION_CONTEXT; +DROP TABLE IF EXISTS BATCH_JOB_EXECUTION_CONTEXT; +DROP TABLE IF EXISTS BATCH_STEP_EXECUTION; +DROP TABLE IF EXISTS BATCH_JOB_EXECUTION_PARAMS; +DROP TABLE IF EXISTS BATCH_JOB_EXECUTION; +DROP TABLE IF EXISTS BATCH_JOB_INSTANCE; DROP SEQUENCE IF EXISTS BATCH_STEP_EXECUTION_SEQ ; DROP SEQUENCE IF EXISTS BATCH_JOB_EXECUTION_SEQ ; diff --git a/spring-batch-core/src/main/sql/schema.sql.vpp b/spring-batch-core/src/main/sql/schema.sql.vpp index 223daa836..fd7a0bd92 100644 --- a/spring-batch-core/src/main/sql/schema.sql.vpp +++ b/spring-batch-core/src/main/sql/schema.sql.vpp @@ -23,16 +23,17 @@ CREATE TABLE BATCH_JOB_EXECUTION ( references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID) ) $!{VOODOO}; -CREATE TABLE BATCH_JOB_PARAMS ( - JOB_INSTANCE_ID ${BIGINT} NOT NULL , +CREATE TABLE BATCH_JOB_EXECUTION_PARAMS ( + JOB_EXECUTION_ID ${BIGINT} NOT NULL , TYPE_CD ${VARCHAR}(6) NOT NULL , KEY_NAME ${VARCHAR}(100) NOT NULL , STRING_VAL ${VARCHAR}(250) $!{NULL}, DATE_VAL ${TIMESTAMP} DEFAULT NULL $!{NULL}, LONG_VAL ${BIGINT} $!{NULL}, DOUBLE_VAL ${DOUBLE} $!{NULL}, - constraint JOB_INST_PARAMS_FK foreign key (JOB_INSTANCE_ID) - references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID) + IDENTIFYING ${CHAR}(1) NOT NULL , + constraint JOB_EXEC_PARAMS_FK foreign key (JOB_EXECUTION_ID) + references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID) ) $!{VOODOO}; CREATE TABLE BATCH_STEP_EXECUTION (