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

Modified Files:
        properties.c 
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.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/properties.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- properties.c        11 Jan 2008 10:46:57 -0000      1.32
+++ properties.c        11 Jan 2008 12:49:09 -0000      1.33
@@ -46,6 +46,7 @@
 #include "mem.h"
 
 #define SEEN(p) ((p)->bit_dag)
+#define empty_list 0
 
 /**
  * Create new property container.
@@ -68,9 +69,9 @@
     ret->set      = false;
 
     /* initialize icols attribute list */
-    ret->icols   = 0;
-    ret->l_icols = 0;
-    ret->r_icols = 0;
+    ret->icols   = empty_list;
+    ret->l_icols = empty_list;
+    ret->r_icols = empty_list;
 
     /* initialize key attribute list */
     ret->keys   = NULL;
@@ -80,9 +81,12 @@
     /* initialize cardinality */
     ret->card = 0;
 
-    /* initialize key attribute list */
-    ret->reqvals.name = 0;
-    ret->reqvals.val  = 0;
+    /* initialize required value lists */
+    ret->req_bool_vals.name = empty_list;
+    ret->req_bool_vals.val  = empty_list;
+    ret->req_distr_cols     = empty_list;
+    ret->req_multi_col_cols = empty_list;
+    ret->req_value_cols     = empty_list;
 
     /* initialize domain information */
     ret->domains   = NULL;
@@ -140,6 +144,8 @@
         PFprop_infer_guide (root, guide);
     if (const_)
         PFprop_infer_const (root);
+    if (reqval)
+        PFprop_infer_reqval (root);
     if (dom)
         PFprop_infer_dom (root);
     if (set)
@@ -148,8 +154,6 @@
         PFprop_infer_icol (root);
     if (ocols)
         PFprop_infer_ocol (root);
-    if (reqval)
-        PFprop_infer_reqval (root);
     if (ori_names)
         PFprop_infer_ori_names (root);
     if (refctr)


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