3 -- Create updatable view for BETWEEN expressions
5 INSERT INTO config.upgrade_log (version) VALUES ('0107'); -- Scott McKellar
7 CREATE OR REPLACE VIEW query.expr_xbet AS
18 CREATE OR REPLACE RULE query_expr_xbet_insert_rule AS
19 ON INSERT TO query.expr_xbet
21 INSERT INTO query.expression (
28 COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)),
30 COALESCE(NEW.parenthesize, FALSE),
32 COALESCE(NEW.seq_no, 1)
35 CREATE OR REPLACE RULE query_expr_xbet_update_rule AS
36 ON UPDATE TO query.expr_xbet
38 UPDATE query.expression SET
40 parenthesize = NEW.parenthesize,
41 parent_expr = NEW.parent_expr,
46 CREATE OR REPLACE RULE query_expr_xbet_delete_rule AS
47 ON DELETE TO query.expr_xbet
49 DELETE FROM query.expression WHERE id = OLD.id;
51 -- Create updatable view for boolean expressions
53 CREATE OR REPLACE VIEW query.expr_xbool AS
65 CREATE OR REPLACE RULE query_expr_xbool_insert_rule AS
66 ON INSERT TO query.expr_xbool
68 INSERT INTO query.expression (
76 COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)),
78 COALESCE(NEW.parenthesize, FALSE),
80 COALESCE(NEW.seq_no, 1),
84 CREATE OR REPLACE RULE query_expr_xbool_update_rule AS
85 ON UPDATE TO query.expr_xbool
87 UPDATE query.expression SET
89 parenthesize = NEW.parenthesize,
90 parent_expr = NEW.parent_expr,
96 CREATE OR REPLACE RULE query_expr_xbool_delete_rule AS
97 ON DELETE TO query.expr_xbool
99 DELETE FROM query.expression WHERE id = OLD.id;
101 -- Create updatable view for CASE expressions
103 CREATE OR REPLACE VIEW query.expr_xcase AS
114 CREATE OR REPLACE RULE query_expr_xcase_insert_rule AS
115 ON INSERT TO query.expr_xcase
117 INSERT INTO query.expression (
124 COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)),
126 COALESCE(NEW.parenthesize, FALSE),
128 COALESCE(NEW.seq_no, 1)
131 CREATE OR REPLACE RULE query_expr_xcase_update_rule AS
132 ON UPDATE TO query.expr_xcase
134 UPDATE query.expression SET
136 parenthesize = NEW.parenthesize,
137 parent_expr = NEW.parent_expr,
142 CREATE OR REPLACE RULE query_expr_xcase_delete_rule AS
143 ON DELETE TO query.expr_xcase
145 DELETE FROM query.expression WHERE id = OLD.id;
147 -- Create updatable view for cast expressions
149 CREATE OR REPLACE VIEW query.expr_xcast AS
162 CREATE OR REPLACE RULE query_expr_xcast_insert_rule AS
163 ON INSERT TO query.expr_xcast
165 INSERT INTO query.expression (
174 COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)),
176 COALESCE(NEW.parenthesize, FALSE),
178 COALESCE(NEW.seq_no, 1),
183 CREATE OR REPLACE RULE query_expr_xcast_update_rule AS
184 ON UPDATE TO query.expr_xcast
186 UPDATE query.expression SET
188 parenthesize = NEW.parenthesize,
189 parent_expr = NEW.parent_expr,
191 left_operand = NEW.left_operand,
192 cast_type = NEW.cast_type
196 CREATE OR REPLACE RULE query_expr_xcast_delete_rule AS
197 ON DELETE TO query.expr_xcast
199 DELETE FROM query.expression WHERE id = OLD.id;
201 -- Create updatable view for column expressions
203 CREATE OR REPLACE VIEW query.expr_xcol AS
216 CREATE OR REPLACE RULE query_expr_xcol_insert_rule AS
217 ON INSERT TO query.expr_xcol
219 INSERT INTO query.expression (
228 COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)),
230 COALESCE(NEW.parenthesize, FALSE),
232 COALESCE(NEW.seq_no, 1),
237 CREATE OR REPLACE RULE query_expr_xcol_update_rule AS
238 ON UPDATE TO query.expr_xcol
240 UPDATE query.expression SET
242 parenthesize = NEW.parenthesize,
243 parent_expr = NEW.parent_expr,
245 table_alias = NEW.table_alias,
246 column_name = NEW.column_name
250 CREATE OR REPLACE RULE query_expr_xcol_delete_rule AS
251 ON DELETE TO query.expr_xcol
253 DELETE FROM query.expression WHERE id = OLD.id;
255 -- Create updatable view for EXISTS expressions
257 CREATE OR REPLACE VIEW query.expr_xex AS
269 CREATE OR REPLACE RULE query_expr_xex_insert_rule AS
270 ON INSERT TO query.expr_xex
272 INSERT INTO query.expression (
280 COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)),
282 COALESCE(NEW.parenthesize, FALSE),
284 COALESCE(NEW.seq_no, 1),
288 CREATE OR REPLACE RULE query_expr_xex_update_rule AS
289 ON UPDATE TO query.expr_xex
291 UPDATE query.expression SET
293 parenthesize = NEW.parenthesize,
294 parent_expr = NEW.parent_expr,
296 subquery = NEW.subquery
300 CREATE OR REPLACE RULE query_expr_xex_delete_rule AS
301 ON DELETE TO query.expr_xex
303 DELETE FROM query.expression WHERE id = OLD.id;
305 -- Create updatable view for field expressions
307 CREATE OR REPLACE VIEW query.expr_xfld AS
320 CREATE OR REPLACE RULE query_expr_xfld_insert_rule AS
321 ON INSERT TO query.expr_xfld
323 INSERT INTO query.expression (
332 COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)),
334 COALESCE(NEW.parenthesize, FALSE),
336 COALESCE(NEW.seq_no, 1),
341 CREATE OR REPLACE RULE query_expr_xfld_update_rule AS
342 ON UPDATE TO query.expr_xfld
344 UPDATE query.expression SET
346 parenthesize = NEW.parenthesize,
347 parent_expr = NEW.parent_expr,
349 column_name = NEW.column_name,
350 left_operand = NEW.left_operand
354 CREATE OR REPLACE RULE query_expr_xfld_delete_rule AS
355 ON DELETE TO query.expr_xfld
357 DELETE FROM query.expression WHERE id = OLD.id;
359 -- Create updatable view for function call expressions
361 CREATE OR REPLACE VIEW query.expr_xfunc AS
373 CREATE OR REPLACE RULE query_expr_xfunc_insert_rule AS
374 ON INSERT TO query.expr_xfunc
376 INSERT INTO query.expression (
384 COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)),
386 COALESCE(NEW.parenthesize, FALSE),
388 COALESCE(NEW.seq_no, 1),
392 CREATE OR REPLACE RULE query_expr_xfunc_update_rule AS
393 ON UPDATE TO query.expr_xfunc
395 UPDATE query.expression SET
397 parenthesize = NEW.parenthesize,
398 parent_expr = NEW.parent_expr,
400 function_id = NEW.function_id
404 CREATE OR REPLACE RULE query_expr_xfunc_delete_rule AS
405 ON DELETE TO query.expr_xfunc
407 DELETE FROM query.expression WHERE id = OLD.id;
409 -- Create updatable view for IN expressions
411 CREATE OR REPLACE VIEW query.expr_xin AS
423 CREATE OR REPLACE RULE query_expr_xin_insert_rule AS
424 ON INSERT TO query.expr_xin
426 INSERT INTO query.expression (
434 COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)),
436 COALESCE(NEW.parenthesize, FALSE),
438 COALESCE(NEW.seq_no, 1),
442 CREATE OR REPLACE RULE query_expr_xin_update_rule AS
443 ON UPDATE TO query.expr_xin
445 UPDATE query.expression SET
447 parenthesize = NEW.parenthesize,
448 parent_expr = NEW.parent_expr,
450 subquery = NEW.subquery
454 CREATE OR REPLACE RULE query_expr_xin_delete_rule AS
455 ON DELETE TO query.expr_xin
457 DELETE FROM query.expression WHERE id = OLD.id;
459 -- Create updatable view for NOT BETWEEN expressions
461 CREATE OR REPLACE VIEW query.expr_xnbet AS
472 CREATE OR REPLACE RULE query_expr_xnbet_insert_rule AS
473 ON INSERT TO query.expr_xnbet
475 INSERT INTO query.expression (
482 COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)),
484 COALESCE(NEW.parenthesize, FALSE),
486 COALESCE(NEW.seq_no, 1)
489 CREATE OR REPLACE RULE query_expr_xnbet_update_rule AS
490 ON UPDATE TO query.expr_xnbet
492 UPDATE query.expression SET
494 parenthesize = NEW.parenthesize,
495 parent_expr = NEW.parent_expr,
500 CREATE OR REPLACE RULE query_expr_xnbet_delete_rule AS
501 ON DELETE TO query.expr_xnbet
503 DELETE FROM query.expression WHERE id = OLD.id;
505 -- Create updatable view for NOT EXISTS expressions
507 CREATE OR REPLACE VIEW query.expr_xnex AS
519 CREATE OR REPLACE RULE query_expr_xnex_insert_rule AS
520 ON INSERT TO query.expr_xnex
522 INSERT INTO query.expression (
530 COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)),
532 COALESCE(NEW.parenthesize, FALSE),
534 COALESCE(NEW.seq_no, 1),
538 CREATE OR REPLACE RULE query_expr_xnex_update_rule AS
539 ON UPDATE TO query.expr_xnex
541 UPDATE query.expression SET
543 parenthesize = NEW.parenthesize,
544 parent_expr = NEW.parent_expr,
546 subquery = NEW.subquery
550 CREATE OR REPLACE RULE query_expr_xnex_delete_rule AS
551 ON DELETE TO query.expr_xnex
553 DELETE FROM query.expression WHERE id = OLD.id;
555 -- Create updatable view for NOT IN expressions
557 CREATE OR REPLACE VIEW query.expr_xnin AS
569 CREATE OR REPLACE RULE query_expr_xnin_insert_rule AS
570 ON INSERT TO query.expr_xnin
572 INSERT INTO query.expression (
580 COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)),
582 COALESCE(NEW.parenthesize, FALSE),
584 COALESCE(NEW.seq_no, 1),
588 CREATE OR REPLACE RULE query_expr_xnin_update_rule AS
589 ON UPDATE TO query.expr_xnin
591 UPDATE query.expression SET
593 parenthesize = NEW.parenthesize,
594 parent_expr = NEW.parent_expr,
596 subquery = NEW.subquery
600 CREATE OR REPLACE RULE query_expr_xnin_delete_rule AS
601 ON DELETE TO query.expr_xnin
603 DELETE FROM query.expression WHERE id = OLD.id;
605 -- Create updatable view for NULL expressions
607 CREATE OR REPLACE VIEW query.expr_xnull AS
618 CREATE OR REPLACE RULE query_expr_xnull_insert_rule AS
619 ON INSERT TO query.expr_xnull
621 INSERT INTO query.expression (
628 COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)),
630 COALESCE(NEW.parenthesize, FALSE),
632 COALESCE(NEW.seq_no, 1)
635 CREATE OR REPLACE RULE query_expr_xnull_update_rule AS
636 ON UPDATE TO query.expr_xnull
638 UPDATE query.expression SET
640 parenthesize = NEW.parenthesize,
641 parent_expr = NEW.parent_expr,
646 CREATE OR REPLACE RULE query_expr_xnull_delete_rule AS
647 ON DELETE TO query.expr_xnull
649 DELETE FROM query.expression WHERE id = OLD.id;
651 -- Create updatable view for numeric literal expressions
653 CREATE OR REPLACE VIEW query.expr_xnum AS
665 CREATE OR REPLACE RULE query_expr_xnum_insert_rule AS
666 ON INSERT TO query.expr_xnum
668 INSERT INTO query.expression (
676 COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)),
678 COALESCE(NEW.parenthesize, FALSE),
680 COALESCE(NEW.seq_no, 1),
684 CREATE OR REPLACE RULE query_expr_xnum_update_rule AS
685 ON UPDATE TO query.expr_xnum
687 UPDATE query.expression SET
689 parenthesize = NEW.parenthesize,
690 parent_expr = NEW.parent_expr,
692 literal = NEW.literal
696 CREATE OR REPLACE RULE query_expr_xnum_delete_rule AS
697 ON DELETE TO query.expr_xnum
699 DELETE FROM query.expression WHERE id = OLD.id;
701 -- Create updatable view for operator expressions
703 CREATE OR REPLACE VIEW query.expr_xop AS
717 CREATE OR REPLACE RULE query_expr_xop_insert_rule AS
718 ON INSERT TO query.expr_xop
720 INSERT INTO query.expression (
730 COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)),
732 COALESCE(NEW.parenthesize, FALSE),
734 COALESCE(NEW.seq_no, 1),
740 CREATE OR REPLACE RULE query_expr_xop_update_rule AS
741 ON UPDATE TO query.expr_xop
743 UPDATE query.expression SET
745 parenthesize = NEW.parenthesize,
746 parent_expr = NEW.parent_expr,
748 left_operand = NEW.left_operand,
749 operator = NEW.operator,
750 right_operand = NEW.right_operand
754 CREATE OR REPLACE RULE query_expr_xop_delete_rule AS
755 ON DELETE TO query.expr_xop
757 DELETE FROM query.expression WHERE id = OLD.id;
759 -- Create updatable view for subquery expressions
761 CREATE OR REPLACE VIEW query.expr_xsubq AS
773 CREATE OR REPLACE RULE query_expr_xsubq_insert_rule AS
774 ON INSERT TO query.expr_xsubq
776 INSERT INTO query.expression (
784 COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)),
786 COALESCE(NEW.parenthesize, FALSE),
788 COALESCE(NEW.seq_no, 1),
792 CREATE OR REPLACE RULE query_expr_xsubq_update_rule AS
793 ON UPDATE TO query.expr_xsubq
795 UPDATE query.expression SET
797 parenthesize = NEW.parenthesize,
798 parent_expr = NEW.parent_expr,
800 subquery = NEW.subquery
804 CREATE OR REPLACE RULE query_expr_xsubq_delete_rule AS
805 ON DELETE TO query.expr_xsubq
807 DELETE FROM query.expression WHERE id = OLD.id;