]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/0256.schema.query-bind-expr-view.sql
Add default Vandelay match set to schema
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 0256.schema.query-bind-expr-view.sql
1 BEGIN;
2
3 INSERT INTO config.upgrade_log (version) VALUES ('0256'); -- Scott McKellar
4
5 -- Create updatable view for bind variable expressions
6
7 CREATE OR REPLACE VIEW query.expr_xbind AS
8     SELECT
9                 id,
10                 parenthesize,
11                 parent_expr,
12                 seq_no,
13                 bind_variable
14     FROM
15         query.expression
16     WHERE
17         type = 'xbind';
18
19 CREATE OR REPLACE RULE query_expr_xbind_insert_rule AS
20     ON INSERT TO query.expr_xbind
21     DO INSTEAD
22     INSERT INTO query.expression (
23                 id,
24                 type,
25                 parenthesize,
26                 parent_expr,
27                 seq_no,
28                 bind_variable
29     ) VALUES (
30         COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)),
31         'xbind',
32         COALESCE(NEW.parenthesize, FALSE),
33         NEW.parent_expr,
34         COALESCE(NEW.seq_no, 1),
35                 NEW.bind_variable
36     );
37
38 CREATE OR REPLACE RULE query_expr_xbind_update_rule AS
39     ON UPDATE TO query.expr_xbind
40     DO INSTEAD
41     UPDATE query.expression SET
42         id = NEW.id,
43         parenthesize = NEW.parenthesize,
44         parent_expr = NEW.parent_expr,
45         seq_no = NEW.seq_no,
46                 bind_variable = NEW.bind_variable
47     WHERE
48         id = OLD.id;
49
50 CREATE OR REPLACE RULE query_expr_xbind_delete_rule AS
51     ON DELETE TO query.expr_xbind
52     DO INSTEAD
53     DELETE FROM query.expression WHERE id = OLD.id;
54
55 COMMIT;