From 390322462f9094ae9dfaf8c99a7cb259a0e22f95 Mon Sep 17 00:00:00 2001
From: mlx93 <mylesethan93@gmail.com>
Date: Wed, 26 Nov 2025 14:19:16 -0600
Subject: [PATCH] feat(pg_datemath): Add datediff extension with fractional
 date calculations

Implements datediff(datepart, start_date, end_date) function:

- Supports day, week, month, quarter, year dateparts with aliases
- Hybrid calculation model: full calendar units + contextual fractions
- Returns NUMERIC with 3 decimal precision (banker's rounding)
- Handles DATE, TIMESTAMP, and TIMESTAMPTZ input types
- Calendar alignment detection for whole-number returns
- Negative span handling (start > end returns negative)
- Case-insensitive datepart parsing
- IMMUTABLE STRICT PARALLEL SAFE function attributes

This extension fills a gap in PostgreSQL's date manipulation functions,
providing precise fractional date differences useful for:
- Subscription proration calculations
- Employee tenure tracking
- Contract duration analysis
- Invoice aging reports

All regression tests pass.
---
 contrib/meson.build                           |   2 +-
 contrib/mssql_compat/Makefile                 |  21 --
 contrib/mssql_compat/meson.build              |  36 ---
 contrib/mssql_compat/mssql_compat.control     |   7 -
 contrib/pg_datemath/Makefile                  |  21 ++
 .../expected/pg_datemath.out}                 | 228 +++++++++---------
 contrib/pg_datemath/meson.build               |  36 +++
 .../pg_datemath--1.0.sql}                     |  15 +-
 .../pg_datemath.c}                            |  26 +-
 contrib/pg_datemath/pg_datemath.control       |   7 +
 .../results/pg_datemath.out}                  | 228 +++++++++---------
 .../sql/datediff_advanced_edge_cases.sql      |   4 +-
 .../sql/datediff_comprehensive_tests.sql      | 206 ++++++++--------
 .../sql/pg_datemath.sql}                      |  78 +++---
 14 files changed, 458 insertions(+), 457 deletions(-)
 delete mode 100644 contrib/mssql_compat/Makefile
 delete mode 100644 contrib/mssql_compat/meson.build
 delete mode 100644 contrib/mssql_compat/mssql_compat.control
 create mode 100644 contrib/pg_datemath/Makefile
 rename contrib/{mssql_compat/results/mssql_compat.out => pg_datemath/expected/pg_datemath.out} (68%)
 create mode 100644 contrib/pg_datemath/meson.build
 rename contrib/{mssql_compat/mssql_compat--1.0.sql => pg_datemath/pg_datemath--1.0.sql} (70%)
 rename contrib/{mssql_compat/mssql_compat.c => pg_datemath/pg_datemath.c} (96%)
 create mode 100644 contrib/pg_datemath/pg_datemath.control
 rename contrib/{mssql_compat/expected/mssql_compat.out => pg_datemath/results/pg_datemath.out} (68%)
 rename contrib/{mssql_compat => pg_datemath}/sql/datediff_advanced_edge_cases.sql (99%)
 rename contrib/{mssql_compat => pg_datemath}/sql/datediff_comprehensive_tests.sql (84%)
 rename contrib/{mssql_compat/sql/mssql_compat.sql => pg_datemath/sql/pg_datemath.sql} (67%)

diff --git a/contrib/meson.build b/contrib/meson.build
index 6a48df8daf8..f5b1bbcff9b 100644
--- a/contrib/meson.build
+++ b/contrib/meson.build
@@ -40,7 +40,7 @@ subdir('jsonb_plpython')
 subdir('lo')
 subdir('ltree')
 subdir('ltree_plpython')
-subdir('mssql_compat')
+subdir('pg_datemath')
 subdir('oid2name')
 subdir('pageinspect')
 subdir('passwordcheck')
diff --git a/contrib/mssql_compat/Makefile b/contrib/mssql_compat/Makefile
deleted file mode 100644
index 7dbb3409703..00000000000
--- a/contrib/mssql_compat/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# contrib/mssql_compat/Makefile
-
-MODULES = mssql_compat
-
-EXTENSION = mssql_compat
-DATA = mssql_compat--1.0.sql
-PGFILEDESC = "mssql_compat - SQL Server compatible date functions"
-
-REGRESS = mssql_compat
-
-ifdef USE_PGXS
-PG_CONFIG = pg_config
-PGXS := $(shell $(PG_CONFIG) --pgxs)
-include $(PGXS)
-else
-subdir = contrib/mssql_compat
-top_builddir = ../..
-include $(top_builddir)/src/Makefile.global
-include $(top_srcdir)/contrib/contrib-global.mk
-endif
-
diff --git a/contrib/mssql_compat/meson.build b/contrib/mssql_compat/meson.build
deleted file mode 100644
index d1a412ed879..00000000000
--- a/contrib/mssql_compat/meson.build
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (c) 2022-2025, PostgreSQL Global Development Group
-
-mssql_compat_sources = files(
-  'mssql_compat.c',
-)
-
-if host_system == 'windows'
-  mssql_compat_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
-    '--NAME', 'mssql_compat',
-    '--FILEDESC', 'mssql_compat - SQL Server compatible date functions',])
-endif
-
-mssql_compat = shared_module('mssql_compat',
-  mssql_compat_sources,
-  kwargs: contrib_mod_args,
-)
-
-contrib_targets += mssql_compat
-
-install_data(
-  'mssql_compat--1.0.sql',
-  'mssql_compat.control',
-  kwargs: contrib_data_args,
-)
-
-tests += {
-  'name': 'mssql_compat',
-  'sd': meson.current_source_dir(),
-  'bd': meson.current_build_dir(),
-  'regress': {
-    'sql': [
-      'mssql_compat',
-    ],
-  },
-}
-
diff --git a/contrib/mssql_compat/mssql_compat.control b/contrib/mssql_compat/mssql_compat.control
deleted file mode 100644
index cf669a4eaee..00000000000
--- a/contrib/mssql_compat/mssql_compat.control
+++ /dev/null
@@ -1,7 +0,0 @@
-# mssql_compat extension
-comment = 'SQL Server compatible datediff function'
-default_version = '1.0'
-module_pathname = '$libdir/mssql_compat'
-relocatable = true
-trusted = true
-
diff --git a/contrib/pg_datemath/Makefile b/contrib/pg_datemath/Makefile
new file mode 100644
index 00000000000..e981cdcfe91
--- /dev/null
+++ b/contrib/pg_datemath/Makefile
@@ -0,0 +1,21 @@
+# contrib/pg_datemath/Makefile
+
+MODULES = pg_datemath
+
+EXTENSION = pg_datemath
+DATA = pg_datemath--1.0.sql
+PGFILEDESC = "pg_datemath - Enhanced date difference functions"
+
+REGRESS = pg_datemath
+
+ifdef USE_PGXS
+PG_CONFIG = pg_config
+PGXS := $(shell $(PG_CONFIG) --pgxs)
+include $(PGXS)
+else
+subdir = contrib/pg_datemath
+top_builddir = ../..
+include $(top_builddir)/src/Makefile.global
+include $(top_srcdir)/contrib/contrib-global.mk
+endif
+
diff --git a/contrib/mssql_compat/results/mssql_compat.out b/contrib/pg_datemath/expected/pg_datemath.out
similarity index 68%
rename from contrib/mssql_compat/results/mssql_compat.out
rename to contrib/pg_datemath/expected/pg_datemath.out
index 3fd45c1ecc6..c2829f16d3c 100644
--- a/contrib/mssql_compat/results/mssql_compat.out
+++ b/contrib/pg_datemath/expected/pg_datemath.out
@@ -1,15 +1,15 @@
 --
--- Test cases for mssql_compat extension
--- Covers PRD1a unit tests (UT-01 to UT-15) and edge cases (EC-01 to EC-06)
+-- Test cases for pg_datemath extension
+-- Tests datediff function with various dateparts and edge cases
 --
-CREATE EXTENSION mssql_compat;
+CREATE EXTENSION pg_datemath;
 --
--- Basic Day Calculations (UT-01, UT-02)
+-- Basic Day Calculations
 --
-SELECT 'UT-01: Day difference basic' AS test;
-            test             
------------------------------
- UT-01: Day difference basic
+SELECT 'Day difference basic' AS test;
+         test         
+----------------------
+ Day difference basic
 (1 row)
 
 SELECT datediff('day', '2024-01-01'::date, '2024-01-15'::date);
@@ -18,10 +18,10 @@ SELECT datediff('day', '2024-01-01'::date, '2024-01-15'::date);
        14
 (1 row)
 
-SELECT 'UT-02: Day difference negative' AS test;
-              test              
---------------------------------
- UT-02: Day difference negative
+SELECT 'Day difference negative' AS test;
+          test           
+-------------------------
+ Day difference negative
 (1 row)
 
 SELECT datediff('day', '2024-01-15'::date, '2024-01-01'::date);
@@ -31,12 +31,12 @@ SELECT datediff('day', '2024-01-15'::date, '2024-01-01'::date);
 (1 row)
 
 --
--- Week Calculations (UT-03, UT-04)
+-- Week Calculations
 --
-SELECT 'UT-03: Week exact' AS test;
-       test        
--------------------
- UT-03: Week exact
+SELECT 'Week exact' AS test;
+    test    
+------------
+ Week exact
 (1 row)
 
 SELECT datediff('week', '2024-01-01'::date, '2024-01-08'::date);
@@ -45,10 +45,10 @@ SELECT datediff('week', '2024-01-01'::date, '2024-01-08'::date);
     1.000
 (1 row)
 
-SELECT 'UT-04: Week partial' AS test;
-        test         
----------------------
- UT-04: Week partial
+SELECT 'Week partial' AS test;
+     test     
+--------------
+ Week partial
 (1 row)
 
 SELECT datediff('week', '2024-01-01'::date, '2024-01-10'::date);
@@ -58,12 +58,12 @@ SELECT datediff('week', '2024-01-01'::date, '2024-01-10'::date);
 (1 row)
 
 --
--- Month Calculations (UT-05, UT-06, UT-07)
+-- Month Calculations
 --
-SELECT 'UT-05: Month aligned' AS test;
-         test         
-----------------------
- UT-05: Month aligned
+SELECT 'Month aligned' AS test;
+     test      
+---------------
+ Month aligned
 (1 row)
 
 SELECT datediff('month', '2024-01-15'::date, '2024-02-15'::date);
@@ -72,10 +72,10 @@ SELECT datediff('month', '2024-01-15'::date, '2024-02-15'::date);
     1.000
 (1 row)
 
-SELECT 'UT-06: Month partial' AS test;
-         test         
-----------------------
- UT-06: Month partial
+SELECT 'Month partial' AS test;
+     test      
+---------------
+ Month partial
 (1 row)
 
 SELECT datediff('month', '2024-01-15'::date, '2024-02-20'::date);
@@ -84,10 +84,10 @@ SELECT datediff('month', '2024-01-15'::date, '2024-02-20'::date);
     1.172
 (1 row)
 
-SELECT 'UT-07: Month end-of-month alignment' AS test;
-                test                 
--------------------------------------
- UT-07: Month end-of-month alignment
+SELECT 'Month end-of-month alignment' AS test;
+             test             
+------------------------------
+ Month end-of-month alignment
 (1 row)
 
 SELECT datediff('month', '2024-01-31'::date, '2024-02-29'::date);
@@ -97,12 +97,12 @@ SELECT datediff('month', '2024-01-31'::date, '2024-02-29'::date);
 (1 row)
 
 --
--- Quarter Calculations (UT-08, UT-09)
+-- Quarter Calculations
 --
-SELECT 'UT-08: Quarter aligned' AS test;
-          test          
-------------------------
- UT-08: Quarter aligned
+SELECT 'Quarter aligned' AS test;
+      test       
+-----------------
+ Quarter aligned
 (1 row)
 
 SELECT datediff('quarter', '2024-01-01'::date, '2024-04-01'::date);
@@ -111,10 +111,10 @@ SELECT datediff('quarter', '2024-01-01'::date, '2024-04-01'::date);
     1.000
 (1 row)
 
-SELECT 'UT-09: Quarter partial' AS test;
-          test          
-------------------------
- UT-09: Quarter partial
+SELECT 'Quarter partial' AS test;
+      test       
+-----------------
+ Quarter partial
 (1 row)
 
 SELECT datediff('quarter', '2024-01-15'::date, '2024-05-20'::date);
@@ -124,12 +124,12 @@ SELECT datediff('quarter', '2024-01-15'::date, '2024-05-20'::date);
 (1 row)
 
 --
--- Year Calculations (UT-10, UT-11)
+-- Year Calculations
 --
-SELECT 'UT-10: Year aligned' AS test;
-        test         
----------------------
- UT-10: Year aligned
+SELECT 'Year aligned' AS test;
+     test     
+--------------
+ Year aligned
 (1 row)
 
 SELECT datediff('year', '2024-03-15'::date, '2025-03-15'::date);
@@ -138,10 +138,10 @@ SELECT datediff('year', '2024-03-15'::date, '2025-03-15'::date);
     1.000
 (1 row)
 
-SELECT 'UT-11: Year partial leap year' AS test;
-             test              
--------------------------------
- UT-11: Year partial leap year
+SELECT 'Year partial leap year' AS test;
+          test          
+------------------------
+ Year partial leap year
 (1 row)
 
 SELECT datediff('year', '2024-01-01'::date, '2024-07-01'::date);
@@ -151,12 +151,12 @@ SELECT datediff('year', '2024-01-01'::date, '2024-07-01'::date);
 (1 row)
 
 --
--- NULL Handling (UT-12, UT-13) - STRICT functions return NULL for NULL inputs
+-- NULL Handling - STRICT functions return NULL for NULL inputs
 --
-SELECT 'UT-12: NULL start date' AS test;
-          test          
-------------------------
- UT-12: NULL start date
+SELECT 'NULL start date' AS test;
+      test       
+-----------------
+ NULL start date
 (1 row)
 
 SELECT datediff('day', NULL::date, '2024-01-15'::date);
@@ -165,10 +165,10 @@ SELECT datediff('day', NULL::date, '2024-01-15'::date);
          
 (1 row)
 
-SELECT 'UT-13: NULL end date' AS test;
-         test         
-----------------------
- UT-13: NULL end date
+SELECT 'NULL end date' AS test;
+     test      
+---------------
+ NULL end date
 (1 row)
 
 SELECT datediff('day', '2024-01-01'::date, NULL::date);
@@ -178,24 +178,24 @@ SELECT datediff('day', '2024-01-01'::date, NULL::date);
 (1 row)
 
 --
--- Invalid Datepart (UT-14)
+-- Invalid Datepart
 --
-SELECT 'UT-14: Invalid datepart' AS test;
-          test           
--------------------------
- UT-14: Invalid datepart
+SELECT 'Invalid datepart' AS test;
+       test       
+------------------
+ Invalid datepart
 (1 row)
 
 SELECT datediff('hour', '2024-01-01'::date, '2024-01-02'::date);
 ERROR:  Invalid datepart: 'hour'
 HINT:  Valid options: year, quarter, month, week, day
 --
--- Case Insensitivity (UT-15)
+-- Case Insensitivity
 --
-SELECT 'UT-15: Case insensitive datepart' AS test;
-               test               
-----------------------------------
- UT-15: Case insensitive datepart
+SELECT 'Case insensitive datepart' AS test;
+           test            
+---------------------------
+ Case insensitive datepart
 (1 row)
 
 SELECT datediff('MONTH', '2024-01-01'::date, '2024-02-01'::date);
@@ -217,12 +217,12 @@ SELECT datediff('month', '2024-01-01'::date, '2024-02-01'::date);
 (1 row)
 
 --
--- Edge Cases (EC-01 to EC-06)
+-- Edge Cases
 --
-SELECT 'EC-01: Same date' AS test;
-       test       
-------------------
- EC-01: Same date
+SELECT 'Same date' AS test;
+   test    
+-----------
+ Same date
 (1 row)
 
 SELECT datediff('day', '2024-01-01'::date, '2024-01-01'::date);
@@ -231,10 +231,10 @@ SELECT datediff('day', '2024-01-01'::date, '2024-01-01'::date);
         0
 (1 row)
 
-SELECT 'EC-02: Leap year February 29' AS test;
-             test             
-------------------------------
- EC-02: Leap year February 29
+SELECT 'Leap year February 29' AS test;
+         test          
+-----------------------
+ Leap year February 29
 (1 row)
 
 SELECT datediff('day', '2024-02-28'::date, '2024-03-01'::date);
@@ -243,10 +243,10 @@ SELECT datediff('day', '2024-02-28'::date, '2024-03-01'::date);
         2
 (1 row)
 
-SELECT 'EC-03: Non-leap year February' AS test;
-             test              
--------------------------------
- EC-03: Non-leap year February
+SELECT 'Non-leap year February' AS test;
+          test          
+------------------------
+ Non-leap year February
 (1 row)
 
 SELECT datediff('day', '2023-02-28'::date, '2023-03-01'::date);
@@ -255,10 +255,10 @@ SELECT datediff('day', '2023-02-28'::date, '2023-03-01'::date);
         1
 (1 row)
 
-SELECT 'EC-04: Year boundary' AS test;
-         test         
-----------------------
- EC-04: Year boundary
+SELECT 'Year boundary' AS test;
+     test      
+---------------
+ Year boundary
 (1 row)
 
 SELECT datediff('year', '2024-12-31'::date, '2025-01-01'::date);
@@ -267,10 +267,10 @@ SELECT datediff('year', '2024-12-31'::date, '2025-01-01'::date);
     0.003
 (1 row)
 
-SELECT 'EC-05: Multi-year span' AS test;
-          test          
-------------------------
- EC-05: Multi-year span
+SELECT 'Multi-year span' AS test;
+      test       
+-----------------
+ Multi-year span
 (1 row)
 
 SELECT datediff('year', '2020-01-01'::date, '2025-01-01'::date);
@@ -279,10 +279,10 @@ SELECT datediff('year', '2020-01-01'::date, '2025-01-01'::date);
     5.000
 (1 row)
 
-SELECT 'EC-06: Century boundary' AS test;
-          test           
--------------------------
- EC-06: Century boundary
+SELECT 'Century boundary' AS test;
+       test       
+------------------
+ Century boundary
 (1 row)
 
 SELECT datediff('day', '1999-12-31'::date, '2000-01-01'::date);
@@ -292,7 +292,7 @@ SELECT datediff('day', '1999-12-31'::date, '2000-01-01'::date);
 (1 row)
 
 --
--- Alias Tests (from PRD1b lines 224-230)
+-- Alias Tests
 --
 SELECT 'Alias: yy for year' AS test;
         test        
