Changeset: 4dc538f53f7a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4dc538f53f7a
Modified Files:
        sql/backends/monet5/datacell/50_datacell.mal
        sql/backends/monet5/datacell/datacell.mal
        sql/backends/monet5/datacell/opt_datacell.c
        sql/backends/monet5/datacell/opt_datacell.h
        sql/backends/monet5/datacell/opt_datacell.mal
Branch: Oct2012
Log Message:

Load DataCell optimizer pipe when server starts

Fabian's fix for the error detected by a PlanetData partner trying to use 
DataCell:
sql>set optimizer = 'datacell_pipe';
SyntaxException:parseError:
';' expected
Syntax error detected.See documentation for details

Which was caused by that the datacell_pipe was not added to the optimizer pipes 
at all.


diffs (80 lines):

diff --git a/sql/backends/monet5/datacell/50_datacell.mal 
b/sql/backends/monet5/datacell/50_datacell.mal
--- a/sql/backends/monet5/datacell/50_datacell.mal
+++ b/sql/backends/monet5/datacell/50_datacell.mal
@@ -16,9 +16,10 @@
 # All Rights Reserved.
 
 # This loads the MonetDB/DataCell module
+include datacell;
 include opt_datacell;
-include datacell;
 include basket;
 include receptor;
 include emitter;
 
+io.printf("# MonetDB/DataCell loaded\n");
diff --git a/sql/backends/monet5/datacell/datacell.mal 
b/sql/backends/monet5/datacell/datacell.mal
--- a/sql/backends/monet5/datacell/datacell.mal
+++ b/sql/backends/monet5/datacell/datacell.mal
@@ -106,4 +106,3 @@ command errors()(nme:bat[:oid,:str],erro
 address BSKTtableerrors
 comment "Return a table the erroneous events";
 
-io.printf("# MonetDB/DataCell loaded\n");
diff --git a/sql/backends/monet5/datacell/opt_datacell.c 
b/sql/backends/monet5/datacell/opt_datacell.c
--- a/sql/backends/monet5/datacell/opt_datacell.c
+++ b/sql/backends/monet5/datacell/opt_datacell.c
@@ -38,6 +38,20 @@
 #include "opt_statistics.h"
 #include "opt_dataflow.h"
 
+str
+OPTdatacellPrelude(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+       (void) mb;
+       (void) stk;
+       (void) pci;
+
+       addPipeDefinition(cntxt, "datacell_pipe",
+                       
"optimizer.inline();optimizer.remap();optimizer.datacell();optimizer.garbageCollector();optimizer.evaluate();optimizer.costModel();optimizer.coercions();optimizer.emptySet();optimizer.aliases();optimizer.mitosis();"
+                       
"optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.groups();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.dataflow();"
+                       
"optimizer.history();optimizer.multiplex();optimizer.accumulators();optimizer.garbageCollector();");
+       return MAL_SUCCEED;
+}
+
 int
 OPTdatacellImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci)
 {
@@ -235,10 +249,6 @@ OPTdatacellImplementation(Client cntxt, 
 
        if (actions)
        {
-               addPipeDefinition(cntxt, "datacell_pipe",
-                               
"optimizer.inline();optimizer.remap();optimizer.datacell();optimizer.garbageCollector();optimizer.evaluate();optimizer.costModel();optimizer.coercions();optimizer.emptySet();optimizer.aliases();optimizer.mitosis();"
-                               
"optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.groups();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.dataflow();"
-                               
"optimizer.history();optimizer.multiplex();optimizer.accumulators();optimizer.garbageCollector();");
                /* extend the plan with the new optimizer pipe required */
                clk = GDKusec();
                optimizerCheck(cntxt, mb, "optimizer.datacell", 1, /*t =*/ 
(GDKusec() - clk), OPT_CHECK_ALL);
diff --git a/sql/backends/monet5/datacell/opt_datacell.h 
b/sql/backends/monet5/datacell/opt_datacell.h
--- a/sql/backends/monet5/datacell/opt_datacell.h
+++ b/sql/backends/monet5/datacell/opt_datacell.h
@@ -26,5 +26,5 @@
 #define OPTDEBUGdatacell  if (optDebug & (1 << DEBUG_OPT_DATACELL))
 opt_export str OPTdatacell(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
p);
 opt_export int OPTdatacellImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr 
stk, InstrPtr pci);
-
+opt_export str OPTdatacellPrelude(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
 #endif
diff --git a/sql/backends/monet5/datacell/opt_datacell.mal 
b/sql/backends/monet5/datacell/opt_datacell.mal
--- a/sql/backends/monet5/datacell/opt_datacell.mal
+++ b/sql/backends/monet5/datacell/opt_datacell.mal
@@ -21,3 +21,8 @@ pattern optimizer.datacell(mod:str, fcn:
 address OPTdatacell
 comment "Datacell expression optimizer";
 
+pattern optimizer.datacellprelude():void
+address OPTdatacellPrelude
+comment "Add the datacell optimizer pipe";
+
+optimizer.datacellprelude();
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to