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

Modified Files:
        properties.h 
Log Message:
-- Extended the required value property
   to also infer for which columns
   (1) we need the real values,
   (2) the same value distribution only, or
   (3) whether columns can be split into two columns.

-- Added optimization rules that get rid of rownum operators
   (in opt_complex.c) and rowrank operators (in opt_reqval.c)
   if they only have to produce the correct value distribution.

-- Fixed dot printing for the ref_tbl operator in logdebug.c.

-- Aligned the property printing in the physical algebra
   (physdebug.c) with the one in the logical algebra.



Index: properties.h
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/include/properties.h,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- properties.h        11 Jan 2008 10:47:07 -0000      1.31
+++ properties.h        11 Jan 2008 12:49:10 -0000      1.32
@@ -45,11 +45,11 @@
 #include "logical.h"
 
 /* required values list */
-struct reqval_t {
+struct req_bool_val_t {
     PFalg_att_t  name;
     PFalg_att_t  val;
 };
-typedef struct reqval_t reqval_t;
+typedef struct req_bool_val_t req_bool_val_t;
 
 struct PFprop_t {
     unsigned int card;       /**< Exact number of tuples in intermediate
@@ -68,8 +68,14 @@
                                   parent operators. */
     PFarray_t   *keys;       /**< List of attributes that have
                                   unique values. */
-    reqval_t     reqvals;    /**< List of attributes with their corresponding
-                                  required values. */
+    req_bool_val_t req_bool_vals; /**< List of attributes with their
+                                       corresponding required values. */
+    PFalg_att_t  req_distr_cols;  /**< List of columns whose values only
+                                       have to have the same distribution. */
+    PFalg_att_t  req_multi_col_cols; /**< List of columns that can be
+                                       split up into multiple columns. */
+    PFalg_att_t  req_value_cols;  /**< List of columns whose values are
+                                       important for the query evaluation. */
     PFarray_t   *name_pairs; /**< List of attributes with their corresponding
                                   unique names. */
     PFarray_t   *level_mapping; /**< List of attributes annotated with
@@ -431,13 +437,31 @@
  * Test if @a attr is in the list of required value columns
  * in container @a prop
  */
-bool PFprop_reqval (const PFprop_t *prop, PFalg_att_t attr);
+bool PFprop_req_bool_val (const PFprop_t *prop, PFalg_att_t attr);
 
 /**
  * Looking up required value of column @a attr
  * in container @a prop
  */
-bool PFprop_reqval_val (const PFprop_t *prop, PFalg_att_t attr);
+bool PFprop_req_bool_val_val (const PFprop_t *prop, PFalg_att_t attr);
+
+/**
+ * Test if @a attr is in the list of distribution columns
+ * in container @a prop
+ */
+bool PFprop_req_distr_col (const PFprop_t *prop, PFalg_att_t attr);
+
+/**
+ * Test if @a attr is in the list of multi-col columns
+ * in container @a prop
+ */
+bool PFprop_req_multi_col_col (const PFprop_t *prop, PFalg_att_t attr);
+
+/**
+ * Test if @a attr is in the list of value columns
+ * in container @a prop
+ */
+bool PFprop_req_value_col (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