aboutsummaryrefslogtreecommitdiffstats
path: root/sql/dawn.sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql/dawn.sql')
-rw-r--r--sql/dawn.sql18
1 files changed, 15 insertions, 3 deletions
diff --git a/sql/dawn.sql b/sql/dawn.sql
index 67faa28c..e54ec115 100644
--- a/sql/dawn.sql
+++ b/sql/dawn.sql
@@ -340,8 +340,17 @@ UPDATE
CREATE OR REPLACE FUNCTION cds_enrich()
RETURNS TRIGGER
AS $$
-from serenitas.analytics.api import CreditIndex
-trade = TD["new"]
+BEGIN
+IF NEW.swap_type = "BESPOKE" THEN
+RETURN NEW;
+ELSE
+IF TG_OP = "INSERT" AND (NEW.upfront IS NOT NULL AND NEW.traded_level IS NOT NULL) THEN
+ RETURN NEW;
+IF NEW.traded_level IS NOT NULL THEN
+ NEW.upfront = upfront_from_level(NEW.security_id, NEW.maturity, NEW.traded_level, NEW.trade_date, NEW.currency);
+$$ LANGUAGE plpgsql;
+
+END IF;
if trade["swap_type"] == "BESPOKE":
return
if TD["event"] == "INSERT" and all([trade["upfront"], trade["traded_level"]]):
@@ -1933,9 +1942,12 @@ return imm_date(p_date)
$$ LANGUAGE plpython3u;
CREATE OR REPLACE FUNCTION cds_accrued(date, double precision, bool, text DEFAULT 'USD') RETURNS double precision
-AS '$libdir/serenitas_date', 'cds_accrued'
+AS '$libdir/serenitas', 'cds_accrued'
LANGUAGE C STRICT;
+CREATE OR REPLACE FUNCTION upfront_from_level(text. date, double precision, date, text) RETURNS double precision
+AS '$libdir/serenitas', 'upfron_from_level'
+LANGUAGE C STRICT;
CREATE MATERIALIZED VIEW factors_history AS
WITH temp AS (