Changeset: ab1d0a04bb6e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ab1d0a04bb6e
Added Files:
        monetdb5/optimizer/opt_parappend.c
        monetdb5/optimizer/opt_parappend.h
Removed Files:
        monetdb5/optimizer/opt_append.c
        monetdb5/optimizer/opt_append.h
Modified Files:
        monetdb5/optimizer/CMakeLists.txt
        monetdb5/optimizer/opt_bincopyfrom.c
        monetdb5/optimizer/opt_pipes.c
        monetdb5/optimizer/opt_wrapper.c
        monetdb5/optimizer/optimizer.c
Branch: copybinary
Log Message:

Try to make it a separate optimizer


diffs (187 lines):

diff --git a/monetdb5/optimizer/CMakeLists.txt 
b/monetdb5/optimizer/CMakeLists.txt
--- a/monetdb5/optimizer/CMakeLists.txt
+++ b/monetdb5/optimizer/CMakeLists.txt
@@ -12,7 +12,6 @@ target_sources(optimizer
   PRIVATE
   optimizer.c optimizer.h optimizer_private.h
   opt_aliases.c opt_aliases.h
-  opt_append.c opt_append.h
   opt_bincopyfrom.c opt_bincopyfrom.h
   opt_coercion.c opt_coercion.h
   opt_commonTerms.c opt_commonTerms.h
@@ -36,6 +35,7 @@ target_sources(optimizer
   opt_mitosis.c opt_mitosis.h
   opt_multiplex.c opt_multiplex.h
   opt_oltp.c opt_oltp.h
+  opt_parappend.c opt_parappend.h
   opt_wlc.c opt_wlc.h
   opt_pipes.c
   opt_prelude.c opt_prelude.h
diff --git a/monetdb5/optimizer/opt_bincopyfrom.c 
b/monetdb5/optimizer/opt_bincopyfrom.c
--- a/monetdb5/optimizer/opt_bincopyfrom.c
+++ b/monetdb5/optimizer/opt_bincopyfrom.c
@@ -13,7 +13,6 @@
 #include "monetdb_config.h"
 #include "mal_builder.h"
 #include "opt_bincopyfrom.h"
-#include "opt_append.h"
 
 static str transform(MalBlkPtr mb, InstrPtr importTable);
 static int extract_column(MalBlkPtr mb, InstrPtr old, int idx, int 
proto_bat_var, int count_var);
@@ -48,12 +47,9 @@ OPTbincopyfromImplementation(Client cntx
                goto end;
        }
 
-       bool importTable_seen;
-       importTable_seen = false;
        for (int i = 0; i < old_stop; i++) {
                InstrPtr p = old_mb_stmt[i];
                if (p->modname == sqlRef && p->fcnname == importTableRef) {
-                       importTable_seen = true;
                        msg = transform(mb, p);
                } else {
                        pushInstruction(mb, p);
@@ -62,9 +58,6 @@ OPTbincopyfromImplementation(Client cntx
                        return msg;
        }
 
-       if (importTable_seen)
-               msg = OPTparappendImplementation(cntxt, mb, stk, pci);
-
 end:
        if (old_mb_stmt)
                GDKfree(old_mb_stmt);
diff --git a/monetdb5/optimizer/opt_append.c 
b/monetdb5/optimizer/opt_parappend.c
rename from monetdb5/optimizer/opt_append.c
rename to monetdb5/optimizer/opt_parappend.c
--- a/monetdb5/optimizer/opt_append.c
+++ b/monetdb5/optimizer/opt_parappend.c
@@ -12,7 +12,7 @@
  */
 #include "monetdb_config.h"
 #include "mal_builder.h"
-#include "opt_append.h"
+#include "opt_parappend.h"
 
 typedef struct parstate {
        InstrPtr prep_stmt;
diff --git a/monetdb5/optimizer/opt_append.h 
b/monetdb5/optimizer/opt_parappend.h
rename from monetdb5/optimizer/opt_append.h
rename to monetdb5/optimizer/opt_parappend.h
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
@@ -45,6 +45,7 @@ static struct PIPELINES {
         "optimizer.inline();"
         "optimizer.remap();"
         "optimizer.bincopyfrom();"
+        "optimizer.parappend();"
         "optimizer.deadcode();"
         "optimizer.multiplex();"
         "optimizer.generator();"
@@ -74,6 +75,7 @@ static struct PIPELINES {
         "optimizer.mitosis();"
         "optimizer.mergetable();"
         "optimizer.bincopyfrom();"
+        "optimizer.parappend();"
         "optimizer.deadcode();"
         "optimizer.aliases();"
         "optimizer.constants();"
@@ -111,6 +113,7 @@ static struct PIPELINES {
         "optimizer.mitosis();"
         "optimizer.mergetable();"
         "optimizer.bincopyfrom();"
+        "optimizer.parappend();"
         "optimizer.deadcode();"
         "optimizer.aliases();"
         "optimizer.constants();"
@@ -148,6 +151,7 @@ static struct PIPELINES {
         "optimizer.mitosis();"
         "optimizer.mergetable();"
         "optimizer.bincopyfrom();"
+        "optimizer.parappend();"
         "optimizer.deadcode();"
         "optimizer.aliases();"
         "optimizer.constants();"
@@ -191,6 +195,7 @@ static struct PIPELINES {
         "optimizer.aliases();"
         "optimizer.mergetable();"
         "optimizer.bincopyfrom();"
+        "optimizer.parappend();"
         "optimizer.deadcode();"
         "optimizer.aliases();"
         "optimizer.constants();"
@@ -233,6 +238,7 @@ static struct PIPELINES {
         "optimizer.aliases();"
         "optimizer.mergetable();"
         "optimizer.bincopyfrom();"
+        "optimizer.parappend();"
         "optimizer.deadcode();"
         "optimizer.aliases();"
         "optimizer.constants();"
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
@@ -21,6 +21,7 @@
  * The optimizer used so far
 */
 #include "opt_aliases.h"
+#include "opt_bincopyfrom.h"
 #include "opt_coercion.h"
 #include "opt_commonTerms.h"
 #include "opt_candidates.h"
@@ -40,9 +41,9 @@
 #include "opt_oltp.h"
 #include "opt_postfix.h"
 #include "opt_mergetable.h"
-#include "opt_bincopyfrom.h"
 #include "opt_mitosis.h"
 #include "opt_multiplex.h"
+#include "opt_parappend.h"
 #include "opt_profiler.h"
 #include "opt_pushselect.h"
 #include "opt_querylog.h"
@@ -61,6 +62,7 @@ struct{
        lng timing;
 } codes[] = {
        {"aliases", &OPTaliasesImplementation,0,0},
+       {"bincopyfrom", &OPTbincopyfromImplementation,0,0},
        {"candidates", &OPTcandidatesImplementation,0,0},
        {"coercions", &OPTcoercionImplementation,0,0},
        {"commonTerms", &OPTcommonTermsImplementation,0,0},
@@ -77,10 +79,10 @@ struct{
        {"json", &OPTjsonImplementation,0,0},
        {"matpack", &OPTmatpackImplementation,0,0},
        {"mergetable", &OPTmergetableImplementation,0,0},
-       {"bincopyfrom", &OPTbincopyfromImplementation,0,0},
        {"mitosis", &OPTmitosisImplementation,0,0},
        {"multiplex", &OPTmultiplexImplementation,0,0},
        {"oltp", &OPToltpImplementation,0,0},
+       {"parappend", &OPTparappendImplementation,0,0},
        {"postfix", &OPTpostfixImplementation,0,0},
        {"profiler", &OPTprofilerImplementation,0,0},
        {"projectionpath", &OPTprojectionpathImplementation,0,0},
diff --git a/monetdb5/optimizer/optimizer.c b/monetdb5/optimizer/optimizer.c
--- a/monetdb5/optimizer/optimizer.c
+++ b/monetdb5/optimizer/optimizer.c
@@ -89,6 +89,7 @@ QOToptimize(Client cntxt, MalBlkPtr mb, 
 #include "mel.h"
 static mel_func optimizer_init_funcs[] = {
  optwrapper_pattern("aliases", "Alias removal optimizer"),
+ optwrapper_pattern("bincopyfrom", "Parallellize column loading"),
  optwrapper_pattern("coercions", "Handle simple type coercions"),
  optwrapper_pattern("commonTerms", "Common sub-expression optimizer"),
  optwrapper_pattern("candidates", "Mark candidate list variables"),
@@ -114,11 +115,11 @@ static mel_func optimizer_init_funcs[] =
  pattern("optimizer", "orcam", OPTorcam, false, "Inverse macro processor for 
current function", args(1,3, 
arg("",void),arg("targetmod",str),arg("targetfcn",str))),
  pattern("optimizer", "orcam", OPTorcam, false, "Inverse macro, find pattern 
and replace with a function call.", args(1,5, 
arg("",void),arg("mod",str),arg("fcn",str),arg("targetmod",str),arg("targetfcn",str))),
  optwrapper_pattern("mergetable", "Resolve the multi-table definitions"),
- optwrapper_pattern("bincopyfrom", "Parallellize column loading"),
  optwrapper_pattern("mitosis", "Modify the plan to exploit parallel processing 
on multiple cores"),
  optwrapper_pattern("multiplex", "Compiler for multiplexed instructions"),
  optwrapper_pattern("matpack", "Unroll the mat.pack operation"),
  optwrapper_pattern("json", "Unroll the mat.pack operation"),
+ optwrapper_pattern("parappend", "Parallellize column loading"),
  optwrapper_pattern("reduce", "Reduce the stack space claims"),
  optwrapper_pattern("remap", "Remapping function calls to a their multiplex 
variant"),
  optwrapper_pattern("remoteQueries", "Resolve the multi-table definitions"),
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to