Changeset: 87b88f06102d for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=87b88f06102d
Removed Files:
        monetdb5/optimizer/opt_accumulators.c
        monetdb5/optimizer/opt_accumulators.h
Modified Files:
        clients/Tests/exports.stable.out
        monetdb5/modules/mal/Tests/remote12.stable.out
        monetdb5/optimizer/Makefile.ag
        monetdb5/optimizer/opt_support.c
        monetdb5/optimizer/opt_support.h
        monetdb5/optimizer/opt_wrapper.c
        monetdb5/optimizer/optimizer.mal
        sql/backends/monet5/Tests/optimizers.sql
        sql/backends/monet5/Tests/optimizers.stable.err
        sql/test/setoptimizer.sql
Branch: default
Log Message:

Drop accumulator optimizer
The underlying accumulator implementation has been dropped
some time ago already.


diffs (truncated from 395 to 300 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -1598,7 +1598,6 @@ str MTIMEtzone_get_local(tzone *z);
 str MTIMEtzone_set_local(void *res, const tzone *z);
 str MTIMEtzone_tostr(str *s, const tzone *ret);
 str MTIMEunix_epoch(timestamp *ret);
-int OPTaccumulatorsImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 void OPTaliasRemap(InstrPtr p, int *alias);
 int OPTaliasesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
 int OPTcoercionImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
diff --git a/monetdb5/modules/mal/Tests/remote12.stable.out 
b/monetdb5/modules/mal/Tests/remote12.stable.out
--- a/monetdb5/modules/mal/Tests/remote12.stable.out
+++ b/monetdb5/modules/mal/Tests/remote12.stable.out
@@ -27,6 +27,7 @@ function user.main():void;
     io.print(v);
     mdb.var();
 end user.main;
+!MALException:remote.put:unsupported type: BAT
 
 
 
diff --git a/monetdb5/optimizer/Makefile.ag b/monetdb5/optimizer/Makefile.ag
--- a/monetdb5/optimizer/Makefile.ag
+++ b/monetdb5/optimizer/Makefile.ag
@@ -18,7 +18,6 @@ lib_optimizer = {
        NOINST
        SOURCES = \
                optimizer.c optimizer.h optimizer_private.h \
-               opt_accumulators.c opt_accumulators.h \
                opt_aliases.c opt_aliases.h \
                opt_coercion.c opt_coercion.h \
                opt_commonTerms.c opt_commonTerms.h \
diff --git a/monetdb5/optimizer/opt_accumulators.c 
b/monetdb5/optimizer/opt_accumulators.c
deleted file mode 100644
--- a/monetdb5/optimizer/opt_accumulators.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0.  If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * Copyright 2008-2015 MonetDB B.V.
- */
-
-/*
- * [NOTE the accumulator optimizer is known to produce
- * problems due to concurrent access to the BATs.
- * However, the last instruction for a BAT is now scheduled only
- * when all other uses have finished.
- *
- * The accumulator can be installed just before garbage collector,
- * because the other modules do not recognize batcalc operations with
- * more arguments.]
- */
-#include "monetdb_config.h"
-#include "opt_accumulators.h"
-#include "mal_builder.h"
-
-int
-OPTaccumulatorsImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci)
-{
-       int i, limit,slimit;
-       InstrPtr p,q;
-       Module scope = cntxt->nspace;
-       int actions = 0;
-       InstrPtr *old;
-       Lifespan span;
-
-       (void) pci;
-       (void) stk;             /* to fool compilers */
-       span = setLifespan(mb);
-       if( span == NULL)
-               return 0;
-       old= mb->stmt;
-       limit= mb->stop;
-       slimit= mb->ssize;
-       if ( newMalBlkStmt(mb,mb->stop) < 0){
-               GDKfree(span);
-               return 0;
-       }
-       for (i = 0; i < limit; i++) {
-               p = old[i];
-
-               if( getModuleId(p) != batcalcRef ) {
-                       pushInstruction(mb,p);
-                       continue;
-               }
-               OPTDEBUGaccumulators
-                       printInstruction(cntxt->fdout, mb, 0, p, LIST_MAL_ALL);
-               if (p->retc==1 && p->argc == 2) {
-                       /* unary operation, avoid clash with binary */
-                       pushInstruction(mb,p);
-                       continue;
-               }
-               if( getLastUpdate(span,getArg(p,0)) != i ) {
-                       /* only consider the last update to this variable */
-                       pushInstruction(mb,p);
-                       continue;
-               }
-
-               if (p->retc==1  && p->argc == 3 && 
isaBatType(getArgType(mb,p,0))) {
-                       int b1 =getEndLifespan(span,getArg(p,1))<=i && 
getArgType(mb,p,1) == getArgType(mb,p,0);
-                       int b2 =getEndLifespan(span,getArg(p,2))<=i && 
getArgType(mb,p,2) == getArgType(mb,p,0) ;
-                       if ( b1 == 0 && b2 == 0){
-                               pushInstruction(mb,p);
-                               continue;
-                       }
-                       /* binary/unary operation, check arguments for being 
candidates */
-                       q= copyInstruction(p);
-                       p= pushBit(mb,p, b1);
-                       p= pushBit(mb,p, b2);
-
-                       typeChecker(cntxt->fdout, scope, mb, p, TRUE);
-                       if (mb->errors || p->typechk == TYPE_UNKNOWN) {
-                               OPTDEBUGaccumulators{
-                                       mnstr_printf(cntxt->fdout,"# Failed 
typecheck");
-                                       printInstruction(cntxt->fdout, mb, 0, 
p, LIST_MAL_ALL);
-                               }
-                               /* reset instruction error buffer */
-                               cntxt->errbuf[0]=0;
-                               mb->errors = 0;
-                               freeInstruction(p);
-                               p=q; /* restore */
-                       } else  {
-                               OPTDEBUGaccumulators{
-                                       mnstr_printf(cntxt->fdout, "#Found 
accumulation candidate ");
-                                       mnstr_printf(cntxt->fdout, "%d: 
%d(%d)\n", i, getArg(p,0),getArg(p,2));
-                                       printInstruction(cntxt->fdout, mb, 0, 
p, LIST_MAL_ALL);
-                               }
-                               freeInstruction(q);
-                               actions++;  
-                       }
-                       OPTDEBUGaccumulators
-                               printInstruction(cntxt->fdout, mb, 0, p, 
LIST_MAL_ALL);
-               }
-               pushInstruction(mb,p);
-       } 
-       for (i = limit; i<slimit; i++) 
-               if(old[i])
-                       freeInstruction(old[i]);
-       GDKfree(old);
-       GDKfree(span);
-       return actions;
-}
diff --git a/monetdb5/optimizer/opt_accumulators.h 
b/monetdb5/optimizer/opt_accumulators.h
deleted file mode 100644
--- a/monetdb5/optimizer/opt_accumulators.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0.  If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * Copyright 2008-2015 MonetDB B.V.
- */
-
-#ifndef _OPT_ACCUMULATORS_
-#define _OPT_ACCUMULATORS_
-#include "opt_prelude.h"
-#include "opt_support.h"
-#include "mal_interpreter.h"
-
-opt_export int OPTaccumulatorsImplementation(Client cntxt, MalBlkPtr mb, 
MalStkPtr stk, InstrPtr pci);
-
-#define OPTDEBUGaccumulators  if ( optDebug & ((lng)1 
<<DEBUG_OPT_ACCUMULATORS) )
-
-#endif
diff --git a/monetdb5/optimizer/opt_support.c b/monetdb5/optimizer/opt_support.c
--- a/monetdb5/optimizer/opt_support.c
+++ b/monetdb5/optimizer/opt_support.c
@@ -129,7 +129,6 @@ struct OPTcatalog {
        int actions;
        int debug;
 } optcatalog[]= {
-{"accumulators",0,     0,      0,      DEBUG_OPT_ACCUMULATORS},
 {"aliases",            0,      0,      0,      DEBUG_OPT_ALIASES},
 {"coercions",  0,      0,      0,      DEBUG_OPT_COERCION},
 {"commonTerms",        0,      0,      0,      DEBUG_OPT_COMMONTERMS},
diff --git a/monetdb5/optimizer/opt_support.h b/monetdb5/optimizer/opt_support.h
--- a/monetdb5/optimizer/opt_support.h
+++ b/monetdb5/optimizer/opt_support.h
@@ -66,7 +66,6 @@
 #define DEBUG_OPT_HISTORY                      40
 #define DEBUG_OPT_MITOSIS                      41
 #define DEBUG_OPT_MULTIPLEX                    42
-#define DEBUG_OPT_ACCUMULATORS         43
 #define DEBUG_OPT_SELCRACK                     46
 #define DEBUG_OPT_SIDCRACK                     47
 #define DEBUG_OPT_TRACE                                48
diff --git a/monetdb5/optimizer/opt_wrapper.c b/monetdb5/optimizer/opt_wrapper.c
--- a/monetdb5/optimizer/opt_wrapper.c
+++ b/monetdb5/optimizer/opt_wrapper.c
@@ -26,7 +26,6 @@
 /*
  * The optimizer used so far
 */
-#include "opt_accumulators.h"
 #include "opt_aliases.h"
 #include "opt_coercion.h"
 #include "opt_commonTerms.h"
@@ -59,7 +58,6 @@ struct{
        str nme;
        int (*fcn)();
 } codes[] = {
-       {"accumulators", &OPTaccumulatorsImplementation},
        {"aliases", &OPTaliasesImplementation},
        {"coercions", &OPTcoercionImplementation},
        {"commonTerms", &OPTcommonTermsImplementation},
diff --git a/monetdb5/optimizer/optimizer.mal b/monetdb5/optimizer/optimizer.mal
--- a/monetdb5/optimizer/optimizer.mal
+++ b/monetdb5/optimizer/optimizer.mal
@@ -6,12 +6,6 @@
 
 module optimizer;
 
-pattern optimizer.accumulators():str
-address OPTwrapper;
-pattern optimizer.accumulators(mod:str, fcn:str):str
-address OPTwrapper
-comment "Replace calculations with accumulator model";
-
 #opt_aliases.mal
 
 pattern optimizer.aliases():str
diff --git a/sql/backends/monet5/Tests/optimizers.sql 
b/sql/backends/monet5/Tests/optimizers.sql
--- a/sql/backends/monet5/Tests/optimizers.sql
+++ b/sql/backends/monet5/Tests/optimizers.sql
@@ -13,19 +13,19 @@ select 'optimizer on test:',optimizer;
 set optimizer='';
 select 'optimizer <empty> test:',optimizer;
 
-set 
optimizer='optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
+set 
optimizer='optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.commonTerms();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 
-set 
optimizer='optimizer.coercions();optimizer.aliases();optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
+set 
optimizer='optimizer.coercions();optimizer.aliases();optimizer.commonTerms();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 
-set 
optimizer='optimizer.aliases();optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
+set 
optimizer='optimizer.aliases();optimizer.commonTerms();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 
-set 
optimizer='optimizer.aliases();optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
+set 
optimizer='optimizer.aliases();optimizer.commonTerms();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 
-set 
optimizer='optimizer.aliases();optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
+set 
optimizer='optimizer.aliases();optimizer.commonTerms();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 
-set 
optimizer='optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
+set 
optimizer='optimizer.commonTerms();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 
-set 
optimizer='optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
+set 
optimizer='optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 
 set 
optimizer='optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 
@@ -35,9 +35,9 @@ set optimizer='optimizer.reduce();optimi
 
 set optimizer='optimizer.garbageCollector();';
 
-set 
optimizer='optimizer.costModel();optimizer.coercions();optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
+set 
optimizer='optimizer.costModel();optimizer.coercions();optimizer.commonTerms();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 
-set 
optimizer='optimizer.costModel();optimizer.coercions();optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.garbageCollector();';
+set 
optimizer='optimizer.costModel();optimizer.coercions();optimizer.commonTerms();optimizer.joinPath();optimizer.deadcode();optimizer.garbageCollector();';
 
 set optimizer='optimizer.inline();';
 
diff --git a/sql/backends/monet5/Tests/optimizers.stable.err 
b/sql/backends/monet5/Tests/optimizers.stable.err
--- a/sql/backends/monet5/Tests/optimizers.stable.err
+++ b/sql/backends/monet5/Tests/optimizers.stable.err
@@ -30,76 +30,76 @@ stderr of test 'optimizers` in directory
 # 03:16:16 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=rome" 
"--port=36613"
 # 03:16:16 >  
 
-MAPI  = (monetdb) /var/tmp/mtest-19755/.s.monetdb.33236
+MAPI  = (monetdb) /var/tmp/mtest-6317/.s.monetdb.38668
 QUERY = set optimizer='off';
 ERROR = !optimizer 'off' unknown
-MAPI  = (monetdb) /var/tmp/mtest-19755/.s.monetdb.33236
+MAPI  = (monetdb) /var/tmp/mtest-6317/.s.monetdb.38668
 QUERY = set optimizer='on';
 ERROR = !optimizer 'on' unknown
-MAPI  = (monetdb) /var/tmp/mtest-19755/.s.monetdb.33236
+MAPI  = (monetdb) /var/tmp/mtest-6317/.s.monetdb.38668
 QUERY = set optimizer='';
 ERROR = !optimizer '' unknown
-MAPI  = (monetdb) /var/tmp/mtest-19755/.s.monetdb.33236
-QUERY = set 
optimizer='optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
+MAPI  = (monetdb) /var/tmp/mtest-6317/.s.monetdb.38668
+QUERY = set 
optimizer='optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.commonTerms();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 ERROR = !'inline' should be the first
-MAPI  = (monetdb) /var/tmp/mtest-19755/.s.monetdb.33236
-QUERY = set 
optimizer='optimizer.coercions();optimizer.aliases();optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
+MAPI  = (monetdb) /var/tmp/mtest-6317/.s.monetdb.38668
+QUERY = set 
optimizer='optimizer.coercions();optimizer.aliases();optimizer.commonTerms();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 ERROR = !'inline' should be the first
-MAPI  = (monetdb) /var/tmp/mtest-19755/.s.monetdb.33236
-QUERY = set 
optimizer='optimizer.aliases();optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to