Changeset: 01b8f870f87f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=01b8f870f87f
Modified Files:
        sql/server/rel_psm.c
        sql/server/rel_schema.c
Branch: Jun2020
Log Message:

Set session schema on trigger's schema and restore afterwards alike in functions


diffs (38 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
@@ -1198,7 +1198,7 @@ create_trigger(sql_query *query, dlist *
        const char *triggername = qname_table(qname);
        const char *sname = qname_schema(tqname);
        const char *tname = qname_table(tqname);
-       sql_schema *ss = cur_schema(sql);
+       sql_schema *ss = cur_schema(sql), *old_schema = cur_schema(sql);
        sql_table *t = NULL;
        sql_trigger *st = NULL;
        int instantiate = (sql->emode == m_instantiate);
@@ -1309,7 +1309,10 @@ create_trigger(sql_query *query, dlist *
                if (old_name)
                        stack_update_rel_view(sql, old_name, 
new_name?rel_dup(rel):rel);
        }
-       if (!(sq = sequential_block(query, NULL, NULL, stmts, NULL, 1))) {
+       sql->session->schema = ss;
+       sq = sequential_block(query, NULL, NULL, stmts, NULL, 1);
+       sql->session->schema = old_schema;
+       if (!sq) {
                if (!instantiate)
                        stack_pop_frame(sql);
                return NULL;
diff --git a/sql/server/rel_schema.c b/sql/server/rel_schema.c
--- a/sql/server/rel_schema.c
+++ b/sql/server/rel_schema.c
@@ -1381,9 +1381,7 @@ rel_create_schema(sql_query *query, dlis
                sql_schema *os = sql->session->schema;
                dnode *n;
                sql_schema *ss = SA_ZNEW(sql->sa, sql_schema);
-               sql_rel *ret;
-
-               ret = rel_create_schema_dll(sql->sa, name, auth, 0);
+               sql_rel *ret = rel_create_schema_dll(sql->sa, name, auth, 0);
 
                ss->base.name = name;
                ss->auth_id = auth_id;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to