@@ -411,10 +411,10 @@ SELECT datediff('day', '2024-01-01 10:30:00+00'::timestamptz, '2024-01-15 14:45:
 --
 -- Additional Month Calculation Tests
 --
-SELECT 'Month: Jan 25 to Mar 10 (PRD walkthrough example)' AS test;
-                       test                        
----------------------------------------------------
- Month: Jan 25 to Mar 10 (PRD walkthrough example)
+SELECT 'Month: Jan 25 to Mar 10' AS test;
+          test           
+-------------------------
+ Month: Jan 25 to Mar 10
 (1 row)
 
 SELECT datediff('month', '2024-01-25'::date, '2024-03-10'::date);
@@ -438,10 +438,10 @@ SELECT datediff('month', '2024-01-15'::date, '2024-02-20'::date);
 --
 -- Additional Quarter Calculation Tests
 --
-SELECT 'Quarter: PRD walkthrough example' AS test;
-               test               
-----------------------------------
- Quarter: PRD walkthrough example
+SELECT 'Quarter: Q1 to Q2 partial' AS test;
+           test            
+---------------------------
+ Quarter: Q1 to Q2 partial
 (1 row)
 
 SELECT datediff('quarter', '2024-01-15'::date, '2024-05-20'::date);
@@ -453,10 +453,10 @@ SELECT datediff('quarter', '2024-01-15'::date, '2024-05-20'::date);
 --
 -- Additional Year Calculation Tests
 --
-SELECT 'Year: PRD walkthrough example' AS test;
-             test              
--------------------------------
- Year: PRD walkthrough example
+SELECT 'Year: partial year calculation' AS test;
+              test              
+--------------------------------
+ Year: partial year calculation
 (1 row)
 
 SELECT datediff('year', '2024-03-15'::date, '2025-06-20'::date);
@@ -504,10 +504,10 @@ SELECT datediff('week', '2024-01-01'::date, '2024-01-15'::date);
     2.000
 (1 row)
 
-SELECT 'Week: PRD example 9 days' AS test;
-           test           
---------------------------
- Week: PRD example 9 days
+SELECT 'Week: 9 days example' AS test;
+         test         
+----------------------
+ Week: 9 days example
 (1 row)
 
 SELECT datediff('week', '2024-01-01'::date, '2024-01-10'::date);
@@ -516,4 +516,4 @@ SELECT datediff('week', '2024-01-01'::date, '2024-01-10'::date);
     1.286
 (1 row)
 
-DROP EXTENSION mssql_compat;
+DROP EXTENSION pg_datemath;
diff --git a/contrib/pg_datemath/meson.build b/contrib/pg_datemath/meson.build
new file mode 100644
index 00000000000..4378a0f574e
--- /dev/null
+++ b/contrib/pg_datemath/meson.build
@@ -0,0 +1,36 @@
+# Copyright (c) 2022-2025, PostgreSQL Global Development Group
+
+pg_datemath_sources = files(
+  'pg_datemath.c',
+)
+
+if host_system == 'windows'
+  pg_datemath_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+    '--NAME', 'pg_datemath',
+    '--FILEDESC', 'pg_datemath - Enhanced date difference functions',])
+endif
+
+pg_datemath = shared_module('pg_datemath',
+  pg_datemath_sources,
+  kwargs: contrib_mod_args,
+)
+
+contrib_targets += pg_datemath
+
+install_data(
+  'pg_datemath--1.0.sql',
+  'pg_datemath.control',
+  kwargs: contrib_data_args,
+)
+
+tests += {
+  'name': 'pg_datemath',
+  'sd': meson.current_source_dir(),
+  'bd': meson.current_build_dir(),
+  'regress': {
+    'sql': [
+      'pg_datemath',
+    ],
+  },
+}
+
diff --git a/contrib/mssql_compat/mssql_compat--1.0.sql b/contrib/pg_datemath/pg_datemath--1.0.sql
similarity index 70%
rename from contrib/mssql_compat/mssql_compat--1.0.sql
rename to contrib/pg_datemath/pg_datemath--1.0.sql
index 8b950cb4cc4..b141c86d79c 100644
--- a/contrib/mssql_compat/mssql_compat--1.0.sql
+++ b/contrib/pg_datemath/pg_datemath--1.0.sql
@@ -1,17 +1,18 @@
-/* contrib/mssql_compat/mssql_compat--1.0.sql */
+/* contrib/pg_datemath/pg_datemath--1.0.sql */
 
 -- complain if script is sourced in psql, rather than via CREATE EXTENSION
-\echo Use "CREATE EXTENSION mssql_compat" to load this file. \quit
+\echo Use "CREATE EXTENSION pg_datemath" to load this file. \quit
 
 --
--- datediff(datepart, start_date, end_date) - SQL Server compatible date difference
+-- datediff(datepart, start_date, end_date) - Enhanced date difference calculation
 --
 -- Returns the difference between two dates in the specified datepart unit.
--- Supports: year, quarter, month, week, day (and aliases)
+-- Supports: year, quarter, month, week, day (and common aliases)
 --
--- Unlike SQL Server's boundary-crossing semantics, this implementation provides
--- mathematically accurate results using a hybrid calculation model: full calendar
--- units plus contextual fractions based on actual period lengths.
+-- This implementation provides mathematically accurate results using a hybrid
+-- calculation model: full calendar units plus contextual fractions based on
+-- actual period lengths. This is useful for proration, tenure calculation,
+-- and other scenarios requiring precise fractional date differences.
 --
 
 -- Date version
diff --git a/contrib/mssql_compat/mssql_compat.c b/contrib/pg_datemath/pg_datemath.c
similarity index 96%
rename from contrib/mssql_compat/mssql_compat.c
rename to contrib/pg_datemath/pg_datemath.c
index 1db22f37982..fd8c49bfec7 100644
--- a/contrib/mssql_compat/mssql_compat.c
+++ b/contrib/pg_datemath/pg_datemath.c
@@ -1,7 +1,7 @@
 /*-------------------------------------------------------------------------
  *
- * mssql_compat.c
- *		SQL Server compatible datediff function for PostgreSQL.
+ * pg_datemath.c
+ *		Enhanced date difference functions for PostgreSQL.
  *
  * This extension provides datediff(datepart, start_date, end_date) which
  * calculates the difference between two dates using a hybrid calculation
@@ -10,7 +10,7 @@
  *
  * Copyright (c) 2024, PostgreSQL Global Development Group
  *
- * contrib/mssql_compat/mssql_compat.c
+ * contrib/pg_datemath/pg_datemath.c
  *
  *-------------------------------------------------------------------------
  */
@@ -28,7 +28,7 @@
 #include "utils/timestamp.h"
 
 PG_MODULE_MAGIC_EXT(
-					.name = "mssql_compat",
+					.name = "pg_datemath",
 					.version = PG_VERSION
 );
 
@@ -62,7 +62,7 @@ parse_datepart(const char *datepart_str)
 		lower[i] = tolower((unsigned char) datepart_str[i]);
 	lower[i] = '\0';
 
