From 57e6687454486b120c637739f5e4c29c1c65c94e Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Sun, 20 Jun 2021 21:10:48 +0200
Subject: [PATCH] remove rules table

---
 doc/table_structure.md                        |   1 -
 .../patch20210621-4.0.1/drop_rules_table.sql  |   1 +
 patches/patch20210621-4.0.1/patch.sh          |  43 +++++
 procedures/getRules.sql                       |  45 -----
 rules.sql                                     | 156 ------------------
 tests/test_autotap.sql                        |  80 ---------
 utils/update_sql_procedures.sh                |  10 --
 7 files changed, 44 insertions(+), 292 deletions(-)
 create mode 100644 patches/patch20210621-4.0.1/drop_rules_table.sql
 create mode 100755 patches/patch20210621-4.0.1/patch.sh
 delete mode 100644 procedures/getRules.sql
 delete mode 100644 rules.sql

diff --git a/doc/table_structure.md b/doc/table_structure.md
index 798404b..dc0c105 100644
--- a/doc/table_structure.md
+++ b/doc/table_structure.md
@@ -150,7 +150,6 @@ Older (i.e. not current) data, from previous versions of an entity which were st
 - permissions
 - query_template_def :: User-defined query templates?
 - roles :: possible user roles
-- rules :: SQL action/verification hooks?
 - stats :: benchmarking?
 - transaction_log :: benchmarking?
 - units_lin_con :: fraction and unit conversion?
