Changeset: 39da6b8e4803 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=39da6b8e4803 Modified Files: sql/server/rel_psm.c Branch: Aug2018 Log Message:
Small insight. Triggers are tightly associated to tables, so disallow a different schema from the respective table while creating it. diffs (20 lines): diff --git a/sql/server/rel_psm.c b/sql/server/rel_psm.c --- a/sql/server/rel_psm.c +++ b/sql/server/rel_psm.c @@ -1174,6 +1174,7 @@ static sql_var* static sql_rel * create_trigger(mvc *sql, dlist *qname, int time, symbol *trigger_event, dlist *tqname, dlist *opt_ref, dlist *triggered_action, int replace) { + const char *triggerschema = qname_schema(qname); const char *triggername = qname_table(qname); const char *sname = qname_schema(tqname); const char *tname = qname_table(tqname); @@ -1217,6 +1218,8 @@ create_trigger(mvc *sql, dlist *qname, i return sql_error(sql, 02, SQLSTATE(42000) "%s TRIGGER: unknown table '%s'", base, tname); if (create && isView(t)) return sql_error(sql, 02, SQLSTATE(42000) "%s TRIGGER: cannot create trigger on view '%s'", base, tname); + if (triggerschema && strcmp(triggerschema, sname) != 0) + return sql_error(sql, 02, SQLSTATE(42000) "%s TRIGGER: trigger and respective table must belong to the same schema", base); if (create && (st = mvc_bind_trigger(sql, ss, triggername)) != NULL) { if (replace) { if(mvc_drop_trigger(sql, ss, st)) _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list