Changeset: b4194502c3e4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b4194502c3e4
Modified Files:
        monetdb5/optimizer/opt_pipes.c
        sql/test/Tests/setoptimizer.test
Branch: Jan2022
Log Message:

Merge with Jul2021 branch.


diffs (175 lines):

diff --git a/monetdb5/optimizer/opt_pipes.c b/monetdb5/optimizer/opt_pipes.c
--- a/monetdb5/optimizer/opt_pipes.c
+++ b/monetdb5/optimizer/opt_pipes.c
@@ -54,8 +54,8 @@ static struct PIPELINES {
         "optimizer.generator();"
         //"optimizer.candidates();" only for decoration in explain
         //"optimizer.mask();"
-        "optimizer.garbageCollector();"
-        "optimizer.profiler();",
+        "optimizer.profiler();"
+        "optimizer.garbageCollector();",
         "stable", NULL, 1},
 #ifdef USE_STRIMPS_OPTIMIZERS
        {"minimal_strimps_pipe",
@@ -119,8 +119,8 @@ static struct PIPELINES {
         "optimizer.postfix();"
 //      "optimizer.jit();" awaiting the new batcalc api
         "optimizer.wlc();"
-        "optimizer.garbageCollector();"
-        "optimizer.profiler();",
+        "optimizer.profiler();"
+        "optimizer.garbageCollector();",
         "stable", NULL, 1},
 #ifdef USE_STRIMPS_OPTIMIZERS
        {"strimps_pipe",
@@ -155,8 +155,8 @@ static struct PIPELINES {
         "optimizer.postfix();"
 //      "optimizer.jit();" awaiting the new batcalc api
         "optimizer.wlc();"
-        "optimizer.garbageCollector();"
-        "optimizer.profiler();",
+        "optimizer.profiler();"
+        "optimizer.garbageCollector();",
         "stable", NULL, 1},
 #endif  // USE_STRIMPS_OPTIMIZERS
        {"default_fast",
@@ -197,8 +197,8 @@ static struct PIPELINES {
         "optimizer.postfix();"
 //      "optimizer.jit();" awaiting the new batcalc api
         "optimizer.wlc();"
-        "optimizer.garbageCollector();"
-        "optimizer.profiler();",
+        "optimizer.profiler();"
+        "optimizer.garbageCollector();",
         "stable", NULL, 1},
 /* The no_mitosis pipe line is (and should be kept!) identical to the
  * default pipeline, except that optimizer mitosis is omitted.  It is
@@ -240,8 +240,8 @@ static struct PIPELINES {
         "optimizer.postfix();"
 //      "optimizer.jit();" awaiting the new batcalc api
         "optimizer.wlc();"
-        "optimizer.garbageCollector();"
-        "optimizer.profiler();",
+        "optimizer.profiler();"
+        "optimizer.garbageCollector();",
         "stable", NULL, 1},
 /* The sequential pipe line is (and should be kept!) identical to the
  * default pipeline, except that optimizers mitosis & dataflow are
@@ -284,8 +284,8 @@ static struct PIPELINES {
         "optimizer.postfix();"
 //      "optimizer.jit();" awaiting the new batcalc api
         "optimizer.wlc();"
-        "optimizer.garbageCollector();"
-        "optimizer.profiler();",
+        "optimizer.profiler();"
+        "optimizer.garbageCollector();",
         "stable", NULL, 1},
 /* Experimental pipelines stressing various components under
  * development.  Do not use any of these pipelines in production
@@ -429,8 +429,8 @@ getPipeCatalog(bat *nme, bat *def, bat *
 static str
 validatePipe(MalBlkPtr mb)
 {
-       int mitosis = FALSE, deadcode = FALSE, mergetable = FALSE, multiplex = 
FALSE;
-       int bincopyfrom = FALSE, garbage = FALSE, generator = FALSE, remap =  
FALSE;
+       bool mitosis = false, deadcode = false, mergetable = false, multiplex = 
false;
+       bool bincopyfrom = false, garbage = false, generator = false, remap =  
false;
        int i;
        InstrPtr p;
 
@@ -447,42 +447,45 @@ validatePipe(MalBlkPtr mb)
        for (i = 1; i < mb->stop - 1; i++){
                p = getInstrPtr(mb, i);
                const char *fname = getFunctionId(p);
+               if (garbage)
+                       throw(MAL, "optimizer.validate", SQLSTATE(42000) 
"'garbageCollector' should be used as the last one\n");
+               garbage = false;
                if (fname != NULL) {
                        if (strcmp(fname, "deadcode") == 0)
-                               deadcode = TRUE;
+                               deadcode = true;
                        else if (strcmp(fname, "remap") == 0)
-                               remap = TRUE;
+                               remap = true;
                        else if (strcmp(fname, "mitosis") == 0)
-                               mitosis = TRUE;
+                               mitosis = true;
                        else if (strcmp(fname, "bincopyfrom") == 0)
-                               bincopyfrom = TRUE;
+                               bincopyfrom = true;
                        else if (strcmp(fname, "mergetable") == 0)
-                               mergetable = TRUE;
+                               mergetable = true;
                        else if (strcmp(fname, "multiplex") == 0)
-                               multiplex = TRUE;
+                               multiplex = true;
                        else if (strcmp(fname, "generator") == 0)
-                               generator = TRUE;
+                               generator = true;
                        else if (strcmp(fname, "garbageCollector") == 0)
-                               garbage = TRUE;
+                               garbage = true;
                } else
                        throw(MAL, "optimizer.validate", SQLSTATE(42000) 
"Missing optimizer call\n");
        }
 
-       if (mitosis == TRUE && mergetable == FALSE)
+       if (mitosis && !mergetable)
                throw(MAL, "optimizer.validate", SQLSTATE(42000) "'mitosis' 
needs 'mergetable'\n");
 
        /* several optimizer should be used */
-       if (multiplex == 0)
+       if (!multiplex)
                throw(MAL, "optimizer.validate", SQLSTATE(42000) "'multiplex' 
should be used\n");
-       if (deadcode == FALSE)
+       if (!deadcode)
                throw(MAL, "optimizer.validate", SQLSTATE(42000) "'deadcode' 
should be used at least once\n");
-       if (garbage == FALSE)
+       if (!garbage)
                throw(MAL, "optimizer.validate", SQLSTATE(42000) 
"'garbageCollector' should be used as the last one\n");
-       if (remap == FALSE)
+       if (!remap)
                throw(MAL, "optimizer.validate", SQLSTATE(42000) "'remap' 
should be used\n");
-       if (generator == FALSE)
+       if (!generator)
                throw(MAL, "optimizer.validate", SQLSTATE(42000) "'generator' 
should be used\n");
-       if (bincopyfrom == FALSE)
+       if (!bincopyfrom)
                throw(MAL, "optimizer.validate", SQLSTATE(42000) "'bincopyfrom' 
should be used\n");
 
        return MAL_SUCCEED;
diff --git a/sql/test/Tests/setoptimizer.test b/sql/test/Tests/setoptimizer.test
--- a/sql/test/Tests/setoptimizer.test
+++ b/sql/test/Tests/setoptimizer.test
@@ -29,25 +29,25 @@ query TTT nosort
 select * from optimizers()
 ----
 minimal_pipe
-optimizer.inline();optimizer.remap();optimizer.bincopyfrom();optimizer.emptybind();optimizer.deadcode();optimizer.for();optimizer.dict();optimizer.multiplex();optimizer.generator();optimizer.garbageCollector();optimizer.profiler();
+optimizer.inline();optimizer.remap();optimizer.bincopyfrom();optimizer.emptybind();optimizer.deadcode();optimizer.for();optimizer.dict();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.garbageCollector();
 stable
 minimal_fast
 optimizer.minimalfast()
 stable
 default_pipe
-optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.evaluate();optimizer.emptybind();optimizer.deadcode();optimizer.pushselect();optimizer.aliases();optimizer.for();optimizer.dict();optimizer.mitosis();optimizer.mergetable();optimizer.bincopyfrom();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.matpack();optimizer.reorder();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.candidates();optimizer.deadcode();optimizer.postfix();optimizer.wlc();optimizer.garbageCollector();optimizer.profiler();
+optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.evaluate();optimizer.emptybind();optimizer.deadcode();optimizer.pushselect();optimizer.aliases();optimizer.for();optimizer.dict();optimizer.mitosis();optimizer.mergetable();optimizer.bincopyfrom();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.matpack();optimizer.reorder();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.candidates();optimizer.deadcode();optimizer.postfix();optimizer.wlc();optimizer.profiler();optimizer.garbageCollector();
 stable
 default_fast
 optimizer.defaultfast()
 stable
 volcano_pipe
-optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.evaluate();optimizer.emptybind();optimizer.deadcode();optimizer.pushselect();optimizer.aliases();optimizer.mitosis();optimizer.mergetable();optimizer.bincopyfrom();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.matpack();optimizer.reorder();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.volcano();optimizer.candidates();optimizer.deadcode();optimizer.postfix();optimizer.wlc();optimizer.garbageCollector();optimizer.profiler();
+optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.evaluate();optimizer.emptybind();optimizer.deadcode();optimizer.pushselect();optimizer.aliases();optimizer.mitosis();optimizer.mergetable();optimizer.bincopyfrom();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.matpack();optimizer.reorder();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.volcano();optimizer.candidates();optimizer.deadcode();optimizer.postfix();optimizer.wlc();optimizer.profiler();optimizer.garbageCollector();
 stable
 no_mitosis_pipe
-optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.evaluate();optimizer.emptybind();optimizer.deadcode();optimizer.pushselect();optimizer.aliases();optimizer.mergetable();optimizer.bincopyfrom();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.matpack();optimizer.reorder();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.candidates();optimizer.deadcode();optimizer.postfix();optimizer.wlc();optimizer.garbageCollector();optimizer.profiler();
+optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.evaluate();optimizer.emptybind();optimizer.deadcode();optimizer.pushselect();optimizer.aliases();optimizer.mergetable();optimizer.bincopyfrom();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.matpack();optimizer.reorder();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.candidates();optimizer.deadcode();optimizer.postfix();optimizer.wlc();optimizer.profiler();optimizer.garbageCollector();
 stable
 sequential_pipe
-optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.evaluate();optimizer.emptybind();optimizer.deadcode();optimizer.pushselect();optimizer.aliases();optimizer.for();optimizer.dict();optimizer.mergetable();optimizer.bincopyfrom();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.matpack();optimizer.reorder();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.candidates();optimizer.deadcode();optimizer.postfix();optimizer.wlc();optimizer.garbageCollector();optimizer.profiler();
+optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.evaluate();optimizer.emptybind();optimizer.deadcode();optimizer.pushselect();optimizer.aliases();optimizer.for();optimizer.dict();optimizer.mergetable();optimizer.bincopyfrom();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.matpack();optimizer.reorder();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.candidates();optimizer.deadcode();optimizer.postfix();optimizer.wlc();optimizer.profiler();optimizer.garbageCollector();
 stable
 
 statement ok
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to