From b85172ae849d7f601fbcbe6adb6c943b0b7cb4a9 Mon Sep 17 00:00:00 2001 From: Grzegorz Michalski Date: Fri, 20 Feb 2026 14:25:19 +0100 Subject: [PATCH] wk1 --- .../01a_MARS_828_rename_threshold_columns.sql | 49 ++++++++++++++ ...06_MARS_828_configure_release01_tables.sql | 66 +++++++++---------- ...94a_MARS_828_rollback_threshold_rename.sql | 47 +++++++++++++ ...S_828_rollback_release01_configuration.sql | 60 ++++++++--------- .../MARS-828/install_mars828.sql | 39 ++++++----- .../new_version/A_SOURCE_FILE_CONFIG.sql | 8 +-- .../MARS-828/new_version/FILE_ARCHIVER.pkb | 10 +-- .../MARS-828/rollback_mars828.sql | 26 +++++--- 8 files changed, 206 insertions(+), 99 deletions(-) create mode 100644 MARS_Packages/REL01_ADDITIONS/MARS-828/01a_MARS_828_rename_threshold_columns.sql create mode 100644 MARS_Packages/REL01_ADDITIONS/MARS-828/94a_MARS_828_rollback_threshold_rename.sql diff --git a/MARS_Packages/REL01_ADDITIONS/MARS-828/01a_MARS_828_rename_threshold_columns.sql b/MARS_Packages/REL01_ADDITIONS/MARS-828/01a_MARS_828_rename_threshold_columns.sql new file mode 100644 index 0000000..06d6c47 --- /dev/null +++ b/MARS_Packages/REL01_ADDITIONS/MARS-828/01a_MARS_828_rename_threshold_columns.sql @@ -0,0 +1,49 @@ +-- MARS-828: Rename threshold columns for consistency +-- Author: Grzegorz Michalski +-- Date: 2026-01-28 +-- Description: Renames threshold columns to use consistent ARCHIVE_THRESHOLD_* prefix pattern +-- Old naming was inconsistent (DAYS_FOR vs FILES_COUNT_OVER) +-- New naming groups all threshold columns with common prefix + +PROMPT ======================================== +PROMPT MARS-828: Renaming threshold columns for consistency +PROMPT ======================================== + +-- Rename threshold columns to consistent ARCHIVE_THRESHOLD_* pattern +ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG +RENAME COLUMN DAYS_FOR_ARCHIVE_THRESHOLD TO ARCHIVE_THRESHOLD_DAYS; + +ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG +RENAME COLUMN FILES_COUNT_OVER_ARCHIVE_THRESHOLD TO ARCHIVE_THRESHOLD_FILES_COUNT; + +ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG +RENAME COLUMN BYTES_SUM_OVER_ARCHIVE_THRESHOLD TO ARCHIVE_THRESHOLD_BYTES_SUM; + +ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG +RENAME COLUMN ROWS_COUNT_OVER_ARCHIVE_THRESHOLD TO ARCHIVE_THRESHOLD_ROWS_COUNT; + +-- Verify column renames +PROMPT ======================================== +PROMPT Verifying threshold column renames... +PROMPT ======================================== + +SELECT + column_name, + data_type, + data_length +FROM all_tab_columns +WHERE owner = 'CT_MRDS' + AND table_name = 'A_SOURCE_FILE_CONFIG' + AND column_name LIKE 'ARCHIVE_THRESHOLD%' +ORDER BY column_id; + +PROMPT ======================================== +PROMPT Expected columns: +PROMPT ARCHIVE_THRESHOLD_DAYS +PROMPT ARCHIVE_THRESHOLD_FILES_COUNT +PROMPT ARCHIVE_THRESHOLD_BYTES_SUM +PROMPT ARCHIVE_THRESHOLD_ROWS_COUNT +PROMPT ======================================== + +PROMPT Threshold columns renamed successfully +PROMPT ======================================== diff --git a/MARS_Packages/REL01_ADDITIONS/MARS-828/06_MARS_828_configure_release01_tables.sql b/MARS_Packages/REL01_ADDITIONS/MARS-828/06_MARS_828_configure_release01_tables.sql index a62455b..a1354dd 100644 --- a/MARS_Packages/REL01_ADDITIONS/MARS-828/06_MARS_828_configure_release01_tables.sql +++ b/MARS_Packages/REL01_ADDITIONS/MARS-828/06_MARS_828_configure_release01_tables.sql @@ -57,9 +57,9 @@ UPDATE CT_MRDS.A_SOURCE_FILE_CONFIG SET ARCHIVAL_STRATEGY = 'MINIMUM_AGE_MONTHS', MINIMUM_AGE_MONTHS = 0, -- 0 = current month only ODS_SCHEMA_NAME = 'ODS', - FILES_COUNT_OVER_ARCHIVE_THRESHOLD = 10, - ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 100000, - BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 1073741824, -- 1 GB + ARCHIVE_THRESHOLD_FILES_COUNT = 10, + ARCHIVE_THRESHOLD_ROWS_COUNT = 100000, + ARCHIVE_THRESHOLD_BYTES_SUM = 1073741824, -- 1 GB HOURS_TO_EXPIRE_STATISTICS = 24, IS_ARCHIVE_ENABLED = 'Y', -- Enable archival for all LM tables IS_KEEP_IN_TRASH = 'N' -- Delete files immediately after archival (no TRASH retention) @@ -103,9 +103,9 @@ UPDATE CT_MRDS.A_SOURCE_FILE_CONFIG SET ARCHIVAL_STRATEGY = 'MINIMUM_AGE_MONTHS', MINIMUM_AGE_MONTHS = 6, ODS_SCHEMA_NAME = 'ODS', - FILES_COUNT_OVER_ARCHIVE_THRESHOLD = 5, - ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 50000, - BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 536870912, -- 512 MB + ARCHIVE_THRESHOLD_FILES_COUNT = 5, + ARCHIVE_THRESHOLD_ROWS_COUNT = 50000, + ARCHIVE_THRESHOLD_BYTES_SUM = 536870912, -- 512 MB HOURS_TO_EXPIRE_STATISTICS = 48, IS_ARCHIVE_ENABLED = 'Y', -- Enable archival for CSDB DEBT tables IS_KEEP_IN_TRASH = 'N' -- Delete files immediately after archival (no TRASH retention) @@ -129,9 +129,9 @@ UPDATE CT_MRDS.A_SOURCE_FILE_CONFIG SET ARCHIVAL_STRATEGY = 'MINIMUM_AGE_MONTHS', MINIMUM_AGE_MONTHS = 0, -- 0 = current month only ODS_SCHEMA_NAME = 'ODS', - FILES_COUNT_OVER_ARCHIVE_THRESHOLD = 10, - ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 20000, - BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 268435456, -- 256 MB + ARCHIVE_THRESHOLD_FILES_COUNT = 10, + ARCHIVE_THRESHOLD_ROWS_COUNT = 20000, + ARCHIVE_THRESHOLD_BYTES_SUM = 268435456, -- 256 MB HOURS_TO_EXPIRE_STATISTICS = 72, IS_ARCHIVE_ENABLED = 'Y', -- Enable archival for CSDB rating/description tables IS_KEEP_IN_TRASH = 'N' -- Delete files immediately after archival (no TRASH retention) @@ -170,18 +170,18 @@ SELECT TABLE_ID, ARCHIVAL_STRATEGY, MINIMUM_AGE_MONTHS, - FILES_COUNT_OVER_ARCHIVE_THRESHOLD AS FILE_THR, - ROWS_COUNT_OVER_ARCHIVE_THRESHOLD AS ROW_THR, - BYTES_SUM_OVER_ARCHIVE_THRESHOLD AS BYTE_THR, + ARCHIVE_THRESHOLD_FILES_COUNT AS FILE_THR, + ARCHIVE_THRESHOLD_ROWS_COUNT AS ROW_THR, + ARCHIVE_THRESHOLD_BYTES_SUM AS BYTE_THR, HOURS_TO_EXPIRE_STATISTICS AS STATS_HRS, IS_ARCHIVE_ENABLED, IS_KEEP_IN_TRASH, CASE WHEN ARCHIVAL_STRATEGY = 'MINIMUM_AGE_MONTHS' AND MINIMUM_AGE_MONTHS = 0 - AND FILES_COUNT_OVER_ARCHIVE_THRESHOLD = 10 - AND ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 100000 - AND BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 1073741824 + AND ARCHIVE_THRESHOLD_FILES_COUNT = 10 + AND ARCHIVE_THRESHOLD_ROWS_COUNT = 100000 + AND ARCHIVE_THRESHOLD_BYTES_SUM = 1073741824 AND HOURS_TO_EXPIRE_STATISTICS = 24 AND IS_ARCHIVE_ENABLED = 'Y' AND IS_KEEP_IN_TRASH = 'N' @@ -202,18 +202,18 @@ SELECT TABLE_ID, ARCHIVAL_STRATEGY, MINIMUM_AGE_MONTHS, - FILES_COUNT_OVER_ARCHIVE_THRESHOLD AS FILE_THR, - ROWS_COUNT_OVER_ARCHIVE_THRESHOLD AS ROW_THR, - BYTES_SUM_OVER_ARCHIVE_THRESHOLD AS BYTE_THR, + ARCHIVE_THRESHOLD_FILES_COUNT AS FILE_THR, + ARCHIVE_THRESHOLD_ROWS_COUNT AS ROW_THR, + ARCHIVE_THRESHOLD_BYTES_SUM AS BYTE_THR, HOURS_TO_EXPIRE_STATISTICS AS STATS_HRS, IS_ARCHIVE_ENABLED, IS_KEEP_IN_TRASH, CASE WHEN ARCHIVAL_STRATEGY = 'MINIMUM_AGE_MONTHS' AND MINIMUM_AGE_MONTHS = 6 - AND FILES_COUNT_OVER_ARCHIVE_THRESHOLD = 5 - AND ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 50000 - AND BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 536870912 + AND ARCHIVE_THRESHOLD_FILES_COUNT = 5 + AND ARCHIVE_THRESHOLD_ROWS_COUNT = 50000 + AND ARCHIVE_THRESHOLD_BYTES_SUM = 536870912 AND HOURS_TO_EXPIRE_STATISTICS = 48 AND IS_ARCHIVE_ENABLED = 'Y' AND IS_KEEP_IN_TRASH = 'N' @@ -234,18 +234,18 @@ SELECT TABLE_ID, ARCHIVAL_STRATEGY, MINIMUM_AGE_MONTHS, - FILES_COUNT_OVER_ARCHIVE_THRESHOLD AS FILE_THR, - ROWS_COUNT_OVER_ARCHIVE_THRESHOLD AS ROW_THR, - BYTES_SUM_OVER_ARCHIVE_THRESHOLD AS BYTE_THR, + ARCHIVE_THRESHOLD_FILES_COUNT AS FILE_THR, + ARCHIVE_THRESHOLD_ROWS_COUNT AS ROW_THR, + ARCHIVE_THRESHOLD_BYTES_SUM AS BYTE_THR, HOURS_TO_EXPIRE_STATISTICS AS STATS_HRS, IS_ARCHIVE_ENABLED, IS_KEEP_IN_TRASH, CASE WHEN ARCHIVAL_STRATEGY = 'MINIMUM_AGE_MONTHS' AND MINIMUM_AGE_MONTHS = 0 - AND FILES_COUNT_OVER_ARCHIVE_THRESHOLD = 10 - AND ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 20000 - AND BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 268435456 + AND ARCHIVE_THRESHOLD_FILES_COUNT = 10 + AND ARCHIVE_THRESHOLD_ROWS_COUNT = 20000 + AND ARCHIVE_THRESHOLD_BYTES_SUM = 268435456 AND HOURS_TO_EXPIRE_STATISTICS = 72 AND IS_ARCHIVE_ENABLED = 'Y' AND IS_KEEP_IN_TRASH = 'N' @@ -267,9 +267,9 @@ SELECT COUNT(*) AS TOTAL_CONFIGURED, SUM(CASE WHEN MINIMUM_AGE_MONTHS = 0 THEN 1 ELSE 0 END) AS CURRENT_MONTH_ONLY, SUM(CASE WHEN MINIMUM_AGE_MONTHS > 0 THEN 1 ELSE 0 END) AS MULTI_MONTH_RETENTION, - SUM(CASE WHEN FILES_COUNT_OVER_ARCHIVE_THRESHOLD IS NOT NULL THEN 1 ELSE 0 END) AS WITH_FILE_THRESHOLD, - SUM(CASE WHEN ROWS_COUNT_OVER_ARCHIVE_THRESHOLD IS NOT NULL THEN 1 ELSE 0 END) AS WITH_ROWS_THRESHOLD, - SUM(CASE WHEN BYTES_SUM_OVER_ARCHIVE_THRESHOLD IS NOT NULL THEN 1 ELSE 0 END) AS WITH_BYTES_THRESHOLD, + SUM(CASE WHEN ARCHIVE_THRESHOLD_FILES_COUNT IS NOT NULL THEN 1 ELSE 0 END) AS WITH_FILE_THRESHOLD, + SUM(CASE WHEN ARCHIVE_THRESHOLD_ROWS_COUNT IS NOT NULL THEN 1 ELSE 0 END) AS WITH_ROWS_THRESHOLD, + SUM(CASE WHEN ARCHIVE_THRESHOLD_BYTES_SUM IS NOT NULL THEN 1 ELSE 0 END) AS WITH_BYTES_THRESHOLD, SUM(CASE WHEN HOURS_TO_EXPIRE_STATISTICS IS NOT NULL THEN 1 ELSE 0 END) AS WITH_STATS_EXPIRY, SUM(CASE WHEN IS_ARCHIVE_ENABLED = 'Y' THEN 1 ELSE 0 END) AS ARCHIVAL_ENABLED, SUM(CASE WHEN IS_KEEP_IN_TRASH = 'N' THEN 1 ELSE 0 END) AS IMMEDIATE_DELETE @@ -306,9 +306,9 @@ SELECT COUNT(*) AS TABLE_COUNT, MAX(ARCHIVAL_STRATEGY) AS STRATEGY, MAX(MINIMUM_AGE_MONTHS) AS MIN_AGE, - MAX(FILES_COUNT_OVER_ARCHIVE_THRESHOLD) AS FILES_THRESHOLD, - MAX(ROWS_COUNT_OVER_ARCHIVE_THRESHOLD) AS ROWS_THRESHOLD, - ROUND(MAX(BYTES_SUM_OVER_ARCHIVE_THRESHOLD)/1048576, 0) || ' MB' AS BYTES_THRESHOLD, + MAX(ARCHIVE_THRESHOLD_FILES_COUNT) AS FILES_THRESHOLD, + MAX(ARCHIVE_THRESHOLD_ROWS_COUNT) AS ROWS_THRESHOLD, + ROUND(MAX(ARCHIVE_THRESHOLD_BYTES_SUM)/1048576, 0) || ' MB' AS BYTES_THRESHOLD, MAX(HOURS_TO_EXPIRE_STATISTICS) AS STATS_HOURS FROM CT_MRDS.A_SOURCE_FILE_CONFIG WHERE SOURCE_FILE_TYPE = 'INPUT' diff --git a/MARS_Packages/REL01_ADDITIONS/MARS-828/94a_MARS_828_rollback_threshold_rename.sql b/MARS_Packages/REL01_ADDITIONS/MARS-828/94a_MARS_828_rollback_threshold_rename.sql new file mode 100644 index 0000000..1effea3 --- /dev/null +++ b/MARS_Packages/REL01_ADDITIONS/MARS-828/94a_MARS_828_rollback_threshold_rename.sql @@ -0,0 +1,47 @@ +-- MARS-828: Rollback threshold column renames +-- Author: Grzegorz Michalski +-- Date: 2026-01-28 +-- Description: Reverts threshold columns back to original naming + +PROMPT ======================================== +PROMPT MARS-828: Rolling back threshold column renames +PROMPT ======================================== + +-- Revert threshold columns to original names +ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG +RENAME COLUMN ARCHIVE_THRESHOLD_DAYS TO DAYS_FOR_ARCHIVE_THRESHOLD; + +ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG +RENAME COLUMN ARCHIVE_THRESHOLD_FILES_COUNT TO FILES_COUNT_OVER_ARCHIVE_THRESHOLD; + +ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG +RENAME COLUMN ARCHIVE_THRESHOLD_BYTES_SUM TO BYTES_SUM_OVER_ARCHIVE_THRESHOLD; + +ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG +RENAME COLUMN ARCHIVE_THRESHOLD_ROWS_COUNT TO ROWS_COUNT_OVER_ARCHIVE_THRESHOLD; + +-- Verify rollback +PROMPT ======================================== +PROMPT Verifying threshold column rollback... +PROMPT ======================================== + +SELECT + column_name, + data_type, + data_length +FROM all_tab_columns +WHERE owner = 'CT_MRDS' + AND table_name = 'A_SOURCE_FILE_CONFIG' + AND (column_name LIKE '%ARCHIVE_THRESHOLD%' OR column_name LIKE 'DAYS_FOR%') +ORDER BY column_id; + +PROMPT ======================================== +PROMPT Expected original columns: +PROMPT DAYS_FOR_ARCHIVE_THRESHOLD +PROMPT FILES_COUNT_OVER_ARCHIVE_THRESHOLD +PROMPT BYTES_SUM_OVER_ARCHIVE_THRESHOLD +PROMPT ROWS_COUNT_OVER_ARCHIVE_THRESHOLD +PROMPT ======================================== + +PROMPT Threshold column renames rolled back successfully +PROMPT ======================================== diff --git a/MARS_Packages/REL01_ADDITIONS/MARS-828/96_MARS_828_rollback_release01_configuration.sql b/MARS_Packages/REL01_ADDITIONS/MARS-828/96_MARS_828_rollback_release01_configuration.sql index 0b83cc8..8869002 100644 --- a/MARS_Packages/REL01_ADDITIONS/MARS-828/96_MARS_828_rollback_release01_configuration.sql +++ b/MARS_Packages/REL01_ADDITIONS/MARS-828/96_MARS_828_rollback_release01_configuration.sql @@ -10,9 +10,9 @@ -- archival parameters back to NULL (unconfigured state): -- - ARCHIVAL_STRATEGY -- - MINIMUM_AGE_MONTHS --- - FILES_COUNT_OVER_ARCHIVE_THRESHOLD --- - ROWS_COUNT_OVER_ARCHIVE_THRESHOLD --- - BYTES_SUM_OVER_ARCHIVE_THRESHOLD +-- - ARCHIVE_THRESHOLD_FILES_COUNT +-- - ARCHIVE_THRESHOLD_ROWS_COUNT +-- - ARCHIVE_THRESHOLD_BYTES_SUM -- - HOURS_TO_EXPIRE_STATISTICS -- -- This script reverts changes made by: @@ -47,9 +47,9 @@ UPDATE CT_MRDS.A_SOURCE_FILE_CONFIG SET ARCHIVAL_STRATEGY = NULL, MINIMUM_AGE_MONTHS = NULL, ODS_SCHEMA_NAME = NULL, - FILES_COUNT_OVER_ARCHIVE_THRESHOLD = NULL, - ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = NULL, - BYTES_SUM_OVER_ARCHIVE_THRESHOLD = NULL, + ARCHIVE_THRESHOLD_FILES_COUNT = NULL, + ARCHIVE_THRESHOLD_ROWS_COUNT = NULL, + ARCHIVE_THRESHOLD_BYTES_SUM = NULL, HOURS_TO_EXPIRE_STATISTICS = NULL WHERE SOURCE_FILE_TYPE = 'INPUT' AND A_SOURCE_KEY = 'LM' @@ -88,9 +88,9 @@ UPDATE CT_MRDS.A_SOURCE_FILE_CONFIG SET ARCHIVAL_STRATEGY = NULL, MINIMUM_AGE_MONTHS = NULL, ODS_SCHEMA_NAME = NULL, - FILES_COUNT_OVER_ARCHIVE_THRESHOLD = NULL, - ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = NULL, - BYTES_SUM_OVER_ARCHIVE_THRESHOLD = NULL, + ARCHIVE_THRESHOLD_FILES_COUNT = NULL, + ARCHIVE_THRESHOLD_ROWS_COUNT = NULL, + ARCHIVE_THRESHOLD_BYTES_SUM = NULL, HOURS_TO_EXPIRE_STATISTICS = NULL WHERE SOURCE_FILE_TYPE = 'INPUT' AND A_SOURCE_KEY = 'CSDB' @@ -109,9 +109,9 @@ UPDATE CT_MRDS.A_SOURCE_FILE_CONFIG SET ARCHIVAL_STRATEGY = NULL, MINIMUM_AGE_MONTHS = NULL, ODS_SCHEMA_NAME = NULL, - FILES_COUNT_OVER_ARCHIVE_THRESHOLD = NULL, - ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = NULL, - BYTES_SUM_OVER_ARCHIVE_THRESHOLD = NULL, + ARCHIVE_THRESHOLD_FILES_COUNT = NULL, + ARCHIVE_THRESHOLD_ROWS_COUNT = NULL, + ARCHIVE_THRESHOLD_BYTES_SUM = NULL, HOURS_TO_EXPIRE_STATISTICS = NULL WHERE SOURCE_FILE_TYPE = 'INPUT' AND A_SOURCE_KEY = 'CSDB' @@ -148,16 +148,16 @@ SELECT TABLE_ID, ARCHIVAL_STRATEGY, MINIMUM_AGE_MONTHS, - FILES_COUNT_OVER_ARCHIVE_THRESHOLD AS FILE_THR, - ROWS_COUNT_OVER_ARCHIVE_THRESHOLD AS ROW_THR, - BYTES_SUM_OVER_ARCHIVE_THRESHOLD AS BYTE_THR, + ARCHIVE_THRESHOLD_FILES_COUNT AS FILE_THR, + ARCHIVE_THRESHOLD_ROWS_COUNT AS ROW_THR, + ARCHIVE_THRESHOLD_BYTES_SUM AS BYTE_THR, HOURS_TO_EXPIRE_STATISTICS AS STATS_HRS, CASE WHEN ARCHIVAL_STRATEGY IS NULL AND MINIMUM_AGE_MONTHS IS NULL - AND FILES_COUNT_OVER_ARCHIVE_THRESHOLD IS NULL - AND ROWS_COUNT_OVER_ARCHIVE_THRESHOLD IS NULL - AND BYTES_SUM_OVER_ARCHIVE_THRESHOLD IS NULL + AND ARCHIVE_THRESHOLD_FILES_COUNT IS NULL + AND ARCHIVE_THRESHOLD_ROWS_COUNT IS NULL + AND ARCHIVE_THRESHOLD_BYTES_SUM IS NULL AND HOURS_TO_EXPIRE_STATISTICS IS NULL THEN 'OK' ELSE 'ERROR - Still configured' @@ -176,16 +176,16 @@ SELECT TABLE_ID, ARCHIVAL_STRATEGY, MINIMUM_AGE_MONTHS, - FILES_COUNT_OVER_ARCHIVE_THRESHOLD AS FILE_THR, - ROWS_COUNT_OVER_ARCHIVE_THRESHOLD AS ROW_THR, - BYTES_SUM_OVER_ARCHIVE_THRESHOLD AS BYTE_THR, + ARCHIVE_THRESHOLD_FILES_COUNT AS FILE_THR, + ARCHIVE_THRESHOLD_ROWS_COUNT AS ROW_THR, + ARCHIVE_THRESHOLD_BYTES_SUM AS BYTE_THR, HOURS_TO_EXPIRE_STATISTICS AS STATS_HRS, CASE WHEN ARCHIVAL_STRATEGY IS NULL AND MINIMUM_AGE_MONTHS IS NULL - AND FILES_COUNT_OVER_ARCHIVE_THRESHOLD IS NULL - AND ROWS_COUNT_OVER_ARCHIVE_THRESHOLD IS NULL - AND BYTES_SUM_OVER_ARCHIVE_THRESHOLD IS NULL + AND ARCHIVE_THRESHOLD_FILES_COUNT IS NULL + AND ARCHIVE_THRESHOLD_ROWS_COUNT IS NULL + AND ARCHIVE_THRESHOLD_BYTES_SUM IS NULL AND HOURS_TO_EXPIRE_STATISTICS IS NULL THEN 'OK' ELSE 'ERROR - Still configured' @@ -204,16 +204,16 @@ SELECT TABLE_ID, ARCHIVAL_STRATEGY, MINIMUM_AGE_MONTHS, - FILES_COUNT_OVER_ARCHIVE_THRESHOLD AS FILE_THR, - ROWS_COUNT_OVER_ARCHIVE_THRESHOLD AS ROW_THR, - BYTES_SUM_OVER_ARCHIVE_THRESHOLD AS BYTE_THR, + ARCHIVE_THRESHOLD_FILES_COUNT AS FILE_THR, + ARCHIVE_THRESHOLD_ROWS_COUNT AS ROW_THR, + ARCHIVE_THRESHOLD_BYTES_SUM AS BYTE_THR, HOURS_TO_EXPIRE_STATISTICS AS STATS_HRS, CASE WHEN ARCHIVAL_STRATEGY IS NULL AND MINIMUM_AGE_MONTHS IS NULL - AND FILES_COUNT_OVER_ARCHIVE_THRESHOLD IS NULL - AND ROWS_COUNT_OVER_ARCHIVE_THRESHOLD IS NULL - AND BYTES_SUM_OVER_ARCHIVE_THRESHOLD IS NULL + AND ARCHIVE_THRESHOLD_FILES_COUNT IS NULL + AND ARCHIVE_THRESHOLD_ROWS_COUNT IS NULL + AND ARCHIVE_THRESHOLD_BYTES_SUM IS NULL AND HOURS_TO_EXPIRE_STATISTICS IS NULL THEN 'OK' ELSE 'ERROR - Still configured' diff --git a/MARS_Packages/REL01_ADDITIONS/MARS-828/install_mars828.sql b/MARS_Packages/REL01_ADDITIONS/MARS-828/install_mars828.sql index 6ec12e3..481cfea 100644 --- a/MARS_Packages/REL01_ADDITIONS/MARS-828/install_mars828.sql +++ b/MARS_Packages/REL01_ADDITIONS/MARS-828/install_mars828.sql @@ -38,7 +38,7 @@ PROMPT ========================================================================= PROMPT Package: CT_MRDS.FILE_ARCHIVER PROMPT Change: Enhanced archival strategies (MINIMUM_AGE_MONTHS, HYBRID) + TRASH retention + Selective archiving PROMPT Purpose: Flexible archival policies per data source with file retention and config-based control -PROMPT Steps: 10 (DDL, Trigger, Statuses, Grants, Package v3.3.0, Verify, Track, Configure) +PROMPT Steps: 11 (DDL, Rename Columns, Trigger, Statuses, Grants, Package v3.3.0, Verify, Track, Configure) PROMPT Timestamp: SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS install_start FROM DUAL; PROMPT ============================================================================ @@ -56,52 +56,57 @@ WHENEVER SQLERROR CONTINUE -- Installation steps PROMPT -PROMPT Step 1/9: Adding archival strategy and config columns to A_SOURCE_FILE_CONFIG -PROMPT ============================================================================= +PROMPT Step 1/11: Adding archival strategy and config columns to A_SOURCE_FILE_CONFIG +PROMPT ============================================================================== @@01_MARS_828_install_add_archival_strategy_columns.sql PROMPT -PROMPT Step 2/9: Creating validation trigger +PROMPT Step 2/11: Renaming threshold columns for consistent naming +PROMPT ========================================================== +@@01a_MARS_828_rename_threshold_columns.sql + +PROMPT +PROMPT Step 3/11: Creating validation trigger PROMPT ====================================== @@02_MARS_828_install_archival_strategy_trigger.sql PROMPT -PROMPT Step 3/10: Adding TRASH retention statuses to A_SOURCE_FILE_RECEIVED -PROMPT ===================================================================== +PROMPT Step 4/11: Adding TRASH retention statuses to A_SOURCE_FILE_RECEIVED +PROMPT =================================================================== @@07_MARS_828_install_add_trash_retention_statuses.sql PROMPT -PROMPT Step 4/10: Granting privileges on T_FILENAME to MRDS_LOADER -PROMPT ============================================================ +PROMPT Step 5/11: Granting privileges on T_FILENAME to MRDS_LOADER +PROMPT ========================================================== @@08_MARS_828_install_grant_t_filename.sql PROMPT -PROMPT Step 5/10: Deploying FILE_ARCHIVER Package Specification v3.3.0 -PROMPT ================================================================ +PROMPT Step 6/11: Deploying FILE_ARCHIVER Package Specification v3.3.0 +PROMPT ============================================================== @@03_MARS_828_install_CT_MRDS_FILE_ARCHIVER_SPEC.sql PROMPT -PROMPT Step 6/10: Deploying FILE_ARCHIVER Package Body v3.3.0 -PROMPT ====================================================== +PROMPT Step 7/11: Deploying FILE_ARCHIVER Package Body v3.3.0 +PROMPT ==================================================== @@04_MARS_828_install_CT_MRDS_FILE_ARCHIVER_BODY.sql PROMPT -PROMPT Step 7/10: Verifying installation +PROMPT Step 8/11: Verifying installation PROMPT ================================= @@05_MARS_828_verify_installation.sql PROMPT -PROMPT Step 8/10: Tracking package versions +PROMPT Step 9/11: Tracking package versions PROMPT ==================================== @@track_package_versions.sql PROMPT -PROMPT Step 9/10: Verifying tracked packages -PROMPT ===================================== +PROMPT Step 10/11: Verifying tracked packages +PROMPT ====================================== @@verify_packages_version.sql PROMPT -PROMPT Step 10/10: Configuring Release 01 tables archival strategies +PROMPT Step 11/11: Configuring Release 01 tables archival strategies PROMPT ============================================================ @@06_MARS_828_configure_release01_tables.sql diff --git a/MARS_Packages/REL01_ADDITIONS/MARS-828/new_version/A_SOURCE_FILE_CONFIG.sql b/MARS_Packages/REL01_ADDITIONS/MARS-828/new_version/A_SOURCE_FILE_CONFIG.sql index 03f51ff..6a791f7 100644 --- a/MARS_Packages/REL01_ADDITIONS/MARS-828/new_version/A_SOURCE_FILE_CONFIG.sql +++ b/MARS_Packages/REL01_ADDITIONS/MARS-828/new_version/A_SOURCE_FILE_CONFIG.sql @@ -16,11 +16,11 @@ CREATE TABLE CT_MRDS.A_SOURCE_FILE_CONFIG ( TABLE_ID VARCHAR2(200), TEMPLATE_TABLE_NAME VARCHAR2(200), CONTAINER_FILE_KEY NUMBER(38,0), - DAYS_FOR_ARCHIVE_THRESHOLD NUMBER(4,0), - FILES_COUNT_OVER_ARCHIVE_THRESHOLD NUMBER(38,0), - BYTES_SUM_OVER_ARCHIVE_THRESHOLD NUMBER(38,0), + ARCHIVE_THRESHOLD_DAYS NUMBER(4,0), + ARCHIVE_THRESHOLD_FILES_COUNT NUMBER(38,0), + ARCHIVE_THRESHOLD_BYTES_SUM NUMBER(38,0), ODS_SCHEMA_NAME VARCHAR2(100), - ROWS_COUNT_OVER_ARCHIVE_THRESHOLD NUMBER(38,0), + ARCHIVE_THRESHOLD_ROWS_COUNT NUMBER(38,0), HOURS_TO_EXPIRE_STATISTICS NUMBER(38,3), ARCHIVAL_STRATEGY VARCHAR2(50), MINIMUM_AGE_MONTHS NUMBER(3,0), diff --git a/MARS_Packages/REL01_ADDITIONS/MARS-828/new_version/FILE_ARCHIVER.pkb b/MARS_Packages/REL01_ADDITIONS/MARS-828/new_version/FILE_ARCHIVER.pkb index 425b4dc..8ed77d1 100644 --- a/MARS_Packages/REL01_ADDITIONS/MARS-828/new_version/FILE_ARCHIVER.pkb +++ b/MARS_Packages/REL01_ADDITIONS/MARS-828/new_version/FILE_ARCHIVER.pkb @@ -21,7 +21,7 @@ AS CASE pSourceFileConfig.ARCHIVAL_STRATEGY -- Legacy threshold-based strategy (backward compatible) WHEN 'THRESHOLD_BASED' THEN - vWhereClause := 'extract(day from (systimestamp - workflow_start)) > ' || pSourceFileConfig.DAYS_FOR_ARCHIVE_THRESHOLD; + vWhereClause := 'extract(day from (systimestamp - workflow_start)) > ' || pSourceFileConfig.ARCHIVE_THRESHOLD_DAYS; -- Archive data older than X months (0 = current month only) WHEN 'MINIMUM_AGE_MONTHS' THEN @@ -142,9 +142,9 @@ AS CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('Archival strategy: MINIMUM_AGE_MONTHS (threshold-independent)','INFO'); ELSE -- THRESHOLD_BASED and HYBRID: Check thresholds - if vTableStat.OVER_ARCH_THRESOLD_FILE_COUNT >= vSourceFileConfig.FILES_COUNT_OVER_ARCHIVE_THRESHOLD then vArchivalTriggeredBy := 'FILES_COUNT'; - elsif vTableStat.OVER_ARCH_THRESOLD_ROW_COUNT >= vSourceFileConfig.ROWS_COUNT_OVER_ARCHIVE_THRESHOLD then vArchivalTriggeredBy := vArchivalTriggeredBy||', ROWS_COUNT'; - elsif vTableStat.OVER_ARCH_THRESOLD_SIZE >= vSourceFileConfig.BYTES_SUM_OVER_ARCHIVE_THRESHOLD then vArchivalTriggeredBy := vArchivalTriggeredBy||', BYTES_SUM'; + if vTableStat.OVER_ARCH_THRESOLD_FILE_COUNT >= vSourceFileConfig.ARCHIVE_THRESHOLD_FILES_COUNT then vArchivalTriggeredBy := 'FILES_COUNT'; + elsif vTableStat.OVER_ARCH_THRESOLD_ROW_COUNT >= vSourceFileConfig.ARCHIVE_THRESHOLD_ROWS_COUNT then vArchivalTriggeredBy := vArchivalTriggeredBy||', ROWS_COUNT'; + elsif vTableStat.OVER_ARCH_THRESOLD_SIZE >= vSourceFileConfig.ARCHIVE_THRESHOLD_BYTES_SUM then vArchivalTriggeredBy := vArchivalTriggeredBy||', BYTES_SUM'; else CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('Non of archival triggers reached','INFO'); end if; END IF; @@ -483,7 +483,7 @@ AS ,sum(case when ' || vWhereClause || ' then row_count_per_file else 0 end) as OLD_ROW_COUNT ,sum(r.bytes) as BYTES ,sum(case when ' || vWhereClause || ' then r.bytes else 0 end) as OLD_BYTES - ,'||COALESCE(TO_CHAR(vSourceFileConfig.DAYS_FOR_ARCHIVE_THRESHOLD), 'NULL')||' as DAYS_FOR_ARCHIVE_THRESHOLD + ,'||COALESCE(TO_CHAR(vSourceFileConfig.ARCHIVE_THRESHOLD_DAYS), 'NULL')||' as ARCHIVE_THRESHOLD_DAYS ,systimestamp as CREATED from tmp_gr t join (SELECT * from DBMS_CLOUD.LIST_OBJECTS( diff --git a/MARS_Packages/REL01_ADDITIONS/MARS-828/rollback_mars828.sql b/MARS_Packages/REL01_ADDITIONS/MARS-828/rollback_mars828.sql index 39a2e4f..a69b06d 100644 --- a/MARS_Packages/REL01_ADDITIONS/MARS-828/rollback_mars828.sql +++ b/MARS_Packages/REL01_ADDITIONS/MARS-828/rollback_mars828.sql @@ -35,9 +35,10 @@ PROMPT Rollback steps: PROMPT 1. Rollback TRASH retention statuses PROMPT 2. Revoke T_FILENAME privileges PROMPT 3. Remove validation trigger -PROMPT 4. Drop all configuration columns (ARCHIVAL_STRATEGY, MINIMUM_AGE_MONTHS, IS_ARCHIVE_ENABLED, IS_KEEP_IN_TRASH) -PROMPT 5. Restore FILE_ARCHIVER package to v2.0.0 -PROMPT 6. Revert all archival strategies to THRESHOLD_BASED +PROMPT 4. Revert threshold column renames (restore original naming) +PROMPT 5. Drop all configuration columns (ARCHIVAL_STRATEGY, MINIMUM_AGE_MONTHS, IS_ARCHIVE_ENABLED, IS_KEEP_IN_TRASH) +PROMPT 6. Restore FILE_ARCHIVER package to v2.0.0 +PROMPT 7. Revert all archival strategies to THRESHOLD_BASED PROMPT PROMPT Timestamp: SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS rollback_start FROM DUAL; @@ -56,37 +57,42 @@ WHENEVER SQLERROR CONTINUE -- Rollback steps (in reverse order) PROMPT -PROMPT Step 1/7: Rolling back TRASH retention statuses +PROMPT Step 1/8: Rolling back TRASH retention statuses PROMPT ================================================ @@90_MARS_828_rollback_trash_retention_statuses.sql PROMPT -PROMPT Step 2/7: Revoking T_FILENAME privileges from MRDS_LOADER +PROMPT Step 2/8: Revoking T_FILENAME privileges from MRDS_LOADER PROMPT ========================================================== @@95_MARS_828_rollback_grant_t_filename.sql PROMPT -PROMPT Step 3/7: Dropping validation trigger +PROMPT Step 3/8: Dropping validation trigger PROMPT ====================================== @@93_MARS_828_rollback_trigger.sql PROMPT -PROMPT Step 4/7: Dropping all archival configuration columns +PROMPT Step 4/8: Reverting threshold column renames +PROMPT ============================================= +@@94a_MARS_828_rollback_threshold_rename.sql + +PROMPT +PROMPT Step 5/8: Dropping all archival configuration columns PROMPT ====================================================== @@94_MARS_828_rollback_columns.sql PROMPT -PROMPT Step 5/7: Restoring FILE_ARCHIVER Package Specification v2.0.0 +PROMPT Step 6/8: Restoring FILE_ARCHIVER Package Specification v2.0.0 PROMPT =============================================================== @@91_MARS_828_rollback_FILE_ARCHIVER_SPEC.sql PROMPT -PROMPT Step 6/7: Restoring FILE_ARCHIVER Package Body v2.0.0 +PROMPT Step 7/8: Restoring FILE_ARCHIVER Package Body v2.0.0 PROMPT ====================================================== @@92_MARS_828_rollback_FILE_ARCHIVER_BODY.sql PROMPT -PROMPT Step 7/7: Verifying tracked packages +PROMPT Step 8/8: Verifying tracked packages PROMPT ===================================== @@verify_packages_version.sql