Update of /cvsroot/monetdb/pathfinder/compiler/include
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv13092/include

Modified Files:
        properties.h 
Log Message:
-- Added node based properties that check (top-down) if ...

    ... the node may be used (indirectly) for serialization

    ... the node id may be used

    ... the node order may be used

    ... the node values may be accessed

    ... a downward axis is applied lateron
        (child, descendant, descendant-or-self)

    ... a side-way axis is applied lateron
        (following, following-sibling, preceding, preceding-sibling)

    ... an upward axis is applied lateron
        (parent, ancestor, ancestor-or-self)

    ... a self axis is applied lateron
        (self, ancestor-or-self, descendant-or-self)

    ... the node may be used as input to node construction

-- Exploited the node base property that checks for the downward axis
   property:
  
   For every content constructor whose input is not queried we can
   use the physical shallow content constructor that makes use of
   references instead of creating a subtree copy.

   (This sped up the execution time of XMark Q10 (scale factor 1)
    by 60% and the execution time of XMark Q15 by 150%.)


U properties.h
Index: properties.h
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/include/properties.h,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- properties.h        14 Jan 2008 14:03:29 -0000      1.33
+++ properties.h        1 Apr 2008 16:37:18 -0000       1.34
@@ -78,6 +78,8 @@
                                        split up into multiple columns. */
     PFalg_att_t  req_value_cols;  /**< List of columns whose values are
                                        important for the query evaluation. */
+    PFarray_t   *req_node_vals;   /**< List of columns and their associated
+                                       node usage information. */
     PFarray_t   *name_pairs; /**< List of attributes with their corresponding
                                   unique names. */
     PFarray_t   *level_mapping; /**< List of attributes annotated with
@@ -171,9 +173,9 @@
  */
 void PFprop_infer (bool card, bool const_, bool set, 
                    bool dom, bool icols, bool ckey,
-                   bool key, bool ocols, bool reqval, 
-                   bool level, bool refctr, bool guides,
-                   bool ori_names, bool unq_names,
+                   bool key, bool ocols, bool req_node,
+                   bool reqval, bool level, bool refctr,
+                   bool guides, bool ori_names, bool unq_names,
                    PFla_op_t *root, PFguide_tree_t *guide);
 
 /**
@@ -200,6 +202,7 @@
 void PFprop_infer_icol (PFla_op_t *root);
 void PFprop_infer_key (PFla_op_t *root);
 void PFprop_infer_ocol (PFla_op_t *root);
+void PFprop_infer_req_node (PFla_op_t *root);
 void PFprop_infer_reqval (PFla_op_t *root);
 void PFprop_infer_unq_names (PFla_op_t *root);
 void PFprop_infer_ori_names (PFla_op_t *root);
@@ -471,6 +474,23 @@
  */
 bool PFprop_req_value_col (const PFprop_t *prop, PFalg_att_t attr);
 
+/* -------------------- required node property accessors ------------------- */
+
+/**
+ * @brief Test if column @a attr is linked to any node properties.
+ */
+bool PFprop_node_property (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);
+
+/**
+ * Test if the nodes of column @a attr are serialized.
+ */
+bool PFprop_node_serialize (const PFprop_t *prop, PFalg_att_t attr);
+
 /* --------------------- unique names property accessors ------------------- */
 
 /**


-------------------------------------------------------------------------
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