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

Modified Files:
      Tag: XQuery_0-24
        prop_icol.c prop_rec_delta.c 
Log Message:
-- Changed the implementation of the icols property inference
   to correctly work on unique column names.

   (This change is necessary for my next checkin
    -- the join push down optimizer.)


U prop_icol.c
Index: prop_icol.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_icol.c,v
retrieving revision 1.37
retrieving revision 1.37.2.1
diff -u -d -r1.37 -r1.37.2.1
--- prop_icol.c 3 Apr 2008 11:03:31 -0000       1.37
+++ prop_icol.c 28 May 2008 11:34:41 -0000      1.37.2.1
@@ -47,12 +47,28 @@
 #define EDGE(n)       (n)->refctr
 
 /**
+ * worker for PFprop_icol;
+ * Test if @a attr is in the list of icol columns in array @a icols
+ */
+static bool
+icol_worker (PFarray_t *icols, PFalg_att_t attr)
+{
+    if (!icols) return false;
[...1016 lines suppressed...]
 
     /* second run infers icols property */
-    prop_infer_icols (root, icols);
+    prop_infer_icols (root, icol_list);
 }
 
 /**
@@ -856,7 +958,11 @@
  */
 void
 PFprop_infer_icol (PFla_op_t *root) {
-    PFprop_infer_icol_specific (root, 0);
+    /* collect number of incoming edges (parents) */
+    prop_infer (root);
+    PFla_dag_reset (root);
+
+    prop_infer_icols (root, NULL);
 }
 
 /* vim:set shiftwidth=4 expandtab: */

U prop_rec_delta.c
Index: prop_rec_delta.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_rec_delta.c,v
retrieving revision 1.23
retrieving revision 1.23.2.1
diff -u -d -r1.23 -r1.23.2.1
--- prop_rec_delta.c    3 Apr 2008 11:03:35 -0000       1.23
+++ prop_rec_delta.c    28 May 2008 11:34:43 -0000      1.23.2.1
@@ -43,8 +43,8 @@
 /* Easily access subtree-parts */
 #include "child_mnemonic.h"
 
-#define ITER(n) ((n)->prop->icols)
-#define POS(n) ((n)->prop->r_icols)
+#define ITER(n) ((n)->prop->left_cols)
+#define POS(n) ((n)->prop->right_cols)
 #define IN(n) ((n)->prop->set)
 
 #define REFS(n) ((n)->refctr)


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins

Reply via email to