Changeset: ccadc9d13b74 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ccadc9d13b74
Modified Files:
sql/backends/monet5/rel_bin.c
sql/server/rel_psm.c
Branch: Apr2019
Log Message:
More stack_pop_frame missing calls.
diffs (108 lines):
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -4392,20 +4392,22 @@ sql_update_triggers(backend *be, sql_tab
if(!stack_push_frame(sql, "OLD-NEW"))
return 0;
if (trigger->event == 2 && trigger->time == time) {
- stmt *s = NULL;
-
/* add name for the 'inserted' to the stack */
const char *n = trigger->new_name;
const char *o = trigger->old_name;
-
+
if (!n) n = "new";
if (!o) o = "old";
- if(!sql_stack_add_updated(sql, o, n, t, tids, updates))
+ if(!sql_stack_add_updated(sql, o, n, t, tids, updates))
{
+ stack_pop_frame(sql);
return 0;
- s = sql_parse(be, sql->sa, trigger->statement,
m_instantiate);
- if (!s)
+ }
+
+ if (!sql_parse(be, sql->sa, trigger->statement,
m_instantiate)) {
+ stack_pop_frame(sql);
return 0;
+ }
}
stack_pop_frame(sql);
}
@@ -4661,19 +4663,20 @@ sql_delete_triggers(backend *be, sql_tab
if(!stack_push_frame(sql, "OLD-NEW"))
return 0;
if (trigger->event == firing_type && trigger->time == time) {
- stmt *s = NULL;
-
/* add name for the 'deleted' to the stack */
const char *o = trigger->old_name;
if (!o) o = "old";
- if(!sql_stack_add_deleted(sql, o, t, tids,
internal_type))
+ if(!sql_stack_add_deleted(sql, o, t, tids,
internal_type)) {
+ stack_pop_frame(sql);
return 0;
- s = sql_parse(be, sql->sa, trigger->statement,
m_instantiate);
-
- if (!s)
+ }
+
+ if (!sql_parse(be, sql->sa, trigger->statement,
m_instantiate)) {
+ stack_pop_frame(sql);
return 0;
+ }
}
stack_pop_frame(sql);
}
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
@@ -1249,16 +1249,16 @@ create_trigger(mvc *sql, dlist *qname, i
if (!instantiate) {
t = mvc_bind_table(sql, ss, tname);
- if(!stack_push_frame(sql, "OLD-NEW"))
+ if (!stack_push_frame(sql, "OLD-NEW"))
return sql_error(sql, 02, SQLSTATE(HY001)
MAL_MALLOC_FAIL);
/* we need to add the old and new tables */
- if (!instantiate && new_name) {
- if(!_stack_push_table(sql, new_name, t))
- return sql_error(sql, 02, SQLSTATE(HY001)
MAL_MALLOC_FAIL);
+ if (new_name && !_stack_push_table(sql, new_name, t)) {
+ stack_pop_frame(sql);
+ return sql_error(sql, 02, SQLSTATE(HY001)
MAL_MALLOC_FAIL);
}
- if (!instantiate && old_name) {
- if(!_stack_push_table(sql, old_name, t))
- return sql_error(sql, 02, SQLSTATE(HY001)
MAL_MALLOC_FAIL);
+ if (old_name && !_stack_push_table(sql, old_name, t)) {
+ stack_pop_frame(sql);
+ return sql_error(sql, 02, SQLSTATE(HY001)
MAL_MALLOC_FAIL);
}
}
if (condition) {
@@ -1270,8 +1270,11 @@ create_trigger(mvc *sql, dlist *qname, i
rel = stack_find_rel_view(sql, old_name);
if (rel)
rel = rel_logical_exp(sql, rel, condition, sql_where);
- if (!rel)
+ if (!rel) {
+ if (!instantiate)
+ stack_pop_frame(sql);
return NULL;
+ }
/* transition tables */
/* insert: rel_select(table [new], searchcondition) */
/* delete: rel_select(table [old], searchcondition) */
@@ -1284,6 +1287,8 @@ create_trigger(mvc *sql, dlist *qname, i
sq = sequential_block(sql, NULL, NULL, stmts, NULL, 1);
r = rel_psm_block(sql->sa, sq);
+ if (!instantiate)
+ stack_pop_frame(sql);
/* todo trigger_columns */
(void)columns;
return r;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list