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

Reply via email to