Changeset: a541fb04e5bc for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a541fb04e5bc
Modified Files:
        sql/backends/monet5/sql_gencode.c
Branch: arrays
Log Message:

ignore joins with tid in case of arrays


diffs (49 lines):

diff --git a/sql/backends/monet5/sql_gencode.c 
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -1791,18 +1791,6 @@ static int
                                return -1;
                        if ((r = _dumpstmt(sql, mb, s->op2)) < 0)
                                return -1;
-/*                     if(s->op3 && s->op1->type == st_mbrselect) {
-                               if ((extra = _dumpstmt(sql, mb, s->op3)) < 0)
-                                       return -1;
-                               q = newStmt2(mb, "algebra", "mbrproject");
-                               q = pushArgument(mb, q, r);
-                               q = pushArgument(mb, q, l);
-                               q = pushArgument(mb, q, extra);
-                       
-                               s->nr = getDestVar(q);
-                               return s->nr;
-                       }
-*/
                        if (cmp == cmp_joined) {
                                s->nr = l;
                                return s->nr;
@@ -1810,6 +1798,16 @@ static int
                        if (cmp == cmp_project || cmp == cmp_reorder_project) {
                                int ins;
 
+                               /* check if we have two input variables in the 
right argument*/
+                               snprintf(nme, SMALLBUFSIZ, "Y_%d", r);
+                if(findVariable(mb, nme) >= 0 && s->op1->type == st_tid) {
+                                       /*it is an array related join with a tid
+                                       * send the right input to the output 
+                                       * i.e tids does not do something 
useful*/
+                                       s->nr = r;
+                                       return s->nr;
+                               }
+
                                /* delta bat */
                                if (s->op3) {
                                        char nme[SMALLBUFSIZ];
@@ -1837,9 +1835,6 @@ static int
                                else
                                        q = newStmt2(mb, algebraRef, 
leftjoinRef);
                                
-                               if(s->op1->type == st_tid && s->op2->type == 
st_bat && isArray(s->op2->op4.cval->t))
-                                       q = pushReturn(mb, q, 
newTmpVariable(mb, TYPE_ptr));
-
                                q = pushArgument(mb, q, l);
                                snprintf(nme, SMALLBUFSIZ, "Y_%d", l);
                 if((arraySecondVar = findVariable(mb, nme)) >= 0)
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to