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

Reply via email to