Update of /cvsroot/monetdb/pathfinder/compiler/algebra
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv1490/compiler/algebra
Modified Files:
Tag: xquery-decomposition
core2alg.brg
Log Message:
propagated changes of Thursday Mar 27 2008 - Friday Mar 28 2008
from the development trunk to the xquery-decomposition branch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008/03/27 - tsheyar: compiler/algebra/prop/prop_key.c,1.44
-- Fixed wrong property inference (-- we cannot get a key out of nowhere).
-- Extended property inference for positional selections to compensate the
``restriction'' for the above fix.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008/03/27 - mr-meltdown:
NT/MonetDB4-XQuery/MonetDB4-XQuery-Installer.vdproj,1.12
NT/MonetDB4-XQuery64/MonetDB4-XQuery-Installer.vdproj,1.4
MCL jar release number has changed
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008/03/28 - tsheyar: compiler/mil/milgen.brg,1.123
-- Completed compile time changes to correctly cope with attribute
context nodes in {ancestor-or-|descendant-or-|}self steps.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008/03/28 - tsheyar:
tests/XQuery/Tests/step_ancestor-or-self_attr.stable.out,1.2
-- Correct stable output
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008/03/28 - sjoerd: compiler/algebra/core2alg.brg,1.69
propagated changes of Thursday Mar 27 2008 - Friday Mar 28 2008
from the XQuery_0-22 branch to the development trunk
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008/03/27 - tsheyar: compiler/algebra/core2alg.brg,1.61.2.2
-- Fixing bug triggered by proxy operator rewriting
(as e.g. in benchmarks/XBench/DC_MD/q04 observed).
An assumption for the proxy rewrite was not met. The problem is now
circumvented by generating algebra code that fulfills the assumption
(during Core to Logical Algebra translation).
Details: Moved rownum operator generating the numbers for the positional
for-loop variable outside the body. We thus avoid any reference
to an outer scope from an inner scope. We hopefully get rid of
(parts of) the proxy idea soon and thus do not have to rely any
more on the fragile assumptions ensured only by the code
generation.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008/03/28 - tsheyar: compiler/core/coreopt.brg,1.64
-- Made Core optimization for path steps less aggressive
(-- too much steps got pruned).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
U core2alg.brg
Index: core2alg.brg
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/core2alg.brg,v
retrieving revision 1.60.2.6
retrieving revision 1.60.2.7
diff -u -d -r1.60.2.6 -r1.60.2.7
--- core2alg.brg 21 Mar 2008 09:44:42 -0000 1.60.2.6
+++ core2alg.brg 28 Mar 2008 14:55:14 -0000 1.60.2.7
@@ -984,7 +984,19 @@
/* initiate translation of e1 */
reduce (ctx, kids[1], nts[1]);
- rowid = rowid (A(LR(p)).rel, att_inner);
+ /*
+ * Add 'real' positions and the new iter values.
+ * (Note: We add the positions outside as some proxy rewrites
+ * expect that no rownum can escape its 'scope'. The
+ * result of the rownum operator is discarded in the
+ * first icols optimization if no positional variable
+ * exists.)
+ */
+ rowid = rowid (rownum (A(LR(p)).rel,
+ att_pos1,
+ sortby (att_pos),
+ att_iter),
+ att_inner);
/* translate $v */
var = attach (project (rowid,
@@ -1009,19 +1021,18 @@
proj (att_inner, att_inner));
/*
- * handle optional variable ($p); we need map operator
- * for this purpose
- * note that the rownum () routine is used to create
- * the 'item' column of $p's operator; since this
- * column must be of type integer instead of nat, we
- * cast it accordingly
+ * Handle optional variable ($p).
+ * (Note: The rownum () routine was used to create
+ * the 'item' column of $p's operator. Since this
+ * column must be of type integer instead of nat, we
+ * cast it accordingly.)
*/
if (LLR(p)->kind == c_var) {
assert (LLR(p)->sem.var);
- opt_var = attach (project (cast (rownum (var_map, att_item,
- sortby (att_sort),
- att_outer),
- att_cast, att_item, aat_int),
+ opt_var = attach (project (cast (rowid,
+ att_cast,
+ att_pos1,
+ aat_int),
proj (att_iter, att_inner),
proj (att_item, att_cast)),
att_pos, lit_nat (1));
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins