Update of /cvsroot/monetdb/pathfinder/compiler/algebra/opt
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv5111/compiler/algebra/opt

Modified Files:
      Tag: M5XQ
        opt_mvd.c 
Log Message:
propagated changes of Wednesday May 20 2009
from the development trunk to the M5XQ branch

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2009/05/20 - sjoerd: compiler/algebra/opt/opt_mvd.c,1.53
propagated changes of Wednesday May 20 2009
from the May2009 branch to the development trunk

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2009/05/20 - tsheyar: compiler/algebra/opt/opt_mvd.c,1.52.2.1
-- Make the error message for missing documents more informative:
   Include the document name in the error message.

-- Adjust new error messages in the testweb.

-- Adjust stable output (for tests with a modified inter-document order).

-- Fix/Extend a cross product rewrite (for unreferenced inputs).

-- Simplify the 'missing document' error message in the algebra
   for constant document names (which is the default).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


U opt_mvd.c
Index: opt_mvd.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/opt/opt_mvd.c,v
retrieving revision 1.50.2.2
retrieving revision 1.50.2.3
diff -u -d -r1.50.2.2 -r1.50.2.3
--- opt_mvd.c   13 May 2009 11:13:51 -0000      1.50.2.2
+++ opt_mvd.c   20 May 2009 16:28:33 -0000      1.50.2.3
@@ -141,29 +141,20 @@
             PFprop_card (p->prop) == 1)
             return dummy (R(p));
         else {
-            PFalg_proj_t *proj_list2;
-            proj_list2 = PFmalloc ((R(p)->schema.count - 1)
-                                   * sizeof (*(proj_list)));
-            count = 0;
-            /* split up the columns such that they do not conflict
-               anymore */
-            assert (R(p)->schema.count > 1);
-            /* throw out the first column of the left child
-               from the right child */
-            for (j = 0; j < R(p)->schema.count; j++)
-                if (L(p)->schema.items[0].name !=
-                    R(p)->schema.items[j].name) {
-                    proj_list2[count++] =
-                        proj (R(p)->schema.items[j].name,
-                              R(p)->schema.items[j].name);
-                }
-            /* keep only the first column of the left child */
-            proj_list[0] = proj (L(p)->schema.items[0].name,
-                                 L(p)->schema.items[0].name);
+            /* The left side does not add anything to the result
+               (except for the cardinality). */
 
-            /* apply project operator on both childs */
-            return cross (PFla_project_ (L(p), 1, proj_list),
-                          PFla_project_ (R(p), count, proj_list2));
+            /* new dummy column */
+            PFalg_col_t dummy = PFcol_new (col_iter);
+
+            return PFla_project_ (
+                       cross (
+                           project (
+                               attach (L(p), dummy, lit_nat (42)), 
+                               proj (dummy, dummy)),
+                           R(p)),
+                       p->schema.count,
+                       PFalg_proj_create (p->schema));
         }
     }
     else {


------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables 
unlimited royalty-free distribution of the report engine 
for externally facing server and web deployment. 
http://p.sf.net/sfu/businessobjects
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins

Reply via email to