Update of /cvsroot/monetdb/pathfinder/compiler/include
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv21252/include
Modified Files:
algopt.h properties.h
Log Message:
-- Added a new optimization phase that is based on the required node
properties (introduced some days ago):
o The optimization phase unnests constant constructors if neither
their order nor their ids are needed. The following query
for $a in 1 to 1000 return <a>42</a>
is rewritten (on the algebraic level) into something comparable to
let $foo := <a>42</a> return for $a in 1 to 1000 return $foo
A constant tree is thus created only once.
o A further optimization removes the merge adjacent text nodes
operator in case the nodes are never queried. This leads to
results that consist of (potentially) more text nodes than
allowed. The serialization however will hide that fact.
U algopt.h
Index: algopt.h
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/include/algopt.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- algopt.h 25 Feb 2008 15:37:06 -0000 1.23
+++ algopt.h 4 Apr 2008 09:45:18 -0000 1.24
@@ -52,6 +52,7 @@
PFla_op_t * PFalgopt_join_pd (PFla_op_t *root);
PFla_op_t * PFalgopt_key (PFla_op_t *root);
PFla_op_t * PFalgopt_mvd (PFla_op_t *root, unsigned int noneffective_tries);
+PFla_op_t * PFalgopt_req_node (PFla_op_t *root);
PFla_op_t * PFalgopt_reqval (PFla_op_t *root);
PFla_op_t * PFalgopt_rank (PFla_op_t *root);
PFla_op_t * PFalgopt_set (PFla_op_t *root);
U properties.h
Index: properties.h
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/include/properties.h,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -d -r1.34 -r1.35
--- properties.h 1 Apr 2008 16:37:18 -0000 1.34
+++ properties.h 4 Apr 2008 09:45:18 -0000 1.35
@@ -482,6 +482,16 @@
bool PFprop_node_property (const PFprop_t *prop, PFalg_att_t attr);
/**
+ * @brief Test if the node ids of column @a attr are required.
+ */
+bool PFprop_node_id_required (const PFprop_t *prop, PFalg_att_t attr);
+
+/**
+ * @brief Test if the node order of column @a attr are required.
+ */
+bool PFprop_node_order_required (const PFprop_t *prop, PFalg_att_t attr);
+
+/**
* Test if the subtree of column @a attr is queried.
*/
bool PFprop_node_content_queried (const PFprop_t *prop, PFalg_att_t attr);
-------------------------------------------------------------------------
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