Changeset: 0b898fa534f4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0b898fa534f4
Modified Files:
sql/server/rel_dump.c
sql/server/rel_optimizer.c
Branch: default
Log Message:
merged with jul2017
diffs (64 lines):
diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c
--- a/sql/server/rel_dump.c
+++ b/sql/server/rel_dump.c
@@ -677,8 +677,10 @@ read_prop( mvc *sql, sql_exp *exp, char
r[*pos] = 0;
s = mvc_bind_schema(sql, sname);
- p = exp->p = prop_create(sql->sa, PROP_JOINIDX, exp->p);
- p->value = mvc_bind_idx(sql, s, iname);
+ if (!find_prop(exp->p, PROP_JOINIDX)) {
+ p = exp->p = prop_create(sql->sa, PROP_JOINIDX, exp->p);
+ p->value = mvc_bind_idx(sql, s, iname);
+ }
r[*pos] = old;
skipWS(r,pos);
}
@@ -987,18 +989,25 @@ exp_read(mvc *sql, sql_rel *lrel, sql_re
if (strncmp(r+*pos, "HASHIDX", strlen("HASHIDX")) == 0) {
(*pos)+= (int) strlen("HASHIDX");
exp->p = prop_create(sql->sa, PROP_HASHIDX, exp->p);
+ if (!find_prop(exp->p, PROP_HASHIDX))
+ exp->p = prop_create(sql->sa, PROP_HASHIDX, exp->p);
skipWS(r,pos);
}
if (strncmp(r+*pos, "HASHCOL", strlen("HASHCOL")) == 0) {
(*pos)+= (int) strlen("HASHCOL");
exp->p = prop_create(sql->sa, PROP_HASHCOL, exp->p);
+ if (!find_prop(exp->p, PROP_HASHCOL))
+ exp->p = prop_create(sql->sa, PROP_HASHCOL, exp->p);
skipWS(r,pos);
}
if (strncmp(r+*pos, "FETCH", strlen("FETCH")) == 0) {
(*pos)+= (int) strlen("FETCH");
exp->p = prop_create(sql->sa, PROP_FETCH, exp->p);
+ if (!find_prop(exp->p, PROP_FETCH))
+ exp->p = prop_create(sql->sa, PROP_FETCH, exp->p);
skipWS(r,pos);
}
+ read_prop( sql, exp, r, pos);
/* as alias */
if (strncmp(r+*pos, "as", 2) == 0) {
diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -7685,6 +7685,18 @@ rel_rename_part(mvc *sql, sql_rel *p, ch
exp_setname(sql->sa, ne, tname, c->base.name);
}
+ if (n) /* skip TID */
+ n = n->next;
+ if (mt->idxs.set) {
+ /* also possible index name mismatches */
+ for( m = mt->idxs.set->h; n && m; n = n->next, m = m->next) {
+ sql_exp *ne = n->data;
+ sql_idx *i = m->data;
+ char *iname = sa_strconcat( sql->sa, "%", i->base.name);
+
+ exp_setname(sql->sa, ne, tname, iname);
+ }
+ }
return p;
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list