Changeset: 46dbc345d5de for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=46dbc345d5de
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_scenario.c
        sql/server/rel_optimizer.c
        sql/server/rel_select.c
        sql/server/rel_semantic.c
        sql/server/sql_mvc.c
        sql/server/sql_mvc.h
Branch: subquery
Log Message:

cleanup


diffs (truncated from 367 to 300 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
@@ -719,19 +719,6 @@ exp_bin(backend *be, sql_exp *e, stmt *l
                        s = bin_find_column(be, right, e->l, e->r);
                if (!s && left) 
                        s = bin_find_column(be, left, e->l, e->r);
-               if (!s) {
-                       sql_subquery *sq = mvc_find_subquery(be->mvc, 
e->l?e->l:e->r, e->r);
-
-                       if (sq) { 
-                               stmt *s = sq->s;
-
-                               if (s && s->type == st_list)
-                                       s = bin_find_column(be, s, 
e->l?e->l:e->r, e->r);
-                               if (s && s->nrcols > 0)
-                                       return stmt_fetch(be, s);
-                               return s; /* ugh */
-                       }
-               }
                if (s && grp)
                        s = stmt_project(be, ext, s);
                if (!s && right) {
@@ -1244,7 +1231,6 @@ rel_parse_value(backend *be, char *query
        bstream *bs;
 
        m->qc = NULL;
-       m->sqs = NULL;
 
        m->caching = 0;
        m->emode = emode;
@@ -3148,7 +3134,6 @@ sql_parse(backend *be, sql_allocator *sa
        *o = *m;
 
        m->qc = NULL;
-       m->sqs = NULL;
 
        m->caching = 0;
        m->emode = mode;
@@ -5550,32 +5535,13 @@ subrel_bin(backend *be, sql_rel *rel, li
        return s;
 }
 
-static stmt *
-_subrel_bin(backend *be, sql_rel *rel, list *refs) 
-{
-       if (be->mvc->sqs) {
-               node *n;
-
-               for(n = be->mvc->sqs->h; n; n = n->next) {
-                       sql_subquery *v = n->data;
-
-                       if (!v->s) {
-                               v->s = subrel_bin(be, v->rel, refs);
-                               if(!v->s)
-                                       return NULL;
-                       }
-               }
-       }
-       return subrel_bin(be, rel, refs);
-}
-
 stmt *
 rel_bin(backend *be, sql_rel *rel) 
 {
        mvc *sql = be->mvc;
        list *refs = sa_list(sql->sa);
        int sqltype = sql->type;
-       stmt *s = _subrel_bin(be, rel, refs);
+       stmt *s = subrel_bin(be, rel, refs);
 
        if (sqltype == Q_SCHEMA)
                sql->type = sqltype;  /* reset */
@@ -5589,7 +5555,7 @@ output_rel_bin(backend *be, sql_rel *rel
        mvc *sql = be->mvc;
        list *refs = sa_list(sql->sa);
        int sqltype = sql->type;
-       stmt *s = _subrel_bin(be, rel, refs);
+       stmt *s = subrel_bin(be, rel, refs);
 
        if (sqltype == Q_SCHEMA)
                sql->type = sqltype;  /* reset */
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -142,7 +142,6 @@ sqlcleanup(mvc *c, int err)
 {
        sql_destroy_params(c);
        sql_destroy_args(c);
-       c->sqs = NULL;
 
        if ((c->emod & mod_locked) == mod_locked) {
                /* here we should commit the transaction */
diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -513,7 +513,6 @@ SQLinit(Client c)
                if (m->sa)
                        sa_destroy(m->sa);
                m->sa = NULL;
-               m->sqs = NULL;
 
 #else
                char path[FILENAME_MAX];
@@ -563,7 +562,6 @@ SQLinit(Client c)
                                        if (m->sa)
                                                sa_destroy(m->sa);
                                        m->sa = NULL;
-                                       m->sqs = NULL;
                                        if (newmsg){
                                                fprintf(stderr,"%s",newmsg);
                                                freeException(newmsg);
@@ -575,7 +573,6 @@ SQLinit(Client c)
                        fprintf(stderr, "!could not read createdb.sql\n");
 #endif
        } else {                /* handle upgrades */
-               m->sqs = NULL;
                if (!m->sa)
                        m->sa = sa_create();
                if (!m->sa) {
@@ -830,7 +827,6 @@ SQLinclude(Client cntxt, MalBlkPtr mb, M
        if (m->sa)
                sa_destroy(m->sa);
        m->sa = NULL;
-       m->sqs = NULL;
        (void) mb;
        return msg;
 }
@@ -1073,7 +1069,6 @@ SQLparser(Client c)
 
        /* sqlparse needs sql allocator to be available.  It can be NULL at
         * this point if this is a recursive call. */
-       m->sqs = NULL;
        if (!m->sa) 
                m->sa = sa_create();
        if (!m->sa) {
diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -1246,11 +1246,6 @@ exp_rename(mvc *sql, sql_exp *e, sql_rel
                } else {
                        ne = exps_bind_column(f->exps, e->r, NULL);
                }
-               if (!ne) {
-                       ne = mvc_find_subexp(sql, e->l?e->l:e->r, e->r);
-                       if (ne)
-                               return e;
-               }
                if (!ne)
                        return e;
                e = NULL;
@@ -1258,11 +1253,6 @@ exp_rename(mvc *sql, sql_exp *e, sql_rel
                        e = rel_bind_column2(sql, t, ne->l, ne->r, 0);
                if (!e && ne->r)
                        e = rel_bind_column(sql, t, ne->r, 0);
-               if (!e && ne->type == e_column) {
-                       e = mvc_find_subexp(sql, ne->l?ne->l:ne->r, ne->r);
-                       if (e)
-                               e = exp_column(sql->sa, exp_relname(e), 
exp_name(e), exp_subtype(e), e->card, has_nil(e), is_intern(e));
-               }
                sql->session->status = 0;
                sql->errstr[0] = 0;
                if (!e && exp_is_atom(ne))
@@ -6833,20 +6823,6 @@ rel_dce(mvc *sql, sql_rel *rel)
        list *refs = sa_list(sql->sa);
        node *n;
 
-       if (sql->sqs) {
-               node *n;
-
-               for(n = sql->sqs->h; n; n = n->next) {
-                       sql_subquery *v = n->data;
-                       sql_rel *i = v->rel;
-
-                       while (!rel_is_ref(i) && i->l && !is_base(i->op))
-                               i = i->l;
-                       if (i)
-                               rel_used(i);
-               }
-       }
-
        rel_dce_refs(sql, rel, refs);
        if (refs) {
                node *n;
@@ -9063,15 +9039,6 @@ rel_optimizer(mvc *sql, sql_rel *rel, in
 {
        lng Tbegin = GDKusec();
        rel = optimize(sql, rel, value_based_opt);
-       if (sql->sqs) {
-               node *n;
-
-               for(n = sql->sqs->h; n; n = n->next) {
-                       sql_subquery *v = n->data;
-
-                       v->rel = optimize(sql, v->rel, value_based_opt);
-               }
-       }
        sql->Topt += GDKusec() - Tbegin;
        return rel;
 }
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
@@ -2750,11 +2750,6 @@ rel_in_exp(sql_query *query, sql_rel *re
                                                return NULL;
                                        r = exp_compare(sql->sa, l, r, 
sc->token==SQL_IN?mark_in:mark_notin); 
                                        if (z) {
-                                               /* TO BE removed once we have a 
mark join */
-                                               if (/* DISABLES CODE */ (0) && 
sc->token == SQL_NOT_IN && l->card != CARD_ATOM && has_nil(l) /* Should be:  
NULL not in set, except when set is empty */) {
-                                                       sql_exp *e = 
rel_unop_(query, l, NULL, "isnull", card_value);
-                                                       left = 
rel_select(sql->sa, left, exp_compare(sql->sa, e, exp_atom_bool(sql->sa, 0), 
cmp_equal));
-                                               }
                                                left = 
rel_crossproduct(sql->sa, left, z, sc->token==SQL_IN?op_semi:op_anti);
                                                if (rel_has_freevar(z))
                                                        set_dependent(left);
@@ -5692,7 +5687,7 @@ rel_value_exp2(sql_query *query, sql_rel
 
                                        exp_setname(sql->sa, ne, 
exp_relname(e), exp_name(e));
                                        e = ne;
-                               } else { //if (e->card > CARD_ATOM) {
+                               } else { 
                                        if (is_sql_sel(f) && is_project(p->op) 
&& !is_processed(p)) {
                                                if (p->l) {
                                                        p->l = 
rel_crossproduct(sql->sa, p->l, r, op_join);
@@ -5702,12 +5697,6 @@ rel_value_exp2(sql_query *query, sql_rel
                                        } else {
                                                *rel = 
rel_crossproduct(sql->sa, p, r, is_sql_sel(f)?op_left:op_join);
                                        }
-                                       /*
-                               } else {
-                                       if (!exp_relname(e))
-                                               exp_setname(sql->sa, e, 
exp_name(e), exp_name(e));
-                                       mvc_push_subquery(sql, exp_relname(e), 
r);
-                                       */
                                }
                                *is_last = 1;
                                return e;
diff --git a/sql/server/rel_semantic.c b/sql/server/rel_semantic.c
--- a/sql/server/rel_semantic.c
+++ b/sql/server/rel_semantic.c
@@ -98,14 +98,12 @@ rel_parse(mvc *m, sql_schema *s, char *q
                strcpy(m->errstr, errstr);
        } else {
                int label = m->label;
-               list *sqs = m->sqs;
 
                while (m->topvars > o.topvars) {
                        if (m->vars[--m->topvars].name)
                                c_delete(m->vars[m->topvars].name);
                }
                *m = o;
-               m->sqs = sqs;
                m->label = label;
        }
        m->session->schema = c;
diff --git a/sql/server/sql_mvc.c b/sql/server/sql_mvc.c
--- a/sql/server/sql_mvc.c
+++ b/sql/server/sql_mvc.c
@@ -807,7 +807,6 @@ mvc_destroy(mvc *m)
        if (m->qc)
                qc_destroy(m->qc);
        m->qc = NULL;
-       m->sqs = NULL;
 
        _DELETE(m->args);
        m->args = NULL;
@@ -2023,65 +2022,6 @@ mvc_copy_part(mvc *m, sql_table *t, sql_
        return sql_trans_copy_part(m->session->tr, t, pt);
 }
 
-sql_subquery *
-mvc_push_subquery(mvc *m, const char *name, sql_rel *r)
-{
-       sql_subquery *res = NULL;
-
-       if (!m->sqs)
-               m->sqs = sa_list(m->sa);
-       if (m->sqs) {
-               sql_subquery *v = SA_NEW(m->sa, sql_subquery);
-
-               v->name = name;
-               v->rel = r;
-               v->s = NULL;
-               list_append(m->sqs, v);
-               res = v;
-       }
-       return res;
-}
-
-sql_subquery *
-mvc_find_subquery(mvc *m, const char *rname, const char *name) 
-{
-       node *n;
-
-       if (!m->sqs)
-               return NULL;
-       for (n = m->sqs->h; n; n = n->next) {
-               sql_subquery *v = n->data;
-
-               if (strcmp(v->name, rname) == 0) {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to