diff --git a/.docker/Dockerfile b/.docker/Dockerfile
index 14ae750aa7f2f0c8262895c9b64a2a7f6e094d0f..86368345ad07c5564889724f135e89b0f6022894 100644
--- a/.docker/Dockerfile
+++ b/.docker/Dockerfile
@@ -1,3 +1,3 @@
-FROM debian:stretch
+FROM debian:buster
 RUN apt-get update && \
-	apt-get install  curl -y
+	apt-get install curl mariadb-client make unzip -y
diff --git a/.gitignore b/.gitignore
index 9423022fa1f012760b2a30f664fa175c89f6cbbd..0b8e594885fcd7ae70e753b3ef144ef9cb46ab66 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,8 @@
 .*
 !/.gitignore
 !/.gitlab-ci.yml
+!libs/*.zip
 
 # dumps
 *.dump.sql
+libs/*
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ec4dfb07f0695f14b1bd952f7f3c6da578de0423..03e6f5cbc8d83744a356509096fe1501713d9070 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -19,14 +19,16 @@
 # along with this program. If not, see <https://www.gnu.org/licenses/>.
 #
 
+services:
+  - mariadb:10.2
 variables:
   CI_REGISTRY_IMAGE: $CI_REGISTRY/caosdb-mysqlbackend-testenv:latest
-  # When using dind, it's wise to use the overlayfs driver for
-  # improved performance.
+  MYSQL_ROOT_PASSWORD: caosdb1234
 
 image: $CI_REGISTRY_IMAGE
 stages:
   - setup
+  - test
   - deploy
 
 # Trigger building of server image and integration tests
@@ -41,6 +43,17 @@ trigger_build:
       -F "variables[TriggerdByHash]=$CI_COMMIT_SHORT_SHA"
       -F ref=dev https://gitlab.indiscale.com/api/v4/projects/14/trigger/pipeline
 
+unittests:
+  tags: [ docker ]
+  stage: test
+  script:
+    - cp config.defaults .config
+    - echo 'DATABASE_USER_HOST_LIST="%,"' >> .config
+    - echo "MYSQL_USER_PASSWORD=$MYSQL_ROOT_PASSWORD" >> .config
+    - echo "MYSQL_HOST=mariadb" >> .config
+    - ./make_db test-connection
+    - ./make_db test --fresh
+
 # Build a docker image in which tests for this repository can run
 build-testenv:
   tags: [ cached-dind ]
@@ -51,7 +64,7 @@ build-testenv:
     - docker login -u indiscale -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
       # use here general latest or specific branch latest...
     - docker pull $CI_REGISTRY_IMAGE || true
-    - docker build 
+    - docker build
       --pull
       --cache-from $CI_REGISTRY_IMAGE 
       -t $CI_REGISTRY_IMAGE .
diff --git a/README_SETUP.md b/README_SETUP.md
index e409edaa9612340490f8cf8642201a5e1812d867..3352a5385a304f1095c1d78aee58ddef5341a0bd 100644
--- a/README_SETUP.md
+++ b/README_SETUP.md
@@ -35,3 +35,9 @@
   this with caution!!!** If you did not backup your database, **everything will
   be lost afterwards.** And no, there is *no* additional prompt to ask if you
   are sure.  If you `make drop-...`, you *actually* delete the database.
+
+## Unit tests
+
+* We use [MyTAP-1.0](https://hepabolu.github.io/mytap/) for unit tests.
+* Tests are in `tests/test_*.sql`.
+* Run `make test`.
diff --git a/libs/mytap-1.0.zip b/libs/mytap-1.0.zip
new file mode 100644
index 0000000000000000000000000000000000000000..9e04965cd40320bde2e598c585119ffa7f6b1eab
Binary files /dev/null and b/libs/mytap-1.0.zip differ
diff --git a/make_db b/make_db
index 9ce63e9049b9c74f31ef93556093b5fccde221ad..5a1f8c21dc7598c4fbe2c91d11d1ae1ed480bfbb 100755
--- a/make_db
+++ b/make_db
@@ -4,6 +4,8 @@
 # This file is a part of the CaosDB Project.
 #
 # Copyright (C) 2019 Daniel Hornung, Göttingen
+# Copyright (C) 2020 Timm Fitschen <t.fitschen@indiscale.com>
+# Copyright (C) 2020 IndiScale <info@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
@@ -28,6 +30,79 @@ function fail() {
   exit 1
 }
 
+UNITTEST_DATABASE=${UNITTEST_DATABASE-_caosdb_schema_unit_tests}
+
+# optional parameter: [--fresh] for installing a fresh data base. Otherwise an existing one would be reused.
+function runtests() {
+    DATABASE_NAME=$UNITTEST_DATABASE
+    _setup_mytap
+
+    _install_unit_test_database $@
+
+    _execute_tests || ( echo "[FAILURE]" && exit 1 )
+    echo "[PASS]"
+}
+
+function _execute_tests () {
+    pushd tests
+    TESTS="./test*.sql"
+
+    rm -f .TEST_RESULTS
+    for tfile in $TESTS ; do
+        echo "Running $tfile"
+        echo "----- $tfile -----" >> .TEST_RESULTS
+        cat $tfile | $SQL --disable-pager --batch --raw --skip-column-names --unbuffered >> .TEST_RESULTS
+    done;
+
+    popd
+    cat tests/.TEST_RESULTS
+    grep -c -i "failed" tests/.TEST_RESULTS > /dev/null && return 1
+    return 0
+}
+
+# install/reset database for unit tests.
+# optional parameter: [--fresh] for installing a fresh data base. Otherwise an existing one would be reused.
+function _install_unit_test_database () {
+    DATABASE_NAME=$UNITTEST_DATABASE
+    if _db_exists "$DATABASE_NAME"; then
+        if [[ "$1" == "--fresh" ]] ; then
+            drop "$DATABASE_NAME" ;
+        else
+            return 0;
+        fi
+    fi
+
+    sed "s/db_2_0/$DATABASE_NAME/g" "$INSTALL_SQL_FILE" | $SQL
+
+    # crate test user
+    grant
+
+    # update to latest
+    cp .config .test_config
+    echo "DATABASE_NAME=\"$UNITTEST_DATABASE\"" >> .test_config
+    pushd patches > /dev/null
+    ./applyPatches.sh --env=../.test_config
+    popd > /dev/null
+    rm .test_config
+}
+
+# install test framework MyTAP if not installed
+function _setup_mytap() {
+    if _db_exists "tap" ; then
+        echo MyTAB framework is already installed [OK]
+        return 0
+    fi
+    echo -n "Installing MyTAB framework ... "
+    pushd libs > /dev/null
+    unzip -u mytap*.zip > /dev/null
+    pushd mytap*/ > /dev/null
+    $SQL < mytap.sql > /dev/null || exit 1
+    popd > /dev/null
+    rm -r mytap*/
+    popd > /dev/null
+    echo [DONE]
+}
+
 function setup_os() {
   # - mariadb-client :: For SQL server configuration.
   PACKAGES="git
@@ -66,7 +141,7 @@ function restore_db() {
 }
 
 function test-connection() {
-  	$SQL -e "select 0;"
+    $SQL -e "select 0;"
 }
 
 # Creates a user and grants it sufficient rights.
@@ -90,7 +165,7 @@ function grant() {
     if [[ "$1" == "--strict" ]] ; then
         for host in ${DATABASE_USER_HOST_LIST//,/ } ; do
             CMD="SELECT COUNT(*) FROM mysql.user WHERE user='${DATABASE_USER}' AND host='${host}';"
-		        [[ $(SQL -s -N -e "$CMD") == 0 ]] || {
+		        [[ $($SQL -s -N -e "$CMD") == 0 ]] || {
                 echo "The user '${DATABASE_USER}@${host}' is already in the database."
                 echo "Please use another user or delete it, e.g. with"
                 echo "'mysql -u ${MYSQL_USER} -p -e \"DROP USER ${DATABASE_USER}@${host};\"'"
@@ -100,6 +175,7 @@ function grant() {
     fi
 
     for host in ${DATABASE_USER_HOST_LIST//,/ } ; do
+        echo "Granting admin privileges to '$DATABASE_USER'@'$host'"
         $SQL <<EOF
 CREATE USER IF NOT EXISTS
     '$DATABASE_USER'@'$host' identified by '$DATABASE_USER_PW';
@@ -120,13 +196,15 @@ function drop() {
     "$MYSQLADMIN_CMD" $MYSQL_CONNECTION -f drop "$DROPDB"
 }
 
+
 # Returns 0 or non-zero, depending on whether the database exists already.
+# Optional parameter: [DATABASE_NAME]
 function _db_exists() {
-    $SQL -D "$DATABASE_NAME" -e "show tables;" > /dev/null 2>&1 \
+    $SQL -D "${1-${DATABASE_NAME}}" -e "show tables;" > /dev/null 2>&1 \
         && return 0 || return 1
 }
 
-. .config
+source .config || true
 
 INSTALL_SQL_FILE="db_2_0.sql"
 if [ -z $LOGIN_PATH ] ; then
@@ -142,6 +220,7 @@ SQL="$MYSQL_CMD $MYSQL_CONNECTION"
 case $1 in
   "drop") drop $2 ;;
   "grant") grant $2 ;;
+  "test") shift ; runtests $@ ;;
   "test-connection") test-connection ;;
   "install_db") install_db ;;
   "restore_db") restore_db $2 ;;
diff --git a/makefile b/makefile
index 98d20a6cff558391e344a81c3cac9bea52c741f7..f08e739d464c274f6c23138dc73a8383895d90ca 100644
--- a/makefile
+++ b/makefile
@@ -55,3 +55,7 @@ _grant:
 .PHONY: drop-%
 drop-%:
 	./make_db drop $(patsubst drop-%,%,$@)
+
+.PHONY: test
+test:
+	./make_db test --fresh
diff --git a/patches/applyPatches.sh b/patches/applyPatches.sh
index 76db457f0c5551351b4da4915002ac452d4eb2a4..a896cda5f62619439c65984fedd10d243add4950 100755
--- a/patches/applyPatches.sh
+++ b/patches/applyPatches.sh
@@ -24,7 +24,6 @@
 
 #apply all available patches.
 set -e
-. ./utils/patch_header.sh
 PATCHES="./patch*/patch.sh"
 export UTILSPATH="./utils"
 
@@ -33,5 +32,6 @@ do
     $p "$@" --patch=$p
 done
 
+source ./utils/patch_header.sh
 cd ../
 ./update_sql_procedures.sh
diff --git a/patches/utils/patch_header.sh b/patches/utils/patch_header.sh
index bc0045c8a8f43a9761c27d7cc16fb4f719df8e51..fec3997fc96fcd710922043db8dfacc1e2886b5e 100644
--- a/patches/utils/patch_header.sh
+++ b/patches/utils/patch_header.sh
@@ -101,7 +101,7 @@ while test $# -gt 0; do
  esac
 done
 
-[[ -n "$ENV_FILE" ]] && source "$ENV_FILE"
+source "$ENV_FILE" || true
 
 if [[ -z "$DATABASE_NAME" && -z "$MYSQL_CONNECTION" ]]
 then
diff --git a/tests/test_autotap.sql b/tests/test_autotap.sql
new file mode 100644
index 0000000000000000000000000000000000000000..f60bb3fca85cceda5956dac74e9fa9948b13a707
--- /dev/null
+++ b/tests/test_autotap.sql
@@ -0,0 +1,2737 @@
+-- ***************************************************************
+-- myTAP Testing Script
+-- ====================
+-- Generated: 2020-02-04
+-- This database testing script has been created by the autotap
+-- utility. The tests generated are in the TAP format for use with
+-- myTAP and are based on the current state of schema objects,
+-- with the database assumed to be in a known good state. All tests
+-- will pass but that does not guarantee the correctness of the
+-- state represented by the tests.
+-- 
+-- After the script is generated, any subsequent DDL changes,
+-- whether additions, deletions or modifications, will cause some
+-- of the tests to fail. This is intentional.
+-- 
+-- The purpose of the utility is to assist the process of
+-- retrofitting testing to existing projects. You should still check
+-- that the schema state represents what you intend and you should
+-- modify this script by hand to account for all subsequent changes.
+-- ***************************************************************
+
+
+-- ***************************************************************
+-- SCHEMA _caosdb_schema_unit_tests
+-- ***************************************************************
+
+USE tap;
+BEGIN;
+CALL tap.no_plan();
+SELECT tap.has_schema('_caosdb_schema_unit_tests','');
+
+-- ***************************************************************
+-- TABLES 
+-- ***************************************************************
+
+SELECT tap.tables_are('_caosdb_schema_unit_tests','`collection_type`,`data_type`,`date_data`,`datetime_data`,`desc_overrides`,`double_data`,`entities`,`entity_acl`,`enum_data`,`files`,`integer_data`,`isa_cache`,`logging`,`name_data`,`name_overrides`,`null_data`,`passwd`,`permissions`,`query_template_def`,`reference_data`,`roles`,`rules`,`stats`,`text_data`,`transaction_log`,`units_lin_con`,`user_info`,`user_roles`','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.collection_type
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','collection_type','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','collection_type','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','collection_type','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','collection_type','`domain_id`,`entity_id`,`property_id`,`collection`','');
+
+-- COLUMN collection_type.domain_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','collection_type','domain_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','collection_type','domain_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','collection_type','domain_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','collection_type','domain_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','collection_type','domain_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','collection_type','domain_id',NULL,'');
+
+-- COLUMN collection_type.entity_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','collection_type','entity_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','collection_type','entity_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','collection_type','entity_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','collection_type','entity_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','collection_type','entity_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','collection_type','entity_id',NULL,'');
+
+-- COLUMN collection_type.property_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','collection_type','property_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','collection_type','property_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','collection_type','property_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','collection_type','property_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','collection_type','property_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','collection_type','property_id',NULL,'');
+
+-- COLUMN collection_type.collection
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','collection_type','collection','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','collection_type','collection','varchar(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','collection_type','collection','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','collection_type','collection',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','collection_type','collection','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','collection_type','collection','utf8_unicode_ci','');
+
+-- INDEXES
+SELECT tap.indexes_are('_caosdb_schema_unit_tests','collection_type','`domain_id`,`entity_id`,`property_id`','');
+
+-- INDEX collection_type.domain_id
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','collection_type','domain_id','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','collection_type','domain_id','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','collection_type','`domain_id`,`entity_id`','');
+
+-- INDEX collection_type.entity_id
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','collection_type','entity_id','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','collection_type','entity_id','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','collection_type','`entity_id`','');
+
+-- INDEX collection_type.property_id
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','collection_type','property_id','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','collection_type','property_id','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','collection_type','`property_id`','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','collection_type','`collection_type_domain_id_entity`,`collection_type_entity_id_entity`,`collection_type_property_id_entity`','');
+
+-- CONSTRAINT collection_type.collection_type_domain_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','collection_type','collection_type_domain_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','collection_type','collection_type_domain_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','collection_type','collection_type_domain_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','collection_type','collection_type_domain_id_entity','RESTRICT','');
+
+-- CONSTRAINT collection_type.collection_type_entity_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','collection_type','collection_type_entity_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','collection_type','collection_type_entity_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','collection_type','collection_type_entity_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','collection_type','collection_type_entity_id_entity','RESTRICT','');
+
+-- CONSTRAINT collection_type.collection_type_property_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','collection_type','collection_type_property_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','collection_type','collection_type_property_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','collection_type','collection_type_property_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','collection_type','collection_type_property_id_entity','RESTRICT','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.data_type
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','data_type','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','data_type','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','data_type','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','data_type','`domain_id`,`entity_id`,`property_id`,`datatype`','');
+
+-- COLUMN data_type.domain_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','data_type','domain_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','data_type','domain_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','data_type','domain_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','data_type','domain_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','data_type','domain_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','data_type','domain_id',NULL,'');
+
+-- COLUMN data_type.entity_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','data_type','entity_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','data_type','entity_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','data_type','entity_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','data_type','entity_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','data_type','entity_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','data_type','entity_id',NULL,'');
+
+-- COLUMN data_type.property_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','data_type','property_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','data_type','property_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','data_type','property_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','data_type','property_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','data_type','property_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','data_type','property_id',NULL,'');
+
+-- COLUMN data_type.datatype
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','data_type','datatype','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','data_type','datatype','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','data_type','datatype','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','data_type','datatype',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','data_type','datatype',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','data_type','datatype',NULL,'');
+
+-- INDEXES
+SELECT tap.indexes_are('_caosdb_schema_unit_tests','data_type','`name_ov_dom_ent_idx`','');
+
+-- INDEX data_type.name_ov_dom_ent_idx
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','data_type','name_ov_dom_ent_idx','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','data_type','name_ov_dom_ent_idx','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','data_type','`domain_id`,`entity_id`','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','data_type','`datatype_ukey`,`datatype_forkey_dom`,`datatype_forkey_ent`,`datatype_forkey_pro`,`datatype_forkey_type`','');
+
+-- CONSTRAINT data_type.datatype_forkey_dom
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','data_type','datatype_forkey_dom','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','data_type','datatype_forkey_dom','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','data_type','datatype_forkey_dom','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','data_type','datatype_forkey_dom','RESTRICT','');
+
+-- CONSTRAINT data_type.datatype_forkey_ent
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','data_type','datatype_forkey_ent','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','data_type','datatype_forkey_ent','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','data_type','datatype_forkey_ent','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','data_type','datatype_forkey_ent','RESTRICT','');
+
+-- CONSTRAINT data_type.datatype_forkey_pro
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','data_type','datatype_forkey_pro','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','data_type','datatype_forkey_pro','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','data_type','datatype_forkey_pro','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','data_type','datatype_forkey_pro','RESTRICT','');
+
+-- CONSTRAINT data_type.datatype_forkey_type
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','data_type','datatype_forkey_type','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','data_type','datatype_forkey_type','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','data_type','datatype_forkey_type','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','data_type','datatype_forkey_type','RESTRICT','');
+
+-- CONSTRAINT data_type.datatype_ukey
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','data_type','datatype_ukey','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','data_type','datatype_ukey','UNIQUE','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.date_data
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','date_data','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','date_data','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','date_data','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','date_data','`domain_id`,`entity_id`,`property_id`,`value`,`status`,`pidx`','');
+
+-- COLUMN date_data.domain_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','date_data','domain_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','date_data','domain_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','date_data','domain_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','date_data','domain_id','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','date_data','domain_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','date_data','domain_id',NULL,'');
+
+-- COLUMN date_data.entity_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','date_data','entity_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','date_data','entity_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','date_data','entity_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','date_data','entity_id','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','date_data','entity_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','date_data','entity_id',NULL,'');
+
+-- COLUMN date_data.property_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','date_data','property_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','date_data','property_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','date_data','property_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','date_data','property_id','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','date_data','property_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','date_data','property_id',NULL,'');
+
+-- COLUMN date_data.value
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','date_data','value','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','date_data','value','int(11)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','date_data','value','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','date_data','value',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','date_data','value',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','date_data','value',NULL,'');
+
+-- COLUMN date_data.status
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','date_data','status','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','date_data','status','enum(\'OBLIGATORY\',\'RECOMMENDED\',\'SUGGESTED\',\'FIX\')','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','date_data','status','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','date_data','status','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','date_data','status','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','date_data','status','utf8_unicode_ci','');
+
+-- COLUMN date_data.pidx
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','date_data','pidx','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','date_data','pidx','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','date_data','pidx','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','date_data','pidx',0,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','date_data','pidx',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','date_data','pidx',NULL,'');
+
+-- INDEXES
+SELECT tap.indexes_are('_caosdb_schema_unit_tests','date_data','`date_data_dom_ent_idx`','');
+
+-- INDEX date_data.date_data_dom_ent_idx
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','date_data','date_data_dom_ent_idx','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','date_data','date_data_dom_ent_idx','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','date_data','`domain_id`,`entity_id`','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','date_data','`date_ov_forkey_dom`,`date_ov_forkey_ent`,`date_ov_forkey_pro`','');
+
+-- CONSTRAINT date_data.date_ov_forkey_dom
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','date_data','date_ov_forkey_dom','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','date_data','date_ov_forkey_dom','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','date_data','date_ov_forkey_dom','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','date_data','date_ov_forkey_dom','RESTRICT','');
+
+-- CONSTRAINT date_data.date_ov_forkey_ent
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','date_data','date_ov_forkey_ent','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','date_data','date_ov_forkey_ent','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','date_data','date_ov_forkey_ent','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','date_data','date_ov_forkey_ent','RESTRICT','');
+
+-- CONSTRAINT date_data.date_ov_forkey_pro
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','date_data','date_ov_forkey_pro','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','date_data','date_ov_forkey_pro','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','date_data','date_ov_forkey_pro','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','date_data','date_ov_forkey_pro','RESTRICT','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.datetime_data
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','datetime_data','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','datetime_data','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','datetime_data','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','datetime_data','`domain_id`,`entity_id`,`property_id`,`status`,`pidx`,`value_ns`,`value`','');
+
+-- COLUMN datetime_data.domain_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','datetime_data','domain_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','datetime_data','domain_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','datetime_data','domain_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','datetime_data','domain_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','datetime_data','domain_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','datetime_data','domain_id',NULL,'');
+
+-- COLUMN datetime_data.entity_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','datetime_data','entity_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','datetime_data','entity_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','datetime_data','entity_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','datetime_data','entity_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','datetime_data','entity_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','datetime_data','entity_id',NULL,'');
+
+-- COLUMN datetime_data.property_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','datetime_data','property_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','datetime_data','property_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','datetime_data','property_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','datetime_data','property_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','datetime_data','property_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','datetime_data','property_id',NULL,'');
+
+-- COLUMN datetime_data.status
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','datetime_data','status','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','datetime_data','status','enum(\'OBLIGATORY\',\'RECOMMENDED\',\'SUGGESTED\',\'FIX\',\'REPLACEMENT\')','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','datetime_data','status','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','datetime_data','status',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','datetime_data','status','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','datetime_data','status','utf8_unicode_ci','');
+
+-- COLUMN datetime_data.pidx
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','datetime_data','pidx','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','datetime_data','pidx','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','datetime_data','pidx','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','datetime_data','pidx',0,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','datetime_data','pidx',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','datetime_data','pidx',NULL,'');
+
+-- COLUMN datetime_data.value_ns
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','datetime_data','value_ns','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','datetime_data','value_ns','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','datetime_data','value_ns','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','datetime_data','value_ns','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','datetime_data','value_ns',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','datetime_data','value_ns',NULL,'');
+
+-- COLUMN datetime_data.value
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','datetime_data','value','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','datetime_data','value','bigint(20)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','datetime_data','value','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','datetime_data','value',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','datetime_data','value',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','datetime_data','value',NULL,'');
+
+-- INDEXES
+SELECT tap.indexes_are('_caosdb_schema_unit_tests','datetime_data','`domain_id`','');
+
+-- INDEX datetime_data.domain_id
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','datetime_data','domain_id','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','datetime_data','domain_id','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','datetime_data','`domain_id`,`entity_id`','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','datetime_data','`dat_domain_id_entity`,`dat_entity_id_entity`,`dat_property_id_entity`','');
+
+-- CONSTRAINT datetime_data.dat_domain_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','datetime_data','dat_domain_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','datetime_data','dat_domain_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','datetime_data','dat_domain_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','datetime_data','dat_domain_id_entity','RESTRICT','');
+
+-- CONSTRAINT datetime_data.dat_entity_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','datetime_data','dat_entity_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','datetime_data','dat_entity_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','datetime_data','dat_entity_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','datetime_data','dat_entity_id_entity','RESTRICT','');
+
+-- CONSTRAINT datetime_data.dat_property_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','datetime_data','dat_property_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','datetime_data','dat_property_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','datetime_data','dat_property_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','datetime_data','dat_property_id_entity','RESTRICT','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.desc_overrides
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','desc_overrides','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','desc_overrides','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','desc_overrides','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','desc_overrides','`domain_id`,`entity_id`,`property_id`,`description`','');
+
+-- COLUMN desc_overrides.domain_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','desc_overrides','domain_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','desc_overrides','domain_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','desc_overrides','domain_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','desc_overrides','domain_id','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','desc_overrides','domain_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','desc_overrides','domain_id',NULL,'');
+
+-- COLUMN desc_overrides.entity_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','desc_overrides','entity_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','desc_overrides','entity_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','desc_overrides','entity_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','desc_overrides','entity_id','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','desc_overrides','entity_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','desc_overrides','entity_id',NULL,'');
+
+-- COLUMN desc_overrides.property_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','desc_overrides','property_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','desc_overrides','property_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','desc_overrides','property_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','desc_overrides','property_id','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','desc_overrides','property_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','desc_overrides','property_id',NULL,'');
+
+-- COLUMN desc_overrides.description
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','desc_overrides','description','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','desc_overrides','description','text','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','desc_overrides','description','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','desc_overrides','description','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','desc_overrides','description','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','desc_overrides','description','utf8_unicode_ci','');
+
+-- INDEXES
+SELECT tap.indexes_are('_caosdb_schema_unit_tests','desc_overrides','`desc_ov_dom_ent_idx`','');
+
+-- INDEX desc_overrides.desc_ov_dom_ent_idx
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','desc_overrides','desc_ov_dom_ent_idx','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','desc_overrides','desc_ov_dom_ent_idx','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','desc_overrides','`domain_id`,`entity_id`','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','desc_overrides','`desc_ov_ukey`,`desc_ov_forkey_dom`,`desc_ov_forkey_ent`,`desc_ov_forkey_pro`','');
+
+-- CONSTRAINT desc_overrides.desc_ov_forkey_dom
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','desc_overrides','desc_ov_forkey_dom','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','desc_overrides','desc_ov_forkey_dom','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','desc_overrides','desc_ov_forkey_dom','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','desc_overrides','desc_ov_forkey_dom','RESTRICT','');
+
+-- CONSTRAINT desc_overrides.desc_ov_forkey_ent
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','desc_overrides','desc_ov_forkey_ent','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','desc_overrides','desc_ov_forkey_ent','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','desc_overrides','desc_ov_forkey_ent','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','desc_overrides','desc_ov_forkey_ent','RESTRICT','');
+
+-- CONSTRAINT desc_overrides.desc_ov_forkey_pro
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','desc_overrides','desc_ov_forkey_pro','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','desc_overrides','desc_ov_forkey_pro','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','desc_overrides','desc_ov_forkey_pro','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','desc_overrides','desc_ov_forkey_pro','RESTRICT','');
+
+-- CONSTRAINT desc_overrides.desc_ov_ukey
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','desc_overrides','desc_ov_ukey','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','desc_overrides','desc_ov_ukey','UNIQUE','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.double_data
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','double_data','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','double_data','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','double_data','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','double_data','`domain_id`,`entity_id`,`property_id`,`value`,`status`,`pidx`,`unit_sig`','');
+
+-- COLUMN double_data.domain_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','double_data','domain_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','double_data','domain_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','double_data','domain_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','double_data','domain_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','double_data','domain_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','double_data','domain_id',NULL,'');
+
+-- COLUMN double_data.entity_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','double_data','entity_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','double_data','entity_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','double_data','entity_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','double_data','entity_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','double_data','entity_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','double_data','entity_id',NULL,'');
+
+-- COLUMN double_data.property_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','double_data','property_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','double_data','property_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','double_data','property_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','double_data','property_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','double_data','property_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','double_data','property_id',NULL,'');
+
+-- COLUMN double_data.value
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','double_data','value','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','double_data','value','double','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','double_data','value','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','double_data','value',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','double_data','value',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','double_data','value',NULL,'');
+
+-- COLUMN double_data.status
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','double_data','status','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','double_data','status','enum(\'OBLIGATORY\',\'RECOMMENDED\',\'SUGGESTED\',\'FIX\',\'REPLACEMENT\')','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','double_data','status','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','double_data','status',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','double_data','status','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','double_data','status','utf8_unicode_ci','');
+
+-- COLUMN double_data.pidx
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','double_data','pidx','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','double_data','pidx','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','double_data','pidx','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','double_data','pidx',0,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','double_data','pidx',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','double_data','pidx',NULL,'');
+
+-- COLUMN double_data.unit_sig
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','double_data','unit_sig','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','double_data','unit_sig','bigint(20)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','double_data','unit_sig','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','double_data','unit_sig','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','double_data','unit_sig',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','double_data','unit_sig',NULL,'');
+
+-- INDEXES
+SELECT tap.indexes_are('_caosdb_schema_unit_tests','double_data','`domain_id`','');
+
+-- INDEX double_data.domain_id
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','double_data','domain_id','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','double_data','domain_id','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','double_data','`domain_id`,`entity_id`','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','double_data','`dou_domain_id_entity`,`dou_entity_id_entity`,`dou_property_id_entity`','');
+
+-- CONSTRAINT double_data.dou_domain_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','double_data','dou_domain_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','double_data','dou_domain_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','double_data','dou_domain_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','double_data','dou_domain_id_entity','RESTRICT','');
+
+-- CONSTRAINT double_data.dou_entity_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','double_data','dou_entity_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','double_data','dou_entity_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','double_data','dou_entity_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','double_data','dou_entity_id_entity','RESTRICT','');
+
+-- CONSTRAINT double_data.dou_property_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','double_data','dou_property_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','double_data','dou_property_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','double_data','dou_property_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','double_data','dou_property_id_entity','RESTRICT','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.entities
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','entities','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','entities','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','entities','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','entities','`id`,`name`,`description`,`role`,`acl`','');
+
+-- COLUMN entities.id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','entities','id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','entities','id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','entities','id','auto_increment','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','entities','id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','entities','id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','entities','id',NULL,'');
+
+-- COLUMN entities.name
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','entities','name','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','entities','name','varchar(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','entities','name','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','entities','name','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','entities','name','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','entities','name','utf8_unicode_ci','');
+
+-- COLUMN entities.description
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','entities','description','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','entities','description','text','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','entities','description','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','entities','description','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','entities','description','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','entities','description','utf8_unicode_ci','');
+
+-- COLUMN entities.role
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','entities','role','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','entities','role','enum(\'RECORDTYPE\',\'RECORD\',\'FILE\',\'DOMAIN\',\'PROPERTY\',\'DATATYPE\',\'ROLE\',\'QUERYTEMPLATE\')','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','entities','role','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','entities','role',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','entities','role','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','entities','role','utf8_unicode_ci','');
+
+-- COLUMN entities.acl
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','entities','acl','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','entities','acl','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','entities','acl','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','entities','acl','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','entities','acl',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','entities','acl',NULL,'');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','entities','`PRIMARY`,`entity_entity_acl`','');
+
+-- CONSTRAINT entities.entity_entity_acl
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','entities','entity_entity_acl','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','entities','entity_entity_acl','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','entities','entity_entity_acl','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','entities','entity_entity_acl','RESTRICT','');
+
+-- CONSTRAINT entities.PRIMARY
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','entities','PRIMARY','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','entities','PRIMARY','PRIMARY KEY','');
+SELECT tap.col_is_pk('_caosdb_schema_unit_tests','entities','`id`','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.entity_acl
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','entity_acl','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','entity_acl','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','entity_acl','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','entity_acl','`id`,`acl`','');
+
+-- COLUMN entity_acl.id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','entity_acl','id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','entity_acl','id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','entity_acl','id','auto_increment','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','entity_acl','id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','entity_acl','id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','entity_acl','id',NULL,'');
+
+-- COLUMN entity_acl.acl
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','entity_acl','acl','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','entity_acl','acl','varbinary(65525)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','entity_acl','acl','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','entity_acl','acl',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','entity_acl','acl',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','entity_acl','acl',NULL,'');
+
+-- INDEXES
+SELECT tap.indexes_are('_caosdb_schema_unit_tests','entity_acl','`entity_acl_acl`','');
+
+-- INDEX entity_acl.entity_acl_acl
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','entity_acl','entity_acl_acl','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','entity_acl','entity_acl_acl','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','entity_acl','`acl`','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','entity_acl','`PRIMARY`','');
+
+-- CONSTRAINT entity_acl.PRIMARY
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','entity_acl','PRIMARY','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','entity_acl','PRIMARY','PRIMARY KEY','');
+SELECT tap.col_is_pk('_caosdb_schema_unit_tests','entity_acl','`id`','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.enum_data
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','enum_data','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','enum_data','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','enum_data','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','enum_data','`domain_id`,`entity_id`,`property_id`,`value`,`status`,`pidx`','');
+
+-- COLUMN enum_data.domain_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','enum_data','domain_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','enum_data','domain_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','enum_data','domain_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','enum_data','domain_id','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','enum_data','domain_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','enum_data','domain_id',NULL,'');
+
+-- COLUMN enum_data.entity_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','enum_data','entity_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','enum_data','entity_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','enum_data','entity_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','enum_data','entity_id','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','enum_data','entity_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','enum_data','entity_id',NULL,'');
+
+-- COLUMN enum_data.property_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','enum_data','property_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','enum_data','property_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','enum_data','property_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','enum_data','property_id','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','enum_data','property_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','enum_data','property_id',NULL,'');
+
+-- COLUMN enum_data.value
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','enum_data','value','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','enum_data','value','varbinary(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','enum_data','value','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','enum_data','value',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','enum_data','value',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','enum_data','value',NULL,'');
+
+-- COLUMN enum_data.status
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','enum_data','status','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','enum_data','status','enum(\'OBLIGATORY\',\'RECOMMENDED\',\'SUGGESTED\',\'FIX\')','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','enum_data','status','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','enum_data','status','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','enum_data','status','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','enum_data','status','utf8_unicode_ci','');
+
+-- COLUMN enum_data.pidx
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','enum_data','pidx','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','enum_data','pidx','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','enum_data','pidx','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','enum_data','pidx',0,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','enum_data','pidx',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','enum_data','pidx',NULL,'');
+
+-- INDEXES
+SELECT tap.indexes_are('_caosdb_schema_unit_tests','enum_data','`enum_ov_dom_ent_idx`','');
+
+-- INDEX enum_data.enum_ov_dom_ent_idx
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','enum_data','enum_ov_dom_ent_idx','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','enum_data','enum_ov_dom_ent_idx','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','enum_data','`domain_id`,`entity_id`','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','enum_data','`enum_ov_forkey_dom`,`enum_ov_forkey_ent`,`enum_ov_forkey_pro`','');
+
+-- CONSTRAINT enum_data.enum_ov_forkey_dom
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','enum_data','enum_ov_forkey_dom','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','enum_data','enum_ov_forkey_dom','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','enum_data','enum_ov_forkey_dom','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','enum_data','enum_ov_forkey_dom','RESTRICT','');
+
+-- CONSTRAINT enum_data.enum_ov_forkey_ent
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','enum_data','enum_ov_forkey_ent','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','enum_data','enum_ov_forkey_ent','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','enum_data','enum_ov_forkey_ent','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','enum_data','enum_ov_forkey_ent','RESTRICT','');
+
+-- CONSTRAINT enum_data.enum_ov_forkey_pro
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','enum_data','enum_ov_forkey_pro','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','enum_data','enum_ov_forkey_pro','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','enum_data','enum_ov_forkey_pro','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','enum_data','enum_ov_forkey_pro','RESTRICT','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.files
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','files','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','files','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','files','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','files','`file_id`,`path`,`size`,`hash`,`checked_timestamp`','');
+
+-- COLUMN files.file_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','files','file_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','files','file_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','files','file_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','files','file_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','files','file_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','files','file_id',NULL,'');
+
+-- COLUMN files.path
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','files','path','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','files','path','varchar(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','files','path','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','files','path',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','files','path','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','files','path','utf8_unicode_ci','');
+
+-- COLUMN files.size
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','files','size','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','files','size','bigint(20) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','files','size','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','files','size',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','files','size',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','files','size',NULL,'');
+
+-- COLUMN files.hash
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','files','hash','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','files','hash','binary(64)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','files','hash','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','files','hash','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','files','hash',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','files','hash',NULL,'');
+
+-- COLUMN files.checked_timestamp
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','files','checked_timestamp','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','files','checked_timestamp','bigint(20)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','files','checked_timestamp','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','files','checked_timestamp',0,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','files','checked_timestamp',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','files','checked_timestamp',NULL,'');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','files','`PRIMARY`,`fil_file_id_entity`','');
+
+-- CONSTRAINT files.fil_file_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','files','fil_file_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','files','fil_file_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','files','fil_file_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','files','fil_file_id_entity','RESTRICT','');
+
+-- CONSTRAINT files.PRIMARY
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','files','PRIMARY','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','files','PRIMARY','PRIMARY KEY','');
+SELECT tap.col_is_pk('_caosdb_schema_unit_tests','files','`file_id`','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.integer_data
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','integer_data','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','integer_data','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','integer_data','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','integer_data','`domain_id`,`entity_id`,`property_id`,`value`,`status`,`pidx`,`unit_sig`','');
+
+-- COLUMN integer_data.domain_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','integer_data','domain_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','integer_data','domain_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','integer_data','domain_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','integer_data','domain_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','integer_data','domain_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','integer_data','domain_id',NULL,'');
+
+-- COLUMN integer_data.entity_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','integer_data','entity_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','integer_data','entity_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','integer_data','entity_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','integer_data','entity_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','integer_data','entity_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','integer_data','entity_id',NULL,'');
+
+-- COLUMN integer_data.property_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','integer_data','property_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','integer_data','property_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','integer_data','property_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','integer_data','property_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','integer_data','property_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','integer_data','property_id',NULL,'');
+
+-- COLUMN integer_data.value
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','integer_data','value','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','integer_data','value','bigint(20)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','integer_data','value','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','integer_data','value',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','integer_data','value',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','integer_data','value',NULL,'');
+
+-- COLUMN integer_data.status
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','integer_data','status','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','integer_data','status','enum(\'OBLIGATORY\',\'RECOMMENDED\',\'SUGGESTED\',\'FIX\',\'REPLACEMENT\')','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','integer_data','status','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','integer_data','status',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','integer_data','status','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','integer_data','status','utf8_unicode_ci','');
+
+-- COLUMN integer_data.pidx
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','integer_data','pidx','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','integer_data','pidx','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','integer_data','pidx','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','integer_data','pidx',0,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','integer_data','pidx',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','integer_data','pidx',NULL,'');
+
+-- COLUMN integer_data.unit_sig
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','integer_data','unit_sig','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','integer_data','unit_sig','bigint(20)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','integer_data','unit_sig','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','integer_data','unit_sig','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','integer_data','unit_sig',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','integer_data','unit_sig',NULL,'');
+
+-- INDEXES
+SELECT tap.indexes_are('_caosdb_schema_unit_tests','integer_data','`domain_id`','');
+
+-- INDEX integer_data.domain_id
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','integer_data','domain_id','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','integer_data','domain_id','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','integer_data','`domain_id`,`entity_id`','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','integer_data','`int_domain_id_entity`,`int_entity_id_entity`,`int_property_id_entity`','');
+
+-- CONSTRAINT integer_data.int_domain_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','integer_data','int_domain_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','integer_data','int_domain_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','integer_data','int_domain_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','integer_data','int_domain_id_entity','RESTRICT','');
+
+-- CONSTRAINT integer_data.int_entity_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','integer_data','int_entity_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','integer_data','int_entity_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','integer_data','int_entity_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','integer_data','int_entity_id_entity','RESTRICT','');
+
+-- CONSTRAINT integer_data.int_property_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','integer_data','int_property_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','integer_data','int_property_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','integer_data','int_property_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','integer_data','int_property_id_entity','RESTRICT','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.isa_cache
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','isa_cache','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','isa_cache','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','isa_cache','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','isa_cache','`child`,`parent`,`rpath`','');
+
+-- COLUMN isa_cache.child
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','isa_cache','child','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','isa_cache','child','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','isa_cache','child','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','isa_cache','child',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','isa_cache','child',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','isa_cache','child',NULL,'');
+
+-- COLUMN isa_cache.parent
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','isa_cache','parent','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','isa_cache','parent','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','isa_cache','parent','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','isa_cache','parent',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','isa_cache','parent',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','isa_cache','parent',NULL,'');
+
+-- COLUMN isa_cache.rpath
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','isa_cache','rpath','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','isa_cache','rpath','varchar(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','isa_cache','rpath','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','isa_cache','rpath',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','isa_cache','rpath','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','isa_cache','rpath','utf8_unicode_ci','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','isa_cache','`PRIMARY`,`isa_cache_child_entity`,`isa_cache_parent_entity`','');
+
+-- CONSTRAINT isa_cache.isa_cache_child_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','isa_cache','isa_cache_child_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','isa_cache','isa_cache_child_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','isa_cache','isa_cache_child_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','isa_cache','isa_cache_child_entity','RESTRICT','');
+
+-- CONSTRAINT isa_cache.isa_cache_parent_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','isa_cache','isa_cache_parent_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','isa_cache','isa_cache_parent_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','isa_cache','isa_cache_parent_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','isa_cache','isa_cache_parent_entity','RESTRICT','');
+
+-- CONSTRAINT isa_cache.PRIMARY
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','isa_cache','PRIMARY','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','isa_cache','PRIMARY','PRIMARY KEY','');
+SELECT tap.col_is_pk('_caosdb_schema_unit_tests','isa_cache','`child`,`parent`,`rpath`','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.logging
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','logging','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','logging','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','logging','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','logging','`level`,`logger`,`message`,`millis`,`logRecord`','');
+
+-- COLUMN logging.level
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','logging','level','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','logging','level','int(11)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','logging','level','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','logging','level',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','logging','level',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','logging','level',NULL,'');
+
+-- COLUMN logging.logger
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','logging','logger','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','logging','logger','varchar(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','logging','logger','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','logging','logger',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','logging','logger','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','logging','logger','utf8_unicode_ci','');
+
+-- COLUMN logging.message
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','logging','message','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','logging','message','mediumtext','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','logging','message','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','logging','message',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','logging','message','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','logging','message','utf8_unicode_ci','');
+
+-- COLUMN logging.millis
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','logging','millis','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','logging','millis','bigint(20)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','logging','millis','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','logging','millis',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','logging','millis',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','logging','millis',NULL,'');
+
+-- COLUMN logging.logRecord
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','logging','logRecord','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','logging','logRecord','blob','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','logging','logRecord','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','logging','logRecord',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','logging','logRecord',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','logging','logRecord',NULL,'');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.name_data
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','name_data','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','name_data','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','name_data','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','name_data','`domain_id`,`entity_id`,`property_id`,`value`,`status`,`pidx`','');
+
+-- COLUMN name_data.domain_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','name_data','domain_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','name_data','domain_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','name_data','domain_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','name_data','domain_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','name_data','domain_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','name_data','domain_id',NULL,'');
+
+-- COLUMN name_data.entity_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','name_data','entity_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','name_data','entity_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','name_data','entity_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','name_data','entity_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','name_data','entity_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','name_data','entity_id',NULL,'');
+
+-- COLUMN name_data.property_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','name_data','property_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','name_data','property_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','name_data','property_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','name_data','property_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','name_data','property_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','name_data','property_id',NULL,'');
+
+-- COLUMN name_data.value
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','name_data','value','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','name_data','value','varchar(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','name_data','value','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','name_data','value',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','name_data','value','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','name_data','value','utf8_unicode_ci','');
+
+-- COLUMN name_data.status
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','name_data','status','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','name_data','status','enum(\'OBLIGATORY\',\'RECOMMENDED\',\'SUGGESTED\',\'FIX\',\'REPLACEMENT\')','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','name_data','status','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','name_data','status',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','name_data','status','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','name_data','status','utf8_unicode_ci','');
+
+-- COLUMN name_data.pidx
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','name_data','pidx','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','name_data','pidx','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','name_data','pidx','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','name_data','pidx',0,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','name_data','pidx',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','name_data','pidx',NULL,'');
+
+-- INDEXES
+SELECT tap.indexes_are('_caosdb_schema_unit_tests','name_data','`domain_id`,`entity_id`,`property_id`,`value`','');
+
+-- INDEX name_data.domain_id
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','name_data','domain_id','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','name_data','domain_id','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','name_data','`domain_id`,`entity_id`','');
+
+-- INDEX name_data.entity_id
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','name_data','entity_id','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','name_data','entity_id','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','name_data','`entity_id`','');
+
+-- INDEX name_data.property_id
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','name_data','property_id','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','name_data','property_id','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','name_data','`property_id`','');
+
+-- INDEX name_data.value
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','name_data','value','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','name_data','value','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','name_data','`value`','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','name_data','`name_data_domain_id_entity`,`name_data_entity_id_entity`,`name_data_property_id_entity`','');
+
+-- CONSTRAINT name_data.name_data_domain_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','name_data','name_data_domain_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','name_data','name_data_domain_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','name_data','name_data_domain_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','name_data','name_data_domain_id_entity','RESTRICT','');
+
+-- CONSTRAINT name_data.name_data_entity_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','name_data','name_data_entity_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','name_data','name_data_entity_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','name_data','name_data_entity_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','name_data','name_data_entity_id_entity','RESTRICT','');
+
+-- CONSTRAINT name_data.name_data_property_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','name_data','name_data_property_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','name_data','name_data_property_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','name_data','name_data_property_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','name_data','name_data_property_id_entity','RESTRICT','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.name_overrides
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','name_overrides','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','name_overrides','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','name_overrides','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','name_overrides','`domain_id`,`entity_id`,`property_id`,`name`','');
+
+-- COLUMN name_overrides.domain_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','name_overrides','domain_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','name_overrides','domain_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','name_overrides','domain_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','name_overrides','domain_id','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','name_overrides','domain_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','name_overrides','domain_id',NULL,'');
+
+-- COLUMN name_overrides.entity_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','name_overrides','entity_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','name_overrides','entity_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','name_overrides','entity_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','name_overrides','entity_id','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','name_overrides','entity_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','name_overrides','entity_id',NULL,'');
+
+-- COLUMN name_overrides.property_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','name_overrides','property_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','name_overrides','property_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','name_overrides','property_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','name_overrides','property_id','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','name_overrides','property_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','name_overrides','property_id',NULL,'');
+
+-- COLUMN name_overrides.name
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','name_overrides','name','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','name_overrides','name','varchar(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','name_overrides','name','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','name_overrides','name','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','name_overrides','name','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','name_overrides','name','utf8_unicode_ci','');
+
+-- INDEXES
+SELECT tap.indexes_are('_caosdb_schema_unit_tests','name_overrides','`name_ov_dom_ent_idx`','');
+
+-- INDEX name_overrides.name_ov_dom_ent_idx
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','name_overrides','name_ov_dom_ent_idx','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','name_overrides','name_ov_dom_ent_idx','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','name_overrides','`domain_id`,`entity_id`','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','name_overrides','`name_ov_ukey`,`name_ov_forkey_dom`,`name_ov_forkey_ent`,`name_ov_forkey_pro`','');
+
+-- CONSTRAINT name_overrides.name_ov_forkey_dom
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','name_overrides','name_ov_forkey_dom','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','name_overrides','name_ov_forkey_dom','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','name_overrides','name_ov_forkey_dom','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','name_overrides','name_ov_forkey_dom','RESTRICT','');
+
+-- CONSTRAINT name_overrides.name_ov_forkey_ent
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','name_overrides','name_ov_forkey_ent','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','name_overrides','name_ov_forkey_ent','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','name_overrides','name_ov_forkey_ent','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','name_overrides','name_ov_forkey_ent','RESTRICT','');
+
+-- CONSTRAINT name_overrides.name_ov_forkey_pro
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','name_overrides','name_ov_forkey_pro','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','name_overrides','name_ov_forkey_pro','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','name_overrides','name_ov_forkey_pro','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','name_overrides','name_ov_forkey_pro','RESTRICT','');
+
+-- CONSTRAINT name_overrides.name_ov_ukey
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','name_overrides','name_ov_ukey','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','name_overrides','name_ov_ukey','UNIQUE','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.null_data
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','null_data','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','null_data','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','null_data','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','null_data','`domain_id`,`entity_id`,`property_id`,`status`,`pidx`','');
+
+-- COLUMN null_data.domain_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','null_data','domain_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','null_data','domain_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','null_data','domain_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','null_data','domain_id','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','null_data','domain_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','null_data','domain_id',NULL,'');
+
+-- COLUMN null_data.entity_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','null_data','entity_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','null_data','entity_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','null_data','entity_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','null_data','entity_id','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','null_data','entity_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','null_data','entity_id',NULL,'');
+
+-- COLUMN null_data.property_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','null_data','property_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','null_data','property_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','null_data','property_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','null_data','property_id','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','null_data','property_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','null_data','property_id',NULL,'');
+
+-- COLUMN null_data.status
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','null_data','status','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','null_data','status','enum(\'OBLIGATORY\',\'RECOMMENDED\',\'SUGGESTED\',\'FIX\')','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','null_data','status','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','null_data','status','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','null_data','status','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','null_data','status','utf8_unicode_ci','');
+
+-- COLUMN null_data.pidx
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','null_data','pidx','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','null_data','pidx','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','null_data','pidx','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','null_data','pidx',0,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','null_data','pidx',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','null_data','pidx',NULL,'');
+
+-- INDEXES
+SELECT tap.indexes_are('_caosdb_schema_unit_tests','null_data','`null_data_dom_ent_idx`','');
+
+-- INDEX null_data.null_data_dom_ent_idx
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','null_data','null_data_dom_ent_idx','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','null_data','null_data_dom_ent_idx','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','null_data','`domain_id`,`entity_id`','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','null_data','`null_forkey_dom`,`null_forkey_ent`,`null_forkey_pro`','');
+
+-- CONSTRAINT null_data.null_forkey_dom
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','null_data','null_forkey_dom','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','null_data','null_forkey_dom','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','null_data','null_forkey_dom','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','null_data','null_forkey_dom','RESTRICT','');
+
+-- CONSTRAINT null_data.null_forkey_ent
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','null_data','null_forkey_ent','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','null_data','null_forkey_ent','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','null_data','null_forkey_ent','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','null_data','null_forkey_ent','RESTRICT','');
+
+-- CONSTRAINT null_data.null_forkey_pro
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','null_data','null_forkey_pro','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','null_data','null_forkey_pro','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','null_data','null_forkey_pro','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','null_data','null_forkey_pro','RESTRICT','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.passwd
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','passwd','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','passwd','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','passwd','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','passwd','`principal`,`hash`,`alg`,`it`,`salt`','');
+
+-- COLUMN passwd.principal
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','passwd','principal','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','passwd','principal','varbinary(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','passwd','principal','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','passwd','principal',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','passwd','principal',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','passwd','principal',NULL,'');
+
+-- COLUMN passwd.hash
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','passwd','hash','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','passwd','hash','varbinary(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','passwd','hash','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','passwd','hash',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','passwd','hash',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','passwd','hash',NULL,'');
+
+-- COLUMN passwd.alg
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','passwd','alg','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','passwd','alg','varchar(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','passwd','alg','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','passwd','alg','\'SHA-512\'','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','passwd','alg','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','passwd','alg','utf8_unicode_ci','');
+
+-- COLUMN passwd.it
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','passwd','it','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','passwd','it','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','passwd','it','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','passwd','it',5000,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','passwd','it',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','passwd','it',NULL,'');
+
+-- COLUMN passwd.salt
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','passwd','salt','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','passwd','salt','varbinary(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','passwd','salt','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','passwd','salt',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','passwd','salt',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','passwd','salt',NULL,'');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','passwd','`PRIMARY`','');
+
+-- CONSTRAINT passwd.PRIMARY
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','passwd','PRIMARY','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','passwd','PRIMARY','PRIMARY KEY','');
+SELECT tap.col_is_pk('_caosdb_schema_unit_tests','passwd','`principal`','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.permissions
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','permissions','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','permissions','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','permissions','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','permissions','`role`,`permissions`','');
+
+-- COLUMN permissions.role
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','permissions','role','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','permissions','role','varbinary(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','permissions','role','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','permissions','role',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','permissions','role',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','permissions','role',NULL,'');
+
+-- COLUMN permissions.permissions
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','permissions','permissions','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','permissions','permissions','mediumtext','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','permissions','permissions','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','permissions','permissions',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','permissions','permissions','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','permissions','permissions','utf8_unicode_ci','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','permissions','`PRIMARY`,`perm_name_roles`','');
+
+-- CONSTRAINT permissions.perm_name_roles
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','permissions','perm_name_roles','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','permissions','perm_name_roles','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','permissions','perm_name_roles','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','permissions','perm_name_roles','RESTRICT','');
+
+-- CONSTRAINT permissions.PRIMARY
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','permissions','PRIMARY','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','permissions','PRIMARY','PRIMARY KEY','');
+SELECT tap.col_is_pk('_caosdb_schema_unit_tests','permissions','`role`','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.query_template_def
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','query_template_def','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','query_template_def','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','query_template_def','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','query_template_def','`id`,`definition`','');
+
+-- COLUMN query_template_def.id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','query_template_def','id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','query_template_def','id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','query_template_def','id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','query_template_def','id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','query_template_def','id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','query_template_def','id',NULL,'');
+
+-- COLUMN query_template_def.definition
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','query_template_def','definition','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','query_template_def','definition','mediumtext','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','query_template_def','definition','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','query_template_def','definition',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','query_template_def','definition','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','query_template_def','definition','utf8_unicode_ci','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','query_template_def','`PRIMARY`,`query_template_def_ibfk_1`','');
+
+-- CONSTRAINT query_template_def.PRIMARY
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','query_template_def','PRIMARY','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','query_template_def','PRIMARY','PRIMARY KEY','');
+SELECT tap.col_is_pk('_caosdb_schema_unit_tests','query_template_def','`id`','');
+
+-- CONSTRAINT query_template_def.query_template_def_ibfk_1
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','query_template_def','query_template_def_ibfk_1','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','query_template_def','query_template_def_ibfk_1','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','query_template_def','query_template_def_ibfk_1','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','query_template_def','query_template_def_ibfk_1','RESTRICT','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.reference_data
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','reference_data','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','reference_data','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','reference_data','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','reference_data','`domain_id`,`entity_id`,`property_id`,`value`,`status`,`pidx`','');
+
+-- COLUMN reference_data.domain_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','reference_data','domain_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','reference_data','domain_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','reference_data','domain_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','reference_data','domain_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','reference_data','domain_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','reference_data','domain_id',NULL,'');
+
+-- COLUMN reference_data.entity_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','reference_data','entity_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','reference_data','entity_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','reference_data','entity_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','reference_data','entity_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','reference_data','entity_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','reference_data','entity_id',NULL,'');
+
+-- COLUMN reference_data.property_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','reference_data','property_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','reference_data','property_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','reference_data','property_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','reference_data','property_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','reference_data','property_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','reference_data','property_id',NULL,'');
+
+-- COLUMN reference_data.value
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','reference_data','value','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','reference_data','value','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','reference_data','value','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','reference_data','value',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','reference_data','value',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','reference_data','value',NULL,'');
+
+-- COLUMN reference_data.status
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','reference_data','status','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','reference_data','status','enum(\'OBLIGATORY\',\'RECOMMENDED\',\'SUGGESTED\',\'FIX\',\'REPLACEMENT\')','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','reference_data','status','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','reference_data','status',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','reference_data','status','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','reference_data','status','utf8_unicode_ci','');
+
+-- COLUMN reference_data.pidx
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','reference_data','pidx','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','reference_data','pidx','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','reference_data','pidx','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','reference_data','pidx',0,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','reference_data','pidx',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','reference_data','pidx',NULL,'');
+
+-- INDEXES
+SELECT tap.indexes_are('_caosdb_schema_unit_tests','reference_data','`entity_id`','');
+
+-- INDEX reference_data.entity_id
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','reference_data','entity_id','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','reference_data','entity_id','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','reference_data','`entity_id`,`property_id`','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','reference_data','`ref_domain_id_entity`,`ref_entity_id_entity`,`ref_property_id_entity`,`ref_value_entity`','');
+
+-- CONSTRAINT reference_data.ref_domain_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','reference_data','ref_domain_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','reference_data','ref_domain_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','reference_data','ref_domain_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','reference_data','ref_domain_id_entity','RESTRICT','');
+
+-- CONSTRAINT reference_data.ref_entity_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','reference_data','ref_entity_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','reference_data','ref_entity_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','reference_data','ref_entity_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','reference_data','ref_entity_id_entity','RESTRICT','');
+
+-- CONSTRAINT reference_data.ref_property_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','reference_data','ref_property_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','reference_data','ref_property_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','reference_data','ref_property_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','reference_data','ref_property_id_entity','RESTRICT','');
+
+-- CONSTRAINT reference_data.ref_value_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','reference_data','ref_value_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','reference_data','ref_value_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','reference_data','ref_value_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','reference_data','ref_value_entity','RESTRICT','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.roles
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','roles','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','roles','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','roles','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','roles','`name`,`description`','');
+
+-- COLUMN roles.name
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','roles','name','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','roles','name','varbinary(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','roles','name','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','roles','name',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','roles','name',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','roles','name',NULL,'');
+
+-- COLUMN roles.description
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','roles','description','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','roles','description','mediumtext','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','roles','description','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','roles','description','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','roles','description','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','roles','description','utf8_unicode_ci','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','roles','`PRIMARY`','');
+
+-- CONSTRAINT roles.PRIMARY
+
+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
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','stats','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','stats','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','stats','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','stats','`name`,`value`','');
+
+-- COLUMN stats.name
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','stats','name','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','stats','name','varchar(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','stats','name','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','stats','name',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','stats','name','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','stats','name','utf8_unicode_ci','');
+
+-- COLUMN stats.value
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','stats','value','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','stats','value','blob','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','stats','value','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','stats','value','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','stats','value',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','stats','value',NULL,'');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','stats','`PRIMARY`','');
+
+-- CONSTRAINT stats.PRIMARY
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','stats','PRIMARY','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','stats','PRIMARY','PRIMARY KEY','');
+SELECT tap.col_is_pk('_caosdb_schema_unit_tests','stats','`name`','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.text_data
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','text_data','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','text_data','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','text_data','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','text_data','`domain_id`,`entity_id`,`property_id`,`value`,`status`,`pidx`','');
+
+-- COLUMN text_data.domain_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','text_data','domain_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','text_data','domain_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','text_data','domain_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','text_data','domain_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','text_data','domain_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','text_data','domain_id',NULL,'');
+
+-- COLUMN text_data.entity_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','text_data','entity_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','text_data','entity_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','text_data','entity_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','text_data','entity_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','text_data','entity_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','text_data','entity_id',NULL,'');
+
+-- COLUMN text_data.property_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','text_data','property_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','text_data','property_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','text_data','property_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','text_data','property_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','text_data','property_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','text_data','property_id',NULL,'');
+
+-- COLUMN text_data.value
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','text_data','value','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','text_data','value','text','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','text_data','value','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','text_data','value',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','text_data','value','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','text_data','value','utf8_unicode_ci','');
+
+-- COLUMN text_data.status
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','text_data','status','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','text_data','status','enum(\'OBLIGATORY\',\'RECOMMENDED\',\'SUGGESTED\',\'FIX\',\'REPLACEMENT\')','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','text_data','status','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','text_data','status',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','text_data','status','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','text_data','status','utf8_unicode_ci','');
+
+-- COLUMN text_data.pidx
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','text_data','pidx','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','text_data','pidx','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','text_data','pidx','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','text_data','pidx',0,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','text_data','pidx',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','text_data','pidx',NULL,'');
+
+-- INDEXES
+SELECT tap.indexes_are('_caosdb_schema_unit_tests','text_data','`domain_id`','');
+
+-- INDEX text_data.domain_id
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','text_data','domain_id','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','text_data','domain_id','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','text_data','`domain_id`,`entity_id`','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','text_data','`str_domain_id_entity`,`str_entity_id_entity`,`str_property_id_entity`','');
+
+-- CONSTRAINT text_data.str_domain_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','text_data','str_domain_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','text_data','str_domain_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','text_data','str_domain_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','text_data','str_domain_id_entity','RESTRICT','');
+
+-- CONSTRAINT text_data.str_entity_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','text_data','str_entity_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','text_data','str_entity_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','text_data','str_entity_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','text_data','str_entity_id_entity','RESTRICT','');
+
+-- CONSTRAINT text_data.str_property_id_entity
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','text_data','str_property_id_entity','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','text_data','str_property_id_entity','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','text_data','str_property_id_entity','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','text_data','str_property_id_entity','RESTRICT','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.transaction_log
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','transaction_log','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','transaction_log','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','transaction_log','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','transaction_log','`transaction`,`entity_id`,`username`,`seconds`,`nanos`,`realm`','');
+
+-- COLUMN transaction_log.transaction
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','transaction_log','transaction','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','transaction_log','transaction','varchar(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','transaction_log','transaction','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','transaction_log','transaction',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','transaction_log','transaction','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','transaction_log','transaction','utf8_unicode_ci','');
+
+-- COLUMN transaction_log.entity_id
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','transaction_log','entity_id','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','transaction_log','entity_id','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','transaction_log','entity_id','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','transaction_log','entity_id',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','transaction_log','entity_id',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','transaction_log','entity_id',NULL,'');
+
+-- COLUMN transaction_log.username
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','transaction_log','username','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','transaction_log','username','varbinary(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','transaction_log','username','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','transaction_log','username',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','transaction_log','username',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','transaction_log','username',NULL,'');
+
+-- COLUMN transaction_log.seconds
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','transaction_log','seconds','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','transaction_log','seconds','bigint(20) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','transaction_log','seconds','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','transaction_log','seconds',0,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','transaction_log','seconds',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','transaction_log','seconds',NULL,'');
+
+-- COLUMN transaction_log.nanos
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','transaction_log','nanos','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','transaction_log','nanos','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','transaction_log','nanos','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','transaction_log','nanos',0,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','transaction_log','nanos',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','transaction_log','nanos',NULL,'');
+
+-- COLUMN transaction_log.realm
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','transaction_log','realm','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','transaction_log','realm','varbinary(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','transaction_log','realm','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','transaction_log','realm',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','transaction_log','realm',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','transaction_log','realm',NULL,'');
+
+-- INDEXES
+SELECT tap.indexes_are('_caosdb_schema_unit_tests','transaction_log','`entity_id`','');
+
+-- INDEX transaction_log.entity_id
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','transaction_log','entity_id','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','transaction_log','entity_id','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','transaction_log','`entity_id`','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.units_lin_con
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','units_lin_con','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','units_lin_con','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','units_lin_con','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','units_lin_con','`signature_from`,`signature_to`,`a`,`b_dividend`,`b_divisor`,`c`','');
+
+-- COLUMN units_lin_con.signature_from
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','units_lin_con','signature_from','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','units_lin_con','signature_from','bigint(20)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','units_lin_con','signature_from','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','units_lin_con','signature_from',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','units_lin_con','signature_from',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','units_lin_con','signature_from',NULL,'');
+
+-- COLUMN units_lin_con.signature_to
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','units_lin_con','signature_to','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','units_lin_con','signature_to','bigint(20)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','units_lin_con','signature_to','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','units_lin_con','signature_to',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','units_lin_con','signature_to',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','units_lin_con','signature_to',NULL,'');
+
+-- COLUMN units_lin_con.a
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','units_lin_con','a','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','units_lin_con','a','decimal(65,30)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','units_lin_con','a','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','units_lin_con','a',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','units_lin_con','a',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','units_lin_con','a',NULL,'');
+
+-- COLUMN units_lin_con.b_dividend
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','units_lin_con','b_dividend','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','units_lin_con','b_dividend','int(11)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','units_lin_con','b_dividend','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','units_lin_con','b_dividend',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','units_lin_con','b_dividend',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','units_lin_con','b_dividend',NULL,'');
+
+-- COLUMN units_lin_con.b_divisor
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','units_lin_con','b_divisor','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','units_lin_con','b_divisor','int(11)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','units_lin_con','b_divisor','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','units_lin_con','b_divisor',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','units_lin_con','b_divisor',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','units_lin_con','b_divisor',NULL,'');
+
+-- COLUMN units_lin_con.c
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','units_lin_con','c','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','units_lin_con','c','decimal(65,30)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','units_lin_con','c','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','units_lin_con','c',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','units_lin_con','c',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','units_lin_con','c',NULL,'');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','units_lin_con','`PRIMARY`','');
+
+-- CONSTRAINT units_lin_con.PRIMARY
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','units_lin_con','PRIMARY','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','units_lin_con','PRIMARY','PRIMARY KEY','');
+SELECT tap.col_is_pk('_caosdb_schema_unit_tests','units_lin_con','`signature_from`','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.user_info
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','user_info','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','user_info','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','user_info','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','user_info','`realm`,`name`,`email`,`status`,`entity`','');
+
+-- COLUMN user_info.realm
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','user_info','realm','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','user_info','realm','varbinary(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','user_info','realm','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','user_info','realm',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','user_info','realm',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','user_info','realm',NULL,'');
+
+-- COLUMN user_info.name
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','user_info','name','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','user_info','name','varbinary(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','user_info','name','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','user_info','name',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','user_info','name',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','user_info','name',NULL,'');
+
+-- COLUMN user_info.email
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','user_info','email','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','user_info','email','varbinary(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','user_info','email','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','user_info','email','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','user_info','email',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','user_info','email',NULL,'');
+
+-- COLUMN user_info.status
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','user_info','status','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','user_info','status','enum(\'ACTIVE\',\'INACTIVE\')','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','user_info','status','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','user_info','status','\'INACTIVE\'','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','user_info','status','utf8','');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','user_info','status','utf8_unicode_ci','');
+
+-- COLUMN user_info.entity
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','user_info','entity','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','user_info','entity','int(10) unsigned','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','user_info','entity','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','user_info','entity','NULL','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','user_info','entity',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','user_info','entity',NULL,'');
+
+-- INDEXES
+SELECT tap.indexes_are('_caosdb_schema_unit_tests','user_info','`subject_entity`','');
+
+-- INDEX user_info.subject_entity
+
+SELECT tap.has_index('_caosdb_schema_unit_tests','user_info','subject_entity','');
+SELECT tap.index_is_type('_caosdb_schema_unit_tests','user_info','subject_entity','BTREE','');
+SELECT tap.is_indexed('_caosdb_schema_unit_tests','user_info','`entity`','');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','user_info','`PRIMARY`,`subjects_ibfk_1`','');
+
+-- CONSTRAINT user_info.PRIMARY
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','user_info','PRIMARY','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','user_info','PRIMARY','PRIMARY KEY','');
+SELECT tap.col_is_pk('_caosdb_schema_unit_tests','user_info','`realm`,`name`','');
+
+-- CONSTRAINT user_info.subjects_ibfk_1
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','user_info','subjects_ibfk_1','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','user_info','subjects_ibfk_1','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','user_info','subjects_ibfk_1','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','user_info','subjects_ibfk_1','RESTRICT','');
+
+-- ***************************************************************
+-- TABLE _caosdb_schema_unit_tests.user_roles
+-- ***************************************************************
+
+SELECT tap.has_table('_caosdb_schema_unit_tests','user_roles','');
+SELECT tap.table_collation_is('_caosdb_schema_unit_tests','user_roles','utf8_unicode_ci','');
+SELECT tap.table_engine_is('_caosdb_schema_unit_tests','user_roles','InnoDB','');
+
+-- COLUMNS
+SELECT tap.columns_are('_caosdb_schema_unit_tests','user_roles','`realm`,`user`,`role`','');
+
+-- COLUMN user_roles.realm
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','user_roles','realm','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','user_roles','realm','varbinary(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','user_roles','realm','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','user_roles','realm',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','user_roles','realm',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','user_roles','realm',NULL,'');
+
+-- COLUMN user_roles.user
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','user_roles','user','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','user_roles','user','varbinary(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','user_roles','user','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','user_roles','user',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','user_roles','user',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','user_roles','user',NULL,'');
+
+-- COLUMN user_roles.role
+
+SELECT tap.has_column('_caosdb_schema_unit_tests','user_roles','role','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','user_roles','role','varbinary(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','user_roles','role','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','user_roles','role',NULL,'');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','user_roles','role',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','user_roles','role',NULL,'');
+
+-- CONSTRAINTS
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','user_roles','`PRIMARY`,`user_roles_ibfk_1`','');
+
+-- CONSTRAINT user_roles.PRIMARY
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','user_roles','PRIMARY','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','user_roles','PRIMARY','PRIMARY KEY','');
+SELECT tap.col_is_pk('_caosdb_schema_unit_tests','user_roles','`realm`,`user`,`role`','');
+
+-- CONSTRAINT user_roles.user_roles_ibfk_1
+
+SELECT tap.has_constraint('_caosdb_schema_unit_tests','user_roles','user_roles_ibfk_1','');
+SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','user_roles','user_roles_ibfk_1','FOREIGN KEY','');
+SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','user_roles','user_roles_ibfk_1','RESTRICT','');
+SELECT tap.fk_on_update('_caosdb_schema_unit_tests','user_roles','user_roles_ibfk_1','RESTRICT','');
+
+-- ***************************************************************
+-- FUNCTIONS 
+-- ***************************************************************
+
+SELECT tap.routines_are('_caosdb_schema_unit_tests','FUNCTION','`CaosDBVersion`,`convert_unit`,`constructDateTimeWhereClauseForColumn`,`getAggValueWhereClause`,`getDateTimeWhereClause`,`getDoubleWhereClause`,`getDateWhereClause`,`makeStmt`,`standard_unit`','');
+
+-- FUNCTION _caosdb_schema_unit_tests.CaosDBVersion
+
+SELECT tap.has_function('_caosdb_schema_unit_tests','CaosDBVersion','');
+SELECT tap.function_is_deterministic('_caosdb_schema_unit_tests','CaosDBVersion','YES','');
+SELECT tap.function_data_type_is('_caosdb_schema_unit_tests','CaosDBVersion','varchar','');
+SELECT tap.function_security_type_is('_caosdb_schema_unit_tests','CaosDBVersion','DEFINER','');
+SELECT tap.function_sql_data_access_is('_caosdb_schema_unit_tests','CaosDBVersion','CONTAINS SQL','');
+
+-- FUNCTION _caosdb_schema_unit_tests.convert_unit
+
+SELECT tap.has_function('_caosdb_schema_unit_tests','convert_unit','');
+SELECT tap.function_is_deterministic('_caosdb_schema_unit_tests','convert_unit','YES','');
+SELECT tap.function_data_type_is('_caosdb_schema_unit_tests','convert_unit','decimal','');
+SELECT tap.function_security_type_is('_caosdb_schema_unit_tests','convert_unit','DEFINER','');
+SELECT tap.function_sql_data_access_is('_caosdb_schema_unit_tests','convert_unit','CONTAINS SQL','');
+
+-- FUNCTION _caosdb_schema_unit_tests.constructDateTimeWhereClauseForColumn
+
+SELECT tap.has_function('_caosdb_schema_unit_tests','constructDateTimeWhereClauseForColumn','');
+SELECT tap.function_is_deterministic('_caosdb_schema_unit_tests','constructDateTimeWhereClauseForColumn','YES','');
+SELECT tap.function_data_type_is('_caosdb_schema_unit_tests','constructDateTimeWhereClauseForColumn','varchar','');
+SELECT tap.function_security_type_is('_caosdb_schema_unit_tests','constructDateTimeWhereClauseForColumn','DEFINER','');
+SELECT tap.function_sql_data_access_is('_caosdb_schema_unit_tests','constructDateTimeWhereClauseForColumn','CONTAINS SQL','');
+
+-- FUNCTION _caosdb_schema_unit_tests.getAggValueWhereClause
+
+SELECT tap.has_function('_caosdb_schema_unit_tests','getAggValueWhereClause','');
+SELECT tap.function_is_deterministic('_caosdb_schema_unit_tests','getAggValueWhereClause','YES','');
+SELECT tap.function_data_type_is('_caosdb_schema_unit_tests','getAggValueWhereClause','varchar','');
+SELECT tap.function_security_type_is('_caosdb_schema_unit_tests','getAggValueWhereClause','DEFINER','');
+SELECT tap.function_sql_data_access_is('_caosdb_schema_unit_tests','getAggValueWhereClause','CONTAINS SQL','');
+
+-- FUNCTION _caosdb_schema_unit_tests.getDateTimeWhereClause
+
+SELECT tap.has_function('_caosdb_schema_unit_tests','getDateTimeWhereClause','');
+SELECT tap.function_is_deterministic('_caosdb_schema_unit_tests','getDateTimeWhereClause','YES','');
+SELECT tap.function_data_type_is('_caosdb_schema_unit_tests','getDateTimeWhereClause','varchar','');
+SELECT tap.function_security_type_is('_caosdb_schema_unit_tests','getDateTimeWhereClause','DEFINER','');
+SELECT tap.function_sql_data_access_is('_caosdb_schema_unit_tests','getDateTimeWhereClause','CONTAINS SQL','');
+
+-- FUNCTION _caosdb_schema_unit_tests.getDoubleWhereClause
+
+SELECT tap.has_function('_caosdb_schema_unit_tests','getDoubleWhereClause','');
+SELECT tap.function_is_deterministic('_caosdb_schema_unit_tests','getDoubleWhereClause','YES','');
+SELECT tap.function_data_type_is('_caosdb_schema_unit_tests','getDoubleWhereClause','varchar','');
+SELECT tap.function_security_type_is('_caosdb_schema_unit_tests','getDoubleWhereClause','DEFINER','');
+SELECT tap.function_sql_data_access_is('_caosdb_schema_unit_tests','getDoubleWhereClause','CONTAINS SQL','');
+
+-- FUNCTION _caosdb_schema_unit_tests.getDateWhereClause
+
+SELECT tap.has_function('_caosdb_schema_unit_tests','getDateWhereClause','');
+SELECT tap.function_is_deterministic('_caosdb_schema_unit_tests','getDateWhereClause','YES','');
+SELECT tap.function_data_type_is('_caosdb_schema_unit_tests','getDateWhereClause','varchar','');
+SELECT tap.function_security_type_is('_caosdb_schema_unit_tests','getDateWhereClause','DEFINER','');
+SELECT tap.function_sql_data_access_is('_caosdb_schema_unit_tests','getDateWhereClause','CONTAINS SQL','');
+
+-- FUNCTION _caosdb_schema_unit_tests.makeStmt
+
+SELECT tap.has_function('_caosdb_schema_unit_tests','makeStmt','');
+SELECT tap.function_is_deterministic('_caosdb_schema_unit_tests','makeStmt','NO','');
+SELECT tap.function_data_type_is('_caosdb_schema_unit_tests','makeStmt','varchar','');
+SELECT tap.function_security_type_is('_caosdb_schema_unit_tests','makeStmt','DEFINER','');
+SELECT tap.function_sql_data_access_is('_caosdb_schema_unit_tests','makeStmt','NO SQL','');
+
+-- FUNCTION _caosdb_schema_unit_tests.standard_unit
+
+SELECT tap.has_function('_caosdb_schema_unit_tests','standard_unit','');
+SELECT tap.function_is_deterministic('_caosdb_schema_unit_tests','standard_unit','YES','');
+SELECT tap.function_data_type_is('_caosdb_schema_unit_tests','standard_unit','bigint','');
+SELECT tap.function_security_type_is('_caosdb_schema_unit_tests','standard_unit','DEFINER','');
+SELECT tap.function_sql_data_access_is('_caosdb_schema_unit_tests','standard_unit','CONTAINS SQL','');
+
+-- ***************************************************************
+-- PROCEDURES 
+-- ***************************************************************
+
+SELECT tap.routines_are('_caosdb_schema_unit_tests','PROCEDURE','`applyBackReference`,`applyPOV`,`applyRefPOV`,`applyIDFilter`,`applySAT`,`applyTransactionFilter`,`calcComplementUnion`,`calcDifference`,`calcIntersection`,`calcUnion`,`cleanUpLinCon`,`cleanUpQuery`,`copyTable`,`createTmpTable`,`createTmpTable2`,`deleteEntity`,`deleteEntityProperties`,`deleteIsa`,`deleteLinCon`,`entityACL`,`finishNegationFilter`,`finishSubProperty`,`getChildren`,`getFileIdByPath`,`getRole`,`getRules`,`initAutoIncrement`,`initBackReference`,`getFile`,`initConjunctionFilter`,`initDisjunctionFilter`,`initNegationFilter`,`initPOVRefidsTable`,`initQuery`,`insertEntity`,`getDependentEntities`,`initEmptyTargetSet`,`initEntity`,`insertLinCon`,`insertUser`,`intersectTable`,`initPOVPropertiesTable`,`initSubEntity`,`isSubtype`,`overrideDesc`,`overrideName`,`overrideType`,`raiseWarning`,`registerSubdomain`,`initSubProperty`,`insertEntityProperty`,`registerTempTableName`,`retrieveDatatype`,`retrieveEntityParents`,`retrieveGroup`,`setPassword`,`insertIsa`,`retrieveEntity`,`retrieveEntityProperties`,`showEntityAutoIncr`,`updateLinCon`,`retrieveOverrides`,`updateEntity`','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.applyBackReference
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','applyBackReference','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','applyBackReference','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','applyBackReference','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','applyBackReference','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.applyPOV
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','applyPOV','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','applyPOV','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','applyPOV','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','applyPOV','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.applyRefPOV
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','applyRefPOV','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','applyRefPOV','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','applyRefPOV','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','applyRefPOV','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.applyIDFilter
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','applyIDFilter','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','applyIDFilter','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','applyIDFilter','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','applyIDFilter','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.applySAT
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','applySAT','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','applySAT','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','applySAT','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','applySAT','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.applyTransactionFilter
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','applyTransactionFilter','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','applyTransactionFilter','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','applyTransactionFilter','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','applyTransactionFilter','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.calcComplementUnion
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','calcComplementUnion','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','calcComplementUnion','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','calcComplementUnion','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','calcComplementUnion','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.calcDifference
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','calcDifference','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','calcDifference','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','calcDifference','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','calcDifference','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.calcIntersection
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','calcIntersection','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','calcIntersection','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','calcIntersection','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','calcIntersection','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.calcUnion
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','calcUnion','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','calcUnion','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','calcUnion','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','calcUnion','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.cleanUpLinCon
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','cleanUpLinCon','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','cleanUpLinCon','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','cleanUpLinCon','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','cleanUpLinCon','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.cleanUpQuery
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','cleanUpQuery','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','cleanUpQuery','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','cleanUpQuery','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','cleanUpQuery','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.copyTable
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','copyTable','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','copyTable','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','copyTable','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','copyTable','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.createTmpTable
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','createTmpTable','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','createTmpTable','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','createTmpTable','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','createTmpTable','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.createTmpTable2
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','createTmpTable2','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','createTmpTable2','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','createTmpTable2','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','createTmpTable2','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.deleteEntity
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','deleteEntity','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','deleteEntity','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','deleteEntity','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','deleteEntity','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.deleteEntityProperties
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','deleteEntityProperties','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','deleteEntityProperties','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','deleteEntityProperties','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','deleteEntityProperties','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.deleteIsa
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','deleteIsa','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','deleteIsa','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','deleteIsa','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','deleteIsa','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.deleteLinCon
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','deleteLinCon','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','deleteLinCon','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','deleteLinCon','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','deleteLinCon','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.entityACL
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','entityACL','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','entityACL','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','entityACL','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','entityACL','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.finishNegationFilter
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','finishNegationFilter','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','finishNegationFilter','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','finishNegationFilter','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','finishNegationFilter','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.finishSubProperty
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','finishSubProperty','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','finishSubProperty','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','finishSubProperty','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','finishSubProperty','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.getChildren
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','getChildren','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','getChildren','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','getChildren','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','getChildren','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.getFileIdByPath
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','getFileIdByPath','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','getFileIdByPath','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','getFileIdByPath','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','getFileIdByPath','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.getRole
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','getRole','');
+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','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','initAutoIncrement','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','initAutoIncrement','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','initAutoIncrement','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.initBackReference
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','initBackReference','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','initBackReference','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','initBackReference','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','initBackReference','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.getFile
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','getFile','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','getFile','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','getFile','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','getFile','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.initConjunctionFilter
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','initConjunctionFilter','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','initConjunctionFilter','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','initConjunctionFilter','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','initConjunctionFilter','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.initDisjunctionFilter
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','initDisjunctionFilter','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','initDisjunctionFilter','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','initDisjunctionFilter','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','initDisjunctionFilter','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.initNegationFilter
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','initNegationFilter','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','initNegationFilter','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','initNegationFilter','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','initNegationFilter','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.initPOVRefidsTable
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','initPOVRefidsTable','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','initPOVRefidsTable','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','initPOVRefidsTable','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','initPOVRefidsTable','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.initQuery
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','initQuery','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','initQuery','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','initQuery','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','initQuery','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.insertEntity
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','insertEntity','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','insertEntity','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','insertEntity','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','insertEntity','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.getDependentEntities
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','getDependentEntities','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','getDependentEntities','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','getDependentEntities','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','getDependentEntities','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.initEmptyTargetSet
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','initEmptyTargetSet','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','initEmptyTargetSet','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','initEmptyTargetSet','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','initEmptyTargetSet','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.initEntity
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','initEntity','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','initEntity','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','initEntity','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','initEntity','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.insertLinCon
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','insertLinCon','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','insertLinCon','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','insertLinCon','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','insertLinCon','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.insertUser
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','insertUser','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','insertUser','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','insertUser','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','insertUser','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.intersectTable
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','intersectTable','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','intersectTable','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','intersectTable','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','intersectTable','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.initPOVPropertiesTable
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','initPOVPropertiesTable','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','initPOVPropertiesTable','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','initPOVPropertiesTable','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','initPOVPropertiesTable','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.initSubEntity
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','initSubEntity','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','initSubEntity','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','initSubEntity','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','initSubEntity','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.isSubtype
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','isSubtype','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','isSubtype','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','isSubtype','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','isSubtype','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.overrideDesc
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','overrideDesc','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','overrideDesc','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','overrideDesc','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','overrideDesc','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.overrideName
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','overrideName','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','overrideName','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','overrideName','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','overrideName','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.overrideType
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','overrideType','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','overrideType','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','overrideType','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','overrideType','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.raiseWarning
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','raiseWarning','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','raiseWarning','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','raiseWarning','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','raiseWarning','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.registerSubdomain
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','registerSubdomain','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','registerSubdomain','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','registerSubdomain','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','registerSubdomain','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.initSubProperty
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','initSubProperty','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','initSubProperty','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','initSubProperty','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','initSubProperty','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.insertEntityProperty
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','insertEntityProperty','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','insertEntityProperty','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','insertEntityProperty','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','insertEntityProperty','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.registerTempTableName
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','registerTempTableName','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','registerTempTableName','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','registerTempTableName','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','registerTempTableName','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.retrieveDatatype
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','retrieveDatatype','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','retrieveDatatype','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','retrieveDatatype','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','retrieveDatatype','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.retrieveEntityParents
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','retrieveEntityParents','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','retrieveEntityParents','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','retrieveEntityParents','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','retrieveEntityParents','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.retrieveGroup
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','retrieveGroup','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','retrieveGroup','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','retrieveGroup','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','retrieveGroup','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.setPassword
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','setPassword','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','setPassword','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','setPassword','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','setPassword','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.insertIsa
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','insertIsa','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','insertIsa','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','insertIsa','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','insertIsa','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.retrieveEntity
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','retrieveEntity','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','retrieveEntity','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','retrieveEntity','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','retrieveEntity','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.retrieveEntityProperties
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','retrieveEntityProperties','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','retrieveEntityProperties','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','retrieveEntityProperties','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','retrieveEntityProperties','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.showEntityAutoIncr
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','showEntityAutoIncr','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','showEntityAutoIncr','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','showEntityAutoIncr','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','showEntityAutoIncr','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.updateLinCon
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','updateLinCon','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','updateLinCon','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','updateLinCon','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','updateLinCon','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.retrieveOverrides
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','retrieveOverrides','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','retrieveOverrides','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','retrieveOverrides','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','retrieveOverrides','CONTAINS SQL','');
+
+-- PROCEDURES _caosdb_schema_unit_tests.updateEntity
+
+SELECT tap.has_procedure('_caosdb_schema_unit_tests','updateEntity','');
+SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','updateEntity','NO','');
+SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','updateEntity','DEFINER','');
+SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','updateEntity','CONTAINS SQL','');
+CALL tap.finish();
+ROLLBACK;