diff --git a/patches/patch20210621-4.0.1/drop_rules_table.sql b/patches/patch20210621-4.0.1/drop_rules_table.sql
new file mode 100644
index 0000000..cea4308
--- /dev/null
+++ b/patches/patch20210621-4.0.1/drop_rules_table.sql
@@ -0,0 +1 @@
+DROP TABLE IF EXISTS rules;
diff --git a/patches/patch20210621-4.0.1/patch.sh b/patches/patch20210621-4.0.1/patch.sh
new file mode 100755
index 0000000..86a6d0b
--- /dev/null
+++ b/patches/patch20210621-4.0.1/patch.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+#
+# ** header v3.0
+# This file is a part of the CaosDB Project.
+#
+# Copyright (C) 2018 Research Group Biomedical Physics,
+# Max-Planck-Institute for Dynamics and Self-Organization Göttingen
+# Copyright (C) 2020-2021 IndiScale GmbH <info@indiscale.com>
+# Copyright (C) 2020-2021 Timm Fitschen <t.fitschen@indiscale.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# ** end header
+#
+# Update mysql schema to version v4.0.0-rc1
+NEW_VERSION="v4.0.1"
+OLD_VERSION="v4.0.0"
+
+if [ -z "$UTILSPATH" ]; then
+ UTILSPATH="../utils"
+fi
+
+. $UTILSPATH/patch_header.sh $*
+
+check_version $OLD_VERSION
+
+mysql_execute_file $PATCH_DIR/drop_rules_table.sql
+
+update_version $NEW_VERSION
+
+success
+
diff --git a/procedures/getRules.sql b/procedures/getRules.sql
deleted file mode 100644
index 3265e17..0000000
--- a/procedures/getRules.sql
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * ** header v3.0
- * This file is a part of the CaosDB Project.
- *
- * Copyright (C) 2018 Research Group Biomedical Physics,
- * Max-Planck-Institute for Dynamics and Self-Organization Göttingen
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- *
- * ** end header
- */
-/*
-Domain, Entity, Transaction, Criterion, Modus
-*/
-
-
-
-
-DROP PROCEDURE IF EXISTS db_2_0.getRules;
-delimiter //
-CREATE PROCEDURE db_2_0.getRules(in DomainID INT UNSIGNED, in EntityID INT UNSIGNED, in TransType VARCHAR(255))
-BEGIN
-
-		
-		
-		
-SELECT rules.transaction, rules.criterion, rules.modus from rules where if(DomainID is null, rules.domain_id=0,rules.domain_id=DomainID) AND if(EntityID is null, rules.entity_id=0,rules.entity_id=EntityID) AND if(TransType is null,true=true,rules.transaction=TransType);
-
-
-
-
-END;
-//
-delimiter ;
diff --git a/rules.sql b/rules.sql
deleted file mode 100644
index 017fe16..0000000
--- a/rules.sql
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * ** header v3.0
- * This file is a part of the CaosDB Project.
- *
- * Copyright (C) 2018 Research Group Biomedical Physics,
- * Max-Planck-Institute for Dynamics and Self-Organization Göttingen
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- *
- * ** end header
- */
-
-#-- ************
-#-- define rules
-#-- ************
-
-
-DELETE FROM rules;
-
-#-- general rules
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,0,'INSERT','CheckPropValid','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,0,'INSERT','CheckParValid','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,0,'INSERT','CheckParOblPropPresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,0,'INSERT','CheckValueParsable','MUST');
-
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,0,'UPDATE','CheckPropValid','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,0,'UPDATE','CheckParValid','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,0,'UPDATE','CheckParOblPropPresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,0,'UPDATE','CheckValueParsable','MUST');
-
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,0,'DELETE','CheckReferenceDependencyExistent','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,0,'DELETE','CheckChildDependencyExistent','MUST');
-
-
-#-- role specific rules
-#-- recordtype rules 
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,1,'INSERT','CheckDescPresent','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,1,'INSERT','CheckNamePresent','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,1,'INSERT','CheckPropPresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,1,'INSERT','SetImpToRecByDefault','MUST');
-
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,1,'UPDATE','CheckNamePresent','MUST');
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,1,'UPDATE','CheckDescPresent','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,1,'UPDATE','CheckPropPresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,1,'UPDATE','SetImpToRecByDefault','MUST');
-
-#-- record rules
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,2,'INSERT','CheckDescPresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,2,'INSERT','CheckNamePresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,2,'INSERT','CheckPropPresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,2,'INSERT','CheckParPresent','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,2,'INSERT','SetImpToFix','MUST');
-
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,2,'UPDATE','CheckNamePresent','SHOULD');
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,2,'UPDATE','CheckDescPresent','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,2,'UPDATE','CheckPropPresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,2,'UPDATE','CheckParPresent','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,2,'UPDATE','SetImpToFix','MUST');
-
-#-- file rules
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,3,'INSERT','CheckDescPresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,3,'INSERT','CheckNamePresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,3,'INSERT','MatchFileProp','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,3,'INSERT','CheckTargetPathValid','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,3,'INSERT','SetImpToFix','MUST');
-
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,3,'UPDATE','CheckNamePresent','SHOULD');
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,3,'UPDATE','CheckDescPresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,3,'UPDATE','MatchFileProp','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,3,'UPDATE','CheckTargetPathValid','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,3,'UPDATE','SetImpToFix','MUST');
-
-#-- property rules
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,4,'INSERT','CheckDatatypePresent','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,4,'UPDATE','CheckDatatypePresent','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,4,'INSERT','CheckNamePresent','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,4,'UPDATE','CheckNamePresent','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,4,'INSERT','SetImpToFix','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,4,'UPDATE','SetImpToFix','MUST');
-
-#-- query template rules
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,8,'UPDATE','CheckQueryTemplate','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,8,'INSERT','CheckQueryTemplate','MUST');
-
-#-- data type specific rules
-#-- reference rules
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,11,'INSERT','CheckRefidPresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,11,'INSERT','CheckRefidValid','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,11,'INSERT','CheckRefidIsaParRefid','SHOULD');
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,11,'INSERT','CheckDescPresent','MUST');
-
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,11,'UPDATE','CheckRefidPresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,11,'UPDATE','CheckRefidValid','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,11,'UPDATE','CheckRefidIsaParRefid','SHOULD');
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,11,'UPDATE','CheckDescPresent','MUST');
-
-#-- integer rules
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,12,'INSERT','CheckUnitPresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,12,'INSERT','ParseUnit','SHOULD');
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,12,'INSERT','CheckDescPresent','MUST');
-
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,12,'UPDATE','CheckDescPresent','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,12,'UPDATE','CheckUnitPresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,12,'UPDATE','ParseUnit','SHOULD');
-
-#-- double rules
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,13,'INSERT','CheckUnitPresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,13,'INSERT','ParseUnit','SHOULD');
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,13,'INSERT','CheckDescPresent','MUST');
-
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,13,'UPDATE','CheckDescPresent','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,13,'UPDATE','CheckUnitPresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,13,'UPDATE','ParseUnit','SHOULD');
-
-#-- text rules
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,14,'INSERT','CheckDescPresent','MUST');
-
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,14,'UPDATE','CheckDescPresent','MUST');
-
-#-- datetime rules
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,15,'INSERT','CheckDescPresent','MUST');
-
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,15,'UPDATE','CheckDescPresent','MUST');
-
-#-- timespan rules
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,16,'INSERT','CheckUnitPresent','SHOULD');
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,16,'INSERT','CheckDescPresent','MUST');
-
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,16,'UPDATE','CheckUnitPresent','SHOULD');
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,16,'UPDATE','CheckDescPresent','MUST');
-
-#-- filereference rules
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,17,'INSERT','CheckRefidValid','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,17,'INSERT','CheckRefidIsaParRefid','MUST');
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,17,'INSERT','CheckDescPresent','MUST');
-
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,17,'UPDATE','CheckRefidValid','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,17,'UPDATE','CheckRefidIsaParRefid','MUST');
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,17,'UPDATE','CheckDescPresent','MUST');
-
-#-- SQLite files
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,50,'UPDATE','CheckRefidValid','MUST');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,50,'UPDATE','CheckRefidIsaParRefid','SHOULD');
-#-- INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,50,'UPDATE','CheckDescPresent','SHOULD');
-INSERT INTO rules (domain_id, entity_id, transaction, criterion, modus) VALUES (0,50,'UPDATE','SQLiteTransaction','MUST');
diff --git a/tests/test_autotap.sql b/tests/test_autotap.sql
index 6345bf0..e19963b 100644
--- a/tests/test_autotap.sql
+++ b/tests/test_autotap.sql
@@ -1811,79 +1811,6 @@ SELECT tap.has_constraint('_caosdb_schema_unit_tests','roles','PRIMARY','');
 SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','roles','PRIMARY','PRIMARY KEY','');
 SELECT tap.col_is_pk('_caosdb_schema_unit_tests','roles','`name`','');
 
