aboutsummaryrefslogtreecommitdiffstats
path: root/sql/dawn.sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql/dawn.sql')
-rw-r--r--sql/dawn.sql53
1 files changed, 25 insertions, 28 deletions
diff --git a/sql/dawn.sql b/sql/dawn.sql
index d5ad3ea2..607d1b63 100644
--- a/sql/dawn.sql
+++ b/sql/dawn.sql
@@ -85,6 +85,7 @@ CREATE TABLE accounts2 (
"fund" fund NOT NULL,
"account_type" account_type NOT NULL,
active bool NOT NULL,
+ cp_code varchar(10),
CONSTRAINT accounts2_cash_account_key UNIQUE (cash_account),
CONSTRAINT accounts2_pkey PRIMARY KEY (id)
);
@@ -561,7 +562,7 @@ CREATE TABLE wires (
ALTER table wires OWNER TO dawn_user;
-CREATE TRIGGER dealid AFTER
+CREATE TRIGGER dealid BEFORE
INSERT ON wires
FOR EACH ROW
EXECUTE PROCEDURE auto_dealid();
@@ -674,35 +675,31 @@ create
CREATE OR REPLACE FUNCTION auto_dealid()
RETURNS TRIGGER AS $$
DECLARE stub text;
- sqlstr text;
BEGIN
- sqlstr:= format('UPDATE '|| TG_TABLE_SCHEMA ||'.' ||TG_TABLE_NAME || ' SET %s WHERE id = %L AND dealid is NULL';
-
- IF (TG_TABLE_NAME = 'bonds') THEN
- stub := 'SC_';
- sqlstr := format(sqlstr, 'dealid = $1||upper(left(asset_class::text,3))||id,
-identifier = COALESCE(identifier, cusip, isin)', NEW.id);
- ELSE
- CASE TG_TABLE_NAME
- WHEN 'cds' THEN
- stub := 'SCCDS';
- WHEN 'swaptions' THEN
- stub := 'SWPTN';
- WHEN 'futures' THEN
- stub := 'SCFUT';
- WHEN 'wires' THEN
- stub := 'SCCSH';
- WHEN 'capfloors' THEN
- stub := 'CAP';
- WHEN 'spots' THEN
- stub := 'SCFX';
- END CASE;
- sqlstr := format(sqlstr, 'dealid = $1||id', NEW.id);
- END IF;
- EXECUTE sqlstr USING stub;
- RETURN NEW;
+ IF NEW.dealid is NULL THEN
+ IF (TG_TABLE_NAME = 'bonds') THEN
+ NEW.dealid := 'SC_' || upper(left(NEW.asset_class::text,3)) || NEW.id;
+ ELSE
+ CASE TG_TABLE_NAME
+ WHEN 'cds' THEN
+ stub := 'SCCDS';
+ WHEN 'swaptions' THEN
+ stub := 'SWPTN';
+ WHEN 'futures' THEN
+ stub := 'SCFUT';
+ WHEN 'wires' THEN
+ stub := 'SCCSH';
+ WHEN 'capfloors' THEN
+ stub := 'CAP';
+ WHEN 'spots' THEN
+ stub := 'SCFX';
+ END CASE;
+ NEW.dealid := stub || NEW.id;
+ END IF;
+ END IF;
+ RETURN NEW;
END;
- $$ language plpgsql;
+$$ language plpgsql;
CREATE TRIGGER dealid AFTER INSERT ON capfloors
FOR EACH ROW EXECUTE PROCEDURE auto_dealid() ;