Update of /cvsroot/monetdb/pathfinder/compiler/algebra/opt
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv17436/algebra/opt
Modified Files:
Tag: XQuery_0-24
opt_thetajoin.c
Log Message:
-- Bugfix: some name conflicts where not resolved properly in the thetajoin
optimization phase. (This fixes queries
tests/W3C_use_cases/XQ/SEQ/Q5b
and tests/W3C_use_cases/XQ/SEQ/Q5d.)
U opt_thetajoin.c
Index: opt_thetajoin.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/opt/opt_thetajoin.c,v
retrieving revision 1.23
retrieving revision 1.23.2.1
diff -u -d -r1.23 -r1.23.2.1
--- opt_thetajoin.c 3 Apr 2008 15:23:06 -0000 1.23
+++ opt_thetajoin.c 31 May 2008 19:53:28 -0000 1.23.2.1
@@ -519,10 +519,11 @@
bool switch_right = PFprop_ocol (LR(p), p->sem.binary.att1) &&
PFprop_ocol (LR(p), p->sem.binary.att2);
+ resolve_name_conflict (L(p), p->sem.binary.res);
+
/* Pushing down the operator twice is only allowed
if it doesn't affect the cardinality. */
if (switch_left && switch_right) {
- resolve_name_conflict (L(p), p->sem.binary.res);
*p = *(thetajoin_opt (
op (LL(p),
p->sem.binary.res,
@@ -536,7 +537,6 @@
modified = true;
}
else if (switch_left) {
- resolve_name_conflict (L(p), p->sem.binary.res);
*p = *(thetajoin_opt (
op (LL(p),
p->sem.binary.res,
@@ -547,7 +547,6 @@
modified = true;
}
else if (switch_right) {
- resolve_name_conflict (L(p), p->sem.binary.res);
*p = *(thetajoin_opt (
LL(p),
op (LR(p),
-------------------------------------------------------------------------
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