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

Modified Files:
      Tag: PF_ROX
        prop_card.c prop_dom.c prop_dom_nat.c prop_icol.c 
Log Message:
propagated changes of Thursday Jun 05 2008 - Friday Jun 06 2008
from the development trunk to the PF_ROX branch



U prop_icol.c
Index: prop_icol.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_icol.c,v
retrieving revision 1.30.4.5
retrieving revision 1.30.4.6
diff -u -d -r1.30.4.5 -r1.30.4.6
--- prop_icol.c 30 May 2008 12:41:01 -0000      1.30.4.5
+++ prop_icol.c 6 Jun 2008 14:25:37 -0000       1.30.4.6
@@ -649,6 +649,12 @@
             } else if (first_twig_child) {
                 first_twig_child = false;
                 union_ (n->prop->icols, n->sem.iter_item.iter);
+
+                /* special textnode treating as we do not prune
+                   a single (stand-alone) textnode constructor */
+                if (n->kind == la_textnode)
+                    union_ (n->prop->icols, n->sem.iter_item.item);
+
                 prop_infer_icols (L(n), n->prop->icols);
             } else {
                 prop_infer_icols (L(n), NULL);
@@ -839,19 +845,19 @@
             PFarray_t  *lproj = n->sem.eqjoin_unq.lproj,
                        *rproj = n->sem.eqjoin_unq.rproj;
 
+            /* add both join columns to the inferred icols */
+            union_ (n->prop->l_icols, proj_at(lproj, 0).old);
+            union_ (n->prop->r_icols, proj_at(rproj, 0).old);
+
             /* rename icols columns from new to old */
-            for (unsigned int i = 0; i < PFarray_last (lproj); i++)
+            for (unsigned int i = 1; i < PFarray_last (lproj); i++)
                 if (in (n->prop->icols, proj_at(lproj, i).new))
                     union_ (n->prop->l_icols, proj_at(lproj, i).old);
 
             /* rename icols columns from new to old */
-            for (unsigned int i = 0; i < PFarray_last (rproj); i++)
+            for (unsigned int i = 1; i < PFarray_last (rproj); i++)
                 if (in (n->prop->icols, proj_at(rproj, i).new))
                     union_ (n->prop->r_icols, proj_at(rproj, i).old);
-
-            /* add both join columns to the inferred icols */
-            union_ (n->prop->l_icols, proj_at(lproj, 0).old);
-            union_ (n->prop->r_icols, proj_at(rproj, 0).old);
         }   break;
 
         case la_cross_mvd:

U prop_dom.c
Index: prop_dom.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_dom.c,v
retrieving revision 1.47.4.5
retrieving revision 1.47.4.6
diff -u -d -r1.47.4.5 -r1.47.4.6
--- prop_dom.c  30 May 2008 12:40:47 -0000      1.47.4.5
+++ prop_dom.c  6 Jun 2008 14:25:37 -0000       1.47.4.6
@@ -773,10 +773,10 @@
                         if (dom1 == dom2)
                             union_dom = dom1;
                         else if (PFprop_subdom (n->prop, dom1, dom2) ||
-                                 dom2 == EMPTYDOM)
+                                 dom1 == EMPTYDOM)
                             union_dom = dom2;
                         else if (PFprop_subdom (n->prop, dom2, dom1) ||
-                                 dom1 == EMPTYDOM)
+                                 dom2 == EMPTYDOM)
                             union_dom = dom1;
                         else {
                             union_dom = id++;

U prop_card.c
Index: prop_card.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_card.c,v
retrieving revision 1.31.4.3
retrieving revision 1.31.4.4
diff -u -d -r1.31.4.3 -r1.31.4.4
--- prop_card.c 17 Apr 2008 14:31:16 -0000      1.31.4.3
+++ prop_card.c 6 Jun 2008 14:25:36 -0000       1.31.4.4
@@ -90,7 +90,6 @@
         case la_docnode:
         case la_element:
         case la_attribute:
-        case la_textnode:
         case la_comment:
         case la_processi:
         case la_roots:
@@ -132,6 +131,7 @@
         case la_step_join:
         case la_doc_index_join:
         case la_fcns:
+        case la_textnode:
         case la_merge_adjacent:
         case la_fragment:
         case la_frag_extract:

U prop_dom_nat.c
Index: prop_dom_nat.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_dom_nat.c,v
retrieving revision 1.15.4.5
retrieving revision 1.15.4.6
diff -u -d -r1.15.4.5 -r1.15.4.6
--- prop_dom_nat.c      30 May 2008 12:40:57 -0000      1.15.4.5
+++ prop_dom_nat.c      6 Jun 2008 14:25:37 -0000       1.15.4.6
@@ -532,10 +532,10 @@
                             if (dom1 == dom2)
                                 union_dom = dom1;
                             else if (PFprop_subdom (n->prop, dom1, dom2) ||
-                                     dom2 == EMPTYDOM)
+                                     dom1 == EMPTYDOM)
                                 union_dom = dom2;
                             else if (PFprop_subdom (n->prop, dom2, dom1) ||
-                                     dom1 == EMPTYDOM)
+                                     dom2 == EMPTYDOM)
                                 union_dom = dom1;
                             else {
                                 union_dom = id++;


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins

Reply via email to