Skip to content

Commit

Permalink
DB2 syntactically correct
Browse files Browse the repository at this point in the history
  • Loading branch information
phax committed Mar 1, 2022
1 parent 3d093d3 commit 7d4ed34
Show file tree
Hide file tree
Showing 14 changed files with 265 additions and 187 deletions.
3 changes: 3 additions & 0 deletions docker/db2/init.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@echo off
docker volume create db2
docker volume ls
3 changes: 3 additions & 0 deletions docker/db2/reset.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@echo off
docker volume rm db2
docker volume ls
3 changes: 3 additions & 0 deletions docker/db2/start.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@echo off
docker run -itd --pull=always --rm --name mydb2 --privileged=true -p 50000:50000 -e LICENSE=accept -e DB2INST1_PASSWORD=password -e DBNAME=testdb -v db2:/database ibmcom/db2:latest

Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ public void updateOwnershipsAndKillUsers (@Nonnull final ICommonsMap <String, St
aExecutor.executeStatement ("ALTER TABLE smp_ownership DROP CONSTRAINT FK_smp_ownership_username;");
break;
case ORACLE:
case DB2:
// No such constraint
break;
default:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,9 @@
-- limitations under the License.
--

CREATE TABLE `smp_settings` (
`id` varchar(45) NOT NULL,
`value` varchar(500),
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='SMP Settings';
CREATE TABLE "smp_settings" (
"id" varchar(45) NOT NULL,
"value" varchar(500),
CONSTRAINT "pk_smp_settings" PRIMARY KEY
("id")
);
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@
-- limitations under the License.
--

RENAME TABLE smp_service_metadata_redirection TO smp_service_metadata_red;
-- Already done in V1
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,4 @@
-- limitations under the License.
--

ALTER TABLE `smp_secuser` MODIFY `loginname` varchar(200) NOT NULL;
ALTER TABLE `smp_secuser` MODIFY `email` varchar(200);
-- Already done in V1
Original file line number Diff line number Diff line change
Expand Up @@ -15,106 +15,165 @@
-- limitations under the License.
--

CREATE TABLE `smp_user` (
`username` varchar(256) NOT NULL,
`password` varchar(256) NOT NULL,
PRIMARY KEY (`username`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- Disable as per v5.5.2
-- INSERT INTO `smp_user` VALUES ('peppol_user','Test1234');

CREATE TABLE `smp_service_group` (
`businessIdentifierScheme` varchar(25) NOT NULL,
`businessIdentifier` varchar(50) NOT NULL,
`extension` longtext,
PRIMARY KEY (`businessIdentifierScheme`,`businessIdentifier`),
UNIQUE KEY `bid` (`businessIdentifierScheme`,`businessIdentifier`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `smp_service_metadata` (
`businessIdentifierScheme` varchar(25) NOT NULL,
`businessIdentifier` varchar(50) NOT NULL,
`documentIdentifierScheme` varchar(25) NOT NULL,
`documentIdentifier` varchar(500) NOT NULL,
`extension` longtext,
PRIMARY KEY (`businessIdentifierScheme`,`businessIdentifier`,`documentIdentifierScheme`,`documentIdentifier`),
KEY `FK_smp_service_metadata_id` (`businessIdentifierScheme`,`businessIdentifier`),
CONSTRAINT `FK_smp_service_metadata_businessIdentifier` FOREIGN KEY (`businessIdentifierScheme`, `businessIdentifier`) REFERENCES `smp_service_group` (`businessIdentifierScheme`, `businessIdentifier`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `smp_process` (
`businessIdentifierScheme` varchar(25) NOT NULL,
`businessIdentifier` varchar(50) NOT NULL,
`documentIdentifierScheme` varchar(25) NOT NULL,
`documentIdentifier` varchar(500) NOT NULL,
`processIdentifierType` varchar(25) NOT NULL,
`processIdentifier` varchar(200) NOT NULL,
`extension` longtext,
PRIMARY KEY (`businessIdentifierScheme`,`businessIdentifier`,`documentIdentifierScheme`,`documentIdentifier`,`processIdentifierType`,`processIdentifier`),
KEY `FK_smp_process_id` (`businessIdentifierScheme`,`businessIdentifier`,`documentIdentifierScheme`,`documentIdentifier`),
CONSTRAINT `FK_smp_process_documentIdentifierScheme` FOREIGN KEY (`businessIdentifierScheme`, `businessIdentifier`, `documentIdentifierScheme`, `documentIdentifier`) REFERENCES `smp_service_metadata` (`businessIdentifierScheme`, `businessIdentifier`, `documentIdentifierScheme`, `documentIdentifier`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- MUST use latin1 otherwise the key in this table is too long
CREATE TABLE `smp_endpoint` (
`businessIdentifierScheme` varchar(25) NOT NULL,
`businessIdentifier` varchar(50) NOT NULL,
`documentIdentifierScheme` varchar(25) NOT NULL,
`documentIdentifier` varchar(500) NOT NULL,
`processIdentifierType` varchar(25) NOT NULL,
`processIdentifier` varchar(200) NOT NULL,
`certificate` longtext NOT NULL,
`endpointReference` varchar(256) NOT NULL,
`minimumAuthenticationLevel` varchar(256) DEFAULT NULL,
`requireBusinessLevelSignature` tinyint(1) NOT NULL,
`serviceActivationDate` datetime DEFAULT NULL,
`serviceDescription` longtext NOT NULL,
`serviceExpirationDate` datetime DEFAULT NULL,
`technicalContactUrl` varchar(256) NOT NULL,
`technicalInformationUrl` varchar(256) DEFAULT NULL,
`transportProfile` varchar(256) NOT NULL,
`extension` longtext,
PRIMARY KEY (`businessIdentifierScheme`,`businessIdentifier`,`documentIdentifierScheme`,`documentIdentifier`,`processIdentifierType`,`processIdentifier`,`transportProfile`),
CONSTRAINT `FK_smp_endpoint_documentIdentifierScheme` FOREIGN KEY (`businessIdentifierScheme`, `businessIdentifier`, `documentIdentifierScheme`, `documentIdentifier`, `processIdentifierType`, `processIdentifier`) REFERENCES `smp_process` (`businessIdentifierScheme`, `businessIdentifier`, `documentIdentifierScheme`, `documentIdentifier`, `processIdentifierType`, `processIdentifier`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `smp_ownership` (
`businessIdentifierScheme` varchar(25) NOT NULL,
`businessIdentifier` varchar(50) NOT NULL,
`username` varchar(256) NOT NULL,
PRIMARY KEY (`businessIdentifierScheme`,`businessIdentifier`,`username`),
KEY `FK_smp_ownership_username` (`username`),
CONSTRAINT `FK_smp_ownership_id` FOREIGN KEY (`businessIdentifierScheme`, `businessIdentifier`) REFERENCES `smp_service_group` (`businessIdentifierScheme`, `businessIdentifier`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `FK_smp_ownership_username` FOREIGN KEY (`username`) REFERENCES `smp_user` (`username`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `smp_service_metadata_redirection` (
`businessIdentifierScheme` varchar(25) NOT NULL,
`businessIdentifier` varchar(50) NOT NULL,
`documentIdentifierScheme` varchar(25) NOT NULL,
`documentIdentifier` varchar(500) NOT NULL,
`certificateUID` varchar(256) DEFAULT NULL,
`redirectionUrl` varchar(256) NOT NULL,
`extension` longtext,
`certificate` longtext,
PRIMARY KEY (`documentIdentifierScheme`,`businessIdentifier`,`businessIdentifierScheme`,`documentIdentifier`),
KEY `FK_smp_redirect_businessIdentifier` (`businessIdentifierScheme`,`businessIdentifier`),
CONSTRAINT `FK_smp_redirect_businessIdentifier` FOREIGN KEY (`businessIdentifierScheme`, `businessIdentifier`) REFERENCES `smp_service_group` (`businessIdentifierScheme`, `businessIdentifier`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `smp_bce` (
`id` varchar(45) NOT NULL COMMENT 'Internal ID',
`pid` varchar(255) NOT NULL COMMENT 'Participant/Business ID',
`name` text NOT NULL COMMENT 'Entity name',
`country` varchar(3) NOT NULL COMMENT 'Country code',
`geoinfo` text COMMENT 'Geographical information',
`identifiers` text COMMENT 'Additional identifiers',
`websites` text COMMENT 'Website URIs',
`contacts` text COMMENT 'Contact information',
`addon` longtext COMMENT 'Additional information',
`regdate` date DEFAULT NULL COMMENT 'Registration date',
PRIMARY KEY (`id`),
KEY `FK_pid` (`pid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='SMP Business Card Entity';

--<ScriptOptions statementTerminator=";"/>


CREATE TABLE "smp_user" (
"username" VARCHAR(256) NOT NULL,
"password" VARCHAR(256) NOT NULL,
CONSTRAINT "pk_smp_user" PRIMARY KEY
("username")
);


CREATE TABLE "smp_service_group" (
"businessIdentifierScheme" VARCHAR(25) NOT NULL,
"businessIdentifier" VARCHAR(50) NOT NULL,
"extension" CLOB,
CONSTRAINT "pk_smp_service_group" PRIMARY KEY
("businessIdentifierScheme", "businessIdentifier")
);


CREATE TABLE "smp_service_metadata" (
"businessIdentifierScheme" VARCHAR(25) NOT NULL,
"businessIdentifier" VARCHAR(50) NOT NULL,
"documentIdentifierScheme" VARCHAR(25) NOT NULL,
"documentIdentifier" VARCHAR(500) NOT NULL,
"extension" CLOB,
CONSTRAINT "pk_smp_service_metadata" PRIMARY KEY
("businessIdentifierScheme", "businessIdentifier",
"documentIdentifierScheme", "documentIdentifier")
);


CREATE TABLE "smp_process" (
"businessIdentifierScheme" VARCHAR(25) NOT NULL,
"businessIdentifier" VARCHAR(50) NOT NULL,
"documentIdentifierScheme" VARCHAR(25) NOT NULL,
"documentIdentifier" VARCHAR(500) NOT NULL,
"processIdentifierType" VARCHAR(25) NOT NULL,
"processIdentifier" VARCHAR(200) NOT NULL,
"extension" CLOB,
CONSTRAINT "pk_smp_process" PRIMARY KEY
("businessIdentifierScheme", "businessIdentifier",
"documentIdentifierScheme", "documentIdentifier",
"processIdentifierType", "processIdentifier")
);


CREATE TABLE "smp_endpoint" (
"businessIdentifierScheme" VARCHAR(25) NOT NULL,
"businessIdentifier" VARCHAR(50) NOT NULL,
"documentIdentifierScheme" VARCHAR(25) NOT NULL,
"documentIdentifier" VARCHAR(500) NOT NULL,
"processIdentifierType" VARCHAR(25) NOT NULL,
"processIdentifier" VARCHAR(200) NOT NULL,
"certificate" CLOB NOT NULL,
"endpointReference" VARCHAR(256) NOT NULL,
"minimumAuthenticationLevel" VARCHAR(256) DEFAULT NULL,
"requireBusinessLevelSignature" SMALLINT NOT NULL,
"serviceActivationDate" TIMESTAMP DEFAULT NULL,
"serviceDescription" CLOB NOT NULL,
"serviceExpirationDate" TIMESTAMP DEFAULT NULL,
"technicalContactUrl" VARCHAR(256) NOT NULL,
"technicalInformationUrl" VARCHAR(256) DEFAULT NULL,
-- [DB2] avoid maximum PK length is exceeded
"transportProfile" VARCHAR(45) NOT NULL,
"extension" CLOB,
CONSTRAINT "pk_smp_endpoint" PRIMARY KEY
("businessIdentifierScheme", "businessIdentifier",
"documentIdentifierScheme", "documentIdentifier",
"processIdentifierType", "processIdentifier",
"transportProfile")
);


CREATE TABLE "smp_ownership" (
"businessIdentifierScheme" VARCHAR(25) NOT NULL,
"businessIdentifier" VARCHAR(50) NOT NULL,
"username" VARCHAR(256) NOT NULL,
CONSTRAINT "pk_smp_ownership" PRIMARY KEY
("businessIdentifierScheme", "businessIdentifier",
"username")
);


CREATE TABLE "smp_service_metadata_red" (
"businessIdentifierScheme" VARCHAR(25) NOT NULL,
"businessIdentifier" VARCHAR(50) NOT NULL,
"documentIdentifierScheme" VARCHAR(25) NOT NULL,
"documentIdentifier" VARCHAR(500) NOT NULL,
"certificateUID" VARCHAR(256),
"redirectionUrl" VARCHAR(256) NOT NULL,
"extension" CLOB,
"certificate" CLOB,
CONSTRAINT "pk_smp_service_metadata_red" PRIMARY KEY
("businessIdentifierScheme", "businessIdentifier",
"documentIdentifierScheme", "documentIdentifier")
);


CREATE TABLE "smp_bce" (
"id" VARCHAR(45) NOT NULL,
"pid" VARCHAR(255) NOT NULL,
"name" CLOB NOT NULL,
"country" VARCHAR(3) NOT NULL,
"geoinfo" CLOB,
"identifiers" CLOB,
"websites" CLOB,
"contacts" CLOB,
"addon" CLOB,
"regdate" DATE,
CONSTRAINT "pk_smp_bce" PRIMARY KEY ("id")
);


CREATE INDEX "idx_smp_bce" ON "smp_bce"
("pid" ASC);

CREATE INDEX "idx_smp_process" ON "smp_process"
("businessIdentifierScheme" ASC, "businessIdentifier" ASC,
"documentIdentifierScheme" ASC, "documentIdentifier" ASC);

CREATE INDEX "idx_smp_service_metadata" ON "smp_service_metadata"
("businessIdentifierScheme" ASC, "businessIdentifier" ASC);


ALTER TABLE "smp_endpoint" ADD CONSTRAINT "fk_smp_endpoint_documentidentifierscheme" FOREIGN KEY
("businessIdentifierScheme", "businessIdentifier", "documentIdentifierScheme", "documentIdentifier", "processIdentifierType", "processIdentifier")
REFERENCES "smp_process"
("businessIdentifierScheme", "businessIdentifier", "documentIdentifierScheme", "documentIdentifier", "processIdentifierType", "processIdentifier")
ON DELETE CASCADE;

ALTER TABLE "smp_ownership" ADD CONSTRAINT "fk_smp_ownership_id" FOREIGN KEY
("businessIdentifierScheme", "businessIdentifier")
REFERENCES "smp_service_group"
("businessIdentifierScheme", "businessIdentifier")
ON DELETE CASCADE;

-- Is dropped later anyway
--ALTER TABLE "smp_ownership" ADD CONSTRAINT "fk_smp_ownership_username" FOREIGN KEY
-- ("username")
-- REFERENCES "smp_user"
-- ("username")
-- ON DELETE CASCADE;

ALTER TABLE "smp_process" ADD CONSTRAINT "fk_smp_process_documentidentifierscheme" FOREIGN KEY
("businessIdentifierScheme", "businessIdentifier", "documentIdentifierScheme", "documentIdentifier")
REFERENCES "smp_service_metadata"
("businessIdentifierScheme", "businessIdentifier", "documentIdentifierScheme", "documentIdentifier")
ON DELETE CASCADE;

ALTER TABLE "smp_service_metadata" ADD CONSTRAINT "fk_smp_service_metadata_businessidentifier" FOREIGN KEY
("businessIdentifierScheme", "businessIdentifier")
REFERENCES "smp_service_group"
("businessIdentifierScheme", "businessIdentifier")
ON DELETE CASCADE;

ALTER TABLE "smp_service_metadata_red" ADD CONSTRAINT "fk_smp_redirect_businessidentifier" FOREIGN KEY
("businessIdentifierScheme", "businessIdentifier")
REFERENCES "smp_service_group"
("businessIdentifierScheme", "businessIdentifier")
ON DELETE CASCADE;
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@
-- limitations under the License.
--

CREATE TABLE `smp_pmigration` (
`id` varchar(45) NOT NULL COMMENT 'Internal ID',
`direction` varchar(45) NOT NULL COMMENT 'Migration direction',
`state` varchar(45) NOT NULL COMMENT 'Migration state',
`pid` varchar(255) NOT NULL COMMENT 'Participant/Business ID',
`initdt` datetime NOT NULL COMMENT 'The date and time when the migration was initiated',
`migkey` varchar(45) NOT NULL COMMENT 'The migration key itself',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='SMP Participant Migration Entity';
CREATE TABLE "smp_pmigration" (
"id" varchar(45) NOT NULL,
"direction" varchar(45) NOT NULL,
"state" varchar(45) NOT NULL,
"pid" varchar(255) NOT NULL,
"initdt" timestamp NOT NULL,
"migkey" varchar(45) NOT NULL,
CONSTRAINT "pk_smp_pmigration" PRIMARY KEY
("id")
);
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,10 @@
-- limitations under the License.
--

CREATE TABLE `smp_tprofile` (
`id` varchar(45) NOT NULL COMMENT 'Internal ID',
`name` text NOT NULL COMMENT 'Transport profile name',
`deprecated` tinyint(1) NOT NULL COMMENT 'Deprecated or not?',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='SMP Transport Profile Entity';
CREATE TABLE "smp_tprofile" (
"id" varchar(45) NOT NULL,
"name" CLOB NOT NULL,
"deprecated" SMALLINT NOT NULL,
CONSTRAINT "pk_smp_tprofile" PRIMARY KEY
("id")
);
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@
-- limitations under the License.
--

CREATE TABLE `smp_audit` (
`id` int NOT NULL AUTO_INCREMENT COMMENT 'Ensure order of entry',
`dt` datetime NOT NULL COMMENT 'The date and time of the execution',
`userid` varchar(20) NOT NULL COMMENT 'The executing user ID',
`actiontype` varchar(10) NOT NULL COMMENT 'The object type',
`success` tinyint(1) NOT NULL COMMENT 'Was the action successful or not?',
`action` text COMMENT 'The action and arguments that were performed',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='SMP Audit';
CREATE TABLE "smp_audit" (
"id" int NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1),
"dt" timestamp NOT NULL,
"userid" varchar(20) NOT NULL,
"actiontype" varchar(10) NOT NULL,
"success" SMALLINT NOT NULL,
"action" CLOB,
CONSTRAINT "pk_smp_audit" PRIMARY KEY
("id")
);
Loading

0 comments on commit 7d4ed34

Please sign in to comment.