diff --git a/dbrepo-user-service/pom.xml b/dbrepo-user-service/pom.xml index 00656af9c7cc2f5c180067e68f748bd3ed061340..8b3d4f9f2403b328e820fcf579031947a5a31e8a 100644 --- a/dbrepo-user-service/pom.xml +++ b/dbrepo-user-service/pom.xml @@ -42,7 +42,6 @@ <java.version>17</java.version> <spring-cloud.version>4.0.2</spring-cloud.version> <mapstruct.version>1.5.5.Final</mapstruct.version> - <docker.version>3.3.0</docker.version> <jacoco.version>0.8.10</jacoco.version> <jwt.version>4.3.0</jwt.version> <hibernate-c3po.version>5.6.3.Final</hibernate-c3po.version> @@ -52,6 +51,7 @@ <keycloak.version>21.0.2</keycloak.version> <hibernate.version>6.2.2.Final</hibernate.version> <springdoc-openapi.version>2.1.0</springdoc-openapi.version> + <hsqldb.version>2.7.2</hsqldb.version> <opensearch-client.version>1.1.0</opensearch-client.version> </properties> @@ -180,8 +180,9 @@ <scope>test</scope> </dependency> <dependency> - <groupId>com.h2database</groupId> - <artifactId>h2</artifactId> + <groupId>org.hsqldb</groupId> + <artifactId>hsqldb</artifactId> + <version>${hsqldb.version}</version> <scope>test</scope> </dependency> <dependency> diff --git a/dbrepo-user-service/rest-service/src/test/resources/application.properties b/dbrepo-user-service/rest-service/src/test/resources/application.properties index 0400abd1af2bc166d559101dfdab5cde1c122fb0..ca99f0f6026c1e8a85c7e0701358e7040ea3269b 100644 --- a/dbrepo-user-service/rest-service/src/test/resources/application.properties +++ b/dbrepo-user-service/rest-service/src/test/resources/application.properties @@ -9,14 +9,14 @@ spring.cloud.config.discovery.enabled=false spring.cloud.config.enabled=false # internal datasource -# spring 6 fix https://github.com/h2database/h2database/issues/3363 -spring.datasource.url=jdbc:h2:mem:testdb;NON_KEYWORDS=VALUE,KEY;DB_CLOSE_ON_EXIT=FALSE;INIT=CREATE SCHEMA IF NOT EXISTS FDA -spring.datasource.driverClassName=org.h2.Driver -spring.datasource.username=sa -spring.datasource.password=password -spring.jpa.database-platform=org.hibernate.dialect.H2Dialect -spring.jpa.hibernate.ddl-auto=create-drop -spring.jpa.show-sql=false +spring.datasource.driver-class-name=org.hsqldb.jdbc.JDBCDriver +spring.datasource.url=jdbc:hsqldb:mem:testdb;db_close_delay=-1;sql.syntax_mys=true +spring.jpa.database-platform=org.hibernate.dialect.HSQLDialect +spring.datasource.username=root +spring.datasource.password=dbrepo +spring.sql.init.mode=always +spring.sql.init.schema-locations=classpath*:init/schema.sql +spring.jpa.hibernate.ddl-auto=create # additional logging logging.level.root=error diff --git a/dbrepo-user-service/rest-service/src/test/resources/init/schema.sql b/dbrepo-user-service/rest-service/src/test/resources/init/schema.sql new file mode 100644 index 0000000000000000000000000000000000000000..f8482e47d5b0827e87537d940b54900a8f2d8f3b --- /dev/null +++ b/dbrepo-user-service/rest-service/src/test/resources/init/schema.sql @@ -0,0 +1 @@ +CREATE SCHEMA IF NOT EXISTS fda; \ No newline at end of file diff --git a/dbrepo-user-service/rest-service/src/test/resources/sensor/1_querystore.sql b/dbrepo-user-service/rest-service/src/test/resources/sensor/1_querystore.sql deleted file mode 100644 index 2762d130a0044c439b41c0215b0d87924bc8f072..0000000000000000000000000000000000000000 --- a/dbrepo-user-service/rest-service/src/test/resources/sensor/1_querystore.sql +++ /dev/null @@ -1,75 +0,0 @@ -CREATE SEQUENCE `qs_queries_seq`; -CREATE TABLE `qs_queries` -( - `id` bigint not null primary key default nextval(`qs_queries_seq`), - `created` datetime not null default now(), - `executed` datetime not null default now(), - `created_by` varchar(255) not null, - `query` text not null, - `query_normalized` text not null, - `is_persisted` boolean not null, - `query_hash` varchar(255) not null, - `result_hash` varchar(255), - `result_number` bigint -); -DELIMITER $$ -CREATE PROCEDURE hash_table(IN name VARCHAR(255), OUT hash VARCHAR(255)) -BEGIN - DECLARE _sql TEXT; - SELECT CONCAT('SELECT SHA2(GROUP_CONCAT(CONCAT_WS(\'\',', - GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name), - ') SEPARATOR \',\'), 256) AS hash FROM `', name, '` INTO @hash;') - FROM `information_schema`.`columns` - WHERE `table_schema` = DATABASE() - AND `table_name` = name - INTO _sql; - PREPARE stmt FROM _sql; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; - SET hash = @hash; -END $$ -DELIMITER $$ -CREATE PROCEDURE store_query(IN query TEXT, IN executed DATETIME, OUT queryId BIGINT) -BEGIN - DECLARE _queryhash varchar(255) DEFAULT SHA2(query, 256); - DECLARE _username varchar(255) DEFAULT REGEXP_REPLACE(current_user(), '@.*', ''); - DECLARE _query TEXT DEFAULT CONCAT('CREATE OR REPLACE TABLE _tmp AS (', query, ')'); - PREPARE stmt FROM _query; EXECUTE stmt; DEALLOCATE PREPARE stmt; CALL hash_table('_tmp', @hash); - SELECT COUNT(*) FROM _tmp INTO @count; - IF @hash IS NULL THEN - INSERT INTO `qs_queries` (`created_by`, `query`, `query_normalized`, `is_persisted`, `query_hash`, `result_hash`, - `result_number`, `executed`) - SELECT _username, query, query, false, _queryhash, @hash, @count, executed - WHERE NOT EXISTS (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` IS NULL); - SET queryId = (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` IS NULL); - ELSE - INSERT INTO `qs_queries` (`created_by`, `query`, `query_normalized`, `is_persisted`, `query_hash`, `result_hash`, - `result_number`, `executed`) - SELECT _username, query, query, false, _queryhash, @hash, @count, executed - WHERE NOT EXISTS (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` = @hash); - SET queryId = (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` = @hash); - END IF; -END $$ -DELIMITER $$ -CREATE - DEFINER = 'root' PROCEDURE _store_query(IN _username VARCHAR(255), IN query TEXT, IN executed DATETIME, OUT queryId BIGINT) -BEGIN - DECLARE _queryhash varchar(255) DEFAULT SHA2(query, 256); - DECLARE _query TEXT DEFAULT CONCAT('CREATE OR REPLACE TABLE _tmp AS (', query, ')'); - PREPARE stmt FROM _query; EXECUTE stmt; DEALLOCATE PREPARE stmt; CALL hash_table('_tmp', @hash); - SELECT COUNT(*) FROM _tmp INTO @count; - IF @hash IS NULL THEN - INSERT INTO `qs_queries` (`created_by`, `query`, `query_normalized`, `is_persisted`, `query_hash`, `result_hash`, - `result_number`, `executed`) - SELECT _username, query, query, false, _queryhash, @hash, @count, executed - WHERE NOT EXISTS (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` IS NULL); - SET queryId = (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` IS NULL); - ELSE - INSERT INTO `qs_queries` (`created_by`, `query`, `query_normalized`, `is_persisted`, `query_hash`, `result_hash`, - `result_number`, `executed`) - SELECT _username, query, query, false, _queryhash, @hash, @count, executed - WHERE NOT EXISTS (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` = @hash); - SET queryId = (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` = @hash); - END IF; -END $$ -DELIMITER ; \ No newline at end of file diff --git a/dbrepo-user-service/rest-service/src/test/resources/sensor/2_traffic.sql b/dbrepo-user-service/rest-service/src/test/resources/sensor/2_traffic.sql deleted file mode 100644 index 93d293a6fe9ee11cbd662208a85089ac3f9fab99..0000000000000000000000000000000000000000 --- a/dbrepo-user-service/rest-service/src/test/resources/sensor/2_traffic.sql +++ /dev/null @@ -1,8 +0,0 @@ -CREATE SEQUENCE seq_sensor - START 1; - -CREATE TABLE sensor -( - `timestamp` TIMESTAMP NULL, - primary key (`timestamp`) -) with system versioning; \ No newline at end of file diff --git a/dbrepo-user-service/rest-service/src/test/resources/traffic/1_querystore.sql b/dbrepo-user-service/rest-service/src/test/resources/traffic/1_querystore.sql deleted file mode 100644 index 2762d130a0044c439b41c0215b0d87924bc8f072..0000000000000000000000000000000000000000 --- a/dbrepo-user-service/rest-service/src/test/resources/traffic/1_querystore.sql +++ /dev/null @@ -1,75 +0,0 @@ -CREATE SEQUENCE `qs_queries_seq`; -CREATE TABLE `qs_queries` -( - `id` bigint not null primary key default nextval(`qs_queries_seq`), - `created` datetime not null default now(), - `executed` datetime not null default now(), - `created_by` varchar(255) not null, - `query` text not null, - `query_normalized` text not null, - `is_persisted` boolean not null, - `query_hash` varchar(255) not null, - `result_hash` varchar(255), - `result_number` bigint -); -DELIMITER $$ -CREATE PROCEDURE hash_table(IN name VARCHAR(255), OUT hash VARCHAR(255)) -BEGIN - DECLARE _sql TEXT; - SELECT CONCAT('SELECT SHA2(GROUP_CONCAT(CONCAT_WS(\'\',', - GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name), - ') SEPARATOR \',\'), 256) AS hash FROM `', name, '` INTO @hash;') - FROM `information_schema`.`columns` - WHERE `table_schema` = DATABASE() - AND `table_name` = name - INTO _sql; - PREPARE stmt FROM _sql; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; - SET hash = @hash; -END $$ -DELIMITER $$ -CREATE PROCEDURE store_query(IN query TEXT, IN executed DATETIME, OUT queryId BIGINT) -BEGIN - DECLARE _queryhash varchar(255) DEFAULT SHA2(query, 256); - DECLARE _username varchar(255) DEFAULT REGEXP_REPLACE(current_user(), '@.*', ''); - DECLARE _query TEXT DEFAULT CONCAT('CREATE OR REPLACE TABLE _tmp AS (', query, ')'); - PREPARE stmt FROM _query; EXECUTE stmt; DEALLOCATE PREPARE stmt; CALL hash_table('_tmp', @hash); - SELECT COUNT(*) FROM _tmp INTO @count; - IF @hash IS NULL THEN - INSERT INTO `qs_queries` (`created_by`, `query`, `query_normalized`, `is_persisted`, `query_hash`, `result_hash`, - `result_number`, `executed`) - SELECT _username, query, query, false, _queryhash, @hash, @count, executed - WHERE NOT EXISTS (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` IS NULL); - SET queryId = (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` IS NULL); - ELSE - INSERT INTO `qs_queries` (`created_by`, `query`, `query_normalized`, `is_persisted`, `query_hash`, `result_hash`, - `result_number`, `executed`) - SELECT _username, query, query, false, _queryhash, @hash, @count, executed - WHERE NOT EXISTS (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` = @hash); - SET queryId = (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` = @hash); - END IF; -END $$ -DELIMITER $$ -CREATE - DEFINER = 'root' PROCEDURE _store_query(IN _username VARCHAR(255), IN query TEXT, IN executed DATETIME, OUT queryId BIGINT) -BEGIN - DECLARE _queryhash varchar(255) DEFAULT SHA2(query, 256); - DECLARE _query TEXT DEFAULT CONCAT('CREATE OR REPLACE TABLE _tmp AS (', query, ')'); - PREPARE stmt FROM _query; EXECUTE stmt; DEALLOCATE PREPARE stmt; CALL hash_table('_tmp', @hash); - SELECT COUNT(*) FROM _tmp INTO @count; - IF @hash IS NULL THEN - INSERT INTO `qs_queries` (`created_by`, `query`, `query_normalized`, `is_persisted`, `query_hash`, `result_hash`, - `result_number`, `executed`) - SELECT _username, query, query, false, _queryhash, @hash, @count, executed - WHERE NOT EXISTS (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` IS NULL); - SET queryId = (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` IS NULL); - ELSE - INSERT INTO `qs_queries` (`created_by`, `query`, `query_normalized`, `is_persisted`, `query_hash`, `result_hash`, - `result_number`, `executed`) - SELECT _username, query, query, false, _queryhash, @hash, @count, executed - WHERE NOT EXISTS (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` = @hash); - SET queryId = (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` = @hash); - END IF; -END $$ -DELIMITER ; \ No newline at end of file diff --git a/dbrepo-user-service/rest-service/src/test/resources/traffic/2_traffic.sql b/dbrepo-user-service/rest-service/src/test/resources/traffic/2_traffic.sql deleted file mode 100644 index 3038fe5a7a99e882504fc8382a5bf2ba7763543d..0000000000000000000000000000000000000000 --- a/dbrepo-user-service/rest-service/src/test/resources/traffic/2_traffic.sql +++ /dev/null @@ -1,43 +0,0 @@ -/* https://www.kaggle.com/laa283/zurich-public-transport/version/2 */ -CREATE SEQUENCE seq_traffic - START 1; - -CREATE TABLE traffic_zurich -( - linie bigint null, - richtung bigint null, - betriebsdatum date null, - fahrzeug bigint null, - kurs bigint null, - seq_von bigint null, - halt_diva_von bigint null, - halt_punkt_diva_von bigint null, - halt_kurz_von1 varchar(255) null, - datum_von date null, - soll_an_von bigint null, - ist_an_von bigint null, - soll_ab_von bigint null, - ist_ab_von bigint null, - seq_nach bigint null, - halt_diva_nach bigint null, - halt_punkt_diva_nach bigint null, - halt_kurz_nach1 varchar(255) null, - datum_nach DATE null, - soll_an_nach bigint null, - ist_an_nach1 bigint null, - soll_ab_nach bigint null, - ist_ab_nach bigint null, - fahrt_id bigint null, - fahrweg_id bigint null, - fw_no bigint null, - fw_typ bigint null, - fw_kurz bigint null, - fw_lang varchar(255) null, - umlauf_von varchar(255) null, - halt_id_von bigint null, - halt_id_nach bigint null, - halt_punkt_id_von bigint null, - halt_punkt_id_nach bigint null, - id bigint default nextval(`seq_traffic`) not null, - primary key (id) -) with system versioning; \ No newline at end of file diff --git a/dbrepo-user-service/rest-service/src/test/resources/weather/1_querystore.sql b/dbrepo-user-service/rest-service/src/test/resources/weather/1_querystore.sql deleted file mode 100644 index 2762d130a0044c439b41c0215b0d87924bc8f072..0000000000000000000000000000000000000000 --- a/dbrepo-user-service/rest-service/src/test/resources/weather/1_querystore.sql +++ /dev/null @@ -1,75 +0,0 @@ -CREATE SEQUENCE `qs_queries_seq`; -CREATE TABLE `qs_queries` -( - `id` bigint not null primary key default nextval(`qs_queries_seq`), - `created` datetime not null default now(), - `executed` datetime not null default now(), - `created_by` varchar(255) not null, - `query` text not null, - `query_normalized` text not null, - `is_persisted` boolean not null, - `query_hash` varchar(255) not null, - `result_hash` varchar(255), - `result_number` bigint -); -DELIMITER $$ -CREATE PROCEDURE hash_table(IN name VARCHAR(255), OUT hash VARCHAR(255)) -BEGIN - DECLARE _sql TEXT; - SELECT CONCAT('SELECT SHA2(GROUP_CONCAT(CONCAT_WS(\'\',', - GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name), - ') SEPARATOR \',\'), 256) AS hash FROM `', name, '` INTO @hash;') - FROM `information_schema`.`columns` - WHERE `table_schema` = DATABASE() - AND `table_name` = name - INTO _sql; - PREPARE stmt FROM _sql; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; - SET hash = @hash; -END $$ -DELIMITER $$ -CREATE PROCEDURE store_query(IN query TEXT, IN executed DATETIME, OUT queryId BIGINT) -BEGIN - DECLARE _queryhash varchar(255) DEFAULT SHA2(query, 256); - DECLARE _username varchar(255) DEFAULT REGEXP_REPLACE(current_user(), '@.*', ''); - DECLARE _query TEXT DEFAULT CONCAT('CREATE OR REPLACE TABLE _tmp AS (', query, ')'); - PREPARE stmt FROM _query; EXECUTE stmt; DEALLOCATE PREPARE stmt; CALL hash_table('_tmp', @hash); - SELECT COUNT(*) FROM _tmp INTO @count; - IF @hash IS NULL THEN - INSERT INTO `qs_queries` (`created_by`, `query`, `query_normalized`, `is_persisted`, `query_hash`, `result_hash`, - `result_number`, `executed`) - SELECT _username, query, query, false, _queryhash, @hash, @count, executed - WHERE NOT EXISTS (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` IS NULL); - SET queryId = (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` IS NULL); - ELSE - INSERT INTO `qs_queries` (`created_by`, `query`, `query_normalized`, `is_persisted`, `query_hash`, `result_hash`, - `result_number`, `executed`) - SELECT _username, query, query, false, _queryhash, @hash, @count, executed - WHERE NOT EXISTS (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` = @hash); - SET queryId = (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` = @hash); - END IF; -END $$ -DELIMITER $$ -CREATE - DEFINER = 'root' PROCEDURE _store_query(IN _username VARCHAR(255), IN query TEXT, IN executed DATETIME, OUT queryId BIGINT) -BEGIN - DECLARE _queryhash varchar(255) DEFAULT SHA2(query, 256); - DECLARE _query TEXT DEFAULT CONCAT('CREATE OR REPLACE TABLE _tmp AS (', query, ')'); - PREPARE stmt FROM _query; EXECUTE stmt; DEALLOCATE PREPARE stmt; CALL hash_table('_tmp', @hash); - SELECT COUNT(*) FROM _tmp INTO @count; - IF @hash IS NULL THEN - INSERT INTO `qs_queries` (`created_by`, `query`, `query_normalized`, `is_persisted`, `query_hash`, `result_hash`, - `result_number`, `executed`) - SELECT _username, query, query, false, _queryhash, @hash, @count, executed - WHERE NOT EXISTS (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` IS NULL); - SET queryId = (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` IS NULL); - ELSE - INSERT INTO `qs_queries` (`created_by`, `query`, `query_normalized`, `is_persisted`, `query_hash`, `result_hash`, - `result_number`, `executed`) - SELECT _username, query, query, false, _queryhash, @hash, @count, executed - WHERE NOT EXISTS (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` = @hash); - SET queryId = (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` = @hash); - END IF; -END $$ -DELIMITER ; \ No newline at end of file diff --git a/dbrepo-user-service/rest-service/src/test/resources/weather/2_weather.sql b/dbrepo-user-service/rest-service/src/test/resources/weather/2_weather.sql deleted file mode 100644 index 29967f2977ef6b6f12da00b0c218382e5c024322..0000000000000000000000000000000000000000 --- a/dbrepo-user-service/rest-service/src/test/resources/weather/2_weather.sql +++ /dev/null @@ -1,55 +0,0 @@ -/* https://www.kaggle.com/jsphyg/weather-dataset-rattle-package */ -CREATE TABLE weather_location -( - location VARCHAR(255) PRIMARY KEY, - lat DOUBLE PRECISION NULL, - lng DOUBLE PRECISION NULL -) WITH SYSTEM VERSIONING; - -CREATE TABLE weather_aus -( - id BIGINT NOT NULL PRIMARY KEY, - `date` DATE NOT NULL, - location VARCHAR(255) NULL, - mintemp DOUBLE PRECISION NULL, - rainfall DOUBLE PRECISION NULL, - FOREIGN KEY (location) REFERENCES weather_location (location), - UNIQUE (`date`), - CHECK (`mintemp` > 0) -) WITH SYSTEM VERSIONING; - -CREATE TABLE sensor -( - `timestamp` TIMESTAMP NOT NULL, - PRIMARY KEY (`timestamp`), - UNIQUE (`timestamp`) -) WITH SYSTEM VERSIONING; - -INSERT INTO weather_location (location, lat, lng) -VALUES ('Albury', -36.0653583, 146.9112214), - ('Melbourne', null, null), - ('Sydney', -33.847927, 150.6517942); - -INSERT INTO weather_aus (id, `date`, location, mintemp, rainfall) -VALUES (1, '2008-12-01', 'Albury', 13.4, 0.6), - (2, '2008-12-02', 'Albury', 7.4, 0), - (3, '2008-12-03', 'Albury', 12.9, 0); - -######################################################################################################################## -## TEST CASE PRE-REQUISITE ## -######################################################################################################################## - -CREATE VIEW junit2 AS -( -SELECT `location`, `lat`, `lng` -FROM `weather_location` -WHERE `location` = 'Albury'); - -CREATE VIEW `hs_weather_aus` AS -SELECT * -FROM (SELECT `id`, ROW_START AS inserted_at, IF(ROW_END > NOW(), NULL, ROW_END) AS deleted_at, COUNT(*) as total - FROM `weather_aus` FOR SYSTEM_TIME ALL - GROUP BY inserted_at, deleted_at - ORDER BY deleted_at DESC - LIMIT 50) AS v -ORDER BY v.inserted_at, v.deleted_at ASC; diff --git a/dbrepo-user-service/rest-service/src/test/resources/weather/location.csv b/dbrepo-user-service/rest-service/src/test/resources/weather/location.csv deleted file mode 100644 index b9410c65c9b4169eb1a231dbe5ca04ff20c116cf..0000000000000000000000000000000000000000 --- a/dbrepo-user-service/rest-service/src/test/resources/weather/location.csv +++ /dev/null @@ -1,2 +0,0 @@ -Albury,-36.0653583,146.9112214 -Sydney,-33.847927,150.6517942 \ No newline at end of file diff --git a/dbrepo-user-service/rest-service/src/test/resources/zoo/1_querystore.sql b/dbrepo-user-service/rest-service/src/test/resources/zoo/1_querystore.sql deleted file mode 100644 index 2762d130a0044c439b41c0215b0d87924bc8f072..0000000000000000000000000000000000000000 --- a/dbrepo-user-service/rest-service/src/test/resources/zoo/1_querystore.sql +++ /dev/null @@ -1,75 +0,0 @@ -CREATE SEQUENCE `qs_queries_seq`; -CREATE TABLE `qs_queries` -( - `id` bigint not null primary key default nextval(`qs_queries_seq`), - `created` datetime not null default now(), - `executed` datetime not null default now(), - `created_by` varchar(255) not null, - `query` text not null, - `query_normalized` text not null, - `is_persisted` boolean not null, - `query_hash` varchar(255) not null, - `result_hash` varchar(255), - `result_number` bigint -); -DELIMITER $$ -CREATE PROCEDURE hash_table(IN name VARCHAR(255), OUT hash VARCHAR(255)) -BEGIN - DECLARE _sql TEXT; - SELECT CONCAT('SELECT SHA2(GROUP_CONCAT(CONCAT_WS(\'\',', - GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name), - ') SEPARATOR \',\'), 256) AS hash FROM `', name, '` INTO @hash;') - FROM `information_schema`.`columns` - WHERE `table_schema` = DATABASE() - AND `table_name` = name - INTO _sql; - PREPARE stmt FROM _sql; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; - SET hash = @hash; -END $$ -DELIMITER $$ -CREATE PROCEDURE store_query(IN query TEXT, IN executed DATETIME, OUT queryId BIGINT) -BEGIN - DECLARE _queryhash varchar(255) DEFAULT SHA2(query, 256); - DECLARE _username varchar(255) DEFAULT REGEXP_REPLACE(current_user(), '@.*', ''); - DECLARE _query TEXT DEFAULT CONCAT('CREATE OR REPLACE TABLE _tmp AS (', query, ')'); - PREPARE stmt FROM _query; EXECUTE stmt; DEALLOCATE PREPARE stmt; CALL hash_table('_tmp', @hash); - SELECT COUNT(*) FROM _tmp INTO @count; - IF @hash IS NULL THEN - INSERT INTO `qs_queries` (`created_by`, `query`, `query_normalized`, `is_persisted`, `query_hash`, `result_hash`, - `result_number`, `executed`) - SELECT _username, query, query, false, _queryhash, @hash, @count, executed - WHERE NOT EXISTS (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` IS NULL); - SET queryId = (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` IS NULL); - ELSE - INSERT INTO `qs_queries` (`created_by`, `query`, `query_normalized`, `is_persisted`, `query_hash`, `result_hash`, - `result_number`, `executed`) - SELECT _username, query, query, false, _queryhash, @hash, @count, executed - WHERE NOT EXISTS (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` = @hash); - SET queryId = (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` = @hash); - END IF; -END $$ -DELIMITER $$ -CREATE - DEFINER = 'root' PROCEDURE _store_query(IN _username VARCHAR(255), IN query TEXT, IN executed DATETIME, OUT queryId BIGINT) -BEGIN - DECLARE _queryhash varchar(255) DEFAULT SHA2(query, 256); - DECLARE _query TEXT DEFAULT CONCAT('CREATE OR REPLACE TABLE _tmp AS (', query, ')'); - PREPARE stmt FROM _query; EXECUTE stmt; DEALLOCATE PREPARE stmt; CALL hash_table('_tmp', @hash); - SELECT COUNT(*) FROM _tmp INTO @count; - IF @hash IS NULL THEN - INSERT INTO `qs_queries` (`created_by`, `query`, `query_normalized`, `is_persisted`, `query_hash`, `result_hash`, - `result_number`, `executed`) - SELECT _username, query, query, false, _queryhash, @hash, @count, executed - WHERE NOT EXISTS (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` IS NULL); - SET queryId = (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` IS NULL); - ELSE - INSERT INTO `qs_queries` (`created_by`, `query`, `query_normalized`, `is_persisted`, `query_hash`, `result_hash`, - `result_number`, `executed`) - SELECT _username, query, query, false, _queryhash, @hash, @count, executed - WHERE NOT EXISTS (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` = @hash); - SET queryId = (SELECT `id` FROM `qs_queries` WHERE `query_hash` = _queryhash AND `result_hash` = @hash); - END IF; -END $$ -DELIMITER ; \ No newline at end of file diff --git a/dbrepo-user-service/rest-service/src/test/resources/zoo/2_zoo.sql b/dbrepo-user-service/rest-service/src/test/resources/zoo/2_zoo.sql deleted file mode 100644 index 50f02ee2c53f5afc8a472b1c418225434b45d98e..0000000000000000000000000000000000000000 --- a/dbrepo-user-service/rest-service/src/test/resources/zoo/2_zoo.sql +++ /dev/null @@ -1,191 +0,0 @@ -create sequence seq_zoo_id; -create sequence seq_names_id; -create table zoo -( - id bigint not null default nextval(`seq_zoo_id`), - animal_name varchar(255) null, - hair tinyint(1) null, - feathers tinyint(1) null, - eggs tinyint(1) null, - milk tinyint(1) null, - airborne tinyint(1) null, - aquatic tinyint(1) null, - predator tinyint(1) null, - toothed tinyint(1) null, - backbone tinyint(1) null, - breathes tinyint(1) null, - venomous tinyint(1) null, - fins tinyint(1) null, - legs bigint null, - tail tinyint(1) null, - domestic tinyint(1) null, - catsize tinyint(1) null, - class_type bigint null, - primary key (id) -) with system versioning; - -create table names -( - id bigint not null default nextval(`seq_names_id`), - firstname varchar(255), - lastname varchar(255), - primary key (id), - unique key (firstname, lastname) -) with system versioning; - -create table likes -( - name_id bigint not null, - zoo_id bigint not null, - primary key (name_id, zoo_id), - foreign key (name_id) references names (id), - foreign key (zoo_id) references zoo (id) -) with system versioning; - -INSERT INTO zoo (id, animal_name, hair, feathers, eggs, milk, airborne, aquatic, predator, toothed, backbone, breathes, - venomous, fins, legs, tail, domestic, catsize, class_type) -VALUES (1, 'aardvark', 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 4, 0, 0, 1, 1), - (2, 'antelope', 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (3, 'bass', 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 4), - (4, 'bear', 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 4, 0, 0, 1, 1), - (5, 'boar', 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (6, 'buffalo', 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (7, 'calf', 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 1, 1, 1), - (8, 'carp', 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 4), - (9, 'catfish', 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 4), - (10, 'cavy', 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 4, 0, 1, 0, 1), - (11, 'cheetah', 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (12, 'chicken', 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 2, 1, 1, 0, 2), - (13, 'chub', 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 4), - (14, 'clam', 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7), - (15, 'crab', 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 7), - (16, 'crayfish', 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 6, 0, 0, 0, 7), - (17, 'crow', 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 2, 1, 0, 0, 2), - (18, 'deer', 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (19, 'dogfish', 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 4), - (20, 'dolphin', 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1), - (21, 'dove', 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 2, 1, 1, 0, 2), - (22, 'duck', 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 2, 1, 0, 0, 2), - (23, 'elephant', 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (24, 'flamingo', 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 2, 1, 0, 1, 2), - (25, 'flea', 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 6, 0, 0, 0, 6), - (26, 'frog', 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 4, 0, 0, 0, 5), - (27, 'frog', 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 4, 0, 0, 0, 5), - (28, 'fruitbat', 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 2, 1, 0, 0, 1), - (29, 'giraffe', 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (30, 'girl', 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 2, 0, 1, 1, 1), - (31, 'gnat', 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 6, 0, 0, 0, 6), - (32, 'goat', 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 1, 1, 1), - (33, 'gorilla', 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 2, 0, 0, 1, 1), - (34, 'gull', 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 2, 1, 0, 0, 2), - (35, 'haddock', 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 4), - (36, 'hamster', 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 1, 0, 1), - (37, 'hare', 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1), - (38, 'hawk', 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 2, 1, 0, 0, 2), - (39, 'herring', 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 4), - (40, 'honeybee', 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 6, 0, 1, 0, 6), - (41, 'housefly', 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 6, 0, 0, 0, 6), - (42, 'kiwi', 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 2, 1, 0, 0, 2), - (43, 'ladybird', 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 6, 0, 0, 0, 6), - (44, 'lark', 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 2, 1, 0, 0, 2), - (45, 'leopard', 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (46, 'lion', 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (47, 'lobster', 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 6, 0, 0, 0, 7), - (48, 'lynx', 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (49, 'mink', 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (50, 'mole', 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1), - (51, 'mongoose', 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (52, 'moth', 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 6, 0, 0, 0, 6), - (53, 'newt', 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 4, 1, 0, 0, 5), - (54, 'octopus', 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 8, 0, 0, 1, 7), - (55, 'opossum', 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1), - (56, 'oryx', 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (57, 'ostrich', 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 0, 1, 2), - (58, 'parakeet', 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 2, 1, 1, 0, 2), - (59, 'penguin', 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 2, 1, 0, 1, 2), - (60, 'pheasant', 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 2, 1, 0, 0, 2), - (61, 'pike', 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 4), - (62, 'piranha', 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 4), - (63, 'pitviper', 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 3), - (64, 'platypus', 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (65, 'polecat', 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (66, 'pony', 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 1, 1, 1), - (67, 'porpoise', 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1), - (68, 'puma', 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (69, 'pussycat', 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 4, 1, 1, 1, 1), - (70, 'raccoon', 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (71, 'reindeer', 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 1, 1, 1), - (72, 'rhea', 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 2, 1, 0, 1, 2), - (73, 'scorpion', 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 8, 1, 0, 0, 7), - (74, 'seahorse', 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 4), - (75, 'seal', 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1), - (76, 'sealion', 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 2, 1, 0, 1, 1), - (77, 'seasnake', 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 3), - (78, 'seawasp', 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 7), - (79, 'skimmer', 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 2, 1, 0, 0, 2), - (80, 'skua', 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 2, 1, 0, 0, 2), - (81, 'slowworm', 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 3), - (82, 'slug', 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7), - (83, 'sole', 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 4), - (84, 'sparrow', 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 2, 1, 0, 0, 2), - (85, 'squirrel', 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 2, 1, 0, 0, 1), - (86, 'starfish', 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 5, 0, 0, 0, 7), - (87, 'stingray', 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 4), - (88, 'swan', 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 2, 1, 0, 1, 2), - (89, 'termite', 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 6, 0, 0, 0, 6), - (90, 'toad', 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 4, 0, 0, 0, 5), - (91, 'tortoise', 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 4, 1, 0, 1, 3), - (92, 'tuatara', 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 4, 1, 0, 0, 3), - (93, 'tuna', 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 4), - (94, 'vampire', 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 2, 1, 0, 0, 1), - (95, 'vole', 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1), - (96, 'vulture', 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 2, 1, 0, 1, 2), - (97, 'wallaby', 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 2, 1, 0, 1, 1), - (98, 'wasp', 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 6, 0, 0, 0, 6), - (99, 'wolf', 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1), - (100, 'worm', 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7), - (101, 'wren', 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 2, 1, 0, 0, 2); - -INSERT INTO names (firstname, lastname) -VALUES ('Moritz', 'Staudinger'), - ('Martin', 'Weise'), - ('Eva', 'Gergely'), - ('Cornelia', 'Michlits'), - ('Kirill', 'Stytsenko'); - -INSERT INTO likes (name_id, zoo_id) -VALUES (1, 5), - (1, 10), - (2, 3), - (2, 80), - (3, 4), - (4, 4), - (5, 100); - -######################################################################################################################## -## TEST CASE PRE-REQUISITE ## -######################################################################################################################## - -CREATE VIEW mock_view AS -( -SELECT `id`, - `animal_name`, - `hair`, - `feathers`, - `eggs`, - `milk`, - `airborne`, - `aquatic`, - `predator`, - `toothed`, - `backbone`, - `breathes`, - `venomous`, - `fins`, - `legs`, - `tail`, - `domestic`, - `catsize`, - `class_type` -FROM `zoo` -WHERE `class_type` = 1);