Changeset: dafc6b6340fd for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=dafc6b6340fd
Modified Files:
        pathfinder/compiler/algebra/opt/opt_reqval.c
Branch: default
Log Message:

Extended rowrank rewrite

A rowrank is now pruned if it has exactly one order criterion
and is only used in a mapping join or an aggregate.


diffs (17 lines):

diff -r 4d0af73df097 -r dafc6b6340fd 
pathfinder/compiler/algebra/opt/opt_reqval.c
--- a/pathfinder/compiler/algebra/opt/opt_reqval.c      Sun Jul 11 13:34:54 
2010 +0200
+++ b/pathfinder/compiler/algebra/opt/opt_reqval.c      Tue Jul 13 17:05:09 
2010 +0200
@@ -123,10 +123,11 @@
         PFprop_req_rank_col (p->prop, p->sem.sort.res))
         *p = *rank (L(p), p->sem.sort.res, p->sem.sort.sortby);
     else if (p->kind == la_rowrank &&
-             PFprop_req_multi_col_col (p->prop, p->sem.sort.res) &&
+             (PFprop_req_bijective_col (p->prop, p->sem.sort.res) ||
+              (PFprop_req_multi_col_col (p->prop, p->sem.sort.res) &&
              /* single ascending order criterion */
+               PFord_order_dir_at (p->sem.sort.sortby, 0) == DIR_ASC)) &&
              PFord_count (p->sem.sort.sortby) == 1 &&
-             PFord_order_dir_at (p->sem.sort.sortby, 0) == DIR_ASC &&
              /* sort criterion should not stem from a rank operator */
              PFprop_type_of (p, PFord_order_col_at (p->sem.sort.sortby, 0))
              != aat_nat) {
_______________________________________________
Checkin-list mailing list
Checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to