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
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list