Changeset: 10950161ba9a for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=10950161ba9a Modified Files: sql/server/rel_psm.c sql/server/rel_schema.c sql/server/rel_select.c sql/server/sql_statement.c Branch: default Log Message:
cleanup code of dep checking diffs (78 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 @@ -745,14 +745,10 @@ rel_create_func(mvc *sql, dlist *qname, restype = result_type(sql, sf, fname, res); if (body) { /* sql func */ - char emode = sql->emode; list *b = NULL; - if (create) /* for subtable we only need direct dependencies */ - sql->emode = m_deps; b = sequential_block(sql, restype, body, NULL, is_func); sql->params = NULL; - sql->emode = emode; if (!b) 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 @@ -895,7 +895,6 @@ rel_create_view(mvc *sql, sql_schema *ss } else if (create && (!schema_privs(sql->role_id, s) && !(isTempSchema(s) && persistent == SQL_LOCAL_TEMP))) { return sql_error(sql, 02, "CREATE VIEW: access denied for %s to schema ;'%s'", stack_get_string(sql, "current_user"), s->base.name); } else if (query) { - char emode = sql->emode; sql_rel *sq = NULL; char *q = QUERY(sql->scanner); @@ -908,10 +907,7 @@ rel_create_view(mvc *sql, sql_schema *ss return sql_error(sql, 01, "42000!CREATE VIEW: ORDER BY not supported"); } - if (create) /* for subtable we only need direct dependencies */ - sql->emode = m_deps; sq = rel_selects(sql, query); - sql->emode = emode; if (!sq) return NULL; diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -1626,7 +1626,7 @@ table_ref(mvc *sql, sql_rel *rel, symbol for (n = exps->h; n; n = n->next) noninternexp_setname(sql->sa, n->data, tname, NULL); return temp_table; - } else if (isView(t) /*&& sql->emode != m_instantiate */) { + } else if (isView(t)) { /* instantiate base view */ node *n,*m; sql_rel *rel; diff --git a/sql/server/sql_statement.c b/sql/server/sql_statement.c --- a/sql/server/sql_statement.c +++ b/sql/server/sql_statement.c @@ -373,6 +373,11 @@ stmt_deps(list *dep_list, stmt *s, int d push(s); while((s=pop()) != NULL) { if ((dir < 0 && s->optimized < 0) || (dir >=0 && s->optimized >= 0)){ + /* only add dependency once */ + if (dir < 0) + s->optimized = 0; + else + s->optimized = -1; switch (s->type) { case st_list: list_deps(dep_list, s->op4.lval, depend_type, dir); @@ -497,10 +502,6 @@ stmt_deps(list *dep_list, stmt *s, int d sz *= 2; stack = RENEW_ARRAY(stmt*, stack, sz); } - if (dir < 0) - s->optimized = 0; - else - s->optimized = -1; } _DELETE(stack); } _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list