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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list