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

Reply via email to