Changeset: 83fa6e2eb7f8 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=83fa6e2eb7f8
Modified Files:
MonetDB5/src/optimizer/opt_prelude.mx
MonetDB5/src/optimizer/opt_support.mx
Branch: Jun2010
Log Message:
Fix bug 2597.
The function isMapOp is supposed to be conservative, but it wasn't conservative
enough.
Don't treat batcalc.mark_grp and batcalc.rank_grp as map operators.
diffs (68 lines):
diff -r 34f88b5c330b -r 83fa6e2eb7f8 MonetDB5/src/optimizer/opt_prelude.mx
--- a/MonetDB5/src/optimizer/opt_prelude.mx Mon Jul 12 15:20:38 2010 +0200
+++ b/MonetDB5/src/optimizer/opt_prelude.mx Mon Jul 12 17:12:56 2010 +0200
@@ -111,6 +111,7 @@
opt_export str mapiRef;
opt_export str markHRef;
opt_export str markTRef;
+opt_export str mark_grpRef;
opt_export str materializeRef;
opt_export str matRef;
opt_export str max_no_nilRef;
@@ -142,6 +143,7 @@
opt_export str projectRef;
opt_export str putRef;
opt_export str queryRef;
+opt_export str rank_grpRef;
opt_export str reconnectRef;
opt_export str recycleRef;
opt_export str refineRef;
@@ -305,6 +307,7 @@
str mapiRef;
str markHRef;
str markTRef;
+str mark_grpRef;
str materializeRef;
str matRef;
str max_no_nilRef;
@@ -336,6 +339,7 @@
str projectRef;
str putRef;
str queryRef;
+str rank_grpRef;
str reconnectRef;
str recycleRef;
str refineRef;
@@ -495,6 +499,7 @@
mapiRef = putName("mapi", 4);
markHRef = putName("markH", 5);
markTRef = putName("markT", 5);
+ mark_grpRef = putName("mark_grp", 8);
materializeRef = putName("materialize", 11);
matRef = putName("mat", 3);
max_no_nilRef = putName("max_no_nil", 10);
@@ -526,6 +531,7 @@
projectRef = putName("project",7);
putRef = putName("put",3);
queryRef = putName("query",5);
+ rank_grpRef = putName("rank_grp", 8);
reconnectRef = putName("reconnect",9);
recycleRef = putName("recycle",7);
refineRef = putName("refine",6);
diff -r 34f88b5c330b -r 83fa6e2eb7f8 MonetDB5/src/optimizer/opt_support.mx
--- a/MonetDB5/src/optimizer/opt_support.mx Mon Jul 12 15:20:38 2010 +0200
+++ b/MonetDB5/src/optimizer/opt_support.mx Mon Jul 12 17:12:56 2010 +0200
@@ -1240,11 +1240,11 @@
}
@-
-Used in the merge table optimizer. It is build incrementally
+Used in the merge table optimizer. It is built incrementally
and should be conservative.
@c
int isMapOp(InstrPtr p){
- return (getModuleId(p)== batcalcRef) ||
+ return (getModuleId(p)== batcalcRef && getFunctionId(p) != mark_grpRef
&& getFunctionId(p) != rank_grpRef) ||
(getModuleId(p)== batmtimeRef) ||
(getModuleId(p)== batstrRef) ||
(getModuleId(p)== mkeyRef);
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list