Changeset: 75a63a88c64b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=75a63a88c64b
Modified Files:
        sql/server/rel_distribute.c
Branch: Oct2014
Log Message:

make sure we use the remote table if the default replica is remote.


diffs (45 lines):

diff --git a/sql/server/rel_distribute.c b/sql/server/rel_distribute.c
--- a/sql/server/rel_distribute.c
+++ b/sql/server/rel_distribute.c
@@ -84,7 +84,7 @@ has_remote_or_replica( sql_rel *rel )
 }
 
 static sql_rel *
-rewrite_replica( mvc *sql, sql_rel *rel, sql_table *t, sql_table *p) 
+rewrite_replica( mvc *sql, sql_rel *rel, sql_table *t, sql_table *p, int 
remote_prop)
 {
        node *n, *m;
        sql_rel *r = rel_basetable(sql, p, t->base.name);
@@ -96,6 +96,14 @@ rewrite_replica( mvc *sql, sql_rel *rel,
                exp_setname(sql->sa, ne, e->rname, e->name);
        }
        rel_destroy(rel);
+
+       /* set_remote() */
+       if (remote_prop && p && isRemote(p)) {
+               char *uri = p->query;
+               prop *p = r->p = prop_create(sql->sa, PROP_REMOTE, r->p); 
+
+               p->value = uri;
+       }
        return r;
 }
 
@@ -130,7 +138,7 @@ replica(mvc *sql, sql_rel *rel, char *ur
                                        sql_table *p = n->data;
        
                                        if (isRemote(p) && strcmp(uri, 
p->query) == 0) {
-                                               rel = rewrite_replica(sql, rel, 
t, p);
+                                               rel = rewrite_replica(sql, rel, 
t, p, 0);
                                                break;
                                        }
                                }
@@ -139,7 +147,7 @@ replica(mvc *sql, sql_rel *rel, char *ur
 
                                if (t->tables.set) {
                                        p = t->tables.set->h->data;
-                                       rel = rewrite_replica(sql, rel, t, p);
+                                       rel = rewrite_replica(sql, rel, t, p, 
1);
                                } else {
                                        rel = NULL;
                                }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to