--- ***************************************************************
--- TABLE _caosdb_schema_unit_tests.rules
--- ***************************************************************
-
-SELECT tap.has_table('_caosdb_schema_unit_tests','rules','');
-SELECT tap.table_collation_is('_caosdb_schema_unit_tests','rules','utf8_unicode_ci','');
-SELECT tap.table_engine_is('_caosdb_schema_unit_tests','rules','InnoDB','');
-
--- COLUMNS
-SELECT tap.columns_are('_caosdb_schema_unit_tests','rules','`domain_id`,`entity_id`,`transaction`,`criterion`,`modus`','');
-
--- COLUMN rules.domain_id
-
-SELECT tap.has_column('_caosdb_schema_unit_tests','rules','domain_id','');
-SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','rules','domain_id','int(10) unsigned','');
-SELECT tap.col_extra_is('_caosdb_schema_unit_tests','rules','domain_id','','');
-SELECT tap.col_default_is('_caosdb_schema_unit_tests','rules','domain_id',NULL,'');
-SELECT tap.col_charset_is('_caosdb_schema_unit_tests','rules','domain_id',NULL,'');
-SELECT tap.col_collation_is('_caosdb_schema_unit_tests','rules','domain_id',NULL,'');
-
--- COLUMN rules.entity_id
-
-SELECT tap.has_column('_caosdb_schema_unit_tests','rules','entity_id','');
-SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','rules','entity_id','int(10) unsigned','');
-SELECT tap.col_extra_is('_caosdb_schema_unit_tests','rules','entity_id','','');
-SELECT tap.col_default_is('_caosdb_schema_unit_tests','rules','entity_id',NULL,'');
-SELECT tap.col_charset_is('_caosdb_schema_unit_tests','rules','entity_id',NULL,'');
-SELECT tap.col_collation_is('_caosdb_schema_unit_tests','rules','entity_id',NULL,'');
-
--- COLUMN rules.transaction
-
-SELECT tap.has_column('_caosdb_schema_unit_tests','rules','transaction','');
-SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','rules','transaction','enum(\'INSERT\',\'RETRIEVE\',\'UPDATE\',\'DELETE\')','');
-SELECT tap.col_extra_is('_caosdb_schema_unit_tests','rules','transaction','','');
-SELECT tap.col_default_is('_caosdb_schema_unit_tests','rules','transaction',NULL,'');
-SELECT tap.col_charset_is('_caosdb_schema_unit_tests','rules','transaction','utf8','');
-SELECT tap.col_collation_is('_caosdb_schema_unit_tests','rules','transaction','utf8_unicode_ci','');
-
--- COLUMN rules.criterion
-
-SELECT tap.has_column('_caosdb_schema_unit_tests','rules','criterion','');
-SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','rules','criterion','varchar(255)','');
-SELECT tap.col_extra_is('_caosdb_schema_unit_tests','rules','criterion','','');
-SELECT tap.col_default_is('_caosdb_schema_unit_tests','rules','criterion',NULL,'');
-SELECT tap.col_charset_is('_caosdb_schema_unit_tests','rules','criterion','utf8','');
-SELECT tap.col_collation_is('_caosdb_schema_unit_tests','rules','criterion','utf8_unicode_ci','');
-
--- COLUMN rules.modus
-
-SELECT tap.has_column('_caosdb_schema_unit_tests','rules','modus','');
-SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','rules','modus','enum(\'MUST\',\'SHOULD\',\'SHOULDNT\',\'MUSTNOT\')','');
-SELECT tap.col_extra_is('_caosdb_schema_unit_tests','rules','modus','','');
-SELECT tap.col_default_is('_caosdb_schema_unit_tests','rules','modus',NULL,'');
-SELECT tap.col_charset_is('_caosdb_schema_unit_tests','rules','modus','utf8','');
-SELECT tap.col_collation_is('_caosdb_schema_unit_tests','rules','modus','utf8_unicode_ci','');
-
--- CONSTRAINTS
-SELECT tap.constraints_are('_caosdb_schema_unit_tests','rules','`rule_domain_id_entity`,`rule_entity_id_entity`','');
-
--- CONSTRAINT rules.rule_domain_id_entity
-
-SELECT tap.has_constraint('_caosdb_schema_unit_tests','rules','rule_domain_id_entity','');
-SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','rules','rule_domain_id_entity','FOREIGN KEY','');
-SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','rules','rule_domain_id_entity','RESTRICT','');
-SELECT tap.fk_on_update('_caosdb_schema_unit_tests','rules','rule_domain_id_entity','RESTRICT','');
-
--- CONSTRAINT rules.rule_entity_id_entity
-
-SELECT tap.has_constraint('_caosdb_schema_unit_tests','rules','rule_entity_id_entity','');
-SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','rules','rule_entity_id_entity','FOREIGN KEY','');
-SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','rules','rule_entity_id_entity','RESTRICT','');
-SELECT tap.fk_on_update('_caosdb_schema_unit_tests','rules','rule_entity_id_entity','RESTRICT','');
-
 -- ***************************************************************
 -- TABLE _caosdb_schema_unit_tests.stats
 -- ***************************************************************
