aboutsummaryrefslogtreecommitdiffstats
path: root/sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql')
-rw-r--r--sql/mlpdb.sql16
1 files changed, 8 insertions, 8 deletions
diff --git a/sql/mlpdb.sql b/sql/mlpdb.sql
index 4d992732..8e2e3873 100644
--- a/sql/mlpdb.sql
+++ b/sql/mlpdb.sql
@@ -143,8 +143,6 @@ CREATE OR REPLACE FUNCTION nameToBasketID(index_name varchar(4)) RETURNS integer
END;
$$ LANGUAGE plpgsql;
-GRANT ALL ON nameToBasketID TO mlpdb_user;
-
CREATE OR REPLACE FUNCTION index_members(index_name varchar(4))
RETURNS SETOF CDS_Issuers AS $$
DECLARE
@@ -156,17 +154,19 @@ CREATE OR REPLACE FUNCTION index_members(index_name varchar(4))
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION historical_cds_quotes(date) RETURNS SETOF cds_quotes AS $$
- RETURN QUERY SELECT b.*
- FROM (SELECT max(c.Date) AS latestdate, c.curve_ticker FROM cds_quotes c
- WHERE cds_quotes.Date<=p_date GROUP BY c.curve_ticker) a
- JOIN cds_quotes b ON a.curve_ticker = b.curve_ticker AND a.latestdate=b.Date;
+ BEGIN
+ RETURN QUERY SELECT b.*
+ 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[]) AS $$
+ TABLE(cds_ticker text, spread_curve float[], recovery_curve float[]) AS $$
BEGIN
- RETURN QUERY SELECT max(ticker) AS t, array_agg((a.runningbid+a.runningask)/2 ORDER BY tenor) FROM historical_cds_quotes($2) a JOIN
+ RETURN QUERY SELECT max(ticker) AS t, array_agg((a.runningbid+a.runningask)/2 ORDER BY tenor),
+ array_agg(a.Recovery ORDER BY tenor) FROM historical_cds_quotes($2) a JOIN
(SELECT generate_series(1, 8) AS tenor, unnest(cds_curve) AS curve_ticker, ticker, company_id FROM index_members($1)) b
ON b.curve_ticker = a.curve_ticker GROUP by company_id ORDER BY t;
END;