Changeset: dda0c199dfb3 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=dda0c199dfb3
Modified Files:
monetdb5/optimizer/Makefile.ag
monetdb5/optimizer/opt_pipes.c
monetdb5/optimizer/opt_support.c
monetdb5/optimizer/opt_support.h
monetdb5/optimizer/opt_wrapper.c
monetdb5/optimizer/optimizer.mal
Branch: geo
Log Message:
geom optimizer: adding one extra line to the plan when instruction is related
to geom module
diffs (91 lines):
diff --git a/monetdb5/optimizer/Makefile.ag b/monetdb5/optimizer/Makefile.ag
--- a/monetdb5/optimizer/Makefile.ag
+++ b/monetdb5/optimizer/Makefile.ag
@@ -69,6 +69,7 @@ lib_optimizer = {
opt_support.c opt_support.h \
opt_centipede.c opt_centipede.h \
opt_pushselect.c opt_pushselect.h \
+ opt_geospatial.c opt_geospatial.h \
opt_wrapper.c
}
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
@@ -251,6 +251,18 @@ static struct PIPELINES {
"optimizer.garbageCollector();",
"experimental", NULL, NULL, 1},
#endif
+
+ /*geom pipe*/
+ {"geom_pipe",
+ "optimizer.inline();"
+ "optimizer.remap();"
+ "optimizer.deadcode();"
+ "optimizer.multiplex();"
+ "optimizer.generator();"
+ "optimizer.geospatial();"
+ "optimizer.garbageCollector();",
+ "experimental", NULL, NULL, 1},
+
/* sentinel */
{NULL, NULL, NULL, NULL, NULL, 0}
};
diff --git a/monetdb5/optimizer/opt_support.c b/monetdb5/optimizer/opt_support.c
--- a/monetdb5/optimizer/opt_support.c
+++ b/monetdb5/optimizer/opt_support.c
@@ -185,6 +185,7 @@ struct OPTcatalog {
{"strengthreduction", 0, 0, 0, DEBUG_OPT_STRENGTHREDUCTION},
{"centipede", 0, 0, 0, DEBUG_OPT_CENTIPEDE},
{"pushselect", 0, 0, 0, DEBUG_OPT_PUSHSELECT},
+{"geospatial", 0, 0, 0, DEBUG_OPT_GEOSPATIAL},
{ 0, 0, 0, 0, 0}
};
diff --git a/monetdb5/optimizer/opt_support.h b/monetdb5/optimizer/opt_support.h
--- a/monetdb5/optimizer/opt_support.h
+++ b/monetdb5/optimizer/opt_support.h
@@ -92,6 +92,7 @@
#define DEBUG_OPT_CENTIPEDE 50
#define DEBUG_OPT_PUSHSELECT 51
#define DEBUG_OPT_JSON 54
+#define DEBUG_OPT_GEOSPATIAL 55
#define DEBUG_OPT(X) ((lng) 1 << (X))
opt_export lng optDebug;
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
@@ -73,6 +73,8 @@
#include "opt_reorder.h"
#include "opt_statistics.h"
#include "opt_strengthReduction.h"
+#include "opt_geospatial.h"
+
struct{
str nme;
@@ -113,6 +115,7 @@ struct{
{"remoteQueries", &OPTremoteQueriesImplementation},
{"reorder", &OPTreorderImplementation},
{"strengthReduction", &OPTstrengthReductionImplementation},
+ {"geospatial", &OPTgeospatialImplementation},
{0,0}
};
opt_export str OPTwrapper(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
p);
diff --git a/monetdb5/optimizer/optimizer.mal b/monetdb5/optimizer/optimizer.mal
--- a/monetdb5/optimizer/optimizer.mal
+++ b/monetdb5/optimizer/optimizer.mal
@@ -457,4 +457,12 @@ pattern optimizer.pushselect(mod:str, fc
address OPTwrapper
comment "Push selects down projections";
+#opt_geospatial.mal
+
+pattern optimizer.geospatial():str
+address OPTwrapper;
+pattern optimizer.geospatial(mod:str, frcn:str):str
+address OPTwrapper
+comment "filter results before calling geo functions";
+
optimizer.prelude();
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list