Update of /cvsroot/monetdb/pathfinder/compiler/algebra/prop
In directory
sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv1490/compiler/algebra/prop
Modified Files:
Tag: xquery-decomposition
prop_key.c
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 prop_key.c
Index: prop_key.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_key.c,v
retrieving revision 1.37.2.5
retrieving revision 1.37.2.6
diff -u -d -r1.37.2.5 -r1.37.2.6
--- prop_key.c 27 Mar 2008 09:32:39 -0000 1.37.2.5
+++ prop_key.c 28 Mar 2008 14:55:15 -0000 1.37.2.6
@@ -413,7 +413,6 @@
break;
case la_select:
- case la_pos_select:
case la_difference:
case la_type_assert:
case la_roots:
@@ -422,6 +421,16 @@
/* key columns are propagated */
copy (n->prop->keys, L(n)->prop->keys);
break;
+
+ case la_pos_select:
+ /* key columns are propagated */
+ copy (n->prop->keys, L(n)->prop->keys);
+
+ /* propagate the partition column as there can
+ be only one matching position for every partition */
+ if (n->sem.pos_sel.part)
+ union_ (n->prop->keys, n->sem.pos_sel.part);
+ break;
case la_intersect:
copy (n->prop->keys, L(n)->prop->keys);
@@ -537,7 +546,10 @@
break;
case la_guide_step:
- if ((n->sem.step.spec.axis == alg_chld ||
+ /* copy the iter key if it exists and the cardinality
+ does not change */
+ if (PFprop_key (R(n)->prop, n->sem.step.iter) &&
+ (n->sem.step.spec.axis == alg_chld ||
n->sem.step.spec.axis == alg_attr ||
n->sem.step.spec.axis == alg_self) &&
find_guide_max (n->sem.step.guide_count,
@@ -562,6 +574,7 @@
break;
case la_guide_step_join:
+ /* copy existing keys if the cardinality does not change */
if ((n->sem.step.spec.axis == alg_chld ||
n->sem.step.spec.axis == alg_attr ||
n->sem.step.spec.axis == alg_self) &&
-------------------------------------------------------------------------
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