From d707ddf78a9396f38645a241d0a7c521604b4524 Mon Sep 17 00:00:00 2001 From: Patrick Hawley Date: Mon, 20 Apr 2026 18:43:21 -0400 Subject: [PATCH 1/3] add CREATE TABLE rdb_date --- .../tables/258-create_rdb_date-001.sql | 65 +++++++++++++++++++ .../db.rdb_modern.changelog-16.1.yaml | 9 +++ 2 files changed, 74 insertions(+) create mode 100644 liquibase-service/src/main/resources/db/005-rdb_modern/tables/258-create_rdb_date-001.sql diff --git a/liquibase-service/src/main/resources/db/005-rdb_modern/tables/258-create_rdb_date-001.sql b/liquibase-service/src/main/resources/db/005-rdb_modern/tables/258-create_rdb_date-001.sql new file mode 100644 index 000000000..8b4ecca76 --- /dev/null +++ b/liquibase-service/src/main/resources/db/005-rdb_modern/tables/258-create_rdb_date-001.sql @@ -0,0 +1,65 @@ +-- Create RDB_DATE reference table if it does not yet exist. + +IF NOT EXISTS (SELECT 1 FROM sysobjects WHERE name = 'RDB_DATE' AND xtype = 'U') +BEGIN + CREATE TABLE RDB_DATE ( + DATE_MM_DD_YYYY datetime, + DAY_OF_WEEK varchar(10), + DAY_NBR_IN_CLNDR_MON numeric(4, 0), + DAY_NBR_IN_CLNDR_YR numeric(4, 0), + WK_NBR_IN_CLNDR_MON numeric(4, 0), + WK_NBR_IN_CLNDR_YR numeric(4, 0), + CLNDR_MON_NAME varchar(20), + CLNDR_MON_IN_YR numeric(4, 0), + CLNDR_QRTR numeric(4, 0), + CLNDR_YR numeric(18, 0), + DATE_KEY bigint NOT NULL PRIMARY KEY + ) +END + +-- Insert NULL row (key = 1) if it doesn't exist +IF NOT EXISTS (SELECT 1 FROM RDB_DATE WHERE DATE_KEY = 1) +BEGIN + INSERT INTO RDB_DATE (DATE_KEY) VALUES (1) +END + +DECLARE @date DATE = '1990-01-01' +DECLARE @endDate DATE = '2030-12-31' +DECLARE @key bigint = 2 +DECLARE @wk_nbr_in_mon numeric(4,0) +SET DATEFIRST 6 + +WHILE @date <= @endDate +BEGIN + IF NOT EXISTS (SELECT 1 FROM RDB_DATE WHERE DATE_MM_DD_YYYY = @date) + BEGIN + --IF DATENAME(WEEKDAY, @date) = 'Saturday' + -- SET @wk_nbr_in_mon = DATEDIFF(WEEK, DATEADD(DAY, 1 - DAY(@date), @date), @date) + 2 + --ELSE + -- SET @wk_nbr_in_mon = DATEDIFF(WEEK, DATEADD(DAY, 1 - DAY(@date), @date), @date) + 1 + SET @wk_nbr_in_mon = DATEDIFF(WEEK, DATEADD(MONTH, DATEDIFF(MONTH, 0, @date), 0), @date) + 1 + + INSERT INTO RDB_DATE ( + DATE_MM_DD_YYYY, DAY_OF_WEEK, DAY_NBR_IN_CLNDR_MON, + DAY_NBR_IN_CLNDR_YR, WK_NBR_IN_CLNDR_MON, WK_NBR_IN_CLNDR_YR, + CLNDR_MON_NAME, CLNDR_MON_IN_YR, CLNDR_QRTR, CLNDR_YR, DATE_KEY + ) + VALUES ( + @date, + DATENAME(WEEKDAY, @date), + DAY(@date), + DATEPART(DAYOFYEAR, @date), + @wk_nbr_in_mon, + DATEPART(WEEK, @date), + DATENAME(MONTH, @date), + MONTH(@date), + DATEPART(QUARTER, @date), + YEAR(@date), + @key + ) + SET @key = @key + 1 + END + + SET @date = DATEADD(DAY, 1, @date) +END + diff --git a/liquibase-service/src/main/resources/db/changelog/db.rdb_modern.changelog-16.1.yaml b/liquibase-service/src/main/resources/db/changelog/db.rdb_modern.changelog-16.1.yaml index 25a85ae35..c692937d6 100644 --- a/liquibase-service/src/main/resources/db/changelog/db.rdb_modern.changelog-16.1.yaml +++ b/liquibase-service/src/main/resources/db/changelog/db.rdb_modern.changelog-16.1.yaml @@ -3148,3 +3148,12 @@ databaseChangeLog: path: 008-fn_get_value_to_pascal_case-001.sql splitStatements: true endDelimiter: GO + - changeSet: + id: 956 + author: liquibase + runOnChange: true + changes: + - sqlFile: + path: 258-create_rdb_date-001.sql + splitStatements: true + endDelimiter: GO From a927f96ded41c776d334ed6c650304801fb78ad4 Mon Sep 17 00:00:00 2001 From: Patrick Hawley Date: Mon, 20 Apr 2026 18:44:30 -0400 Subject: [PATCH 2/3] don't populate the rdb_date table --- .../tables/258-create_rdb_date-001.sql | 40 ------------------- 1 file changed, 40 deletions(-) diff --git a/liquibase-service/src/main/resources/db/005-rdb_modern/tables/258-create_rdb_date-001.sql b/liquibase-service/src/main/resources/db/005-rdb_modern/tables/258-create_rdb_date-001.sql index 8b4ecca76..908bcf9cc 100644 --- a/liquibase-service/src/main/resources/db/005-rdb_modern/tables/258-create_rdb_date-001.sql +++ b/liquibase-service/src/main/resources/db/005-rdb_modern/tables/258-create_rdb_date-001.sql @@ -23,43 +23,3 @@ BEGIN INSERT INTO RDB_DATE (DATE_KEY) VALUES (1) END -DECLARE @date DATE = '1990-01-01' -DECLARE @endDate DATE = '2030-12-31' -DECLARE @key bigint = 2 -DECLARE @wk_nbr_in_mon numeric(4,0) -SET DATEFIRST 6 - -WHILE @date <= @endDate -BEGIN - IF NOT EXISTS (SELECT 1 FROM RDB_DATE WHERE DATE_MM_DD_YYYY = @date) - BEGIN - --IF DATENAME(WEEKDAY, @date) = 'Saturday' - -- SET @wk_nbr_in_mon = DATEDIFF(WEEK, DATEADD(DAY, 1 - DAY(@date), @date), @date) + 2 - --ELSE - -- SET @wk_nbr_in_mon = DATEDIFF(WEEK, DATEADD(DAY, 1 - DAY(@date), @date), @date) + 1 - SET @wk_nbr_in_mon = DATEDIFF(WEEK, DATEADD(MONTH, DATEDIFF(MONTH, 0, @date), 0), @date) + 1 - - INSERT INTO RDB_DATE ( - DATE_MM_DD_YYYY, DAY_OF_WEEK, DAY_NBR_IN_CLNDR_MON, - DAY_NBR_IN_CLNDR_YR, WK_NBR_IN_CLNDR_MON, WK_NBR_IN_CLNDR_YR, - CLNDR_MON_NAME, CLNDR_MON_IN_YR, CLNDR_QRTR, CLNDR_YR, DATE_KEY - ) - VALUES ( - @date, - DATENAME(WEEKDAY, @date), - DAY(@date), - DATEPART(DAYOFYEAR, @date), - @wk_nbr_in_mon, - DATEPART(WEEK, @date), - DATENAME(MONTH, @date), - MONTH(@date), - DATEPART(QUARTER, @date), - YEAR(@date), - @key - ) - SET @key = @key + 1 - END - - SET @date = DATEADD(DAY, 1, @date) -END - From 068c3e4a20e2454c2ee6e65be61217906abfc28c Mon Sep 17 00:00:00 2001 From: Patrick Hawley Date: Mon, 20 Apr 2026 19:11:21 -0400 Subject: [PATCH 3/3] populate rdb_modern..condition if necessary --- .../000-nrt_metadata_load-001.sql | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/liquibase-service/src/main/resources/db/001-master/02_onboarding_script_data_load/000-nrt_metadata_load-001.sql b/liquibase-service/src/main/resources/db/001-master/02_onboarding_script_data_load/000-nrt_metadata_load-001.sql index 199dfe176..8c879efc0 100644 --- a/liquibase-service/src/main/resources/db/001-master/02_onboarding_script_data_load/000-nrt_metadata_load-001.sql +++ b/liquibase-service/src/main/resources/db/001-master/02_onboarding_script_data_load/000-nrt_metadata_load-001.sql @@ -334,3 +334,12 @@ begin truncate table dbo.nrt_srte_Zipcnty_code_value; insert into dbo.nrt_srte_Zipcnty_code_value select * from nbs_srte.dbo.Zipcnty_code_value; end; + + +-- Ensure dbo.Condition table is populated +DECLARE @condition_cd_list VARCHAR(MAX) + +SELECT @condition_cd_list = STRING_AGG(CAST(CONDITION_CD AS VARCHAR), ',') +FROM dbo.nrt_srte_Condition_code + +EXEC dbo.sp_nrt_srte_condition_code_postprocessing @condition_cd_list = @condition_cd_list;