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]