-- Add left_operand column to query.expr_xcase view -- If the view doesn't exist, this drop will fail, and that's okay DROP VIEW query.expr_xcase CASCADE; BEGIN; INSERT INTO config.upgrade_log (version) VALUES ('0304'); -- Scott McKellar CREATE OR REPLACE VIEW query.expr_xcase AS SELECT id, parenthesize, parent_expr, seq_no, left_operand, negate FROM query.expression WHERE type = 'xcase'; CREATE OR REPLACE RULE query_expr_xcase_insert_rule AS ON INSERT TO query.expr_xcase DO INSTEAD INSERT INTO query.expression ( id, type, parenthesize, parent_expr, seq_no, left_operand, negate ) VALUES ( COALESCE(NEW.id, NEXTVAL('query.expression_id_seq'::REGCLASS)), 'xcase', COALESCE(NEW.parenthesize, FALSE), NEW.parent_expr, COALESCE(NEW.seq_no, 1), NEW.left_operand, COALESCE(NEW.negate, false) ); CREATE OR REPLACE RULE query_expr_xcase_update_rule AS ON UPDATE TO query.expr_xcase DO INSTEAD UPDATE query.expression SET id = NEW.id, parenthesize = NEW.parenthesize, parent_expr = NEW.parent_expr, seq_no = NEW.seq_no, left_operand = NEW.left_operand, negate = NEW.negate WHERE id = OLD.id; CREATE OR REPLACE RULE query_expr_xcase_delete_rule AS ON DELETE TO query.expr_xcase DO INSTEAD DELETE FROM query.expression WHERE id = OLD.id; COMMIT;