-	/* Match canonical names and aliases per PRD1b lines 224-230 */
+	/* Match canonical names and aliases */
 	if (strcmp(lower, "year") == 0 ||
 		strcmp(lower, "yy") == 0 ||
 		strcmp(lower, "yyyy") == 0 ||
@@ -101,7 +101,7 @@ parse_datepart(const char *datepart_str)
 /*
  * days_in_month_helper - get days in a specific month
  *
- * Uses PostgreSQL's day_tab array (per PRD1b lines 235-252)
+ * Uses PostgreSQL's day_tab array.
  * month is 1-based (1=January, 12=December)
  */
 static int
@@ -159,8 +159,8 @@ day_of_quarter(int year, int month, int day)
 /*
  * bankers_round - round to 3 decimal places using HALF_EVEN (banker's rounding)
  *
- * Per PRD1a FR-7: "Decimal results SHALL be rounded to exactly 3 decimal places
- * using HALF_EVEN (banker's) rounding"
+ * Decimal results are rounded to exactly 3 decimal places using HALF_EVEN
+ * (banker's) rounding for consistent, unbiased results.
  */
 static double
 bankers_round(double value)
@@ -194,7 +194,7 @@ bankers_round(double value)
 /*
  * make_numeric_result - convert double to NUMERIC with 3 decimal places
  *
- * Uses string conversion approach as per PRD1b lines 167-174
+ * Uses string conversion approach for precise decimal representation.
  */
 static Datum
 make_numeric_result(double value)
@@ -246,7 +246,7 @@ compute_diff_week(int start_y, int start_m, int start_d,
 /*
  * compute_diff_month - calculate month difference using hybrid model
  *
- * Per PRD1a FR-3/FR-4:
+ * Calculation model:
  * - Aligned dates (same day-of-month or both end-of-month) return whole numbers
  * - Non-aligned: full months + (remaining days / days in partial period)
  */
@@ -265,7 +265,7 @@ compute_diff_month(int start_y, int start_m, int start_d,
 	int			anniversary_y, anniversary_m, anniversary_d;
 	int			anniversary_jd, end_jd;
 
-	/* Handle negative spans by swapping and negating result (FR-6) */
+	/* Handle negative spans by swapping and negating result */
 	if (start_y > end_y ||
 		(start_y == end_y && start_m > end_m) ||
 		(start_y == end_y && start_m == end_m && start_d > end_d))
@@ -281,7 +281,7 @@ compute_diff_month(int start_y, int start_m, int start_d,
 		negated = true;
 	}
 
-	/* Check for calendar alignment (FR-4) */
+	/* Check for calendar alignment */
 	start_eom = is_end_of_month(start_y, start_m, start_d);
 	end_eom = is_end_of_month(end_y, end_m, end_d);
 	aligned = (start_d == end_d) || (start_eom && end_eom);
@@ -611,7 +611,7 @@ datediff_internal(const char *datepart_str,
 {
 	DatepartType datepart = parse_datepart(datepart_str);
 
-	/* Validate datepart (FR-2) */
+	/* Validate datepart */
 	if (datepart == DATEPART_INVALID)
 	{
 		ereport(ERROR,
diff --git a/contrib/pg_datemath/pg_datemath.control b/contrib/pg_datemath/pg_datemath.control
new file mode 100644
index 00000000000..0a7da533b00
--- /dev/null
+++ b/contrib/pg_datemath/pg_datemath.control
@@ -0,0 +1,7 @@
+# pg_datemath extension
+comment = 'Enhanced date difference functions with fractional precision'
+default_version = '1.0'
+module_pathname = '$libdir/pg_datemath'
+relocatable = true
+trusted = true
+
diff --git a/contrib/mssql_compat/expected/mssql_compat.out b/contrib/pg_datemath/results/pg_datemath.out
similarity index 68%
rename from contrib/mssql_compat/expected/mssql_compat.out
rename to contrib/pg_datemath/results/pg_datemath.out
index 3fd45c1ecc6..c2829f16d3c 100644
--- a/contrib/mssql_compat/expected/mssql_compat.out
+++ b/contrib/pg_datemath/results/pg_datemath.out
@@ -1,15 +1,15 @@
 --
--- Test cases for mssql_compat extension
--- Covers PRD1a unit tests (UT-01 to UT-15) and edge cases (EC-01 to EC-06)
+-- Test cases for pg_datemath extension
+-- Tests datediff function with various dateparts and edge cases
 --
-CREATE EXTENSION mssql_compat;
+CREATE EXTENSION pg_datemath;
 --
--- Basic Day Calculations (UT-01, UT-02)
+-- Basic Day Calculations
 --
-SELECT 'UT-01: Day difference basic' AS test;
-            test             
------------------------------
- UT-01: Day difference basic
+SELECT 'Day difference basic' AS test;
+         test         
+----------------------
+ Day difference basic
 (1 row)
 
 SELECT datediff('day', '2024-01-01'::date, '2024-01-15'::date);
@@ -18,10 +18,10 @@ SELECT datediff('day', '2024-01-01'::date, '2024-01-15'::date);
        14
 (1 row)
 
-SELECT 'UT-02: Day difference negative' AS test;
-              test              
---------------------------------
- UT-02: Day difference negative
+SELECT 'Day difference negative' AS test;
+          test           
+-------------------------
+ Day difference negative
 (1 row)
 
 SELECT datediff('day', '2024-01-15'::date, '2024-01-01'::date);
@@ -31,12 +31,12 @@ SELECT datediff('day', '2024-01-15'::date, '2024-01-01'::date);
 (1 row)
 
 --
--- Week Calculations (UT-03, UT-04)
+-- Week Calculations
 --
-SELECT 'UT-03: Week exact' AS test;
-       test        
--------------------
- UT-03: Week exact
+SELECT 'Week exact' AS test;
+    test    
+------------
+ Week exact
 (1 row)
 
 SELECT datediff('week', '2024-01-01'::date, '2024-01-08'::date);
@@ -45,10 +45,10 @@ SELECT datediff('week', '2024-01-01'::date, '2024-01-08'::date);
     1.000
 (1 row)
 
-SELECT 'UT-04: Week partial' AS test;
-        test         
----------------------
- UT-04: Week partial
+SELECT 'Week partial' AS test;
+     test     
+--------------
+ Week partial
 (1 row)
 
 SELECT datediff('week', '2024-01-01'::date, '2024-01-10'::date);
@@ -58,12 +58,12 @@ SELECT datediff('week', '2024-01-01'::date, '2024-01-10'::date);
 (1 row)
 
 --
--- Month Calculations (UT-05, UT-06, UT-07)
+-- Month Calculations
 --
-SELECT 'UT-05: Month aligned' AS test;
-         test         
-----------------------
- UT-05: Month aligned
+SELECT 'Month aligned' AS test;
+     test      
+---------------
+ Month aligned
 (1 row)
 
 SELECT datediff('month', '2024-01-15'::date, '2024-02-15'::date);
@@ -72,10 +72,10 @@ SELECT datediff('month', '2024-01-15'::date, '2024-02-15'::date);
     1.000
 (1 row)
 
-SELECT 'UT-06: Month partial' AS test;
-         test         
-----------------------
- UT-06: Month partial
+SELECT 'Month partial' AS test;
+     test      
+---------------
+ Month partial
 (1 row)
 
 SELECT datediff('month', '2024-01-15'::date, '2024-02-20'::date);
@@ -84,10 +84,10 @@ SELECT datediff('month', '2024-01-15'::date, '2024-02-20'::date);
     1.172
 (1 row)
 
-SELECT 'UT-07: Month end-of-month alignment' AS test;
-                test                 
--------------------------------------
- UT-07: Month end-of-month alignment
+SELECT 'Month end-of-month alignment' AS test;
+             test             
+------------------------------
+ Month end-of-month alignment
 (1 row)
 
 SELECT datediff('month', '2024-01-31'::date, '2024-02-29'::date);
@@ -97,12 +97,12 @@ SELECT datediff('month', '2024-01-31'::date, '2024-02-29'::date);
 (1 row)
 
 --
--- Quarter Calculations (UT-08, UT-09)
+-- Quarter Calculations
 --
-SELECT 'UT-08: Quarter aligned' AS test;
-          test          
-------------------------
- UT-08: Quarter aligned
+SELECT 'Quarter aligned' AS test;
+      test       
+-----------------
+ Quarter aligned
 (1 row)
 
 SELECT datediff('quarter', '2024-01-01'::date, '2024-04-01'::date);
@@ -111,10 +111,10 @@ SELECT datediff('quarter', '2024-01-01'::date, '2024-04-01'::date);
     1.000
 (1 row)
 
-SELECT 'UT-09: Quarter partial' AS test;
-          test          
-------------------------
- UT-09: Quarter partial
+SELECT 'Quarter partial' AS test;
+      test       
+-----------------
+ Quarter partial
 (1 row)
 
 SELECT datediff('quarter', '2024-01-15'::date, '2024-05-20'::date);
@@ -124,12 +124,12 @@ SELECT datediff('quarter', '2024-01-15'::date, '2024-05-20'::date);
 (1 row)
 
 --
--- Year Calculations (UT-10, UT-11)
+-- Year Calculations
 --
-SELECT 'UT-10: Year aligned' AS test;
-        test         
----------------------
- UT-10: Year aligned
+SELECT 'Year aligned' AS test;
+     test     
+--------------
+ Year aligned
 (1 row)
 
 SELECT datediff('year', '2024-03-15'::date, '2025-03-15'::date);
@@ -138,10 +138,10 @@ SELECT datediff('year', '2024-03-15'::date, '2025-03-15'::date);
     1.000
 (1 row)
 
-SELECT 'UT-11: Year partial leap year' AS test;
-             test              
--------------------------------
- UT-11: Year partial leap year
+SELECT 'Year partial leap year' AS test;
+          test          
+------------------------
+ Year partial leap year
 (1 row)
 
 SELECT datediff('year', '2024-01-01'::date, '2024-07-01'::date);
@@ -151,12 +151,12 @@ SELECT datediff('year', '2024-01-01'::date, '2024-07-01'::date);
 (1 row)
 
 --
--- NULL Handling (UT-12, UT-13) - STRICT functions return NULL for NULL inputs
+-- NULL Handling - STRICT functions return NULL for NULL inputs
 --
-SELECT 'UT-12: NULL start date' AS test;
-          test          
-------------------------
- UT-12: NULL start date
+SELECT 'NULL start date' AS test;
+      test       
+-----------------
+ NULL start date
 (1 row)
 
 SELECT datediff('day', NULL::date, '2024-01-15'::date);
@@ -165,10 +165,10 @@ SELECT datediff('day', NULL::date, '2024-01-15'::date);
          
 (1 row)
 
-SELECT 'UT-13: NULL end date' AS test;
-         test         
-----------------------
- UT-13: NULL end date
+SELECT 'NULL end date' AS test;
+     test      
+---------------
+ NULL end date
 (1 row)
 
 SELECT datediff('day', '2024-01-01'::date, NULL::date);
@@ -178,24 +178,24 @@ SELECT datediff('day', '2024-01-01'::date, NULL::date);
 (1 row)
 
 --
--- Invalid Datepart (UT-14)
+-- Invalid Datepart
 --
-SELECT 'UT-14: Invalid datepart' AS test;
-          test           
--------------------------
- UT-14: Invalid datepart
+SELECT 'Invalid datepart' AS test;
+       test       
+------------------
+ Invalid datepart
 (1 row)
 
 SELECT datediff('hour', '2024-01-01'::date, '2024-01-02'::date);
 ERROR:  Invalid datepart: 'hour'
 HINT:  Valid options: year, quarter, month, week, day
 --
--- Case Insensitivity (UT-15)
+-- Case Insensitivity
 --
-SELECT 'UT-15: Case insensitive datepart' AS test;
-               test               
-----------------------------------
- UT-15: Case insensitive datepart
+SELECT 'Case insensitive datepart' AS test;
+           test            
+---------------------------
+ Case insensitive datepart
 (1 row)
 
 SELECT datediff('MONTH', '2024-01-01'::date, '2024-02-01'::date);
@@ -217,12 +217,12 @@ SELECT datediff('month', '2024-01-01'::date, '2024-02-01'::date);
 (1 row)
 
 --
--- Edge Cases (EC-01 to EC-06)
+-- Edge Cases
 --
-SELECT 'EC-01: Same date' AS test;
-       test       
-------------------
- EC-01: Same date
+SELECT 'Same date' AS test;
+   test    
+-----------
+ Same date
 (1 row)
 
 SELECT datediff('day', '2024-01-01'::date, '2024-01-01'::date);
@@ -231,10 +231,10 @@ SELECT datediff('day', '2024-01-01'::date, '2024-01-01'::date);
         0
 (1 row)
 
-SELECT 'EC-02: Leap year February 29' AS test;
-             test             
-------------------------------
- EC-02: Leap year February 29
+SELECT 'Leap year February 29' AS test;
+         test          
+-----------------------
+ Leap year February 29
 (1 row)
 
 SELECT datediff('day', '2024-02-28'::date, '2024-03-01'::date);
@@ -243,10 +243,10 @@ SELECT datediff('day', '2024-02-28'::date, '2024-03-01'::date);
         2
 (1 row)
 
-SELECT 'EC-03: Non-leap year February' AS test;
-             test              
--------------------------------
- EC-03: Non-leap year February
+SELECT 'Non-leap year February' AS test;
+          test          
+------------------------
+ Non-leap year February
 (1 row)
 
 SELECT datediff('day', '2023-02-28'::date, '2023-03-01'::date);
@@ -255,10 +255,10 @@ SELECT datediff('day', '2023-02-28'::date, '2023-03-01'::date);
         1
 (1 row)
 
-SELECT 'EC-04: Year boundary' AS test;
-         test         
-----------------------
- EC-04: Year boundary
+SELECT 'Year boundary' AS test;
+     test      
+---------------
+ Year boundary
 (1 row)
 
 SELECT datediff('year', '2024-12-31'::date, '2025-01-01'::date);
@@ -267,10 +267,10 @@ SELECT datediff('year', '2024-12-31'::date, '2025-01-01'::date);
     0.003
 (1 row)
 
-SELECT 'EC-05: Multi-year span' AS test;
-          test          
-------------------------
- EC-05: Multi-year span
+SELECT 'Multi-year span' AS test;
+      test       
+-----------------
+ Multi-year span
 (1 row)
 
 SELECT datediff('year', '2020-01-01'::date, '2025-01-01'::date);
@@ -279,10 +279,10 @@ SELECT datediff('year', '2020-01-01'::date, '2025-01-01'::date);
     5.000
 (1 row)
 
-SELECT 'EC-06: Century boundary' AS test;
-          test           
--------------------------
- EC-06: Century boundary
+SELECT 'Century boundary' AS test;
+       test       
+------------------
+ Century boundary
 (1 row)
 
 SELECT datediff('day', '1999-12-31'::date, '2000-01-01'::date);
@@ -292,7 +292,7 @@ SELECT datediff('day', '1999-12-31'::date, '2000-01-01'::date);
 (1 row)
 
 --
--- Alias Tests (from PRD1b lines 224-230)
+-- Alias Tests
 --
 SELECT 'Alias: yy for year' AS test;
         test        
@@ -411,10 +411,10 @@ SELECT datediff('day', '2024-01-01 10:30:00+00'::timestamptz, '2024-01-15 14:45:
 --
 -- Additional Month Calculation Tests
 --
-SELECT 'Month: Jan 25 to Mar 10 (PRD walkthrough example)' AS test;
-                       test                        
----------------------------------------------------
- Month: Jan 25 to Mar 10 (PRD walkthrough example)
+SELECT 'Month: Jan 25 to Mar 10' AS test;
+          test           
+-------------------------
+ Month: Jan 25 to Mar 10
 (1 row)
 
 SELECT datediff('month', '2024-01-25'::date, '2024-03-10'::date);
@@ -438,10 +438,10 @@ SELECT datediff('month', '2024-01-15'::date, '2024-02-20'::date);
 --
 -- Additional Quarter Calculation Tests
 --
-SELECT 'Quarter: PRD walkthrough example' AS test;
-               test               
-----------------------------------
- Quarter: PRD walkthrough example
+SELECT 'Quarter: Q1 to Q2 partial' AS test;
+           test            
+---------------------------
+ Quarter: Q1 to Q2 partial
 (1 row)
 
 SELECT datediff('quarter', '2024-01-15'::date, '2024-05-20'::date);
@@ -453,10 +453,10 @@ SELECT datediff('quarter', '2024-01-15'::date, '2024-05-20'::date);
 --
 -- Additional Year Calculation Tests
 --
-SELECT 'Year: PRD walkthrough example' AS test;
-             test              
--------------------------------
- Year: PRD walkthrough example
+SELECT 'Year: partial year calculation' AS test;
+              test              
+--------------------------------
+ Year: partial year calculation
 (1 row)
 
 SELECT datediff('year', '2024-03-15'::date, '2025-06-20'::date);
@@ -504,10 +504,10 @@ SELECT datediff('week', '2024-01-01'::date, '2024-01-15'::date);
     2.000
 (1 row)
 
-SELECT 'Week: PRD example 9 days' AS test;
-           test           
---------------------------
- Week: PRD example 9 days
+SELECT 'Week: 9 days example' AS test;
+         test         
+----------------------
+ Week: 9 days example
 (1 row)
 
 SELECT datediff('week', '2024-01-01'::date, '2024-01-10'::date);
@@ -516,4 +516,4 @@ SELECT datediff('week', '2024-01-01'::date, '2024-01-10'::date);
     1.286
 (1 row)
 
-DROP EXTENSION mssql_compat;
+DROP EXTENSION pg_datemath;
diff --git a/contrib/mssql_compat/sql/datediff_advanced_edge_cases.sql b/contrib/pg_datemath/sql/datediff_advanced_edge_cases.sql
similarity index 99%
rename from contrib/mssql_compat/sql/datediff_advanced_edge_cases.sql
rename to contrib/pg_datemath/sql/datediff_advanced_edge_cases.sql
index 2491400675e..5cb92df8801 100644
--- a/contrib/mssql_compat/sql/datediff_advanced_edge_cases.sql
+++ b/contrib/pg_datemath/sql/datediff_advanced_edge_cases.sql
@@ -3,8 +3,8 @@
 -- Tests scenarios not covered in basic tests
 --
 
-DROP EXTENSION IF EXISTS mssql_compat CASCADE;
-CREATE EXTENSION mssql_compat;
+DROP EXTENSION IF EXISTS pg_datemath CASCADE;
+CREATE EXTENSION pg_datemath;
 
 -- ============================================================================
 -- SECTION 1: EXTREME DATE RANGES
diff --git a/contrib/mssql_compat/sql/datediff_comprehensive_tests.sql b/contrib/pg_datemath/sql/datediff_comprehensive_tests.sql
similarity index 84%
rename from contrib/mssql_compat/sql/datediff_comprehensive_tests.sql
rename to contrib/pg_datemath/sql/datediff_comprehensive_tests.sql
index a763d958a62..0892b0a61a6 100644
--- a/contrib/mssql_compat/sql/datediff_comprehensive_tests.sql
+++ b/contrib/pg_datemath/sql/datediff_comprehensive_tests.sql
@@ -4,8 +4,8 @@
 --
 
 -- Setup: Create extension
-DROP EXTENSION IF EXISTS mssql_compat CASCADE;
-CREATE EXTENSION mssql_compat;
+DROP EXTENSION IF EXISTS pg_datemath CASCADE;
+CREATE EXTENSION pg_datemath;
 
 -- ============================================================================
 -- SECTION 1: Test Data Setup
@@ -81,50 +81,50 @@ INSERT INTO date_test_data (description, start_date, end_date, start_ts, end_ts,
 
 SELECT '=== DAY DATEPART TESTS ===' AS section;
 
--- Test 1: Basic day difference
-SELECT 'Test 1: Basic day difference' AS test_name,
+-- Basic day difference
+SELECT 'Basic day difference' AS test_name,
        datediff('day', '2024-01-01', '2024-01-15') AS result,
        14 AS expected,
        CASE WHEN datediff('day', '2024-01-01', '2024-01-15') = 14 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 2: Day difference using 'dd' alias
-SELECT 'Test 2: Day alias dd' AS test_name,
+-- Day difference using 'dd' alias
+SELECT 'Day alias dd' AS test_name,
        datediff('dd', '2024-01-01', '2024-01-15') AS result,
        14 AS expected,
        CASE WHEN datediff('dd', '2024-01-01', '2024-01-15') = 14 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 3: Day difference using 'd' alias
-SELECT 'Test 3: Day alias d' AS test_name,
+-- Day difference using 'd' alias
+SELECT 'Day alias d' AS test_name,
        datediff('d', '2024-03-01', '2024-03-31') AS result,
        30 AS expected,
        CASE WHEN datediff('d', '2024-03-01', '2024-03-31') = 30 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 4: Day difference using 'days' alias
-SELECT 'Test 4: Day alias days' AS test_name,
+-- Day difference using 'days' alias
+SELECT 'Day alias days' AS test_name,
        datediff('days', '2024-06-01', '2024-06-30') AS result,
        29 AS expected,
        CASE WHEN datediff('days', '2024-06-01', '2024-06-30') = 29 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 5: Negative day difference
-SELECT 'Test 5: Negative day difference' AS test_name,
+-- Negative day difference
+SELECT 'Negative day difference' AS test_name,
        datediff('day', '2024-01-15', '2024-01-01') AS result,
        -14 AS expected,
        CASE WHEN datediff('day', '2024-01-15', '2024-01-01') = -14 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 6: Same day returns 0
-SELECT 'Test 6: Same day returns 0' AS test_name,
+-- Same day returns 0
+SELECT 'Same day returns 0' AS test_name,
        datediff('day', '2024-06-15', '2024-06-15') AS result,
        0 AS expected,
        CASE WHEN datediff('day', '2024-06-15', '2024-06-15') = 0 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 7: Leap year February (28th to Mar 1st)
-SELECT 'Test 7: Leap year Feb 28 to Mar 1' AS test_name,
+-- Leap year February (28th to Mar 1st)
+SELECT 'Leap year Feb 28 to Mar 1' AS test_name,
        datediff('day', '2024-02-28', '2024-03-01') AS result,
        2 AS expected,
        CASE WHEN datediff('day', '2024-02-28', '2024-03-01') = 2 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 8: Non-leap year February
-SELECT 'Test 8: Non-leap year Feb 28 to Mar 1' AS test_name,
+-- Non-leap year February
+SELECT 'Non-leap year Feb 28 to Mar 1' AS test_name,
        datediff('day', '2023-02-28', '2023-03-01') AS result,
        1 AS expected,
        CASE WHEN datediff('day', '2023-02-28', '2023-03-01') = 1 THEN 'PASS' ELSE 'FAIL' END AS status;
@@ -135,44 +135,44 @@ SELECT 'Test 8: Non-leap year Feb 28 to Mar 1' AS test_name,
 
 SELECT '=== WEEK DATEPART TESTS ===' AS section;
 
--- Test 9: Exact 1 week
-SELECT 'Test 9: Exact 1 week' AS test_name,
+-- Exact 1 week
+SELECT 'Exact 1 week' AS test_name,
        datediff('week', '2024-01-01', '2024-01-08') AS result,
        1.000 AS expected,
        CASE WHEN datediff('week', '2024-01-01', '2024-01-08') = 1.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 10: Exact 2 weeks
-SELECT 'Test 10: Exact 2 weeks' AS test_name,
+-- Exact 2 weeks
+SELECT 'Exact 2 weeks' AS test_name,
        datediff('week', '2024-01-01', '2024-01-15') AS result,
        2.000 AS expected,
        CASE WHEN datediff('week', '2024-01-01', '2024-01-15') = 2.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 11: Partial week (9 days = 1.286 weeks)
-SELECT 'Test 11: Partial week 9 days' AS test_name,
+-- Partial week (9 days = 1.286 weeks)
+SELECT 'Partial week 9 days' AS test_name,
        datediff('week', '2024-01-01', '2024-01-10') AS result,
        1.286 AS expected,
        CASE WHEN datediff('week', '2024-01-01', '2024-01-10') = 1.286 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 12: Week alias 'wk'
-SELECT 'Test 12: Week alias wk' AS test_name,
+-- Week alias 'wk'
+SELECT 'Week alias wk' AS test_name,
        datediff('wk', '2024-01-01', '2024-01-08') AS result,
        1.000 AS expected,
        CASE WHEN datediff('wk', '2024-01-01', '2024-01-08') = 1.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 13: Week alias 'ww'
-SELECT 'Test 13: Week alias ww' AS test_name,
+-- Week alias 'ww'
+SELECT 'Week alias ww' AS test_name,
        datediff('ww', '2024-01-01', '2024-01-22') AS result,
        3.000 AS expected,
        CASE WHEN datediff('ww', '2024-01-01', '2024-01-22') = 3.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 14: Week alias 'weeks'
-SELECT 'Test 14: Week alias weeks' AS test_name,
+-- Week alias 'weeks'
+SELECT 'Week alias weeks' AS test_name,
        datediff('weeks', '2024-02-01', '2024-02-29') AS result,
        4.000 AS expected,
        CASE WHEN datediff('weeks', '2024-02-01', '2024-02-29') = 4.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 15: Negative weeks
-SELECT 'Test 15: Negative weeks' AS test_name,
+-- Negative weeks
+SELECT 'Negative weeks' AS test_name,
        datediff('week', '2024-01-15', '2024-01-01') AS result,
        -2.000 AS expected,
        CASE WHEN datediff('week', '2024-01-15', '2024-01-01') = -2.000 THEN 'PASS' ELSE 'FAIL' END AS status;
@@ -183,62 +183,62 @@ SELECT 'Test 15: Negative weeks' AS test_name,
 
 SELECT '=== MONTH DATEPART TESTS ===' AS section;
 
--- Test 16: Aligned month (same day-of-month)
-SELECT 'Test 16: Aligned month same day' AS test_name,
+-- Aligned month (same day-of-month)
+SELECT 'Aligned month same day' AS test_name,
        datediff('month', '2024-01-15', '2024-02-15') AS result,
        1.000 AS expected,
        CASE WHEN datediff('month', '2024-01-15', '2024-02-15') = 1.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 17: Partial month
-SELECT 'Test 17: Partial month' AS test_name,
+-- Partial month
+SELECT 'Partial month' AS test_name,
        datediff('month', '2024-01-15', '2024-02-20') AS result,
        1.172 AS expected,
        CASE WHEN datediff('month', '2024-01-15', '2024-02-20') = 1.172 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 18: End-of-month alignment (Jan 31 -> Feb 29)
-SELECT 'Test 18: End-of-month alignment' AS test_name,
+-- End-of-month alignment (Jan 31 -> Feb 29)
+SELECT 'End-of-month alignment' AS test_name,
        datediff('month', '2024-01-31', '2024-02-29') AS result,
        1.000 AS expected,
        CASE WHEN datediff('month', '2024-01-31', '2024-02-29') = 1.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 19: Month alias 'mm'
-SELECT 'Test 19: Month alias mm' AS test_name,
+-- Month alias 'mm'
+SELECT 'Month alias mm' AS test_name,
        datediff('mm', '2024-01-01', '2024-02-01') AS result,
        1.000 AS expected,
        CASE WHEN datediff('mm', '2024-01-01', '2024-02-01') = 1.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 20: Month alias 'm'
-SELECT 'Test 20: Month alias m' AS test_name,
+-- Month alias 'm'
+SELECT 'Month alias m' AS test_name,
        datediff('m', '2024-03-15', '2024-06-15') AS result,
        3.000 AS expected,
        CASE WHEN datediff('m', '2024-03-15', '2024-06-15') = 3.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 21: Month alias 'months'
-SELECT 'Test 21: Month alias months' AS test_name,
+-- Month alias 'months'
+SELECT 'Month alias months' AS test_name,
        datediff('months', '2024-01-01', '2024-07-01') AS result,
        6.000 AS expected,
        CASE WHEN datediff('months', '2024-01-01', '2024-07-01') = 6.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 22: Multiple months with partial
-SELECT 'Test 22: Multiple months partial' AS test_name,
+-- Multiple months with partial
+SELECT 'Multiple months partial' AS test_name,
        datediff('month', '2024-01-25', '2024-03-10') AS result,
        1.483 AS expected,
        CASE WHEN datediff('month', '2024-01-25', '2024-03-10') = 1.483 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 23: Negative months
-SELECT 'Test 23: Negative months' AS test_name,
+-- Negative months
+SELECT 'Negative months' AS test_name,
        datediff('month', '2024-06-15', '2024-03-15') AS result,
        -3.000 AS expected,
        CASE WHEN datediff('month', '2024-06-15', '2024-03-15') = -3.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 24: Month spanning year boundary
-SELECT 'Test 24: Month across year boundary' AS test_name,
+-- Month spanning year boundary
+SELECT 'Month across year boundary' AS test_name,
        datediff('month', '2024-11-15', '2025-02-15') AS result,
        3.000 AS expected,
        CASE WHEN datediff('month', '2024-11-15', '2025-02-15') = 3.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 25: Less than one month
-SELECT 'Test 25: Less than one month' AS test_name,
+-- Less than one month
+SELECT 'Less than one month' AS test_name,
        datediff('month', '2024-01-01', '2024-01-15') AS result,
        0.452 AS expected,  -- 14 days / 31 days in January
        CASE WHEN datediff('month', '2024-01-01', '2024-01-15') BETWEEN 0.450 AND 0.460 THEN 'PASS' ELSE 'FAIL' END AS status;
@@ -249,50 +249,50 @@ SELECT 'Test 25: Less than one month' AS test_name,
 
 SELECT '=== QUARTER DATEPART TESTS ===' AS section;
 
--- Test 26: Exact quarter aligned
-SELECT 'Test 26: Exact quarter aligned' AS test_name,
+-- Exact quarter aligned
+SELECT 'Exact quarter aligned' AS test_name,
        datediff('quarter', '2024-01-01', '2024-04-01') AS result,
        1.000 AS expected,
        CASE WHEN datediff('quarter', '2024-01-01', '2024-04-01') = 1.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 27: Partial quarter
-SELECT 'Test 27: Partial quarter' AS test_name,
+-- Partial quarter
+SELECT 'Partial quarter' AS test_name,
        datediff('quarter', '2024-01-15', '2024-05-20') AS result,
        1.385 AS expected,
        CASE WHEN datediff('quarter', '2024-01-15', '2024-05-20') = 1.385 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 28: Quarter alias 'qq'
-SELECT 'Test 28: Quarter alias qq' AS test_name,
+-- Quarter alias 'qq'
+SELECT 'Quarter alias qq' AS test_name,
        datediff('qq', '2024-01-01', '2024-07-01') AS result,
        2.000 AS expected,
        CASE WHEN datediff('qq', '2024-01-01', '2024-07-01') = 2.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 29: Quarter alias 'q'
-SELECT 'Test 29: Quarter alias q' AS test_name,
+-- Quarter alias 'q'
+SELECT 'Quarter alias q' AS test_name,
        datediff('q', '2024-01-01', '2024-10-01') AS result,
        3.000 AS expected,
        CASE WHEN datediff('q', '2024-01-01', '2024-10-01') = 3.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 30: Quarter alias 'quarters'
-SELECT 'Test 30: Quarter alias quarters' AS test_name,
+-- Quarter alias 'quarters'
+SELECT 'Quarter alias quarters' AS test_name,
        datediff('quarters', '2024-01-01', '2025-01-01') AS result,
        4.000 AS expected,
        CASE WHEN datediff('quarters', '2024-01-01', '2025-01-01') = 4.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 31: Negative quarters
-SELECT 'Test 31: Negative quarters' AS test_name,
+-- Negative quarters
+SELECT 'Negative quarters' AS test_name,
        datediff('quarter', '2024-10-01', '2024-04-01') AS result,
        -2.000 AS expected,
        CASE WHEN datediff('quarter', '2024-10-01', '2024-04-01') = -2.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 32: Less than one quarter
-SELECT 'Test 32: Less than one quarter' AS test_name,
+-- Less than one quarter
+SELECT 'Less than one quarter' AS test_name,
        datediff('quarter', '2024-01-01', '2024-02-15') AS result,
        0.495 AS expected,  -- ~45 days / 91 days
        CASE WHEN datediff('quarter', '2024-01-01', '2024-02-15') BETWEEN 0.490 AND 0.500 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 33: Quarter across year boundary
-SELECT 'Test 33: Quarter across year boundary' AS test_name,
+-- Quarter across year boundary
+SELECT 'Quarter across year boundary' AS test_name,
        datediff('quarter', '2024-10-01', '2025-04-01') AS result,
        2.000 AS expected,
        CASE WHEN datediff('quarter', '2024-10-01', '2025-04-01') = 2.000 THEN 'PASS' ELSE 'FAIL' END AS status;
@@ -303,56 +303,56 @@ SELECT 'Test 33: Quarter across year boundary' AS test_name,
 
 SELECT '=== YEAR DATEPART TESTS ===' AS section;
 
--- Test 34: Exact year aligned
-SELECT 'Test 34: Exact year aligned' AS test_name,
+-- Exact year aligned
+SELECT 'Exact year aligned' AS test_name,
        datediff('year', '2024-03-15', '2025-03-15') AS result,
        1.000 AS expected,
        CASE WHEN datediff('year', '2024-03-15', '2025-03-15') = 1.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 35: Partial year in leap year
-SELECT 'Test 35: Partial year leap year' AS test_name,
+-- Partial year in leap year
+SELECT 'Partial year leap year' AS test_name,
        datediff('year', '2024-01-01', '2024-07-01') AS result,
        0.497 AS expected,  -- 182 days / 366
        CASE WHEN datediff('year', '2024-01-01', '2024-07-01') BETWEEN 0.495 AND 0.500 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 36: Year alias 'yy'
-SELECT 'Test 36: Year alias yy' AS test_name,
+-- Year alias 'yy'
+SELECT 'Year alias yy' AS test_name,
        datediff('yy', '2020-01-01', '2025-01-01') AS result,
        5.000 AS expected,
        CASE WHEN datediff('yy', '2020-01-01', '2025-01-01') = 5.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 37: Year alias 'yyyy'
-SELECT 'Test 37: Year alias yyyy' AS test_name,
+-- Year alias 'yyyy'
+SELECT 'Year alias yyyy' AS test_name,
        datediff('yyyy', '2024-06-15', '2027-06-15') AS result,
        3.000 AS expected,
        CASE WHEN datediff('yyyy', '2024-06-15', '2027-06-15') = 3.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 38: Year alias 'y'
-SELECT 'Test 38: Year alias y' AS test_name,
+-- Year alias 'y'
+SELECT 'Year alias y' AS test_name,
        datediff('y', '2024-01-01', '2024-12-31') AS result,
        0.997 AS expected,  -- 365 days / 366
        CASE WHEN datediff('y', '2024-01-01', '2024-12-31') BETWEEN 0.995 AND 1.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 39: Year alias 'years'
-SELECT 'Test 39: Year alias years' AS test_name,
+-- Year alias 'years'
+SELECT 'Year alias years' AS test_name,
        datediff('years', '2014-06-15', '2024-06-15') AS result,
        10.000 AS expected,
        CASE WHEN datediff('years', '2014-06-15', '2024-06-15') = 10.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 40: Year boundary crossing (1 day)
-SELECT 'Test 40: Year boundary 1 day' AS test_name,
+-- Year boundary crossing (1 day)
+SELECT 'Year boundary 1 day' AS test_name,
        datediff('year', '2024-12-31', '2025-01-01') AS result,
        0.003 AS expected,  -- 1 day / 365
        CASE WHEN datediff('year', '2024-12-31', '2025-01-01') BETWEEN 0.001 AND 0.005 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 41: Negative years
-SELECT 'Test 41: Negative years' AS test_name,
+-- Negative years
+SELECT 'Negative years' AS test_name,
        datediff('year', '2025-06-15', '2020-06-15') AS result,
        -5.000 AS expected,
        CASE WHEN datediff('year', '2025-06-15', '2020-06-15') = -5.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 42: Feb 29 leap year to Feb 28 non-leap (aligned)
-SELECT 'Test 42: Feb 29 to Feb 28 alignment' AS test_name,
+-- Feb 29 leap year to Feb 28 non-leap (aligned)
+SELECT 'Feb 29 to Feb 28 alignment' AS test_name,
        datediff('year', '2024-02-29', '2025-02-28') AS result,
        1.000 AS expected,
        CASE WHEN datediff('year', '2024-02-29', '2025-02-28') = 1.000 THEN 'PASS' ELSE 'FAIL' END AS status;
@@ -363,20 +363,20 @@ SELECT 'Test 42: Feb 29 to Feb 28 alignment' AS test_name,
 
 SELECT '=== CASE INSENSITIVITY TESTS ===' AS section;
 
--- Test 43: UPPERCASE datepart
-SELECT 'Test 43: UPPERCASE MONTH' AS test_name,
+-- UPPERCASE datepart
+SELECT 'UPPERCASE MONTH' AS test_name,
        datediff('MONTH', '2024-01-01', '2024-02-01') AS result,
        1.000 AS expected,
        CASE WHEN datediff('MONTH', '2024-01-01', '2024-02-01') = 1.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 44: Mixed case datepart
-SELECT 'Test 44: Mixed case Quarter' AS test_name,
+-- Mixed case datepart
+SELECT 'Mixed case Quarter' AS test_name,
        datediff('QuArTeR', '2024-01-01', '2024-04-01') AS result,
        1.000 AS expected,
        CASE WHEN datediff('QuArTeR', '2024-01-01', '2024-04-01') = 1.000 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 45: Mixed case alias
-SELECT 'Test 45: Mixed case alias YY' AS test_name,
+-- Mixed case alias
+SELECT 'Mixed case alias YY' AS test_name,
        datediff('Yy', '2024-01-01', '2025-01-01') AS result,
        1.000 AS expected,
        CASE WHEN datediff('Yy', '2024-01-01', '2025-01-01') = 1.000 THEN 'PASS' ELSE 'FAIL' END AS status;
@@ -387,20 +387,20 @@ SELECT 'Test 45: Mixed case alias YY' AS test_name,
 
 SELECT '=== TIMESTAMP TESTS ===' AS section;
 
--- Test 46: Timestamp day difference
-SELECT 'Test 46: Timestamp day diff' AS test_name,
+-- Timestamp day difference
+SELECT 'Timestamp day diff' AS test_name,
        datediff('day', '2024-01-01 10:30:00'::timestamp, '2024-01-15 14:45:00'::timestamp) AS result,
        14 AS expected,
        CASE WHEN datediff('day', '2024-01-01 10:30:00'::timestamp, '2024-01-15 14:45:00'::timestamp) = 14 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 47: Timestamp month difference
-SELECT 'Test 47: Timestamp month diff' AS test_name,
+-- Timestamp month difference
+SELECT 'Timestamp month diff' AS test_name,
        datediff('month', '2024-01-15 08:00:00'::timestamp, '2024-02-20 16:00:00'::timestamp) AS result,
        1.172 AS expected,
        CASE WHEN datediff('month', '2024-01-15 08:00:00'::timestamp, '2024-02-20 16:00:00'::timestamp) = 1.172 THEN 'PASS' ELSE 'FAIL' END AS status;
 
--- Test 48: Timestamptz day difference
-SELECT 'Test 48: Timestamptz day diff' AS test_name,
+-- Timestamptz day difference
+SELECT 'Timestamptz day diff' AS test_name,
        datediff('day', '2024-01-01 10:30:00+00'::timestamptz, '2024-01-15 14:45:00+00'::timestamptz) AS result,
        14 AS expected,
        CASE WHEN datediff('day', '2024-01-01 10:30:00+00'::timestamptz, '2024-01-15 14:45:00+00'::timestamptz) = 14 THEN 'PASS' ELSE 'FAIL' END AS status;
@@ -411,8 +411,8 @@ SELECT 'Test 48: Timestamptz day diff' AS test_name,
 
 SELECT '=== ERROR HANDLING TESTS ===' AS section;
 
--- Test 49: Invalid datepart should error
-SELECT 'Test 49: Invalid datepart error' AS test_name;
+-- Invalid datepart should error
+SELECT 'Invalid datepart error' AS test_name;
 DO $$
 BEGIN
     PERFORM datediff('hour', '2024-01-01'::date, '2024-01-02'::date);
@@ -421,8 +421,8 @@ EXCEPTION WHEN invalid_parameter_value THEN
     RAISE NOTICE 'PASS: Correctly raised error for invalid datepart';
 END $$;
 
--- Test 50: NULL handling (should return NULL)
-SELECT 'Test 50: NULL handling' AS test_name,
+-- NULL handling (should return NULL)
+SELECT 'NULL handling' AS test_name,
        datediff('day', NULL::date, '2024-01-15'::date) IS NULL AS null_start_returns_null,
        datediff('day', '2024-01-01'::date, NULL::date) IS NULL AS null_end_returns_null,
        CASE 
@@ -592,7 +592,7 @@ FROM date_test_data;
 -- Cleanup
 DROP TABLE IF EXISTS date_test_data;
 -- Note: Keeping extension for further manual testing
--- DROP EXTENSION IF EXISTS mssql_compat;
+-- DROP EXTENSION IF EXISTS pg_datemath;
 
 SELECT 'All comprehensive tests completed!' AS final_status;
 
diff --git a/contrib/mssql_compat/sql/mssql_compat.sql b/contrib/pg_datemath/sql/pg_datemath.sql
similarity index 67%
rename from contrib/mssql_compat/sql/mssql_compat.sql
rename to contrib/pg_datemath/sql/pg_datemath.sql
index f625868b3f7..54e1d11d17a 100644
--- a/contrib/mssql_compat/sql/mssql_compat.sql
+++ b/contrib/pg_datemath/sql/pg_datemath.sql
@@ -1,104 +1,104 @@
 --
--- Test cases for mssql_compat extension
--- Covers PRD1a unit tests (UT-01 to UT-15) and edge cases (EC-01 to EC-06)
+-- Test cases for pg_datemath extension
+-- Tests datediff function with various dateparts and edge cases
 --
 
-CREATE EXTENSION mssql_compat;
+CREATE EXTENSION pg_datemath;
 
 --
--- Basic Day Calculations (UT-01, UT-02)
+-- Basic Day Calculations
 --
-SELECT 'UT-01: Day difference basic' AS test;
+SELECT 'Day difference basic' AS test;
 SELECT datediff('day', '2024-01-01'::date, '2024-01-15'::date);
 
-SELECT 'UT-02: Day difference negative' AS test;
+SELECT 'Day difference negative' AS test;
 SELECT datediff('day', '2024-01-15'::date, '2024-01-01'::date);
 
 --
--- Week Calculations (UT-03, UT-04)
+-- Week Calculations
 --
-SELECT 'UT-03: Week exact' AS test;
+SELECT 'Week exact' AS test;
 SELECT datediff('week', '2024-01-01'::date, '2024-01-08'::date);
 
-SELECT 'UT-04: Week partial' AS test;
+SELECT 'Week partial' AS test;
 SELECT datediff('week', '2024-01-01'::date, '2024-01-10'::date);
 
 --
--- Month Calculations (UT-05, UT-06, UT-07)
+-- Month Calculations
 --
-SELECT 'UT-05: Month aligned' AS test;
+SELECT 'Month aligned' AS test;
 SELECT datediff('month', '2024-01-15'::date, '2024-02-15'::date);
 
-SELECT 'UT-06: Month partial' AS test;
+SELECT 'Month partial' AS test;
 SELECT datediff('month', '2024-01-15'::date, '2024-02-20'::date);
 
-SELECT 'UT-07: Month end-of-month alignment' AS test;
+SELECT 'Month end-of-month alignment' AS test;
 SELECT datediff('month', '2024-01-31'::date, '2024-02-29'::date);
 
 --
--- Quarter Calculations (UT-08, UT-09)
+-- Quarter Calculations
 --
-SELECT 'UT-08: Quarter aligned' AS test;
+SELECT 'Quarter aligned' AS test;
 SELECT datediff('quarter', '2024-01-01'::date, '2024-04-01'::date);
 
-SELECT 'UT-09: Quarter partial' AS test;
+SELECT 'Quarter partial' AS test;
 SELECT datediff('quarter', '2024-01-15'::date, '2024-05-20'::date);
 
 --
--- Year Calculations (UT-10, UT-11)
+-- Year Calculations
 --
-SELECT 'UT-10: Year aligned' AS test;
+SELECT 'Year aligned' AS test;
 SELECT datediff('year', '2024-03-15'::date, '2025-03-15'::date);
 
-SELECT 'UT-11: Year partial leap year' AS test;
+SELECT 'Year partial leap year' AS test;
 SELECT datediff('year', '2024-01-01'::date, '2024-07-01'::date);
 
 --
--- NULL Handling (UT-12, UT-13) - STRICT functions return NULL for NULL inputs
+-- NULL Handling - STRICT functions return NULL for NULL inputs
 --
-SELECT 'UT-12: NULL start date' AS test;
+SELECT 'NULL start date' AS test;
 SELECT datediff('day', NULL::date, '2024-01-15'::date);
 
-SELECT 'UT-13: NULL end date' AS test;
+SELECT 'NULL end date' AS test;
 SELECT datediff('day', '2024-01-01'::date, NULL::date);
 
 --
--- Invalid Datepart (UT-14)
+-- Invalid Datepart
 --
-SELECT 'UT-14: Invalid datepart' AS test;
+SELECT 'Invalid datepart' AS test;
 SELECT datediff('hour', '2024-01-01'::date, '2024-01-02'::date);
 
 --
--- Case Insensitivity (UT-15)
+-- Case Insensitivity
 --
-SELECT 'UT-15: Case insensitive datepart' AS test;
+SELECT 'Case insensitive datepart' AS test;
 SELECT datediff('MONTH', '2024-01-01'::date, '2024-02-01'::date);
 SELECT datediff('Month', '2024-01-01'::date, '2024-02-01'::date);
 SELECT datediff('month', '2024-01-01'::date, '2024-02-01'::date);
 
 --
--- Edge Cases (EC-01 to EC-06)
+-- Edge Cases
 --
-SELECT 'EC-01: Same date' AS test;
+SELECT 'Same date' AS test;
 SELECT datediff('day', '2024-01-01'::date, '2024-01-01'::date);
 
-SELECT 'EC-02: Leap year February 29' AS test;
+SELECT 'Leap year February 29' AS test;
 SELECT datediff('day', '2024-02-28'::date, '2024-03-01'::date);
 
-SELECT 'EC-03: Non-leap year February' AS test;
+SELECT 'Non-leap year February' AS test;
 SELECT datediff('day', '2023-02-28'::date, '2023-03-01'::date);
 
-SELECT 'EC-04: Year boundary' AS test;
+SELECT 'Year boundary' AS test;
 SELECT datediff('year', '2024-12-31'::date, '2025-01-01'::date);
 
-SELECT 'EC-05: Multi-year span' AS test;
+SELECT 'Multi-year span' AS test;
 SELECT datediff('year', '2020-01-01'::date, '2025-01-01'::date);
 
-SELECT 'EC-06: Century boundary' AS test;
+SELECT 'Century boundary' AS test;
 SELECT datediff('day', '1999-12-31'::date, '2000-01-01'::date);
 
 --
--- Alias Tests (from PRD1b lines 224-230)
+-- Alias Tests
 --
 SELECT 'Alias: yy for year' AS test;
 SELECT datediff('yy', '2024-01-01'::date, '2025-01-01'::date);
@@ -136,7 +136,7 @@ SELECT datediff('day', '2024-01-01 10:30:00+00'::timestamptz, '2024-01-15 14:45:
 --
 -- Additional Month Calculation Tests
 --
-SELECT 'Month: Jan 25 to Mar 10 (PRD walkthrough example)' AS test;
+SELECT 'Month: Jan 25 to Mar 10' AS test;
 SELECT datediff('month', '2024-01-25'::date, '2024-03-10'::date);
 
 SELECT 'Month: subscription proration example' AS test;
@@ -145,13 +145,13 @@ SELECT datediff('month', '2024-01-15'::date, '2024-02-20'::date);
 --
 -- Additional Quarter Calculation Tests
 --
-SELECT 'Quarter: PRD walkthrough example' AS test;
+SELECT 'Quarter: Q1 to Q2 partial' AS test;
 SELECT datediff('quarter', '2024-01-15'::date, '2024-05-20'::date);
 
 --
 -- Additional Year Calculation Tests
 --
-SELECT 'Year: PRD walkthrough example' AS test;
+SELECT 'Year: partial year calculation' AS test;
 SELECT datediff('year', '2024-03-15'::date, '2025-06-20'::date);
 
 SELECT 'Year: exact 5-year tenure' AS test;
@@ -166,8 +166,8 @@ SELECT datediff('year', '2024-01-01'::date, '2024-07-01'::date);
 SELECT 'Week: exact 2 weeks' AS test;
 SELECT datediff('week', '2024-01-01'::date, '2024-01-15'::date);
 
-SELECT 'Week: PRD example 9 days' AS test;
+SELECT 'Week: 9 days example' AS test;
 SELECT datediff('week', '2024-01-01'::date, '2024-01-10'::date);
 
-DROP EXTENSION mssql_compat;
+DROP EXTENSION pg_datemath;
 
-- 
2.52.0

