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