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
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list