Changeset: 49374908d48d for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=49374908d48d
Modified Files:
        monetdb5/optimizer/opt_pipes.c
        sql/backends/monet5/Tests/optimizers.stable.err
        sql/test/BugTracker-2009/Tests/reorder.SF-2770608.sql
        sql/test/BugTracker-2009/Tests/table-leftovers.SF-2779462.sql
Branch: transaction-replication
Log Message:

Merge with default branch


diffs (182 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
@@ -311,7 +311,7 @@ getPipeCatalog(bat *nme, bat *def, bat *
 static str
 validatePipe(MalBlkPtr mb)
 {
-       int mitosis = FALSE, deadcode = FALSE, mergetable = FALSE, multiplex = 
FALSE, garbage = FALSE;
+       int mitosis = FALSE, deadcode = FALSE, mergetable = FALSE, multiplex = 
FALSE, garbage = FALSE, generator = FALSE, remap =  FALSE;
        int i;
 
        if (mb == NULL || getInstrPtr(mb, 1) == 0)
@@ -319,18 +319,21 @@ validatePipe(MalBlkPtr mb)
        if (getFunctionId(getInstrPtr(mb, 1)) == NULL || 
idcmp(getFunctionId(getInstrPtr(mb, 1)), "inline"))
                throw(MAL, "optimizer.validate", "'inline' should be the 
first\n");
 
-       /* deadcode should be used */
        for (i = 1; i < mb->stop - 1; i++)
                if (getFunctionId(getInstrPtr(mb, i)) != NULL) {
                        if (strcmp(getFunctionId(getInstrPtr(mb, i)), 
"deadcode") == 0)
                                deadcode = TRUE;
+                       else if (strcmp(getFunctionId(getInstrPtr(mb, i)), 
"remap") == 0)
+                               remap = TRUE;
                        else if (strcmp(getFunctionId(getInstrPtr(mb, i)), 
"mitosis") == 0)
                                mitosis = TRUE;
                        else if (strcmp(getFunctionId(getInstrPtr(mb, i)), 
"mergetable") == 0)
                                mergetable = TRUE;
                        else if (strcmp(getFunctionId(getInstrPtr(mb, i)), 
"multiplex") == 0)
                                multiplex = TRUE;
-                       else if (strcmp(getFunctionId(getInstrPtr(mb, i)), 
"garbageCollector") == 0 && i == mb->stop - 2)
+                       else if (strcmp(getFunctionId(getInstrPtr(mb, i)), 
"generator") == 0)
+                               generator = TRUE;
+                       else if (strcmp(getFunctionId(getInstrPtr(mb, i)), 
"garbageCollector") == 0)
                                garbage = TRUE;
                } else
                        throw(MAL, "optimizer.validate", "Missing optimizer 
call\n");
@@ -338,12 +341,17 @@ validatePipe(MalBlkPtr mb)
        if (mitosis == TRUE && mergetable == FALSE)
                throw(MAL, "optimizer.validate", "'mitosis' needs 
'mergetable'\n");
 
+       /* several optimizer should be used */
        if (multiplex == 0)
                throw(MAL, "optimizer.validate", "'multiplex' should be 
used\n");
        if (deadcode == FALSE)
-               throw(MAL, "optimizeri.validate", "'deadcode' should be used at 
least once\n");
+               throw(MAL, "optimizer.validate", "'deadcode' should be used at 
least once\n");
        if (garbage == FALSE)
                throw(MAL, "optimizer.validate", "'garbageCollector' should be 
used as the last one\n");
+       if (remap == FALSE)
+               throw(MAL, "optimizer.validate", "'remap' should be used\n");
+       if (generator == FALSE)
+               throw(MAL, "optimizer.validate", "'generator' should be 
used\n");
 
        return MAL_SUCCEED;
 }
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,72 +30,78 @@ 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-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set optimizer='off';
 ERROR = !optimizer 'off' unknown
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set optimizer='on';
 ERROR = !optimizer 'on' unknown
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set optimizer='';
 ERROR = !optimizer '' unknown
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set 
optimizer='optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 ERROR = !'inline' should be the first
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set 
optimizer='optimizer.coercions();optimizer.aliases();optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 ERROR = !'inline' should be the first
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set 
optimizer='optimizer.aliases();optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 ERROR = !'inline' should be the first
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set 
optimizer='optimizer.aliases();optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 ERROR = !'inline' should be the first
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set 
optimizer='optimizer.aliases();optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 ERROR = !'inline' should be the first
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set 
optimizer='optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 ERROR = !'inline' should be the first
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set 
optimizer='optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 ERROR = !'inline' should be the first
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set 
optimizer='optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 ERROR = !'inline' should be the first
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set 
optimizer='optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 ERROR = !'inline' should be the first
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set optimizer='optimizer.reduce();optimizer.garbageCollector();';
 ERROR = !'inline' should be the first
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set optimizer='optimizer.garbageCollector();';
 ERROR = !'inline' should be the first
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set 
optimizer='optimizer.costModel();optimizer.coercions();optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.reduce();optimizer.garbageCollector();';
 ERROR = !'inline' should be the first
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set 
optimizer='optimizer.costModel();optimizer.coercions();optimizer.commonTerms();optimizer.accumulators();optimizer.joinPath();optimizer.deadcode();optimizer.garbageCollector();';
 ERROR = !'inline' should be the first
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set optimizer='optimizer.inline();';
 ERROR = !'multiplex' should be used
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set optimizer='optimizer.inline();optimizer.multiplex();';
 ERROR = !'deadcode' should be used at least once
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set 
optimizer='optimizer.inline();optimizer.multiplex();optimizer.deadcode();';
 ERROR = !'garbageCollector' should be used as the last one
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set 
optimizer='optimizer.inline();optimizer.deadcode();optimizer.multiplex();';
 ERROR = !'garbageCollector' should be used as the last one
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set 
optimizer='optimizer.deadcode();optimizer.inline();optimizer.multiplex();optimizer.garbageCollector();';
 ERROR = !'inline' should be the first
-MAPI  = (monetdb) /var/tmp/mtest-21021/.s.monetdb.35166
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
 QUERY = set 
optimizer='optimizer.inline();optimizer.deadcode();optimizer.garbageCollector();optimizer.multiplex();';
 ERROR = !'garbageCollector' should be used as the last one
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
+QUERY = set 
optimizer='optimizer.inline();optimizer.multiplex();optimizer.deadcode();optimizer.garbageCollector();';
+
+MAPI  = (monetdb) /var/tmp/mtest-10057/.s.monetdb.36816
+QUERY = set 
optimizer='optimizer.inline();optimizer.deadcode();optimizer.multiplex();optimizer.garbageCollector();';
+
 
 # 03:16:17 >  
 # 03:16:17 >  "Done."
diff --git a/sql/test/BugTracker-2009/Tests/reorder.SF-2770608.sql 
b/sql/test/BugTracker-2009/Tests/reorder.SF-2770608.sql
--- a/sql/test/BugTracker-2009/Tests/reorder.SF-2770608.sql
+++ b/sql/test/BugTracker-2009/Tests/reorder.SF-2770608.sql
@@ -42,7 +42,7 @@ 5125  "url"   "url"   0       0       0       13      2000
 5187   "inet"  "inet"  0       0       0       13      2000
 
 -- query causes problems in specific pipeline
-set 
optimizer='optimizer.inline();optimizer.remap();optimizer.evaluate();optimizer.costModel();optimizer.coercions();optimizer.mitosis();optimizer.aliases();optimizer.mergetable();optimizer.deadcode();optimizer.constants();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.garbageCollector();';
+set 
optimizer='optimizer.inline();optimizer.remap();optimizer.evaluate();optimizer.costModel();optimizer.coercions();optimizer.mitosis();optimizer.aliases();optimizer.mergetable();optimizer.deadcode();optimizer.constants();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.garbageCollector();';
 select * from t2770608 t1, t2770608 t2 where t1.id = t2.id;
 
 -- clean up
diff --git a/sql/test/BugTracker-2009/Tests/table-leftovers.SF-2779462.sql 
b/sql/test/BugTracker-2009/Tests/table-leftovers.SF-2779462.sql
--- a/sql/test/BugTracker-2009/Tests/table-leftovers.SF-2779462.sql
+++ b/sql/test/BugTracker-2009/Tests/table-leftovers.SF-2779462.sql
@@ -1,6 +1,6 @@
 start transaction;
 
-set 
optimizer='optimizer.inline();optimizer.remap();optimizer.evaluate();optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.mergetable();optimizer.deadcode();optimizer.constants();optimizer.commonTerms();optimizer.reorder();optimizer.joinPath();optimizer.deadcode();optimizer.recycler();optimizer.reduce();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.garbageCollector();';
+set 
optimizer='optimizer.inline();optimizer.remap();optimizer.evaluate();optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.mergetable();optimizer.deadcode();optimizer.constants();optimizer.commonTerms();optimizer.reorder();optimizer.joinPath();optimizer.deadcode();optimizer.recycler();optimizer.reduce();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.garbageCollector();';
 
 CREATE TABLE y (x int);
 INSERT INTO y VALUES (10);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to