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