Update of /cvsroot/monetdb/pathfinder/compiler/mil
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv29815/compiler/mil
Modified Files:
Tag: xquery-decomposition
milgen.brg
Log Message:
propagated changes of Saturday Feb 16 2008 - Monday Feb 18 2008
from the development trunk to the xquery-decomposition branch
Index: milgen.brg
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milgen.brg,v
retrieving revision 1.96.2.5
retrieving revision 1.96.2.6
diff -u -d -r1.96.2.5 -r1.96.2.6
--- milgen.brg 18 Feb 2008 16:21:34 -0000 1.96.2.5
+++ milgen.brg 19 Feb 2008 10:39:41 -0000 1.96.2.6
@@ -3739,20 +3739,33 @@
"multi-predicate joins are not supported yet");
}
- /* evaluate the join and create two map relations */
- execute (
- assgn (var (v->name),
- leftjoin (var (l->name), reverse (var (r->name)))),
- assgn (var (v1->name),
- reverse (mark (var (v->name), lit_oid (0)))),
- assgn (var (v2->name),
- reverse (
- mark (reverse (var (v->name)), lit_oid (0)))));
+ if (p->kind == pa_semijoin) {
+ /* evaluate the semijoin and create the map relation */
+ execute (
+ assgn (var (v->name),
+ kintersect (reverse (var (l->name)),
+ reverse (var (r->name)))),
+ assgn (var (v1->name),
+ tmark (var (v->name), lit_oid (0))));
- /* map all columns from the left and the right argument */
- env_map (p, L(p)->env, v1);
- if (p->kind != pa_semijoin)
+ /* map all columns from the left argument */
+ env_map (p, L(p)->env, v1);
+ }
+ else {
+ /* evaluate the join and create two map relations */
+ execute (
+ assgn (var (v->name),
+ leftjoin (var (l->name), reverse (var (r->name)))),
+ assgn (var (v1->name),
+ reverse (mark (var (v->name), lit_oid (0)))),
+ assgn (var (v2->name),
+ reverse (
+ mark (reverse (var (v->name)), lit_oid (0)))));
+
+ /* map all columns from the left and the right argument */
+ env_map (p, L(p)->env, v1);
env_map (p, R(p)->env, v2);
+ }
unpin (v, 1);
unpin (v1, 1);
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins