diff options
Diffstat (limited to 'sql/dawn.sql')
| -rw-r--r-- | sql/dawn.sql | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/sql/dawn.sql b/sql/dawn.sql index a41c4674..d72be9b3 100644 --- a/sql/dawn.sql +++ b/sql/dawn.sql @@ -144,10 +144,10 @@ CREATE TABLE cds(id serial primary key, detach float, clearing_facility varchar(12) DEFAULT NULL, isda_definition isda, - termination_date date DEFAULT NULL, - termination_fee float DEFAULT NULL, - termination_amount float DEFAULT NULL, - termination_cp varchar(12) DEFAULT NULL REFERENCES counterparties(code) ON UPDATE CASCADE, + termination_date date[] DEFAULT NULL, + termination_fee float[] DEFAULT NULL, + termination_amount float[] DEFAULT NULL, + termination_cp text[] DEFAULT NULL, initial_margin_percentage float DEFAULT NULL, index_ref float DEFAULT NULL, corr_attach float DEFAULT NULL, @@ -644,7 +644,7 @@ BEGIN query := 'WITH tmp AS (SELECT cds.security_id, cds.security_desc, cds.maturity, cds.fixed_rate, cds.currency, %s SUM(cds.notional * (CASE WHEN cds.protection=''Buyer'' THEN 1 ELSE -1 END)) OVER (PARTITION BY cds.security_id, cds.maturity, cds.orig_attach, cds.orig_detach) AS notional -FROM cds WHERE cds.fund=$2 AND (cds.termination_date is NULL OR cds.termination_date> $1) +FROM cds WHERE cds.fund=$2 AND (cds.termination_date is NULL OR cds.termination_date[1]> $1) AND cds.trade_date <=$1 %s) SELECT DISTINCT ON (tmp.security_id, tmp.maturity %s) * FROM tmp WHERE tmp.notional!=0'; @@ -690,7 +690,7 @@ RETURN QUERY cds.currency, cds.folder, SUM(cds.notional * (CASE WHEN cds.protection='Buyer' THEN 1 ELSE -1 END)) OVER (PARTITION BY cds.security_id, cds.maturity, cds.folder) AS notional - FROM cds WHERE (cds.termination_date is NULL OR cds.termination_date > p_date) AND + FROM cds WHERE (cds.termination_date is NULL OR cds.termination_date[1] > p_date) AND cds.trade_date <= p_date AND cds.attach is NULL AND cds.folder != 'MBSCDS' AND cds.fund=p_fund) SELECT DISTINCT ON (tmp.security_id, tmp.maturity, tmp.folder) * FROM tmp WHERE tmp.notional!=0; END; @@ -706,7 +706,7 @@ RETURN QUERY cds.currency, cds.folder, SUM(cds.notional * (CASE WHEN cds.protection='Buyer' THEN 1 ELSE -1 END)) OVER (PARTITION BY cds.security_id, cds.maturity, cds.folder, cds.account_code) AS notional - FROM cds WHERE (cds.termination_date is NULL OR cds.termination_date > p_date) AND + FROM cds WHERE (cds.termination_date is NULL OR cds.termination_date[1] > p_date) AND cds.trade_date <= p_date AND cds.attach is NULL AND cds.folder != 'MBSCDS' AND cds.account_code=fcm) SELECT DISTINCT ON (tmp.security_id, tmp.maturity, tmp.folder) * FROM tmp WHERE tmp.notional!=0; @@ -1789,7 +1789,7 @@ SELECT id, protection, upfront, ref -FROM cds JOIN counterparties ON cp_code = code) ORDER BY trade_date DESC; +FROM cds JOIN counterparties ON cp_code = code) ORDER BY trade_date DESC, folder; CREATE TABLE curve_risk( date date NOT NULL, |
