From 31dc27d266dcaedfd682dd9c2e0139f2a788f9e4 Mon Sep 17 00:00:00 2001
From: Steven Murray <Steven.Murray@cern.ch>
Date: Wed, 27 Nov 2019 11:00:19 +0100
Subject: [PATCH] Added IS_ARCHIVED and IS_EXPORTED to the TAPE table

---
 catalogue/common_catalogue_schema.sql        | 6 +++++-
 catalogue/mysql_catalogue_schema_trigger.sql | 8 ++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/catalogue/common_catalogue_schema.sql b/catalogue/common_catalogue_schema.sql
index d5cdb26b92..62a667d007 100644
--- a/catalogue/common_catalogue_schema.sql
+++ b/catalogue/common_catalogue_schema.sql
@@ -105,6 +105,8 @@ CREATE TABLE TAPE(
   IS_FULL                 CHAR(1)         CONSTRAINT TAPE_IF_NN   NOT NULL,
   IS_READ_ONLY            CHAR(1)         CONSTRAINT TAPE_IRO_NN  NOT NULL,
   IS_FROM_CASTOR          CHAR(1)         CONSTRAINT TAPE_IFC_NN  NOT NULL,
+  IS_ARCHIVED             CHAR(1)         DEFAULT '0' CONSTRAINT TAPE_IA_NN   NOT NULL,
+  IS_EXPORTED             CHAR(1)         DEFAULT '0' CONSTRAINT TAPE_IE_NN   NOT NULL,
   LABEL_DRIVE             VARCHAR(100),
   LABEL_TIME              UINT64TYPE    ,
   LAST_READ_DRIVE         VARCHAR(100),
@@ -127,7 +129,9 @@ CREATE TABLE TAPE(
   CONSTRAINT TAPE_IS_DISABLED_BOOL_CK CHECK(IS_DISABLED IN ('0', '1')),
   CONSTRAINT TAPE_IS_FULL_BOOL_CK CHECK(IS_FULL IN ('0', '1')),
   CONSTRAINT TAPE_IS_READ_ONLY_BOOL_CK CHECK(IS_READ_ONLY IN ('0', '1')),
-  CONSTRAINT TAPE_IS_FROM_CASTOR_BOOL_CK CHECK(IS_FROM_CASTOR IN ('0', '1'))
+  CONSTRAINT TAPE_IS_FROM_CASTOR_BOOL_CK CHECK(IS_FROM_CASTOR IN ('0', '1')),
+  CONSTRAINT TAPE_IS_ARCHVIED_BOOL_CK CHECK(IS_ARCHIVED IN ('0', '1')),
+  CONSTRAINT TAPE_IS_EXPORTED_BOOL_CK CHECK(IS_EXPORTED IN ('0', '1'))
 );
 CREATE INDEX TAPE_TAPE_POOL_ID_IDX ON TAPE(TAPE_POOL_ID);
 CREATE TABLE MOUNT_POLICY(
diff --git a/catalogue/mysql_catalogue_schema_trigger.sql b/catalogue/mysql_catalogue_schema_trigger.sql
index d383d500f6..4a4fff126b 100644
--- a/catalogue/mysql_catalogue_schema_trigger.sql
+++ b/catalogue/mysql_catalogue_schema_trigger.sql
@@ -74,6 +74,14 @@ CREATE TRIGGER `CHECK_TAPE_BEFORE_UPDATE` BEFORE UPDATE ON `TAPE`
       SIGNAL SQLSTATE '45000'
       SET MESSAGE_TEXT = 'TAPE.IS_FROM_CASTOR should be 0 or 1';
     END IF;
+    IF new.IS_ARCHIVED not in ('0','1') THEN
+      SIGNAL SQLSTATE '45000'
+      SET MESSAGE_TEXT = 'TAPE.IS_ARCHIVED should be 0 or 1';
+    END IF;
+    IF new.IS_EXPORTED not in ('0','1') THEN
+      SIGNAL SQLSTATE '45000'
+      SET MESSAGE_TEXT = 'TAPE.IS_EXPORTED should be 0 or 1';
+    END IF;
   END;
 
 CREATE TRIGGER `TAPE_FILE_COPY_NB_GT_ZERO_BEFORE_INSERT` BEFORE INSERT ON `TAPE_FILE`
-- 
GitLab