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