Changeset: 3c3fd42d875d for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3c3fd42d875d
Modified Files:
sql/server/rel_exp.c
sql/server/rel_optimizer.c
Branch: graph0
Log Message:
QRW: name_find_column
diffs (44 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
@@ -1818,9 +1818,9 @@ exp_copy( sql_allocator *sa, sql_exp * e
break;
case e_graph:
ne = exp_create(sa, e_graph);
+ memcpy(ne, e, sizeof(sql_exp));
ne->l = exps_copy(sa, e->l);
ne->r = exps_copy(sa, e->r);
- ne->card = CARD_ATOM;
break;
}
if (!ne)
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
@@ -158,7 +158,16 @@ name_find_column( sql_rel *rel, char *rn
break;
case op_graph_join:
case op_graph_select:
- assert(0 && "Not implemented yet"); // TODO: not handled
+ // here we are looking for the physical columns, ignore the
shortest paths
+ // first attempt, left relation
+ if(!c) { c = name_find_column(rel->l, rname, name, pnr, bt); }
+
+ // second attempt, right relation in case of join
+ if(!c && rel->r ) {
+ assert(rel->op == op_graph_join);
+ c = name_find_column(rel->r, rname, name, pnr, bt);
+ }
+ break;
}
if (alias) { /* we found an expression with the correct name, but
we need sql_columns */
@@ -4860,7 +4869,7 @@ rel_reduce_groupby_exps(int *changes, mv
}
}
}
- if (cnr && nr &&
list_length(tbls[j]->pkey->k.columns) == nr) {
+ if (cnr && nr &&
list_length(tbls[j]->pkey->k.columns) == nr /*=all*/) {
list *ngbe = new_exp_list(sql->sa);
list *exps = rel->exps, *nexps =
new_exp_list(sql->sa);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list