Changeset: e757a5ebfe04 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e757a5ebfe04 Removed Files: sql/server/bin_optimizer.c sql/server/bin_optimizer.h Modified Files: sql/backends/monet5/sql.mx sql/backends/monet5/sql_gencode.c Branch: default Log Message:
remove legacy diffs (truncated from 506 to 300 lines): diff --git a/sql/backends/monet5/sql.mx b/sql/backends/monet5/sql.mx --- a/sql/backends/monet5/sql.mx +++ b/sql/backends/monet5/sql.mx @@ -1237,7 +1237,6 @@ sql.prelude(); #include <str.h> #include "sql_privileges.h" #include "sql_rel2bin.h" -//#include <bin_optimizer.h> #include "sql_decimal.h" #include "sql_string.h" #include "sql_qc.h" @@ -1717,7 +1716,6 @@ sql_relation2stmt(mvc *c, sql_rel *r) if (s) { /* only needed for delta tables */ s = rel2bin(c, s); - //s = bin_optimizer(c, s); return s; } } @@ -7580,7 +7578,6 @@ RAstatement(Client cntxt, MalBlkPtr mb, } rel_destroy(rel); s = rel2bin(m, s); - //s = bin_optimizer(m, s); MSinitClientPrg(cntxt, "user", "test"); diff --git a/sql/backends/monet5/sql_gencode.c b/sql/backends/monet5/sql_gencode.c --- a/sql/backends/monet5/sql_gencode.c +++ b/sql/backends/monet5/sql_gencode.c @@ -288,7 +288,6 @@ _create_relational_function(mvc *m, char s = stmt_table(m->sa, s, 1); s = stmt_return(m->sa, s, 0); opt = rel2bin(m, s); - //s = bin_optimizer(m, opt); s = opt; backup = c->curprg; @@ -823,7 +822,6 @@ _dumpstmt(backend *sql, MalBlkPtr mb, st q = newStmt2(mb, sqlRef, bindRef); if (s->flag == RD_UPD) { - //setVarType(mb, getArg(q, 0), newBatType(ht, ht)); q = pushReturn(mb, q, newTmpVariable(mb, newBatType(ht, tt))); } else setVarType(mb, getArg(q, 0), newBatType(ht, tt)); @@ -862,7 +860,6 @@ _dumpstmt(backend *sql, MalBlkPtr mb, st q = newStmt2(mb, sqlRef, bindidxRef); if (s->flag == RD_UPD) { - //setVarType(mb, getArg(q, 0), newBatType(ht, ht)); q = pushReturn(mb, q, newTmpVariable(mb, newBatType(ht, tt))); } else setVarType(mb, getArg(q, 0), newBatType(ht, tt)); @@ -1840,7 +1837,7 @@ _dumpstmt(backend *sql, MalBlkPtr mb, st } s->nr = getDestVar(q); if (g && minmax) { - //q = newStmt2(mb, algebraRef, leftjoinRef); + /*q = newStmt2(mb, algebraRef, leftjoinRef); needs fix in min/max code */ q = newStmt1(mb, algebraRef, "outerjoin"); q = pushArgument(mb, q, s->nr); q = pushArgument(mb, q, l); @@ -2526,7 +2523,6 @@ monet5_create_table_function(ptr M, char s = stmt_table(m->sa, s, 1); s = stmt_return(m->sa, s, 0); opt = rel2bin(m, s); - //s = bin_optimizer(m, opt); s = opt; backup = c->curprg; @@ -2626,7 +2622,6 @@ backend_create_func(backend *be, sql_fun m->sa = sa; opt = rel2bin(m, s); - //s = bin_optimizer(m, opt); s = opt; } assert(s); diff --git a/sql/server/bin_optimizer.c b/sql/server/bin_optimizer.c deleted file mode 100644 --- a/sql/server/bin_optimizer.c +++ /dev/null @@ -1,388 +0,0 @@ -/* - * The contents of this file are subject to the MonetDB Public License - * Version 1.1 (the "License"); you may not use this file except in - * compliance with the License. You may obtain a copy of the License at - * http://www.monetdb.org/Legal/MonetDBLicense - * - * Software distributed under the License is distributed on an "AS IS" - * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the - * License for the specific language governing rights and limitations - * under the License. - * - * The Original Code is the MonetDB Database System. - * - * The Initial Developer of the Original Code is CWI. - * Portions created by CWI are Copyright (C) 1997-July 2008 CWI. - * Copyright August 2008-2012 MonetDB B.V. - * All Rights Reserved. - */ - - -#include "monetdb_config.h" -#include "bin_optimizer.h" -#include "sql_types.h" -#include "sql_rel2bin.h" -#include "sql_env.h" - -/* push this select through the statement s */ -static stmt * -push_select( sql_allocator *sa, stmt *select, stmt *s ) -{ - if (select->type == st_uselect2) - return stmt_uselect2(sa, s, select->op2, select->op3, (comp_type)select->flag, select->op4.stval); - - if (select->type == st_uselect) - return stmt_uselect(sa, s, select->op2, (comp_type)select->flag, select->op3); - assert(0); - return NULL; -} - -static stmt * -_bin_optimizer(mvc *c, stmt *s) -{ - if (s->optimized >= 3) { - if (s->rewritten) - return s->rewritten; - else - return s; - } - - switch (s->type) { - /* first just return those statements which we cannot optimize, - * such as schema manipulation, transaction managment, - * and user authentication. - */ - case st_none: - case st_rs_column: - case st_dbat: - case st_idxbat: - - case st_atom: - case st_export: - case st_var: - case st_table_clear: - - case st_tid: - case st_bat: - - s->optimized = 3; - return s; - - case st_limit: { - stmt *ns, *j = NULL, *os = s; - - /* try to push the limit through the (fetch) join */ - j = s->op1; - - /* push through the projection joins */ - if (s->flag == 0 && - isEqJoin(j) && - j->op1->t && j->op1->t == j->op2->h) { - stmt *l = j->op1; - stmt *r = j->op2; - - l = stmt_limit(c->sa, l, s->op2, s->op3, s->flag); - s = stmt_join(c->sa, l, r, cmp_equal); - ns = _bin_optimizer(c, s); - assert(os->rewritten==NULL); - os->rewritten = ns; - os->optimized = ns->optimized = 3; - return ns; - } else - /* try to push the limit through the reverse */ - if (!s->flag && j->type == st_reverse) { - s = stmt_reverse(c->sa, stmt_limit(c->sa, j->op1, s->op2, - s->op3, s->flag)); - ns = _bin_optimizer(c, s); - assert(os->rewritten==NULL); - os->rewritten = ns; - os->optimized = ns->optimized = 3; - return ns; - } - /* try to push the limit through the mark (only if there is no offset) */ - if (!s->op2->op4.aval->data.val.wval && j->type == st_mark) { - s = stmt_mark_tail(c->sa, stmt_limit(c->sa, j->op1, - s->op2, s->op3, s->flag), - j->op2->op4.aval->data.val.ival); - ns = _bin_optimizer(c, s); - assert(os->rewritten==NULL); - os->rewritten = ns; - os->optimized = ns->optimized = 3; - return ns; - } - if (s->op1) { - stmt *os = s->op1; - stmt *ns = _bin_optimizer(c, os); - - assert(ns != s); - s->op1 = ns; - } - s->optimized = 3; - return s; - } - - case st_inter:{ - - stmt *j = NULL; - stmt *os, *ns; - - os = stmt_inter(c->sa, _bin_optimizer(c, s->op1), _bin_optimizer(c, s->op2)); - /* try to push the intersect through the (fetch) join */ - if (os->op1->type == st_join) { - j = os->op1; - /* equi join on same base table */ - if (isEqJoin(j) && - j->op1->t == j->op2->h ) { - stmt *l = j->op1; - stmt *r = j->op2; - s = stmt_inter(c->sa, l, os->op2); - l = _bin_optimizer(c, s); - os = stmt_join( c->sa, l, r, cmp_equal); - os->optimized = 3; - return os; - } - } - ns = os; - s->optimized = ns->optimized = 3; - if (ns != s) { - assert(s->rewritten==NULL); - s->rewritten = ns; - } - return ns; - } - - case st_join: - case st_join2: - case st_joinN:{ - - if (s->op1) { - stmt *os = s->op1; - stmt *ns = _bin_optimizer(c, os); - - assert(ns != s); - s->op1 = ns; - } - if (s->op2) { - stmt *os = s->op2; - stmt *ns = _bin_optimizer(c, os); - - assert(ns != s); - s->op2 = ns; - } - if (s->op3) { - stmt *os = s->op3; - stmt *ns = _bin_optimizer(c, os); - - assert(ns != s); - s->op3 = ns; - } - - /* remove expensive double kdiffs - * if join on oids from the same table then - * right kdiff is not needed - */ - if (isEqJoin(s) && - s->op1->t == s->op2->h && - s->op2->type == st_diff){ - stmt *old = s->op2; - s->op2 = old->op1; - } - /* same as above but now with alias in between */ - if (isEqJoin(s) && - s->op2->type == st_alias && - s->op1->t == s->op2->op1->h && - s->op2->op1->type == st_diff){ - stmt *old = s->op2; - s->op2 = old->op1->op1; - } - s->optimized = 3; - return s; - } - - case st_reverse:{ - - stmt *os, *ns; - - os = stmt_reverse(c->sa, _bin_optimizer(c, s->op1)); - ns = os; - s->optimized = ns->optimized = 3; - if (ns != s) { - assert(s->rewritten==NULL); - s->rewritten = ns; - } - return ns; - } - case st_uselect: - case st_uselect2: { _______________________________________________ checkin-list mailing list checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list