def create_constr_trigger(self, table_name, constraint, proc_name): cmds = [] cname = constraint.raw_constraint_name() ins_trigger_name = common.edgedb_name_to_pg_name(cname + '_instrigger') ins_trigger = dbops.Trigger(name=ins_trigger_name, table_name=table_name, events=('insert', ), procedure=proc_name, is_constraint=True, inherit=True) cr_ins_trigger = dbops.CreateTrigger(ins_trigger) cmds.append(cr_ins_trigger) disable_ins_trigger = dbops.DisableTrigger(ins_trigger, self_only=True) cmds.append(disable_ins_trigger) upd_trigger_name = common.edgedb_name_to_pg_name(cname + '_updtrigger') condition = constraint.get_trigger_condition() upd_trigger = dbops.Trigger(name=upd_trigger_name, table_name=table_name, events=('update', ), procedure=proc_name, condition=condition, is_constraint=True, inherit=True) cr_upd_trigger = dbops.CreateTrigger(upd_trigger) cmds.append(cr_upd_trigger) disable_upd_trigger = dbops.DisableTrigger(upd_trigger, self_only=True) cmds.append(disable_upd_trigger) return cmds
def rename_constr_trigger(self, table_name): constraint = self._constraint new_constr = self._new_constraint cname = constraint.raw_constraint_name() ncname = new_constr.raw_constraint_name() ins_trigger_name = common.edgedb_name_to_pg_name(cname + '_instrigger') new_ins_trg_name = common.edgedb_name_to_pg_name( ncname + '_instrigger') ins_trigger = dbops.Trigger( name=ins_trigger_name, table_name=table_name, events=('insert', ), procedure='null', is_constraint=True, inherit=True) rn_ins_trigger = dbops.AlterTriggerRenameTo( ins_trigger, new_name=new_ins_trg_name) upd_trigger_name = common.edgedb_name_to_pg_name(cname + '_updtrigger') new_upd_trg_name = common.edgedb_name_to_pg_name( ncname + '_updtrigger') upd_trigger = dbops.Trigger( name=upd_trigger_name, table_name=table_name, events=('update', ), procedure='null', is_constraint=True, inherit=True) rn_upd_trigger = dbops.AlterTriggerRenameTo( upd_trigger, new_name=new_upd_trg_name) return (rn_ins_trigger, rn_upd_trigger)
def _get_triggers(self, table_name, constraint, proc_name='null'): cname = constraint.raw_constraint_name() ins_trigger_name = common.edgedb_name_to_pg_name(cname + '_instrigger') ins_trigger = dbops.Trigger( name=ins_trigger_name, table_name=table_name, events=('insert', ), procedure=proc_name, is_constraint=True, inherit=True) upd_trigger_name = common.edgedb_name_to_pg_name(cname + '_updtrigger') condition = constraint.get_trigger_condition() upd_trigger = dbops.Trigger( name=upd_trigger_name, table_name=table_name, events=('update', ), procedure=proc_name, condition=condition, is_constraint=True, inherit=True) return ins_trigger, upd_trigger
def drop_constr_trigger(self, table_name, constraint): cname = constraint.raw_constraint_name() ins_trigger_name = common.edgedb_name_to_pg_name(cname + '_instrigger') ins_trigger = dbops.Trigger( name=ins_trigger_name, table_name=table_name, events=('insert', ), procedure='null', is_constraint=True, inherit=True) drop_ins_trigger = dbops.DropTrigger(ins_trigger) upd_trigger_name = common.edgedb_name_to_pg_name(cname + '_updtrigger') upd_trigger = dbops.Trigger( name=upd_trigger_name, table_name=table_name, events=('update', ), procedure='null', is_constraint=True, inherit=True) drop_upd_trigger = dbops.DropTrigger(upd_trigger) return [drop_ins_trigger, drop_upd_trigger]