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

Modified Files:
        core2alg.brg 
Log Message:
-- Make sure that we remove duplicates from the seed of the recursion.
   (Otherwise the semantic is inconsistent.)


Index: core2alg.brg
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/core2alg.brg,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- core2alg.brg        2 Feb 2007 17:54:22 -0000       1.49
+++ core2alg.brg        13 Feb 2007 16:45:17 -0000      1.50
@@ -2144,6 +2144,7 @@
             PFalg_schema_t schema, res_schema;
             PFla_op_t     *base_x, *base_res;
             PFla_op_t     *res_seed, *res_body, *delta, *res;
+            PFla_op_t     *seed;
             PFla_op_t     *new_map;    
             PFla_op_t     *old_loop, *base_loop, *updated_loop;
             PFla_op_t     *res_rec_param, *loop_rec_param, *x_rec_param, *body;
@@ -2171,6 +2172,13 @@
                             "Input schema contains other "
                             "columns than iter, pos, item");
             }
+            
+            seed = distinct (
+                       project (A(RL(p)).rel,
+                                proj (att_iter, 
+                                      att_iter),
+                                proj (att_item,
+                                      att_item)));
 
             /* create a new base for variable $x */
             base_x = rec_base (schema);
@@ -2286,11 +2294,7 @@
                     
             /* ------------------ RESULT ------------------ */
 #if RESULT == STAR
-            res_seed = project (A(RL(p)).rel,
-                                proj (att_iter, 
-                                      att_iter),
-                                proj (att_item,
-                                      att_item));
+            res_seed = seed;
 #else /* PLUS */
             /* create a new result seed */
             res_seed = PFla_empty_tbl_ (res_schema);
@@ -2335,7 +2339,11 @@
             if (x_used)
                 x_rec_param = rec_param (
                                   rec_arg (
-                                      A(RL(p)).rel,
+                                      rownum (
+                                          seed,
+                                          att_pos,
+                                          sortby (att_item),
+                                          att_iter),
                                       rownum (
                                           body,
                                           att_pos,


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins

Reply via email to