@@ -2645,13 +2572,6 @@ SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','getRole','NO'
 SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','getRole','DEFINER','');
 SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','getRole','CONTAINS SQL','');
 
--- PROCEDURES _caosdb_schema_unit_tests.getRules
-
-SELECT tap.has_procedure('_caosdb_schema_unit_tests','getRules','');
-SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','getRules','NO','');
-SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','getRules','DEFINER','');
-SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','getRules','CONTAINS SQL','');
-
 -- PROCEDURES _caosdb_schema_unit_tests.initAutoIncrement
 
 SELECT tap.has_procedure('_caosdb_schema_unit_tests','initAutoIncrement','');
diff --git a/utils/update_sql_procedures.sh b/utils/update_sql_procedures.sh
index cbb58fe..9398a33 100755
--- a/utils/update_sql_procedures.sh
+++ b/utils/update_sql_procedures.sh
@@ -37,16 +37,6 @@ fi
 source $UTILSPATH/load_settings.sh
 source $UTILSPATH/helpers.sh
 
-echo -n "Updating rules ... "
-
-temp_rules_sql=$(tempfile --suffix=.sql)
-sed s/db_2_0/$DATABASE_NAME/g rules.sql > "$temp_rules_sql"
-mysql_execute_file "$temp_rules_sql"
-# We keep this for debugging purposes...
-# rm "$temp_rules_sql"
-
-echo "[OK]"
-
 echo -n "updating procedures ... "
 temp_proc_sql=$(tempfile --suffix=.sql)
 sed -e "s/db_2_0/$DATABASE_NAME/g" procedures/*.sql procedures/query/*.sql \
-- 
GitLab