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

Reply via email to