Update of /cvsroot/monetdb/pathfinder/compiler/algebra/prop
In directory 
sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv19553/compiler/algebra/prop

Modified Files:
      Tag: XQFT
        prop_icol.c 
Log Message:
propagated changes of Wednesday Mar 17 2010 - Thursday Mar 18 2010
from the development trunk to the XQFT branch

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2010/03/17 - tsheyar: compiler/algebra/prop/prop_icol.c,1.52
  -- Introduced a new column-name-origin property that enhances the column names
     in the DOT generated algebra plans. If a column stems from a ref_tbl or a
     path step we now keep the original name throughout the plan.
     (Use pf-option -fN to print the mapping of original names.)
  
  -- Make property usage a little bit more defensive. Instead of !PFprop_icol
     a new function PFprop_not_icol is introduced that copes correctly with
     missing property information.
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Index: prop_icol.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_icol.c,v
retrieving revision 1.50.2.1
retrieving revision 1.50.2.2
diff -u -d -r1.50.2.1 -r1.50.2.2
--- prop_icol.c 7 Jan 2010 15:53:29 -0000       1.50.2.1
+++ prop_icol.c 18 Mar 2010 11:29:09 -0000      1.50.2.2
@@ -58,9 +58,9 @@
  * Test if @a col is in the list of icol columns in array @a icols
  */
 static bool
-icol_worker (PFalg_collist_t *icols, PFalg_col_t col)
+icol_worker (PFalg_collist_t *icols, PFalg_col_t col, bool exist)
 {
-    if (!icols) return false;
+    if (!icols) return !exist;
 
     for (unsigned int i = 0; i < clsize (icols); i++)
         if (col == clat (icols, i))
@@ -75,7 +75,16 @@
 bool
 PFprop_icol (const PFprop_t *prop, PFalg_col_t col)
 {
-    return icol_worker (prop->icols, col);
+    return icol_worker (prop->icols, col, true);
+}
+
+/**
+ * Test if @a col is *not* in the list of icol columns in container @a prop
+ */
+bool
+PFprop_not_icol (const PFprop_t *prop, PFalg_col_t col)
+{
+    return !icol_worker (prop->icols, col, false);
 }
 
 /**
@@ -85,7 +94,7 @@
 bool
 PFprop_icol_left (const PFprop_t *prop, PFalg_col_t col)
 {
-    return icol_worker (prop->l_icols, col);
+    return icol_worker (prop->l_icols, col, true);
 }
 
 /**
@@ -95,7 +104,7 @@
 bool
 PFprop_icol_right (const PFprop_t *prop, PFalg_col_t col)
 {
-    return icol_worker (prop->r_icols, col);
+    return icol_worker (prop->r_icols, col, true);
 }
 
 /*
@@ -149,7 +158,7 @@
 {
     assert (a);
 
-    if (!icol_worker (a, b))
+    if (!icol_worker (a, b, false))
         cladd (a) = b;
 }
 
@@ -167,7 +176,7 @@
 
     for (unsigned int i = 0; i < clsize (b); i++) {
         cur = clat (b, i);
-        if (!icol_worker (a, cur))
+        if (!icol_worker (a, cur, false))
             cladd (a) = cur;
     }
 }
@@ -196,7 +205,7 @@
 static bool
 in (PFalg_collist_t *a, PFalg_col_t b)
 {
-    return (icol_worker (a, b));
+    return (icol_worker (a, b, true));
 }
 
 /**


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins

Reply via email to