diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 5074a479657ac0aee77ede05636325d4c77f05d6..aff24ff4ee70335cf4bd4811e4484a6324d36fab 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -3,6 +3,7 @@ ## Summary ### Features +- cta/CTA#1001 Maximum file size is now defined by VO instead of globally. # v4.1-1 diff --git a/catalogue/4.2/mysql_catalogue_schema.sql b/catalogue/4.2/mysql_catalogue_schema.sql new file mode 100644 index 0000000000000000000000000000000000000000..e88ac3e28dc852cb88be5973bd65270f75c1308c --- /dev/null +++ b/catalogue/4.2/mysql_catalogue_schema.sql @@ -0,0 +1,422 @@ +CREATE TABLE ARCHIVE_FILE_ID( + ID BIGINT UNSIGNED, + CONSTRAINT ARCHIVE_FILE_ID_PK PRIMARY KEY(ID) +); +INSERT INTO ARCHIVE_FILE_ID(ID) VALUES(1); +CREATE TABLE LOGICAL_LIBRARY_ID( + ID BIGINT UNSIGNED, + CONSTRAINT LOGICAL_LIBRARY_ID_PK PRIMARY KEY(ID) +); +INSERT INTO LOGICAL_LIBRARY_ID(ID) VALUES(1); +CREATE TABLE MEDIA_TYPE_ID( + ID BIGINT UNSIGNED, + CONSTRAINT MEDIA_TYPE_ID_PK PRIMARY KEY(ID) +); +INSERT INTO MEDIA_TYPE_ID(ID) VALUES(1); +CREATE TABLE STORAGE_CLASS_ID( + ID BIGINT UNSIGNED, + CONSTRAINT STORAGE_CLASS_ID_PK PRIMARY KEY(ID) +); +INSERT INTO STORAGE_CLASS_ID(ID) VALUES(1); +CREATE TABLE TAPE_POOL_ID( + ID BIGINT UNSIGNED, + CONSTRAINT TAPE_POOL_ID_PK PRIMARY KEY(ID) +); +INSERT INTO TAPE_POOL_ID(ID) VALUES(1); +CREATE TABLE VIRTUAL_ORGANIZATION_ID( + ID BIGINT UNSIGNED, + CONSTRAINT VIRTUAL_ORGANIZATION_ID_PK PRIMARY KEY(ID) +); +INSERT INTO VIRTUAL_ORGANIZATION_ID(ID) VALUES(1); +CREATE TABLE FILE_RECYCLE_LOG_ID( + ID BIGINT UNSIGNED, + CONSTRAINT FILE_RECYCLE_LOG_ID PRIMARY KEY(ID) +); +INSERT INTO FILE_RECYCLE_LOG_ID(ID) VALUES (1); +CREATE TABLE CTA_CATALOGUE( + SCHEMA_VERSION_MAJOR BIGINT UNSIGNED CONSTRAINT CTA_CATALOGUE_SVM1_NN NOT NULL, + SCHEMA_VERSION_MINOR BIGINT UNSIGNED CONSTRAINT CTA_CATALOGUE_SVM2_NN NOT NULL, + NEXT_SCHEMA_VERSION_MAJOR BIGINT UNSIGNED, + NEXT_SCHEMA_VERSION_MINOR BIGINT UNSIGNED, + STATUS VARCHAR(100), + IS_PRODUCTION CHAR(1) DEFAULT '0' CONSTRAINT CTA_CATALOGUE_IP_NN NOT NULL, + CONSTRAINT CTA_CATALOGUE_IP_BOOL_CK CHECK(IS_PRODUCTION IN ('0','1')) +); +CREATE TABLE ADMIN_USER( + ADMIN_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_AUN_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT ADMIN_USER_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_CLHN_NN NOT NULL, + CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT ADMIN_USER_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_LUHN_NN NOT NULL, + LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT ADMIN_USER_LUT_NN NOT NULL, + CONSTRAINT ADMIN_USER_PK PRIMARY KEY(ADMIN_USER_NAME) +); +CREATE TABLE DISK_SYSTEM( + DISK_SYSTEM_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_DSNM_NN NOT NULL, + FILE_REGEXP VARCHAR(100) CONSTRAINT DISK_SYSTEM_FR_NN NOT NULL, + FREE_SPACE_QUERY_URL VARCHAR(1000) CONSTRAINT DISK_SYSTEM_FSQU_NN NOT NULL, + REFRESH_INTERVAL BIGINT UNSIGNED CONSTRAINT DISK_SYSTEM_RI_NN NOT NULL, + TARGETED_FREE_SPACE BIGINT UNSIGNED CONSTRAINT DISK_SYSTEM_TFS_NN NOT NULL, + SLEEP_TIME BIGINT UNSIGNED CONSTRAINT DISK_SYSTEM_ST_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT DISK_SYSTEM_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_CLHN_NN NOT NULL, + CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT DISK_SYSTEM_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_LUHN_NN NOT NULL, + LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT DISK_SYSTEM_LUT_NN NOT NULL, + CONSTRAINT NAME_PK PRIMARY KEY(DISK_SYSTEM_NAME) +); +CREATE TABLE VIRTUAL_ORGANIZATION( + VIRTUAL_ORGANIZATION_ID BIGINT UNSIGNED CONSTRAINT VIRTUAL_ORGANIZATION_VOI_NN NOT NULL, + VIRTUAL_ORGANIZATION_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_VON_NN NOT NULL, + READ_MAX_DRIVES BIGINT UNSIGNED CONSTRAINT VIRTUAL_ORGANIZATION_RMD_NN NOT NULL, + WRITE_MAX_DRIVES BIGINT UNSIGNED CONSTRAINT VIRTUAL_ORGANIZATION_WMD_NN NOT NULL, + MAX_FILE_SIZE BIGINT UNSIGNED CONSTRAINT VIRTUAL_ORGANIZATION_MFS_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT VIRTUAL_ORGANIZATION_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLHN_NN NOT NULL, + CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT VIRTUAL_ORGANIZATION_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_LUHN_NN NOT NULL, + LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT VIRTUAL_ORGANIZATION_LUT_NN NOT NULL, + CONSTRAINT VIRTUAL_ORGANIZATION_PK PRIMARY KEY(VIRTUAL_ORGANIZATION_ID), + CONSTRAINT VIRTUAL_ORGANIZATION_VON_UN UNIQUE(VIRTUAL_ORGANIZATION_NAME) +); +CREATE TABLE STORAGE_CLASS( + STORAGE_CLASS_ID BIGINT UNSIGNED CONSTRAINT STORAGE_CLASS_SCI_NN NOT NULL, + STORAGE_CLASS_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_SCN_NN NOT NULL, + NB_COPIES TINYINT UNSIGNED CONSTRAINT STORAGE_CLASS_NC_NN NOT NULL, + VIRTUAL_ORGANIZATION_ID BIGINT UNSIGNED CONSTRAINT STORAGE_CLASS_VOI_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT STORAGE_CLASS_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_CLHN_NN NOT NULL, + CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT STORAGE_CLASS_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_LUHN_NN NOT NULL, + LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT STORAGE_CLASS_LUT_NN NOT NULL, + CONSTRAINT STORAGE_CLASS_PK PRIMARY KEY(STORAGE_CLASS_ID), + CONSTRAINT STORAGE_CLASS_SCN_UN UNIQUE(STORAGE_CLASS_NAME), + CONSTRAINT STORAGE_CLASS_VOI_FK FOREIGN KEY(VIRTUAL_ORGANIZATION_ID) REFERENCES VIRTUAL_ORGANIZATION(VIRTUAL_ORGANIZATION_ID) +); +CREATE TABLE TAPE_POOL( + TAPE_POOL_ID BIGINT UNSIGNED CONSTRAINT TAPE_POOL_TPI_NN NOT NULL, + TAPE_POOL_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_TPN_NN NOT NULL, + VIRTUAL_ORGANIZATION_ID BIGINT UNSIGNED CONSTRAINT TAPE_POOL_VOI_NN NOT NULL, + NB_PARTIAL_TAPES BIGINT UNSIGNED CONSTRAINT TAPE_POOL_NPT_NN NOT NULL, + IS_ENCRYPTED CHAR(1) CONSTRAINT TAPE_POOL_IE_NN NOT NULL, + SUPPLY VARCHAR(100), + USER_COMMENT VARCHAR(1000) CONSTRAINT TAPE_POOL_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_CLHN_NN NOT NULL, + CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT TAPE_POOL_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_LUHN_NN NOT NULL, + LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT TAPE_POOL_LUT_NN NOT NULL, + CONSTRAINT TAPE_POOL_PK PRIMARY KEY(TAPE_POOL_ID), + CONSTRAINT TAPE_POOL_TPN_UN UNIQUE(TAPE_POOL_NAME), + CONSTRAINT TAPE_POOL_IS_ENCRYPTED_BOOL_CK CHECK(IS_ENCRYPTED IN ('0', '1')), + CONSTRAINT TAPE_POOL_VO_FK FOREIGN KEY(VIRTUAL_ORGANIZATION_ID) REFERENCES VIRTUAL_ORGANIZATION(VIRTUAL_ORGANIZATION_ID) +); +CREATE TABLE ARCHIVE_ROUTE( + STORAGE_CLASS_ID BIGINT UNSIGNED CONSTRAINT ARCHIVE_ROUTE_SCI_NN NOT NULL, + COPY_NB TINYINT UNSIGNED CONSTRAINT ARCHIVE_ROUTE_CN_NN NOT NULL, + TAPE_POOL_ID BIGINT UNSIGNED CONSTRAINT ARCHIVE_ROUTE_TPI_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT ARCHIVE_ROUTE_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_CLHN_NN NOT NULL, + CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT ARCHIVE_ROUTE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT ARCHIVE_ROUTE_LUT_NN NOT NULL, + CONSTRAINT ARCHIVE_ROUTE_PK PRIMARY KEY(STORAGE_CLASS_ID, COPY_NB), + CONSTRAINT ARCHIVE_ROUTE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID), + CONSTRAINT ARCHIVE_ROUTE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_ID) REFERENCES TAPE_POOL(TAPE_POOL_ID), + CONSTRAINT ARCHIVE_ROUTE_COPY_NB_GT_0_CK CHECK(COPY_NB > 0), + CONSTRAINT ARCHIVE_ROUTE_SCI_TPI_UN UNIQUE(STORAGE_CLASS_ID, TAPE_POOL_ID) +); +CREATE TABLE MEDIA_TYPE( + MEDIA_TYPE_ID BIGINT UNSIGNED CONSTRAINT MEDIA_TYPE_MTI_NN NOT NULL, + MEDIA_TYPE_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_MTN_NN NOT NULL, + CARTRIDGE VARCHAR(100) CONSTRAINT MEDIA_TYPE_C_NN NOT NULL, + CAPACITY_IN_BYTES BIGINT UNSIGNED CONSTRAINT MEDIA_TYPE_CIB_NN NOT NULL, + PRIMARY_DENSITY_CODE TINYINT UNSIGNED, + SECONDARY_DENSITY_CODE TINYINT UNSIGNED, + NB_WRAPS INT UNSIGNED, + MIN_LPOS BIGINT UNSIGNED, + MAX_LPOS BIGINT UNSIGNED, + USER_COMMENT VARCHAR(1000) CONSTRAINT MEDIA_TYPE_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_CLHN_NN NOT NULL, + CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT MEDIA_TYPE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT MEDIA_TYPE_LUT_NN NOT NULL, + CONSTRAINT MEDIA_TYPE_PK PRIMARY KEY(MEDIA_TYPE_ID), + CONSTRAINT MEDIA_TYPE_MTN_UN UNIQUE(MEDIA_TYPE_NAME) +); +CREATE TABLE LOGICAL_LIBRARY( + LOGICAL_LIBRARY_ID BIGINT UNSIGNED CONSTRAINT LOGICAL_LIBRARY_LLI_NN NOT NULL, + LOGICAL_LIBRARY_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LLN_NN NOT NULL, + IS_DISABLED CHAR(1) DEFAULT '0' CONSTRAINT LOGICAL_LIBRARY_ID_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT LOGICAL_LIBRARY_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_CLHN_NN NOT NULL, + CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT LOGICAL_LIBRARY_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LUHN_NN NOT NULL, + LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT LOGICAL_LIBRARY_LUT_NN NOT NULL, + CONSTRAINT LOGICAL_LIBRARY_PK PRIMARY KEY(LOGICAL_LIBRARY_ID), + CONSTRAINT LOGICAL_LIBRARY_LLN_UN UNIQUE(LOGICAL_LIBRARY_NAME), + CONSTRAINT LOGICAL_LIBRARY_ID_BOOL_CK CHECK(IS_DISABLED IN ('0', '1')) +); +CREATE TABLE TAPE( + VID VARCHAR(100) CONSTRAINT TAPE_V_NN NOT NULL, + MEDIA_TYPE_ID BIGINT UNSIGNED CONSTRAINT TAPE_MTID_NN NOT NULL, + VENDOR VARCHAR(100) CONSTRAINT TAPE_V2_NN NOT NULL, + LOGICAL_LIBRARY_ID BIGINT UNSIGNED CONSTRAINT TAPE_LLI_NN NOT NULL, + TAPE_POOL_ID BIGINT UNSIGNED CONSTRAINT TAPE_TPI_NN NOT NULL, + ENCRYPTION_KEY_NAME VARCHAR(100), + DATA_IN_BYTES BIGINT UNSIGNED CONSTRAINT TAPE_DIB_NN NOT NULL, + LAST_FSEQ BIGINT UNSIGNED CONSTRAINT TAPE_LF_NN NOT NULL, + NB_MASTER_FILES BIGINT UNSIGNED DEFAULT 0 CONSTRAINT TAPE_NB_MASTER_FILES_NN NOT NULL, + MASTER_DATA_IN_BYTES BIGINT UNSIGNED DEFAULT 0 CONSTRAINT TAPE_MASTER_DATA_IN_BYTES_NN NOT NULL, + IS_FULL CHAR(1) CONSTRAINT TAPE_IF_NN NOT NULL, + IS_FROM_CASTOR CHAR(1) CONSTRAINT TAPE_IFC_NN NOT NULL, + DIRTY CHAR(1) DEFAULT '1' CONSTRAINT TAPE_DIRTY_NN NOT NULL, + NB_COPY_NB_1 BIGINT UNSIGNED DEFAULT 0 CONSTRAINT TAPE_NB_COPY_NB_1_NN NOT NULL, + COPY_NB_1_IN_BYTES BIGINT UNSIGNED DEFAULT 0 CONSTRAINT TAPE_COPY_NB_1_IN_BYTES_NN NOT NULL, + NB_COPY_NB_GT_1 BIGINT UNSIGNED DEFAULT 0 CONSTRAINT TAPE_NB_COPY_NB_GT_1_NN NOT NULL, + COPY_NB_GT_1_IN_BYTES BIGINT UNSIGNED DEFAULT 0 CONSTRAINT TAPE_COPY_NB_GT_1_IN_BYTES_NN NOT NULL, + LABEL_DRIVE VARCHAR(100), + LABEL_TIME BIGINT UNSIGNED , + LAST_READ_DRIVE VARCHAR(100), + LAST_READ_TIME BIGINT UNSIGNED , + LAST_WRITE_DRIVE VARCHAR(100), + LAST_WRITE_TIME BIGINT UNSIGNED , + READ_MOUNT_COUNT BIGINT UNSIGNED DEFAULT 0 CONSTRAINT TAPE_RMC_NN NOT NULL, + WRITE_MOUNT_COUNT BIGINT UNSIGNED DEFAULT 0 CONSTRAINT TAPE_WMC_NN NOT NULL, + USER_COMMENT VARCHAR(1000), + TAPE_STATE VARCHAR(100) CONSTRAINT TAPE_TS_NN NOT NULL, + STATE_REASON VARCHAR(1000), + STATE_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT TAPE_SUT_NN NOT NULL, + STATE_MODIFIED_BY VARCHAR(100) CONSTRAINT TAPE_SMB_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT TAPE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_CLHN_NN NOT NULL, + CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT TAPE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT TAPE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT TAPE_LUT_NN NOT NULL, + CONSTRAINT TAPE_PK PRIMARY KEY(VID), + CONSTRAINT TAPE_LOGICAL_LIBRARY_FK FOREIGN KEY(LOGICAL_LIBRARY_ID) REFERENCES LOGICAL_LIBRARY(LOGICAL_LIBRARY_ID), + CONSTRAINT TAPE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_ID) REFERENCES TAPE_POOL(TAPE_POOL_ID), + CONSTRAINT TAPE_IS_FULL_BOOL_CK CHECK(IS_FULL IN ('0', '1')), + CONSTRAINT TAPE_IS_FROM_CASTOR_BOOL_CK CHECK(IS_FROM_CASTOR IN ('0', '1')), + CONSTRAINT TAPE_DIRTY_BOOL_CK CHECK(DIRTY IN ('0','1')), + CONSTRAINT TAPE_STATE_CK CHECK(TAPE_STATE IN ('ACTIVE', 'DISABLED', 'BROKEN')), + CONSTRAINT TAPE_MEDIA_TYPE_FK FOREIGN KEY(MEDIA_TYPE_ID) REFERENCES MEDIA_TYPE(MEDIA_TYPE_ID) +); +CREATE INDEX TAPE_TAPE_POOL_ID_IDX ON TAPE(TAPE_POOL_ID); +CREATE INDEX TAPE_STATE_IDX ON TAPE(TAPE_STATE); +CREATE TABLE MOUNT_POLICY( + MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_MPN_NN NOT NULL, + ARCHIVE_PRIORITY BIGINT UNSIGNED CONSTRAINT MOUNT_POLICY_AP_NN NOT NULL, + ARCHIVE_MIN_REQUEST_AGE BIGINT UNSIGNED CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL, + RETRIEVE_PRIORITY BIGINT UNSIGNED CONSTRAINT MOUNT_POLICY_RP_NN NOT NULL, + RETRIEVE_MIN_REQUEST_AGE BIGINT UNSIGNED CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT MOUNT_POLICY_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL, + CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT MOUNT_POLICY_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL, + LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT MOUNT_POLICY_LUT_NN NOT NULL, + CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME) +); +CREATE TABLE REQUESTER_MOUNT_RULE( + DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_DIN_NN NOT NULL, + REQUESTER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_RN_NN NOT NULL, + MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_MPN_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT RQSTER_RULE_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_CLHN_NN NOT NULL, + CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT RQSTER_RULE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT RQSTER_RULE_LUT_NN NOT NULL, + CONSTRAINT RQSTER_RULE_PK PRIMARY KEY(DISK_INSTANCE_NAME, REQUESTER_NAME), + CONSTRAINT RQSTER_RULE_MNT_PLC_FK FOREIGN KEY(MOUNT_POLICY_NAME) + REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME) +); +CREATE TABLE REQUESTER_GROUP_MOUNT_RULE( + DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_DIN_NN NOT NULL, + REQUESTER_GROUP_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_RGN_NN NOT NULL, + MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_MPN_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT RQSTER_GRP_RULE_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_CLHN_NN NOT NULL, + CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT RQSTER_GRP_RULE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT RQSTER_GRP_RULE_LUT_NN NOT NULL, + CONSTRAINT RQSTER_GRP_RULE_PK PRIMARY KEY(DISK_INSTANCE_NAME, REQUESTER_GROUP_NAME), + CONSTRAINT RQSTER_GRP_RULE_MNT_PLC_FK FOREIGN KEY(MOUNT_POLICY_NAME) + REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME) +); +CREATE TABLE ARCHIVE_FILE( + ARCHIVE_FILE_ID BIGINT UNSIGNED CONSTRAINT ARCHIVE_FILE_AFI_NN NOT NULL, + DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT ARCHIVE_FILE_DIN_NN NOT NULL, + DISK_FILE_ID VARCHAR(100) CONSTRAINT ARCHIVE_FILE_DFI_NN NOT NULL, + DISK_FILE_UID INT UNSIGNED CONSTRAINT ARCHIVE_FILE_DFUID_NN NOT NULL, + DISK_FILE_GID INT UNSIGNED CONSTRAINT ARCHIVE_FILE_DFGID_NN NOT NULL, + SIZE_IN_BYTES BIGINT UNSIGNED CONSTRAINT ARCHIVE_FILE_SIB_NN NOT NULL, + CHECKSUM_BLOB VARBINARY(200), + CHECKSUM_ADLER32 INT UNSIGNED CONSTRAINT ARCHIVE_FILE_CB2_NN NOT NULL, + STORAGE_CLASS_ID BIGINT UNSIGNED CONSTRAINT ARCHIVE_FILE_SCI_NN NOT NULL, + CREATION_TIME BIGINT UNSIGNED CONSTRAINT ARCHIVE_FILE_CT2_NN NOT NULL, + RECONCILIATION_TIME BIGINT UNSIGNED CONSTRAINT ARCHIVE_FILE_RT_NN NOT NULL, + IS_DELETED CHAR(1) DEFAULT '0' CONSTRAINT ARCHIVE_FILE_ID_NN NOT NULL, + COLLOCATION_HINT VARCHAR(100), + CONSTRAINT ARCHIVE_FILE_PK PRIMARY KEY(ARCHIVE_FILE_ID), + CONSTRAINT ARCHIVE_FILE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID), + CONSTRAINT ARCHIVE_FILE_DIN_DFI_UN UNIQUE(DISK_INSTANCE_NAME, DISK_FILE_ID), + CONSTRAINT ARCHIVE_FILE_ID_BOOL_CK CHECK(IS_DELETED IN ('0', '1')) +); +CREATE INDEX ARCHIVE_FILE_DIN_IDX ON ARCHIVE_FILE(DISK_INSTANCE_NAME); +CREATE INDEX ARCHIVE_FILE_DFI_IDX ON ARCHIVE_FILE(DISK_FILE_ID); +CREATE TABLE TAPE_FILE( + VID VARCHAR(100) CONSTRAINT TAPE_FILE_V_NN NOT NULL, + FSEQ BIGINT UNSIGNED CONSTRAINT TAPE_FILE_F_NN NOT NULL, + BLOCK_ID BIGINT UNSIGNED CONSTRAINT TAPE_FILE_BI_NN NOT NULL, + LOGICAL_SIZE_IN_BYTES BIGINT UNSIGNED CONSTRAINT TAPE_FILE_CSIB_NN NOT NULL, + COPY_NB TINYINT UNSIGNED CONSTRAINT TAPE_FILE_CN_NN NOT NULL, + CREATION_TIME BIGINT UNSIGNED CONSTRAINT TAPE_FILE_CT_NN NOT NULL, + ARCHIVE_FILE_ID BIGINT UNSIGNED CONSTRAINT TAPE_FILE_AFI_NN NOT NULL, + CONSTRAINT TAPE_FILE_PK PRIMARY KEY(VID, FSEQ), + CONSTRAINT TAPE_FILE_TAPE_FK FOREIGN KEY(VID) + REFERENCES TAPE(VID), + CONSTRAINT TAPE_FILE_ARCHIVE_FILE_FK FOREIGN KEY(ARCHIVE_FILE_ID) + REFERENCES ARCHIVE_FILE(ARCHIVE_FILE_ID), + CONSTRAINT TAPE_FILE_VID_BLOCK_ID_UN UNIQUE(VID, BLOCK_ID), + CONSTRAINT TAPE_FILE_COPY_NB_GT_0_CK CHECK(COPY_NB > 0) +); +CREATE INDEX TAPE_FILE_VID_IDX ON TAPE_FILE(VID); +CREATE INDEX TAPE_FILE_ARCHIVE_FILE_ID_IDX ON TAPE_FILE(ARCHIVE_FILE_ID); +CREATE TABLE ACTIVITIES_WEIGHTS ( + DISK_INSTANCE_NAME VARCHAR(100), + ACTIVITY VARCHAR(100), + WEIGHT VARCHAR(100), + USER_COMMENT VARCHAR(1000) CONSTRAINT ACTIV_WEIGHTS_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_CLHN_NN NOT NULL, + CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT ACTIV_WEIGHTS_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_LUHN_NN NOT NULL, + LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT ACTIV_WEIGHTS_LUT_NN NOT NULL +); +CREATE TABLE FILE_RECYCLE_LOG( + FILE_RECYCLE_LOG_ID BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_ID_NN NOT NULL, + VID VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_VID_NN NOT NULL, + FSEQ BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_FSEQ_NN NOT NULL, + BLOCK_ID BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_BID_NN NOT NULL, + COPY_NB TINYINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_COPY_NB_NN NOT NULL, + TAPE_FILE_CREATION_TIME BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_TFCT_NN NOT NULL, + ARCHIVE_FILE_ID BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_AFI_NN NOT NULL, + DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DIN_NN NOT NULL, + DISK_FILE_ID VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DFI_NN NOT NULL, + DISK_FILE_ID_WHEN_DELETED VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DFIWD_NN NOT NULL, + DISK_FILE_UID BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_DFU_NN NOT NULL, + DISK_FILE_GID BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_DFG_NN NOT NULL, + SIZE_IN_BYTES BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_SIB_NN NOT NULL, + CHECKSUM_BLOB VARBINARY(200), + CHECKSUM_ADLER32 INT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_CA_NN NOT NULL, + STORAGE_CLASS_ID BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_SCI_NN NOT NULL, + ARCHIVE_FILE_CREATION_TIME BIGINT UNSIGNED CONSTRAINT FILE_RECYLE_LOG_CT_NN NOT NULL, + RECONCILIATION_TIME BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_RT_NN NOT NULL, + COLLOCATION_HINT VARCHAR(100), + DISK_FILE_PATH VARCHAR(2000), + REASON_LOG VARCHAR(1000) CONSTRAINT FILE_RECYCLE_LOG_RL_NN NOT NULL, + RECYCLE_LOG_TIME BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_RLT_NN NOT NULL, + CONSTRAINT FILE_RECYCLE_LOG_PK PRIMARY KEY(FILE_RECYCLE_LOG_ID), + CONSTRAINT FILE_RECYCLE_LOG_VID_FK FOREIGN KEY(VID) REFERENCES TAPE(VID), + CONSTRAINT FILE_RECYCLE_LOG_SC_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID) +); +CREATE INDEX FILE_RECYCLE_LOG_DFI_IDX ON FILE_RECYCLE_LOG(DISK_FILE_ID); + +CREATE TABLE DRIVE_CONFIG ( + DRIVE_NAME VARCHAR(100) CONSTRAINT DRIVE_CONFIG_DN_NN NOT NULL, + CATEGORY VARCHAR(100) CONSTRAINT DRIVE_CONFIG_C_NN NOT NULL, + KEY_NAME VARCHAR(100) CONSTRAINT DRIVE_CONFIG_KN_NN NOT NULL, + VALUE VARCHAR(1000) CONSTRAINT DRIVE_CONFIG_V_NN NOT NULL, + SOURCE VARCHAR(100) CONSTRAINT DRIVE_CONFIG_S_NN NOT NULL, + CONSTRAINT DRIVE_CONFIG_DN_PK PRIMARY KEY(KEY_NAME, DRIVE_NAME) +); + +CREATE TABLE TAPE_DRIVE ( + DRIVE_NAME VARCHAR(100) CONSTRAINT DRIVE_STATE_DN_NN NOT NULL, + HOST VARCHAR(100) CONSTRAINT DRIVE_STATE_H_NN NOT NULL, + LOGICAL_LIBRARY VARCHAR(100) CONSTRAINT DRIVE_STATE_LL_NN NOT NULL, + SESSION_ID BIGINT UNSIGNED, + BYTES_TRANSFERED_IN_SESSION BIGINT UNSIGNED, + FILES_TRANSFERED_IN_SESSION BIGINT UNSIGNED, + LATEST_BANDWIDTH VARCHAR(100), + SESSION_START_TIME BIGINT UNSIGNED, + MOUNT_START_TIME BIGINT UNSIGNED, + TRANSFER_START_TIME BIGINT UNSIGNED, + UNLOAD_START_TIME BIGINT UNSIGNED, + UNMOUNT_START_TIME BIGINT UNSIGNED, + DRAINING_START_TIME BIGINT UNSIGNED, + DOWN_OR_UP_START_TIME BIGINT UNSIGNED, + PROBE_START_TIME BIGINT UNSIGNED, + CLEANUP_START_TIME BIGINT UNSIGNED, + START_START_TIME BIGINT UNSIGNED, + SHUTDOWN_TIME BIGINT UNSIGNED, + MOUNT_TYPE INT UNSIGNED CONSTRAINT DRIVE_STATE_MT_NN NOT NULL, + DRIVE_STATUS VARCHAR(100) DEFAULT 'UNKNOWN' CONSTRAINT DRIVE_STATE_DS_NN NOT NULL, + DESIRED_UP CHAR(1) DEFAULT '0' CONSTRAINT DRIVE_STATE_DU_NN NOT NULL, + DESIRED_FORCE_DOWN CHAR(1) DEFAULT '0' CONSTRAINT DRIVE_STATE_DFD_NN NOT NULL, + REASON_UP_DOWN VARCHAR(1000), + CURRENT_VID VARCHAR(100), + CTA_VERSION VARCHAR(100), + CURRENT_PRIORITY BIGINT UNSIGNED, + CURRENT_ACTIVITY VARCHAR(100), + CURRENT_ACTIVITY_WEIGHT VARCHAR(100), + CURRENT_TAPE_POOL VARCHAR(100), + NEXT_MOUNT_TYPE INT UNSIGNED, + NEXT_VID VARCHAR(100), + NEXT_TAPE_POOL VARCHAR(100), + NEXT_PRIORITY BIGINT UNSIGNED, + NEXT_ACTIVITY VARCHAR(100), + NEXT_ACTIVITY_WEIGHT VARCHAR(100), + DEV_FILE_NAME VARCHAR(100), + RAW_LIBRARY_SLOT VARCHAR(100), + CURRENT_VO VARCHAR(100), + NEXT_VO VARCHAR(100), + USER_COMMENT VARCHAR(1000), + CREATION_LOG_USER_NAME VARCHAR(100), + CREATION_LOG_HOST_NAME VARCHAR(100), + CREATION_LOG_TIME BIGINT UNSIGNED, + LAST_UPDATE_USER_NAME VARCHAR(100), + LAST_UPDATE_HOST_NAME VARCHAR(100), + LAST_UPDATE_TIME BIGINT UNSIGNED, + DISK_SYSTEM_NAME VARCHAR(100) CONSTRAINT DRIVE_STATE_DSN_NN NOT NULL, + RESERVED_BYTES BIGINT UNSIGNED CONSTRAINT DRIVE_STATE_RB_NN NOT NULL, + CONSTRAINT DRIVE_STATE_DN_PK PRIMARY KEY(DRIVE_NAME), + CONSTRAINT DRIVE_STATE_DU_BOOL_CK CHECK(DESIRED_UP IN ('0', '1')), + CONSTRAINT DRIVE_STATE_DFD_BOOL_CK CHECK(DESIRED_FORCE_DOWN IN ('0', '1')), + CONSTRAINT DRIVE_STATE_DS_STRING_CK CHECK(DRIVE_STATUS IN ('DOWN', 'UP', 'PROBING', 'STARTING', + 'MOUNTING', 'TRANSFERING', 'UNLOADING', 'UNMOUNTING', 'DRAININGTODISK', 'CLEANINGUP', 'SHUTDOWN', + 'UNKNOWN')) +); +INSERT INTO CTA_CATALOGUE( + SCHEMA_VERSION_MAJOR, + SCHEMA_VERSION_MINOR, + STATUS) +VALUES( + 4, + 2, + 'PRODUCTION'); +ALTER TABLE CTA_CATALOGUE ADD CONSTRAINT + CATALOGUE_STATUS_CONTENT_CK CHECK((NEXT_SCHEMA_VERSION_MAJOR IS NULL AND NEXT_SCHEMA_VERSION_MINOR IS NULL AND STATUS='PRODUCTION') OR (STATUS='UPGRADING')); diff --git a/catalogue/4.2/oracle_catalogue_schema.sql b/catalogue/4.2/oracle_catalogue_schema.sql new file mode 100644 index 0000000000000000000000000000000000000000..279281b840908aab7a79b27636aef9c5de4f058c --- /dev/null +++ b/catalogue/4.2/oracle_catalogue_schema.sql @@ -0,0 +1,455 @@ +CREATE SEQUENCE ARCHIVE_FILE_ID_SEQ + INCREMENT BY 1 + START WITH 4294967296 + NOMAXVALUE + MINVALUE 1 + NOCYCLE + CACHE 20 + NOORDER; +CREATE SEQUENCE LOGICAL_LIBRARY_ID_SEQ + INCREMENT BY 1 + START WITH 1 + NOMAXVALUE + MINVALUE 1 + NOCYCLE + CACHE 20 + NOORDER; +CREATE SEQUENCE MEDIA_TYPE_ID_SEQ + INCREMENT BY 1 + START WITH 1 + NOMAXVALUE + MINVALUE 1 + NOCYCLE + CACHE 20 + NOORDER; +CREATE SEQUENCE STORAGE_CLASS_ID_SEQ + INCREMENT BY 1 + START WITH 10000 + NOMAXVALUE + MINVALUE 1 + NOCYCLE + CACHE 20 + NOORDER; +CREATE SEQUENCE TAPE_POOL_ID_SEQ + INCREMENT BY 1 + START WITH 1 + NOMAXVALUE + MINVALUE 1 + NOCYCLE + CACHE 20 + NOORDER; +CREATE SEQUENCE VIRTUAL_ORGANIZATION_ID_SEQ + INCREMENT BY 1 + START WITH 1 + NOMAXVALUE + MINVALUE 1 + NOCYCLE + CACHE 20 + NOORDER; +CREATE SEQUENCE FILE_RECYCLE_LOG_ID_SEQ + INCREMENT BY 1 + START WITH 1 + NOMAXVALUE + MINVALUE 1 + NOCYCLE + CACHE 20 + NOORDER; +CREATE GLOBAL TEMPORARY TABLE TEMP_TAPE_FILE_INSERTION_BATCH( + VID VARCHAR2(100), + FSEQ NUMERIC(20, 0) , + BLOCK_ID NUMERIC(20, 0) , + LOGICAL_SIZE_IN_BYTES NUMERIC(20, 0) , + COPY_NB NUMERIC(3, 0) , + CREATION_TIME NUMERIC(20, 0) , + ARCHIVE_FILE_ID NUMERIC(20, 0) +) +ON COMMIT DELETE ROWS; +CREATE INDEX TEMP_T_F_I_B_AFI_IDX ON TEMP_TAPE_FILE_INSERTION_BATCH(ARCHIVE_FILE_ID); +CREATE TABLE CTA_CATALOGUE( + SCHEMA_VERSION_MAJOR NUMERIC(20, 0) CONSTRAINT CTA_CATALOGUE_SVM1_NN NOT NULL, + SCHEMA_VERSION_MINOR NUMERIC(20, 0) CONSTRAINT CTA_CATALOGUE_SVM2_NN NOT NULL, + NEXT_SCHEMA_VERSION_MAJOR NUMERIC(20, 0), + NEXT_SCHEMA_VERSION_MINOR NUMERIC(20, 0), + STATUS VARCHAR2(100), + IS_PRODUCTION CHAR(1) DEFAULT '0' CONSTRAINT CTA_CATALOGUE_IP_NN NOT NULL, + CONSTRAINT CTA_CATALOGUE_IP_BOOL_CK CHECK(IS_PRODUCTION IN ('0','1')) +); +CREATE TABLE ADMIN_USER( + ADMIN_USER_NAME VARCHAR2(100) CONSTRAINT ADMIN_USER_AUN_NN NOT NULL, + USER_COMMENT VARCHAR2(1000) CONSTRAINT ADMIN_USER_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT ADMIN_USER_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT ADMIN_USER_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT ADMIN_USER_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT ADMIN_USER_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT ADMIN_USER_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT ADMIN_USER_LUT_NN NOT NULL, + CONSTRAINT ADMIN_USER_PK PRIMARY KEY(ADMIN_USER_NAME) +); +CREATE TABLE DISK_SYSTEM( + DISK_SYSTEM_NAME VARCHAR2(100) CONSTRAINT DISK_SYSTEM_DSNM_NN NOT NULL, + FILE_REGEXP VARCHAR2(100) CONSTRAINT DISK_SYSTEM_FR_NN NOT NULL, + FREE_SPACE_QUERY_URL VARCHAR2(1000) CONSTRAINT DISK_SYSTEM_FSQU_NN NOT NULL, + REFRESH_INTERVAL NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_RI_NN NOT NULL, + TARGETED_FREE_SPACE NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_TFS_NN NOT NULL, + SLEEP_TIME NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_ST_NN NOT NULL, + USER_COMMENT VARCHAR2(1000) CONSTRAINT DISK_SYSTEM_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT DISK_SYSTEM_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT DISK_SYSTEM_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT DISK_SYSTEM_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT DISK_SYSTEM_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_LUT_NN NOT NULL, + CONSTRAINT NAME_PK PRIMARY KEY(DISK_SYSTEM_NAME) +); +CREATE TABLE VIRTUAL_ORGANIZATION( + VIRTUAL_ORGANIZATION_ID NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_VOI_NN NOT NULL, + VIRTUAL_ORGANIZATION_NAME VARCHAR2(100) CONSTRAINT VIRTUAL_ORGANIZATION_VON_NN NOT NULL, + READ_MAX_DRIVES NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_RMD_NN NOT NULL, + WRITE_MAX_DRIVES NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_WMD_NN NOT NULL, + MAX_FILE_SIZE NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_MFS_NN NOT NULL, + USER_COMMENT VARCHAR2(1000) CONSTRAINT VIRTUAL_ORGANIZATION_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT VIRTUAL_ORGANIZATION_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT VIRTUAL_ORGANIZATION_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_LUT_NN NOT NULL, + CONSTRAINT VIRTUAL_ORGANIZATION_PK PRIMARY KEY(VIRTUAL_ORGANIZATION_ID), + CONSTRAINT VIRTUAL_ORGANIZATION_VON_UN UNIQUE(VIRTUAL_ORGANIZATION_NAME) +); +CREATE TABLE STORAGE_CLASS( + STORAGE_CLASS_ID NUMERIC(20, 0) CONSTRAINT STORAGE_CLASS_SCI_NN NOT NULL, + STORAGE_CLASS_NAME VARCHAR2(100) CONSTRAINT STORAGE_CLASS_SCN_NN NOT NULL, + NB_COPIES NUMERIC(3, 0) CONSTRAINT STORAGE_CLASS_NC_NN NOT NULL, + VIRTUAL_ORGANIZATION_ID NUMERIC(20, 0) CONSTRAINT STORAGE_CLASS_VOI_NN NOT NULL, + USER_COMMENT VARCHAR2(1000) CONSTRAINT STORAGE_CLASS_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT STORAGE_CLASS_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT STORAGE_CLASS_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT STORAGE_CLASS_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT STORAGE_CLASS_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT STORAGE_CLASS_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT STORAGE_CLASS_LUT_NN NOT NULL, + CONSTRAINT STORAGE_CLASS_PK PRIMARY KEY(STORAGE_CLASS_ID), + CONSTRAINT STORAGE_CLASS_SCN_UN UNIQUE(STORAGE_CLASS_NAME), + CONSTRAINT STORAGE_CLASS_VOI_FK FOREIGN KEY(VIRTUAL_ORGANIZATION_ID) REFERENCES VIRTUAL_ORGANIZATION(VIRTUAL_ORGANIZATION_ID) +); +CREATE TABLE TAPE_POOL( + TAPE_POOL_ID NUMERIC(20, 0) CONSTRAINT TAPE_POOL_TPI_NN NOT NULL, + TAPE_POOL_NAME VARCHAR2(100) CONSTRAINT TAPE_POOL_TPN_NN NOT NULL, + VIRTUAL_ORGANIZATION_ID NUMERIC(20, 0) CONSTRAINT TAPE_POOL_VOI_NN NOT NULL, + NB_PARTIAL_TAPES NUMERIC(20, 0) CONSTRAINT TAPE_POOL_NPT_NN NOT NULL, + IS_ENCRYPTED CHAR(1) CONSTRAINT TAPE_POOL_IE_NN NOT NULL, + SUPPLY VARCHAR2(100), + USER_COMMENT VARCHAR2(1000) CONSTRAINT TAPE_POOL_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT TAPE_POOL_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT TAPE_POOL_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT TAPE_POOL_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT TAPE_POOL_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT TAPE_POOL_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT TAPE_POOL_LUT_NN NOT NULL, + CONSTRAINT TAPE_POOL_PK PRIMARY KEY(TAPE_POOL_ID), + CONSTRAINT TAPE_POOL_TPN_UN UNIQUE(TAPE_POOL_NAME), + CONSTRAINT TAPE_POOL_IS_ENCRYPTED_BOOL_CK CHECK(IS_ENCRYPTED IN ('0', '1')), + CONSTRAINT TAPE_POOL_VO_FK FOREIGN KEY(VIRTUAL_ORGANIZATION_ID) REFERENCES VIRTUAL_ORGANIZATION(VIRTUAL_ORGANIZATION_ID) +); +CREATE TABLE ARCHIVE_ROUTE( + STORAGE_CLASS_ID NUMERIC(20, 0) CONSTRAINT ARCHIVE_ROUTE_SCI_NN NOT NULL, + COPY_NB NUMERIC(3, 0) CONSTRAINT ARCHIVE_ROUTE_CN_NN NOT NULL, + TAPE_POOL_ID NUMERIC(20, 0) CONSTRAINT ARCHIVE_ROUTE_TPI_NN NOT NULL, + USER_COMMENT VARCHAR2(1000) CONSTRAINT ARCHIVE_ROUTE_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT ARCHIVE_ROUTE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT ARCHIVE_ROUTE_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT ARCHIVE_ROUTE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT ARCHIVE_ROUTE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT ARCHIVE_ROUTE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT ARCHIVE_ROUTE_LUT_NN NOT NULL, + CONSTRAINT ARCHIVE_ROUTE_PK PRIMARY KEY(STORAGE_CLASS_ID, COPY_NB), + CONSTRAINT ARCHIVE_ROUTE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID), + CONSTRAINT ARCHIVE_ROUTE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_ID) REFERENCES TAPE_POOL(TAPE_POOL_ID), + CONSTRAINT ARCHIVE_ROUTE_COPY_NB_GT_0_CK CHECK(COPY_NB > 0), + CONSTRAINT ARCHIVE_ROUTE_SCI_TPI_UN UNIQUE(STORAGE_CLASS_ID, TAPE_POOL_ID) +); +CREATE TABLE MEDIA_TYPE( + MEDIA_TYPE_ID NUMERIC(20, 0) CONSTRAINT MEDIA_TYPE_MTI_NN NOT NULL, + MEDIA_TYPE_NAME VARCHAR2(100) CONSTRAINT MEDIA_TYPE_MTN_NN NOT NULL, + CARTRIDGE VARCHAR2(100) CONSTRAINT MEDIA_TYPE_C_NN NOT NULL, + CAPACITY_IN_BYTES NUMERIC(20, 0) CONSTRAINT MEDIA_TYPE_CIB_NN NOT NULL, + PRIMARY_DENSITY_CODE NUMERIC(3, 0), + SECONDARY_DENSITY_CODE NUMERIC(3, 0), + NB_WRAPS NUMERIC(10, 0), + MIN_LPOS NUMERIC(20, 0), + MAX_LPOS NUMERIC(20, 0), + USER_COMMENT VARCHAR2(1000) CONSTRAINT MEDIA_TYPE_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT MEDIA_TYPE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT MEDIA_TYPE_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT MEDIA_TYPE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT MEDIA_TYPE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT MEDIA_TYPE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT MEDIA_TYPE_LUT_NN NOT NULL, + CONSTRAINT MEDIA_TYPE_PK PRIMARY KEY(MEDIA_TYPE_ID), + CONSTRAINT MEDIA_TYPE_MTN_UN UNIQUE(MEDIA_TYPE_NAME) +); +CREATE TABLE LOGICAL_LIBRARY( + LOGICAL_LIBRARY_ID NUMERIC(20, 0) CONSTRAINT LOGICAL_LIBRARY_LLI_NN NOT NULL, + LOGICAL_LIBRARY_NAME VARCHAR2(100) CONSTRAINT LOGICAL_LIBRARY_LLN_NN NOT NULL, + IS_DISABLED CHAR(1) DEFAULT '0' CONSTRAINT LOGICAL_LIBRARY_ID_NN NOT NULL, + USER_COMMENT VARCHAR2(1000) CONSTRAINT LOGICAL_LIBRARY_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT LOGICAL_LIBRARY_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT LOGICAL_LIBRARY_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT LOGICAL_LIBRARY_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT LOGICAL_LIBRARY_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT LOGICAL_LIBRARY_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT LOGICAL_LIBRARY_LUT_NN NOT NULL, + CONSTRAINT LOGICAL_LIBRARY_PK PRIMARY KEY(LOGICAL_LIBRARY_ID), + CONSTRAINT LOGICAL_LIBRARY_LLN_UN UNIQUE(LOGICAL_LIBRARY_NAME), + CONSTRAINT LOGICAL_LIBRARY_ID_BOOL_CK CHECK(IS_DISABLED IN ('0', '1')) +); +CREATE TABLE TAPE( + VID VARCHAR2(100) CONSTRAINT TAPE_V_NN NOT NULL, + MEDIA_TYPE_ID NUMERIC(20, 0) CONSTRAINT TAPE_MTID_NN NOT NULL, + VENDOR VARCHAR2(100) CONSTRAINT TAPE_V2_NN NOT NULL, + LOGICAL_LIBRARY_ID NUMERIC(20, 0) CONSTRAINT TAPE_LLI_NN NOT NULL, + TAPE_POOL_ID NUMERIC(20, 0) CONSTRAINT TAPE_TPI_NN NOT NULL, + ENCRYPTION_KEY_NAME VARCHAR2(100), + DATA_IN_BYTES NUMERIC(20, 0) CONSTRAINT TAPE_DIB_NN NOT NULL, + LAST_FSEQ NUMERIC(20, 0) CONSTRAINT TAPE_LF_NN NOT NULL, + NB_MASTER_FILES NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_NB_MASTER_FILES_NN NOT NULL, + MASTER_DATA_IN_BYTES NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_MASTER_DATA_IN_BYTES_NN NOT NULL, + IS_FULL CHAR(1) CONSTRAINT TAPE_IF_NN NOT NULL, + IS_FROM_CASTOR CHAR(1) CONSTRAINT TAPE_IFC_NN NOT NULL, + DIRTY CHAR(1) DEFAULT '1' CONSTRAINT TAPE_DIRTY_NN NOT NULL, + NB_COPY_NB_1 NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_NB_COPY_NB_1_NN NOT NULL, + COPY_NB_1_IN_BYTES NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_COPY_NB_1_IN_BYTES_NN NOT NULL, + NB_COPY_NB_GT_1 NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_NB_COPY_NB_GT_1_NN NOT NULL, + COPY_NB_GT_1_IN_BYTES NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_COPY_NB_GT_1_IN_BYTES_NN NOT NULL, + LABEL_DRIVE VARCHAR2(100), + LABEL_TIME NUMERIC(20, 0) , + LAST_READ_DRIVE VARCHAR2(100), + LAST_READ_TIME NUMERIC(20, 0) , + LAST_WRITE_DRIVE VARCHAR2(100), + LAST_WRITE_TIME NUMERIC(20, 0) , + READ_MOUNT_COUNT NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_RMC_NN NOT NULL, + WRITE_MOUNT_COUNT NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_WMC_NN NOT NULL, + USER_COMMENT VARCHAR2(1000), + TAPE_STATE VARCHAR2(100) CONSTRAINT TAPE_TS_NN NOT NULL, + STATE_REASON VARCHAR2(1000), + STATE_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT TAPE_SUT_NN NOT NULL, + STATE_MODIFIED_BY VARCHAR2(100) CONSTRAINT TAPE_SMB_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT TAPE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT TAPE_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT TAPE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT TAPE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT TAPE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT TAPE_LUT_NN NOT NULL, + CONSTRAINT TAPE_PK PRIMARY KEY(VID), + CONSTRAINT TAPE_LOGICAL_LIBRARY_FK FOREIGN KEY(LOGICAL_LIBRARY_ID) REFERENCES LOGICAL_LIBRARY(LOGICAL_LIBRARY_ID), + CONSTRAINT TAPE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_ID) REFERENCES TAPE_POOL(TAPE_POOL_ID), + CONSTRAINT TAPE_IS_FULL_BOOL_CK CHECK(IS_FULL IN ('0', '1')), + CONSTRAINT TAPE_IS_FROM_CASTOR_BOOL_CK CHECK(IS_FROM_CASTOR IN ('0', '1')), + CONSTRAINT TAPE_DIRTY_BOOL_CK CHECK(DIRTY IN ('0','1')), + CONSTRAINT TAPE_STATE_CK CHECK(TAPE_STATE IN ('ACTIVE', 'DISABLED', 'BROKEN')), + CONSTRAINT TAPE_MEDIA_TYPE_FK FOREIGN KEY(MEDIA_TYPE_ID) REFERENCES MEDIA_TYPE(MEDIA_TYPE_ID) +); +CREATE INDEX TAPE_TAPE_POOL_ID_IDX ON TAPE(TAPE_POOL_ID); +CREATE INDEX TAPE_STATE_IDX ON TAPE(TAPE_STATE); +CREATE TABLE MOUNT_POLICY( + MOUNT_POLICY_NAME VARCHAR2(100) CONSTRAINT MOUNT_POLICY_MPN_NN NOT NULL, + ARCHIVE_PRIORITY NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_AP_NN NOT NULL, + ARCHIVE_MIN_REQUEST_AGE NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL, + RETRIEVE_PRIORITY NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_RP_NN NOT NULL, + RETRIEVE_MIN_REQUEST_AGE NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL, + USER_COMMENT VARCHAR2(1000) CONSTRAINT MOUNT_POLICY_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_LUT_NN NOT NULL, + CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME) +); +CREATE TABLE REQUESTER_MOUNT_RULE( + DISK_INSTANCE_NAME VARCHAR2(100) CONSTRAINT RQSTER_RULE_DIN_NN NOT NULL, + REQUESTER_NAME VARCHAR2(100) CONSTRAINT RQSTER_RULE_RN_NN NOT NULL, + MOUNT_POLICY_NAME VARCHAR2(100) CONSTRAINT RQSTER_RULE_MPN_NN NOT NULL, + USER_COMMENT VARCHAR2(1000) CONSTRAINT RQSTER_RULE_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT RQSTER_RULE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT RQSTER_RULE_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT RQSTER_RULE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT RQSTER_RULE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT RQSTER_RULE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT RQSTER_RULE_LUT_NN NOT NULL, + CONSTRAINT RQSTER_RULE_PK PRIMARY KEY(DISK_INSTANCE_NAME, REQUESTER_NAME), + CONSTRAINT RQSTER_RULE_MNT_PLC_FK FOREIGN KEY(MOUNT_POLICY_NAME) + REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME) +); +CREATE TABLE REQUESTER_GROUP_MOUNT_RULE( + DISK_INSTANCE_NAME VARCHAR2(100) CONSTRAINT RQSTER_GRP_RULE_DIN_NN NOT NULL, + REQUESTER_GROUP_NAME VARCHAR2(100) CONSTRAINT RQSTER_GRP_RULE_RGN_NN NOT NULL, + MOUNT_POLICY_NAME VARCHAR2(100) CONSTRAINT RQSTER_GRP_RULE_MPN_NN NOT NULL, + USER_COMMENT VARCHAR2(1000) CONSTRAINT RQSTER_GRP_RULE_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT RQSTER_GRP_RULE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT RQSTER_GRP_RULE_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT RQSTER_GRP_RULE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT RQSTER_GRP_RULE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT RQSTER_GRP_RULE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT RQSTER_GRP_RULE_LUT_NN NOT NULL, + CONSTRAINT RQSTER_GRP_RULE_PK PRIMARY KEY(DISK_INSTANCE_NAME, REQUESTER_GROUP_NAME), + CONSTRAINT RQSTER_GRP_RULE_MNT_PLC_FK FOREIGN KEY(MOUNT_POLICY_NAME) + REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME) +); +CREATE TABLE ARCHIVE_FILE( + ARCHIVE_FILE_ID NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_AFI_NN NOT NULL, + DISK_INSTANCE_NAME VARCHAR2(100) CONSTRAINT ARCHIVE_FILE_DIN_NN NOT NULL, + DISK_FILE_ID VARCHAR2(100) CONSTRAINT ARCHIVE_FILE_DFI_NN NOT NULL, + DISK_FILE_UID NUMERIC(10, 0) CONSTRAINT ARCHIVE_FILE_DFUID_NN NOT NULL, + DISK_FILE_GID NUMERIC(10, 0) CONSTRAINT ARCHIVE_FILE_DFGID_NN NOT NULL, + SIZE_IN_BYTES NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_SIB_NN NOT NULL, + CHECKSUM_BLOB RAW(200), + CHECKSUM_ADLER32 NUMERIC(10, 0) CONSTRAINT ARCHIVE_FILE_CB2_NN NOT NULL, + STORAGE_CLASS_ID NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_SCI_NN NOT NULL, + CREATION_TIME NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_CT2_NN NOT NULL, + RECONCILIATION_TIME NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_RT_NN NOT NULL, + IS_DELETED CHAR(1) DEFAULT '0' CONSTRAINT ARCHIVE_FILE_ID_NN NOT NULL, + COLLOCATION_HINT VARCHAR2(100), + CONSTRAINT ARCHIVE_FILE_PK PRIMARY KEY(ARCHIVE_FILE_ID), + CONSTRAINT ARCHIVE_FILE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID), + CONSTRAINT ARCHIVE_FILE_DIN_DFI_UN UNIQUE(DISK_INSTANCE_NAME, DISK_FILE_ID), + CONSTRAINT ARCHIVE_FILE_ID_BOOL_CK CHECK(IS_DELETED IN ('0', '1')) +); +CREATE INDEX ARCHIVE_FILE_DIN_IDX ON ARCHIVE_FILE(DISK_INSTANCE_NAME); +CREATE INDEX ARCHIVE_FILE_DFI_IDX ON ARCHIVE_FILE(DISK_FILE_ID); +CREATE TABLE TAPE_FILE( + VID VARCHAR2(100) CONSTRAINT TAPE_FILE_V_NN NOT NULL, + FSEQ NUMERIC(20, 0) CONSTRAINT TAPE_FILE_F_NN NOT NULL, + BLOCK_ID NUMERIC(20, 0) CONSTRAINT TAPE_FILE_BI_NN NOT NULL, + LOGICAL_SIZE_IN_BYTES NUMERIC(20, 0) CONSTRAINT TAPE_FILE_CSIB_NN NOT NULL, + COPY_NB NUMERIC(3, 0) CONSTRAINT TAPE_FILE_CN_NN NOT NULL, + CREATION_TIME NUMERIC(20, 0) CONSTRAINT TAPE_FILE_CT_NN NOT NULL, + ARCHIVE_FILE_ID NUMERIC(20, 0) CONSTRAINT TAPE_FILE_AFI_NN NOT NULL, + CONSTRAINT TAPE_FILE_PK PRIMARY KEY(VID, FSEQ), + CONSTRAINT TAPE_FILE_TAPE_FK FOREIGN KEY(VID) + REFERENCES TAPE(VID), + CONSTRAINT TAPE_FILE_ARCHIVE_FILE_FK FOREIGN KEY(ARCHIVE_FILE_ID) + REFERENCES ARCHIVE_FILE(ARCHIVE_FILE_ID), + CONSTRAINT TAPE_FILE_VID_BLOCK_ID_UN UNIQUE(VID, BLOCK_ID), + CONSTRAINT TAPE_FILE_COPY_NB_GT_0_CK CHECK(COPY_NB > 0) +); +CREATE INDEX TAPE_FILE_VID_IDX ON TAPE_FILE(VID); +CREATE INDEX TAPE_FILE_ARCHIVE_FILE_ID_IDX ON TAPE_FILE(ARCHIVE_FILE_ID); +CREATE TABLE ACTIVITIES_WEIGHTS ( + DISK_INSTANCE_NAME VARCHAR2(100), + ACTIVITY VARCHAR2(100), + WEIGHT VARCHAR2(100), + USER_COMMENT VARCHAR2(1000) CONSTRAINT ACTIV_WEIGHTS_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT ACTIV_WEIGHTS_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT ACTIV_WEIGHTS_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT ACTIV_WEIGHTS_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT ACTIV_WEIGHTS_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT ACTIV_WEIGHTS_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT ACTIV_WEIGHTS_LUT_NN NOT NULL +); +CREATE TABLE FILE_RECYCLE_LOG( + FILE_RECYCLE_LOG_ID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_ID_NN NOT NULL, + VID VARCHAR2(100) CONSTRAINT FILE_RECYCLE_LOG_VID_NN NOT NULL, + FSEQ NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_FSEQ_NN NOT NULL, + BLOCK_ID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_BID_NN NOT NULL, + COPY_NB NUMERIC(3, 0) CONSTRAINT FILE_RECYCLE_LOG_COPY_NB_NN NOT NULL, + TAPE_FILE_CREATION_TIME NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_TFCT_NN NOT NULL, + ARCHIVE_FILE_ID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_AFI_NN NOT NULL, + DISK_INSTANCE_NAME VARCHAR2(100) CONSTRAINT FILE_RECYCLE_LOG_DIN_NN NOT NULL, + DISK_FILE_ID VARCHAR2(100) CONSTRAINT FILE_RECYCLE_LOG_DFI_NN NOT NULL, + DISK_FILE_ID_WHEN_DELETED VARCHAR2(100) CONSTRAINT FILE_RECYCLE_LOG_DFIWD_NN NOT NULL, + DISK_FILE_UID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_DFU_NN NOT NULL, + DISK_FILE_GID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_DFG_NN NOT NULL, + SIZE_IN_BYTES NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_SIB_NN NOT NULL, + CHECKSUM_BLOB RAW(200), + CHECKSUM_ADLER32 NUMERIC(10, 0) CONSTRAINT FILE_RECYCLE_LOG_CA_NN NOT NULL, + STORAGE_CLASS_ID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_SCI_NN NOT NULL, + ARCHIVE_FILE_CREATION_TIME NUMERIC(20, 0) CONSTRAINT FILE_RECYLE_LOG_CT_NN NOT NULL, + RECONCILIATION_TIME NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_RT_NN NOT NULL, + COLLOCATION_HINT VARCHAR2(100), + DISK_FILE_PATH VARCHAR2(2000), + REASON_LOG VARCHAR2(1000) CONSTRAINT FILE_RECYCLE_LOG_RL_NN NOT NULL, + RECYCLE_LOG_TIME NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_RLT_NN NOT NULL, + CONSTRAINT FILE_RECYCLE_LOG_PK PRIMARY KEY(FILE_RECYCLE_LOG_ID), + CONSTRAINT FILE_RECYCLE_LOG_VID_FK FOREIGN KEY(VID) REFERENCES TAPE(VID), + CONSTRAINT FILE_RECYCLE_LOG_SC_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID) +); +CREATE INDEX FILE_RECYCLE_LOG_DFI_IDX ON FILE_RECYCLE_LOG(DISK_FILE_ID); + +CREATE TABLE DRIVE_CONFIG ( + DRIVE_NAME VARCHAR2(100) CONSTRAINT DRIVE_CONFIG_DN_NN NOT NULL, + CATEGORY VARCHAR2(100) CONSTRAINT DRIVE_CONFIG_C_NN NOT NULL, + KEY_NAME VARCHAR2(100) CONSTRAINT DRIVE_CONFIG_KN_NN NOT NULL, + VALUE VARCHAR2(1000) CONSTRAINT DRIVE_CONFIG_V_NN NOT NULL, + SOURCE VARCHAR2(100) CONSTRAINT DRIVE_CONFIG_S_NN NOT NULL, + CONSTRAINT DRIVE_CONFIG_DN_PK PRIMARY KEY(KEY_NAME, DRIVE_NAME) +); + +CREATE TABLE TAPE_DRIVE ( + DRIVE_NAME VARCHAR2(100) CONSTRAINT DRIVE_STATE_DN_NN NOT NULL, + HOST VARCHAR2(100) CONSTRAINT DRIVE_STATE_H_NN NOT NULL, + LOGICAL_LIBRARY VARCHAR2(100) CONSTRAINT DRIVE_STATE_LL_NN NOT NULL, + SESSION_ID NUMERIC(20, 0), + BYTES_TRANSFERED_IN_SESSION NUMERIC(20, 0), + FILES_TRANSFERED_IN_SESSION NUMERIC(20, 0), + LATEST_BANDWIDTH VARCHAR2(100), + SESSION_START_TIME NUMERIC(20, 0), + MOUNT_START_TIME NUMERIC(20, 0), + TRANSFER_START_TIME NUMERIC(20, 0), + UNLOAD_START_TIME NUMERIC(20, 0), + UNMOUNT_START_TIME NUMERIC(20, 0), + DRAINING_START_TIME NUMERIC(20, 0), + DOWN_OR_UP_START_TIME NUMERIC(20, 0), + PROBE_START_TIME NUMERIC(20, 0), + CLEANUP_START_TIME NUMERIC(20, 0), + START_START_TIME NUMERIC(20, 0), + SHUTDOWN_TIME NUMERIC(20, 0), + MOUNT_TYPE NUMERIC(10, 0) CONSTRAINT DRIVE_STATE_MT_NN NOT NULL, + DRIVE_STATUS VARCHAR2(100) DEFAULT 'UNKNOWN' CONSTRAINT DRIVE_STATE_DS_NN NOT NULL, + DESIRED_UP CHAR(1) DEFAULT '0' CONSTRAINT DRIVE_STATE_DU_NN NOT NULL, + DESIRED_FORCE_DOWN CHAR(1) DEFAULT '0' CONSTRAINT DRIVE_STATE_DFD_NN NOT NULL, + REASON_UP_DOWN VARCHAR2(1000), + CURRENT_VID VARCHAR2(100), + CTA_VERSION VARCHAR2(100), + CURRENT_PRIORITY NUMERIC(20, 0), + CURRENT_ACTIVITY VARCHAR2(100), + CURRENT_ACTIVITY_WEIGHT VARCHAR2(100), + CURRENT_TAPE_POOL VARCHAR2(100), + NEXT_MOUNT_TYPE NUMERIC(10, 0), + NEXT_VID VARCHAR2(100), + NEXT_TAPE_POOL VARCHAR2(100), + NEXT_PRIORITY NUMERIC(20, 0), + NEXT_ACTIVITY VARCHAR2(100), + NEXT_ACTIVITY_WEIGHT VARCHAR2(100), + DEV_FILE_NAME VARCHAR2(100), + RAW_LIBRARY_SLOT VARCHAR2(100), + CURRENT_VO VARCHAR2(100), + NEXT_VO VARCHAR2(100), + USER_COMMENT VARCHAR2(1000), + CREATION_LOG_USER_NAME VARCHAR2(100), + CREATION_LOG_HOST_NAME VARCHAR2(100), + CREATION_LOG_TIME NUMERIC(20, 0), + LAST_UPDATE_USER_NAME VARCHAR2(100), + LAST_UPDATE_HOST_NAME VARCHAR2(100), + LAST_UPDATE_TIME NUMERIC(20, 0), + DISK_SYSTEM_NAME VARCHAR2(100) CONSTRAINT DRIVE_STATE_DSN_NN NOT NULL, + RESERVED_BYTES NUMERIC(20, 0) CONSTRAINT DRIVE_STATE_RB_NN NOT NULL, + CONSTRAINT DRIVE_STATE_DN_PK PRIMARY KEY(DRIVE_NAME), + CONSTRAINT DRIVE_STATE_DU_BOOL_CK CHECK(DESIRED_UP IN ('0', '1')), + CONSTRAINT DRIVE_STATE_DFD_BOOL_CK CHECK(DESIRED_FORCE_DOWN IN ('0', '1')), + CONSTRAINT DRIVE_STATE_DS_STRING_CK CHECK(DRIVE_STATUS IN ('DOWN', 'UP', 'PROBING', 'STARTING', + 'MOUNTING', 'TRANSFERING', 'UNLOADING', 'UNMOUNTING', 'DRAININGTODISK', 'CLEANINGUP', 'SHUTDOWN', + 'UNKNOWN')) +); +INSERT INTO CTA_CATALOGUE( + SCHEMA_VERSION_MAJOR, + SCHEMA_VERSION_MINOR, + STATUS) +VALUES( + 4, + 2, + 'PRODUCTION'); +ALTER TABLE CTA_CATALOGUE ADD CONSTRAINT CATALOGUE_STATUS_CONTENT_CK CHECK((NEXT_SCHEMA_VERSION_MAJOR IS NULL AND NEXT_SCHEMA_VERSION_MINOR IS NULL AND STATUS='PRODUCTION') OR (NEXT_SCHEMA_VERSION_MAJOR IS NOT NULL AND NEXT_SCHEMA_VERSION_MINOR IS NOT NULL AND STATUS='UPGRADING')) INITIALLY DEFERRED; + +COMMIT; diff --git a/catalogue/4.2/postgres_catalogue_schema.sql b/catalogue/4.2/postgres_catalogue_schema.sql new file mode 100644 index 0000000000000000000000000000000000000000..fcd0ab2f91a54fcc388ba9a6c323114692ad7dc7 --- /dev/null +++ b/catalogue/4.2/postgres_catalogue_schema.sql @@ -0,0 +1,440 @@ +CREATE SEQUENCE ARCHIVE_FILE_ID_SEQ + INCREMENT BY 1 + START WITH 1 + NO MAXVALUE + MINVALUE 1 + NO CYCLE + CACHE 20; +CREATE SEQUENCE LOGICAL_LIBRARY_ID_SEQ + INCREMENT BY 1 + START WITH 1 + NO MAXVALUE + MINVALUE 1 + NO CYCLE + CACHE 20; +CREATE SEQUENCE MEDIA_TYPE_ID_SEQ + INCREMENT BY 1 + START WITH 1 + NO MAXVALUE + MINVALUE 1 + NO CYCLE + CACHE 20; +CREATE SEQUENCE STORAGE_CLASS_ID_SEQ + INCREMENT BY 1 + START WITH 1 + NO MAXVALUE + MINVALUE 1 + NO CYCLE + CACHE 20; +CREATE SEQUENCE TAPE_POOL_ID_SEQ + INCREMENT BY 1 + START WITH 1 + NO MAXVALUE + MINVALUE 1 + NO CYCLE + CACHE 20; +CREATE SEQUENCE VIRTUAL_ORGANIZATION_ID_SEQ + INCREMENT BY 1 + START WITH 1 + NO MAXVALUE + MINVALUE 1 + NO CYCLE + CACHE 20; +CREATE SEQUENCE FILE_RECYCLE_LOG_ID_SEQ + INCREMENT BY 1 + START WITH 1 + NO MAXVALUE + MINVALUE 1 + NO CYCLE + CACHE 20; +CREATE TABLE CTA_CATALOGUE( + SCHEMA_VERSION_MAJOR NUMERIC(20, 0) CONSTRAINT CTA_CATALOGUE_SVM1_NN NOT NULL, + SCHEMA_VERSION_MINOR NUMERIC(20, 0) CONSTRAINT CTA_CATALOGUE_SVM2_NN NOT NULL, + NEXT_SCHEMA_VERSION_MAJOR NUMERIC(20, 0), + NEXT_SCHEMA_VERSION_MINOR NUMERIC(20, 0), + STATUS VARCHAR(100), + IS_PRODUCTION CHAR(1) DEFAULT '0' CONSTRAINT CTA_CATALOGUE_IP_NN NOT NULL, + CONSTRAINT CTA_CATALOGUE_IP_BOOL_CK CHECK(IS_PRODUCTION IN ('0','1')) +); +CREATE TABLE ADMIN_USER( + ADMIN_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_AUN_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT ADMIN_USER_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT ADMIN_USER_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT ADMIN_USER_LUT_NN NOT NULL, + CONSTRAINT ADMIN_USER_PK PRIMARY KEY(ADMIN_USER_NAME) +); +CREATE TABLE DISK_SYSTEM( + DISK_SYSTEM_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_DSNM_NN NOT NULL, + FILE_REGEXP VARCHAR(100) CONSTRAINT DISK_SYSTEM_FR_NN NOT NULL, + FREE_SPACE_QUERY_URL VARCHAR(1000) CONSTRAINT DISK_SYSTEM_FSQU_NN NOT NULL, + REFRESH_INTERVAL NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_RI_NN NOT NULL, + TARGETED_FREE_SPACE NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_TFS_NN NOT NULL, + SLEEP_TIME NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_ST_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT DISK_SYSTEM_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_LUT_NN NOT NULL, + CONSTRAINT NAME_PK PRIMARY KEY(DISK_SYSTEM_NAME) +); +CREATE TABLE VIRTUAL_ORGANIZATION( + VIRTUAL_ORGANIZATION_ID NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_VOI_NN NOT NULL, + VIRTUAL_ORGANIZATION_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_VON_NN NOT NULL, + READ_MAX_DRIVES NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_RMD_NN NOT NULL, + WRITE_MAX_DRIVES NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_WMD_NN NOT NULL, + MAX_FILE_SIZE NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_MFS_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT VIRTUAL_ORGANIZATION_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_LUT_NN NOT NULL, + CONSTRAINT VIRTUAL_ORGANIZATION_PK PRIMARY KEY(VIRTUAL_ORGANIZATION_ID), + CONSTRAINT VIRTUAL_ORGANIZATION_VON_UN UNIQUE(VIRTUAL_ORGANIZATION_NAME) +); +CREATE TABLE STORAGE_CLASS( + STORAGE_CLASS_ID NUMERIC(20, 0) CONSTRAINT STORAGE_CLASS_SCI_NN NOT NULL, + STORAGE_CLASS_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_SCN_NN NOT NULL, + NB_COPIES NUMERIC(3, 0) CONSTRAINT STORAGE_CLASS_NC_NN NOT NULL, + VIRTUAL_ORGANIZATION_ID NUMERIC(20, 0) CONSTRAINT STORAGE_CLASS_VOI_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT STORAGE_CLASS_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT STORAGE_CLASS_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT STORAGE_CLASS_LUT_NN NOT NULL, + CONSTRAINT STORAGE_CLASS_PK PRIMARY KEY(STORAGE_CLASS_ID), + CONSTRAINT STORAGE_CLASS_SCN_UN UNIQUE(STORAGE_CLASS_NAME), + CONSTRAINT STORAGE_CLASS_VOI_FK FOREIGN KEY(VIRTUAL_ORGANIZATION_ID) REFERENCES VIRTUAL_ORGANIZATION(VIRTUAL_ORGANIZATION_ID) +); +CREATE TABLE TAPE_POOL( + TAPE_POOL_ID NUMERIC(20, 0) CONSTRAINT TAPE_POOL_TPI_NN NOT NULL, + TAPE_POOL_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_TPN_NN NOT NULL, + VIRTUAL_ORGANIZATION_ID NUMERIC(20, 0) CONSTRAINT TAPE_POOL_VOI_NN NOT NULL, + NB_PARTIAL_TAPES NUMERIC(20, 0) CONSTRAINT TAPE_POOL_NPT_NN NOT NULL, + IS_ENCRYPTED CHAR(1) CONSTRAINT TAPE_POOL_IE_NN NOT NULL, + SUPPLY VARCHAR(100), + USER_COMMENT VARCHAR(1000) CONSTRAINT TAPE_POOL_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT TAPE_POOL_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT TAPE_POOL_LUT_NN NOT NULL, + CONSTRAINT TAPE_POOL_PK PRIMARY KEY(TAPE_POOL_ID), + CONSTRAINT TAPE_POOL_TPN_UN UNIQUE(TAPE_POOL_NAME), + CONSTRAINT TAPE_POOL_IS_ENCRYPTED_BOOL_CK CHECK(IS_ENCRYPTED IN ('0', '1')), + CONSTRAINT TAPE_POOL_VO_FK FOREIGN KEY(VIRTUAL_ORGANIZATION_ID) REFERENCES VIRTUAL_ORGANIZATION(VIRTUAL_ORGANIZATION_ID) +); +CREATE TABLE ARCHIVE_ROUTE( + STORAGE_CLASS_ID NUMERIC(20, 0) CONSTRAINT ARCHIVE_ROUTE_SCI_NN NOT NULL, + COPY_NB NUMERIC(3, 0) CONSTRAINT ARCHIVE_ROUTE_CN_NN NOT NULL, + TAPE_POOL_ID NUMERIC(20, 0) CONSTRAINT ARCHIVE_ROUTE_TPI_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT ARCHIVE_ROUTE_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT ARCHIVE_ROUTE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT ARCHIVE_ROUTE_LUT_NN NOT NULL, + CONSTRAINT ARCHIVE_ROUTE_PK PRIMARY KEY(STORAGE_CLASS_ID, COPY_NB), + CONSTRAINT ARCHIVE_ROUTE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID), + CONSTRAINT ARCHIVE_ROUTE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_ID) REFERENCES TAPE_POOL(TAPE_POOL_ID), + CONSTRAINT ARCHIVE_ROUTE_COPY_NB_GT_0_CK CHECK(COPY_NB > 0), + CONSTRAINT ARCHIVE_ROUTE_SCI_TPI_UN UNIQUE(STORAGE_CLASS_ID, TAPE_POOL_ID) +); +CREATE TABLE MEDIA_TYPE( + MEDIA_TYPE_ID NUMERIC(20, 0) CONSTRAINT MEDIA_TYPE_MTI_NN NOT NULL, + MEDIA_TYPE_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_MTN_NN NOT NULL, + CARTRIDGE VARCHAR(100) CONSTRAINT MEDIA_TYPE_C_NN NOT NULL, + CAPACITY_IN_BYTES NUMERIC(20, 0) CONSTRAINT MEDIA_TYPE_CIB_NN NOT NULL, + PRIMARY_DENSITY_CODE NUMERIC(3, 0), + SECONDARY_DENSITY_CODE NUMERIC(3, 0), + NB_WRAPS NUMERIC(10, 0), + MIN_LPOS NUMERIC(20, 0), + MAX_LPOS NUMERIC(20, 0), + USER_COMMENT VARCHAR(1000) CONSTRAINT MEDIA_TYPE_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT MEDIA_TYPE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT MEDIA_TYPE_LUT_NN NOT NULL, + CONSTRAINT MEDIA_TYPE_PK PRIMARY KEY(MEDIA_TYPE_ID), + CONSTRAINT MEDIA_TYPE_MTN_UN UNIQUE(MEDIA_TYPE_NAME) +); +CREATE TABLE LOGICAL_LIBRARY( + LOGICAL_LIBRARY_ID NUMERIC(20, 0) CONSTRAINT LOGICAL_LIBRARY_LLI_NN NOT NULL, + LOGICAL_LIBRARY_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LLN_NN NOT NULL, + IS_DISABLED CHAR(1) DEFAULT '0' CONSTRAINT LOGICAL_LIBRARY_ID_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT LOGICAL_LIBRARY_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT LOGICAL_LIBRARY_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT LOGICAL_LIBRARY_LUT_NN NOT NULL, + CONSTRAINT LOGICAL_LIBRARY_PK PRIMARY KEY(LOGICAL_LIBRARY_ID), + CONSTRAINT LOGICAL_LIBRARY_LLN_UN UNIQUE(LOGICAL_LIBRARY_NAME), + CONSTRAINT LOGICAL_LIBRARY_ID_BOOL_CK CHECK(IS_DISABLED IN ('0', '1')) +); +CREATE TABLE TAPE( + VID VARCHAR(100) CONSTRAINT TAPE_V_NN NOT NULL, + MEDIA_TYPE_ID NUMERIC(20, 0) CONSTRAINT TAPE_MTID_NN NOT NULL, + VENDOR VARCHAR(100) CONSTRAINT TAPE_V2_NN NOT NULL, + LOGICAL_LIBRARY_ID NUMERIC(20, 0) CONSTRAINT TAPE_LLI_NN NOT NULL, + TAPE_POOL_ID NUMERIC(20, 0) CONSTRAINT TAPE_TPI_NN NOT NULL, + ENCRYPTION_KEY_NAME VARCHAR(100), + DATA_IN_BYTES NUMERIC(20, 0) CONSTRAINT TAPE_DIB_NN NOT NULL, + LAST_FSEQ NUMERIC(20, 0) CONSTRAINT TAPE_LF_NN NOT NULL, + NB_MASTER_FILES NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_NB_MASTER_FILES_NN NOT NULL, + MASTER_DATA_IN_BYTES NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_MASTER_DATA_IN_BYTES_NN NOT NULL, + IS_FULL CHAR(1) CONSTRAINT TAPE_IF_NN NOT NULL, + IS_FROM_CASTOR CHAR(1) CONSTRAINT TAPE_IFC_NN NOT NULL, + DIRTY CHAR(1) DEFAULT '1' CONSTRAINT TAPE_DIRTY_NN NOT NULL, + NB_COPY_NB_1 NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_NB_COPY_NB_1_NN NOT NULL, + COPY_NB_1_IN_BYTES NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_COPY_NB_1_IN_BYTES_NN NOT NULL, + NB_COPY_NB_GT_1 NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_NB_COPY_NB_GT_1_NN NOT NULL, + COPY_NB_GT_1_IN_BYTES NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_COPY_NB_GT_1_IN_BYTES_NN NOT NULL, + LABEL_DRIVE VARCHAR(100), + LABEL_TIME NUMERIC(20, 0) , + LAST_READ_DRIVE VARCHAR(100), + LAST_READ_TIME NUMERIC(20, 0) , + LAST_WRITE_DRIVE VARCHAR(100), + LAST_WRITE_TIME NUMERIC(20, 0) , + READ_MOUNT_COUNT NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_RMC_NN NOT NULL, + WRITE_MOUNT_COUNT NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_WMC_NN NOT NULL, + USER_COMMENT VARCHAR(1000), + TAPE_STATE VARCHAR(100) CONSTRAINT TAPE_TS_NN NOT NULL, + STATE_REASON VARCHAR(1000), + STATE_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT TAPE_SUT_NN NOT NULL, + STATE_MODIFIED_BY VARCHAR(100) CONSTRAINT TAPE_SMB_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT TAPE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT TAPE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT TAPE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT TAPE_LUT_NN NOT NULL, + CONSTRAINT TAPE_PK PRIMARY KEY(VID), + CONSTRAINT TAPE_LOGICAL_LIBRARY_FK FOREIGN KEY(LOGICAL_LIBRARY_ID) REFERENCES LOGICAL_LIBRARY(LOGICAL_LIBRARY_ID), + CONSTRAINT TAPE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_ID) REFERENCES TAPE_POOL(TAPE_POOL_ID), + CONSTRAINT TAPE_IS_FULL_BOOL_CK CHECK(IS_FULL IN ('0', '1')), + CONSTRAINT TAPE_IS_FROM_CASTOR_BOOL_CK CHECK(IS_FROM_CASTOR IN ('0', '1')), + CONSTRAINT TAPE_DIRTY_BOOL_CK CHECK(DIRTY IN ('0','1')), + CONSTRAINT TAPE_STATE_CK CHECK(TAPE_STATE IN ('ACTIVE', 'DISABLED', 'BROKEN')), + CONSTRAINT TAPE_MEDIA_TYPE_FK FOREIGN KEY(MEDIA_TYPE_ID) REFERENCES MEDIA_TYPE(MEDIA_TYPE_ID) +); +CREATE INDEX TAPE_TAPE_POOL_ID_IDX ON TAPE(TAPE_POOL_ID); +CREATE INDEX TAPE_STATE_IDX ON TAPE(TAPE_STATE); +CREATE TABLE MOUNT_POLICY( + MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_MPN_NN NOT NULL, + ARCHIVE_PRIORITY NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_AP_NN NOT NULL, + ARCHIVE_MIN_REQUEST_AGE NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL, + RETRIEVE_PRIORITY NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_RP_NN NOT NULL, + RETRIEVE_MIN_REQUEST_AGE NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT MOUNT_POLICY_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_LUT_NN NOT NULL, + CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME) +); +CREATE TABLE REQUESTER_MOUNT_RULE( + DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_DIN_NN NOT NULL, + REQUESTER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_RN_NN NOT NULL, + MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_MPN_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT RQSTER_RULE_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT RQSTER_RULE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT RQSTER_RULE_LUT_NN NOT NULL, + CONSTRAINT RQSTER_RULE_PK PRIMARY KEY(DISK_INSTANCE_NAME, REQUESTER_NAME), + CONSTRAINT RQSTER_RULE_MNT_PLC_FK FOREIGN KEY(MOUNT_POLICY_NAME) + REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME) +); +CREATE TABLE REQUESTER_GROUP_MOUNT_RULE( + DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_DIN_NN NOT NULL, + REQUESTER_GROUP_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_RGN_NN NOT NULL, + MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_MPN_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT RQSTER_GRP_RULE_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT RQSTER_GRP_RULE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT RQSTER_GRP_RULE_LUT_NN NOT NULL, + CONSTRAINT RQSTER_GRP_RULE_PK PRIMARY KEY(DISK_INSTANCE_NAME, REQUESTER_GROUP_NAME), + CONSTRAINT RQSTER_GRP_RULE_MNT_PLC_FK FOREIGN KEY(MOUNT_POLICY_NAME) + REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME) +); +CREATE TABLE ARCHIVE_FILE( + ARCHIVE_FILE_ID NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_AFI_NN NOT NULL, + DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT ARCHIVE_FILE_DIN_NN NOT NULL, + DISK_FILE_ID VARCHAR(100) CONSTRAINT ARCHIVE_FILE_DFI_NN NOT NULL, + DISK_FILE_UID NUMERIC(10, 0) CONSTRAINT ARCHIVE_FILE_DFUID_NN NOT NULL, + DISK_FILE_GID NUMERIC(10, 0) CONSTRAINT ARCHIVE_FILE_DFGID_NN NOT NULL, + SIZE_IN_BYTES NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_SIB_NN NOT NULL, + CHECKSUM_BLOB BYTEA, + CHECKSUM_ADLER32 NUMERIC(10, 0) CONSTRAINT ARCHIVE_FILE_CB2_NN NOT NULL, + STORAGE_CLASS_ID NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_SCI_NN NOT NULL, + CREATION_TIME NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_CT2_NN NOT NULL, + RECONCILIATION_TIME NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_RT_NN NOT NULL, + IS_DELETED CHAR(1) DEFAULT '0' CONSTRAINT ARCHIVE_FILE_ID_NN NOT NULL, + COLLOCATION_HINT VARCHAR(100), + CONSTRAINT ARCHIVE_FILE_PK PRIMARY KEY(ARCHIVE_FILE_ID), + CONSTRAINT ARCHIVE_FILE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID), + CONSTRAINT ARCHIVE_FILE_DIN_DFI_UN UNIQUE(DISK_INSTANCE_NAME, DISK_FILE_ID), + CONSTRAINT ARCHIVE_FILE_ID_BOOL_CK CHECK(IS_DELETED IN ('0', '1')) +); +CREATE INDEX ARCHIVE_FILE_DIN_IDX ON ARCHIVE_FILE(DISK_INSTANCE_NAME); +CREATE INDEX ARCHIVE_FILE_DFI_IDX ON ARCHIVE_FILE(DISK_FILE_ID); +CREATE TABLE TAPE_FILE( + VID VARCHAR(100) CONSTRAINT TAPE_FILE_V_NN NOT NULL, + FSEQ NUMERIC(20, 0) CONSTRAINT TAPE_FILE_F_NN NOT NULL, + BLOCK_ID NUMERIC(20, 0) CONSTRAINT TAPE_FILE_BI_NN NOT NULL, + LOGICAL_SIZE_IN_BYTES NUMERIC(20, 0) CONSTRAINT TAPE_FILE_CSIB_NN NOT NULL, + COPY_NB NUMERIC(3, 0) CONSTRAINT TAPE_FILE_CN_NN NOT NULL, + CREATION_TIME NUMERIC(20, 0) CONSTRAINT TAPE_FILE_CT_NN NOT NULL, + ARCHIVE_FILE_ID NUMERIC(20, 0) CONSTRAINT TAPE_FILE_AFI_NN NOT NULL, + CONSTRAINT TAPE_FILE_PK PRIMARY KEY(VID, FSEQ), + CONSTRAINT TAPE_FILE_TAPE_FK FOREIGN KEY(VID) + REFERENCES TAPE(VID), + CONSTRAINT TAPE_FILE_ARCHIVE_FILE_FK FOREIGN KEY(ARCHIVE_FILE_ID) + REFERENCES ARCHIVE_FILE(ARCHIVE_FILE_ID), + CONSTRAINT TAPE_FILE_VID_BLOCK_ID_UN UNIQUE(VID, BLOCK_ID), + CONSTRAINT TAPE_FILE_COPY_NB_GT_0_CK CHECK(COPY_NB > 0) +); +CREATE INDEX TAPE_FILE_VID_IDX ON TAPE_FILE(VID); +CREATE INDEX TAPE_FILE_ARCHIVE_FILE_ID_IDX ON TAPE_FILE(ARCHIVE_FILE_ID); +CREATE TABLE ACTIVITIES_WEIGHTS ( + DISK_INSTANCE_NAME VARCHAR(100), + ACTIVITY VARCHAR(100), + WEIGHT VARCHAR(100), + USER_COMMENT VARCHAR(1000) CONSTRAINT ACTIV_WEIGHTS_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_CLHN_NN NOT NULL, + CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT ACTIV_WEIGHTS_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_LUHN_NN NOT NULL, + LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT ACTIV_WEIGHTS_LUT_NN NOT NULL +); +CREATE TABLE FILE_RECYCLE_LOG( + FILE_RECYCLE_LOG_ID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_ID_NN NOT NULL, + VID VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_VID_NN NOT NULL, + FSEQ NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_FSEQ_NN NOT NULL, + BLOCK_ID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_BID_NN NOT NULL, + COPY_NB NUMERIC(3, 0) CONSTRAINT FILE_RECYCLE_LOG_COPY_NB_NN NOT NULL, + TAPE_FILE_CREATION_TIME NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_TFCT_NN NOT NULL, + ARCHIVE_FILE_ID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_AFI_NN NOT NULL, + DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DIN_NN NOT NULL, + DISK_FILE_ID VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DFI_NN NOT NULL, + DISK_FILE_ID_WHEN_DELETED VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DFIWD_NN NOT NULL, + DISK_FILE_UID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_DFU_NN NOT NULL, + DISK_FILE_GID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_DFG_NN NOT NULL, + SIZE_IN_BYTES NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_SIB_NN NOT NULL, + CHECKSUM_BLOB BYTEA, + CHECKSUM_ADLER32 NUMERIC(10, 0) CONSTRAINT FILE_RECYCLE_LOG_CA_NN NOT NULL, + STORAGE_CLASS_ID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_SCI_NN NOT NULL, + ARCHIVE_FILE_CREATION_TIME NUMERIC(20, 0) CONSTRAINT FILE_RECYLE_LOG_CT_NN NOT NULL, + RECONCILIATION_TIME NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_RT_NN NOT NULL, + COLLOCATION_HINT VARCHAR(100), + DISK_FILE_PATH VARCHAR(2000), + REASON_LOG VARCHAR(1000) CONSTRAINT FILE_RECYCLE_LOG_RL_NN NOT NULL, + RECYCLE_LOG_TIME NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_RLT_NN NOT NULL, + CONSTRAINT FILE_RECYCLE_LOG_PK PRIMARY KEY(FILE_RECYCLE_LOG_ID), + CONSTRAINT FILE_RECYCLE_LOG_VID_FK FOREIGN KEY(VID) REFERENCES TAPE(VID), + CONSTRAINT FILE_RECYCLE_LOG_SC_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID) +); +CREATE INDEX FILE_RECYCLE_LOG_DFI_IDX ON FILE_RECYCLE_LOG(DISK_FILE_ID); + +CREATE TABLE DRIVE_CONFIG ( + DRIVE_NAME VARCHAR(100) CONSTRAINT DRIVE_CONFIG_DN_NN NOT NULL, + CATEGORY VARCHAR(100) CONSTRAINT DRIVE_CONFIG_C_NN NOT NULL, + KEY_NAME VARCHAR(100) CONSTRAINT DRIVE_CONFIG_KN_NN NOT NULL, + VALUE VARCHAR(1000) CONSTRAINT DRIVE_CONFIG_V_NN NOT NULL, + SOURCE VARCHAR(100) CONSTRAINT DRIVE_CONFIG_S_NN NOT NULL, + CONSTRAINT DRIVE_CONFIG_DN_PK PRIMARY KEY(KEY_NAME, DRIVE_NAME) +); + +CREATE TABLE TAPE_DRIVE ( + DRIVE_NAME VARCHAR(100) CONSTRAINT DRIVE_STATE_DN_NN NOT NULL, + HOST VARCHAR(100) CONSTRAINT DRIVE_STATE_H_NN NOT NULL, + LOGICAL_LIBRARY VARCHAR(100) CONSTRAINT DRIVE_STATE_LL_NN NOT NULL, + SESSION_ID NUMERIC(20, 0), + BYTES_TRANSFERED_IN_SESSION NUMERIC(20, 0), + FILES_TRANSFERED_IN_SESSION NUMERIC(20, 0), + LATEST_BANDWIDTH VARCHAR(100), + SESSION_START_TIME NUMERIC(20, 0), + MOUNT_START_TIME NUMERIC(20, 0), + TRANSFER_START_TIME NUMERIC(20, 0), + UNLOAD_START_TIME NUMERIC(20, 0), + UNMOUNT_START_TIME NUMERIC(20, 0), + DRAINING_START_TIME NUMERIC(20, 0), + DOWN_OR_UP_START_TIME NUMERIC(20, 0), + PROBE_START_TIME NUMERIC(20, 0), + CLEANUP_START_TIME NUMERIC(20, 0), + START_START_TIME NUMERIC(20, 0), + SHUTDOWN_TIME NUMERIC(20, 0), + MOUNT_TYPE NUMERIC(10, 0) CONSTRAINT DRIVE_STATE_MT_NN NOT NULL, + DRIVE_STATUS VARCHAR(100) DEFAULT 'UNKNOWN' CONSTRAINT DRIVE_STATE_DS_NN NOT NULL, + DESIRED_UP CHAR(1) DEFAULT '0' CONSTRAINT DRIVE_STATE_DU_NN NOT NULL, + DESIRED_FORCE_DOWN CHAR(1) DEFAULT '0' CONSTRAINT DRIVE_STATE_DFD_NN NOT NULL, + REASON_UP_DOWN VARCHAR(1000), + CURRENT_VID VARCHAR(100), + CTA_VERSION VARCHAR(100), + CURRENT_PRIORITY NUMERIC(20, 0), + CURRENT_ACTIVITY VARCHAR(100), + CURRENT_ACTIVITY_WEIGHT VARCHAR(100), + CURRENT_TAPE_POOL VARCHAR(100), + NEXT_MOUNT_TYPE NUMERIC(10, 0), + NEXT_VID VARCHAR(100), + NEXT_TAPE_POOL VARCHAR(100), + NEXT_PRIORITY NUMERIC(20, 0), + NEXT_ACTIVITY VARCHAR(100), + NEXT_ACTIVITY_WEIGHT VARCHAR(100), + DEV_FILE_NAME VARCHAR(100), + RAW_LIBRARY_SLOT VARCHAR(100), + CURRENT_VO VARCHAR(100), + NEXT_VO VARCHAR(100), + USER_COMMENT VARCHAR(1000), + CREATION_LOG_USER_NAME VARCHAR(100), + CREATION_LOG_HOST_NAME VARCHAR(100), + CREATION_LOG_TIME NUMERIC(20, 0), + LAST_UPDATE_USER_NAME VARCHAR(100), + LAST_UPDATE_HOST_NAME VARCHAR(100), + LAST_UPDATE_TIME NUMERIC(20, 0), + DISK_SYSTEM_NAME VARCHAR(100) CONSTRAINT DRIVE_STATE_DSN_NN NOT NULL, + RESERVED_BYTES NUMERIC(20, 0) CONSTRAINT DRIVE_STATE_RB_NN NOT NULL, + CONSTRAINT DRIVE_STATE_DN_PK PRIMARY KEY(DRIVE_NAME), + CONSTRAINT DRIVE_STATE_DU_BOOL_CK CHECK(DESIRED_UP IN ('0', '1')), + CONSTRAINT DRIVE_STATE_DFD_BOOL_CK CHECK(DESIRED_FORCE_DOWN IN ('0', '1')), + CONSTRAINT DRIVE_STATE_DS_STRING_CK CHECK(DRIVE_STATUS IN ('DOWN', 'UP', 'PROBING', 'STARTING', + 'MOUNTING', 'TRANSFERING', 'UNLOADING', 'UNMOUNTING', 'DRAININGTODISK', 'CLEANINGUP', 'SHUTDOWN', + 'UNKNOWN')) +); +INSERT INTO CTA_CATALOGUE( + SCHEMA_VERSION_MAJOR, + SCHEMA_VERSION_MINOR, + STATUS) +VALUES( + 4, + 2, + 'PRODUCTION'); +ALTER TABLE ARCHIVE_FILE DROP CONSTRAINT + ARCHIVE_FILE_DIN_DFI_UN; +ALTER TABLE ARCHIVE_FILE ADD CONSTRAINT + ARCHIVE_FILE_DIN_DFI_UN UNIQUE(DISK_INSTANCE_NAME, DISK_FILE_ID) DEFERRABLE INITIALLY IMMEDIATE; +ALTER TABLE CTA_CATALOGUE ADD CONSTRAINT + CATALOGUE_STATUS_CONTENT_CK CHECK((NEXT_SCHEMA_VERSION_MAJOR IS NULL AND NEXT_SCHEMA_VERSION_MINOR IS NULL AND STATUS='PRODUCTION') OR (STATUS='UPGRADING')); diff --git a/catalogue/4.2/sqlite_catalogue_schema.sql b/catalogue/4.2/sqlite_catalogue_schema.sql new file mode 100644 index 0000000000000000000000000000000000000000..43ab44ccccf9a52265114bd7e1ea7164d222225b --- /dev/null +++ b/catalogue/4.2/sqlite_catalogue_schema.sql @@ -0,0 +1,406 @@ +CREATE TABLE ARCHIVE_FILE_ID( + ID INTEGER PRIMARY KEY AUTOINCREMENT +); +CREATE TABLE LOGICAL_LIBRARY_ID( + ID INTEGER PRIMARY KEY AUTOINCREMENT +); +CREATE TABLE MEDIA_TYPE_ID( + ID INTEGER PRIMARY KEY AUTOINCREMENT +); +CREATE TABLE STORAGE_CLASS_ID( + ID INTEGER PRIMARY KEY AUTOINCREMENT +); +CREATE TABLE TAPE_POOL_ID( + ID INTEGER PRIMARY KEY AUTOINCREMENT +); +CREATE TABLE VIRTUAL_ORGANIZATION_ID( + ID INTEGER PRIMARY KEY AUTOINCREMENT +); +CREATE TABLE FILE_RECYCLE_LOG_ID( + ID INTEGER PRIMARY KEY AUTOINCREMENT +); +CREATE TABLE CTA_CATALOGUE( + SCHEMA_VERSION_MAJOR INTEGER CONSTRAINT CTA_CATALOGUE_SVM1_NN NOT NULL, + SCHEMA_VERSION_MINOR INTEGER CONSTRAINT CTA_CATALOGUE_SVM2_NN NOT NULL, + NEXT_SCHEMA_VERSION_MAJOR INTEGER, + NEXT_SCHEMA_VERSION_MINOR INTEGER, + STATUS VARCHAR(100), + IS_PRODUCTION CHAR(1) DEFAULT '0' CONSTRAINT CTA_CATALOGUE_IP_NN NOT NULL, + CONSTRAINT CTA_CATALOGUE_IP_BOOL_CK CHECK(IS_PRODUCTION IN ('0','1')) +); +CREATE TABLE ADMIN_USER( + ADMIN_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_AUN_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT ADMIN_USER_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_CLHN_NN NOT NULL, + CREATION_LOG_TIME INTEGER CONSTRAINT ADMIN_USER_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_LUHN_NN NOT NULL, + LAST_UPDATE_TIME INTEGER CONSTRAINT ADMIN_USER_LUT_NN NOT NULL, + CONSTRAINT ADMIN_USER_PK PRIMARY KEY(ADMIN_USER_NAME) +); +CREATE TABLE DISK_SYSTEM( + DISK_SYSTEM_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_DSNM_NN NOT NULL, + FILE_REGEXP VARCHAR(100) CONSTRAINT DISK_SYSTEM_FR_NN NOT NULL, + FREE_SPACE_QUERY_URL VARCHAR(1000) CONSTRAINT DISK_SYSTEM_FSQU_NN NOT NULL, + REFRESH_INTERVAL INTEGER CONSTRAINT DISK_SYSTEM_RI_NN NOT NULL, + TARGETED_FREE_SPACE INTEGER CONSTRAINT DISK_SYSTEM_TFS_NN NOT NULL, + SLEEP_TIME INTEGER CONSTRAINT DISK_SYSTEM_ST_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT DISK_SYSTEM_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_CLHN_NN NOT NULL, + CREATION_LOG_TIME INTEGER CONSTRAINT DISK_SYSTEM_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_LUHN_NN NOT NULL, + LAST_UPDATE_TIME INTEGER CONSTRAINT DISK_SYSTEM_LUT_NN NOT NULL, + CONSTRAINT NAME_PK PRIMARY KEY(DISK_SYSTEM_NAME) +); +CREATE TABLE VIRTUAL_ORGANIZATION( + VIRTUAL_ORGANIZATION_ID INTEGER CONSTRAINT VIRTUAL_ORGANIZATION_VOI_NN NOT NULL, + VIRTUAL_ORGANIZATION_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_VON_NN NOT NULL, + READ_MAX_DRIVES INTEGER CONSTRAINT VIRTUAL_ORGANIZATION_RMD_NN NOT NULL, + WRITE_MAX_DRIVES INTEGER CONSTRAINT VIRTUAL_ORGANIZATION_WMD_NN NOT NULL, + MAX_FILE_SIZE INTEGER CONSTRAINT VIRTUAL_ORGANIZATION_MFS_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT VIRTUAL_ORGANIZATION_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLHN_NN NOT NULL, + CREATION_LOG_TIME INTEGER CONSTRAINT VIRTUAL_ORGANIZATION_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_LUHN_NN NOT NULL, + LAST_UPDATE_TIME INTEGER CONSTRAINT VIRTUAL_ORGANIZATION_LUT_NN NOT NULL, + CONSTRAINT VIRTUAL_ORGANIZATION_PK PRIMARY KEY(VIRTUAL_ORGANIZATION_ID), + CONSTRAINT VIRTUAL_ORGANIZATION_VON_UN UNIQUE(VIRTUAL_ORGANIZATION_NAME) +); +CREATE TABLE STORAGE_CLASS( + STORAGE_CLASS_ID INTEGER CONSTRAINT STORAGE_CLASS_SCI_NN NOT NULL, + STORAGE_CLASS_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_SCN_NN NOT NULL, + NB_COPIES INTEGER CONSTRAINT STORAGE_CLASS_NC_NN NOT NULL, + VIRTUAL_ORGANIZATION_ID INTEGER CONSTRAINT STORAGE_CLASS_VOI_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT STORAGE_CLASS_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_CLHN_NN NOT NULL, + CREATION_LOG_TIME INTEGER CONSTRAINT STORAGE_CLASS_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_LUHN_NN NOT NULL, + LAST_UPDATE_TIME INTEGER CONSTRAINT STORAGE_CLASS_LUT_NN NOT NULL, + CONSTRAINT STORAGE_CLASS_PK PRIMARY KEY(STORAGE_CLASS_ID), + CONSTRAINT STORAGE_CLASS_SCN_UN UNIQUE(STORAGE_CLASS_NAME), + CONSTRAINT STORAGE_CLASS_VOI_FK FOREIGN KEY(VIRTUAL_ORGANIZATION_ID) REFERENCES VIRTUAL_ORGANIZATION(VIRTUAL_ORGANIZATION_ID) +); +CREATE TABLE TAPE_POOL( + TAPE_POOL_ID INTEGER CONSTRAINT TAPE_POOL_TPI_NN NOT NULL, + TAPE_POOL_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_TPN_NN NOT NULL, + VIRTUAL_ORGANIZATION_ID INTEGER CONSTRAINT TAPE_POOL_VOI_NN NOT NULL, + NB_PARTIAL_TAPES INTEGER CONSTRAINT TAPE_POOL_NPT_NN NOT NULL, + IS_ENCRYPTED CHAR(1) CONSTRAINT TAPE_POOL_IE_NN NOT NULL, + SUPPLY VARCHAR(100), + USER_COMMENT VARCHAR(1000) CONSTRAINT TAPE_POOL_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_CLHN_NN NOT NULL, + CREATION_LOG_TIME INTEGER CONSTRAINT TAPE_POOL_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_LUHN_NN NOT NULL, + LAST_UPDATE_TIME INTEGER CONSTRAINT TAPE_POOL_LUT_NN NOT NULL, + CONSTRAINT TAPE_POOL_PK PRIMARY KEY(TAPE_POOL_ID), + CONSTRAINT TAPE_POOL_TPN_UN UNIQUE(TAPE_POOL_NAME), + CONSTRAINT TAPE_POOL_IS_ENCRYPTED_BOOL_CK CHECK(IS_ENCRYPTED IN ('0', '1')), + CONSTRAINT TAPE_POOL_VO_FK FOREIGN KEY(VIRTUAL_ORGANIZATION_ID) REFERENCES VIRTUAL_ORGANIZATION(VIRTUAL_ORGANIZATION_ID) +); +CREATE TABLE ARCHIVE_ROUTE( + STORAGE_CLASS_ID INTEGER CONSTRAINT ARCHIVE_ROUTE_SCI_NN NOT NULL, + COPY_NB INTEGER CONSTRAINT ARCHIVE_ROUTE_CN_NN NOT NULL, + TAPE_POOL_ID INTEGER CONSTRAINT ARCHIVE_ROUTE_TPI_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT ARCHIVE_ROUTE_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_CLHN_NN NOT NULL, + CREATION_LOG_TIME INTEGER CONSTRAINT ARCHIVE_ROUTE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME INTEGER CONSTRAINT ARCHIVE_ROUTE_LUT_NN NOT NULL, + CONSTRAINT ARCHIVE_ROUTE_PK PRIMARY KEY(STORAGE_CLASS_ID, COPY_NB), + CONSTRAINT ARCHIVE_ROUTE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID), + CONSTRAINT ARCHIVE_ROUTE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_ID) REFERENCES TAPE_POOL(TAPE_POOL_ID), + CONSTRAINT ARCHIVE_ROUTE_COPY_NB_GT_0_CK CHECK(COPY_NB > 0), + CONSTRAINT ARCHIVE_ROUTE_SCI_TPI_UN UNIQUE(STORAGE_CLASS_ID, TAPE_POOL_ID) +); +CREATE TABLE MEDIA_TYPE( + MEDIA_TYPE_ID INTEGER CONSTRAINT MEDIA_TYPE_MTI_NN NOT NULL, + MEDIA_TYPE_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_MTN_NN NOT NULL, + CARTRIDGE VARCHAR(100) CONSTRAINT MEDIA_TYPE_C_NN NOT NULL, + CAPACITY_IN_BYTES INTEGER CONSTRAINT MEDIA_TYPE_CIB_NN NOT NULL, + PRIMARY_DENSITY_CODE INTEGER, + SECONDARY_DENSITY_CODE INTEGER, + NB_WRAPS INTEGER, + MIN_LPOS INTEGER, + MAX_LPOS INTEGER, + USER_COMMENT VARCHAR(1000) CONSTRAINT MEDIA_TYPE_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_CLHN_NN NOT NULL, + CREATION_LOG_TIME INTEGER CONSTRAINT MEDIA_TYPE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME INTEGER CONSTRAINT MEDIA_TYPE_LUT_NN NOT NULL, + CONSTRAINT MEDIA_TYPE_PK PRIMARY KEY(MEDIA_TYPE_ID), + CONSTRAINT MEDIA_TYPE_MTN_UN UNIQUE(MEDIA_TYPE_NAME) +); +CREATE TABLE LOGICAL_LIBRARY( + LOGICAL_LIBRARY_ID INTEGER CONSTRAINT LOGICAL_LIBRARY_LLI_NN NOT NULL, + LOGICAL_LIBRARY_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LLN_NN NOT NULL, + IS_DISABLED CHAR(1) DEFAULT '0' CONSTRAINT LOGICAL_LIBRARY_ID_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT LOGICAL_LIBRARY_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_CLHN_NN NOT NULL, + CREATION_LOG_TIME INTEGER CONSTRAINT LOGICAL_LIBRARY_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LUHN_NN NOT NULL, + LAST_UPDATE_TIME INTEGER CONSTRAINT LOGICAL_LIBRARY_LUT_NN NOT NULL, + CONSTRAINT LOGICAL_LIBRARY_PK PRIMARY KEY(LOGICAL_LIBRARY_ID), + CONSTRAINT LOGICAL_LIBRARY_LLN_UN UNIQUE(LOGICAL_LIBRARY_NAME), + CONSTRAINT LOGICAL_LIBRARY_ID_BOOL_CK CHECK(IS_DISABLED IN ('0', '1')) +); +CREATE TABLE TAPE( + VID VARCHAR(100) CONSTRAINT TAPE_V_NN NOT NULL, + MEDIA_TYPE_ID INTEGER CONSTRAINT TAPE_MTID_NN NOT NULL, + VENDOR VARCHAR(100) CONSTRAINT TAPE_V2_NN NOT NULL, + LOGICAL_LIBRARY_ID INTEGER CONSTRAINT TAPE_LLI_NN NOT NULL, + TAPE_POOL_ID INTEGER CONSTRAINT TAPE_TPI_NN NOT NULL, + ENCRYPTION_KEY_NAME VARCHAR(100), + DATA_IN_BYTES INTEGER CONSTRAINT TAPE_DIB_NN NOT NULL, + LAST_FSEQ INTEGER CONSTRAINT TAPE_LF_NN NOT NULL, + NB_MASTER_FILES INTEGER DEFAULT 0 CONSTRAINT TAPE_NB_MASTER_FILES_NN NOT NULL, + MASTER_DATA_IN_BYTES INTEGER DEFAULT 0 CONSTRAINT TAPE_MASTER_DATA_IN_BYTES_NN NOT NULL, + IS_FULL CHAR(1) CONSTRAINT TAPE_IF_NN NOT NULL, + IS_FROM_CASTOR CHAR(1) CONSTRAINT TAPE_IFC_NN NOT NULL, + DIRTY CHAR(1) DEFAULT '1' CONSTRAINT TAPE_DIRTY_NN NOT NULL, + NB_COPY_NB_1 INTEGER DEFAULT 0 CONSTRAINT TAPE_NB_COPY_NB_1_NN NOT NULL, + COPY_NB_1_IN_BYTES INTEGER DEFAULT 0 CONSTRAINT TAPE_COPY_NB_1_IN_BYTES_NN NOT NULL, + NB_COPY_NB_GT_1 INTEGER DEFAULT 0 CONSTRAINT TAPE_NB_COPY_NB_GT_1_NN NOT NULL, + COPY_NB_GT_1_IN_BYTES INTEGER DEFAULT 0 CONSTRAINT TAPE_COPY_NB_GT_1_IN_BYTES_NN NOT NULL, + LABEL_DRIVE VARCHAR(100), + LABEL_TIME INTEGER , + LAST_READ_DRIVE VARCHAR(100), + LAST_READ_TIME INTEGER , + LAST_WRITE_DRIVE VARCHAR(100), + LAST_WRITE_TIME INTEGER , + READ_MOUNT_COUNT INTEGER DEFAULT 0 CONSTRAINT TAPE_RMC_NN NOT NULL, + WRITE_MOUNT_COUNT INTEGER DEFAULT 0 CONSTRAINT TAPE_WMC_NN NOT NULL, + USER_COMMENT VARCHAR(1000), + TAPE_STATE VARCHAR(100) CONSTRAINT TAPE_TS_NN NOT NULL, + STATE_REASON VARCHAR(1000), + STATE_UPDATE_TIME INTEGER CONSTRAINT TAPE_SUT_NN NOT NULL, + STATE_MODIFIED_BY VARCHAR(100) CONSTRAINT TAPE_SMB_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT TAPE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_CLHN_NN NOT NULL, + CREATION_LOG_TIME INTEGER CONSTRAINT TAPE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT TAPE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME INTEGER CONSTRAINT TAPE_LUT_NN NOT NULL, + CONSTRAINT TAPE_PK PRIMARY KEY(VID), + CONSTRAINT TAPE_LOGICAL_LIBRARY_FK FOREIGN KEY(LOGICAL_LIBRARY_ID) REFERENCES LOGICAL_LIBRARY(LOGICAL_LIBRARY_ID), + CONSTRAINT TAPE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_ID) REFERENCES TAPE_POOL(TAPE_POOL_ID), + CONSTRAINT TAPE_IS_FULL_BOOL_CK CHECK(IS_FULL IN ('0', '1')), + CONSTRAINT TAPE_IS_FROM_CASTOR_BOOL_CK CHECK(IS_FROM_CASTOR IN ('0', '1')), + CONSTRAINT TAPE_DIRTY_BOOL_CK CHECK(DIRTY IN ('0','1')), + CONSTRAINT TAPE_STATE_CK CHECK(TAPE_STATE IN ('ACTIVE', 'DISABLED', 'BROKEN')), + CONSTRAINT TAPE_MEDIA_TYPE_FK FOREIGN KEY(MEDIA_TYPE_ID) REFERENCES MEDIA_TYPE(MEDIA_TYPE_ID) +); +CREATE INDEX TAPE_TAPE_POOL_ID_IDX ON TAPE(TAPE_POOL_ID); +CREATE INDEX TAPE_STATE_IDX ON TAPE(TAPE_STATE); +CREATE TABLE MOUNT_POLICY( + MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_MPN_NN NOT NULL, + ARCHIVE_PRIORITY INTEGER CONSTRAINT MOUNT_POLICY_AP_NN NOT NULL, + ARCHIVE_MIN_REQUEST_AGE INTEGER CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL, + RETRIEVE_PRIORITY INTEGER CONSTRAINT MOUNT_POLICY_RP_NN NOT NULL, + RETRIEVE_MIN_REQUEST_AGE INTEGER CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT MOUNT_POLICY_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL, + CREATION_LOG_TIME INTEGER CONSTRAINT MOUNT_POLICY_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL, + LAST_UPDATE_TIME INTEGER CONSTRAINT MOUNT_POLICY_LUT_NN NOT NULL, + CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME) +); +CREATE TABLE REQUESTER_MOUNT_RULE( + DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_DIN_NN NOT NULL, + REQUESTER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_RN_NN NOT NULL, + MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_MPN_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT RQSTER_RULE_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_CLHN_NN NOT NULL, + CREATION_LOG_TIME INTEGER CONSTRAINT RQSTER_RULE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME INTEGER CONSTRAINT RQSTER_RULE_LUT_NN NOT NULL, + CONSTRAINT RQSTER_RULE_PK PRIMARY KEY(DISK_INSTANCE_NAME, REQUESTER_NAME), + CONSTRAINT RQSTER_RULE_MNT_PLC_FK FOREIGN KEY(MOUNT_POLICY_NAME) + REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME) +); +CREATE TABLE REQUESTER_GROUP_MOUNT_RULE( + DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_DIN_NN NOT NULL, + REQUESTER_GROUP_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_RGN_NN NOT NULL, + MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_MPN_NN NOT NULL, + USER_COMMENT VARCHAR(1000) CONSTRAINT RQSTER_GRP_RULE_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_CLHN_NN NOT NULL, + CREATION_LOG_TIME INTEGER CONSTRAINT RQSTER_GRP_RULE_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_LUHN_NN NOT NULL, + LAST_UPDATE_TIME INTEGER CONSTRAINT RQSTER_GRP_RULE_LUT_NN NOT NULL, + CONSTRAINT RQSTER_GRP_RULE_PK PRIMARY KEY(DISK_INSTANCE_NAME, REQUESTER_GROUP_NAME), + CONSTRAINT RQSTER_GRP_RULE_MNT_PLC_FK FOREIGN KEY(MOUNT_POLICY_NAME) + REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME) +); +CREATE TABLE ARCHIVE_FILE( + ARCHIVE_FILE_ID INTEGER CONSTRAINT ARCHIVE_FILE_AFI_NN NOT NULL, + DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT ARCHIVE_FILE_DIN_NN NOT NULL, + DISK_FILE_ID VARCHAR(100) CONSTRAINT ARCHIVE_FILE_DFI_NN NOT NULL, + DISK_FILE_UID INTEGER CONSTRAINT ARCHIVE_FILE_DFUID_NN NOT NULL, + DISK_FILE_GID INTEGER CONSTRAINT ARCHIVE_FILE_DFGID_NN NOT NULL, + SIZE_IN_BYTES INTEGER CONSTRAINT ARCHIVE_FILE_SIB_NN NOT NULL, + CHECKSUM_BLOB BLOB(200), + CHECKSUM_ADLER32 INTEGER CONSTRAINT ARCHIVE_FILE_CB2_NN NOT NULL, + STORAGE_CLASS_ID INTEGER CONSTRAINT ARCHIVE_FILE_SCI_NN NOT NULL, + CREATION_TIME INTEGER CONSTRAINT ARCHIVE_FILE_CT2_NN NOT NULL, + RECONCILIATION_TIME INTEGER CONSTRAINT ARCHIVE_FILE_RT_NN NOT NULL, + IS_DELETED CHAR(1) DEFAULT '0' CONSTRAINT ARCHIVE_FILE_ID_NN NOT NULL, + COLLOCATION_HINT VARCHAR(100), + CONSTRAINT ARCHIVE_FILE_PK PRIMARY KEY(ARCHIVE_FILE_ID), + CONSTRAINT ARCHIVE_FILE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID), + CONSTRAINT ARCHIVE_FILE_DIN_DFI_UN UNIQUE(DISK_INSTANCE_NAME, DISK_FILE_ID), + CONSTRAINT ARCHIVE_FILE_ID_BOOL_CK CHECK(IS_DELETED IN ('0', '1')) +); +CREATE INDEX ARCHIVE_FILE_DIN_IDX ON ARCHIVE_FILE(DISK_INSTANCE_NAME); +CREATE INDEX ARCHIVE_FILE_DFI_IDX ON ARCHIVE_FILE(DISK_FILE_ID); +CREATE TABLE TAPE_FILE( + VID VARCHAR(100) CONSTRAINT TAPE_FILE_V_NN NOT NULL, + FSEQ INTEGER CONSTRAINT TAPE_FILE_F_NN NOT NULL, + BLOCK_ID INTEGER CONSTRAINT TAPE_FILE_BI_NN NOT NULL, + LOGICAL_SIZE_IN_BYTES INTEGER CONSTRAINT TAPE_FILE_CSIB_NN NOT NULL, + COPY_NB INTEGER CONSTRAINT TAPE_FILE_CN_NN NOT NULL, + CREATION_TIME INTEGER CONSTRAINT TAPE_FILE_CT_NN NOT NULL, + ARCHIVE_FILE_ID INTEGER CONSTRAINT TAPE_FILE_AFI_NN NOT NULL, + CONSTRAINT TAPE_FILE_PK PRIMARY KEY(VID, FSEQ), + CONSTRAINT TAPE_FILE_TAPE_FK FOREIGN KEY(VID) + REFERENCES TAPE(VID), + CONSTRAINT TAPE_FILE_ARCHIVE_FILE_FK FOREIGN KEY(ARCHIVE_FILE_ID) + REFERENCES ARCHIVE_FILE(ARCHIVE_FILE_ID), + CONSTRAINT TAPE_FILE_VID_BLOCK_ID_UN UNIQUE(VID, BLOCK_ID), + CONSTRAINT TAPE_FILE_COPY_NB_GT_0_CK CHECK(COPY_NB > 0) +); +CREATE INDEX TAPE_FILE_VID_IDX ON TAPE_FILE(VID); +CREATE INDEX TAPE_FILE_ARCHIVE_FILE_ID_IDX ON TAPE_FILE(ARCHIVE_FILE_ID); +CREATE TABLE ACTIVITIES_WEIGHTS ( + DISK_INSTANCE_NAME VARCHAR(100), + ACTIVITY VARCHAR(100), + WEIGHT VARCHAR(100), + USER_COMMENT VARCHAR(1000) CONSTRAINT ACTIV_WEIGHTS_UC_NN NOT NULL, + CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_CLUN_NN NOT NULL, + CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_CLHN_NN NOT NULL, + CREATION_LOG_TIME INTEGER CONSTRAINT ACTIV_WEIGHTS_CLT_NN NOT NULL, + LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_LUUN_NN NOT NULL, + LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_LUHN_NN NOT NULL, + LAST_UPDATE_TIME INTEGER CONSTRAINT ACTIV_WEIGHTS_LUT_NN NOT NULL +); +CREATE TABLE FILE_RECYCLE_LOG( + FILE_RECYCLE_LOG_ID INTEGER CONSTRAINT FILE_RECYCLE_LOG_ID_NN NOT NULL, + VID VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_VID_NN NOT NULL, + FSEQ INTEGER CONSTRAINT FILE_RECYCLE_LOG_FSEQ_NN NOT NULL, + BLOCK_ID INTEGER CONSTRAINT FILE_RECYCLE_LOG_BID_NN NOT NULL, + COPY_NB INTEGER CONSTRAINT FILE_RECYCLE_LOG_COPY_NB_NN NOT NULL, + TAPE_FILE_CREATION_TIME INTEGER CONSTRAINT FILE_RECYCLE_LOG_TFCT_NN NOT NULL, + ARCHIVE_FILE_ID INTEGER CONSTRAINT FILE_RECYCLE_LOG_AFI_NN NOT NULL, + DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DIN_NN NOT NULL, + DISK_FILE_ID VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DFI_NN NOT NULL, + DISK_FILE_ID_WHEN_DELETED VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DFIWD_NN NOT NULL, + DISK_FILE_UID INTEGER CONSTRAINT FILE_RECYCLE_LOG_DFU_NN NOT NULL, + DISK_FILE_GID INTEGER CONSTRAINT FILE_RECYCLE_LOG_DFG_NN NOT NULL, + SIZE_IN_BYTES INTEGER CONSTRAINT FILE_RECYCLE_LOG_SIB_NN NOT NULL, + CHECKSUM_BLOB BLOB(200), + CHECKSUM_ADLER32 INTEGER CONSTRAINT FILE_RECYCLE_LOG_CA_NN NOT NULL, + STORAGE_CLASS_ID INTEGER CONSTRAINT FILE_RECYCLE_LOG_SCI_NN NOT NULL, + ARCHIVE_FILE_CREATION_TIME INTEGER CONSTRAINT FILE_RECYLE_LOG_CT_NN NOT NULL, + RECONCILIATION_TIME INTEGER CONSTRAINT FILE_RECYCLE_LOG_RT_NN NOT NULL, + COLLOCATION_HINT VARCHAR(100), + DISK_FILE_PATH VARCHAR(2000), + REASON_LOG VARCHAR(1000) CONSTRAINT FILE_RECYCLE_LOG_RL_NN NOT NULL, + RECYCLE_LOG_TIME INTEGER CONSTRAINT FILE_RECYCLE_LOG_RLT_NN NOT NULL, + CONSTRAINT FILE_RECYCLE_LOG_PK PRIMARY KEY(FILE_RECYCLE_LOG_ID), + CONSTRAINT FILE_RECYCLE_LOG_VID_FK FOREIGN KEY(VID) REFERENCES TAPE(VID), + CONSTRAINT FILE_RECYCLE_LOG_SC_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID) +); +CREATE INDEX FILE_RECYCLE_LOG_DFI_IDX ON FILE_RECYCLE_LOG(DISK_FILE_ID); + +CREATE TABLE DRIVE_CONFIG ( + DRIVE_NAME VARCHAR(100) CONSTRAINT DRIVE_CONFIG_DN_NN NOT NULL, + CATEGORY VARCHAR(100) CONSTRAINT DRIVE_CONFIG_C_NN NOT NULL, + KEY_NAME VARCHAR(100) CONSTRAINT DRIVE_CONFIG_KN_NN NOT NULL, + VALUE VARCHAR(1000) CONSTRAINT DRIVE_CONFIG_V_NN NOT NULL, + SOURCE VARCHAR(100) CONSTRAINT DRIVE_CONFIG_S_NN NOT NULL, + CONSTRAINT DRIVE_CONFIG_DN_PK PRIMARY KEY(KEY_NAME, DRIVE_NAME) +); + +CREATE TABLE TAPE_DRIVE ( + DRIVE_NAME VARCHAR(100) CONSTRAINT DRIVE_STATE_DN_NN NOT NULL, + HOST VARCHAR(100) CONSTRAINT DRIVE_STATE_H_NN NOT NULL, + LOGICAL_LIBRARY VARCHAR(100) CONSTRAINT DRIVE_STATE_LL_NN NOT NULL, + SESSION_ID INTEGER, + BYTES_TRANSFERED_IN_SESSION INTEGER, + FILES_TRANSFERED_IN_SESSION INTEGER, + LATEST_BANDWIDTH VARCHAR(100), + SESSION_START_TIME INTEGER, + MOUNT_START_TIME INTEGER, + TRANSFER_START_TIME INTEGER, + UNLOAD_START_TIME INTEGER, + UNMOUNT_START_TIME INTEGER, + DRAINING_START_TIME INTEGER, + DOWN_OR_UP_START_TIME INTEGER, + PROBE_START_TIME INTEGER, + CLEANUP_START_TIME INTEGER, + START_START_TIME INTEGER, + SHUTDOWN_TIME INTEGER, + MOUNT_TYPE INTEGER CONSTRAINT DRIVE_STATE_MT_NN NOT NULL, + DRIVE_STATUS VARCHAR(100) DEFAULT 'UNKNOWN' CONSTRAINT DRIVE_STATE_DS_NN NOT NULL, + DESIRED_UP CHAR(1) DEFAULT '0' CONSTRAINT DRIVE_STATE_DU_NN NOT NULL, + DESIRED_FORCE_DOWN CHAR(1) DEFAULT '0' CONSTRAINT DRIVE_STATE_DFD_NN NOT NULL, + REASON_UP_DOWN VARCHAR(1000), + CURRENT_VID VARCHAR(100), + CTA_VERSION VARCHAR(100), + CURRENT_PRIORITY INTEGER, + CURRENT_ACTIVITY VARCHAR(100), + CURRENT_ACTIVITY_WEIGHT VARCHAR(100), + CURRENT_TAPE_POOL VARCHAR(100), + NEXT_MOUNT_TYPE INTEGER, + NEXT_VID VARCHAR(100), + NEXT_TAPE_POOL VARCHAR(100), + NEXT_PRIORITY INTEGER, + NEXT_ACTIVITY VARCHAR(100), + NEXT_ACTIVITY_WEIGHT VARCHAR(100), + DEV_FILE_NAME VARCHAR(100), + RAW_LIBRARY_SLOT VARCHAR(100), + CURRENT_VO VARCHAR(100), + NEXT_VO VARCHAR(100), + USER_COMMENT VARCHAR(1000), + CREATION_LOG_USER_NAME VARCHAR(100), + CREATION_LOG_HOST_NAME VARCHAR(100), + CREATION_LOG_TIME INTEGER, + LAST_UPDATE_USER_NAME VARCHAR(100), + LAST_UPDATE_HOST_NAME VARCHAR(100), + LAST_UPDATE_TIME INTEGER, + DISK_SYSTEM_NAME VARCHAR(100) CONSTRAINT DRIVE_STATE_DSN_NN NOT NULL, + RESERVED_BYTES INTEGER CONSTRAINT DRIVE_STATE_RB_NN NOT NULL, + CONSTRAINT DRIVE_STATE_DN_PK PRIMARY KEY(DRIVE_NAME), + CONSTRAINT DRIVE_STATE_DU_BOOL_CK CHECK(DESIRED_UP IN ('0', '1')), + CONSTRAINT DRIVE_STATE_DFD_BOOL_CK CHECK(DESIRED_FORCE_DOWN IN ('0', '1')), + CONSTRAINT DRIVE_STATE_DS_STRING_CK CHECK(DRIVE_STATUS IN ('DOWN', 'UP', 'PROBING', 'STARTING', + 'MOUNTING', 'TRANSFERING', 'UNLOADING', 'UNMOUNTING', 'DRAININGTODISK', 'CLEANINGUP', 'SHUTDOWN', + 'UNKNOWN')) +); +INSERT INTO CTA_CATALOGUE( + SCHEMA_VERSION_MAJOR, + SCHEMA_VERSION_MINOR, + STATUS) +VALUES( + 4, + 2, + 'PRODUCTION'); diff --git a/catalogue/AllCatalogueSchema.hpp b/catalogue/AllCatalogueSchema.hpp index 4c56470c0808e81c276cee9cd6c92ed2c666e900..02b9a97212992db8c125f7315b7e264e80c6fe1c 100644 --- a/catalogue/AllCatalogueSchema.hpp +++ b/catalogue/AllCatalogueSchema.hpp @@ -11871,6 +11871,1736 @@ namespace catalogue{ " CATALOGUE_STATUS_CONTENT_CK CHECK((NEXT_SCHEMA_VERSION_MAJOR IS NULL AND NEXT_SCHEMA_VERSION_MINOR IS NULL AND STATUS='PRODUCTION') OR (STATUS='UPGRADING'));" }, } }, + {"4.2", + { + {"oracle", "CREATE SEQUENCE ARCHIVE_FILE_ID_SEQ" + " INCREMENT BY 1" + " START WITH 4294967296" + " NOMAXVALUE" + " MINVALUE 1" + " NOCYCLE" + " CACHE 20" + " NOORDER;" + "CREATE SEQUENCE LOGICAL_LIBRARY_ID_SEQ" + " INCREMENT BY 1" + " START WITH 1" + " NOMAXVALUE" + " MINVALUE 1" + " NOCYCLE" + " CACHE 20" + " NOORDER;" + "CREATE SEQUENCE MEDIA_TYPE_ID_SEQ" + " INCREMENT BY 1" + " START WITH 1" + " NOMAXVALUE" + " MINVALUE 1" + " NOCYCLE" + " CACHE 20" + " NOORDER;" + "CREATE SEQUENCE STORAGE_CLASS_ID_SEQ" + " INCREMENT BY 1" + " START WITH 10000" + " NOMAXVALUE" + " MINVALUE 1" + " NOCYCLE" + " CACHE 20" + " NOORDER;" + "CREATE SEQUENCE TAPE_POOL_ID_SEQ" + " INCREMENT BY 1" + " START WITH 1" + " NOMAXVALUE" + " MINVALUE 1" + " NOCYCLE" + " CACHE 20" + " NOORDER;" + "CREATE SEQUENCE VIRTUAL_ORGANIZATION_ID_SEQ" + " INCREMENT BY 1" + " START WITH 1" + " NOMAXVALUE" + " MINVALUE 1" + " NOCYCLE" + " CACHE 20" + " NOORDER;" + "CREATE SEQUENCE FILE_RECYCLE_LOG_ID_SEQ" + " INCREMENT BY 1" + " START WITH 1" + " NOMAXVALUE" + " MINVALUE 1" + " NOCYCLE" + " CACHE 20" + " NOORDER;" + "CREATE GLOBAL TEMPORARY TABLE TEMP_TAPE_FILE_INSERTION_BATCH(" + " VID VARCHAR2(100)," + " FSEQ NUMERIC(20, 0) ," + " BLOCK_ID NUMERIC(20, 0) ," + " LOGICAL_SIZE_IN_BYTES NUMERIC(20, 0) ," + " COPY_NB NUMERIC(3, 0) ," + " CREATION_TIME NUMERIC(20, 0) ," + " ARCHIVE_FILE_ID NUMERIC(20, 0)" + ")" + "ON COMMIT DELETE ROWS;" + "CREATE INDEX TEMP_T_F_I_B_AFI_IDX ON TEMP_TAPE_FILE_INSERTION_BATCH(ARCHIVE_FILE_ID);" + "CREATE TABLE CTA_CATALOGUE(" + " SCHEMA_VERSION_MAJOR NUMERIC(20, 0) CONSTRAINT CTA_CATALOGUE_SVM1_NN NOT NULL," + " SCHEMA_VERSION_MINOR NUMERIC(20, 0) CONSTRAINT CTA_CATALOGUE_SVM2_NN NOT NULL," + " NEXT_SCHEMA_VERSION_MAJOR NUMERIC(20, 0)," + " NEXT_SCHEMA_VERSION_MINOR NUMERIC(20, 0)," + " STATUS VARCHAR2(100)," + " IS_PRODUCTION CHAR(1) DEFAULT '0' CONSTRAINT CTA_CATALOGUE_IP_NN NOT NULL," + " CONSTRAINT CTA_CATALOGUE_IP_BOOL_CK CHECK(IS_PRODUCTION IN ('0','1'))" + ");" + "CREATE TABLE ADMIN_USER(" + " ADMIN_USER_NAME VARCHAR2(100) CONSTRAINT ADMIN_USER_AUN_NN NOT NULL," + " USER_COMMENT VARCHAR2(1000) CONSTRAINT ADMIN_USER_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT ADMIN_USER_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT ADMIN_USER_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT ADMIN_USER_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT ADMIN_USER_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT ADMIN_USER_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT ADMIN_USER_LUT_NN NOT NULL," + " CONSTRAINT ADMIN_USER_PK PRIMARY KEY(ADMIN_USER_NAME)" + ");" + "CREATE TABLE DISK_SYSTEM(" + " DISK_SYSTEM_NAME VARCHAR2(100) CONSTRAINT DISK_SYSTEM_DSNM_NN NOT NULL," + " FILE_REGEXP VARCHAR2(100) CONSTRAINT DISK_SYSTEM_FR_NN NOT NULL," + " FREE_SPACE_QUERY_URL VARCHAR2(1000) CONSTRAINT DISK_SYSTEM_FSQU_NN NOT NULL," + " REFRESH_INTERVAL NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_RI_NN NOT NULL," + " TARGETED_FREE_SPACE NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_TFS_NN NOT NULL," + " SLEEP_TIME NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_ST_NN NOT NULL," + " USER_COMMENT VARCHAR2(1000) CONSTRAINT DISK_SYSTEM_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT DISK_SYSTEM_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT DISK_SYSTEM_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT DISK_SYSTEM_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT DISK_SYSTEM_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_LUT_NN NOT NULL," + " CONSTRAINT NAME_PK PRIMARY KEY(DISK_SYSTEM_NAME)" + ");" + "CREATE TABLE VIRTUAL_ORGANIZATION(" + " VIRTUAL_ORGANIZATION_ID NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_VOI_NN NOT NULL," + " VIRTUAL_ORGANIZATION_NAME VARCHAR2(100) CONSTRAINT VIRTUAL_ORGANIZATION_VON_NN NOT NULL," + " READ_MAX_DRIVES NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_RMD_NN NOT NULL," + " WRITE_MAX_DRIVES NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_WMD_NN NOT NULL," + " MAX_FILE_SIZE NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_MFS_NN NOT NULL," + " USER_COMMENT VARCHAR2(1000) CONSTRAINT VIRTUAL_ORGANIZATION_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT VIRTUAL_ORGANIZATION_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT VIRTUAL_ORGANIZATION_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_LUT_NN NOT NULL," + " CONSTRAINT VIRTUAL_ORGANIZATION_PK PRIMARY KEY(VIRTUAL_ORGANIZATION_ID)," + " CONSTRAINT VIRTUAL_ORGANIZATION_VON_UN UNIQUE(VIRTUAL_ORGANIZATION_NAME)" + ");" + "CREATE TABLE STORAGE_CLASS(" + " STORAGE_CLASS_ID NUMERIC(20, 0) CONSTRAINT STORAGE_CLASS_SCI_NN NOT NULL," + " STORAGE_CLASS_NAME VARCHAR2(100) CONSTRAINT STORAGE_CLASS_SCN_NN NOT NULL," + " NB_COPIES NUMERIC(3, 0) CONSTRAINT STORAGE_CLASS_NC_NN NOT NULL," + " VIRTUAL_ORGANIZATION_ID NUMERIC(20, 0) CONSTRAINT STORAGE_CLASS_VOI_NN NOT NULL," + " USER_COMMENT VARCHAR2(1000) CONSTRAINT STORAGE_CLASS_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT STORAGE_CLASS_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT STORAGE_CLASS_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT STORAGE_CLASS_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT STORAGE_CLASS_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT STORAGE_CLASS_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT STORAGE_CLASS_LUT_NN NOT NULL," + " CONSTRAINT STORAGE_CLASS_PK PRIMARY KEY(STORAGE_CLASS_ID)," + " CONSTRAINT STORAGE_CLASS_SCN_UN UNIQUE(STORAGE_CLASS_NAME)," + " CONSTRAINT STORAGE_CLASS_VOI_FK FOREIGN KEY(VIRTUAL_ORGANIZATION_ID) REFERENCES VIRTUAL_ORGANIZATION(VIRTUAL_ORGANIZATION_ID)" + ");" + "CREATE TABLE TAPE_POOL(" + " TAPE_POOL_ID NUMERIC(20, 0) CONSTRAINT TAPE_POOL_TPI_NN NOT NULL," + " TAPE_POOL_NAME VARCHAR2(100) CONSTRAINT TAPE_POOL_TPN_NN NOT NULL," + " VIRTUAL_ORGANIZATION_ID NUMERIC(20, 0) CONSTRAINT TAPE_POOL_VOI_NN NOT NULL," + " NB_PARTIAL_TAPES NUMERIC(20, 0) CONSTRAINT TAPE_POOL_NPT_NN NOT NULL," + " IS_ENCRYPTED CHAR(1) CONSTRAINT TAPE_POOL_IE_NN NOT NULL," + " SUPPLY VARCHAR2(100)," + " USER_COMMENT VARCHAR2(1000) CONSTRAINT TAPE_POOL_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT TAPE_POOL_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT TAPE_POOL_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT TAPE_POOL_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT TAPE_POOL_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT TAPE_POOL_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT TAPE_POOL_LUT_NN NOT NULL," + " CONSTRAINT TAPE_POOL_PK PRIMARY KEY(TAPE_POOL_ID)," + " CONSTRAINT TAPE_POOL_TPN_UN UNIQUE(TAPE_POOL_NAME)," + " CONSTRAINT TAPE_POOL_IS_ENCRYPTED_BOOL_CK CHECK(IS_ENCRYPTED IN ('0', '1'))," + " CONSTRAINT TAPE_POOL_VO_FK FOREIGN KEY(VIRTUAL_ORGANIZATION_ID) REFERENCES VIRTUAL_ORGANIZATION(VIRTUAL_ORGANIZATION_ID)" + ");" + "CREATE TABLE ARCHIVE_ROUTE(" + " STORAGE_CLASS_ID NUMERIC(20, 0) CONSTRAINT ARCHIVE_ROUTE_SCI_NN NOT NULL," + " COPY_NB NUMERIC(3, 0) CONSTRAINT ARCHIVE_ROUTE_CN_NN NOT NULL," + " TAPE_POOL_ID NUMERIC(20, 0) CONSTRAINT ARCHIVE_ROUTE_TPI_NN NOT NULL," + " USER_COMMENT VARCHAR2(1000) CONSTRAINT ARCHIVE_ROUTE_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT ARCHIVE_ROUTE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT ARCHIVE_ROUTE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT ARCHIVE_ROUTE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT ARCHIVE_ROUTE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT ARCHIVE_ROUTE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT ARCHIVE_ROUTE_LUT_NN NOT NULL," + " CONSTRAINT ARCHIVE_ROUTE_PK PRIMARY KEY(STORAGE_CLASS_ID, COPY_NB)," + " CONSTRAINT ARCHIVE_ROUTE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID)," + " CONSTRAINT ARCHIVE_ROUTE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_ID) REFERENCES TAPE_POOL(TAPE_POOL_ID)," + " CONSTRAINT ARCHIVE_ROUTE_COPY_NB_GT_0_CK CHECK(COPY_NB > 0)," + " CONSTRAINT ARCHIVE_ROUTE_SCI_TPI_UN UNIQUE(STORAGE_CLASS_ID, TAPE_POOL_ID)" + ");" + "CREATE TABLE MEDIA_TYPE(" + " MEDIA_TYPE_ID NUMERIC(20, 0) CONSTRAINT MEDIA_TYPE_MTI_NN NOT NULL," + " MEDIA_TYPE_NAME VARCHAR2(100) CONSTRAINT MEDIA_TYPE_MTN_NN NOT NULL," + " CARTRIDGE VARCHAR2(100) CONSTRAINT MEDIA_TYPE_C_NN NOT NULL," + " CAPACITY_IN_BYTES NUMERIC(20, 0) CONSTRAINT MEDIA_TYPE_CIB_NN NOT NULL," + " PRIMARY_DENSITY_CODE NUMERIC(3, 0)," + " SECONDARY_DENSITY_CODE NUMERIC(3, 0)," + " NB_WRAPS NUMERIC(10, 0)," + " MIN_LPOS NUMERIC(20, 0)," + " MAX_LPOS NUMERIC(20, 0)," + " USER_COMMENT VARCHAR2(1000) CONSTRAINT MEDIA_TYPE_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT MEDIA_TYPE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT MEDIA_TYPE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT MEDIA_TYPE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT MEDIA_TYPE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT MEDIA_TYPE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT MEDIA_TYPE_LUT_NN NOT NULL," + " CONSTRAINT MEDIA_TYPE_PK PRIMARY KEY(MEDIA_TYPE_ID)," + " CONSTRAINT MEDIA_TYPE_MTN_UN UNIQUE(MEDIA_TYPE_NAME)" + ");" + "CREATE TABLE LOGICAL_LIBRARY(" + " LOGICAL_LIBRARY_ID NUMERIC(20, 0) CONSTRAINT LOGICAL_LIBRARY_LLI_NN NOT NULL," + " LOGICAL_LIBRARY_NAME VARCHAR2(100) CONSTRAINT LOGICAL_LIBRARY_LLN_NN NOT NULL," + " IS_DISABLED CHAR(1) DEFAULT '0' CONSTRAINT LOGICAL_LIBRARY_ID_NN NOT NULL," + " USER_COMMENT VARCHAR2(1000) CONSTRAINT LOGICAL_LIBRARY_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT LOGICAL_LIBRARY_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT LOGICAL_LIBRARY_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT LOGICAL_LIBRARY_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT LOGICAL_LIBRARY_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT LOGICAL_LIBRARY_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT LOGICAL_LIBRARY_LUT_NN NOT NULL," + " CONSTRAINT LOGICAL_LIBRARY_PK PRIMARY KEY(LOGICAL_LIBRARY_ID)," + " CONSTRAINT LOGICAL_LIBRARY_LLN_UN UNIQUE(LOGICAL_LIBRARY_NAME)," + " CONSTRAINT LOGICAL_LIBRARY_ID_BOOL_CK CHECK(IS_DISABLED IN ('0', '1'))" + ");" + "CREATE TABLE TAPE(" + " VID VARCHAR2(100) CONSTRAINT TAPE_V_NN NOT NULL," + " MEDIA_TYPE_ID NUMERIC(20, 0) CONSTRAINT TAPE_MTID_NN NOT NULL," + " VENDOR VARCHAR2(100) CONSTRAINT TAPE_V2_NN NOT NULL," + " LOGICAL_LIBRARY_ID NUMERIC(20, 0) CONSTRAINT TAPE_LLI_NN NOT NULL," + " TAPE_POOL_ID NUMERIC(20, 0) CONSTRAINT TAPE_TPI_NN NOT NULL," + " ENCRYPTION_KEY_NAME VARCHAR2(100)," + " DATA_IN_BYTES NUMERIC(20, 0) CONSTRAINT TAPE_DIB_NN NOT NULL," + " LAST_FSEQ NUMERIC(20, 0) CONSTRAINT TAPE_LF_NN NOT NULL," + " NB_MASTER_FILES NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_NB_MASTER_FILES_NN NOT NULL," + " MASTER_DATA_IN_BYTES NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_MASTER_DATA_IN_BYTES_NN NOT NULL," + " IS_FULL CHAR(1) CONSTRAINT TAPE_IF_NN NOT NULL," + " IS_FROM_CASTOR CHAR(1) CONSTRAINT TAPE_IFC_NN NOT NULL," + " DIRTY CHAR(1) DEFAULT '1' CONSTRAINT TAPE_DIRTY_NN NOT NULL," + " NB_COPY_NB_1 NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_NB_COPY_NB_1_NN NOT NULL," + " COPY_NB_1_IN_BYTES NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_COPY_NB_1_IN_BYTES_NN NOT NULL," + " NB_COPY_NB_GT_1 NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_NB_COPY_NB_GT_1_NN NOT NULL," + " COPY_NB_GT_1_IN_BYTES NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_COPY_NB_GT_1_IN_BYTES_NN NOT NULL," + " LABEL_DRIVE VARCHAR2(100)," + " LABEL_TIME NUMERIC(20, 0) ," + " LAST_READ_DRIVE VARCHAR2(100)," + " LAST_READ_TIME NUMERIC(20, 0) ," + " LAST_WRITE_DRIVE VARCHAR2(100)," + " LAST_WRITE_TIME NUMERIC(20, 0) ," + " READ_MOUNT_COUNT NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_RMC_NN NOT NULL," + " WRITE_MOUNT_COUNT NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_WMC_NN NOT NULL," + " USER_COMMENT VARCHAR2(1000)," + " TAPE_STATE VARCHAR2(100) CONSTRAINT TAPE_TS_NN NOT NULL," + " STATE_REASON VARCHAR2(1000)," + " STATE_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT TAPE_SUT_NN NOT NULL," + " STATE_MODIFIED_BY VARCHAR2(100) CONSTRAINT TAPE_SMB_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT TAPE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT TAPE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT TAPE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT TAPE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT TAPE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT TAPE_LUT_NN NOT NULL," + " CONSTRAINT TAPE_PK PRIMARY KEY(VID)," + " CONSTRAINT TAPE_LOGICAL_LIBRARY_FK FOREIGN KEY(LOGICAL_LIBRARY_ID) REFERENCES LOGICAL_LIBRARY(LOGICAL_LIBRARY_ID)," + " CONSTRAINT TAPE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_ID) REFERENCES TAPE_POOL(TAPE_POOL_ID)," + " CONSTRAINT TAPE_IS_FULL_BOOL_CK CHECK(IS_FULL IN ('0', '1'))," + " CONSTRAINT TAPE_IS_FROM_CASTOR_BOOL_CK CHECK(IS_FROM_CASTOR IN ('0', '1'))," + " CONSTRAINT TAPE_DIRTY_BOOL_CK CHECK(DIRTY IN ('0','1'))," + " CONSTRAINT TAPE_STATE_CK CHECK(TAPE_STATE IN ('ACTIVE', 'DISABLED', 'BROKEN'))," + " CONSTRAINT TAPE_MEDIA_TYPE_FK FOREIGN KEY(MEDIA_TYPE_ID) REFERENCES MEDIA_TYPE(MEDIA_TYPE_ID)" + ");" + "CREATE INDEX TAPE_TAPE_POOL_ID_IDX ON TAPE(TAPE_POOL_ID);" + "CREATE INDEX TAPE_STATE_IDX ON TAPE(TAPE_STATE);" + "CREATE TABLE MOUNT_POLICY(" + " MOUNT_POLICY_NAME VARCHAR2(100) CONSTRAINT MOUNT_POLICY_MPN_NN NOT NULL," + " ARCHIVE_PRIORITY NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_AP_NN NOT NULL," + " ARCHIVE_MIN_REQUEST_AGE NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL," + " RETRIEVE_PRIORITY NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_RP_NN NOT NULL," + " RETRIEVE_MIN_REQUEST_AGE NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL," + " USER_COMMENT VARCHAR2(1000) CONSTRAINT MOUNT_POLICY_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_LUT_NN NOT NULL," + " CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME)" + ");" + "CREATE TABLE REQUESTER_MOUNT_RULE(" + " DISK_INSTANCE_NAME VARCHAR2(100) CONSTRAINT RQSTER_RULE_DIN_NN NOT NULL," + " REQUESTER_NAME VARCHAR2(100) CONSTRAINT RQSTER_RULE_RN_NN NOT NULL," + " MOUNT_POLICY_NAME VARCHAR2(100) CONSTRAINT RQSTER_RULE_MPN_NN NOT NULL," + " USER_COMMENT VARCHAR2(1000) CONSTRAINT RQSTER_RULE_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT RQSTER_RULE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT RQSTER_RULE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT RQSTER_RULE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT RQSTER_RULE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT RQSTER_RULE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT RQSTER_RULE_LUT_NN NOT NULL," + " CONSTRAINT RQSTER_RULE_PK PRIMARY KEY(DISK_INSTANCE_NAME, REQUESTER_NAME)," + " CONSTRAINT RQSTER_RULE_MNT_PLC_FK FOREIGN KEY(MOUNT_POLICY_NAME)" + " REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME)" + ");" + "CREATE TABLE REQUESTER_GROUP_MOUNT_RULE(" + " DISK_INSTANCE_NAME VARCHAR2(100) CONSTRAINT RQSTER_GRP_RULE_DIN_NN NOT NULL," + " REQUESTER_GROUP_NAME VARCHAR2(100) CONSTRAINT RQSTER_GRP_RULE_RGN_NN NOT NULL," + " MOUNT_POLICY_NAME VARCHAR2(100) CONSTRAINT RQSTER_GRP_RULE_MPN_NN NOT NULL," + " USER_COMMENT VARCHAR2(1000) CONSTRAINT RQSTER_GRP_RULE_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT RQSTER_GRP_RULE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT RQSTER_GRP_RULE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT RQSTER_GRP_RULE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT RQSTER_GRP_RULE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT RQSTER_GRP_RULE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT RQSTER_GRP_RULE_LUT_NN NOT NULL," + " CONSTRAINT RQSTER_GRP_RULE_PK PRIMARY KEY(DISK_INSTANCE_NAME, REQUESTER_GROUP_NAME)," + " CONSTRAINT RQSTER_GRP_RULE_MNT_PLC_FK FOREIGN KEY(MOUNT_POLICY_NAME)" + " REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME)" + ");" + "CREATE TABLE ARCHIVE_FILE(" + " ARCHIVE_FILE_ID NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_AFI_NN NOT NULL," + " DISK_INSTANCE_NAME VARCHAR2(100) CONSTRAINT ARCHIVE_FILE_DIN_NN NOT NULL," + " DISK_FILE_ID VARCHAR2(100) CONSTRAINT ARCHIVE_FILE_DFI_NN NOT NULL," + " DISK_FILE_UID NUMERIC(10, 0) CONSTRAINT ARCHIVE_FILE_DFUID_NN NOT NULL," + " DISK_FILE_GID NUMERIC(10, 0) CONSTRAINT ARCHIVE_FILE_DFGID_NN NOT NULL," + " SIZE_IN_BYTES NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_SIB_NN NOT NULL," + " CHECKSUM_BLOB RAW(200)," + " CHECKSUM_ADLER32 NUMERIC(10, 0) CONSTRAINT ARCHIVE_FILE_CB2_NN NOT NULL," + " STORAGE_CLASS_ID NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_SCI_NN NOT NULL," + " CREATION_TIME NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_CT2_NN NOT NULL," + " RECONCILIATION_TIME NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_RT_NN NOT NULL," + " IS_DELETED CHAR(1) DEFAULT '0' CONSTRAINT ARCHIVE_FILE_ID_NN NOT NULL," + " COLLOCATION_HINT VARCHAR2(100)," + " CONSTRAINT ARCHIVE_FILE_PK PRIMARY KEY(ARCHIVE_FILE_ID)," + " CONSTRAINT ARCHIVE_FILE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID)," + " CONSTRAINT ARCHIVE_FILE_DIN_DFI_UN UNIQUE(DISK_INSTANCE_NAME, DISK_FILE_ID)," + " CONSTRAINT ARCHIVE_FILE_ID_BOOL_CK CHECK(IS_DELETED IN ('0', '1'))" + ");" + "CREATE INDEX ARCHIVE_FILE_DIN_IDX ON ARCHIVE_FILE(DISK_INSTANCE_NAME);" + "CREATE INDEX ARCHIVE_FILE_DFI_IDX ON ARCHIVE_FILE(DISK_FILE_ID);" + "CREATE TABLE TAPE_FILE(" + " VID VARCHAR2(100) CONSTRAINT TAPE_FILE_V_NN NOT NULL," + " FSEQ NUMERIC(20, 0) CONSTRAINT TAPE_FILE_F_NN NOT NULL," + " BLOCK_ID NUMERIC(20, 0) CONSTRAINT TAPE_FILE_BI_NN NOT NULL," + " LOGICAL_SIZE_IN_BYTES NUMERIC(20, 0) CONSTRAINT TAPE_FILE_CSIB_NN NOT NULL," + " COPY_NB NUMERIC(3, 0) CONSTRAINT TAPE_FILE_CN_NN NOT NULL," + " CREATION_TIME NUMERIC(20, 0) CONSTRAINT TAPE_FILE_CT_NN NOT NULL," + " ARCHIVE_FILE_ID NUMERIC(20, 0) CONSTRAINT TAPE_FILE_AFI_NN NOT NULL," + " CONSTRAINT TAPE_FILE_PK PRIMARY KEY(VID, FSEQ)," + " CONSTRAINT TAPE_FILE_TAPE_FK FOREIGN KEY(VID)" + " REFERENCES TAPE(VID)," + " CONSTRAINT TAPE_FILE_ARCHIVE_FILE_FK FOREIGN KEY(ARCHIVE_FILE_ID)" + " REFERENCES ARCHIVE_FILE(ARCHIVE_FILE_ID)," + " CONSTRAINT TAPE_FILE_VID_BLOCK_ID_UN UNIQUE(VID, BLOCK_ID)," + " CONSTRAINT TAPE_FILE_COPY_NB_GT_0_CK CHECK(COPY_NB > 0)" + ");" + "CREATE INDEX TAPE_FILE_VID_IDX ON TAPE_FILE(VID);" + "CREATE INDEX TAPE_FILE_ARCHIVE_FILE_ID_IDX ON TAPE_FILE(ARCHIVE_FILE_ID);" + "CREATE TABLE ACTIVITIES_WEIGHTS (" + " DISK_INSTANCE_NAME VARCHAR2(100)," + " ACTIVITY VARCHAR2(100)," + " WEIGHT VARCHAR2(100)," + " USER_COMMENT VARCHAR2(1000) CONSTRAINT ACTIV_WEIGHTS_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR2(100) CONSTRAINT ACTIV_WEIGHTS_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR2(100) CONSTRAINT ACTIV_WEIGHTS_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT ACTIV_WEIGHTS_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR2(100) CONSTRAINT ACTIV_WEIGHTS_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR2(100) CONSTRAINT ACTIV_WEIGHTS_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT ACTIV_WEIGHTS_LUT_NN NOT NULL" + ");" + "CREATE TABLE FILE_RECYCLE_LOG(" + " FILE_RECYCLE_LOG_ID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_ID_NN NOT NULL," + " VID VARCHAR2(100) CONSTRAINT FILE_RECYCLE_LOG_VID_NN NOT NULL," + " FSEQ NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_FSEQ_NN NOT NULL," + " BLOCK_ID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_BID_NN NOT NULL," + " COPY_NB NUMERIC(3, 0) CONSTRAINT FILE_RECYCLE_LOG_COPY_NB_NN NOT NULL," + " TAPE_FILE_CREATION_TIME NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_TFCT_NN NOT NULL," + " ARCHIVE_FILE_ID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_AFI_NN NOT NULL," + " DISK_INSTANCE_NAME VARCHAR2(100) CONSTRAINT FILE_RECYCLE_LOG_DIN_NN NOT NULL," + " DISK_FILE_ID VARCHAR2(100) CONSTRAINT FILE_RECYCLE_LOG_DFI_NN NOT NULL," + " DISK_FILE_ID_WHEN_DELETED VARCHAR2(100) CONSTRAINT FILE_RECYCLE_LOG_DFIWD_NN NOT NULL," + " DISK_FILE_UID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_DFU_NN NOT NULL," + " DISK_FILE_GID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_DFG_NN NOT NULL," + " SIZE_IN_BYTES NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_SIB_NN NOT NULL," + " CHECKSUM_BLOB RAW(200)," + " CHECKSUM_ADLER32 NUMERIC(10, 0) CONSTRAINT FILE_RECYCLE_LOG_CA_NN NOT NULL," + " STORAGE_CLASS_ID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_SCI_NN NOT NULL," + " ARCHIVE_FILE_CREATION_TIME NUMERIC(20, 0) CONSTRAINT FILE_RECYLE_LOG_CT_NN NOT NULL," + " RECONCILIATION_TIME NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_RT_NN NOT NULL," + " COLLOCATION_HINT VARCHAR2(100)," + " DISK_FILE_PATH VARCHAR2(2000)," + " REASON_LOG VARCHAR2(1000) CONSTRAINT FILE_RECYCLE_LOG_RL_NN NOT NULL," + " RECYCLE_LOG_TIME NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_RLT_NN NOT NULL," + " CONSTRAINT FILE_RECYCLE_LOG_PK PRIMARY KEY(FILE_RECYCLE_LOG_ID)," + " CONSTRAINT FILE_RECYCLE_LOG_VID_FK FOREIGN KEY(VID) REFERENCES TAPE(VID)," + " CONSTRAINT FILE_RECYCLE_LOG_SC_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID)" + ");" + "CREATE INDEX FILE_RECYCLE_LOG_DFI_IDX ON FILE_RECYCLE_LOG(DISK_FILE_ID);" + "" + "CREATE TABLE DRIVE_CONFIG (" + " DRIVE_NAME VARCHAR2(100) CONSTRAINT DRIVE_CONFIG_DN_NN NOT NULL," + " CATEGORY VARCHAR2(100) CONSTRAINT DRIVE_CONFIG_C_NN NOT NULL," + " KEY_NAME VARCHAR2(100) CONSTRAINT DRIVE_CONFIG_KN_NN NOT NULL," + " VALUE VARCHAR2(1000) CONSTRAINT DRIVE_CONFIG_V_NN NOT NULL," + " SOURCE VARCHAR2(100) CONSTRAINT DRIVE_CONFIG_S_NN NOT NULL," + " CONSTRAINT DRIVE_CONFIG_DN_PK PRIMARY KEY(KEY_NAME, DRIVE_NAME)" + ");" + "" + "CREATE TABLE TAPE_DRIVE (" + " DRIVE_NAME VARCHAR2(100) CONSTRAINT DRIVE_STATE_DN_NN NOT NULL," + " HOST VARCHAR2(100) CONSTRAINT DRIVE_STATE_H_NN NOT NULL," + " LOGICAL_LIBRARY VARCHAR2(100) CONSTRAINT DRIVE_STATE_LL_NN NOT NULL," + " SESSION_ID NUMERIC(20, 0)," + " BYTES_TRANSFERED_IN_SESSION NUMERIC(20, 0)," + " FILES_TRANSFERED_IN_SESSION NUMERIC(20, 0)," + " LATEST_BANDWIDTH VARCHAR2(100)," + " SESSION_START_TIME NUMERIC(20, 0)," + " MOUNT_START_TIME NUMERIC(20, 0)," + " TRANSFER_START_TIME NUMERIC(20, 0)," + " UNLOAD_START_TIME NUMERIC(20, 0)," + " UNMOUNT_START_TIME NUMERIC(20, 0)," + " DRAINING_START_TIME NUMERIC(20, 0)," + " DOWN_OR_UP_START_TIME NUMERIC(20, 0)," + " PROBE_START_TIME NUMERIC(20, 0)," + " CLEANUP_START_TIME NUMERIC(20, 0)," + " START_START_TIME NUMERIC(20, 0)," + " SHUTDOWN_TIME NUMERIC(20, 0)," + " MOUNT_TYPE NUMERIC(10, 0) CONSTRAINT DRIVE_STATE_MT_NN NOT NULL," + " DRIVE_STATUS VARCHAR2(100) DEFAULT 'UNKNOWN' CONSTRAINT DRIVE_STATE_DS_NN NOT NULL," + " DESIRED_UP CHAR(1) DEFAULT '0' CONSTRAINT DRIVE_STATE_DU_NN NOT NULL," + " DESIRED_FORCE_DOWN CHAR(1) DEFAULT '0' CONSTRAINT DRIVE_STATE_DFD_NN NOT NULL," + " REASON_UP_DOWN VARCHAR2(1000)," + " CURRENT_VID VARCHAR2(100)," + " CTA_VERSION VARCHAR2(100)," + " CURRENT_PRIORITY NUMERIC(20, 0)," + " CURRENT_ACTIVITY VARCHAR2(100)," + " CURRENT_ACTIVITY_WEIGHT VARCHAR2(100)," + " CURRENT_TAPE_POOL VARCHAR2(100)," + " NEXT_MOUNT_TYPE NUMERIC(10, 0)," + " NEXT_VID VARCHAR2(100)," + " NEXT_TAPE_POOL VARCHAR2(100)," + " NEXT_PRIORITY NUMERIC(20, 0)," + " NEXT_ACTIVITY VARCHAR2(100)," + " NEXT_ACTIVITY_WEIGHT VARCHAR2(100)," + " DEV_FILE_NAME VARCHAR2(100)," + " RAW_LIBRARY_SLOT VARCHAR2(100)," + " CURRENT_VO VARCHAR2(100)," + " NEXT_VO VARCHAR2(100)," + " USER_COMMENT VARCHAR2(1000)," + " CREATION_LOG_USER_NAME VARCHAR2(100)," + " CREATION_LOG_HOST_NAME VARCHAR2(100)," + " CREATION_LOG_TIME NUMERIC(20, 0)," + " LAST_UPDATE_USER_NAME VARCHAR2(100)," + " LAST_UPDATE_HOST_NAME VARCHAR2(100)," + " LAST_UPDATE_TIME NUMERIC(20, 0)," + " DISK_SYSTEM_NAME VARCHAR2(100) CONSTRAINT DRIVE_STATE_DSN_NN NOT NULL," + " RESERVED_BYTES NUMERIC(20, 0) CONSTRAINT DRIVE_STATE_RB_NN NOT NULL," + " CONSTRAINT DRIVE_STATE_DN_PK PRIMARY KEY(DRIVE_NAME)," + " CONSTRAINT DRIVE_STATE_DU_BOOL_CK CHECK(DESIRED_UP IN ('0', '1'))," + " CONSTRAINT DRIVE_STATE_DFD_BOOL_CK CHECK(DESIRED_FORCE_DOWN IN ('0', '1'))," + " CONSTRAINT DRIVE_STATE_DS_STRING_CK CHECK(DRIVE_STATUS IN ('DOWN', 'UP', 'PROBING', 'STARTING'," + " 'MOUNTING', 'TRANSFERING', 'UNLOADING', 'UNMOUNTING', 'DRAININGTODISK', 'CLEANINGUP', 'SHUTDOWN'," + " 'UNKNOWN'))" + ");" + "INSERT INTO CTA_CATALOGUE(" + " SCHEMA_VERSION_MAJOR," + " SCHEMA_VERSION_MINOR," + " STATUS)" + "VALUES(" + " 4," + " 2," + " 'PRODUCTION');" + "ALTER TABLE CTA_CATALOGUE ADD CONSTRAINT CATALOGUE_STATUS_CONTENT_CK CHECK((NEXT_SCHEMA_VERSION_MAJOR IS NULL AND NEXT_SCHEMA_VERSION_MINOR IS NULL AND STATUS='PRODUCTION') OR (NEXT_SCHEMA_VERSION_MAJOR IS NOT NULL AND NEXT_SCHEMA_VERSION_MINOR IS NOT NULL AND STATUS='UPGRADING')) INITIALLY DEFERRED;" + "" + "COMMIT;" + }, + {"mysql", "CREATE TABLE ARCHIVE_FILE_ID(" + " ID BIGINT UNSIGNED," + " CONSTRAINT ARCHIVE_FILE_ID_PK PRIMARY KEY(ID)" + ");" + "INSERT INTO ARCHIVE_FILE_ID(ID) VALUES(1);" + "CREATE TABLE LOGICAL_LIBRARY_ID(" + " ID BIGINT UNSIGNED," + " CONSTRAINT LOGICAL_LIBRARY_ID_PK PRIMARY KEY(ID)" + ");" + "INSERT INTO LOGICAL_LIBRARY_ID(ID) VALUES(1);" + "CREATE TABLE MEDIA_TYPE_ID(" + " ID BIGINT UNSIGNED," + " CONSTRAINT MEDIA_TYPE_ID_PK PRIMARY KEY(ID)" + ");" + "INSERT INTO MEDIA_TYPE_ID(ID) VALUES(1);" + "CREATE TABLE STORAGE_CLASS_ID(" + " ID BIGINT UNSIGNED," + " CONSTRAINT STORAGE_CLASS_ID_PK PRIMARY KEY(ID)" + ");" + "INSERT INTO STORAGE_CLASS_ID(ID) VALUES(1);" + "CREATE TABLE TAPE_POOL_ID(" + " ID BIGINT UNSIGNED," + " CONSTRAINT TAPE_POOL_ID_PK PRIMARY KEY(ID)" + ");" + "INSERT INTO TAPE_POOL_ID(ID) VALUES(1);" + "CREATE TABLE VIRTUAL_ORGANIZATION_ID(" + " ID BIGINT UNSIGNED," + " CONSTRAINT VIRTUAL_ORGANIZATION_ID_PK PRIMARY KEY(ID)" + ");" + "INSERT INTO VIRTUAL_ORGANIZATION_ID(ID) VALUES(1);" + "CREATE TABLE FILE_RECYCLE_LOG_ID(" + " ID BIGINT UNSIGNED," + " CONSTRAINT FILE_RECYCLE_LOG_ID PRIMARY KEY(ID)" + ");" + "INSERT INTO FILE_RECYCLE_LOG_ID(ID) VALUES (1);" + "CREATE TABLE CTA_CATALOGUE(" + " SCHEMA_VERSION_MAJOR BIGINT UNSIGNED CONSTRAINT CTA_CATALOGUE_SVM1_NN NOT NULL," + " SCHEMA_VERSION_MINOR BIGINT UNSIGNED CONSTRAINT CTA_CATALOGUE_SVM2_NN NOT NULL," + " NEXT_SCHEMA_VERSION_MAJOR BIGINT UNSIGNED," + " NEXT_SCHEMA_VERSION_MINOR BIGINT UNSIGNED," + " STATUS VARCHAR(100)," + " IS_PRODUCTION CHAR(1) DEFAULT '0' CONSTRAINT CTA_CATALOGUE_IP_NN NOT NULL," + " CONSTRAINT CTA_CATALOGUE_IP_BOOL_CK CHECK(IS_PRODUCTION IN ('0','1'))" + ");" + "CREATE TABLE ADMIN_USER(" + " ADMIN_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_AUN_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT ADMIN_USER_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_CLHN_NN NOT NULL," + " CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT ADMIN_USER_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT ADMIN_USER_LUT_NN NOT NULL," + " CONSTRAINT ADMIN_USER_PK PRIMARY KEY(ADMIN_USER_NAME)" + ");" + "CREATE TABLE DISK_SYSTEM(" + " DISK_SYSTEM_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_DSNM_NN NOT NULL," + " FILE_REGEXP VARCHAR(100) CONSTRAINT DISK_SYSTEM_FR_NN NOT NULL," + " FREE_SPACE_QUERY_URL VARCHAR(1000) CONSTRAINT DISK_SYSTEM_FSQU_NN NOT NULL," + " REFRESH_INTERVAL BIGINT UNSIGNED CONSTRAINT DISK_SYSTEM_RI_NN NOT NULL," + " TARGETED_FREE_SPACE BIGINT UNSIGNED CONSTRAINT DISK_SYSTEM_TFS_NN NOT NULL," + " SLEEP_TIME BIGINT UNSIGNED CONSTRAINT DISK_SYSTEM_ST_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT DISK_SYSTEM_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_CLHN_NN NOT NULL," + " CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT DISK_SYSTEM_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT DISK_SYSTEM_LUT_NN NOT NULL," + " CONSTRAINT NAME_PK PRIMARY KEY(DISK_SYSTEM_NAME)" + ");" + "CREATE TABLE VIRTUAL_ORGANIZATION(" + " VIRTUAL_ORGANIZATION_ID BIGINT UNSIGNED CONSTRAINT VIRTUAL_ORGANIZATION_VOI_NN NOT NULL," + " VIRTUAL_ORGANIZATION_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_VON_NN NOT NULL," + " READ_MAX_DRIVES BIGINT UNSIGNED CONSTRAINT VIRTUAL_ORGANIZATION_RMD_NN NOT NULL," + " WRITE_MAX_DRIVES BIGINT UNSIGNED CONSTRAINT VIRTUAL_ORGANIZATION_WMD_NN NOT NULL," + " MAX_FILE_SIZE BIGINT UNSIGNED CONSTRAINT VIRTUAL_ORGANIZATION_MFS_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT VIRTUAL_ORGANIZATION_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLHN_NN NOT NULL," + " CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT VIRTUAL_ORGANIZATION_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT VIRTUAL_ORGANIZATION_LUT_NN NOT NULL," + " CONSTRAINT VIRTUAL_ORGANIZATION_PK PRIMARY KEY(VIRTUAL_ORGANIZATION_ID)," + " CONSTRAINT VIRTUAL_ORGANIZATION_VON_UN UNIQUE(VIRTUAL_ORGANIZATION_NAME)" + ");" + "CREATE TABLE STORAGE_CLASS(" + " STORAGE_CLASS_ID BIGINT UNSIGNED CONSTRAINT STORAGE_CLASS_SCI_NN NOT NULL," + " STORAGE_CLASS_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_SCN_NN NOT NULL," + " NB_COPIES TINYINT UNSIGNED CONSTRAINT STORAGE_CLASS_NC_NN NOT NULL," + " VIRTUAL_ORGANIZATION_ID BIGINT UNSIGNED CONSTRAINT STORAGE_CLASS_VOI_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT STORAGE_CLASS_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_CLHN_NN NOT NULL," + " CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT STORAGE_CLASS_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT STORAGE_CLASS_LUT_NN NOT NULL," + " CONSTRAINT STORAGE_CLASS_PK PRIMARY KEY(STORAGE_CLASS_ID)," + " CONSTRAINT STORAGE_CLASS_SCN_UN UNIQUE(STORAGE_CLASS_NAME)," + " CONSTRAINT STORAGE_CLASS_VOI_FK FOREIGN KEY(VIRTUAL_ORGANIZATION_ID) REFERENCES VIRTUAL_ORGANIZATION(VIRTUAL_ORGANIZATION_ID)" + ");" + "CREATE TABLE TAPE_POOL(" + " TAPE_POOL_ID BIGINT UNSIGNED CONSTRAINT TAPE_POOL_TPI_NN NOT NULL," + " TAPE_POOL_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_TPN_NN NOT NULL," + " VIRTUAL_ORGANIZATION_ID BIGINT UNSIGNED CONSTRAINT TAPE_POOL_VOI_NN NOT NULL," + " NB_PARTIAL_TAPES BIGINT UNSIGNED CONSTRAINT TAPE_POOL_NPT_NN NOT NULL," + " IS_ENCRYPTED CHAR(1) CONSTRAINT TAPE_POOL_IE_NN NOT NULL," + " SUPPLY VARCHAR(100)," + " USER_COMMENT VARCHAR(1000) CONSTRAINT TAPE_POOL_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_CLHN_NN NOT NULL," + " CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT TAPE_POOL_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT TAPE_POOL_LUT_NN NOT NULL," + " CONSTRAINT TAPE_POOL_PK PRIMARY KEY(TAPE_POOL_ID)," + " CONSTRAINT TAPE_POOL_TPN_UN UNIQUE(TAPE_POOL_NAME)," + " CONSTRAINT TAPE_POOL_IS_ENCRYPTED_BOOL_CK CHECK(IS_ENCRYPTED IN ('0', '1'))," + " CONSTRAINT TAPE_POOL_VO_FK FOREIGN KEY(VIRTUAL_ORGANIZATION_ID) REFERENCES VIRTUAL_ORGANIZATION(VIRTUAL_ORGANIZATION_ID)" + ");" + "CREATE TABLE ARCHIVE_ROUTE(" + " STORAGE_CLASS_ID BIGINT UNSIGNED CONSTRAINT ARCHIVE_ROUTE_SCI_NN NOT NULL," + " COPY_NB TINYINT UNSIGNED CONSTRAINT ARCHIVE_ROUTE_CN_NN NOT NULL," + " TAPE_POOL_ID BIGINT UNSIGNED CONSTRAINT ARCHIVE_ROUTE_TPI_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT ARCHIVE_ROUTE_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT ARCHIVE_ROUTE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT ARCHIVE_ROUTE_LUT_NN NOT NULL," + " CONSTRAINT ARCHIVE_ROUTE_PK PRIMARY KEY(STORAGE_CLASS_ID, COPY_NB)," + " CONSTRAINT ARCHIVE_ROUTE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID)," + " CONSTRAINT ARCHIVE_ROUTE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_ID) REFERENCES TAPE_POOL(TAPE_POOL_ID)," + " CONSTRAINT ARCHIVE_ROUTE_COPY_NB_GT_0_CK CHECK(COPY_NB > 0)," + " CONSTRAINT ARCHIVE_ROUTE_SCI_TPI_UN UNIQUE(STORAGE_CLASS_ID, TAPE_POOL_ID)" + ");" + "CREATE TABLE MEDIA_TYPE(" + " MEDIA_TYPE_ID BIGINT UNSIGNED CONSTRAINT MEDIA_TYPE_MTI_NN NOT NULL," + " MEDIA_TYPE_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_MTN_NN NOT NULL," + " CARTRIDGE VARCHAR(100) CONSTRAINT MEDIA_TYPE_C_NN NOT NULL," + " CAPACITY_IN_BYTES BIGINT UNSIGNED CONSTRAINT MEDIA_TYPE_CIB_NN NOT NULL," + " PRIMARY_DENSITY_CODE TINYINT UNSIGNED," + " SECONDARY_DENSITY_CODE TINYINT UNSIGNED," + " NB_WRAPS INT UNSIGNED," + " MIN_LPOS BIGINT UNSIGNED," + " MAX_LPOS BIGINT UNSIGNED," + " USER_COMMENT VARCHAR(1000) CONSTRAINT MEDIA_TYPE_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT MEDIA_TYPE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT MEDIA_TYPE_LUT_NN NOT NULL," + " CONSTRAINT MEDIA_TYPE_PK PRIMARY KEY(MEDIA_TYPE_ID)," + " CONSTRAINT MEDIA_TYPE_MTN_UN UNIQUE(MEDIA_TYPE_NAME)" + ");" + "CREATE TABLE LOGICAL_LIBRARY(" + " LOGICAL_LIBRARY_ID BIGINT UNSIGNED CONSTRAINT LOGICAL_LIBRARY_LLI_NN NOT NULL," + " LOGICAL_LIBRARY_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LLN_NN NOT NULL," + " IS_DISABLED CHAR(1) DEFAULT '0' CONSTRAINT LOGICAL_LIBRARY_ID_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT LOGICAL_LIBRARY_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_CLHN_NN NOT NULL," + " CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT LOGICAL_LIBRARY_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT LOGICAL_LIBRARY_LUT_NN NOT NULL," + " CONSTRAINT LOGICAL_LIBRARY_PK PRIMARY KEY(LOGICAL_LIBRARY_ID)," + " CONSTRAINT LOGICAL_LIBRARY_LLN_UN UNIQUE(LOGICAL_LIBRARY_NAME)," + " CONSTRAINT LOGICAL_LIBRARY_ID_BOOL_CK CHECK(IS_DISABLED IN ('0', '1'))" + ");" + "CREATE TABLE TAPE(" + " VID VARCHAR(100) CONSTRAINT TAPE_V_NN NOT NULL," + " MEDIA_TYPE_ID BIGINT UNSIGNED CONSTRAINT TAPE_MTID_NN NOT NULL," + " VENDOR VARCHAR(100) CONSTRAINT TAPE_V2_NN NOT NULL," + " LOGICAL_LIBRARY_ID BIGINT UNSIGNED CONSTRAINT TAPE_LLI_NN NOT NULL," + " TAPE_POOL_ID BIGINT UNSIGNED CONSTRAINT TAPE_TPI_NN NOT NULL," + " ENCRYPTION_KEY_NAME VARCHAR(100)," + " DATA_IN_BYTES BIGINT UNSIGNED CONSTRAINT TAPE_DIB_NN NOT NULL," + " LAST_FSEQ BIGINT UNSIGNED CONSTRAINT TAPE_LF_NN NOT NULL," + " NB_MASTER_FILES BIGINT UNSIGNED DEFAULT 0 CONSTRAINT TAPE_NB_MASTER_FILES_NN NOT NULL," + " MASTER_DATA_IN_BYTES BIGINT UNSIGNED DEFAULT 0 CONSTRAINT TAPE_MASTER_DATA_IN_BYTES_NN NOT NULL," + " IS_FULL CHAR(1) CONSTRAINT TAPE_IF_NN NOT NULL," + " IS_FROM_CASTOR CHAR(1) CONSTRAINT TAPE_IFC_NN NOT NULL," + " DIRTY CHAR(1) DEFAULT '1' CONSTRAINT TAPE_DIRTY_NN NOT NULL," + " NB_COPY_NB_1 BIGINT UNSIGNED DEFAULT 0 CONSTRAINT TAPE_NB_COPY_NB_1_NN NOT NULL," + " COPY_NB_1_IN_BYTES BIGINT UNSIGNED DEFAULT 0 CONSTRAINT TAPE_COPY_NB_1_IN_BYTES_NN NOT NULL," + " NB_COPY_NB_GT_1 BIGINT UNSIGNED DEFAULT 0 CONSTRAINT TAPE_NB_COPY_NB_GT_1_NN NOT NULL," + " COPY_NB_GT_1_IN_BYTES BIGINT UNSIGNED DEFAULT 0 CONSTRAINT TAPE_COPY_NB_GT_1_IN_BYTES_NN NOT NULL," + " LABEL_DRIVE VARCHAR(100)," + " LABEL_TIME BIGINT UNSIGNED ," + " LAST_READ_DRIVE VARCHAR(100)," + " LAST_READ_TIME BIGINT UNSIGNED ," + " LAST_WRITE_DRIVE VARCHAR(100)," + " LAST_WRITE_TIME BIGINT UNSIGNED ," + " READ_MOUNT_COUNT BIGINT UNSIGNED DEFAULT 0 CONSTRAINT TAPE_RMC_NN NOT NULL," + " WRITE_MOUNT_COUNT BIGINT UNSIGNED DEFAULT 0 CONSTRAINT TAPE_WMC_NN NOT NULL," + " USER_COMMENT VARCHAR(1000)," + " TAPE_STATE VARCHAR(100) CONSTRAINT TAPE_TS_NN NOT NULL," + " STATE_REASON VARCHAR(1000)," + " STATE_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT TAPE_SUT_NN NOT NULL," + " STATE_MODIFIED_BY VARCHAR(100) CONSTRAINT TAPE_SMB_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT TAPE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT TAPE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT TAPE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT TAPE_LUT_NN NOT NULL," + " CONSTRAINT TAPE_PK PRIMARY KEY(VID)," + " CONSTRAINT TAPE_LOGICAL_LIBRARY_FK FOREIGN KEY(LOGICAL_LIBRARY_ID) REFERENCES LOGICAL_LIBRARY(LOGICAL_LIBRARY_ID)," + " CONSTRAINT TAPE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_ID) REFERENCES TAPE_POOL(TAPE_POOL_ID)," + " CONSTRAINT TAPE_IS_FULL_BOOL_CK CHECK(IS_FULL IN ('0', '1'))," + " CONSTRAINT TAPE_IS_FROM_CASTOR_BOOL_CK CHECK(IS_FROM_CASTOR IN ('0', '1'))," + " CONSTRAINT TAPE_DIRTY_BOOL_CK CHECK(DIRTY IN ('0','1'))," + " CONSTRAINT TAPE_STATE_CK CHECK(TAPE_STATE IN ('ACTIVE', 'DISABLED', 'BROKEN'))," + " CONSTRAINT TAPE_MEDIA_TYPE_FK FOREIGN KEY(MEDIA_TYPE_ID) REFERENCES MEDIA_TYPE(MEDIA_TYPE_ID)" + ");" + "CREATE INDEX TAPE_TAPE_POOL_ID_IDX ON TAPE(TAPE_POOL_ID);" + "CREATE INDEX TAPE_STATE_IDX ON TAPE(TAPE_STATE);" + "CREATE TABLE MOUNT_POLICY(" + " MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_MPN_NN NOT NULL," + " ARCHIVE_PRIORITY BIGINT UNSIGNED CONSTRAINT MOUNT_POLICY_AP_NN NOT NULL," + " ARCHIVE_MIN_REQUEST_AGE BIGINT UNSIGNED CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL," + " RETRIEVE_PRIORITY BIGINT UNSIGNED CONSTRAINT MOUNT_POLICY_RP_NN NOT NULL," + " RETRIEVE_MIN_REQUEST_AGE BIGINT UNSIGNED CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT MOUNT_POLICY_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL," + " CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT MOUNT_POLICY_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT MOUNT_POLICY_LUT_NN NOT NULL," + " CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME)" + ");" + "CREATE TABLE REQUESTER_MOUNT_RULE(" + " DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_DIN_NN NOT NULL," + " REQUESTER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_RN_NN NOT NULL," + " MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_MPN_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT RQSTER_RULE_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT RQSTER_RULE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT RQSTER_RULE_LUT_NN NOT NULL," + " CONSTRAINT RQSTER_RULE_PK PRIMARY KEY(DISK_INSTANCE_NAME, REQUESTER_NAME)," + " CONSTRAINT RQSTER_RULE_MNT_PLC_FK FOREIGN KEY(MOUNT_POLICY_NAME)" + " REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME)" + ");" + "CREATE TABLE REQUESTER_GROUP_MOUNT_RULE(" + " DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_DIN_NN NOT NULL," + " REQUESTER_GROUP_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_RGN_NN NOT NULL," + " MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_MPN_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT RQSTER_GRP_RULE_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT RQSTER_GRP_RULE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT RQSTER_GRP_RULE_LUT_NN NOT NULL," + " CONSTRAINT RQSTER_GRP_RULE_PK PRIMARY KEY(DISK_INSTANCE_NAME, REQUESTER_GROUP_NAME)," + " CONSTRAINT RQSTER_GRP_RULE_MNT_PLC_FK FOREIGN KEY(MOUNT_POLICY_NAME)" + " REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME)" + ");" + "CREATE TABLE ARCHIVE_FILE(" + " ARCHIVE_FILE_ID BIGINT UNSIGNED CONSTRAINT ARCHIVE_FILE_AFI_NN NOT NULL," + " DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT ARCHIVE_FILE_DIN_NN NOT NULL," + " DISK_FILE_ID VARCHAR(100) CONSTRAINT ARCHIVE_FILE_DFI_NN NOT NULL," + " DISK_FILE_UID INT UNSIGNED CONSTRAINT ARCHIVE_FILE_DFUID_NN NOT NULL," + " DISK_FILE_GID INT UNSIGNED CONSTRAINT ARCHIVE_FILE_DFGID_NN NOT NULL," + " SIZE_IN_BYTES BIGINT UNSIGNED CONSTRAINT ARCHIVE_FILE_SIB_NN NOT NULL," + " CHECKSUM_BLOB VARBINARY(200)," + " CHECKSUM_ADLER32 INT UNSIGNED CONSTRAINT ARCHIVE_FILE_CB2_NN NOT NULL," + " STORAGE_CLASS_ID BIGINT UNSIGNED CONSTRAINT ARCHIVE_FILE_SCI_NN NOT NULL," + " CREATION_TIME BIGINT UNSIGNED CONSTRAINT ARCHIVE_FILE_CT2_NN NOT NULL," + " RECONCILIATION_TIME BIGINT UNSIGNED CONSTRAINT ARCHIVE_FILE_RT_NN NOT NULL," + " IS_DELETED CHAR(1) DEFAULT '0' CONSTRAINT ARCHIVE_FILE_ID_NN NOT NULL," + " COLLOCATION_HINT VARCHAR(100)," + " CONSTRAINT ARCHIVE_FILE_PK PRIMARY KEY(ARCHIVE_FILE_ID)," + " CONSTRAINT ARCHIVE_FILE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID)," + " CONSTRAINT ARCHIVE_FILE_DIN_DFI_UN UNIQUE(DISK_INSTANCE_NAME, DISK_FILE_ID)," + " CONSTRAINT ARCHIVE_FILE_ID_BOOL_CK CHECK(IS_DELETED IN ('0', '1'))" + ");" + "CREATE INDEX ARCHIVE_FILE_DIN_IDX ON ARCHIVE_FILE(DISK_INSTANCE_NAME);" + "CREATE INDEX ARCHIVE_FILE_DFI_IDX ON ARCHIVE_FILE(DISK_FILE_ID);" + "CREATE TABLE TAPE_FILE(" + " VID VARCHAR(100) CONSTRAINT TAPE_FILE_V_NN NOT NULL," + " FSEQ BIGINT UNSIGNED CONSTRAINT TAPE_FILE_F_NN NOT NULL," + " BLOCK_ID BIGINT UNSIGNED CONSTRAINT TAPE_FILE_BI_NN NOT NULL," + " LOGICAL_SIZE_IN_BYTES BIGINT UNSIGNED CONSTRAINT TAPE_FILE_CSIB_NN NOT NULL," + " COPY_NB TINYINT UNSIGNED CONSTRAINT TAPE_FILE_CN_NN NOT NULL," + " CREATION_TIME BIGINT UNSIGNED CONSTRAINT TAPE_FILE_CT_NN NOT NULL," + " ARCHIVE_FILE_ID BIGINT UNSIGNED CONSTRAINT TAPE_FILE_AFI_NN NOT NULL," + " CONSTRAINT TAPE_FILE_PK PRIMARY KEY(VID, FSEQ)," + " CONSTRAINT TAPE_FILE_TAPE_FK FOREIGN KEY(VID)" + " REFERENCES TAPE(VID)," + " CONSTRAINT TAPE_FILE_ARCHIVE_FILE_FK FOREIGN KEY(ARCHIVE_FILE_ID)" + " REFERENCES ARCHIVE_FILE(ARCHIVE_FILE_ID)," + " CONSTRAINT TAPE_FILE_VID_BLOCK_ID_UN UNIQUE(VID, BLOCK_ID)," + " CONSTRAINT TAPE_FILE_COPY_NB_GT_0_CK CHECK(COPY_NB > 0)" + ");" + "CREATE INDEX TAPE_FILE_VID_IDX ON TAPE_FILE(VID);" + "CREATE INDEX TAPE_FILE_ARCHIVE_FILE_ID_IDX ON TAPE_FILE(ARCHIVE_FILE_ID);" + "CREATE TABLE ACTIVITIES_WEIGHTS (" + " DISK_INSTANCE_NAME VARCHAR(100)," + " ACTIVITY VARCHAR(100)," + " WEIGHT VARCHAR(100)," + " USER_COMMENT VARCHAR(1000) CONSTRAINT ACTIV_WEIGHTS_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_CLHN_NN NOT NULL," + " CREATION_LOG_TIME BIGINT UNSIGNED CONSTRAINT ACTIV_WEIGHTS_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME BIGINT UNSIGNED CONSTRAINT ACTIV_WEIGHTS_LUT_NN NOT NULL" + ");" + "CREATE TABLE FILE_RECYCLE_LOG(" + " FILE_RECYCLE_LOG_ID BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_ID_NN NOT NULL," + " VID VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_VID_NN NOT NULL," + " FSEQ BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_FSEQ_NN NOT NULL," + " BLOCK_ID BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_BID_NN NOT NULL," + " COPY_NB TINYINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_COPY_NB_NN NOT NULL," + " TAPE_FILE_CREATION_TIME BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_TFCT_NN NOT NULL," + " ARCHIVE_FILE_ID BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_AFI_NN NOT NULL," + " DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DIN_NN NOT NULL," + " DISK_FILE_ID VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DFI_NN NOT NULL," + " DISK_FILE_ID_WHEN_DELETED VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DFIWD_NN NOT NULL," + " DISK_FILE_UID BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_DFU_NN NOT NULL," + " DISK_FILE_GID BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_DFG_NN NOT NULL," + " SIZE_IN_BYTES BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_SIB_NN NOT NULL," + " CHECKSUM_BLOB VARBINARY(200)," + " CHECKSUM_ADLER32 INT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_CA_NN NOT NULL," + " STORAGE_CLASS_ID BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_SCI_NN NOT NULL," + " ARCHIVE_FILE_CREATION_TIME BIGINT UNSIGNED CONSTRAINT FILE_RECYLE_LOG_CT_NN NOT NULL," + " RECONCILIATION_TIME BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_RT_NN NOT NULL," + " COLLOCATION_HINT VARCHAR(100)," + " DISK_FILE_PATH VARCHAR(2000)," + " REASON_LOG VARCHAR(1000) CONSTRAINT FILE_RECYCLE_LOG_RL_NN NOT NULL," + " RECYCLE_LOG_TIME BIGINT UNSIGNED CONSTRAINT FILE_RECYCLE_LOG_RLT_NN NOT NULL," + " CONSTRAINT FILE_RECYCLE_LOG_PK PRIMARY KEY(FILE_RECYCLE_LOG_ID)," + " CONSTRAINT FILE_RECYCLE_LOG_VID_FK FOREIGN KEY(VID) REFERENCES TAPE(VID)," + " CONSTRAINT FILE_RECYCLE_LOG_SC_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID)" + ");" + "CREATE INDEX FILE_RECYCLE_LOG_DFI_IDX ON FILE_RECYCLE_LOG(DISK_FILE_ID);" + "" + "CREATE TABLE DRIVE_CONFIG (" + " DRIVE_NAME VARCHAR(100) CONSTRAINT DRIVE_CONFIG_DN_NN NOT NULL," + " CATEGORY VARCHAR(100) CONSTRAINT DRIVE_CONFIG_C_NN NOT NULL," + " KEY_NAME VARCHAR(100) CONSTRAINT DRIVE_CONFIG_KN_NN NOT NULL," + " VALUE VARCHAR(1000) CONSTRAINT DRIVE_CONFIG_V_NN NOT NULL," + " SOURCE VARCHAR(100) CONSTRAINT DRIVE_CONFIG_S_NN NOT NULL," + " CONSTRAINT DRIVE_CONFIG_DN_PK PRIMARY KEY(KEY_NAME, DRIVE_NAME)" + ");" + "" + "CREATE TABLE TAPE_DRIVE (" + " DRIVE_NAME VARCHAR(100) CONSTRAINT DRIVE_STATE_DN_NN NOT NULL," + " HOST VARCHAR(100) CONSTRAINT DRIVE_STATE_H_NN NOT NULL," + " LOGICAL_LIBRARY VARCHAR(100) CONSTRAINT DRIVE_STATE_LL_NN NOT NULL," + " SESSION_ID BIGINT UNSIGNED," + " BYTES_TRANSFERED_IN_SESSION BIGINT UNSIGNED," + " FILES_TRANSFERED_IN_SESSION BIGINT UNSIGNED," + " LATEST_BANDWIDTH VARCHAR(100)," + " SESSION_START_TIME BIGINT UNSIGNED," + " MOUNT_START_TIME BIGINT UNSIGNED," + " TRANSFER_START_TIME BIGINT UNSIGNED," + " UNLOAD_START_TIME BIGINT UNSIGNED," + " UNMOUNT_START_TIME BIGINT UNSIGNED," + " DRAINING_START_TIME BIGINT UNSIGNED," + " DOWN_OR_UP_START_TIME BIGINT UNSIGNED," + " PROBE_START_TIME BIGINT UNSIGNED," + " CLEANUP_START_TIME BIGINT UNSIGNED," + " START_START_TIME BIGINT UNSIGNED," + " SHUTDOWN_TIME BIGINT UNSIGNED," + " MOUNT_TYPE INT UNSIGNED CONSTRAINT DRIVE_STATE_MT_NN NOT NULL," + " DRIVE_STATUS VARCHAR(100) DEFAULT 'UNKNOWN' CONSTRAINT DRIVE_STATE_DS_NN NOT NULL," + " DESIRED_UP CHAR(1) DEFAULT '0' CONSTRAINT DRIVE_STATE_DU_NN NOT NULL," + " DESIRED_FORCE_DOWN CHAR(1) DEFAULT '0' CONSTRAINT DRIVE_STATE_DFD_NN NOT NULL," + " REASON_UP_DOWN VARCHAR(1000)," + " CURRENT_VID VARCHAR(100)," + " CTA_VERSION VARCHAR(100)," + " CURRENT_PRIORITY BIGINT UNSIGNED," + " CURRENT_ACTIVITY VARCHAR(100)," + " CURRENT_ACTIVITY_WEIGHT VARCHAR(100)," + " CURRENT_TAPE_POOL VARCHAR(100)," + " NEXT_MOUNT_TYPE INT UNSIGNED," + " NEXT_VID VARCHAR(100)," + " NEXT_TAPE_POOL VARCHAR(100)," + " NEXT_PRIORITY BIGINT UNSIGNED," + " NEXT_ACTIVITY VARCHAR(100)," + " NEXT_ACTIVITY_WEIGHT VARCHAR(100)," + " DEV_FILE_NAME VARCHAR(100)," + " RAW_LIBRARY_SLOT VARCHAR(100)," + " CURRENT_VO VARCHAR(100)," + " NEXT_VO VARCHAR(100)," + " USER_COMMENT VARCHAR(1000)," + " CREATION_LOG_USER_NAME VARCHAR(100)," + " CREATION_LOG_HOST_NAME VARCHAR(100)," + " CREATION_LOG_TIME BIGINT UNSIGNED," + " LAST_UPDATE_USER_NAME VARCHAR(100)," + " LAST_UPDATE_HOST_NAME VARCHAR(100)," + " LAST_UPDATE_TIME BIGINT UNSIGNED," + " DISK_SYSTEM_NAME VARCHAR(100) CONSTRAINT DRIVE_STATE_DSN_NN NOT NULL," + " RESERVED_BYTES BIGINT UNSIGNED CONSTRAINT DRIVE_STATE_RB_NN NOT NULL," + " CONSTRAINT DRIVE_STATE_DN_PK PRIMARY KEY(DRIVE_NAME)," + " CONSTRAINT DRIVE_STATE_DU_BOOL_CK CHECK(DESIRED_UP IN ('0', '1'))," + " CONSTRAINT DRIVE_STATE_DFD_BOOL_CK CHECK(DESIRED_FORCE_DOWN IN ('0', '1'))," + " CONSTRAINT DRIVE_STATE_DS_STRING_CK CHECK(DRIVE_STATUS IN ('DOWN', 'UP', 'PROBING', 'STARTING'," + " 'MOUNTING', 'TRANSFERING', 'UNLOADING', 'UNMOUNTING', 'DRAININGTODISK', 'CLEANINGUP', 'SHUTDOWN'," + " 'UNKNOWN'))" + ");" + "INSERT INTO CTA_CATALOGUE(" + " SCHEMA_VERSION_MAJOR," + " SCHEMA_VERSION_MINOR," + " STATUS)" + "VALUES(" + " 4," + " 2," + " 'PRODUCTION');" + "ALTER TABLE CTA_CATALOGUE ADD CONSTRAINT" + " CATALOGUE_STATUS_CONTENT_CK CHECK((NEXT_SCHEMA_VERSION_MAJOR IS NULL AND NEXT_SCHEMA_VERSION_MINOR IS NULL AND STATUS='PRODUCTION') OR (STATUS='UPGRADING'));" + }, + {"sqlite", "CREATE TABLE ARCHIVE_FILE_ID(" + " ID INTEGER PRIMARY KEY AUTOINCREMENT" + ");" + "CREATE TABLE LOGICAL_LIBRARY_ID(" + " ID INTEGER PRIMARY KEY AUTOINCREMENT" + ");" + "CREATE TABLE MEDIA_TYPE_ID(" + " ID INTEGER PRIMARY KEY AUTOINCREMENT" + ");" + "CREATE TABLE STORAGE_CLASS_ID(" + " ID INTEGER PRIMARY KEY AUTOINCREMENT" + ");" + "CREATE TABLE TAPE_POOL_ID(" + " ID INTEGER PRIMARY KEY AUTOINCREMENT" + ");" + "CREATE TABLE VIRTUAL_ORGANIZATION_ID(" + " ID INTEGER PRIMARY KEY AUTOINCREMENT" + ");" + "CREATE TABLE FILE_RECYCLE_LOG_ID(" + " ID INTEGER PRIMARY KEY AUTOINCREMENT" + ");" + "CREATE TABLE CTA_CATALOGUE(" + " SCHEMA_VERSION_MAJOR INTEGER CONSTRAINT CTA_CATALOGUE_SVM1_NN NOT NULL," + " SCHEMA_VERSION_MINOR INTEGER CONSTRAINT CTA_CATALOGUE_SVM2_NN NOT NULL," + " NEXT_SCHEMA_VERSION_MAJOR INTEGER," + " NEXT_SCHEMA_VERSION_MINOR INTEGER," + " STATUS VARCHAR(100)," + " IS_PRODUCTION CHAR(1) DEFAULT '0' CONSTRAINT CTA_CATALOGUE_IP_NN NOT NULL," + " CONSTRAINT CTA_CATALOGUE_IP_BOOL_CK CHECK(IS_PRODUCTION IN ('0','1'))" + ");" + "CREATE TABLE ADMIN_USER(" + " ADMIN_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_AUN_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT ADMIN_USER_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_CLHN_NN NOT NULL," + " CREATION_LOG_TIME INTEGER CONSTRAINT ADMIN_USER_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME INTEGER CONSTRAINT ADMIN_USER_LUT_NN NOT NULL," + " CONSTRAINT ADMIN_USER_PK PRIMARY KEY(ADMIN_USER_NAME)" + ");" + "CREATE TABLE DISK_SYSTEM(" + " DISK_SYSTEM_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_DSNM_NN NOT NULL," + " FILE_REGEXP VARCHAR(100) CONSTRAINT DISK_SYSTEM_FR_NN NOT NULL," + " FREE_SPACE_QUERY_URL VARCHAR(1000) CONSTRAINT DISK_SYSTEM_FSQU_NN NOT NULL," + " REFRESH_INTERVAL INTEGER CONSTRAINT DISK_SYSTEM_RI_NN NOT NULL," + " TARGETED_FREE_SPACE INTEGER CONSTRAINT DISK_SYSTEM_TFS_NN NOT NULL," + " SLEEP_TIME INTEGER CONSTRAINT DISK_SYSTEM_ST_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT DISK_SYSTEM_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_CLHN_NN NOT NULL," + " CREATION_LOG_TIME INTEGER CONSTRAINT DISK_SYSTEM_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME INTEGER CONSTRAINT DISK_SYSTEM_LUT_NN NOT NULL," + " CONSTRAINT NAME_PK PRIMARY KEY(DISK_SYSTEM_NAME)" + ");" + "CREATE TABLE VIRTUAL_ORGANIZATION(" + " VIRTUAL_ORGANIZATION_ID INTEGER CONSTRAINT VIRTUAL_ORGANIZATION_VOI_NN NOT NULL," + " VIRTUAL_ORGANIZATION_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_VON_NN NOT NULL," + " READ_MAX_DRIVES INTEGER CONSTRAINT VIRTUAL_ORGANIZATION_RMD_NN NOT NULL," + " WRITE_MAX_DRIVES INTEGER CONSTRAINT VIRTUAL_ORGANIZATION_WMD_NN NOT NULL," + " MAX_FILE_SIZE INTEGER CONSTRAINT VIRTUAL_ORGANIZATION_MFS_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT VIRTUAL_ORGANIZATION_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLHN_NN NOT NULL," + " CREATION_LOG_TIME INTEGER CONSTRAINT VIRTUAL_ORGANIZATION_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME INTEGER CONSTRAINT VIRTUAL_ORGANIZATION_LUT_NN NOT NULL," + " CONSTRAINT VIRTUAL_ORGANIZATION_PK PRIMARY KEY(VIRTUAL_ORGANIZATION_ID)," + " CONSTRAINT VIRTUAL_ORGANIZATION_VON_UN UNIQUE(VIRTUAL_ORGANIZATION_NAME)" + ");" + "CREATE TABLE STORAGE_CLASS(" + " STORAGE_CLASS_ID INTEGER CONSTRAINT STORAGE_CLASS_SCI_NN NOT NULL," + " STORAGE_CLASS_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_SCN_NN NOT NULL," + " NB_COPIES INTEGER CONSTRAINT STORAGE_CLASS_NC_NN NOT NULL," + " VIRTUAL_ORGANIZATION_ID INTEGER CONSTRAINT STORAGE_CLASS_VOI_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT STORAGE_CLASS_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_CLHN_NN NOT NULL," + " CREATION_LOG_TIME INTEGER CONSTRAINT STORAGE_CLASS_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME INTEGER CONSTRAINT STORAGE_CLASS_LUT_NN NOT NULL," + " CONSTRAINT STORAGE_CLASS_PK PRIMARY KEY(STORAGE_CLASS_ID)," + " CONSTRAINT STORAGE_CLASS_SCN_UN UNIQUE(STORAGE_CLASS_NAME)," + " CONSTRAINT STORAGE_CLASS_VOI_FK FOREIGN KEY(VIRTUAL_ORGANIZATION_ID) REFERENCES VIRTUAL_ORGANIZATION(VIRTUAL_ORGANIZATION_ID)" + ");" + "CREATE TABLE TAPE_POOL(" + " TAPE_POOL_ID INTEGER CONSTRAINT TAPE_POOL_TPI_NN NOT NULL," + " TAPE_POOL_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_TPN_NN NOT NULL," + " VIRTUAL_ORGANIZATION_ID INTEGER CONSTRAINT TAPE_POOL_VOI_NN NOT NULL," + " NB_PARTIAL_TAPES INTEGER CONSTRAINT TAPE_POOL_NPT_NN NOT NULL," + " IS_ENCRYPTED CHAR(1) CONSTRAINT TAPE_POOL_IE_NN NOT NULL," + " SUPPLY VARCHAR(100)," + " USER_COMMENT VARCHAR(1000) CONSTRAINT TAPE_POOL_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_CLHN_NN NOT NULL," + " CREATION_LOG_TIME INTEGER CONSTRAINT TAPE_POOL_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME INTEGER CONSTRAINT TAPE_POOL_LUT_NN NOT NULL," + " CONSTRAINT TAPE_POOL_PK PRIMARY KEY(TAPE_POOL_ID)," + " CONSTRAINT TAPE_POOL_TPN_UN UNIQUE(TAPE_POOL_NAME)," + " CONSTRAINT TAPE_POOL_IS_ENCRYPTED_BOOL_CK CHECK(IS_ENCRYPTED IN ('0', '1'))," + " CONSTRAINT TAPE_POOL_VO_FK FOREIGN KEY(VIRTUAL_ORGANIZATION_ID) REFERENCES VIRTUAL_ORGANIZATION(VIRTUAL_ORGANIZATION_ID)" + ");" + "CREATE TABLE ARCHIVE_ROUTE(" + " STORAGE_CLASS_ID INTEGER CONSTRAINT ARCHIVE_ROUTE_SCI_NN NOT NULL," + " COPY_NB INTEGER CONSTRAINT ARCHIVE_ROUTE_CN_NN NOT NULL," + " TAPE_POOL_ID INTEGER CONSTRAINT ARCHIVE_ROUTE_TPI_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT ARCHIVE_ROUTE_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME INTEGER CONSTRAINT ARCHIVE_ROUTE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME INTEGER CONSTRAINT ARCHIVE_ROUTE_LUT_NN NOT NULL," + " CONSTRAINT ARCHIVE_ROUTE_PK PRIMARY KEY(STORAGE_CLASS_ID, COPY_NB)," + " CONSTRAINT ARCHIVE_ROUTE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID)," + " CONSTRAINT ARCHIVE_ROUTE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_ID) REFERENCES TAPE_POOL(TAPE_POOL_ID)," + " CONSTRAINT ARCHIVE_ROUTE_COPY_NB_GT_0_CK CHECK(COPY_NB > 0)," + " CONSTRAINT ARCHIVE_ROUTE_SCI_TPI_UN UNIQUE(STORAGE_CLASS_ID, TAPE_POOL_ID)" + ");" + "CREATE TABLE MEDIA_TYPE(" + " MEDIA_TYPE_ID INTEGER CONSTRAINT MEDIA_TYPE_MTI_NN NOT NULL," + " MEDIA_TYPE_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_MTN_NN NOT NULL," + " CARTRIDGE VARCHAR(100) CONSTRAINT MEDIA_TYPE_C_NN NOT NULL," + " CAPACITY_IN_BYTES INTEGER CONSTRAINT MEDIA_TYPE_CIB_NN NOT NULL," + " PRIMARY_DENSITY_CODE INTEGER," + " SECONDARY_DENSITY_CODE INTEGER," + " NB_WRAPS INTEGER," + " MIN_LPOS INTEGER," + " MAX_LPOS INTEGER," + " USER_COMMENT VARCHAR(1000) CONSTRAINT MEDIA_TYPE_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME INTEGER CONSTRAINT MEDIA_TYPE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME INTEGER CONSTRAINT MEDIA_TYPE_LUT_NN NOT NULL," + " CONSTRAINT MEDIA_TYPE_PK PRIMARY KEY(MEDIA_TYPE_ID)," + " CONSTRAINT MEDIA_TYPE_MTN_UN UNIQUE(MEDIA_TYPE_NAME)" + ");" + "CREATE TABLE LOGICAL_LIBRARY(" + " LOGICAL_LIBRARY_ID INTEGER CONSTRAINT LOGICAL_LIBRARY_LLI_NN NOT NULL," + " LOGICAL_LIBRARY_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LLN_NN NOT NULL," + " IS_DISABLED CHAR(1) DEFAULT '0' CONSTRAINT LOGICAL_LIBRARY_ID_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT LOGICAL_LIBRARY_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_CLHN_NN NOT NULL," + " CREATION_LOG_TIME INTEGER CONSTRAINT LOGICAL_LIBRARY_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME INTEGER CONSTRAINT LOGICAL_LIBRARY_LUT_NN NOT NULL," + " CONSTRAINT LOGICAL_LIBRARY_PK PRIMARY KEY(LOGICAL_LIBRARY_ID)," + " CONSTRAINT LOGICAL_LIBRARY_LLN_UN UNIQUE(LOGICAL_LIBRARY_NAME)," + " CONSTRAINT LOGICAL_LIBRARY_ID_BOOL_CK CHECK(IS_DISABLED IN ('0', '1'))" + ");" + "CREATE TABLE TAPE(" + " VID VARCHAR(100) CONSTRAINT TAPE_V_NN NOT NULL," + " MEDIA_TYPE_ID INTEGER CONSTRAINT TAPE_MTID_NN NOT NULL," + " VENDOR VARCHAR(100) CONSTRAINT TAPE_V2_NN NOT NULL," + " LOGICAL_LIBRARY_ID INTEGER CONSTRAINT TAPE_LLI_NN NOT NULL," + " TAPE_POOL_ID INTEGER CONSTRAINT TAPE_TPI_NN NOT NULL," + " ENCRYPTION_KEY_NAME VARCHAR(100)," + " DATA_IN_BYTES INTEGER CONSTRAINT TAPE_DIB_NN NOT NULL," + " LAST_FSEQ INTEGER CONSTRAINT TAPE_LF_NN NOT NULL," + " NB_MASTER_FILES INTEGER DEFAULT 0 CONSTRAINT TAPE_NB_MASTER_FILES_NN NOT NULL," + " MASTER_DATA_IN_BYTES INTEGER DEFAULT 0 CONSTRAINT TAPE_MASTER_DATA_IN_BYTES_NN NOT NULL," + " IS_FULL CHAR(1) CONSTRAINT TAPE_IF_NN NOT NULL," + " IS_FROM_CASTOR CHAR(1) CONSTRAINT TAPE_IFC_NN NOT NULL," + " DIRTY CHAR(1) DEFAULT '1' CONSTRAINT TAPE_DIRTY_NN NOT NULL," + " NB_COPY_NB_1 INTEGER DEFAULT 0 CONSTRAINT TAPE_NB_COPY_NB_1_NN NOT NULL," + " COPY_NB_1_IN_BYTES INTEGER DEFAULT 0 CONSTRAINT TAPE_COPY_NB_1_IN_BYTES_NN NOT NULL," + " NB_COPY_NB_GT_1 INTEGER DEFAULT 0 CONSTRAINT TAPE_NB_COPY_NB_GT_1_NN NOT NULL," + " COPY_NB_GT_1_IN_BYTES INTEGER DEFAULT 0 CONSTRAINT TAPE_COPY_NB_GT_1_IN_BYTES_NN NOT NULL," + " LABEL_DRIVE VARCHAR(100)," + " LABEL_TIME INTEGER ," + " LAST_READ_DRIVE VARCHAR(100)," + " LAST_READ_TIME INTEGER ," + " LAST_WRITE_DRIVE VARCHAR(100)," + " LAST_WRITE_TIME INTEGER ," + " READ_MOUNT_COUNT INTEGER DEFAULT 0 CONSTRAINT TAPE_RMC_NN NOT NULL," + " WRITE_MOUNT_COUNT INTEGER DEFAULT 0 CONSTRAINT TAPE_WMC_NN NOT NULL," + " USER_COMMENT VARCHAR(1000)," + " TAPE_STATE VARCHAR(100) CONSTRAINT TAPE_TS_NN NOT NULL," + " STATE_REASON VARCHAR(1000)," + " STATE_UPDATE_TIME INTEGER CONSTRAINT TAPE_SUT_NN NOT NULL," + " STATE_MODIFIED_BY VARCHAR(100) CONSTRAINT TAPE_SMB_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT TAPE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME INTEGER CONSTRAINT TAPE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT TAPE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME INTEGER CONSTRAINT TAPE_LUT_NN NOT NULL," + " CONSTRAINT TAPE_PK PRIMARY KEY(VID)," + " CONSTRAINT TAPE_LOGICAL_LIBRARY_FK FOREIGN KEY(LOGICAL_LIBRARY_ID) REFERENCES LOGICAL_LIBRARY(LOGICAL_LIBRARY_ID)," + " CONSTRAINT TAPE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_ID) REFERENCES TAPE_POOL(TAPE_POOL_ID)," + " CONSTRAINT TAPE_IS_FULL_BOOL_CK CHECK(IS_FULL IN ('0', '1'))," + " CONSTRAINT TAPE_IS_FROM_CASTOR_BOOL_CK CHECK(IS_FROM_CASTOR IN ('0', '1'))," + " CONSTRAINT TAPE_DIRTY_BOOL_CK CHECK(DIRTY IN ('0','1'))," + " CONSTRAINT TAPE_STATE_CK CHECK(TAPE_STATE IN ('ACTIVE', 'DISABLED', 'BROKEN'))," + " CONSTRAINT TAPE_MEDIA_TYPE_FK FOREIGN KEY(MEDIA_TYPE_ID) REFERENCES MEDIA_TYPE(MEDIA_TYPE_ID)" + ");" + "CREATE INDEX TAPE_TAPE_POOL_ID_IDX ON TAPE(TAPE_POOL_ID);" + "CREATE INDEX TAPE_STATE_IDX ON TAPE(TAPE_STATE);" + "CREATE TABLE MOUNT_POLICY(" + " MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_MPN_NN NOT NULL," + " ARCHIVE_PRIORITY INTEGER CONSTRAINT MOUNT_POLICY_AP_NN NOT NULL," + " ARCHIVE_MIN_REQUEST_AGE INTEGER CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL," + " RETRIEVE_PRIORITY INTEGER CONSTRAINT MOUNT_POLICY_RP_NN NOT NULL," + " RETRIEVE_MIN_REQUEST_AGE INTEGER CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT MOUNT_POLICY_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL," + " CREATION_LOG_TIME INTEGER CONSTRAINT MOUNT_POLICY_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME INTEGER CONSTRAINT MOUNT_POLICY_LUT_NN NOT NULL," + " CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME)" + ");" + "CREATE TABLE REQUESTER_MOUNT_RULE(" + " DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_DIN_NN NOT NULL," + " REQUESTER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_RN_NN NOT NULL," + " MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_MPN_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT RQSTER_RULE_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME INTEGER CONSTRAINT RQSTER_RULE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME INTEGER CONSTRAINT RQSTER_RULE_LUT_NN NOT NULL," + " CONSTRAINT RQSTER_RULE_PK PRIMARY KEY(DISK_INSTANCE_NAME, REQUESTER_NAME)," + " CONSTRAINT RQSTER_RULE_MNT_PLC_FK FOREIGN KEY(MOUNT_POLICY_NAME)" + " REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME)" + ");" + "CREATE TABLE REQUESTER_GROUP_MOUNT_RULE(" + " DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_DIN_NN NOT NULL," + " REQUESTER_GROUP_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_RGN_NN NOT NULL," + " MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_MPN_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT RQSTER_GRP_RULE_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME INTEGER CONSTRAINT RQSTER_GRP_RULE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME INTEGER CONSTRAINT RQSTER_GRP_RULE_LUT_NN NOT NULL," + " CONSTRAINT RQSTER_GRP_RULE_PK PRIMARY KEY(DISK_INSTANCE_NAME, REQUESTER_GROUP_NAME)," + " CONSTRAINT RQSTER_GRP_RULE_MNT_PLC_FK FOREIGN KEY(MOUNT_POLICY_NAME)" + " REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME)" + ");" + "CREATE TABLE ARCHIVE_FILE(" + " ARCHIVE_FILE_ID INTEGER CONSTRAINT ARCHIVE_FILE_AFI_NN NOT NULL," + " DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT ARCHIVE_FILE_DIN_NN NOT NULL," + " DISK_FILE_ID VARCHAR(100) CONSTRAINT ARCHIVE_FILE_DFI_NN NOT NULL," + " DISK_FILE_UID INTEGER CONSTRAINT ARCHIVE_FILE_DFUID_NN NOT NULL," + " DISK_FILE_GID INTEGER CONSTRAINT ARCHIVE_FILE_DFGID_NN NOT NULL," + " SIZE_IN_BYTES INTEGER CONSTRAINT ARCHIVE_FILE_SIB_NN NOT NULL," + " CHECKSUM_BLOB BLOB(200)," + " CHECKSUM_ADLER32 INTEGER CONSTRAINT ARCHIVE_FILE_CB2_NN NOT NULL," + " STORAGE_CLASS_ID INTEGER CONSTRAINT ARCHIVE_FILE_SCI_NN NOT NULL," + " CREATION_TIME INTEGER CONSTRAINT ARCHIVE_FILE_CT2_NN NOT NULL," + " RECONCILIATION_TIME INTEGER CONSTRAINT ARCHIVE_FILE_RT_NN NOT NULL," + " IS_DELETED CHAR(1) DEFAULT '0' CONSTRAINT ARCHIVE_FILE_ID_NN NOT NULL," + " COLLOCATION_HINT VARCHAR(100)," + " CONSTRAINT ARCHIVE_FILE_PK PRIMARY KEY(ARCHIVE_FILE_ID)," + " CONSTRAINT ARCHIVE_FILE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID)," + " CONSTRAINT ARCHIVE_FILE_DIN_DFI_UN UNIQUE(DISK_INSTANCE_NAME, DISK_FILE_ID)," + " CONSTRAINT ARCHIVE_FILE_ID_BOOL_CK CHECK(IS_DELETED IN ('0', '1'))" + ");" + "CREATE INDEX ARCHIVE_FILE_DIN_IDX ON ARCHIVE_FILE(DISK_INSTANCE_NAME);" + "CREATE INDEX ARCHIVE_FILE_DFI_IDX ON ARCHIVE_FILE(DISK_FILE_ID);" + "CREATE TABLE TAPE_FILE(" + " VID VARCHAR(100) CONSTRAINT TAPE_FILE_V_NN NOT NULL," + " FSEQ INTEGER CONSTRAINT TAPE_FILE_F_NN NOT NULL," + " BLOCK_ID INTEGER CONSTRAINT TAPE_FILE_BI_NN NOT NULL," + " LOGICAL_SIZE_IN_BYTES INTEGER CONSTRAINT TAPE_FILE_CSIB_NN NOT NULL," + " COPY_NB INTEGER CONSTRAINT TAPE_FILE_CN_NN NOT NULL," + " CREATION_TIME INTEGER CONSTRAINT TAPE_FILE_CT_NN NOT NULL," + " ARCHIVE_FILE_ID INTEGER CONSTRAINT TAPE_FILE_AFI_NN NOT NULL," + " CONSTRAINT TAPE_FILE_PK PRIMARY KEY(VID, FSEQ)," + " CONSTRAINT TAPE_FILE_TAPE_FK FOREIGN KEY(VID)" + " REFERENCES TAPE(VID)," + " CONSTRAINT TAPE_FILE_ARCHIVE_FILE_FK FOREIGN KEY(ARCHIVE_FILE_ID)" + " REFERENCES ARCHIVE_FILE(ARCHIVE_FILE_ID)," + " CONSTRAINT TAPE_FILE_VID_BLOCK_ID_UN UNIQUE(VID, BLOCK_ID)," + " CONSTRAINT TAPE_FILE_COPY_NB_GT_0_CK CHECK(COPY_NB > 0)" + ");" + "CREATE INDEX TAPE_FILE_VID_IDX ON TAPE_FILE(VID);" + "CREATE INDEX TAPE_FILE_ARCHIVE_FILE_ID_IDX ON TAPE_FILE(ARCHIVE_FILE_ID);" + "CREATE TABLE ACTIVITIES_WEIGHTS (" + " DISK_INSTANCE_NAME VARCHAR(100)," + " ACTIVITY VARCHAR(100)," + " WEIGHT VARCHAR(100)," + " USER_COMMENT VARCHAR(1000) CONSTRAINT ACTIV_WEIGHTS_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_CLHN_NN NOT NULL," + " CREATION_LOG_TIME INTEGER CONSTRAINT ACTIV_WEIGHTS_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME INTEGER CONSTRAINT ACTIV_WEIGHTS_LUT_NN NOT NULL" + ");" + "CREATE TABLE FILE_RECYCLE_LOG(" + " FILE_RECYCLE_LOG_ID INTEGER CONSTRAINT FILE_RECYCLE_LOG_ID_NN NOT NULL," + " VID VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_VID_NN NOT NULL," + " FSEQ INTEGER CONSTRAINT FILE_RECYCLE_LOG_FSEQ_NN NOT NULL," + " BLOCK_ID INTEGER CONSTRAINT FILE_RECYCLE_LOG_BID_NN NOT NULL," + " COPY_NB INTEGER CONSTRAINT FILE_RECYCLE_LOG_COPY_NB_NN NOT NULL," + " TAPE_FILE_CREATION_TIME INTEGER CONSTRAINT FILE_RECYCLE_LOG_TFCT_NN NOT NULL," + " ARCHIVE_FILE_ID INTEGER CONSTRAINT FILE_RECYCLE_LOG_AFI_NN NOT NULL," + " DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DIN_NN NOT NULL," + " DISK_FILE_ID VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DFI_NN NOT NULL," + " DISK_FILE_ID_WHEN_DELETED VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DFIWD_NN NOT NULL," + " DISK_FILE_UID INTEGER CONSTRAINT FILE_RECYCLE_LOG_DFU_NN NOT NULL," + " DISK_FILE_GID INTEGER CONSTRAINT FILE_RECYCLE_LOG_DFG_NN NOT NULL," + " SIZE_IN_BYTES INTEGER CONSTRAINT FILE_RECYCLE_LOG_SIB_NN NOT NULL," + " CHECKSUM_BLOB BLOB(200)," + " CHECKSUM_ADLER32 INTEGER CONSTRAINT FILE_RECYCLE_LOG_CA_NN NOT NULL," + " STORAGE_CLASS_ID INTEGER CONSTRAINT FILE_RECYCLE_LOG_SCI_NN NOT NULL," + " ARCHIVE_FILE_CREATION_TIME INTEGER CONSTRAINT FILE_RECYLE_LOG_CT_NN NOT NULL," + " RECONCILIATION_TIME INTEGER CONSTRAINT FILE_RECYCLE_LOG_RT_NN NOT NULL," + " COLLOCATION_HINT VARCHAR(100)," + " DISK_FILE_PATH VARCHAR(2000)," + " REASON_LOG VARCHAR(1000) CONSTRAINT FILE_RECYCLE_LOG_RL_NN NOT NULL," + " RECYCLE_LOG_TIME INTEGER CONSTRAINT FILE_RECYCLE_LOG_RLT_NN NOT NULL," + " CONSTRAINT FILE_RECYCLE_LOG_PK PRIMARY KEY(FILE_RECYCLE_LOG_ID)," + " CONSTRAINT FILE_RECYCLE_LOG_VID_FK FOREIGN KEY(VID) REFERENCES TAPE(VID)," + " CONSTRAINT FILE_RECYCLE_LOG_SC_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID)" + ");" + "CREATE INDEX FILE_RECYCLE_LOG_DFI_IDX ON FILE_RECYCLE_LOG(DISK_FILE_ID);" + "" + "CREATE TABLE DRIVE_CONFIG (" + " DRIVE_NAME VARCHAR(100) CONSTRAINT DRIVE_CONFIG_DN_NN NOT NULL," + " CATEGORY VARCHAR(100) CONSTRAINT DRIVE_CONFIG_C_NN NOT NULL," + " KEY_NAME VARCHAR(100) CONSTRAINT DRIVE_CONFIG_KN_NN NOT NULL," + " VALUE VARCHAR(1000) CONSTRAINT DRIVE_CONFIG_V_NN NOT NULL," + " SOURCE VARCHAR(100) CONSTRAINT DRIVE_CONFIG_S_NN NOT NULL," + " CONSTRAINT DRIVE_CONFIG_DN_PK PRIMARY KEY(KEY_NAME, DRIVE_NAME)" + ");" + "" + "CREATE TABLE TAPE_DRIVE (" + " DRIVE_NAME VARCHAR(100) CONSTRAINT DRIVE_STATE_DN_NN NOT NULL," + " HOST VARCHAR(100) CONSTRAINT DRIVE_STATE_H_NN NOT NULL," + " LOGICAL_LIBRARY VARCHAR(100) CONSTRAINT DRIVE_STATE_LL_NN NOT NULL," + " SESSION_ID INTEGER," + " BYTES_TRANSFERED_IN_SESSION INTEGER," + " FILES_TRANSFERED_IN_SESSION INTEGER," + " LATEST_BANDWIDTH VARCHAR(100)," + " SESSION_START_TIME INTEGER," + " MOUNT_START_TIME INTEGER," + " TRANSFER_START_TIME INTEGER," + " UNLOAD_START_TIME INTEGER," + " UNMOUNT_START_TIME INTEGER," + " DRAINING_START_TIME INTEGER," + " DOWN_OR_UP_START_TIME INTEGER," + " PROBE_START_TIME INTEGER," + " CLEANUP_START_TIME INTEGER," + " START_START_TIME INTEGER," + " SHUTDOWN_TIME INTEGER," + " MOUNT_TYPE INTEGER CONSTRAINT DRIVE_STATE_MT_NN NOT NULL," + " DRIVE_STATUS VARCHAR(100) DEFAULT 'UNKNOWN' CONSTRAINT DRIVE_STATE_DS_NN NOT NULL," + " DESIRED_UP CHAR(1) DEFAULT '0' CONSTRAINT DRIVE_STATE_DU_NN NOT NULL," + " DESIRED_FORCE_DOWN CHAR(1) DEFAULT '0' CONSTRAINT DRIVE_STATE_DFD_NN NOT NULL," + " REASON_UP_DOWN VARCHAR(1000)," + " CURRENT_VID VARCHAR(100)," + " CTA_VERSION VARCHAR(100)," + " CURRENT_PRIORITY INTEGER," + " CURRENT_ACTIVITY VARCHAR(100)," + " CURRENT_ACTIVITY_WEIGHT VARCHAR(100)," + " CURRENT_TAPE_POOL VARCHAR(100)," + " NEXT_MOUNT_TYPE INTEGER," + " NEXT_VID VARCHAR(100)," + " NEXT_TAPE_POOL VARCHAR(100)," + " NEXT_PRIORITY INTEGER," + " NEXT_ACTIVITY VARCHAR(100)," + " NEXT_ACTIVITY_WEIGHT VARCHAR(100)," + " DEV_FILE_NAME VARCHAR(100)," + " RAW_LIBRARY_SLOT VARCHAR(100)," + " CURRENT_VO VARCHAR(100)," + " NEXT_VO VARCHAR(100)," + " USER_COMMENT VARCHAR(1000)," + " CREATION_LOG_USER_NAME VARCHAR(100)," + " CREATION_LOG_HOST_NAME VARCHAR(100)," + " CREATION_LOG_TIME INTEGER," + " LAST_UPDATE_USER_NAME VARCHAR(100)," + " LAST_UPDATE_HOST_NAME VARCHAR(100)," + " LAST_UPDATE_TIME INTEGER," + " DISK_SYSTEM_NAME VARCHAR(100) CONSTRAINT DRIVE_STATE_DSN_NN NOT NULL," + " RESERVED_BYTES INTEGER CONSTRAINT DRIVE_STATE_RB_NN NOT NULL," + " CONSTRAINT DRIVE_STATE_DN_PK PRIMARY KEY(DRIVE_NAME)," + " CONSTRAINT DRIVE_STATE_DU_BOOL_CK CHECK(DESIRED_UP IN ('0', '1'))," + " CONSTRAINT DRIVE_STATE_DFD_BOOL_CK CHECK(DESIRED_FORCE_DOWN IN ('0', '1'))," + " CONSTRAINT DRIVE_STATE_DS_STRING_CK CHECK(DRIVE_STATUS IN ('DOWN', 'UP', 'PROBING', 'STARTING'," + " 'MOUNTING', 'TRANSFERING', 'UNLOADING', 'UNMOUNTING', 'DRAININGTODISK', 'CLEANINGUP', 'SHUTDOWN'," + " 'UNKNOWN'))" + ");" + "INSERT INTO CTA_CATALOGUE(" + " SCHEMA_VERSION_MAJOR," + " SCHEMA_VERSION_MINOR," + " STATUS)" + "VALUES(" + " 4," + " 2," + " 'PRODUCTION');" + }, + {"postgres", "CREATE SEQUENCE ARCHIVE_FILE_ID_SEQ" + " INCREMENT BY 1" + " START WITH 1" + " NO MAXVALUE" + " MINVALUE 1" + " NO CYCLE" + " CACHE 20;" + "CREATE SEQUENCE LOGICAL_LIBRARY_ID_SEQ" + " INCREMENT BY 1" + " START WITH 1" + " NO MAXVALUE" + " MINVALUE 1" + " NO CYCLE" + " CACHE 20;" + "CREATE SEQUENCE MEDIA_TYPE_ID_SEQ" + " INCREMENT BY 1" + " START WITH 1" + " NO MAXVALUE" + " MINVALUE 1" + " NO CYCLE" + " CACHE 20;" + "CREATE SEQUENCE STORAGE_CLASS_ID_SEQ" + " INCREMENT BY 1" + " START WITH 1" + " NO MAXVALUE" + " MINVALUE 1" + " NO CYCLE" + " CACHE 20;" + "CREATE SEQUENCE TAPE_POOL_ID_SEQ" + " INCREMENT BY 1" + " START WITH 1" + " NO MAXVALUE" + " MINVALUE 1" + " NO CYCLE" + " CACHE 20;" + "CREATE SEQUENCE VIRTUAL_ORGANIZATION_ID_SEQ" + " INCREMENT BY 1" + " START WITH 1" + " NO MAXVALUE" + " MINVALUE 1" + " NO CYCLE" + " CACHE 20;" + "CREATE SEQUENCE FILE_RECYCLE_LOG_ID_SEQ" + " INCREMENT BY 1" + " START WITH 1" + " NO MAXVALUE" + " MINVALUE 1" + " NO CYCLE" + " CACHE 20;" + "CREATE TABLE CTA_CATALOGUE(" + " SCHEMA_VERSION_MAJOR NUMERIC(20, 0) CONSTRAINT CTA_CATALOGUE_SVM1_NN NOT NULL," + " SCHEMA_VERSION_MINOR NUMERIC(20, 0) CONSTRAINT CTA_CATALOGUE_SVM2_NN NOT NULL," + " NEXT_SCHEMA_VERSION_MAJOR NUMERIC(20, 0)," + " NEXT_SCHEMA_VERSION_MINOR NUMERIC(20, 0)," + " STATUS VARCHAR(100)," + " IS_PRODUCTION CHAR(1) DEFAULT '0' CONSTRAINT CTA_CATALOGUE_IP_NN NOT NULL," + " CONSTRAINT CTA_CATALOGUE_IP_BOOL_CK CHECK(IS_PRODUCTION IN ('0','1'))" + ");" + "CREATE TABLE ADMIN_USER(" + " ADMIN_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_AUN_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT ADMIN_USER_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT ADMIN_USER_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ADMIN_USER_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT ADMIN_USER_LUT_NN NOT NULL," + " CONSTRAINT ADMIN_USER_PK PRIMARY KEY(ADMIN_USER_NAME)" + ");" + "CREATE TABLE DISK_SYSTEM(" + " DISK_SYSTEM_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_DSNM_NN NOT NULL," + " FILE_REGEXP VARCHAR(100) CONSTRAINT DISK_SYSTEM_FR_NN NOT NULL," + " FREE_SPACE_QUERY_URL VARCHAR(1000) CONSTRAINT DISK_SYSTEM_FSQU_NN NOT NULL," + " REFRESH_INTERVAL NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_RI_NN NOT NULL," + " TARGETED_FREE_SPACE NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_TFS_NN NOT NULL," + " SLEEP_TIME NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_ST_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT DISK_SYSTEM_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT DISK_SYSTEM_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT DISK_SYSTEM_LUT_NN NOT NULL," + " CONSTRAINT NAME_PK PRIMARY KEY(DISK_SYSTEM_NAME)" + ");" + "CREATE TABLE VIRTUAL_ORGANIZATION(" + " VIRTUAL_ORGANIZATION_ID NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_VOI_NN NOT NULL," + " VIRTUAL_ORGANIZATION_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_VON_NN NOT NULL," + " READ_MAX_DRIVES NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_RMD_NN NOT NULL," + " WRITE_MAX_DRIVES NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_WMD_NN NOT NULL," + " MAX_FILE_SIZE NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_MFS_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT VIRTUAL_ORGANIZATION_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT VIRTUAL_ORGANIZATION_LUT_NN NOT NULL," + " CONSTRAINT VIRTUAL_ORGANIZATION_PK PRIMARY KEY(VIRTUAL_ORGANIZATION_ID)," + " CONSTRAINT VIRTUAL_ORGANIZATION_VON_UN UNIQUE(VIRTUAL_ORGANIZATION_NAME)" + ");" + "CREATE TABLE STORAGE_CLASS(" + " STORAGE_CLASS_ID NUMERIC(20, 0) CONSTRAINT STORAGE_CLASS_SCI_NN NOT NULL," + " STORAGE_CLASS_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_SCN_NN NOT NULL," + " NB_COPIES NUMERIC(3, 0) CONSTRAINT STORAGE_CLASS_NC_NN NOT NULL," + " VIRTUAL_ORGANIZATION_ID NUMERIC(20, 0) CONSTRAINT STORAGE_CLASS_VOI_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT STORAGE_CLASS_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT STORAGE_CLASS_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT STORAGE_CLASS_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT STORAGE_CLASS_LUT_NN NOT NULL," + " CONSTRAINT STORAGE_CLASS_PK PRIMARY KEY(STORAGE_CLASS_ID)," + " CONSTRAINT STORAGE_CLASS_SCN_UN UNIQUE(STORAGE_CLASS_NAME)," + " CONSTRAINT STORAGE_CLASS_VOI_FK FOREIGN KEY(VIRTUAL_ORGANIZATION_ID) REFERENCES VIRTUAL_ORGANIZATION(VIRTUAL_ORGANIZATION_ID)" + ");" + "CREATE TABLE TAPE_POOL(" + " TAPE_POOL_ID NUMERIC(20, 0) CONSTRAINT TAPE_POOL_TPI_NN NOT NULL," + " TAPE_POOL_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_TPN_NN NOT NULL," + " VIRTUAL_ORGANIZATION_ID NUMERIC(20, 0) CONSTRAINT TAPE_POOL_VOI_NN NOT NULL," + " NB_PARTIAL_TAPES NUMERIC(20, 0) CONSTRAINT TAPE_POOL_NPT_NN NOT NULL," + " IS_ENCRYPTED CHAR(1) CONSTRAINT TAPE_POOL_IE_NN NOT NULL," + " SUPPLY VARCHAR(100)," + " USER_COMMENT VARCHAR(1000) CONSTRAINT TAPE_POOL_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT TAPE_POOL_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_POOL_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT TAPE_POOL_LUT_NN NOT NULL," + " CONSTRAINT TAPE_POOL_PK PRIMARY KEY(TAPE_POOL_ID)," + " CONSTRAINT TAPE_POOL_TPN_UN UNIQUE(TAPE_POOL_NAME)," + " CONSTRAINT TAPE_POOL_IS_ENCRYPTED_BOOL_CK CHECK(IS_ENCRYPTED IN ('0', '1'))," + " CONSTRAINT TAPE_POOL_VO_FK FOREIGN KEY(VIRTUAL_ORGANIZATION_ID) REFERENCES VIRTUAL_ORGANIZATION(VIRTUAL_ORGANIZATION_ID)" + ");" + "CREATE TABLE ARCHIVE_ROUTE(" + " STORAGE_CLASS_ID NUMERIC(20, 0) CONSTRAINT ARCHIVE_ROUTE_SCI_NN NOT NULL," + " COPY_NB NUMERIC(3, 0) CONSTRAINT ARCHIVE_ROUTE_CN_NN NOT NULL," + " TAPE_POOL_ID NUMERIC(20, 0) CONSTRAINT ARCHIVE_ROUTE_TPI_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT ARCHIVE_ROUTE_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT ARCHIVE_ROUTE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ARCHIVE_ROUTE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT ARCHIVE_ROUTE_LUT_NN NOT NULL," + " CONSTRAINT ARCHIVE_ROUTE_PK PRIMARY KEY(STORAGE_CLASS_ID, COPY_NB)," + " CONSTRAINT ARCHIVE_ROUTE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID)," + " CONSTRAINT ARCHIVE_ROUTE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_ID) REFERENCES TAPE_POOL(TAPE_POOL_ID)," + " CONSTRAINT ARCHIVE_ROUTE_COPY_NB_GT_0_CK CHECK(COPY_NB > 0)," + " CONSTRAINT ARCHIVE_ROUTE_SCI_TPI_UN UNIQUE(STORAGE_CLASS_ID, TAPE_POOL_ID)" + ");" + "CREATE TABLE MEDIA_TYPE(" + " MEDIA_TYPE_ID NUMERIC(20, 0) CONSTRAINT MEDIA_TYPE_MTI_NN NOT NULL," + " MEDIA_TYPE_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_MTN_NN NOT NULL," + " CARTRIDGE VARCHAR(100) CONSTRAINT MEDIA_TYPE_C_NN NOT NULL," + " CAPACITY_IN_BYTES NUMERIC(20, 0) CONSTRAINT MEDIA_TYPE_CIB_NN NOT NULL," + " PRIMARY_DENSITY_CODE NUMERIC(3, 0)," + " SECONDARY_DENSITY_CODE NUMERIC(3, 0)," + " NB_WRAPS NUMERIC(10, 0)," + " MIN_LPOS NUMERIC(20, 0)," + " MAX_LPOS NUMERIC(20, 0)," + " USER_COMMENT VARCHAR(1000) CONSTRAINT MEDIA_TYPE_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT MEDIA_TYPE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT MEDIA_TYPE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT MEDIA_TYPE_LUT_NN NOT NULL," + " CONSTRAINT MEDIA_TYPE_PK PRIMARY KEY(MEDIA_TYPE_ID)," + " CONSTRAINT MEDIA_TYPE_MTN_UN UNIQUE(MEDIA_TYPE_NAME)" + ");" + "CREATE TABLE LOGICAL_LIBRARY(" + " LOGICAL_LIBRARY_ID NUMERIC(20, 0) CONSTRAINT LOGICAL_LIBRARY_LLI_NN NOT NULL," + " LOGICAL_LIBRARY_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LLN_NN NOT NULL," + " IS_DISABLED CHAR(1) DEFAULT '0' CONSTRAINT LOGICAL_LIBRARY_ID_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT LOGICAL_LIBRARY_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT LOGICAL_LIBRARY_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT LOGICAL_LIBRARY_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT LOGICAL_LIBRARY_LUT_NN NOT NULL," + " CONSTRAINT LOGICAL_LIBRARY_PK PRIMARY KEY(LOGICAL_LIBRARY_ID)," + " CONSTRAINT LOGICAL_LIBRARY_LLN_UN UNIQUE(LOGICAL_LIBRARY_NAME)," + " CONSTRAINT LOGICAL_LIBRARY_ID_BOOL_CK CHECK(IS_DISABLED IN ('0', '1'))" + ");" + "CREATE TABLE TAPE(" + " VID VARCHAR(100) CONSTRAINT TAPE_V_NN NOT NULL," + " MEDIA_TYPE_ID NUMERIC(20, 0) CONSTRAINT TAPE_MTID_NN NOT NULL," + " VENDOR VARCHAR(100) CONSTRAINT TAPE_V2_NN NOT NULL," + " LOGICAL_LIBRARY_ID NUMERIC(20, 0) CONSTRAINT TAPE_LLI_NN NOT NULL," + " TAPE_POOL_ID NUMERIC(20, 0) CONSTRAINT TAPE_TPI_NN NOT NULL," + " ENCRYPTION_KEY_NAME VARCHAR(100)," + " DATA_IN_BYTES NUMERIC(20, 0) CONSTRAINT TAPE_DIB_NN NOT NULL," + " LAST_FSEQ NUMERIC(20, 0) CONSTRAINT TAPE_LF_NN NOT NULL," + " NB_MASTER_FILES NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_NB_MASTER_FILES_NN NOT NULL," + " MASTER_DATA_IN_BYTES NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_MASTER_DATA_IN_BYTES_NN NOT NULL," + " IS_FULL CHAR(1) CONSTRAINT TAPE_IF_NN NOT NULL," + " IS_FROM_CASTOR CHAR(1) CONSTRAINT TAPE_IFC_NN NOT NULL," + " DIRTY CHAR(1) DEFAULT '1' CONSTRAINT TAPE_DIRTY_NN NOT NULL," + " NB_COPY_NB_1 NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_NB_COPY_NB_1_NN NOT NULL," + " COPY_NB_1_IN_BYTES NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_COPY_NB_1_IN_BYTES_NN NOT NULL," + " NB_COPY_NB_GT_1 NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_NB_COPY_NB_GT_1_NN NOT NULL," + " COPY_NB_GT_1_IN_BYTES NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_COPY_NB_GT_1_IN_BYTES_NN NOT NULL," + " LABEL_DRIVE VARCHAR(100)," + " LABEL_TIME NUMERIC(20, 0) ," + " LAST_READ_DRIVE VARCHAR(100)," + " LAST_READ_TIME NUMERIC(20, 0) ," + " LAST_WRITE_DRIVE VARCHAR(100)," + " LAST_WRITE_TIME NUMERIC(20, 0) ," + " READ_MOUNT_COUNT NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_RMC_NN NOT NULL," + " WRITE_MOUNT_COUNT NUMERIC(20, 0) DEFAULT 0 CONSTRAINT TAPE_WMC_NN NOT NULL," + " USER_COMMENT VARCHAR(1000)," + " TAPE_STATE VARCHAR(100) CONSTRAINT TAPE_TS_NN NOT NULL," + " STATE_REASON VARCHAR(1000)," + " STATE_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT TAPE_SUT_NN NOT NULL," + " STATE_MODIFIED_BY VARCHAR(100) CONSTRAINT TAPE_SMB_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT TAPE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT TAPE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT TAPE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT TAPE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT TAPE_LUT_NN NOT NULL," + " CONSTRAINT TAPE_PK PRIMARY KEY(VID)," + " CONSTRAINT TAPE_LOGICAL_LIBRARY_FK FOREIGN KEY(LOGICAL_LIBRARY_ID) REFERENCES LOGICAL_LIBRARY(LOGICAL_LIBRARY_ID)," + " CONSTRAINT TAPE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_ID) REFERENCES TAPE_POOL(TAPE_POOL_ID)," + " CONSTRAINT TAPE_IS_FULL_BOOL_CK CHECK(IS_FULL IN ('0', '1'))," + " CONSTRAINT TAPE_IS_FROM_CASTOR_BOOL_CK CHECK(IS_FROM_CASTOR IN ('0', '1'))," + " CONSTRAINT TAPE_DIRTY_BOOL_CK CHECK(DIRTY IN ('0','1'))," + " CONSTRAINT TAPE_STATE_CK CHECK(TAPE_STATE IN ('ACTIVE', 'DISABLED', 'BROKEN'))," + " CONSTRAINT TAPE_MEDIA_TYPE_FK FOREIGN KEY(MEDIA_TYPE_ID) REFERENCES MEDIA_TYPE(MEDIA_TYPE_ID)" + ");" + "CREATE INDEX TAPE_TAPE_POOL_ID_IDX ON TAPE(TAPE_POOL_ID);" + "CREATE INDEX TAPE_STATE_IDX ON TAPE(TAPE_STATE);" + "CREATE TABLE MOUNT_POLICY(" + " MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_MPN_NN NOT NULL," + " ARCHIVE_PRIORITY NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_AP_NN NOT NULL," + " ARCHIVE_MIN_REQUEST_AGE NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL," + " RETRIEVE_PRIORITY NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_RP_NN NOT NULL," + " RETRIEVE_MIN_REQUEST_AGE NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT MOUNT_POLICY_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT MOUNT_POLICY_LUT_NN NOT NULL," + " CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME)" + ");" + "CREATE TABLE REQUESTER_MOUNT_RULE(" + " DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_DIN_NN NOT NULL," + " REQUESTER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_RN_NN NOT NULL," + " MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_MPN_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT RQSTER_RULE_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT RQSTER_RULE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_RULE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT RQSTER_RULE_LUT_NN NOT NULL," + " CONSTRAINT RQSTER_RULE_PK PRIMARY KEY(DISK_INSTANCE_NAME, REQUESTER_NAME)," + " CONSTRAINT RQSTER_RULE_MNT_PLC_FK FOREIGN KEY(MOUNT_POLICY_NAME)" + " REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME)" + ");" + "CREATE TABLE REQUESTER_GROUP_MOUNT_RULE(" + " DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_DIN_NN NOT NULL," + " REQUESTER_GROUP_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_RGN_NN NOT NULL," + " MOUNT_POLICY_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_MPN_NN NOT NULL," + " USER_COMMENT VARCHAR(1000) CONSTRAINT RQSTER_GRP_RULE_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT RQSTER_GRP_RULE_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT RQSTER_GRP_RULE_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT RQSTER_GRP_RULE_LUT_NN NOT NULL," + " CONSTRAINT RQSTER_GRP_RULE_PK PRIMARY KEY(DISK_INSTANCE_NAME, REQUESTER_GROUP_NAME)," + " CONSTRAINT RQSTER_GRP_RULE_MNT_PLC_FK FOREIGN KEY(MOUNT_POLICY_NAME)" + " REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME)" + ");" + "CREATE TABLE ARCHIVE_FILE(" + " ARCHIVE_FILE_ID NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_AFI_NN NOT NULL," + " DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT ARCHIVE_FILE_DIN_NN NOT NULL," + " DISK_FILE_ID VARCHAR(100) CONSTRAINT ARCHIVE_FILE_DFI_NN NOT NULL," + " DISK_FILE_UID NUMERIC(10, 0) CONSTRAINT ARCHIVE_FILE_DFUID_NN NOT NULL," + " DISK_FILE_GID NUMERIC(10, 0) CONSTRAINT ARCHIVE_FILE_DFGID_NN NOT NULL," + " SIZE_IN_BYTES NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_SIB_NN NOT NULL," + " CHECKSUM_BLOB BYTEA," + " CHECKSUM_ADLER32 NUMERIC(10, 0) CONSTRAINT ARCHIVE_FILE_CB2_NN NOT NULL," + " STORAGE_CLASS_ID NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_SCI_NN NOT NULL," + " CREATION_TIME NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_CT2_NN NOT NULL," + " RECONCILIATION_TIME NUMERIC(20, 0) CONSTRAINT ARCHIVE_FILE_RT_NN NOT NULL," + " IS_DELETED CHAR(1) DEFAULT '0' CONSTRAINT ARCHIVE_FILE_ID_NN NOT NULL," + " COLLOCATION_HINT VARCHAR(100)," + " CONSTRAINT ARCHIVE_FILE_PK PRIMARY KEY(ARCHIVE_FILE_ID)," + " CONSTRAINT ARCHIVE_FILE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID)," + " CONSTRAINT ARCHIVE_FILE_DIN_DFI_UN UNIQUE(DISK_INSTANCE_NAME, DISK_FILE_ID)," + " CONSTRAINT ARCHIVE_FILE_ID_BOOL_CK CHECK(IS_DELETED IN ('0', '1'))" + ");" + "CREATE INDEX ARCHIVE_FILE_DIN_IDX ON ARCHIVE_FILE(DISK_INSTANCE_NAME);" + "CREATE INDEX ARCHIVE_FILE_DFI_IDX ON ARCHIVE_FILE(DISK_FILE_ID);" + "CREATE TABLE TAPE_FILE(" + " VID VARCHAR(100) CONSTRAINT TAPE_FILE_V_NN NOT NULL," + " FSEQ NUMERIC(20, 0) CONSTRAINT TAPE_FILE_F_NN NOT NULL," + " BLOCK_ID NUMERIC(20, 0) CONSTRAINT TAPE_FILE_BI_NN NOT NULL," + " LOGICAL_SIZE_IN_BYTES NUMERIC(20, 0) CONSTRAINT TAPE_FILE_CSIB_NN NOT NULL," + " COPY_NB NUMERIC(3, 0) CONSTRAINT TAPE_FILE_CN_NN NOT NULL," + " CREATION_TIME NUMERIC(20, 0) CONSTRAINT TAPE_FILE_CT_NN NOT NULL," + " ARCHIVE_FILE_ID NUMERIC(20, 0) CONSTRAINT TAPE_FILE_AFI_NN NOT NULL," + " CONSTRAINT TAPE_FILE_PK PRIMARY KEY(VID, FSEQ)," + " CONSTRAINT TAPE_FILE_TAPE_FK FOREIGN KEY(VID)" + " REFERENCES TAPE(VID)," + " CONSTRAINT TAPE_FILE_ARCHIVE_FILE_FK FOREIGN KEY(ARCHIVE_FILE_ID)" + " REFERENCES ARCHIVE_FILE(ARCHIVE_FILE_ID)," + " CONSTRAINT TAPE_FILE_VID_BLOCK_ID_UN UNIQUE(VID, BLOCK_ID)," + " CONSTRAINT TAPE_FILE_COPY_NB_GT_0_CK CHECK(COPY_NB > 0)" + ");" + "CREATE INDEX TAPE_FILE_VID_IDX ON TAPE_FILE(VID);" + "CREATE INDEX TAPE_FILE_ARCHIVE_FILE_ID_IDX ON TAPE_FILE(ARCHIVE_FILE_ID);" + "CREATE TABLE ACTIVITIES_WEIGHTS (" + " DISK_INSTANCE_NAME VARCHAR(100)," + " ACTIVITY VARCHAR(100)," + " WEIGHT VARCHAR(100)," + " USER_COMMENT VARCHAR(1000) CONSTRAINT ACTIV_WEIGHTS_UC_NN NOT NULL," + " CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_CLUN_NN NOT NULL," + " CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_CLHN_NN NOT NULL," + " CREATION_LOG_TIME NUMERIC(20, 0) CONSTRAINT ACTIV_WEIGHTS_CLT_NN NOT NULL," + " LAST_UPDATE_USER_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_LUUN_NN NOT NULL," + " LAST_UPDATE_HOST_NAME VARCHAR(100) CONSTRAINT ACTIV_WEIGHTS_LUHN_NN NOT NULL," + " LAST_UPDATE_TIME NUMERIC(20, 0) CONSTRAINT ACTIV_WEIGHTS_LUT_NN NOT NULL" + ");" + "CREATE TABLE FILE_RECYCLE_LOG(" + " FILE_RECYCLE_LOG_ID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_ID_NN NOT NULL," + " VID VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_VID_NN NOT NULL," + " FSEQ NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_FSEQ_NN NOT NULL," + " BLOCK_ID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_BID_NN NOT NULL," + " COPY_NB NUMERIC(3, 0) CONSTRAINT FILE_RECYCLE_LOG_COPY_NB_NN NOT NULL," + " TAPE_FILE_CREATION_TIME NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_TFCT_NN NOT NULL," + " ARCHIVE_FILE_ID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_AFI_NN NOT NULL," + " DISK_INSTANCE_NAME VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DIN_NN NOT NULL," + " DISK_FILE_ID VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DFI_NN NOT NULL," + " DISK_FILE_ID_WHEN_DELETED VARCHAR(100) CONSTRAINT FILE_RECYCLE_LOG_DFIWD_NN NOT NULL," + " DISK_FILE_UID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_DFU_NN NOT NULL," + " DISK_FILE_GID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_DFG_NN NOT NULL," + " SIZE_IN_BYTES NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_SIB_NN NOT NULL," + " CHECKSUM_BLOB BYTEA," + " CHECKSUM_ADLER32 NUMERIC(10, 0) CONSTRAINT FILE_RECYCLE_LOG_CA_NN NOT NULL," + " STORAGE_CLASS_ID NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_SCI_NN NOT NULL," + " ARCHIVE_FILE_CREATION_TIME NUMERIC(20, 0) CONSTRAINT FILE_RECYLE_LOG_CT_NN NOT NULL," + " RECONCILIATION_TIME NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_RT_NN NOT NULL," + " COLLOCATION_HINT VARCHAR(100)," + " DISK_FILE_PATH VARCHAR(2000)," + " REASON_LOG VARCHAR(1000) CONSTRAINT FILE_RECYCLE_LOG_RL_NN NOT NULL," + " RECYCLE_LOG_TIME NUMERIC(20, 0) CONSTRAINT FILE_RECYCLE_LOG_RLT_NN NOT NULL," + " CONSTRAINT FILE_RECYCLE_LOG_PK PRIMARY KEY(FILE_RECYCLE_LOG_ID)," + " CONSTRAINT FILE_RECYCLE_LOG_VID_FK FOREIGN KEY(VID) REFERENCES TAPE(VID)," + " CONSTRAINT FILE_RECYCLE_LOG_SC_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID)" + ");" + "CREATE INDEX FILE_RECYCLE_LOG_DFI_IDX ON FILE_RECYCLE_LOG(DISK_FILE_ID);" + "" + "CREATE TABLE DRIVE_CONFIG (" + " DRIVE_NAME VARCHAR(100) CONSTRAINT DRIVE_CONFIG_DN_NN NOT NULL," + " CATEGORY VARCHAR(100) CONSTRAINT DRIVE_CONFIG_C_NN NOT NULL," + " KEY_NAME VARCHAR(100) CONSTRAINT DRIVE_CONFIG_KN_NN NOT NULL," + " VALUE VARCHAR(1000) CONSTRAINT DRIVE_CONFIG_V_NN NOT NULL," + " SOURCE VARCHAR(100) CONSTRAINT DRIVE_CONFIG_S_NN NOT NULL," + " CONSTRAINT DRIVE_CONFIG_DN_PK PRIMARY KEY(KEY_NAME, DRIVE_NAME)" + ");" + "" + "CREATE TABLE TAPE_DRIVE (" + " DRIVE_NAME VARCHAR(100) CONSTRAINT DRIVE_STATE_DN_NN NOT NULL," + " HOST VARCHAR(100) CONSTRAINT DRIVE_STATE_H_NN NOT NULL," + " LOGICAL_LIBRARY VARCHAR(100) CONSTRAINT DRIVE_STATE_LL_NN NOT NULL," + " SESSION_ID NUMERIC(20, 0)," + " BYTES_TRANSFERED_IN_SESSION NUMERIC(20, 0)," + " FILES_TRANSFERED_IN_SESSION NUMERIC(20, 0)," + " LATEST_BANDWIDTH VARCHAR(100)," + " SESSION_START_TIME NUMERIC(20, 0)," + " MOUNT_START_TIME NUMERIC(20, 0)," + " TRANSFER_START_TIME NUMERIC(20, 0)," + " UNLOAD_START_TIME NUMERIC(20, 0)," + " UNMOUNT_START_TIME NUMERIC(20, 0)," + " DRAINING_START_TIME NUMERIC(20, 0)," + " DOWN_OR_UP_START_TIME NUMERIC(20, 0)," + " PROBE_START_TIME NUMERIC(20, 0)," + " CLEANUP_START_TIME NUMERIC(20, 0)," + " START_START_TIME NUMERIC(20, 0)," + " SHUTDOWN_TIME NUMERIC(20, 0)," + " MOUNT_TYPE NUMERIC(10, 0) CONSTRAINT DRIVE_STATE_MT_NN NOT NULL," + " DRIVE_STATUS VARCHAR(100) DEFAULT 'UNKNOWN' CONSTRAINT DRIVE_STATE_DS_NN NOT NULL," + " DESIRED_UP CHAR(1) DEFAULT '0' CONSTRAINT DRIVE_STATE_DU_NN NOT NULL," + " DESIRED_FORCE_DOWN CHAR(1) DEFAULT '0' CONSTRAINT DRIVE_STATE_DFD_NN NOT NULL," + " REASON_UP_DOWN VARCHAR(1000)," + " CURRENT_VID VARCHAR(100)," + " CTA_VERSION VARCHAR(100)," + " CURRENT_PRIORITY NUMERIC(20, 0)," + " CURRENT_ACTIVITY VARCHAR(100)," + " CURRENT_ACTIVITY_WEIGHT VARCHAR(100)," + " CURRENT_TAPE_POOL VARCHAR(100)," + " NEXT_MOUNT_TYPE NUMERIC(10, 0)," + " NEXT_VID VARCHAR(100)," + " NEXT_TAPE_POOL VARCHAR(100)," + " NEXT_PRIORITY NUMERIC(20, 0)," + " NEXT_ACTIVITY VARCHAR(100)," + " NEXT_ACTIVITY_WEIGHT VARCHAR(100)," + " DEV_FILE_NAME VARCHAR(100)," + " RAW_LIBRARY_SLOT VARCHAR(100)," + " CURRENT_VO VARCHAR(100)," + " NEXT_VO VARCHAR(100)," + " USER_COMMENT VARCHAR(1000)," + " CREATION_LOG_USER_NAME VARCHAR(100)," + " CREATION_LOG_HOST_NAME VARCHAR(100)," + " CREATION_LOG_TIME NUMERIC(20, 0)," + " LAST_UPDATE_USER_NAME VARCHAR(100)," + " LAST_UPDATE_HOST_NAME VARCHAR(100)," + " LAST_UPDATE_TIME NUMERIC(20, 0)," + " DISK_SYSTEM_NAME VARCHAR(100) CONSTRAINT DRIVE_STATE_DSN_NN NOT NULL," + " RESERVED_BYTES NUMERIC(20, 0) CONSTRAINT DRIVE_STATE_RB_NN NOT NULL," + " CONSTRAINT DRIVE_STATE_DN_PK PRIMARY KEY(DRIVE_NAME)," + " CONSTRAINT DRIVE_STATE_DU_BOOL_CK CHECK(DESIRED_UP IN ('0', '1'))," + " CONSTRAINT DRIVE_STATE_DFD_BOOL_CK CHECK(DESIRED_FORCE_DOWN IN ('0', '1'))," + " CONSTRAINT DRIVE_STATE_DS_STRING_CK CHECK(DRIVE_STATUS IN ('DOWN', 'UP', 'PROBING', 'STARTING'," + " 'MOUNTING', 'TRANSFERING', 'UNLOADING', 'UNMOUNTING', 'DRAININGTODISK', 'CLEANINGUP', 'SHUTDOWN'," + " 'UNKNOWN'))" + ");" + "INSERT INTO CTA_CATALOGUE(" + " SCHEMA_VERSION_MAJOR," + " SCHEMA_VERSION_MINOR," + " STATUS)" + "VALUES(" + " 4," + " 2," + " 'PRODUCTION');" + "ALTER TABLE ARCHIVE_FILE DROP CONSTRAINT" + " ARCHIVE_FILE_DIN_DFI_UN;" + "ALTER TABLE ARCHIVE_FILE ADD CONSTRAINT" + " ARCHIVE_FILE_DIN_DFI_UN UNIQUE(DISK_INSTANCE_NAME, DISK_FILE_ID) DEFERRABLE INITIALLY IMMEDIATE;" + "ALTER TABLE CTA_CATALOGUE ADD CONSTRAINT" + " CATALOGUE_STATUS_CONTENT_CK CHECK((NEXT_SCHEMA_VERSION_MAJOR IS NULL AND NEXT_SCHEMA_VERSION_MINOR IS NULL AND STATUS='PRODUCTION') OR (STATUS='UPGRADING'));" + }, + } }, }; }} diff --git a/catalogue/Catalogue.hpp b/catalogue/Catalogue.hpp index 60b813fdc9674eebc07e005939983ea9b71d6b12..1974c7680e4fd27f0a799faad324e47bea9478a0 100644 --- a/catalogue/Catalogue.hpp +++ b/catalogue/Catalogue.hpp @@ -332,7 +332,15 @@ public: * @param writeMaxDrives the new max number of allocated drives for write for the specified Virtual Organization */ virtual void modifyVirtualOrganizationWriteMaxDrives(const common::dataStructures::SecurityIdentity &admin, const std::string &voName, const uint64_t writeMaxDrives) = 0; - + + /** + * Modifies the max size of files for the specified Virtual Organization + * + * @param voName the VO name + * @param maxFileSize the new max file size for the specified Virtual Organization + */ + virtual void modifyVirtualOrganizationMaxFileSize(const common::dataStructures::SecurityIdentity &admin, const std::string &voName, const uint64_t maxFileSize) = 0; + /** * Modifies the comment of the specified Virtual Organization * @@ -359,6 +367,8 @@ public: virtual void deleteStorageClass(const std::string &storageClassName) = 0; virtual std::list<common::dataStructures::StorageClass> getStorageClasses() const = 0; + virtual common::dataStructures::StorageClass getStorageClass(const std::string &name) const = 0; + virtual void modifyStorageClassNbCopies(const common::dataStructures::SecurityIdentity &admin, const std::string &name, const uint64_t nbCopies) = 0; virtual void modifyStorageClassComment(const common::dataStructures::SecurityIdentity &admin, const std::string &name, const std::string &comment) = 0; virtual void modifyStorageClassVo(const common::dataStructures::SecurityIdentity &admin, const std::string &name, const std::string &vo) = 0; diff --git a/catalogue/CatalogueRetryWrapper.hpp b/catalogue/CatalogueRetryWrapper.hpp index efa9e0f2bb02cff8f34bc57ae8edb404ef8e2454..624924a6efaeb372794a7d11428b86419adfab26 100644 --- a/catalogue/CatalogueRetryWrapper.hpp +++ b/catalogue/CatalogueRetryWrapper.hpp @@ -147,6 +147,9 @@ public: return retryOnLostConnection(m_log, [&]{return m_catalogue->modifyVirtualOrganizationWriteMaxDrives(admin,voName,writeMaxDrives);}, m_maxTriesToConnect); } + void modifyVirtualOrganizationMaxFileSize(const common::dataStructures::SecurityIdentity &admin, const std::string &voName, const uint64_t maxFileSize) override { + return retryOnLostConnection(m_log, [&]{return m_catalogue->modifyVirtualOrganizationMaxFileSize(admin,voName,maxFileSize);}, m_maxTriesToConnect); + } void modifyVirtualOrganizationComment(const common::dataStructures::SecurityIdentity &admin, const std::string &voName, const std::string &comment) override { @@ -165,6 +168,10 @@ public: return retryOnLostConnection(m_log, [&]{return m_catalogue->getStorageClasses();}, m_maxTriesToConnect); } + common::dataStructures::StorageClass getStorageClass(const std::string &name) const override { + return retryOnLostConnection(m_log, [&]{return m_catalogue->getStorageClass(name);}, m_maxTriesToConnect); + } + void modifyStorageClassNbCopies(const common::dataStructures::SecurityIdentity &admin, const std::string &name, const uint64_t nbCopies) override { return retryOnLostConnection(m_log, [&]{return m_catalogue->modifyStorageClassNbCopies(admin, name, nbCopies);}, m_maxTriesToConnect); } diff --git a/catalogue/CatalogueTest.cpp b/catalogue/CatalogueTest.cpp index c21f770b83bb79adf848b84be8f5a9edbe8995e4..d49f7acdd391ac4b0a3b3385b7700298b8850914 100644 --- a/catalogue/CatalogueTest.cpp +++ b/catalogue/CatalogueTest.cpp @@ -77,6 +77,7 @@ namespace { vo.comment = "Creation of virtual organization vo"; vo.readMaxDrives = 1; vo.writeMaxDrives = 1; + vo.maxFileSize = 0; return vo; } @@ -88,6 +89,7 @@ namespace { vo.comment = "Creation of another virtual organization vo"; vo.readMaxDrives = 1; vo.writeMaxDrives = 1; + vo.maxFileSize = 0; return vo; } @@ -15134,6 +15136,24 @@ TEST_P(cta_catalogue_CatalogueTest, modifyVirtualOrganizationWriteMaxDrives) { ASSERT_THROW(m_catalogue->modifyVirtualOrganizationWriteMaxDrives(m_admin,"DOES not exists",writeMaxDrives),cta::exception::UserError); } +TEST_P(cta_catalogue_CatalogueTest, modifyVirtualOrganizationMaxFileSize) { + using namespace cta; + + common::dataStructures::VirtualOrganization vo = getVo(); + + ASSERT_NO_THROW(m_catalogue->createVirtualOrganization(m_admin,vo)); + + uint64_t maxFileSize = 1; + ASSERT_NO_THROW(m_catalogue->modifyVirtualOrganizationMaxFileSize(m_admin,vo.name,maxFileSize)); + + auto vos = m_catalogue->getVirtualOrganizations(); + auto &frontVo = vos.front(); + + ASSERT_EQ(maxFileSize,frontVo.maxFileSize); + + ASSERT_THROW(m_catalogue->modifyVirtualOrganizationMaxFileSize(m_admin,"DOES not exists", maxFileSize),cta::exception::UserError); +} + TEST_P(cta_catalogue_CatalogueTest, getVirtualOrganizationOfTapepool) { using namespace cta; diff --git a/catalogue/DummyCatalogue.hpp b/catalogue/DummyCatalogue.hpp index a0082a00c05f3eca5d9fbb4cd4cf7fb43db53865..7dbd44f508809c67d996f590c91d77b1af058aa8 100644 --- a/catalogue/DummyCatalogue.hpp +++ b/catalogue/DummyCatalogue.hpp @@ -93,6 +93,7 @@ public: std::list<common::dataStructures::RequesterGroupMountRule> getRequesterGroupMountRules() const { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } std::list<common::dataStructures::RequesterMountRule> getRequesterMountRules() const { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } std::list<common::dataStructures::StorageClass> getStorageClasses() const { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } + common::dataStructures::StorageClass getStorageClass(const std::string &name) const { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } common::dataStructures::ArchiveFileSummary getTapeFileSummary(const TapeFileSearchCriteria& searchCriteria) const { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } void deleteTapeFileCopy(const std::string &vid, const uint64_t archiveFileId, const std::string &reason) override {throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented");} void deleteTapeFileCopy(const std::string &vid, const std::string &diskFileId, const std::string &diskInstanceName, const std::string &reason) override {throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented");} @@ -113,6 +114,7 @@ public: void modifyVirtualOrganizationName(const common::dataStructures::SecurityIdentity &admin, const std::string ¤tVoName, const std::string &newVoName) override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } void modifyVirtualOrganizationReadMaxDrives(const common::dataStructures::SecurityIdentity &admin, const std::string &voName, const uint64_t readMaxDrives) override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } void modifyVirtualOrganizationWriteMaxDrives(const common::dataStructures::SecurityIdentity &admin, const std::string &voName, const uint64_t writeMaxDrives) override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } + void modifyVirtualOrganizationMaxFileSize(const common::dataStructures::SecurityIdentity &admin, const std::string &voName, const uint64_t maxFileSize) override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } void modifyVirtualOrganizationComment(const common::dataStructures::SecurityIdentity &admin, const std::string &voName, const std::string &comment) override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } void modifyArchiveRouteComment(const common::dataStructures::SecurityIdentity& admin, const std::string& storageClassName, const uint32_t copyNb, const std::string& comment) override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } void modifyArchiveRouteTapePoolName(const common::dataStructures::SecurityIdentity& admin, const std::string& storageClassName, const uint32_t copyNb, const std::string& tapePoolName) override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } diff --git a/catalogue/RdbmsCatalogue.cpp b/catalogue/RdbmsCatalogue.cpp index 0b5e51eb4b69baff50e5d121868bca1b858e315b..143a7e1a97d43f7b76ec010eade077623841faa9 100644 --- a/catalogue/RdbmsCatalogue.cpp +++ b/catalogue/RdbmsCatalogue.cpp @@ -329,6 +329,7 @@ void RdbmsCatalogue::createVirtualOrganization(const common::dataStructures::Sec "READ_MAX_DRIVES," "WRITE_MAX_DRIVES," + "MAX_FILE_SIZE," "USER_COMMENT," @@ -344,6 +345,7 @@ void RdbmsCatalogue::createVirtualOrganization(const common::dataStructures::Sec ":VIRTUAL_ORGANIZATION_NAME," ":READ_MAX_DRIVES," ":WRITE_MAX_DRIVES," + ":MAX_FILE_SIZE," ":USER_COMMENT," @@ -361,6 +363,7 @@ void RdbmsCatalogue::createVirtualOrganization(const common::dataStructures::Sec stmt.bindUint64(":READ_MAX_DRIVES",vo.readMaxDrives); stmt.bindUint64(":WRITE_MAX_DRIVES",vo.writeMaxDrives); + stmt.bindUint64(":MAX_FILE_SIZE", vo.maxFileSize); stmt.bindString(":USER_COMMENT", vo.comment); @@ -436,6 +439,7 @@ std::list<common::dataStructures::VirtualOrganization> RdbmsCatalogue::getVirtua "READ_MAX_DRIVES AS READ_MAX_DRIVES," "WRITE_MAX_DRIVES AS WRITE_MAX_DRIVES," + "MAX_FILE_SIZE AS MAX_FILE_SIZE," "USER_COMMENT AS USER_COMMENT," @@ -460,6 +464,7 @@ std::list<common::dataStructures::VirtualOrganization> RdbmsCatalogue::getVirtua virtualOrganization.readMaxDrives = rset.columnUint64("READ_MAX_DRIVES"); virtualOrganization.writeMaxDrives = rset.columnUint64("WRITE_MAX_DRIVES"); + virtualOrganization.maxFileSize = rset.columnUint64("MAX_FILE_SIZE"); virtualOrganization.comment = rset.columnString("USER_COMMENT"); virtualOrganization.creationLog.username = rset.columnString("CREATION_LOG_USER_NAME"); virtualOrganization.creationLog.host = rset.columnString("CREATION_LOG_HOST_NAME"); @@ -506,7 +511,8 @@ common::dataStructures::VirtualOrganization RdbmsCatalogue::getVirtualOrganizati "VIRTUAL_ORGANIZATION.READ_MAX_DRIVES AS READ_MAX_DRIVES," "VIRTUAL_ORGANIZATION.WRITE_MAX_DRIVES AS WRITE_MAX_DRIVES," - + "VIRTUAL_ORGANIZATION.MAX_FILE_SIZE AS MAX_FILE_SIZE," + "VIRTUAL_ORGANIZATION.USER_COMMENT AS USER_COMMENT," "VIRTUAL_ORGANIZATION.CREATION_LOG_USER_NAME AS CREATION_LOG_USER_NAME," @@ -535,6 +541,7 @@ common::dataStructures::VirtualOrganization RdbmsCatalogue::getVirtualOrganizati virtualOrganization.name = rset.columnString("VIRTUAL_ORGANIZATION_NAME"); virtualOrganization.readMaxDrives = rset.columnUint64("READ_MAX_DRIVES"); virtualOrganization.writeMaxDrives = rset.columnUint64("WRITE_MAX_DRIVES"); + virtualOrganization.maxFileSize = rset.columnUint64("MAX_FILE_SIZE"); virtualOrganization.comment = rset.columnString("USER_COMMENT"); virtualOrganization.creationLog.username = rset.columnString("CREATION_LOG_USER_NAME"); virtualOrganization.creationLog.host = rset.columnString("CREATION_LOG_HOST_NAME"); @@ -686,6 +693,42 @@ void RdbmsCatalogue::modifyVirtualOrganizationWriteMaxDrives(const common::dataS } } +void RdbmsCatalogue::modifyVirtualOrganizationMaxFileSize(const common::dataStructures::SecurityIdentity &admin, const std::string &voName, const uint64_t maxFileSize){ + try { + const time_t now = time(nullptr); + const char *const sql = + "UPDATE VIRTUAL_ORGANIZATION SET " + "MAX_FILE_SIZE = :MAX_FILE_SIZE," + "LAST_UPDATE_USER_NAME = :LAST_UPDATE_USER_NAME," + "LAST_UPDATE_HOST_NAME = :LAST_UPDATE_HOST_NAME," + "LAST_UPDATE_TIME = :LAST_UPDATE_TIME " + "WHERE " + "VIRTUAL_ORGANIZATION_NAME = :VIRTUAL_ORGANIZATION_NAME"; + auto conn = m_connPool.getConn(); + + auto stmt = conn.createStmt(sql); + stmt.bindUint64(":MAX_FILE_SIZE", maxFileSize); + stmt.bindString(":LAST_UPDATE_USER_NAME", admin.username); + stmt.bindString(":LAST_UPDATE_HOST_NAME", admin.host); + stmt.bindUint64(":LAST_UPDATE_TIME", now); + stmt.bindString(":VIRTUAL_ORGANIZATION_NAME", voName); + stmt.executeNonQuery(); + + if(0 == stmt.getNbAffectedRows()) { + throw exception::UserError(std::string("Cannot modify virtual organization : ") + voName + + " because it does not exist"); + } + + m_tapepoolVirtualOrganizationCache.invalidate(); + + } catch(exception::UserError &) { + throw; + } catch(exception::Exception &ex) { + ex.getMessage().str(std::string(__FUNCTION__) + ": " + ex.getMessage().str()); + throw; + } +} + void RdbmsCatalogue::modifyVirtualOrganizationComment(const common::dataStructures::SecurityIdentity& admin, const std::string& voName, const std::string& comment) { try { const time_t now = time(nullptr); @@ -1104,6 +1147,65 @@ std::list<common::dataStructures::StorageClass> RdbmsCatalogue::getStorageClasse } } +//------------------------------------------------------------------------------ +// getStorageClasses +//------------------------------------------------------------------------------ +common::dataStructures::StorageClass RdbmsCatalogue::getStorageClass(const std::string &name) const { + try { + const char *const sql = + "SELECT " + "STORAGE_CLASS_NAME AS STORAGE_CLASS_NAME," + "NB_COPIES AS NB_COPIES," + "VIRTUAL_ORGANIZATION.VIRTUAL_ORGANIZATION_NAME AS VIRTUAL_ORGANIZATION_NAME," + "VIRTUAL_ORGANIZATION.MAX_FILE_SIZE AS MAX_FILE_SIZE," + "STORAGE_CLASS.USER_COMMENT AS USER_COMMENT," + + "STORAGE_CLASS.CREATION_LOG_USER_NAME AS CREATION_LOG_USER_NAME," + "STORAGE_CLASS.CREATION_LOG_HOST_NAME AS CREATION_LOG_HOST_NAME," + "STORAGE_CLASS.CREATION_LOG_TIME AS CREATION_LOG_TIME," + + "STORAGE_CLASS.LAST_UPDATE_USER_NAME AS LAST_UPDATE_USER_NAME," + "STORAGE_CLASS.LAST_UPDATE_HOST_NAME AS LAST_UPDATE_HOST_NAME," + "STORAGE_CLASS.LAST_UPDATE_TIME AS LAST_UPDATE_TIME " + "FROM " + "STORAGE_CLASS " + "INNER JOIN " + "VIRTUAL_ORGANIZATION ON STORAGE_CLASS.VIRTUAL_ORGANIZATION_ID = VIRTUAL_ORGANIZATION.VIRTUAL_ORGANIZATION_ID " + "WHERE " + "STORAGE_CLASS_NAME = :STORAGE_CLASS_NAME"; + auto conn = m_connPool.getConn(); + auto stmt = conn.createStmt(sql); + stmt.bindString(":STORAGE_CLASS_NAME", name); + auto rset = stmt.executeQuery(); + if (rset.isEmpty()) { + throw exception::UserError(std::string("Cannot get storage class : ") + name + + " because it does not exist"); + } + rset.next(); + common::dataStructures::StorageClass storageClass; + + storageClass.name = rset.columnString("STORAGE_CLASS_NAME"); + storageClass.nbCopies = rset.columnUint64("NB_COPIES"); + storageClass.vo.name = rset.columnString("VIRTUAL_ORGANIZATION_NAME"); + storageClass.vo.maxFileSize = rset.columnUint64("MAX_FILE_SIZE"); + storageClass.comment = rset.columnString("USER_COMMENT"); + storageClass.creationLog.username = rset.columnString("CREATION_LOG_USER_NAME"); + storageClass.creationLog.host = rset.columnString("CREATION_LOG_HOST_NAME"); + storageClass.creationLog.time = rset.columnUint64("CREATION_LOG_TIME"); + storageClass.lastModificationLog.username = rset.columnString("LAST_UPDATE_USER_NAME"); + storageClass.lastModificationLog.host = rset.columnString("LAST_UPDATE_HOST_NAME"); + storageClass.lastModificationLog.time = rset.columnUint64("LAST_UPDATE_TIME"); + + return storageClass; + } catch(exception::UserError &) { + throw; + } catch(exception::Exception &ex) { + ex.getMessage().str(std::string(__FUNCTION__) + ": " + ex.getMessage().str()); + throw; + } +} + + //------------------------------------------------------------------------------ // modifyStorageClassNbCopies //------------------------------------------------------------------------------ diff --git a/catalogue/RdbmsCatalogue.hpp b/catalogue/RdbmsCatalogue.hpp index 2a72b58c91fa0865017f1e12424a7e6a7eaa0428..4ba2765f0e4b97908eed4d2284c0b6a8eb184cd1 100644 --- a/catalogue/RdbmsCatalogue.hpp +++ b/catalogue/RdbmsCatalogue.hpp @@ -282,6 +282,15 @@ public: * @param writeMaxDrives the new max number of allocated drives for write for the specified Virtual Organization */ void modifyVirtualOrganizationWriteMaxDrives(const common::dataStructures::SecurityIdentity &admin, const std::string &voName, const uint64_t writeMaxDrives) override; + + /** + * Modifies the max file size for the specified Virtual Organization + * + * @param voName the VO name + * @param maxFileSize the new max file size for the specified Virtual Organization + */ + + void modifyVirtualOrganizationMaxFileSize(const common::dataStructures::SecurityIdentity &admin, const std::string &voName, const uint64_t maxFileSize) override; /** * Modifies the comment of the specified Virtual Organization * @@ -309,6 +318,9 @@ public: void deleteStorageClass(const std::string &storageClassName) override; std::list<common::dataStructures::StorageClass> getStorageClasses() const override; + common::dataStructures::StorageClass getStorageClass(const std::string &name) const override; + + void modifyStorageClassNbCopies(const common::dataStructures::SecurityIdentity &admin, const std::string &name, const uint64_t nbCopies) override; void modifyStorageClassComment(const common::dataStructures::SecurityIdentity &admin, const std::string &name, const std::string &comment) override; void modifyStorageClassVo(const common::dataStructures::SecurityIdentity &admin, const std::string &name, const std::string &vo) override; diff --git a/catalogue/common_catalogue_schema.sql b/catalogue/common_catalogue_schema.sql index b0fbdc2adf7871cafde16894227fea24d5ef5509..6443c3d985300e96108769cd732e416c9aa2b35c 100644 --- a/catalogue/common_catalogue_schema.sql +++ b/catalogue/common_catalogue_schema.sql @@ -39,6 +39,7 @@ CREATE TABLE VIRTUAL_ORGANIZATION( VIRTUAL_ORGANIZATION_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_VON_NN NOT NULL, READ_MAX_DRIVES UINT64TYPE CONSTRAINT VIRTUAL_ORGANIZATION_RMD_NN NOT NULL, WRITE_MAX_DRIVES UINT64TYPE CONSTRAINT VIRTUAL_ORGANIZATION_WMD_NN NOT NULL, + MAX_FILE_SIZE UINT64TYPE CONSTRAINT VIRTUAL_ORGANIZATION_MFS_NN NOT NULL, USER_COMMENT VARCHAR(1000) CONSTRAINT VIRTUAL_ORGANIZATION_UC_NN NOT NULL, CREATION_LOG_USER_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLUN_NN NOT NULL, CREATION_LOG_HOST_NAME VARCHAR(100) CONSTRAINT VIRTUAL_ORGANIZATION_CLHN_NN NOT NULL, diff --git a/catalogue/migrations/liquibase/oracle/4.1to4.2.sql b/catalogue/migrations/liquibase/oracle/4.1to4.2.sql new file mode 100644 index 0000000000000000000000000000000000000000..e76b7c4c018561a166f707884a2f5dd8d279d613 --- /dev/null +++ b/catalogue/migrations/liquibase/oracle/4.1to4.2.sql @@ -0,0 +1,33 @@ +--liquibase formatted sql + +--changeset mvelosob:1 failOnError:true dbms:oracle +--preconditions onFail:HALT onError:HALT +--precondition-sql-check expectedResult:"4.1" SELECT CONCAT(CONCAT(CAST(SCHEMA_VERSION_MAJOR as VARCHAR(10)),'.'), CAST(SCHEMA_VERSION_MINOR AS VARCHAR(10))) AS CATALOGUE_VERSION FROM CTA_CATALOGUE; +UPDATE CTA_CATALOGUE SET STATUS='UPGRADING'; +UPDATE CTA_CATALOGUE SET NEXT_SCHEMA_VERSION_MAJOR=4; +UPDATE CTA_CATALOGUE SET NEXT_SCHEMA_VERSION_MINOR=2; +--rollback UPDATE CTA_CATALOGUE SET NEXT_SCHEMA_VERSION_MAJOR=NULL; +--rollback UPDATE CTA_CATALOGUE SET NEXT_SCHEMA_VERSION_MINOR=NULL; +--rollback UPDATE CTA_CATALOGUE SET STATUS='PRODUCTION'; + +--changeset mvelosob:2 failOnError:true dbms:oracle +--preconditions onFail:HALT onError:HALT +--precondition-sql-check expectedResult:"4.1" SELECT CONCAT(CONCAT(CAST(SCHEMA_VERSION_MAJOR as VARCHAR(10)),'.'), CAST(SCHEMA_VERSION_MINOR AS VARCHAR(10))) AS CATALOGUE_VERSION FROM CTA_CATALOGUE; +ALTER TABLE VIRTUAL_ORGANIZATION ADD (MAX_FILE_SIZE NUMERIC(20, 0)); +UPDATE VIRTUAL_ORGANIZATION SET MAX_FILE_SIZE=128849018880; +ALTER TABLE VIRTUAL_ORGANIZATION MODIFY MAX_FILE_SIZE CONSTRAINT VIRTUAL_ORGANIZATION_MFS_NN NOT NULL; +--rollback ALTER TABLE VIRTUAL_ORGANIZATION DROP COLUMN MAX_FILE_SIZE + +--changeset mvelosob:3 failOnError:true dbms:oracle +--preconditions onFail:HALT onError:HALT +--precondition-sql-check expectedResult:"4.1" SELECT CONCAT(CONCAT(CAST(SCHEMA_VERSION_MAJOR as VARCHAR(10)),'.'), CAST(SCHEMA_VERSION_MINOR AS VARCHAR(10))) AS CATALOGUE_VERSION FROM CTA_CATALOGUE; +UPDATE CTA_CATALOGUE SET STATUS='PRODUCTION'; +UPDATE CTA_CATALOGUE SET SCHEMA_VERSION_MAJOR=4; +UPDATE CTA_CATALOGUE SET SCHEMA_VERSION_MINOR=2; +UPDATE CTA_CATALOGUE SET NEXT_SCHEMA_VERSION_MAJOR=NULL; +UPDATE CTA_CATALOGUE SET NEXT_SCHEMA_VERSION_MINOR=NULL; +--rollback UPDATE CTA_CATALOGUE SET STATUS='UPGRADING'; +--rollback UPDATE CTA_CATALOGUE SET SCHEMA_VERSION_MAJOR=4; +--rollback UPDATE CTA_CATALOGUE SET SCHEMA_VERSION_MINOR=1; +--rollback UPDATE CTA_CATALOGUE SET NEXT_SCHEMA_VERSION_MAJOR=4; +--rollback UPDATE CTA_CATALOGUE SET NEXT_SCHEMA_VERSION_MINOR=2; diff --git a/cmake/CTAVersions.cmake b/cmake/CTAVersions.cmake index 13f75929eb1e51494859e76a085d3fa9c6563df4..6ee868bdcf94fff06002e94577549b6b0e632e31 100644 --- a/cmake/CTAVersions.cmake +++ b/cmake/CTAVersions.cmake @@ -19,7 +19,7 @@ set(XROOTD_SSI_PROTOBUF_INTERFACE_VERSION "v0.0") # Catalogue Schema Version set(CTA_CATALOGUE_SCHEMA_VERSION_MAJOR 4) -set(CTA_CATALOGUE_SCHEMA_VERSION_MINOR 1) +set(CTA_CATALOGUE_SCHEMA_VERSION_MINOR 2) # Shared object internal version (used in SONAME) set(CTA_SOVERSION 0) diff --git a/cmdline/CtaAdminCmdParse.hpp b/cmdline/CtaAdminCmdParse.hpp index 51bb8cc7b9f9bc5182e9211f351eec4b748b529e..f385f013d114442880d32728d7d446bcff28ec02 100644 --- a/cmdline/CtaAdminCmdParse.hpp +++ b/cmdline/CtaAdminCmdParse.hpp @@ -284,6 +284,7 @@ const std::map<std::string, OptionUInt64::Key> uint64Options = { { "--capacity", OptionUInt64::CAPACITY }, { "--copynb", OptionUInt64::COPY_NUMBER }, { "--id", OptionUInt64::ARCHIVE_FILE_ID }, + {"--maxfilesize", OptionUInt64::MAX_FILE_SIZE}, { "--maxlpos", OptionUInt64::MAX_LPOS }, { "--minarchiverequestage", OptionUInt64::MIN_ARCHIVE_REQUEST_AGE }, { "--minlpos", OptionUInt64::MIN_LPOS }, @@ -414,7 +415,8 @@ const std::map<AdminCmd::Cmd, CmdHelp> cmdHelp = { " * Specify the name (--vo) of the virtual organization. It must be unique.\n" " * Specify the maximum number of drives the virtual organization is allowed to use for writing with the --writemaxdrives parameter\n" " * Specify the maximum number of drives the virtual organization is allowed to use for reading with the --readmaxdrives parameter\n" - " * Specify the comment (--comment) associated to the virtual organization" + " * Specify the comment (--comment) associated to the virtual organization\n" + " * Specify the maximum file size (--maxfilesize) associated to the virtual organization (optional, a value of 0 means no limit)" "\n\n" }}, { AdminCmd::CMD_VERSION, { "version", "v", { } }}, @@ -459,6 +461,7 @@ const Option opt_log { Option::OPT_FLAG, "--log", const Option opt_logicallibrary { Option::OPT_STR, "--logicallibrary", "-l", " <logical_library_name>" }; const Option opt_logicallibrary_alias { Option::OPT_STR, "--name", "-n", " <logical_library_name>", "--logicallibrary" }; const Option opt_lookupns { Option::OPT_FLAG, "--lookupnamespace", "-l", "" }; +const Option opt_maxfilesize { Option::OPT_UINT, "--maxfilesize", "-mfs", " <maximum_file_size>" }; const Option opt_maxlpos { Option::OPT_UINT, "--maxlpos", "-maxl", " <maximum_longitudinal_position>" }; const Option opt_mediatype { Option::OPT_STR, "--mediatype", "--mt", " <media_type_name>" }; const Option opt_mediatype_alias { Option::OPT_STR, "--name", "-n", " <media_type_name>", "--mediatype" }; @@ -620,9 +623,9 @@ const std::map<cmd_key_t, cmd_val_t> cmdOptions = { {{ AdminCmd::CMD_DISKSYSTEM, AdminCmd::SUBCMD_RM }, { opt_disksystem }}, {{ AdminCmd::CMD_DISKSYSTEM, AdminCmd::SUBCMD_LS }, { }}, {{ AdminCmd::CMD_VIRTUALORGANIZATION, AdminCmd::SUBCMD_ADD }, - { opt_vo, opt_read_max_drives, opt_write_max_drives, opt_comment }}, + { opt_vo, opt_read_max_drives, opt_write_max_drives, opt_comment, opt_maxfilesize.optional() }}, {{ AdminCmd::CMD_VIRTUALORGANIZATION, AdminCmd::SUBCMD_CH }, - { opt_vo, opt_comment.optional(), opt_read_max_drives.optional(), opt_write_max_drives.optional() }}, + { opt_vo, opt_comment.optional(), opt_read_max_drives.optional(), opt_write_max_drives.optional(), opt_maxfilesize.optional() }}, {{ AdminCmd::CMD_VIRTUALORGANIZATION, AdminCmd::SUBCMD_RM }, { opt_vo }}, {{ AdminCmd::CMD_VIRTUALORGANIZATION, AdminCmd::SUBCMD_LS }, diff --git a/cmdline/CtaAdminTextFormatter.cpp b/cmdline/CtaAdminTextFormatter.cpp index 80ca2425d7e6f369ac37f8f17944229b8a7c1124..986fac9961d1a766f56ad0700c2260ed03091f85 100644 --- a/cmdline/CtaAdminTextFormatter.cpp +++ b/cmdline/CtaAdminTextFormatter.cpp @@ -994,6 +994,7 @@ void TextFormatter::printVirtualOrganizationLsHeader(){ "name", "read max drives", "write max drives", + "max file size", "c.user", "c.host", "c.time", @@ -1009,6 +1010,7 @@ void TextFormatter::print(const VirtualOrganizationLsItem& vols_item){ vols_item.name(), vols_item.read_max_drives(), vols_item.write_max_drives(), + dataSizeToStr(vols_item.max_file_size()), vols_item.creation_log().username(), vols_item.creation_log().host(), timeToStr(vols_item.creation_log().time()), diff --git a/common/dataStructures/VirtualOrganization.hpp b/common/dataStructures/VirtualOrganization.hpp index df28140a35e7e4804d287a398351046e4576214d..a8d31b04426111b83104b64327fc2311f6b7c4cd 100644 --- a/common/dataStructures/VirtualOrganization.hpp +++ b/common/dataStructures/VirtualOrganization.hpp @@ -41,6 +41,12 @@ struct VirtualOrganization { * Max number of drives allocated for writing per VO */ uint64_t writeMaxDrives; + + /** + * Max size of files belonging to VO + */ + uint64_t maxFileSize; + /** * The creation log. */ @@ -52,7 +58,8 @@ struct VirtualOrganization { EntryLog lastModificationLog; bool operator==(const VirtualOrganization & other) const{ - return (name == other.name && comment == other.comment && readMaxDrives == other.readMaxDrives && writeMaxDrives == other.writeMaxDrives); + return (name == other.name && comment == other.comment && readMaxDrives == other.readMaxDrives && + writeMaxDrives == other.writeMaxDrives && maxFileSize == other.maxFileSize); } }; diff --git a/scheduler/SchedulerTest.cpp b/scheduler/SchedulerTest.cpp index a15c8bd7963c2ee233f88babbd857b69180b7f8c..4e886eb53d046c714e22e1aae51f36835eb2465f 100644 --- a/scheduler/SchedulerTest.cpp +++ b/scheduler/SchedulerTest.cpp @@ -212,6 +212,7 @@ public: vo.comment = "comment"; vo.writeMaxDrives = 1; vo.readMaxDrives = 1; + vo.maxFileSize = 0; m_catalogue->createVirtualOrganization(s_adminOnAdminHost,vo); common::dataStructures::StorageClass storageClass; @@ -684,6 +685,7 @@ TEST_P(SchedulerTest, archive_report_and_retrieve_new_dual_copy_file) { vo.comment = "comment"; vo.writeMaxDrives = 1; vo.readMaxDrives = 1; + vo.maxFileSize = 0; catalogue.createVirtualOrganization(s_adminOnAdminHost,vo); common::dataStructures::StorageClass storageClass; diff --git a/tapeserver/castor/tape/tapeserver/daemon/DataTransferSessionTest.cpp b/tapeserver/castor/tape/tapeserver/daemon/DataTransferSessionTest.cpp index 2ca12779e2cf9d6421a0f9dd5ff065974e873049..a51beac735af34226fd3360a730fe543e0e4c242 100644 --- a/tapeserver/castor/tape/tapeserver/daemon/DataTransferSessionTest.cpp +++ b/tapeserver/castor/tape/tapeserver/daemon/DataTransferSessionTest.cpp @@ -273,6 +273,7 @@ public: vo.name = "vo"; vo.readMaxDrives = 1; vo.writeMaxDrives = 1; + vo.maxFileSize = 0; vo.comment = "comment"; return vo; } diff --git a/tapeserver/castor/tape/tapeserver/daemon/MigrationReportPackerTest.cpp b/tapeserver/castor/tape/tapeserver/daemon/MigrationReportPackerTest.cpp index df3e47b3d6a939d6ec1b512843d33740941296e7..99829be23eb68090c12a7c2a214d7272855b558e 100644 --- a/tapeserver/castor/tape/tapeserver/daemon/MigrationReportPackerTest.cpp +++ b/tapeserver/castor/tape/tapeserver/daemon/MigrationReportPackerTest.cpp @@ -70,6 +70,7 @@ const uint32_t TEST_GROUP_2 = 9754; vo.name = "vo"; vo.readMaxDrives = 1; vo.writeMaxDrives = 1; + vo.maxFileSize = 0; vo.comment = "comment"; return vo; } diff --git a/xroot_plugins/XrdCtaVirtualOrganizationLs.hpp b/xroot_plugins/XrdCtaVirtualOrganizationLs.hpp index 8bf8e52bb97af9fba5d58e813a8fa71e5188b8ff..df59a73646c487bbd2ba3d74a3c8214af6737939 100644 --- a/xroot_plugins/XrdCtaVirtualOrganizationLs.hpp +++ b/xroot_plugins/XrdCtaVirtualOrganizationLs.hpp @@ -77,6 +77,7 @@ int VirtualOrganizationLsStream::fillBuffer(XrdSsiPb::OStreamBuffer<Data> *strea vo_item->set_name(vo.name); vo_item->set_read_max_drives(vo.readMaxDrives); vo_item->set_write_max_drives(vo.writeMaxDrives); + vo_item->set_max_file_size(vo.maxFileSize); vo_item->mutable_creation_log()->set_username(vo.creationLog.username); vo_item->mutable_creation_log()->set_host(vo.creationLog.host); vo_item->mutable_creation_log()->set_time(vo.creationLog.time); diff --git a/xroot_plugins/XrdSsiCtaRequestMessage.cpp b/xroot_plugins/XrdSsiCtaRequestMessage.cpp index 265c4a048e6bfc85c381a97407d8eb0d44ae5514..93d0918ca9ab375f91b3f32a44c406dbd0fcf22c 100644 --- a/xroot_plugins/XrdSsiCtaRequestMessage.cpp +++ b/xroot_plugins/XrdSsiCtaRequestMessage.cpp @@ -471,10 +471,12 @@ void RequestMessage::processCLOSEW(const cta::eos::Notification ¬ification, c throw PbException("File is in fail_on_closew_test storage class, which always fails."); } + auto storageClass = m_catalogue.getStorageClass(storageClassItor->second); + // Disallow archival of files above the specified limit - if(notification.file().size() > m_archiveFileMaxSize) { + if(storageClass.vo.maxFileSize && notification.file().size() > storageClass.vo.maxFileSize) { throw exception::UserError("Archive request rejected: file size (" + std::to_string(notification.file().size()) + - " bytes) exceeds maximum allowed size (" + std::to_string(m_archiveFileMaxSize) + " bytes)"); + " bytes) exceeds maximum allowed size (" + std::to_string(storageClass.vo.maxFileSize) + " bytes)"); } cta::common::dataStructures::ArchiveRequest request; @@ -2002,11 +2004,19 @@ void RequestMessage::processVirtualOrganization_Add(cta::xrd::Response &response const auto &writeMaxDrives = getRequired(OptionUInt64::WRITE_MAX_DRIVES); const auto &comment = getRequired(OptionString::COMMENT); + const auto &maxFileSizeOpt = getOptional(OptionUInt64::MAX_FILE_SIZE); + cta::common::dataStructures::VirtualOrganization vo; vo.name = name; vo.readMaxDrives = readMaxDrives; vo.writeMaxDrives = writeMaxDrives; vo.comment = comment; + + if (maxFileSizeOpt) { + vo.maxFileSize = maxFileSizeOpt.value(); + } else { + vo.maxFileSize = m_archiveFileMaxSize; + } m_catalogue.createVirtualOrganization(m_cliIdentity,vo); @@ -2020,6 +2030,7 @@ void RequestMessage::processVirtualOrganization_Ch(cta::xrd::Response &response) const auto readMaxDrives = getOptional(OptionUInt64::READ_MAX_DRIVES); const auto writeMaxDrives = getOptional(OptionUInt64::WRITE_MAX_DRIVES); const auto comment = getOptional(OptionString::COMMENT); + const auto maxFileSize = getOptional(OptionUInt64::MAX_FILE_SIZE); if(comment) m_catalogue.modifyVirtualOrganizationComment(m_cliIdentity,name,comment.value()); @@ -2030,6 +2041,9 @@ void RequestMessage::processVirtualOrganization_Ch(cta::xrd::Response &response) if(writeMaxDrives) m_catalogue.modifyVirtualOrganizationWriteMaxDrives(m_cliIdentity,name,writeMaxDrives.value()); + if(maxFileSize) + m_catalogue.modifyVirtualOrganizationMaxFileSize(m_cliIdentity,name,maxFileSize.value()); + response.set_type(cta::xrd::Response::RSP_SUCCESS); } diff --git a/xroot_plugins/XrdSsiCtaServiceProvider.cpp b/xroot_plugins/XrdSsiCtaServiceProvider.cpp index df4cc19b2cffb7033735d7b3c9a3f6ddab3c2d02..ededf3116c4f71909a09d4d909c55d66e195cf65 100644 --- a/xroot_plugins/XrdSsiCtaServiceProvider.cpp +++ b/xroot_plugins/XrdSsiCtaServiceProvider.cpp @@ -153,7 +153,7 @@ void XrdSsiCtaServiceProvider::ExceptionThrowingInit(XrdSsiLogger *logP, XrdSsiC // Initialise the Frontend auto archiveFileMaxSize = config.getOptionValueInt("cta.archivefile.max_size_gb"); - m_archiveFileMaxSize = archiveFileMaxSize.first ? archiveFileMaxSize.second : 2048; // GB + m_archiveFileMaxSize = archiveFileMaxSize.first ? archiveFileMaxSize.second : 0; // GB m_archiveFileMaxSize *= 1024*1024*1024; // bytes // Get the repack buffer URL diff --git a/xrootd-ssi-protobuf-interface b/xrootd-ssi-protobuf-interface index 3ebc433ff481ebf8fc8cfcaf8dc3dff608fceee0..533402d24924f0450924d4f07d0b8450398ab203 160000 --- a/xrootd-ssi-protobuf-interface +++ b/xrootd-ssi-protobuf-interface @@ -1 +1 @@ -Subproject commit 3ebc433ff481ebf8fc8cfcaf8dc3dff608fceee0 +Subproject commit 533402d24924f0450924d4f07d0b8450398ab203