Changeset: c1be170915d8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c1be170915d8
Branch: binresultset
Log Message:
merged with default
diffs (36 lines):
diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -1209,10 +1209,18 @@ int
exp_refers( sql_exp *p, sql_exp *c)
{
if (c->type == e_column) {
+ // at first they need to have the same expression names
if (!p->alias.name || !c->r || strcmp(p->alias.name, c->r) != 0)
return 0;
- if (c->l && ((p->alias.rname && strcmp(p->alias.rname, c->l) !=
0) || (!p->alias.rname && strcmp(p->l, c->l) != 0)))
- return 0;
+ // then compare the relation names
+ if (c->l) {
+ // if the parent has an alias for the relation name
compare with the child's relation name
+ if (p->alias.rname && strcmp(p->alias.rname, c->l) != 0)
+ return 0;
+ // if the parent does NOT have a relation name alias
compare his relation name with the child's
+ if (!p->alias.rname && strcmp(p->l, c->l) != 0)
+ return 0;
+ }
return 1;
}
return 0;
diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c
--- a/sql/server/rel_rel.c
+++ b/sql/server/rel_rel.c
@@ -917,7 +917,7 @@ rel_groupby(mvc *sql, sql_rel *l, list *
list_append(gexps, e);
} else {
const char *ername = exp_relname(e), *nername =
exp_relname(ne), *ename = exp_name(e), *nename = exp_name(ne);
- if ((ername && !nername) || (!ername &&
nername) ||
+ if ((ername && !nername) || (!ername &&
nername) ||
(ername && nername &&
strcmp(ername,nername) != 0) || strcmp(ename,nename) != 0)
list_append(gexps, e);
}
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]