diff --git a/4dev/database/ORDER b/4dev/database/ORDER index 8421d803..40564691 100644 --- a/4dev/database/ORDER +++ b/4dev/database/ORDER @@ -4,7 +4,7 @@ function/set_generic.sql function/random_string.sql function/set_edit_generic.sql function/edit_set_access_uid.sql -function/edit_log_insert_trigger.sql +function/edit_log_partition_trigger.sql # generic tables table/edit_temp_files.sql table/edit_generic.sql diff --git a/4dev/database/bin/drop_data.sh b/4dev/database/bin/drop_data.sh index 9634e9cc..3e2f6e1a 100755 --- a/4dev/database/bin/drop_data.sh +++ b/4dev/database/bin/drop_data.sh @@ -39,7 +39,7 @@ do done; # copy the trigger template to the target - for path in $schema; + for path in $schemas; do if [ $sqltype ]; then diff --git a/4dev/database/function/edit_log_partition_insert.sql b/4dev/database/function/edit_log_partition_insert.sql index 24c0b9fc..17d4cee5 100644 --- a/4dev/database/function/edit_log_partition_insert.sql +++ b/4dev/database/function/edit_log_partition_insert.sql @@ -1,3 +1,10 @@ +-- AUTHOR: Clemens Schwaighofer +-- DATE: 2018-07-17 +-- DESCRIPTION: +-- partition the edit_log table by year +-- auto creates table if missing, if failure writes to overflow table +-- HISTORY: + CREATE OR REPLACE FUNCTION edit_log_insert_trigger () RETURNS TRIGGER AS $$ @@ -6,20 +13,38 @@ DECLARE end_date DATE; timeformat TEXT := 'YYYY'; selector TEXT := 'year'; + base_table TEXT := 'edit_log_'; _interval INTERVAL; + _interval_next INTERVAL; table_name TEXT; BEGIN - -- get year and month from edit_log date so we can build the target edit_log table - - -- move interval - _interval := '1 ' || selector; - -- current table name - table_name := 'edit_log_' || to_char(NEW.event_date, timeformat); - -- we are in valid start time area IF (NEW.event_date >= start_date) THEN + -- move interval + _interval := '1 ' || selector; + -- current table name + table_name := base_table || to_char(NEW.event_date, timeformat); BEGIN EXECUTE 'INSERT INTO ' || quote_ident(table_name) || ' SELECT ($1).*' USING NEW; + -- check if next month table exists + table_name := base_table || to_char((SELECT NEW.event_date + _interval)::DATE, timeformat); + -- RAISE NOTICE 'SEARCH NEXT: %', table_name; + IF (SELECT to_regclass(table_name)) IS NULL THEN + -- move outer interval + _interval_next := '2 ' || selector; + -- move inner interval same + start_date := date_trunc(selector, NEW.event_date + _interval); + end_date := date_trunc(selector, NEW.event_date + _interval_next); + -- RAISE NOTICE 'CREATE NEXT: %', table_name; + -- create table + EXECUTE 'CREATE TABLE IF NOT EXISTS ' || quote_ident(table_name) || ' ( CHECK ( event_date >= ' || quote_literal(start_date) || ' AND event_date < ' || quote_literal(end_date) || ' ) ) INHERITS (edit_log)'; + -- create all indexes and triggers + EXECUTE 'ALTER TABLE ' || quote_ident(table_name) || ' ADD PRIMARY KEY (edit_log_id)'; + -- FK constraints + EXECUTE 'ALTER TABLE ' || quote_ident(table_name) || ' ADD CONSTRAINT fk_' || quote_ident(table_name) || '_euid_fkey FOREIGN KEY (euid) REFERENCES edit_user (edit_user_id) MATCH FULL ON UPDATE CASCADE ON DELETE CASCADE'; + -- generic trigger + EXECUTE 'CREATE TRIGGER trg_' || quote_ident(table_name) || ' BEFORE INSERT OR UPDATE ON ' || quote_ident(table_name) || ' FOR EACH ROW EXECUTE PROCEDURE set_edit_generic()'; + END IF; -- if insert failed because of missing table, create new below EXCEPTION WHEN undefined_table THEN diff --git a/4dev/database/table/edit_group.sql b/4dev/database/table/edit_group.sql index c673057d..6cd40618 100644 --- a/4dev/database/table/edit_group.sql +++ b/4dev/database/table/edit_group.sql @@ -12,7 +12,7 @@ CREATE TABLE edit_group ( edit_access_right_id INT NOT NULL, enabled SMALLINT NOT NULL DEFAULT 0, deleted SMALLINT DEFAULT 0, - uid VARCHAR + uid VARCHAR, name VARCHAR, additional_acl JSONB, FOREIGN KEY (edit_scheme_id) REFERENCES edit_scheme (edit_scheme_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE, diff --git a/4dev/database/table/edit_language.sql b/4dev/database/table/edit_language.sql index ccd51e18..0bf5239c 100644 --- a/4dev/database/table/edit_language.sql +++ b/4dev/database/table/edit_language.sql @@ -10,9 +10,9 @@ CREATE TABLE edit_language ( edit_language_id SERIAL PRIMARY KEY, enabled SMALLINT NOT NULL DEFAULT 0, - lang_default SMALLINT NOT NULL DEFAULT 0 + lang_default SMALLINT NOT NULL DEFAULT 0, long_name VARCHAR, short_name VARCHAR, iso_name VARCHAR, - order_number INT, + order_number INT ) INHERITS (edit_generic) WITHOUT OIDS; diff --git a/4dev/database/table/edit_page.sql b/4dev/database/table/edit_page.sql index b278e1f1..2797ec90 100644 --- a/4dev/database/table/edit_page.sql +++ b/4dev/database/table/edit_page.sql @@ -18,5 +18,5 @@ CREATE TABLE edit_page ( popup_x SMALLINT, popup_y SMALLINT, hostname VARCHAR, - FOREIGN KEY (content_alias_edit_page_id) REFERENCES edit_page (edit_page_id) MATCH FULL ON DELETE RESTRICT ON UPDATE CASCADE, + FOREIGN KEY (content_alias_edit_page_id) REFERENCES edit_page (edit_page_id) MATCH FULL ON DELETE RESTRICT ON UPDATE CASCADE ) INHERITS (edit_generic) WITHOUT OIDS; diff --git a/4dev/database/trigger/trg_edit_access.sql b/4dev/database/trigger/trg_edit_access.sql index e2734b9c..b9f12812 100644 --- a/4dev/database/trigger/trg_edit_access.sql +++ b/4dev/database/trigger/trg_edit_access.sql @@ -1,9 +1,9 @@ -DROP TRIGGER trg_edit_access ON edit_access; +DROP TRIGGER IF EXISTS trg_edit_access ON edit_access; CREATE TRIGGER trg_edit_access BEFORE INSERT OR UPDATE ON edit_access FOR EACH ROW EXECUTE PROCEDURE set_edit_generic(); -DROP TRIGGER trg_set_edit_access_uid ON edit_access; +DROP TRIGGER IF EXISTS trg_set_edit_access_uid ON edit_access; CREATE TRIGGER trg_set_edit_access_uid BEFORE INSERT OR UPDATE ON edit_access FOR EACH ROW EXECUTE PROCEDURE set_edit_access_uid(); diff --git a/4dev/database/trigger/trg_edit_access_data.sql b/4dev/database/trigger/trg_edit_access_data.sql index 4b6276d4..81307d08 100644 --- a/4dev/database/trigger/trg_edit_access_data.sql +++ b/4dev/database/trigger/trg_edit_access_data.sql @@ -1,4 +1,4 @@ -DROP TRIGGER trg_edit_access_data ON edit_access_data; +DROP TRIGGER IF EXISTS trg_edit_access_data ON edit_access_data; CREATE TRIGGER trg_edit_access_data BEFORE INSERT OR UPDATE ON edit_access_data FOR EACH ROW EXECUTE PROCEDURE set_edit_generic(); diff --git a/4dev/database/trigger/trg_edit_access_right.sql b/4dev/database/trigger/trg_edit_access_right.sql index 3700eb27..fb3b68fe 100644 --- a/4dev/database/trigger/trg_edit_access_right.sql +++ b/4dev/database/trigger/trg_edit_access_right.sql @@ -1,4 +1,4 @@ -DROP TRIGGER trg_edit_access_right ON edit_access_right; +DROP TRIGGER IF EXISTS trg_edit_access_right ON edit_access_right; CREATE TRIGGER trg_edit_access_right BEFORE INSERT OR UPDATE ON edit_access_right FOR EACH ROW EXECUTE PROCEDURE set_edit_generic(); diff --git a/4dev/database/trigger/trg_edit_access_user.sql b/4dev/database/trigger/trg_edit_access_user.sql index bc6a9989..1c040205 100644 --- a/4dev/database/trigger/trg_edit_access_user.sql +++ b/4dev/database/trigger/trg_edit_access_user.sql @@ -1,4 +1,4 @@ -DROP TRIGGER trg_edit_access_user ON edit_access_user; +DROP TRIGGER IF EXISTS trg_edit_access_user ON edit_access_user; CREATE TRIGGER trg_edit_access_user BEFORE INSERT OR UPDATE ON edit_access_user FOR EACH ROW EXECUTE PROCEDURE set_edit_generic(); diff --git a/4dev/database/trigger/trg_edit_group.sql b/4dev/database/trigger/trg_edit_group.sql index 997dc22b..c53d277d 100644 --- a/4dev/database/trigger/trg_edit_group.sql +++ b/4dev/database/trigger/trg_edit_group.sql @@ -1,4 +1,4 @@ -DROP TRIGGER trg_edit_group ON edit_group; +DROP TRIGGER IF EXISTS trg_edit_group ON edit_group; CREATE TRIGGER trg_edit_group BEFORE INSERT OR UPDATE ON edit_group FOR EACH ROW EXECUTE PROCEDURE set_edit_generic(); diff --git a/4dev/database/trigger/trg_edit_language.sql b/4dev/database/trigger/trg_edit_language.sql index ae2c4f29..ac0fdf6e 100644 --- a/4dev/database/trigger/trg_edit_language.sql +++ b/4dev/database/trigger/trg_edit_language.sql @@ -1,4 +1,4 @@ -DROP TRIGGER trg_edit_language ON edit_language; +DROP TRIGGER IF EXISTS trg_edit_language ON edit_language; CREATE TRIGGER trg_edit_language BEFORE INSERT OR UPDATE ON edit_language FOR EACH ROW EXECUTE PROCEDURE set_edit_generic(); diff --git a/4dev/database/trigger/trg_edit_log.sql b/4dev/database/trigger/trg_edit_log.sql index a72eb202..904bb52a 100644 --- a/4dev/database/trigger/trg_edit_log.sql +++ b/4dev/database/trigger/trg_edit_log.sql @@ -1,9 +1,9 @@ -DROP TRIGGER trg_edit_log ON edit_log; +DROP TRIGGER IF EXISTS trg_edit_log ON edit_log; CREATE TRIGGER trg_edit_log BEFORE INSERT OR UPDATE ON edit_log FOR EACH ROW EXECUTE PROCEDURE set_edit_generic(); -DROP TRIGGER trg_edit_log_insert_partition ON edit_log; +DROP TRIGGER IF EXISTS trg_edit_log_insert_partition ON edit_log; CREATE TRIGGER trg_edit_log_insert_partition BEFORE INSERT OR UPDATE ON edit_log FOR EACH ROW EXECUTE PROCEDURE edit_log_insert_trigger(); diff --git a/4dev/database/trigger/trg_edit_menu_group.sql b/4dev/database/trigger/trg_edit_menu_group.sql index 798c8051..1fb33c43 100644 --- a/4dev/database/trigger/trg_edit_menu_group.sql +++ b/4dev/database/trigger/trg_edit_menu_group.sql @@ -1,4 +1,4 @@ -DROP TRIGGER trg_edit_menu_group ON edit_menu_group; +DROP TRIGGER IF EXISTS trg_edit_menu_group ON edit_menu_group; CREATE TRIGGER trg_edit_menu_group BEFORE INSERT OR UPDATE ON edit_menu_group FOR EACH ROW EXECUTE PROCEDURE set_edit_generic(); diff --git a/4dev/database/trigger/trg_edit_page.sql b/4dev/database/trigger/trg_edit_page.sql index 2f0b454d..bd69e92d 100644 --- a/4dev/database/trigger/trg_edit_page.sql +++ b/4dev/database/trigger/trg_edit_page.sql @@ -1,4 +1,4 @@ -DROP TRIGGER trg_edit_page ON edit_page; +DROP TRIGGER IF EXISTS trg_edit_page ON edit_page; CREATE TRIGGER trg_edit_page BEFORE INSERT OR UPDATE ON edit_page FOR EACH ROW EXECUTE PROCEDURE set_edit_generic(); diff --git a/4dev/database/trigger/trg_edit_page_access.sql b/4dev/database/trigger/trg_edit_page_access.sql index 165b5174..57b0e522 100644 --- a/4dev/database/trigger/trg_edit_page_access.sql +++ b/4dev/database/trigger/trg_edit_page_access.sql @@ -1,4 +1,4 @@ -DROP TRIGGER trg_edit_page_access ON edit_page_access; +DROP TRIGGER IF EXISTS trg_edit_page_access ON edit_page_access; CREATE TRIGGER trg_edit_page_access BEFORE INSERT OR UPDATE ON edit_page_access FOR EACH ROW EXECUTE PROCEDURE set_edit_generic(); diff --git a/4dev/database/trigger/trg_edit_page_content.sql b/4dev/database/trigger/trg_edit_page_content.sql index 62b661b8..3854926b 100755 --- a/4dev/database/trigger/trg_edit_page_content.sql +++ b/4dev/database/trigger/trg_edit_page_content.sql @@ -1,4 +1,4 @@ -DROP TRIGGER trg_edit_page_content ON edit_page_content; +DROP TRIGGER IF EXISTS trg_edit_page_content ON edit_page_content; CREATE TRIGGER trg_edit_page_content BEFORE INSERT OR UPDATE ON edit_page_content FOR EACH ROW EXECUTE PROCEDURE set_edit_generic(); diff --git a/4dev/database/trigger/trg_edit_query_string.sql b/4dev/database/trigger/trg_edit_query_string.sql index dcd109e8..755b2e67 100644 --- a/4dev/database/trigger/trg_edit_query_string.sql +++ b/4dev/database/trigger/trg_edit_query_string.sql @@ -1,4 +1,4 @@ -DROP TRIGGER trg_edit_query_string ON edit_query_string; +DROP TRIGGER IF EXISTS trg_edit_query_string ON edit_query_string; CREATE TRIGGER trg_edit_query_string BEFORE INSERT OR UPDATE ON edit_query_string FOR EACH ROW EXECUTE PROCEDURE set_edit_generic(); diff --git a/4dev/database/trigger/trg_edit_scheme.sql b/4dev/database/trigger/trg_edit_scheme.sql index e3d00f24..0628a3a3 100644 --- a/4dev/database/trigger/trg_edit_scheme.sql +++ b/4dev/database/trigger/trg_edit_scheme.sql @@ -1,4 +1,4 @@ -DROP TRIGGER trg_edit_scheme ON edit_scheme; +DROP TRIGGER IF EXISTS trg_edit_scheme ON edit_scheme; CREATE TRIGGER trg_edit_scheme BEFORE INSERT OR UPDATE ON edit_scheme FOR EACH ROW EXECUTE PROCEDURE set_edit_generic(); diff --git a/4dev/database/trigger/trg_edit_user.sql b/4dev/database/trigger/trg_edit_user.sql index 14756e3b..e7deb750 100644 --- a/4dev/database/trigger/trg_edit_user.sql +++ b/4dev/database/trigger/trg_edit_user.sql @@ -1,4 +1,4 @@ -DROP TRIGGER trg_edit_user ON edit_user; +DROP TRIGGER IF EXISTS trg_edit_user ON edit_user; CREATE TRIGGER trg_edit_user BEFORE INSERT OR UPDATE ON edit_user FOR EACH ROW EXECUTE PROCEDURE set_edit_generic(); diff --git a/4dev/database/trigger/trg_edit_visible_group.sql b/4dev/database/trigger/trg_edit_visible_group.sql index 4baf4fd0..77212a2f 100644 --- a/4dev/database/trigger/trg_edit_visible_group.sql +++ b/4dev/database/trigger/trg_edit_visible_group.sql @@ -1,4 +1,4 @@ -DROP TRIGGER trg_edit_visible_group ON edit_visible_group; +DROP TRIGGER IF EXISTS trg_edit_visible_group ON edit_visible_group; CREATE TRIGGER trg_edit_visible_group BEFORE INSERT OR UPDATE ON edit_visible_group FOR EACH ROW EXECUTE PROCEDURE set_edit_generic(); diff --git a/www/index.php b/www/index.php deleted file mode 100644 index e69de29b..00000000 diff --git a/www/layout/admin/cache/index.php b/www/layout/admin/cache/index.php deleted file mode 100644 index e69de29b..00000000 diff --git a/www/layout/admin/css/index.php b/www/layout/admin/css/index.php deleted file mode 100644 index e69de29b..00000000 diff --git a/www/layout/admin/images/index.php b/www/layout/admin/images/index.php deleted file mode 100644 index e69de29b..00000000 diff --git a/www/layout/admin/index.php b/www/layout/admin/index.php deleted file mode 100644 index e69de29b..00000000 diff --git a/www/layout/admin/javascript/index.php b/www/layout/admin/javascript/index.php deleted file mode 100644 index e69de29b..00000000 diff --git a/www/layout/frontend/cache/index.php b/www/layout/frontend/cache/index.php deleted file mode 100644 index e69de29b..00000000 diff --git a/www/layout/frontend/css/index.php b/www/layout/frontend/css/index.php deleted file mode 100644 index e69de29b..00000000 diff --git a/www/layout/frontend/images/index.php b/www/layout/frontend/images/index.php deleted file mode 100644 index e69de29b..00000000 diff --git a/www/layout/frontend/index.php b/www/layout/frontend/index.php deleted file mode 100644 index e69de29b..00000000 diff --git a/www/layout/frontend/javascript/index.php b/www/layout/frontend/javascript/index.php deleted file mode 100644 index e69de29b..00000000