diff options
Diffstat (limited to 'sql')
| -rw-r--r-- | sql/mlpdb.sql | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sql/mlpdb.sql b/sql/mlpdb.sql index 113735bf..0705fd44 100644 --- a/sql/mlpdb.sql +++ b/sql/mlpdb.sql @@ -125,6 +125,7 @@ GRANT ALL ON tranche_quotes TO mlpdb_user; CREATE TYPE curr AS ENUM('USD', 'EUR', 'JPY', 'GBP', 'CAD');
CREATE TYPE sen AS ENUM('Senior', 'Subordinated');
+CREATE TYPE tier AS ENUM('SNRFOR', 'SECDOM', 'SUBLT2', 'PREFT1', 'JRSUBUT2');
CREATE TYPE bbgSource AS ENUM('MSG1', 'CBIN', 'CBGN', 'MKIT');
CREATE TYPE DocClause AS ENUM('No Restructuring', 'Modified Modified Restructurin', 'Full Restructuring');
CREATE TYPE tenor AS ENUM('6mo', '1yr', '2yr', '3yr', '4yr', '5yr', '7yr', '10yr');
@@ -138,6 +139,8 @@ CREATE TABLE CDS_Issuers( doc_clause DocClause,
cds_curve text[8],
index_list integer[],
+ markit_ticket text,
+ markit_tier tier,
PRIMARY KEY(company_id));
GRANT ALL ON CDS_Issuers to mlpdb_user;
@@ -181,16 +184,16 @@ CREATE OR REPLACE FUNCTION index_members(index_name varchar(4), p_date date) CREATE OR REPLACE FUNCTION historical_cds_quotes(date) RETURNS SETOF cds_quotes AS $$
BEGIN
RETURN QUERY SELECT b.*
- FROM (SELECT min(c.Date) AS latestdate, c.curve_ticker FROM cds_quotes c
- WHERE c.Date>=$1 GROUP BY c.curve_ticker) a
+ FROM (SELECT max(c.Date) AS latestdate, c.curve_ticker FROM cds_quotes c
+ WHERE c.Date<=$1 GROUP BY c.curve_ticker) a
JOIN cds_quotes b ON a.curve_ticker = b.curve_ticker AND a.latestdate=b.Date;
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION curve_quotes(varchar(4), date) RETURNS
- TABLE(cds_ticker text, spread_curve float[], upfront_curve float[], recovery_curve float[]) AS $$
+ TABLE(cds_ticker text, date date, spread_curve float[], upfront_curve float[], recovery_curve float[]) AS $$
BEGIN
- RETURN QUERY SELECT max(ticker) AS t, array_agg((a.runningbid+a.runningask)/2 ORDER BY tenor),
+ RETURN QUERY SELECT max(ticker) AS t, max(a.date), array_agg((a.runningbid+a.runningask)/2 ORDER BY tenor),
array_agg((a.upfrontbid+a.upfrontask)/2 ORDER BY tenor),
array_agg(a.Recovery ORDER BY tenor) FROM historical_cds_quotes($2) a RIGHT JOIN
(SELECT generate_series(1, 8) AS tenor, unnest(cds_curve) AS curve_ticker, ticker, company_id
|
