aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sql/et_tables.sql61
1 files changed, 47 insertions, 14 deletions
diff --git a/sql/et_tables.sql b/sql/et_tables.sql
index ffbed424..9a85cf17 100644
--- a/sql/et_tables.sql
+++ b/sql/et_tables.sql
@@ -203,7 +203,7 @@ CREATE TABLE bloomberg_mtge (
GRANT ALL ON bloomberg_mtge TO et_user;
-CREATE TABLE clo_universe (
+CREATE TABLE clo_universe_old (
dealname varchar(10),
"Deal Name" text,
Manager text,
@@ -228,8 +228,39 @@ CREATE TABLE clo_universe (
PRIMARY KEY (dealname, "Latest Update")
);
+CREATE TABLE clo_universe (
+ dealname varchar(10),
+ "Curr Deal Bal" float,
+ "Curr Collat Bal" float,
+ "Tranche Factor" float,
+ "Principal Bal" float,
+ "Interest Bal" float,
+ "CDO Percentage" float,
+ "Defaulted Bal" float,
+ "Curr Coupon" float,
+ "Latest Update" date,
+ PRIMARY KEY (dealname, "Latest Update")
+);
+
GRANT ALL ON clo_universe TO et_user;
+CREATE TABLE deal_indicative (
+ dealname varchar(10) PRIMARY KEY,
+ "Deal Name" text,
+ Manager text,
+ deal_issue_date date,
+ maturity date,
+ pay_day smallint,
+ reinv_end_date date,
+ first_pay_date date,
+ orig_deal_bal float,
+ orig_collat_bal float,
+ "Deal Cusip List" text[],
+ paid_down date
+);
+
+GRANT ALL ON deal_indicative TO et_user;
+
CREATE TABLE cusip_universe (
Cusip varchar(9),
ISIN varchar(12),
@@ -257,10 +288,13 @@ CREATE TABLE cusip_universe (
GRANT ALL ON cusip_universe TO et_user;
CREATE VIEW latest_clo_universe AS
- SELECT b.*
+ SELECT b.dealname, "Deal Name", Manager, orig_deal_bal, b."Curr Deal Bal", orig_collat_bal,
+ b."Curr Collat Bal", b."Tranche Factor", b."Principal Bal", b."Interest Bal", b."CDO Percentage",
+ b."Defaulted Bal", b."Curr Coupon", deal_issue_date, maturity, reinv_end_date, b."Latest Update",
+ "Deal Cusip List", pay_day, first_pay_date, paid_down
FROM (SELECT MAX("Latest Update") AS latestdate, dealname FROM clo_universe GROUP BY dealname) a
JOIN clo_universe b ON a.dealname = b.dealname AND a.latestdate= b."Latest Update"
- ORDER by dealname asc;
+ ORDER BY dealname asc;
GRANT ALL ON latest_clo_universe TO et_user;
@@ -273,19 +307,18 @@ CREATE VIEW latest_cusip_universe AS
GRANT ALL ON latest_cusip_universe TO et_user;
CREATE OR REPLACE FUNCTION historical_clo_universe(p_dealname varchar(10), p_date date)
- RETURNS TABLE(dealname varchar(10), "Deal Name" text, manager text,
- "Orig Deal Bal" float, "Curr Deal Bal" float, "Orig Collat Bal" float,
- "Curr Collat Bal" float, "Tranche Factor" float,
- "Principal Bal" float, "Interest Bal" float, "CDO Percentage" float,
- "Defaulted Bal" float, "Curr Coupon" float, "Deal Issue Date" date,
- maturity date, "Deal Next Pay Date" date, "Reinv End Date" date,
- "Latest Update" date, "Deal Cusip List" text[], paiddown date, "Pay Day" date) AS $$
+ RETURNS SETOF latest_clo_universe AS $$
DECLARE latestdate date;
BEGIN
- SELECT max(clo_universe."Latest Update") INTO latestdate FROM clo_universe
- WHERE clo_universe.dealname = p_dealname AND clo_universe."Latest Update"<=p_date;
- RETURN QUERY SELECT a.* FROM clo_universe a WHERE a.dealname=p_dealname
- AND a."Latest Update"=latestdate;
+ SELECT max(clo_universe."Latest Update") INTO latestdate FROM clo_universe
+ WHERE clo_universe.dealname = p_dealname AND clo_universe."Latest Update"<=p_date;
+
+ RETURN QUERY SELECT a.dealname, "Deal Name", Manager, orig_deal_bal, a."Curr Deal Bal", orig_collat_bal,
+ a."Curr Collat Bal", a."Tranche Factor", a."Principal Bal", a."Interest Bal", a."CDO Percentage",
+ a."Defaulted Bal", a."Curr Coupon", deal_issue_date, maturity, reinv_end_date, a."Latest Update",
+ "Deal Cusip List", pay_day, first_pay_date, paid_down FROM clo_universe a
+ JOIN deal_indicative ON a.dealname = deal_indicative.dealname WHERE a.dealname = p_dealname
+ AND a."Latest Update" = latestdate;
END;
$$ LANGUAGE plpgsql;