Update of /cvsroot/monetdb/sql/src/server
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv26122/src/server

Modified Files:
        rel_bin.mx 
Log Message:
fixed lookup of idx columns
reenabled joinpath optimizer


Index: rel_bin.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/rel_bin.mx,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- rel_bin.mx  27 Jan 2008 15:40:05 -0000      1.29
+++ rel_bin.mx  27 Jan 2008 21:13:06 -0000      1.30
@@ -235,17 +235,19 @@
                         */
                        sql_idx *i = p->value, *ri;
                        sql_fkey *fk = (sql_fkey*)i->key;
+                       sql_exp *el = e->l;
+                       sql_exp *er = e->r;
 
                        ri = fk->rkey->k.idx;
 
                        /* find out left and right */
-                       l = bin_find_column(left, NULL, i->base.name);
+                       l = bin_find_column(left, el->l, i->base.name);
                        if (!l) {
                                swapped = 1;
-                               l = bin_find_column(right, NULL, i->base.name);
-                               r = bin_find_column(left, NULL, ri->base.name);
+                               l = bin_find_column(right, el->l, i->base.name);
+                               r = bin_find_column(left, er->l, ri->base.name);
                        } else {
-                               r = bin_find_column(right, NULL, ri->base.name);
+                               r = bin_find_column(right, er->l, 
ri->base.name);
                        }
                        if (swapped)
                                s = stmt_join(r, stmt_reverse(l), cmp_equal);
@@ -344,6 +346,7 @@
                for (n = t->idxs.set->h; n; n = n->next) {
                        sql_idx *i = n->data;
                        stmt *sc = NULL;
+                       char *rnme = (rel->name)?rel->name:t->base.name;
 
                        if (i->type == join_idx) {
                                sc = stmt_idxbat(i, RDONLY);
@@ -352,7 +355,8 @@
                                sc = stmt_bat(c, stmt_dup(ts), RDONLY);
                                sc = stmt_mirror(sc);
                        }
-                       sc = stmt_alias(sc, NULL, _strdup(i->base.name));
+                       rnme = (rnme)?_strdup(rnme):NULL;
+                       sc = stmt_alias(sc, rnme, _strdup(i->base.name));
                        list_append(l, sc);
                }
        }


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins

Reply via email to